summaryrefslogtreecommitdiffstats
path: root/share/mk
diff options
context:
space:
mode:
authorian <ian@FreeBSD.org>2014-05-12 21:22:53 +0000
committerian <ian@FreeBSD.org>2014-05-12 21:22:53 +0000
commitcd8ffe68c7285670f688e62aecbed14587377beb (patch)
treed87ea6b65946c4d8e4526ba692656d8ad906b7fc /share/mk
parent7885a006b9088e8c59584316c48bb85a517ee6b9 (diff)
downloadFreeBSD-src-cd8ffe68c7285670f688e62aecbed14587377beb.zip
FreeBSD-src-cd8ffe68c7285670f688e62aecbed14587377beb.tar.gz
MFC r264822: Allow .WAIT to appear in SUBDIR= lists
Diffstat (limited to 'share/mk')
-rw-r--r--share/mk/bsd.subdir.mk14
1 files changed, 11 insertions, 3 deletions
diff --git a/share/mk/bsd.subdir.mk b/share/mk/bsd.subdir.mk
index 0ceda56..1500947 100644
--- a/share/mk/bsd.subdir.mk
+++ b/share/mk/bsd.subdir.mk
@@ -45,7 +45,7 @@ distribute: .MAKE
_SUBDIR: .USE .MAKE
.if defined(SUBDIR) && !empty(SUBDIR) && !defined(NO_SUBDIR)
- @${_+_}set -e; for entry in ${SUBDIR}; do \
+ @${_+_}set -e; for entry in ${SUBDIR:N.WAIT}; do \
if test -d ${.CURDIR}/$${entry}.${MACHINE_ARCH}; then \
${ECHODIR} "===> ${DIRPRFX}$${entry}.${MACHINE_ARCH} (${.TARGET:realinstall=install})"; \
edir=$${entry}.${MACHINE_ARCH}; \
@@ -60,7 +60,7 @@ _SUBDIR: .USE .MAKE
done
.endif
-${SUBDIR}: .PHONY .MAKE
+${SUBDIR:N.WAIT}: .PHONY .MAKE
${_+_}@if test -d ${.TARGET}.${MACHINE_ARCH}; then \
cd ${.CURDIR}/${.TARGET}.${MACHINE_ARCH}; \
else \
@@ -68,12 +68,18 @@ ${SUBDIR}: .PHONY .MAKE
fi; \
${MAKE} all
+# Work around parsing of .if nested in .for by putting .WAIT string into a var.
+__wait= .WAIT
.for __target in all all-man checkdpadd clean cleandepend cleandir \
cleanilinks depend distribute lint maninstall manlint obj objlink \
realinstall regress tags ${SUBDIR_TARGETS}
.ifdef SUBDIR_PARALLEL
+__subdir_targets=
.for __dir in ${SUBDIR}
-${__target}: ${__target}_subdir_${__dir}
+.if ${__wait} == ${__dir}
+__subdir_targets+= .WAIT
+.else
+__subdir_targets+= ${__target}_subdir_${__dir}
${__target}_subdir_${__dir}: .MAKE
@${_+_}set -e; \
if test -d ${.CURDIR}/${__dir}.${MACHINE_ARCH}; then \
@@ -87,7 +93,9 @@ ${__target}_subdir_${__dir}: .MAKE
fi; \
${MAKE} ${__target:realinstall=install} \
DIRPRFX=${DIRPRFX}$$edir/
+.endif
.endfor
+${__target}: ${__subdir_targets}
.else
${__target}: _SUBDIR
.endif
OpenPOWER on IntegriCloud