[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Why are phony order-only prerequisites always fired?
From: |
Akim Demaille |
Subject: |
Re: Why are phony order-only prerequisites always fired? |
Date: |
Thu, 5 May 2011 17:02:16 +0200 |
Le 5 mai 2011 à 16:12, Greg Chicares a écrit :
Hi Greg,
> On 2011-05-05 13:05Z, Akim Demaille wrote:
>>
>> This file is declared phony because there's no visible way for Make to know
>> when to update it: just update it each time we need it.
>
> Okay, but that file is a prerequisite of a target that 'make' does update...
What do you mean by "update"? If you mean "run the corresponding recipe", then
no:
$ make
date >>revision.sty
Make has updated revision.sty, but it has not run the recipes of either foo.pdf
or bar.pdf.
>> Yet, GNU Make seems to always run the recipes of the order-only prerequisites
>
> Because the prerequisite is phony.
>
> http://www.gnu.org/software/make/manual/html_node/Phony-Targets.html
> | A phony target should not be a prerequisite of a real target file;
> | if it is, its recipe will be run every time make goes to update that file.
Yes, I read this, but my understanding was that this text referred to regular
prerequisites, not the order-only ones. And indeed this paragraph does not
apply to order-only prerequisite as precisely, that file is not updated (which
is good, I'm only wondering why the order-only prerequisite is updated anyway).
Or I have misunderstood something.