Add support for "::=" simple assignment operator.
[make.git] / tests / scripts / variables / flavors
blobba133ea860d2fc204b3b75c54837da2e2dad328f
1 #                                                                    -*-perl-*-
3 $description = "Test various flavors of make variable setting.";
5 $details = "";
7 # TEST 0: Recursive
9 run_make_test('
10 ugh = Goodbye
11 foo = $(bar)
12 bar = ${ugh}
13 ugh = Hello
14 all: ; @echo $(foo)
16               '', "Hello\n");
18 # TEST 1: Simple
20 run_make_test('
21 bar = Goodbye
22 foo := $(bar)
23 bar = ${ugh}
24 ugh = Hello
25 all: ; @echo $(foo)
27               '', "Goodbye\n");
29 # TEST 2: Append to recursive
31 run_make_test('
32 foo = Hello
33 ugh = Goodbye
34 foo += $(bar)
35 bar = ${ugh}
36 ugh = Hello
37 all: ; @echo $(foo)
39               '', "Hello Hello\n");
41 # TEST 3: Append to simple
43 run_make_test('
44 foo := Hello
45 ugh = Goodbye
46 bar = ${ugh}
47 foo += $(bar)
48 ugh = Hello
49 all: ; @echo $(foo)
51               '', "Hello Goodbye\n");
53 # TEST 4: Conditional pre-set
55 run_make_test('
56 foo = Hello
57 ugh = Goodbye
58 bar = ${ugh}
59 foo ?= $(bar)
60 ugh = Hello
61 all: ; @echo $(foo)
63               '', "Hello\n");
65 # TEST 5: Conditional unset
67 run_make_test('
68 ugh = Goodbye
69 bar = ${ugh}
70 foo ?= $(bar)
71 ugh = Hello
72 all: ; @echo $(foo)
74               '', "Hello\n");
76 # TEST 6: Simple using POSIX syntax
77 run_make_test('
78 bar = Goodbye
79 foo ::= $(bar)
80 bar = ${ugh}
81 ugh = Hello
82 all: ; @echo $(foo)
84               '', "Goodbye\n");
86 # TEST 7: POSIX syntax no spaces
87 run_make_test('
88 bar = Goodbye
89 foo::=$(bar)
90 bar = ${ugh}
91 ugh = Hello
92 all: ; @echo $(foo)
94               '', "Goodbye\n");