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

Reply via email to