svn commit: r289669 - head/share/mk

Bryan Drewery bdrewery at FreeBSD.org
Wed Oct 21 00:25:19 UTC 2015


Author: bdrewery
Date: Wed Oct 21 00:25:18 2015
New Revision: 289669
URL: https://svnweb.freebsd.org/changeset/base/289669

Log:
  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

Modified:
  head/share/mk/bsd.progs.mk

Modified: head/share/mk/bsd.progs.mk
==============================================================================
--- head/share/mk/bsd.progs.mk	Tue Oct 20 23:52:37 2015	(r289668)
+++ head/share/mk/bsd.progs.mk	Wed Oct 21 00:25:18 2015	(r289669)
@@ -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
 


More information about the svn-src-all mailing list