diff options
Diffstat (limited to 'contrib/bmake/mk/dirdeps.mk')
-rw-r--r-- | contrib/bmake/mk/dirdeps.mk | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/contrib/bmake/mk/dirdeps.mk b/contrib/bmake/mk/dirdeps.mk index 6fedd00310e9..aafa5ab47557 100644 --- a/contrib/bmake/mk/dirdeps.mk +++ b/contrib/bmake/mk/dirdeps.mk @@ -1,4 +1,4 @@ -# $Id: dirdeps.mk,v 1.157 2023/04/22 21:07:51 sjg Exp $ +# $Id: dirdeps.mk,v 1.160 2023/05/10 20:44:58 sjg Exp $ # SPDX-License-Identifier: BSD-2-Clause # @@ -273,6 +273,10 @@ _machine_dependfiles := ${.MAKE.DEPENDFILE_PREFERENCE:T:M*${MACHINE}*} .endif .endif +# turn a list into a set of :N modifiers +# NskipFoo = ${Foo:${M_ListToSkip}} +M_ListToSkip ?= O:u:S,^,N,:ts: + # this is how we identify non-machine specific dependfiles N_notmachine := ${.MAKE.DEPENDFILE_PREFERENCE:E:N*${MACHINE}*:${M_ListToSkip}} @@ -333,6 +337,14 @@ DEP_${TARGET_SPEC_VARS:[$i]} := ${_tspec:[$i]} DEP_MACHINE := ${_DEP_TARGET_SPEC} .endif +# host is special +.if ${DEP_MACHINE:Mhost*} != "" +DEP_TARGET_SPEC = ${DEP_MACHINE} +.for v in ${TARGET_SPEC_VARS:O:u:NMACHINE} +.undef DEP_$v +.endfor +.endif + # reset each time through _build_all_dirs = _build_xtra_dirs = @@ -653,7 +665,7 @@ _machines := ${_machines:${M_dep_qual_fixes:ts:}:O:u} # reset each time through _build_dirs = -.if ${DEP_RELDIR} == ${_DEP_RELDIR} +.if ${DEP_RELDIR} == ${_DEP_RELDIR} && ${_CURDIR} != ${SRCTOP} # pickup other machines for this dir if necessary _build_dirs += ${_machines:@m@${_CURDIR}.$m@} .endif |