help-make
[Top][All Lists]
Advanced

[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: Paul Smith
Subject: Re: Multiple rules for same target: what is the order of prerequisites in $^ and what does $< expand to?
Date: Thu, 28 Sep 2023 09:41:54 -0400
User-agent: Evolution 3.50.0 (by Flathub.org)

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.

-- 
Paul D. Smith <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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]