From 2860d3b247e70a34246936fb085aeec951ea49b1 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Fri, 4 Mar 2005 14:31:09 +0000 Subject: [PATCH] Fixed Savannah bug #12202. --- ChangeLog | 5 +++++ implicit.c | 2 ++ tests/ChangeLog | 4 ++++ tests/scripts/features/patternrules | 33 ++++++++++++++++++++++++++--- 4 files changed, 41 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 9897a2c2..8d7dcbbb 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2005-03-04 Boris Kolpackov + + * imlicit.c (pattern_search): Mark files for which an implicit + rule has been found as targets. Fixes Savannah bug #12202. + 2005-03-04 Paul D. Smith * AUTHORS: Update. diff --git a/implicit.c b/implicit.c index acf7c944..ab3879b4 100644 --- a/implicit.c +++ b/implicit.c @@ -803,6 +803,7 @@ pattern_search (struct file *file, int archive, f->cmds = imf->cmds; f->stem = imf->stem; f->also_make = imf->also_make; + f->is_target = 1; imf = lookup_file (d->intermediate_pattern); if (imf != 0 && imf->precious) f->precious = 1; @@ -881,6 +882,7 @@ pattern_search (struct file *file, int archive, } file->cmds = rule->cmds; + file->is_target = 1; /* If this rule builds other targets, too, put the others into FILE's `also_make' member. */ diff --git a/tests/ChangeLog b/tests/ChangeLog index cffcb2d2..ce8f460c 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,7 @@ +2005-03-04 Boris Kolpackov + + * features/patternrules: Add a test fo Savannah bug #12202. + 2005-03-03 Boris Kolpackov * scripts/features/se_implicit: Add a test for stem diff --git a/tests/scripts/features/patternrules b/tests/scripts/features/patternrules index 926695a2..3202a672 100644 --- a/tests/scripts/features/patternrules +++ b/tests/scripts/features/patternrules @@ -4,8 +4,10 @@ $description = "Test pattern rules."; $details = ""; -# Make sure that multiple patterns where the same target can be built are -# searched even if the first one fails to match properly. +# TEST #1: Make sure that multiple patterns where the same target +# can be built are searched even if the first one fails +# to match properly. +# run_make_test(' .PHONY: all @@ -33,7 +35,32 @@ a: void @true 3.implicit-phony: -', '', ''); +', +'', +''); + +# TEST #2: make sure files that are built via implicit rules are marked +# as targets (Savannah bug #12202). +# +run_make_test(' +TARGETS := foo foo.out + +.PHONY: all foo.in + +all: $(TARGETS) + +%: %.in + @echo $@ + +%.out: % + @echo $@ + +foo.in: ; @: + +', +'', +'foo +foo.out'); # This tells the test driver that the perl test script executed properly.