mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-12 09:58:36 +00:00
Fix regression from r289734 that caused crunchgen "subdirs" to not be
properly recursed. The .for loop was defining a ${__dir} variable that was being set at a different evaluation time than the target itself, so every 'cd ${__dir}' became the last value that was in ${__dir}. This resulted in 'make obj' not properly being ran in the tree that would leave .depend files scattered around when 'make all' was ran in rescue/. To fix this, define a CRUNCH_SRCDIR_* for every prog if it does not already have one and then use that variable in every relevant place. This allows simplifying some logic as well. Reported by: emaste X-MFC-With: r289734 MFC after: 3 weeks Sponsored by: EMC / Isilon Storage Division
This commit is contained in:
parent
6123d3f697
commit
0d2a1539d1
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=289846
@ -50,15 +50,18 @@ CLEANFILES+= ${CONF} *.o *.lo *.c *.mk *.cache *.a *.h
|
||||
# Don't try to extract debug info from ${PROG}.
|
||||
MK_DEBUG_FILES= no
|
||||
|
||||
# Set a default SRCDIR for each for simpler handling below.
|
||||
.for D in ${CRUNCH_SRCDIRS}
|
||||
.for P in ${CRUNCH_PROGS_${D}}
|
||||
CRUNCH_SRCDIR_${P}?= ${.CURDIR}/../../${D}/${P}
|
||||
.endfor
|
||||
.endfor
|
||||
|
||||
# Program names and their aliases contribute hardlinks to 'rescue' executable,
|
||||
# except for those that get suppressed.
|
||||
.for D in ${CRUNCH_SRCDIRS}
|
||||
.for P in ${CRUNCH_PROGS_${D}}
|
||||
.ifdef CRUNCH_SRCDIR_${P}
|
||||
${OUTPUTS}: ${CRUNCH_SRCDIR_${P}}/Makefile
|
||||
.else
|
||||
${OUTPUTS}: ${.CURDIR}/../../${D}/${P}/Makefile
|
||||
.endif
|
||||
.if ${CRUNCH_GENERATE_LINKS} == "yes"
|
||||
.ifndef CRUNCH_SUPPRESS_LINK_${P}
|
||||
LINKS+= ${BINDIR}/${PROG} ${BINDIR}/${P}
|
||||
@ -89,11 +92,7 @@ ${CONF}: Makefile
|
||||
.for D in ${CRUNCH_SRCDIRS}
|
||||
.for P in ${CRUNCH_PROGS_${D}}
|
||||
echo progs ${P} >>${.TARGET}
|
||||
.ifdef CRUNCH_SRCDIR_${P}
|
||||
echo special ${P} srcdir ${CRUNCH_SRCDIR_${P}} >>${.TARGET}
|
||||
.else
|
||||
echo special ${P} srcdir ${.CURDIR}/../../${D}/${P} >>${.TARGET}
|
||||
.endif
|
||||
.ifdef CRUNCH_BUILDOPTS_${P}
|
||||
echo special ${P} buildopts DIRPRFX=${DIRPRFX}${P}/ \
|
||||
${CRUNCH_BUILDOPTS_${P}} >>${.TARGET}
|
||||
@ -138,13 +137,8 @@ build-tools: build-tools-${_tool}
|
||||
.for __target in clean cleandepend cleandir obj objlink
|
||||
.for D in ${CRUNCH_SRCDIRS}
|
||||
.for P in ${CRUNCH_PROGS_${D}}
|
||||
.ifdef CRUNCH_SRCDIR_${P}
|
||||
__dir= ${CRUNCH_SRCDIR_${P}}
|
||||
.else
|
||||
__dir= ${.CURDIR}/../../${D}/${P}
|
||||
.endif
|
||||
${__target}_crunchdir_${P}: .PHONY .MAKE
|
||||
${_+_}cd ${__dir} && \
|
||||
${_+_}cd ${CRUNCH_SRCDIR_${P}} && \
|
||||
${CRUNCHENV} MAKEOBJDIRPREFIX=${CANONICALOBJDIR} ${MAKE} \
|
||||
DIRPRFX=${DIRPRFX}${P}/ ${CRUNCH_BUILDOPTS} ${__target}
|
||||
${__target}: ${__target}_crunchdir_${P}
|
||||
|
Loading…
Reference in New Issue
Block a user