xref: /netbsd-src/external/gpl2/gmake/dist/tests/scripts/features/se_statpat (revision 69606e3f5c9388e52aed8c120ad63c049ca45d8f)
1*69606e3fSchristos#                                                                    -*-perl-*-
2*69606e3fSchristos$description = "Test second expansion in static pattern rules.";
3*69606e3fSchristos
4*69606e3fSchristos$details = "";
5*69606e3fSchristos
6*69606e3fSchristos# Test #1: automatic variables.
7*69606e3fSchristos#
8*69606e3fSchristosrun_make_test('
9*69606e3fSchristos.SECONDEXPANSION:
10*69606e3fSchristos.DEFAULT: ; @echo $@
11*69606e3fSchristos
12*69606e3fSchristosfoo.a foo.b: foo.%: bar.% baz.%
13*69606e3fSchristos
14*69606e3fSchristosfoo.a foo.b: foo.%: biz.% | buz.%
15*69606e3fSchristos
16*69606e3fSchristosfoo.a foo.b: foo.%: $$@.1 \
17*69606e3fSchristos                    $$<.2 \
18*69606e3fSchristos                    $$(addsuffix .3,$$^) \
19*69606e3fSchristos                    $$(addsuffix .4,$$+) \
20*69606e3fSchristos                    $$|.5 \
21*69606e3fSchristos                    $$*.6
22*69606e3fSchristos
23*69606e3fSchristos',
24*69606e3fSchristos'',
25*69606e3fSchristos'bar.a
26*69606e3fSchristosbaz.a
27*69606e3fSchristosbiz.a
28*69606e3fSchristosbuz.a
29*69606e3fSchristosfoo.a.1
30*69606e3fSchristosbar.a.2
31*69606e3fSchristosbar.a.3
32*69606e3fSchristosbaz.a.3
33*69606e3fSchristosbiz.a.3
34*69606e3fSchristosbar.a.4
35*69606e3fSchristosbaz.a.4
36*69606e3fSchristosbiz.a.4
37*69606e3fSchristosbuz.a.5
38*69606e3fSchristosa.6
39*69606e3fSchristos');
40*69606e3fSchristos
41*69606e3fSchristos
42*69606e3fSchristos# Test #2: target/pattern -specific variables.
43*69606e3fSchristos#
44*69606e3fSchristosrun_make_test('
45*69606e3fSchristos.SECONDEXPANSION:
46*69606e3fSchristos.DEFAULT: ; @echo $@
47*69606e3fSchristos
48*69606e3fSchristosfoo.x foo.y: foo.%: $$(%_a) $$($$*_b)
49*69606e3fSchristos
50*69606e3fSchristosfoo.x: x_a := bar
51*69606e3fSchristos
52*69606e3fSchristos%.x: x_b := baz
53*69606e3fSchristos
54*69606e3fSchristos
55*69606e3fSchristos',
56*69606e3fSchristos'',
57*69606e3fSchristos'bar
58*69606e3fSchristosbaz
59*69606e3fSchristos');
60*69606e3fSchristos
61*69606e3fSchristos
62*69606e3fSchristos# Test #3: order of prerequisites.
63*69606e3fSchristos#
64*69606e3fSchristosrun_make_test('
65*69606e3fSchristos.SECONDEXPANSION:
66*69606e3fSchristos.DEFAULT: ; @echo $@
67*69606e3fSchristos
68*69606e3fSchristosall: foo.a bar.a baz.a
69*69606e3fSchristos
70*69606e3fSchristos# Subtest #1
71*69606e3fSchristos#
72*69606e3fSchristosfoo.a foo.b: foo.%: foo.%.1; @:
73*69606e3fSchristos
74*69606e3fSchristosfoo.a foo.b: foo.%: foo.%.2
75*69606e3fSchristos
76*69606e3fSchristosfoo.a foo.b: foo.%: foo.%.3
77*69606e3fSchristos
78*69606e3fSchristos
79*69606e3fSchristos# Subtest #2
80*69606e3fSchristos#
81*69606e3fSchristosbar.a bar.b: bar.%: bar.%.2
82*69606e3fSchristos
83*69606e3fSchristosbar.a bar.b: bar.%: bar.%.1; @:
84*69606e3fSchristos
85*69606e3fSchristosbar.a bar.b: bar.%: bar.%.3
86*69606e3fSchristos
87*69606e3fSchristos
88*69606e3fSchristos# Subtest #3
89*69606e3fSchristos#
90*69606e3fSchristosbaz.a baz.b: baz.%: baz.%.1
91*69606e3fSchristos
92*69606e3fSchristosbaz.a baz.b: baz.%: baz.%.2
93*69606e3fSchristos
94*69606e3fSchristosbaz.a baz.b: ; @:
95*69606e3fSchristos
96*69606e3fSchristos',
97*69606e3fSchristos'',
98*69606e3fSchristos'foo.a.1
99*69606e3fSchristosfoo.a.2
100*69606e3fSchristosfoo.a.3
101*69606e3fSchristosbar.a.1
102*69606e3fSchristosbar.a.2
103*69606e3fSchristosbar.a.3
104*69606e3fSchristosbaz.a.1
105*69606e3fSchristosbaz.a.2
106*69606e3fSchristos');
107*69606e3fSchristos
108*69606e3fSchristos
109*69606e3fSchristos# Test #4: Make sure stem triple-expansion does not happen.
110*69606e3fSchristos#
111*69606e3fSchristosrun_make_test('
112*69606e3fSchristos.SECONDEXPANSION:
113*69606e3fSchristosfoo$$bar: f%r: % $$*.1
114*69606e3fSchristos	@echo \'$*\'
115*69606e3fSchristos
116*69606e3fSchristosoo$$ba oo$$ba.1:
117*69606e3fSchristos	@echo \'$@\'
118*69606e3fSchristos
119*69606e3fSchristos',
120*69606e3fSchristos'',
121*69606e3fSchristos'oo$ba
122*69606e3fSchristosoo$ba.1
123*69606e3fSchristosoo$ba
124*69606e3fSchristos');
125*69606e3fSchristos
126*69606e3fSchristos
127*69606e3fSchristos# This tells the test driver that the perl test script executed properly.
128*69606e3fSchristos1;
129