VirtualBox

source: kBuild/vendor/gnumake/3.82-cvs/tests/scripts/features/se_explicit@ 2580

Last change on this file since 2580 was 2580, checked in by bird, 12 years ago

Importing the make-3-82 CVS tag with --auto-props but no keywords.

File size: 2.4 KB
Line 
1# -*-perl-*-
2$description = "Test second expansion in ordinary rules.";
3
4$details = "";
5
6# TEST #0: Test handing of '$' in prerequisites with and without second
7# expansion.
8
9run_make_test(q!
10ifdef SE
11 .SECONDEXPANSION:
12endif
13foo$$bar: bar$$baz bar$$biz ; @echo '$@ : $^'
14PRE = one two
15bar$$baz: $$(PRE)
16baraz: $$(PRE)
17PRE = three four
18.DEFAULT: ; @echo '$@'
19!,
20 '',
21 "\$\nbar\$biz\nfoo\$bar : bar\$baz bar\$biz");
22
23run_make_test(undef, 'SE=1', "three\nfour\nbariz\nfoo\$bar : baraz bariz");
24
25# TEST #1: automatic variables.
26#
27run_make_test(q!
28.SECONDEXPANSION:
29.DEFAULT: ; @echo '$@'
30
31foo: bar baz
32
33foo: biz | buz
34
35foo: $$@.1 \
36 $$<.2 \
37 $$(addsuffix .3,$$^) \
38 $$(addsuffix .4,$$+) \
39 $$|.5 \
40 $$*.6
41
42!,
43'',
44'bar
45baz
46biz
47buz
48foo.1
49bar.2
50bar.3
51baz.3
52biz.3
53bar.4
54baz.4
55biz.4
56buz.5
57.6
58');
59
60
61# Test #2: target/pattern -specific variables.
62#
63run_make_test(q!
64.SECONDEXPANSION:
65.DEFAULT: ; @echo '$@'
66
67foo.x: $$a $$b
68
69foo.x: a := bar
70
71%.x: b := baz
72!,
73'',
74'bar
75baz
76');
77
78
79# Test #3: order of prerequisites.
80#
81run_make_test(q!
82.SECONDEXPANSION:
83.DEFAULT: ; @echo '$@'
84
85all: foo bar baz
86
87# Subtest #1
88foo: foo.1; @:
89foo: foo.2
90foo: foo.3
91
92# Subtest #2
93bar: bar.2
94bar: bar.1; @:
95bar: bar.3
96
97# Subtest #3
98baz: baz.1
99baz: baz.2
100baz: ; @:
101!,
102'',
103'foo.1
104foo.2
105foo.3
106bar.1
107bar.2
108bar.3
109baz.1
110baz.2
111');
112
113# TEST #4: eval in a context where there is no reading_file
114run_make_test(q!
115.SECONDEXPANSION:
116all : $$(eval $$(info test))
117!,
118 '', "test\n#MAKE#: Nothing to be done for `all'.\n");
119
120# TEST #5: (NEGATIVE) catch eval in a prereq list trying to create new
121# target/prereq relationships.
122
123run_make_test(q!
124.SECONDEXPANSION:
125proj1.exe : proj1.o $$(eval $$(test))
126define test
127proj1.o : proj1.c
128proj1.c: proj1.h
129endef
130!,
131 '', "#MAKE#: *** prerequisites cannot be defined in recipes. Stop.\n", 512);
132
133
134# Automatic $$+ variable expansion issue. Savannah bug #25780
135run_make_test(q!
136all : foo foo
137.SECONDEXPANSION:
138all : $$+ ; @echo '$+'
139foo : ;
140!,
141 '', "foo foo foo foo\n");
142
143
144# Automatic $$+ variable expansion issue. Savannah bug #25780
145run_make_test(q!
146all : bar bar
147bar : ;
148q%x : ;
149.SECONDEXPANSION:
150a%l: q1x $$+ q2x ; @echo '$+'
151!,
152 '', "q1x bar bar q2x bar bar\n");
153
154
155# This tells the test driver that the perl test script executed properly.
1561;
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette