Fix building in a directory with SUBDIRs and SUBDIR_PARALLEL.
The SUBDIR_PARALLEL feature uses a .for dir in ${SUBDIR} loop. The old code here for recursing was setting SUBDIR= as a make *argument*. The SUBDIR= replacement was not actually handled until after the .for loop was unrolled. This could be seen with a '.info ${SUBDIR} ${dir}' inside of the loop which showed an empty ${SUBDIR} and a set ${dir}. Setting NO_SUBIDR= before calling ${MAKE} as an *environment* variable handles the case fine and is a more proper mechanism for disabling subdir handling. This could be seen with 'make -C tests/sys/kern -j15 SUBDIR_PARALLEL=yes'. MFC after: 2 weeks Sponsored by: EMC / Isilon Storage Division
This commit is contained in:
parent
f7c12e6bb7
commit
9bff9cbf0c
@ -116,16 +116,16 @@ x.$p= PROG_CXX=$p
|
||||
$p ${p}_p: .PHONY .MAKE
|
||||
(cd ${.CURDIR} && \
|
||||
DEPENDFILE=.depend.$p \
|
||||
${MAKE} -f ${MAKEFILE} _RECURSING_PROGS= \
|
||||
SUBDIR= PROG=$p ${x.$p})
|
||||
NO_SUBDIR=1 ${MAKE} -f ${MAKEFILE} _RECURSING_PROGS= \
|
||||
PROG=$p ${x.$p})
|
||||
|
||||
# Pseudo targets for PROG, such as 'install'.
|
||||
.for t in ${PROGS_TARGETS:O:u}
|
||||
$p.$t: .PHONY .MAKE
|
||||
(cd ${.CURDIR} && \
|
||||
DEPENDFILE=.depend.$p \
|
||||
${MAKE} -f ${MAKEFILE} _RECURSING_PROGS= \
|
||||
SUBDIR= PROG=$p ${x.$p} ${@:E})
|
||||
NO_SUBDIR=1 ${MAKE} -f ${MAKEFILE} _RECURSING_PROGS= \
|
||||
PROG=$p ${x.$p} ${@:E})
|
||||
.endfor
|
||||
.endfor
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user