Re: Potential Bug: `.PHONY` targets and order-only prerequisites

2022-05-21 Thread Paul Smith
On Sat, 2022-05-21 at 14:34 -0400, Dmitry Goncharov wrote: > On Sat, May 21, 2022 at 12:25 PM Paul Smith wrote: > > Maybe what you're saying is that make should throw an error or > > warning if you try to add an order-only prerequisite to a phony > > target, telling you that it will have no

Re: Potential Bug: `.PHONY` targets and order-only prerequisites

2022-05-21 Thread Dmitry Goncharov
On Sat, May 21, 2022 at 12:25 PM Paul Smith wrote: > Maybe what you're saying is that make should throw an error or warning > if you try to add an order-only prerequisite to a phony target, telling > you that it will have no effect on your makefile? Having a phony target depend (usually

Re: Potential Bug: `.PHONY` targets and order-only prerequisites

2022-05-21 Thread Alejandro Colomar
Hi Paul and Jacob, On 5/21/22 18:24, Paul Smith wrote: On Wed, 2022-05-18 at 14:36 -0700, Jacob Kopczynski wrote: The thing that the docs refer to as "impose order" is not a single thing, but two. I would characterize a normal prerequisite as doing three things rather than two: -

Re: Potential Bug: `.PHONY` targets and order-only prerequisites

2022-05-21 Thread Paul Smith
On Sat, 2022-05-21 at 19:06 +0200, Alejandro Colomar wrote: > By "once all children are complete" you are implying the "existence" > of the children (which make(1) doesn't really check, but one can > think of it as if it did). Perhaps that's the confusion. Make doesn't care about files at all

Re: Potential Bug: `.PHONY` targets and order-only prerequisites

2022-05-21 Thread Paul Smith
On Wed, 2022-05-18 at 14:36 -0700, Jacob Kopczynski wrote: > The thing that the docs refer to as "impose order" is not a single > thing, but two. I would characterize a normal prerequisite as doing > three things rather than two: > - update-marking: cause a target to be marked out of date if the >

Re: Potential Bug: `.PHONY` targets and order-only prerequisites

2022-05-18 Thread Dmitry Goncharov
On Wed, May 18, 2022 at 5:37 PM Jacob Kopczynski wrote: >> - it might make sense to state explicitly that order-only prereqs >> which are phony behave in all ways like standard prerequisites. This statement is simply incorrect. Order-only prerequisites which are phony do not behave like

Re: Potential Bug: `.PHONY` targets and order-only prerequisites

2022-05-18 Thread Jacob Kopczynski
The thing that the docs refer to as "impose order" is not a single thing, but two. I would characterize a normal prerequisite as doing three things rather than two: - *update-marking: *cause a target to be marked out of date if the prereq is marked out of date - *require-existence: *require the

Re: Potential Bug: `.PHONY` targets and order-only prerequisites

2022-05-18 Thread Paul Smith
On Wed, 2022-05-18 at 10:22 -0700, Jacob Kopczynski wrote: > I believe I understand. The name "order-only" is highly misleading > and should be changed - it does considerably more than "only" > "order"; the only thing it does not do is check the timestamp. As described in the docs there are only

Re: Potential Bug: `.PHONY` targets and order-only prerequisites

2022-05-18 Thread Jacob Kopczynski
I believe I understand. The name "order-only" is highly misleading and should be changed - it does considerably more than "only" "order"; the only thing it does not do is check the timestamp. This portion of the documentation *particularly* needs changing: > Occasionally, however, you have a

Re: Potential Bug: `.PHONY` targets and order-only prerequisites

2022-05-17 Thread Paul Smith
On Tue, 2022-05-17 at 22:32 +, Martin Dorey wrote: > >  all your targets are .PHONY, and thus are always rebuilt anyway > > If you "make down", the rule for "down-clean" doesn't run.  They're > only rebuilt if something causes them to be considered. > > >  order-only prerequisites are

Re: Potential Bug: `.PHONY` targets and order-only prerequisites

2022-05-17 Thread Martin Dorey
2 14:20 To: Jacob Kopczynski ; bug-make@gnu.org Subject: Re: Potential Bug: `.PHONY` targets and order-only prerequisites * EXTERNAL EMAIL * On Tue, 2022-05-17 at 14:00 -0700, Jacob Kopczynski wrote: > I'm unsure whether this is a bug or just undocumented, but I found a > con

Re: Potential Bug: `.PHONY` targets and order-only prerequisites

2022-05-17 Thread Paul Smith
On Tue, 2022-05-17 at 17:20 -0400, Paul Smith wrote: > this says two things: first, that b and c will both be rebuilt (if > necessary) before a's recipe is started, I guess I should be more clear about the "(if necessary)". What I mean is the same as if you had run "make b" or "make c" and make

Re: Potential Bug: `.PHONY` targets and order-only prerequisites

2022-05-17 Thread Paul Smith
On Tue, 2022-05-17 at 14:00 -0700, Jacob Kopczynski wrote: > I'm unsure whether this is a bug or just undocumented, but I found a > confusing interaction in a simple Makefile: You are misreading the documentation. I will quote: > A normal prerequisite makes two statements: first, it imposes an

Potential Bug: `.PHONY` targets and order-only prerequisites

2022-05-17 Thread Jacob Kopczynski
I'm unsure whether this is a bug or just undocumented, but I found a confusing interaction in a simple Makefile: > .PHONY: up > up: down | down-clean > docker-compose up -d > .PHONY: up-clean > up-clean: down-clean up > .PHONY: down > down: > docker-compose down > .PHONY: down-clean >