main shinobi / tests / mk / gnu / features / targetvars / t007 / mk
 1
 2export FOO = foo
 3export BAR = bar
 4one: override FOO = one
 5one two: ; @echo $(FOO) $(BAR)
 6two: BAR = two
 7.RECIPEPREFIX = >
 8three: ; BAR=1000
 9> @echo $(FOO) $(BAR)
10# Some things that shouldn not be target vars
11funk : override
12funk : override adelic
13adelic override : ; echo $@
14# Test per-target recursive variables
15four:FOO=x
16four:VAR$(FOO)=ok
17four: ; @echo "$(FOO) $(VAR$(FOO)) $(VAR) $(VARx)"
18five:FOO=x
19five six : VAR$(FOO)=good
20five six: ;@echo "$(FOO) $(VAR$(FOO)) $(VAR) $(VARx) $(VARfoo)"
21# Test per-target variable inheritance
22seven: eight
23seven eight: ; @echo $@: $(FOO) $(BAR)
24seven: BAR = seven
25seven: FOO = seven
26eight: BAR = eight
27# Test the export keyword with per-target variables
28nine: ; @echo $(FOO) $(BAR) $$FOO $$BAR
29nine: FOO = wallace
30nine-a: export BAZ = baz
31nine-a: ; @echo $$BAZ
32# Test = escaping
33EQ = =
34ten: one$(EQ)two
35ten: one $(EQ) two
36ten one$(EQ)two $(EQ):;@echo $@
37.PHONY: one two three four five six seven eight nine ten $(EQ) one$(EQ)two
38# Test target-specific vars with pattern/suffix rules
39QVAR = qvar
40RVAR = =
41%.q : ; @echo $(QVAR) $(RVAR)
42foo.q : RVAR += rvar
43# Target-specific vars with multiple LHS pattern rules
44%.r %.s %.t: ; @echo $(QVAR) $(RVAR) $(SVAR) $(TVAR)
45foo.r : RVAR += rvar
46foo.t : TVAR := $(QVAR)