mirror of
https://git.savannah.gnu.org/git/make.git
synced 2024-12-25 05:29:46 +00:00
[SV 48643] Add more tests of intermediates and unrelated targets
If a prereq of a pattern is explicitly mentioned as a prereq of an unrelated rule, it should not be considered an intermediate file. * tests/scripts/features/double_colon: Add tests mentioning unrelated explicit targets. * tests/scripts/features/grouped_targets: Ditto. * tests/scripts/features/implicit_search: Ditto. * tests/scripts/features/patternrules: Ditto. * tests/scripts/features/se_implicit: Ditto. * tests/scripts/features/statipattrules: Ditto.
This commit is contained in:
parent
d34f46c1f3
commit
f3e345c869
6 changed files with 70 additions and 1 deletions
|
@ -237,6 +237,20 @@ all: hello.z
|
|||
!,
|
||||
'', "#MAKE#: Nothing to be done for 'all'.\n");
|
||||
|
||||
# subtest 3
|
||||
# hello.x is explicitly mentioned on an unrelated rule and thus is not an
|
||||
# intermediate file.
|
||||
# Terminal pattern rules do not apply anyway and there is no rule to built
|
||||
# 'hello.x'.
|
||||
touch('hello.z');
|
||||
run_make_test(q!
|
||||
all: hello.z
|
||||
%.z:: %.x; touch $@
|
||||
%.x: ;
|
||||
unrelated: hello.x
|
||||
!,
|
||||
'', "#MAKE#: *** No rule to make target 'hello.x', needed by 'hello.z'. Stop.\n", 512);
|
||||
|
||||
unlink('hello.z');
|
||||
|
||||
|
||||
|
|
|
@ -152,6 +152,16 @@ all: hello.z
|
|||
%.x: ;
|
||||
!, '', "hello.z hello.q\n");
|
||||
|
||||
# subtest 3
|
||||
# hello.x is explicitly mentioned on an unrelated rule and thus is not an
|
||||
# intermediate file.
|
||||
run_make_test(q!
|
||||
all: hello.z
|
||||
%.z %.q: %.x; @echo $*.z $*.q
|
||||
%.x: ;
|
||||
unrelated: hello.x
|
||||
!, '', "hello.z hello.q\n");
|
||||
|
||||
unlink('hello.z');
|
||||
unlink('hello.q');
|
||||
|
||||
|
|
|
@ -278,6 +278,18 @@ unrelated: hello$s
|
|||
}
|
||||
}
|
||||
|
||||
# Test that prerequisite 'hello.x' mentioned explicitly on an unrelated rule is
|
||||
# not considered intermediate.
|
||||
touch('hello.tsk');
|
||||
unlink('hello.x');
|
||||
run_make_test("
|
||||
all: hello.tsk
|
||||
%.tsk: %.x; touch hello.tsk
|
||||
%.x: ;
|
||||
unrelated: hello.x
|
||||
", '', "touch hello.tsk\n");
|
||||
unlink('hello.tsk');
|
||||
|
||||
touch ('hello.f');
|
||||
# Test implicit search of builtin rules.
|
||||
|
||||
|
|
|
@ -272,6 +272,18 @@ all: hello.z
|
|||
!,
|
||||
'', "touch hello.z");
|
||||
|
||||
# subtest 3
|
||||
# hello.x is explicitly mentioned on an unrelated rule and thus is not an
|
||||
# intermediate file.
|
||||
touch('hello.z');
|
||||
run_make_test(q!
|
||||
all: hello.z
|
||||
%.z: %.x; touch $@
|
||||
%.x: ;
|
||||
unrelated: hello.x
|
||||
!,
|
||||
'', "touch hello.z");
|
||||
|
||||
unlink('hello.z');
|
||||
|
||||
# sv 60188.
|
||||
|
|
|
@ -291,6 +291,18 @@ all: hello.z
|
|||
%.x: ;
|
||||
!, '', "hello.z\n");
|
||||
|
||||
# subtest 3.
|
||||
# hello.x is explicitly mentioned on an unrelated rule and thus is not an
|
||||
# intermediate file.
|
||||
run_make_test(q!
|
||||
.SECONDEXPANSION:
|
||||
dep:=hello.x
|
||||
all: hello.z
|
||||
%.z: %.x; @echo $@
|
||||
%.x: ;
|
||||
unrelated: $$(dep)
|
||||
!, '', "hello.z\n");
|
||||
|
||||
unlink('hello.z');
|
||||
|
||||
|
||||
|
|
|
@ -123,10 +123,19 @@ hello.z: %.z: %.x ; @echo $@
|
|||
|
||||
# subtest 2
|
||||
run_make_test(q!
|
||||
hello.z: %.z: test.x ; @echo $@
|
||||
hello.z: %.z: %.x test.x ; @echo $@
|
||||
%.x: ;
|
||||
!, '', "hello.z\n");
|
||||
|
||||
# subtest 3
|
||||
# 'hello.x' is mentioned explicitly on an unrelated rule.
|
||||
run_make_test(q!
|
||||
hello.z: %.z: %.x ; @echo $@
|
||||
%.x: ;
|
||||
unrelated: hello.x
|
||||
!, '', "hello.z\n");
|
||||
|
||||
|
||||
unlink('hello.z');
|
||||
|
||||
1;
|
||||
|
|
Loading…
Reference in a new issue