# -*-perl-*-
-$description = "Test second expansion in ordinary rules.";
+$description = "Test second expansion in implicit rules.";
$details = "";
$$(addprefix 3.,$$^) \
$$(addprefix 4.,$$+) \
5.$$| \
- 6.$$*
- @:
+ 6.$$* ; @:
1.foo.a \
2.bar \
4.baz \
4.biz \
5.buz \
-6.a:
- @echo '$@'
+6.a: ; @echo '$@'
!,
'',
.SECONDEXPANSION:
foo.x:
-foo.%: $$(%_a) $$(%_b) bar
- @:
+foo.%: $$(%_a) $$(%_b) bar ; @:
foo.x: x_a := bar
$(dir)/tmp/bar/bar.c: ; @echo '$@'
foo.h: ; @echo '$@'
-%.o: $$(addsuffix /%.c,foo bar) foo.h
- @echo '$@: {$<} $^'
+%.o: $$(addsuffix /%.c,foo bar) foo.h ; @echo '$@: {$<} $^'
!,
"dir=$dir", "$dir/tmp/foo/bar.c
$dir/tmp/bar/bar.c
$(dir)/tmp/foo.c: ; @echo '$@'
bar.h: ; @echo '$@'
-%.o: %.c|bar.h
- @echo '$@: {$<} {$|} $^'
+%.o: %.c|bar.h ; @echo '$@: {$<} {$|} $^'
!,
"dir=$dir", "$dir/tmp/foo.c
foo.o: foo.c
foo.c: ; @echo '$@'
-%.o:
- @echo '$@: {$<} $^'
+%.o: ; @echo '$@: {$<} $^'
!,
'', "foo.c\nfoo.o: {foo.c} foo.c\n");
.SECONDEXPANSION:
foobarbaz:
-foo%baz: % $$*.1
- @echo '$*'
+foo%baz: % $$*.1 ; @echo '$*'
-bar bar.1:
- @echo '$@'
+bar bar.1: ; @echo '$@'
!,
'', "bar\nbar.1\nbar\n");
.SECONDEXPANSION:
foo$$bar:
-f%r: % $$*.1
- @echo '$*'
+f%r: % $$*.1 ; @echo '$*'
-oo$$ba oo$$ba.1:
- @echo '$@'
+oo$$ba oo$$ba.1: ; @echo '$@'
!,
'', 'oo$ba
oo$ba.1
sim_base_rgg := just_a_name
sim_base_src := a
sim_base_f := a a a
-sim_%.f: $${sim_$$*_f}
- echo $@
-sim_%.src: $${sim_$$*_src}
- echo $@
+sim_%.f: $${sim_$$*_f} ; echo $@
+sim_%.src: $${sim_$$*_src} ; echo $@
sim_%: \
- $$(if $$(sim_$$*_src),sim_%.src) \
- $$(if $$(sim_$$*_f),sim_%.f) \
- $$(if $$(sim_$$*_rgg),$$(sim_$$*_rgg).s)
- echo $@
+ $$(if $$(sim_$$*_src),sim_%.src) \
+ $$(if $$(sim_$$*_f),sim_%.f) \
+ $$(if $$(sim_$$*_rgg),$$(sim_$$*_rgg).s) ; echo $@
!,
'-s sim_base', "#MAKE#: *** No rule to make target 'sim_base'. Stop.", 512);
!,
"", ": p1\n: p2\nfoo from p1 and p2\nbar from p1 and p2\n");
+# SV 28456 : Don't reset $$< for default recipes
+run_make_test(q!
+.SECONDEXPANSION:
+
+.PHONY: foo bar
+foo: bar
+foo: $$(info $$<)
+%oo: ;
+!,
+ '', "bar\n#MAKE#: Nothing to be done for 'foo'.\n");
+
# This tells the test driver that the perl test script executed properly.
1;