From: Barry Naujok Date: Fri, 21 Nov 2008 02:44:04 +0000 (+0000) Subject: Allow parallel builds of the xfstests package X-Git-Tag: v1.1.0~347 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=4877dfbf86bac073a45eacf2fee0a8c21079a34c;p=xfstests-dev.git Allow parallel builds of the xfstests package Merge of master-melb:xfs-cmds:32515a by kenmcd. Allow parallel builds of the xfstests package --- diff --git a/Makefile b/Makefile index 39e52906..95497ca6 100644 --- 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 diff --git a/include/buildmacros b/include/buildmacros index b2559efc..801bcb61 100644 --- a/include/buildmacros +++ b/include/buildmacros @@ -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 \ diff --git a/include/buildrules b/include/buildrules index 4a91fee3..e509833d 100644 --- a/include/buildrules +++ b/include/buildrules @@ -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