From: Barry Naujok Date: Fri, 21 Nov 2008 02:43:35 +0000 (+0000) Subject: Allow parallel builds of xfs-cmds. X-Git-Tag: v3.0.0~45 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2a519b73cd745614983b81b34a327318ae96f594;p=thirdparty%2Fxfsprogs-dev.git Allow parallel builds of xfs-cmds. Merge of master-melb:xfs-cmds:32514a by kenmcd. Allow parallel builds of xfs-cmds --- diff --git a/Makefile b/Makefile index f2a38764a..369c36a9b 100644 --- a/Makefile +++ b/Makefile @@ -15,24 +15,36 @@ LSRCFILES = configure configure.in Makepkgs aclocal.m4 install-sh README VERSION LDIRT = config.log .dep config.status config.cache confdefs.h conftest* \ Logs/* built .census install.* install-dev.* *.gz -SUBDIRS = include libxfs libxlog libxcmd libhandle libdisk \ - copy db estimate fsck growfs io logprint mkfs quota mdrestore repair rtcp \ - m4 man doc po debian build +LIB_SUBDIRS = include libxfs libxlog libxcmd libhandle libdisk +TOOL_SUBDIRS = copy db estimate fsck growfs io logprint mkfs quota \ + mdrestore repair rtcp m4 man doc po debian build -default: $(CONFIGURE) +SUBDIRS = $(LIB_SUBDIRS) $(TOOL_SUBDIRS) + +default: include/builddefs include/platform_defs.h ifeq ($(HAVE_BUILDDEFS), no) $(MAKE) -C . $@ else - $(SUBDIRS_MAKERULE) + $(MAKE) $(SUBDIRS) endif +# tool/lib dependencies +libxcmd: include +copy mdrestore: libxfs +db logprint: libxfs libxlog +growfs: libxfs libxcmd +io: libxcmd libhandle +mkfs: libxfs libdisk +quota: libxcmd +repair: libxfs libxlog + ifeq ($(HAVE_BUILDDEFS), yes) include $(BUILDRULES) else clean: # if configure hasn't run, nothing to clean endif -$(CONFIGURE): +include/builddefs: autoconf ./configure \ --prefix=/ \ @@ -48,19 +60,32 @@ $(CONFIGURE): $$LOCAL_CONFIGURE_OPTIONS touch .census +include/platform_defs.h: include/builddefs +## Recover from the removal of $@ + @if test -f $@; then :; else \ + rm -f include/builddefs; \ + $(MAKE) $(AM_MAKEFLAGS) include/builddefs; \ + fi + aclocal.m4:: aclocal --acdir=`pwd`/m4 --output=$@ -install: default - $(SUBDIRS_MAKERULE) +install: default $(addsuffix -install,$(SUBDIRS)) $(INSTALL) -m 755 -d $(PKG_DOC_DIR) $(INSTALL) -m 644 README $(PKG_DOC_DIR) -install-dev: default - $(SUBDIRS_MAKERULE) +install-dev: default $(addsuffix -install-dev,$(SUBDIRS)) + +install-qa: install $(addsuffix -install-qa,$(SUBDIRS)) + +%-install: + $(MAKE) -C $* install + +%-install-dev: + $(MAKE) -C $* install-dev -install-qa: install - $(SUBDIRS_MAKERULE) +%-install-qa: + $(MAKE) -C $* install-qa realclean distclean: clean rm -f $(LDIRT) $(CONFIGURE) diff --git a/include/buildmacros b/include/buildmacros index 0da451bfc..6c1fc6bd1 100644 --- a/include/buildmacros +++ b/include/buildmacros @@ -123,14 +123,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 1bc5cf86b..7155b213b 100644 --- a/include/buildrules +++ b/include/buildrules @@ -6,16 +6,19 @@ _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 # @@ -69,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 diff --git a/man/Makefile b/man/Makefile index 42a0be1c5..2b5e89c2e 100644 --- a/man/Makefile +++ b/man/Makefile @@ -7,7 +7,16 @@ include $(TOPDIR)/include/builddefs SUBDIRS = man3 man5 man8 -default install install-dev : $(SUBDIRS) - $(SUBDIRS_MAKERULE) +default : $(SUBDIRS) + +install : $(addsuffix -install,$(SUBDIRS)) + +install-dev : $(addsuffix -install-dev,$(SUBDIRS)) + +%-install: + $(MAKE) -C $* install + +%-install-dev: + $(MAKE) -C $* install-dev include $(BUILDRULES)