URL: <http://savannah.gnu.org/bugs/?32042>
Summary: Rules with multiple outputs and intermediate chains Project: make Submitted by: None Submitted on: Mon 03 Jan 2011 07:32:15 PM UTC Severity: 3 - Normal Item Group: Bug Status: None Privacy: Public Assigned to: None Open/Closed: Open Discussion Lock: Any Component Version: None Operating System: None Fixed Release: None Triage Status: None _______________________________________________________ Details: In the case below, if both output files from a pattern rule are later used as prerequisites, only the first one will be treated as intermediate. The steps to reproduce are below. Expected result of make all: foo.jkl is created, and all other files are created then deleted Actual result of make all: foo.jkl is created; foo.abc, foo.def, and foo.ghi are created; foo.abc and foo.def are deleted; foo.ghi is NOT deleted all: foo.jkl %.abc: date > $@ %.def %.ghi: %.abc @echo "Generating $*.def and $*.ghi from $*.abc" @sleep 2 @touch $*.def $*.ghi %.jkl: %.def %.ghi cat $^ > $@ clean: rm -f *.* When I change the makefile such that the pattern rule that creates %.def and %.ghi is created through the use of a template and $(eval $(call MY_TEMPLATE)) as in section 8.8 of the GNU Make Manual, neither foo.def nor foo.ghi are deleted. This behavior seems to be inconsistent with the description of how implicit chains should be handled (in section 10.4 of the manual). _______________________________________________________ Reply to this item at: <http://savannah.gnu.org/bugs/?32042> _______________________________________________ Message sent via/by Savannah http://savannah.gnu.org/ _______________________________________________ Bug-make mailing list Bug-make@gnu.org http://lists.gnu.org/mailman/listinfo/bug-make