diff --git a/Makefile.lib b/Makefile.lib index dfde57c8..a35c721c 100644 --- a/Makefile.lib +++ b/Makefile.lib @@ -76,7 +76,9 @@ ifneq ($(findstring cleanall,$(MAKECMDGOALS)),) INCLUDE_ALL=1 endif -ifneq ($(findstring list,$(MAKECMDGOALS)),) +ifneq ($(findstring init,$(MAKECMDGOALS)),) +# FIXME: Detect when $(subdir)/Makefile is $(srcdir)/$(subdir)/Makefile +# and error out so the user won't overwrite the 'master' Makefiles. INCLUDE_ALL=1 endif @@ -103,8 +105,10 @@ CLEAN += $(PROG) all-default: $(LIB_O) $(PROGS) $(MAN1) $(MAN5) -list-default: - @echo '$(RELPATH)Makefile' +init-default: + @$(foreach subdir,$(sort $(SUBDIRS)), \ + $(MKINSTALLDIRS) $(subdir) >/dev/null; \ + echo 'include $(SRC)/$(RELPATH)/$(subdir)/Makefile' > $(subdir)/Makefile;) clean-default: -test -z "$(CLEAN)" || $(RM) $(CLEAN) @@ -130,9 +134,9 @@ endif # Recursion: -.PHONY: all-recursive install-recursive clean-recursive cleanall-recursive list-recursive +.PHONY: all-recursive install-recursive clean-recursive cleanall-recursive init-recursive -all-recursive install-recursive clean-recursive cleanall-recursive list-recursive: +all-recursive install-recursive clean-recursive cleanall-recursive init-recursive: ifdef SUBDIRS @$(foreach subdir,$(sort $(SUBDIRS)), \ $(call ncmd,recmake,$(subdir),$(subst -recursive,,$@)) || exit 1;) @@ -143,7 +147,7 @@ install: install-recursive install-default install-local clean: clean-recursive clean-default clean-local cleanall: cleanall-recursive cleanall-default -list: list-recursive list-default +init: init-default init-recursive all-local: install-local: diff --git a/configure.in b/configure.in index 813f2296..cad84d8c 100644 --- a/configure.in +++ b/configure.in @@ -1268,13 +1268,8 @@ AC_OUTPUT([ \ abs_srcdir="$(cd "$srcdir" && pwd)" # builddir is always absolute! if test "$abs_srcdir" != "$builddir"; then - MAKEFILES=$("$MAKE" -C "$abs_srcdir" list | grep Makefile) - - for i in $MAKEFILES; do - echo "creating $i" - $MKINSTALLDIRS "$builddir/$(dirname $i)" >/dev/null - echo "include $abs_srcdir/$i" > "$builddir/$i" - done + echo "include $abs_srcdir/Makefile" > "$builddir/Makefile" + "$MAKE" "SRC=$abs_srcdir" init fi