On Thu, Dec 25, 2008 at 09:03:48PM +0100, Loïc Minier wrote:
> Package: make
> Version: 3.81-5
> Severity: normal

I believe this is not a bug at all.  It is expected, documented
behavior.

>     % make install-foo install-bar
>     make: Nothing to be done for `install-foo'.
>     make: Nothing to be done for `install-bar'.
>  Err, these look just like install except these are implicit, but these
>  don't get remade.  All are .PHONY.

,---- '(make)Phony Targets'
|    Since it knows that phony targets do not name actual files that
| could be remade from other files, `make' skips the implicit rule search
| for phony targets (*note Implicit Rules).  This is why declaring a
| target phony is good for performance, even if you are not worried about
| the actual file existing.
`----

So these targets exist as phony targets, but there is actually no
recipe for them.  That's a feature.

>     % make install-foobar
>     install-foobar
>  Not .PHONY and implicit, works again.

It works namely because it's not phony.

>     % make test2
>     test2
>  Err, this looks just like test but install-test2 is .PHONY and this
>  causes the install-test2 target *not* to be remade...

Right.  Make searches for explicit rule for install-test2, and there
is none.  So it proceeeds...  If you define an install-test2 rule, it
will override your pattern rule and you'd get what you expect.

What make actually "sees" in your case is something like this:

install-test2: ;

test2: install-test2
        @echo $@

.PHONY: install-test2 test2

>     % make foobar-2
>     make: Nothing to be done for `foobar-2'.
>  Grr.

This and the rest of the examples are a consequence of the same
invalid expectation.

>     % make foobar-3
>     touch baz2
>     foobar-3
>     % make foobar-3
>     foobar-3
>  GRR.

Correct -- foobar-3 depends on baz2; once the file is created make
considers it up-to-date and does not run baz2's recipe.



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to