pattern rule also makes.
+2005-12-09 Boris Kolpackov <boris@kolpackov.net>
+
+ * implicit.c (pattern_search): Mark other files that this rule
+ builds as targets so that they are not treated as intermediates
+ by the pattern rule search algorithm. Fixes bug #13022.
+
2005-12-07 Boris Kolpackov <boris@kolpackov.net>
* remake.c (notice_finished_file): Propagate the change of
if (f && f->precious)
new->file->precious = 1;
+ /* Set the is_target flag so that this file is not treated
+ as intermediate by the pattern rule search algorithm and
+ file_exists_p cannot pick it up yet. */
+ new->file->is_target = 1;
+
file->also_make = new;
}
+2005-12-09 Boris Kolpackov <boris@kolpackov.net>
+
+ * scripts/features/patternrules: Add a test for bug #13022.
+
2005-12-07 Boris Kolpackov <boris@kolpackov.net>
* scripts/features/double_colon: Add a test for bug #14334.
unlink("$dir/foo.bar");
+
+# TEST #5: make sure targets of a macthed implicit pattern rule never
+# never considered intermediate (Savannah bug #13022).
+#
+run_make_test('
+.PHONY: all
+all: foo.c foo.o
+
+%.h %.c: %.in
+ touch $*.h
+ touch $*.c
+
+%.o: %.c %.h
+ echo $+ >$@
+
+%.o: %.c
+ @echo wrong rule
+
+foo.in:
+ touch $@
+
+',
+'',
+'touch foo.in
+touch foo.h
+touch foo.c
+echo foo.c foo.h >foo.o');
+
+unlink('foo.in', 'foo.h', 'foo.c', 'foo.o');
+
# This tells the test driver that the perl test script executed properly.
1;