1 1.5 rillig # $NetBSD: varcmd.mk,v 1.5 2020/10/24 08:50:17 rillig Exp $ 2 1.1 apb # 3 1.1 apb # Test behaviour of recursive make and vars set on command line. 4 1.1 apb 5 1.5 rillig FU= fu 6 1.5 rillig FOO?= foo 7 1.1 apb .if !empty(.TARGETS) 8 1.5 rillig TAG= ${.TARGETS} 9 1.1 apb .endif 10 1.5 rillig TAG?= default 11 1.1 apb 12 1.1 apb all: one 13 1.1 apb 14 1.1 apb show: 15 1.1 apb @echo "${TAG} FU=<v>${FU}</v> FOO=<v>${FOO}</v> VAR=<v>${VAR}</v>" 16 1.1 apb 17 1.1 apb one: show 18 1.3 sjg @${.MAKE} -f ${MAKEFILE} FU=bar FOO+=goo two 19 1.1 apb 20 1.1 apb two: show 21 1.1 apb @${.MAKE} -f ${MAKEFILE} three 22 1.1 apb 23 1.1 apb three: show 24 1.1 apb @${.MAKE} -f ${MAKEFILE} four 25 1.1 apb 26 1.1 apb 27 1.2 sjg .ifmake two 28 1.2 sjg # this should not work 29 1.2 sjg FU+= oops 30 1.3 sjg FOO+= oops 31 1.2 sjg _FU:= ${FU} 32 1.3 sjg _FOO:= ${FOO} 33 1.2 sjg two: immutable 34 1.2 sjg immutable: 35 1.2 sjg @echo "$@ FU='${_FU}'" 36 1.3 sjg @echo "$@ FOO='${_FOO}'" 37 1.2 sjg .endif 38 1.1 apb .ifmake four 39 1.1 apb VAR=Internal 40 1.1 apb .MAKEOVERRIDES+= VAR 41 1.1 apb .endif 42 1.1 apb 43 1.1 apb four: show 44 1.1 apb @${.MAKE} -f ${MAKEFILE} five 45 1.1 apb 46 1.5 rillig M= x 47 1.5 rillig V.y= is y 48 1.5 rillig V.x= is x 49 1.5 rillig V:= ${V.$M} 50 1.5 rillig K:= ${V} 51 1.1 apb 52 1.1 apb show-v: 53 1.1 apb @echo '${TAG} v=${V} k=${K}' 54 1.1 apb 55 1.1 apb five: show show-v 56 1.1 apb @${.MAKE} -f ${MAKEFILE} M=y six 57 1.1 apb 58 1.1 apb six: show-v 59 1.1 apb @${.MAKE} -f ${MAKEFILE} V=override show-v 60 1.1 apb 61