Bernhard Fischer submitted a couple of Makefile patches:
authorRob Landley <rob@landley.net>
Wed, 24 Aug 2005 00:41:52 +0000 (00:41 -0000)
committerRob Landley <rob@landley.net>
Wed, 24 Aug 2005 00:41:52 +0000 (00:41 -0000)
- Fix building out-of-tree
- remove duplicate rule in toplevel Makefile
- peruse make's builtin notion of `dirname $@'

Makefile
e2fsprogs/Makefile.in
scripts/config/Makefile

index 187f3fcd67803d44cb3a48c64f65c7c1e21297f2..757c41b1858ca07cc3b488fcb19d218af3fa5276 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -37,7 +37,7 @@ endif
 export srctree=$(top_srcdir)
 vpath %/Config.in $(srctree)
 
-include $(top_builddir)/Rules.mak
+include $(top_srcdir)/Rules.mak
 
 DIRS:=applets archival archival/libunarchive coreutils console-tools \
        debianutils editors findutils init miscutils modutils networking \
@@ -115,7 +115,7 @@ all: busybox busybox.links doc
 all_tree:      $(ALL_MAKEFILES)
 
 $(ALL_MAKEFILES): %/Makefile: $(top_srcdir)/%/Makefile
-       d=`dirname $@`; [ -d "$$d" ] || mkdir -p "$$d"; cp $< $@
+       [ -d $(@D) ] || mkdir -p $(@D); cp $< $@
 
 # In this section, we need .config
 -include $(top_builddir)/.config.cmd
@@ -219,7 +219,8 @@ include/bb_config.h: include/config.h
        echo "#endif" >> $@
 
 include/bbconfigopts.h: .config
-       scripts/config/mkconfigs >include/bbconfigopts.h
+       @[ -d $(@D) ] || mkdir -v $(@D)
+       $(top_srcdir)/scripts/config/mkconfigs >include/bbconfigopts.h
 
 finished2:
        $(SECHO)
@@ -233,16 +234,13 @@ all: menuconfig
 # configuration
 # ---------------------------------------------------------------------------
 
-$(ALL_MAKEFILES): %/Makefile: $(top_srcdir)/%/Makefile
-       d=`dirname $@`; [ -d "$$d" ] || mkdir -p "$$d"; cp $< $@
-
-scripts/config/conf: scripts/config/Makefile Rules.mak
+scripts/config/conf: scripts/config/Makefile $(top_srcdir)/Rules.mak
        $(MAKE) -C scripts/config conf
        -@if [ ! -f .config ] ; then \
                cp $(CONFIG_DEFCONFIG) .config; \
        fi
 
-scripts/config/mconf: scripts/config/Makefile Rules.mak
+scripts/config/mconf: scripts/config/Makefile $(top_srcdir)/Rules.mak
        $(MAKE) -C scripts/config ncurses conf mconf
        -@if [ ! -f .config ] ; then \
                cp $(CONFIG_DEFCONFIG) .config; \
index dfdf77a65ae07e58a1c8bd55d3c743895bd97403..ed307c1eae0eadb1a9f5e0c44e64893bb7346e46 100644 (file)
 #
 
 E2FSPROGS_AR:=e2fsprogs.a
-ifndef $(E2FSPROGS_DIR)
+
 E2FSPROGS_DIR:=$(top_builddir)/e2fsprogs/
-endif
+
 srcdir=$(top_srcdir)/e2fsprogs
 
-E2FSPROGS_CFLAGS := -I$(E2FSPROGS_DIR) -include $(E2FSPROGS_DIR)e2fsbb.h
+E2FSPROGS_CFLAGS := -I$(srcdir) -include $(srcdir)/e2fsbb.h
 
 BLKID_SRC   := cache.c dev.c devname.c devno.c getsize.c llseek.c probe.c \
                read.c resolve.c save.c tag.c resolve.c
@@ -63,5 +63,7 @@ libraries-y+=$(E2FSPROGS_DIR)$(E2FSPROGS_AR)
 $(E2FSPROGS_DIR)$(E2FSPROGS_AR): $(patsubst %,$(E2FSPROGS_DIR)%, $(E2FSPROGS-y))
        $(AR) $(ARFLAGS) $@ $(patsubst %,$(E2FSPROGS_DIR)%, $(E2FSPROGS-y))
 
+# for e2p/*: check if the dir exists, dude
 $(E2FSPROGS_DIR)%.o: $(srcdir)/%.c
+       @[ -d $(@D) ] || mkdir -v $(@D)
        $(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(E2FSPROGS_CFLAGS) -c -o $@ $<
index 3c4669f8cca567e1050f10f1638e2b6313535c9d..4d95ce07886eb2a05b6059c991d50b4e6ce6836e 100644 (file)
@@ -5,7 +5,7 @@
 top_srcdir=../..
 top_builddir=../..
 srcdir=$(top_srcdir)/scripts/config
-include $(top_builddir)/Rules.mak
+include $(top_srcdir)/Rules.mak
 
 all: ncurses conf mconf
 
@@ -41,6 +41,7 @@ MCONF_SRC    = mconf.c
 LXD_SRC      = lxdialog/checklist.c lxdialog/menubox.c lxdialog/textbox.c \
                lxdialog/yesno.c lxdialog/inputbox.c lxdialog/util.c \
                lxdialog/msgbox.c
+
 SHARED_SRC   = zconf.tab.c
 SHARED_DEPS := $(srcdir)/lkc.h $(srcdir)/lkc_proto.h \
                lkc_defs.h $(srcdir)/expr.h zconf.tab.h
@@ -58,6 +59,7 @@ $(CONF_OBJS): %.o : $(srcdir)/%.c $(SHARED_DEPS)
        $(HOSTCC) $(HOSTCFLAGS) -I. -c $< -o $@
 
 $(MCONF_OBJS): %.o : $(srcdir)/%.c $(SHARED_DEPS)
+       @[ -d $(@D) ] || mkdir -v $(@D)
        $(HOSTCC) $(HOSTCFLAGS) $(HOSTNCURSES) -I. -c $< -o $@
 
 lkc_defs.h: $(srcdir)/lkc_proto.h