URL: <http://savannah.gnu.org/bugs/?func=detailitem&item_id=16958>
Summary: Marking .PHONY dependencies as targets is a regression against 3.80 Project: make Submitted by: None Submitted on: Wednesday 06/28/2006 at 12:35 UTC Severity: 3 - Normal Item Group: Bug Status: None Privacy: Public Assigned to: None Open/Closed: Open Component Version: 3.81 Operating System: None Fixed Release: None _______________________________________________________ Details: Running "make foo" with a Makefile containing the following two rules produces different results with make 3.80 and 3.81. .PHONY: foo .DEFAULT: echo the target is $@ With 3.80, it prints "the target is foo", and with 3.81 it states that "Nothing to be done for `foo'". This was caused by adding the following line to file.c in int .PHONY case (line 675). f2->is_target = 1; This is a regression, since it breaks our makefiles, and I don't understand why phonies should be considered as explicit targets unless there are actual rules for them. The ChangeLog mentions this, but it doesn't really explain why the change was made. 2004-09-21 Boris Kolpackov <[EMAIL PROTECTED]> * file.c (snap_deps): Mark .PHONY prerequisites as targets. * implicit.c (pattern_search): When considering an implicit rule's prerequisite check that it is actually a target rather then just an entry in the file hashtable. _______________________________________________________ Reply to this item at: <http://savannah.gnu.org/bugs/?func=detailitem&item_id=16958> _______________________________________________ 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