]> www.infradead.org Git - mtd-utils.git/commitdiff
common.mk: tweak rules to workaround make-3.80 bugs
authorMike Frysinger <vapier@gentoo.org>
Mon, 12 Jan 2009 16:08:03 +0000 (11:08 -0500)
committerArtem Bityutskiy <Artem.Bityutskiy@nokia.com>
Tue, 13 Jan 2009 11:05:38 +0000 (13:05 +0200)
I got some reports from people who use make-3.80 that mtd-utils wasn't
building correctly the first time.  Turns out that older versions of make
misbehave with pattern rules and full paths.  So I've tweaked the code a
little to work with make-3.80 and make-3.81 (the latest release).

Also, I added a small optimization to avoid running `mkdir` when building
in-tree.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
common.mk

index 5dd21ab0ba783f3f17bb2b7d34e3b8eaf5d4b6bd..77d28bfa0904cb36afa410e53c51e927e22c2a90 100644 (file)
--- a/common.mk
+++ b/common.mk
@@ -19,6 +19,7 @@ else
   BUILDDIR := $(PWD)/$(CROSS:-=)
 endif
 endif
+override BUILDDIR := $(patsubst %/,%,$(BUILDDIR))
 
 override TARGETS := $(addprefix $(BUILDDIR)/,$(TARGETS))
 
@@ -33,7 +34,7 @@ clean:: $(SUBDIRS_CLEAN)
 
 install:: $(TARGETS) $(SUBDIRS_INSTALL)
 
-$(BUILDDIR)/%: $(BUILDDIR)/%.o
+%: %.o
        $(CC) $(CFLAGS) $(LDFLAGS) $(LDFLAGS_$(notdir $@)) -g -o $@ $^ $(LDLIBS) $(LDLIBS_$(notdir $@))
 
 $(BUILDDIR)/%.a:
@@ -41,7 +42,9 @@ $(BUILDDIR)/%.a:
        $(RANLIB) $@
 
 $(BUILDDIR)/%.o: %.c
+ifneq ($(BUILDDIR),$(CURDIR))
        mkdir -p $(dir $@)
+endif
        $(CC) $(CPPFLAGS) $(CFLAGS) -c -o $@ $< -g -Wp,-MD,$(BUILDDIR)/.$(<F).dep
 
 subdirs_%: