]> xenbits.xensource.com Git - people/liuw/freebsd.git/commitdiff
For SUBDIR_PARALLEL, when doing 'make clean*' or 'make obj' there is no need to
authorbdrewery <bdrewery@FreeBSD.org>
Thu, 22 Oct 2015 23:41:56 +0000 (23:41 +0000)
committerbdrewery <bdrewery@FreeBSD.org>
Thu, 22 Oct 2015 23:41:56 +0000 (23:41 +0000)
respect SUBDIR_DEPEND_* or .WAIT.

MFC after: 2 weeks
Sponsored by: EMC / Isilon Storage Division

share/mk/bsd.subdir.mk

index a6eb98cf70b5ca4393d7157e856eee94dfdbca56..8275afd1751a9e2313f60c508068a59e0bcb309a 100644 (file)
@@ -83,6 +83,15 @@ ${SUBDIR:N.WAIT}: .PHONY .MAKE
            dir=${.TARGET}; \
            ${_SUBDIR_SH};
 
+# .WAIT and dependencies can be skipped for some targets.
+.if defined(SUBDIR_PARALLEL)
+.if make(obj) || make(clean*)
+_skip_subdir_ordering= 1
+SUBDIR:=       ${SUBDIR:N.WAIT}
+.else
+_skip_subdir_ordering= 0
+.endif
+.endif # defined(SUBDIR_PARALLEL)
 # Work around parsing of .if nested in .for by putting .WAIT string into a var.
 __wait= .WAIT
 .for __target in ${ALL_SUBDIR_TARGETS}
@@ -94,9 +103,11 @@ __subdir_targets+= .WAIT
 .else
 __subdir_targets+= ${__target}_subdir_${__dir}
 __deps=
+.if ${_skip_subdir_ordering} == 0
 .for __dep in ${SUBDIR_DEPEND_${__dir}}
 __deps+= ${__target}_subdir_${__dep}
 .endfor
+.endif
 ${__target}_subdir_${__dir}: .PHONY .MAKE ${__deps}
 .if !defined(NO_SUBDIR)
        @${_+_}target=${__target:realinstall=install}; \