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