# $Id: varcmd.mk,v 1.3 2017/12/08 03:36:42 sjg Exp $ # # Test behaviour of recursive make and vars set on command line. FU=fu FOO?=foo .if !empty(.TARGETS) TAG=${.TARGETS} .endif TAG?=default all: one show: @echo "${TAG} FU=${FU} FOO=${FOO} VAR=${VAR}" one: show @${.MAKE} -f ${MAKEFILE} FU=bar FOO+=goo two two: show @${.MAKE} -f ${MAKEFILE} three three: show @${.MAKE} -f ${MAKEFILE} four .ifmake two # this should not work FU+= oops FOO+= oops _FU:= ${FU} _FOO:= ${FOO} two: immutable immutable: @echo "$@ FU='${_FU}'" @echo "$@ FOO='${_FOO}'" .endif .ifmake four VAR=Internal .MAKEOVERRIDES+= VAR .endif four: show @${.MAKE} -f ${MAKEFILE} five M = x V.y = is y V.x = is x V := ${V.$M} K := ${V} show-v: @echo '${TAG} v=${V} k=${K}' five: show show-v @${.MAKE} -f ${MAKEFILE} M=y six six: show-v @${.MAKE} -f ${MAKEFILE} V=override show-v