[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: Multiple rules for same target: what is the order of prerequisites i
From: |
Cook, Malcolm |
Subject: |
RE: Multiple rules for same target: what is the order of prerequisites in $^ and what does $< expand to? |
Date: |
Thu, 28 Sep 2023 14:34:26 +0000 |
>On Wed, 2023-09-27 at 16:50 +0200, Renaud Pacalet wrote:
>> Thanks for your answer, Bahman. Not sure what "equivalent" means but
>> with the following Makefile:
>>
>> %.a: %.b
>>
>> a.a: a.c
>> echo $^
>
>The first pattern rule here does not define a pattern rule. It
>*cancels* a pattern rule. See:
>https://www.gnu.org/software/make/manual/html_node/Canceling-Rules.html
>
>It's not possible for two different pattern rules to both be in effect
>when building the same target, just like it's not possible for multiple
>implicit rules with recipes to be in effect.
>
>Basically, the way it works is that the prerequisites on the rule that
>has the recipe come first, and any other prerequisites added by rules
>without recipes are added afterwards, in the order in which they appear
>in the makefile.
>
Excellent!
This answers a question I've wondered about in the past.
Might this be included as part of [Multiple Rules for One
Target](https://www.gnu.org/software/make/manual/make.html#Multiple-Rules)
documentation?
~ Malcolm
>--
>Paul D. Smith <mailto:psmith@gnu.org> Find some GNU make tips at:
>https://www.gnu.org http://make.mad-scientist.net
>"Please remain calm...I may be mad, but I am a professional." --Mad
>Scientist>
Re: Multiple rules for same target: what is the order of prerequisites in $^ and what does $< expand to?, Mark Piffer, 2023/09/27