summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@kolpackov.net>2005-03-04 14:31:09 +0000
committerBoris Kolpackov <boris@kolpackov.net>2005-03-04 14:31:09 +0000
commit2860d3b247e70a34246936fb085aeec951ea49b1 (patch)
tree83d22d4a32ecba8946b5dc002d9a15635c3a485d
parent28078b517a3151f18cf427be87600803251d732b (diff)
downloadgunmake-2860d3b247e70a34246936fb085aeec951ea49b1.tar.gz
Fixed Savannah bug #12202.
-rw-r--r--ChangeLog5
-rw-r--r--implicit.c2
-rw-r--r--tests/ChangeLog4
-rw-r--r--tests/scripts/features/patternrules33
4 files changed, 41 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 9897a2c..8d7dcbb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2005-03-04 Boris Kolpackov <boris@kolpackov.net>
+
+ * 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 <psmith@gnu.org>
* AUTHORS: Update.
diff --git a/implicit.c b/implicit.c
index acf7c94..ab3879b 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 cffcb2d..ce8f460 100644
--- a/tests/ChangeLog
+++ b/tests/ChangeLog
@@ -1,3 +1,7 @@
+2005-03-04 Boris Kolpackov <boris@kolpackov.net>
+
+ * features/patternrules: Add a test fo Savannah bug #12202.
+
2005-03-03 Boris Kolpackov <boris@kolpackov.net>
* scripts/features/se_implicit: Add a test for stem
diff --git a/tests/scripts/features/patternrules b/tests/scripts/features/patternrules
index 926695a..3202a67 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.