#                                                                    -*-perl-*-
$description = "Test handling of static pattern rules.";

$details = "\
The makefile created in this test has three targets.  The
filter command is used to get those target names ending in
.o and statically creates a compile command with the target
name and the target name with .c.  It also does the same thing
for another target filtered with .elc and creates a command
to emacs a .el file";

&touch('bar.c', 'lose.c');

#   TEST #0
#   -------

run_make_test('
files = foo.elc bar.o lose.o

$(filter %.o,$(files)): %.o: %.c ; @echo CC -c $(CFLAGS) $< -o $@

$(filter %.elc,$(files)): %.elc: %.el ; @echo emacs $<
',
              '',
              'CC -c bar.c -o bar.o');

#  TEST #1
#  -------

run_make_test(undef, 'lose.o', 'CC -c lose.c -o lose.o');


#   TEST #2
#   -------
&touch("foo.el");

run_make_test(undef, 'foo.elc', 'emacs foo.el');

# Clean up after the first tests.
unlink('foo.el', 'bar.c', 'lose.c');


# TEST #3 -- PR/1670: don't core dump on invalid static pattern rules
# -------

run_make_test('
.DEFAULT: ; @echo $@
foo: foo%: % %.x % % % y.% % ; @echo $@
',
              '', ".x\ny.\nfoo");


# TEST #4 -- bug #12180: core dump on a stat pattern rule with an empty
#                        prerequisite list.
run_make_test('
foo.x bar.x: %.x : ; @echo $@

',
              '', 'foo.x');


# TEST #5 -- bug #13881: double colon static pattern rule does not
#                        substitute %.
run_make_test('
foo.bar:: %.bar: %.baz
foo.baz: ;@:
',
              '', '');


# TEST #6: make sure the second stem does not overwrite the first
#          perprerequisite's stem (Savannah bug #16053).
#
run_make_test('
all.foo.bar: %.foo.bar: %.one

all.foo.bar: %.bar: %.two

all.foo.bar:
	@echo $*
	@echo $^

.DEFAULT:;@:
',
'',
'all.foo
all.one all.foo.two');


# TEST #7: make sure the second stem does not overwrite the first
#          perprerequisite's stem when second expansion is enabled
#          (Savannah bug #16053).
#
run_make_test('
.SECONDEXPANSION:

all.foo.bar: %.foo.bar: %.one $$*-one

all.foo.bar: %.bar: %.two $$*-two

all.foo.bar:
	@echo $*
	@echo $^

.DEFAULT:;@:
',
'',
'all.foo
all.one all-one all.foo.two all.foo-two');

1;
