NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

bin/43534: make does not set $* for PHONY targets



>Number:         43534
>Category:       bin
>Synopsis:       make does not set $* for PHONY targets
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    bin-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Jun 27 01:15:00 +0000 2010
>Originator:     David A. Holland
>Release:        NetBSD 5.99.33 (20100627)
>Organization:
>Environment:
System: NetBSD tanaqui 5.99.22 NetBSD 5.99.22 (TANAQUI) #31: Tue Dec 8 22:53:35 
EST 2009 dholland@tanaqui:/usr/src/sys/arch/i386/compile/TANAQUI i386
Architecture: i386
Machine: i386
>Description:

$* a.k.a. $(.PREFIX) is not set for targets marked .PHONY.

This problem was noted as part of PR 43502 from Wolfgang Stukenbrock,
but is a separable issue.

>How-To-Repeat:

   ---
foo bar:
        echo $*

.PHONY: bar
   ---

   % make foo
   echo foo
   foo
   % make bar
   echo 

   % 

>Fix:

Not entirely clear. If it's just a matter of setting it to $@ by
default, setting it along with .TARGET on/near line 1333 of make.c
should do the trick; an explicit suffix match later will replace that
setting with the right one.

However, if we want any suffix that may be present to be removed, it's
not so trivial.

Since a comment on line 2412 of suff.c says that suffix rules aren't
used with .PHONY, maybe the former is adequate. It isn't consistent
with gmake; however, gmake is hardly the gold standard and it varies
in some other ways as well.

I'd like a second opinion or two.



Home | Main Index | Thread Index | Old Index