]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/bmake/unit-tests/varcmd.mk
THIS BRANCH IS OBSOLETE, PLEASE READ:
[FreeBSD/FreeBSD.git] / contrib / bmake / unit-tests / varcmd.mk
1 # $NetBSD: varcmd.mk,v 1.5 2020/10/24 08:50:17 rillig 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 FOO+= oops
31 _FU:= ${FU}
32 _FOO:= ${FOO}
33 two: immutable
34 immutable:
35         @echo "$@ FU='${_FU}'"
36         @echo "$@ FOO='${_FOO}'"
37 .endif
38 .ifmake four
39 VAR=Internal
40 .MAKEOVERRIDES+= VAR
41 .endif
42
43 four:   show
44         @${.MAKE} -f ${MAKEFILE} five
45
46 M=      x
47 V.y=    is y
48 V.x=    is x
49 V:=     ${V.$M}
50 K:=     ${V}
51
52 show-v:
53         @echo '${TAG} v=${V} k=${K}'
54
55 five:   show show-v
56         @${.MAKE} -f ${MAKEFILE} M=y six
57
58 six:    show-v
59         @${.MAKE} -f ${MAKEFILE} V=override show-v
60