2 $description = "Test second expansion in ordinary rules.";
6 # TEST #0: Test handing of '$' in prerequisites with and without second
13 foo$$bar: bar$$baz bar$$biz ; @echo '$@ : $^'
18 .DEFAULT: ; @echo '$@'
21 "\$\nbar\$biz\nfoo\$bar : bar\$baz bar\$biz");
23 run_make_test(undef, 'SE=1', "three\nfour\nbariz\nfoo\$bar : baraz bariz");
25 # TEST #1: automatic variables.
29 .DEFAULT: ; @echo '$@'
37 $$(addsuffix .3,$$^) \
38 $$(addsuffix .4,$$+) \
61 # Test #2: target/pattern -specific variables.
65 .DEFAULT: ; @echo '$@'
79 # Test #3: order of prerequisites.
83 .DEFAULT: ; @echo '$@'
113 # TEST #4: eval in a context where there is no reading_file
116 all : $$(eval $$(info test))
118 '', "test\n#MAKE#: Nothing to be done for 'all'.\n");
120 # TEST #5: (NEGATIVE) catch eval in a prereq list trying to create new
121 # target/prereq relationships.
125 proj1.exe : proj1.o $$(eval $$(test))
131 '', "#MAKE#: *** prerequisites cannot be defined in recipes. Stop.\n", 512);
134 # Automatic $$+ variable expansion issue. Savannah bug #25780
138 all : $$+ ; @echo '$+'
141 '', "foo foo foo foo\n");
144 # Automatic $$+ variable expansion issue. Savannah bug #25780
150 a%l: q1x $$+ q2x ; @echo '$+'
152 '', "q1x bar bar q2x bar bar\n");
155 # Allow patsubst shorthand in second expansion context.
156 # Requires the colon to be quoted. Savannah bug #16545
160 foo: $$(@\\:%=%.bar); @echo '$^'