Allow parallel builds of the xfstests package
authorBarry Naujok <bnaujok@sgi.com>
Fri, 21 Nov 2008 02:44:04 +0000 (02:44 +0000)
committerBarry Naujok <bnaujok@sgi.com>
Fri, 21 Nov 2008 02:44:04 +0000 (02:44 +0000)
Merge of master-melb:xfs-cmds:32515a by kenmcd.

  Allow parallel builds of the xfstests package

Makefile
include/buildmacros
include/buildrules

index 39e5290679542e371c84f4da120d4d91b7585f15..95497ca6008fb01754e8db62453369f963704b4f 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -16,33 +16,46 @@ LSRCFILES = configure configure.in aclocal.m4 README VERSION
 LDIRT = config.log .dep config.status config.cache confdefs.h conftest* \
        check.log check.time
 
-SUBDIRS = include lib ltp src m4
+LIB_SUBDIRS = include lib
+TOOL_SUBDIRS = ltp src m4
 
-default: $(CONFIGURE) $(DMAPI_MAKEFILE) new remake check $(TESTS)
+SUBDIRS = $(LIB_SUBDIRS) $(TOOL_SUBDIRS)
+
+default: include/builddefs include/config.h $(DMAPI_MAKEFILE) new remake check $(TESTS)
 ifeq ($(HAVE_BUILDDEFS), no)
        $(MAKE) $@
 else
-       $(SUBDIRS_MAKERULE)
+       $(MAKE) $(SUBDIRS)
        # automake doesn't always support "default" target 
        # so do dmapi make explicitly with "all"
 ifeq ($(HAVE_DMAPI), true)
-       cd $(TOPDIR)/dmapi; make all
+       $(MAKE) -C $(TOPDIR)/dmapi all
 endif
 endif
 
+# tool/lib dependencies
+src ltp: lib
+
 ifeq ($(HAVE_BUILDDEFS), yes)
 include $(BUILDRULES)
 else
 clean:  # if configure hasn't run, nothing to clean
 endif
 
-$(CONFIGURE):
+include/builddefs:
        autoheader
        autoconf
        ./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
+
 $(DMAPI_MAKEFILE):
        cd $(TOPDIR)/dmapi/ ; ./configure
 
index b2559efcb803748777df82eb2e9bcc7a917946a0..801bcb618ce5994b678b7206522467d115675769 100644 (file)
@@ -122,14 +122,6 @@ INSTALL_LINGUAS = \
        done
 endif
 
-SUBDIRS_MAKERULE = \
-       @for d in $(SUBDIRS) ""; do \
-               if test -d "$$d" -a ! -z "$$d"; then \
-                       $(ECHO) === $$d ===; \
-                       $(MAKEF) -C $$d $@ || exit $$?; \
-               fi; \
-       done
-
 MAN_MAKERULE = \
        @for f in *.[12345678] ""; do \
                if test ! -z "$$f"; then \
index 4a91fee37f20de90d5a6c6adeea022c23ecf6e8d..e509833d00c00462ba0df7e2dffd4fbd76cbb5ae 100644 (file)
@@ -6,16 +6,20 @@ _BUILDRULES_INCLUDED_ = 1
 
 include $(TOPDIR)/include/builddefs
 
-clean clobber : $(SUBDIRS)
+clean clobber : $(addsuffix -clean,$(SUBDIRS))
        rm -f $(DIRT)
        @rm -fr .libs
-       $(SUBDIRS_MAKERULE)
+
+%-clean:
+       $(MAKE) -C $* clean
 
 # Never blow away subdirs
 ifdef SUBDIRS
 .PRECIOUS: $(SUBDIRS)
+.PHONY: $(SUBDIRS)
+
 $(SUBDIRS):
-       $(SUBDIRS_MAKERULE)
+       $(MAKE) -C $@
 endif
 
 #
@@ -68,11 +72,13 @@ ifdef LTLIBRARY
 DEPENDSCRIPT := $(DEPENDSCRIPT) | $(SED) -e 's,^\([^:]*\)\.o,\1.lo,'
 endif
 
-depend : $(CFILES) $(HFILES)
-       $(SUBDIRS_MAKERULE)
+depend : $(CFILES) $(HFILES) $(addsuffix -depend,$(SUBDIRS))
        $(DEPENDSCRIPT) > .dep
        test -s .dep || rm -f .dep
 
+%-depend:
+       $(MAKE) -C $* depend
+
 # Include dep, but only if it exists
 ifeq ($(shell test -f .dep && echo .dep), .dep)
 include .dep