1 1.2 sjg # $Id: varcmd.mk,v 1.2 2017/11/18 22:34:04 sjg 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.1 apb FU=fu 6 1.1 apb FOO?=foo 7 1.1 apb .if !empty(.TARGETS) 8 1.1 apb TAG=${.TARGETS} 9 1.1 apb .endif 10 1.1 apb 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.1 apb @${.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.2 sjg _FU:= ${FU} 31 1.2 sjg two: immutable 32 1.2 sjg immutable: 33 1.2 sjg @echo "$@ FU='${_FU}'" 34 1.2 sjg .endif 35 1.1 apb .ifmake four 36 1.1 apb VAR=Internal 37 1.1 apb .MAKEOVERRIDES+= VAR 38 1.1 apb .endif 39 1.1 apb 40 1.1 apb four: show 41 1.1 apb @${.MAKE} -f ${MAKEFILE} five 42 1.1 apb 43 1.1 apb M = x 44 1.1 apb V.y = is y 45 1.1 apb V.x = is x 46 1.1 apb V := ${V.$M} 47 1.1 apb K := ${V} 48 1.1 apb 49 1.1 apb show-v: 50 1.1 apb @echo '${TAG} v=${V} k=${K}' 51 1.1 apb 52 1.1 apb five: show show-v 53 1.1 apb @${.MAKE} -f ${MAKEFILE} M=y six 54 1.1 apb 55 1.1 apb six: show-v 56 1.1 apb @${.MAKE} -f ${MAKEFILE} V=override show-v 57 1.1 apb 58