VirtualBox

source: kBuild/trunk/src/gmake/tests/scripts/features/se_implicit@ 285

最後變更 在這個檔案從285是 282,由 bird 提交於 20 年 前

Initial revision

  • 屬性 svn:eol-style 設為 native
  • 屬性 svn:keywords 設為 Author Date Id Revision
檔案大小: 2.3 KB
 
1# -*-perl-*-
2$description = "Test second expansion in ordinary rules.";
3
4$details = "";
5
6use Cwd;
7
8$dir = cwd;
9$dir =~ s,.*/([^/]+)$,../$1,;
10
11
12# Test #1: automatic variables.
13#
14run_make_test('
15.DEFAULT: ; @echo $@
16
17foo.a: bar baz
18
19foo.a: biz | buz
20
21foo.%: 1.$$@ \
22 2.$$< \
23 $$(addprefix 3.,$$^) \
24 $$(addprefix 4.,$$+) \
25 5.$$| \
26 6.$$*
27 @:
28
291.foo.a \
302.bar \
313.bar \
323.baz \
333.biz \
344.bar \
354.baz \
364.biz \
375.buz \
386.a:
39 @echo $@
40
41',
42'',
43'1.foo.a
442.bar
453.bar
463.baz
473.biz
484.bar
494.baz
504.biz
515.buz
526.a
53bar
54baz
55biz
56buz
57');
58
59
60# Test #2: target/pattern -specific variables.
61#
62run_make_test('
63foo.x:
64
65foo.%: $$(%_a) $$(%_b) bar
66 @:
67
68foo.x: x_a := bar
69
70%.x: x_b := baz
71
72bar baz: ; @echo $@
73
74',
75'',
76'bar
77baz
78');
79
80
81# Test #3: order of prerequisites.
82#
83run_make_test('
84.DEFAULT: ; @echo $@
85
86all: foo bar baz
87
88
89# Subtest #1
90#
91%oo: %oo.1; @:
92
93foo: foo.2
94
95foo: foo.3
96
97foo.1: ; @echo $@
98
99
100# Subtest #2
101#
102bar: bar.2
103
104%ar: %ar.1; @:
105
106bar: bar.3
107
108bar.1: ; @echo $@
109
110
111# Subtest #3
112#
113baz: baz.1
114
115baz: baz.2
116
117%az: ; @:
118
119',
120'',
121'foo.1
122foo.2
123foo.3
124bar.1
125bar.2
126bar.3
127baz.1
128baz.2
129');
130
131
132# Test #4: stem splitting logic.
133#
134run_make_test('
135$(dir)/tmp/bar.o:
136
137$(dir)/tmp/foo/bar.c: ; @echo $@
138$(dir)/tmp/bar/bar.c: ; @echo $@
139foo.h: ; @echo $@
140
141%.o: $$(addsuffix /%.c,foo bar) foo.h
142 @echo $@: {$<} $^
143
144',
145"dir=$dir",
146"$dir/tmp/foo/bar.c
147$dir/tmp/bar/bar.c
148foo.h
149$dir/tmp/bar.o: {$dir/tmp/foo/bar.c} $dir/tmp/foo/bar.c $dir/tmp/bar/bar.c foo.h
150");
151
152
153# Test #5: stem splitting logic and order-only prerequisites.
154#
155run_make_test('
156$(dir)/tmp/foo.o: $(dir)/tmp/foo.c
157$(dir)/tmp/foo.c: ; @echo $@
158bar.h: ; @echo $@
159
160%.o: %.c|bar.h
161 @echo $@: {$<} {$|} $^
162
163',
164"dir=$dir",
165"$dir/tmp/foo.c
166bar.h
167$dir/tmp/foo.o: {$dir/tmp/foo.c} {bar.h} $dir/tmp/foo.c
168");
169
170
171# Test #6: lack of implicit prerequisites.
172#
173run_make_test('
174foo.o: foo.c
175foo.c: ; @echo $@
176
177%.o:
178 @echo $@: {$<} $^
179
180',
181'',
182'foo.c
183foo.o: {foo.c} foo.c
184');
185
186# Test #7: Test stem from the middle of the name.
187#
188run_make_test('
189foobarbaz:
190
191foo%baz: % $$*.1
192 @echo $*
193
194bar bar.1:
195 @echo $@
196
197',
198'',
199'bar
200bar.1
201bar
202');
203
204# Test #8: Make sure stem triple-expansion does not happen.
205#
206run_make_test('
207foo$$bar:
208
209f%r: % $$*.1
210 @echo \'$*\'
211
212oo$$ba oo$$ba.1:
213 @echo \'$@\'
214
215',
216'',
217'oo$ba
218oo$ba.1
219oo$ba
220');
221
222
223# This tells the test driver that the perl test script executed properly.
2241;
注意: 瀏覽 TracBrowser 來幫助您使用儲存庫瀏覽器

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