On 3/9/11 12:37 PM, Alex Elder wrote: > Change the top-level Makefile, to make it clearer just what makes > what, and what depends on what: > - Separate the rules for "configure" and "include/builddefs" into > two parts, each of which generate one of the files > - Get rid of the rule for include/config.h, and group it with the > one for include/builddefs (the same command creates both files) > > Having done this, we find that having both "include/builddefs" and > "include/config.h" as dependencies for the default target results in > a parallel invocation of "make" spawning two concurrent attempts to > do the configure step--and that doesn't work. > > Creating one of those two will result in the other getting created, > so just list one of them as a dependency for the default rule. > > A couple of other small fixes: > - Get rid of the "new", "remake" and "check" dependencies for the > default rule, which serve no purpose > - Use the $(Q) convention in a few missed spots > - Stop a DMAPI-only comment from getting echoed on default build > > This updated version folds in the content of a patch previously > posted separately to fix the problem with parallel builds. > > Signed-off-by: Alex Elder <aelder@xxxxxxx> Reviewed-by: Eric Sandeen <sandeen@xxxxxxxxxxx> > --- > Makefile | 23 ++++++++++------------- > 1 file changed, 10 insertions(+), 13 deletions(-) > > Index: b/Makefile > =================================================================== > --- a/Makefile > +++ b/Makefile > @@ -39,14 +39,14 @@ TOOL_SUBDIRS = ltp src m4 > > SUBDIRS = $(LIB_SUBDIRS) $(TOOL_SUBDIRS) > > -default: include/builddefs include/config.h $(DMAPI_MAKEFILE) new remake check $(TESTS) > +default: include/builddefs $(DMAPI_MAKEFILE) $(TESTS) > ifeq ($(HAVE_BUILDDEFS), no) > $(Q)$(MAKE) $(MAKEOPTS) $@ > else > $(Q)$(MAKE) $(MAKEOPTS) $(SUBDIRS) > +ifeq ($(HAVE_DMAPI), true) > # automake doesn't always support "default" target > # so do dmapi make explicitly with "all" > -ifeq ($(HAVE_DMAPI), true) > $(Q)$(MAKE) $(MAKEOPTS) -C $(TOPDIR)/dmapi all > endif > endif > @@ -60,22 +60,19 @@ else > clean: # if configure hasn't run, nothing to clean > endif > > -configure include/builddefs: > +configure: configure.in > autoheader > autoconf > + > +include/builddefs include/config.h: configure > ./configure \ > --libexecdir=/usr/lib \ > --enable-lib64=yes > > -include/config.h: include/builddefs > -## Recover from the removal of $@ > - @if test -f $@; then :; else \ > - rm -f include/builddefs; \ > - $(MAKE) $(AM_MAKEFLAGS) include/builddefs; \ > - fi > - > +ifeq ($(HAVE_DMAPI), true) > $(DMAPI_MAKEFILE): > - cd $(TOPDIR)/dmapi/ ; ./configure > + $(Q)cd $(TOPDIR)/dmapi && ./configure > +endif > > aclocal.m4:: > aclocal --acdir=`pwd`/m4 --output=$@ > @@ -97,5 +94,5 @@ install-dev install-lib: > $(MAKE) $(MAKEOPTS) -C $* install > > realclean distclean: clean > - rm -f $(LDIRT) $(CONFIGURE) > - rm -rf autom4te.cache Logs > + $(Q)rm -f $(LDIRT) $(CONFIGURE) > + $(Q)rm -rf autom4te.cache Logs > _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs