Are you guys also reading this line as the relevant argument applying to my 
case:

https://pubs.opengroup.org/onlinepubs/9799919799/utilities/make.html

'Include lines and rules for creating dynamic include files do not depend 
[directly or indirectly] on the contents of any earlier dynamic include file.'

My case is: two include files, both dynamic with targets and recipes (targets A 
and B), a third non-include file (target C). A is producing the recipe for C, 
and B has C as prerequisite.

(Sorry for quoting POSIX on a GNU list.)

On Friday, June 20th, 2025 at 5:13 PM, Philip Guenther <guent...@gmail.com> 
wrote:

> 
> 
> ---------- Forwarded message ----------
> From: Philip Guenther <guent...@gmail.com>
> Date: Thursday, June 19, 2025
> Subject: Re-executing..., when and when not?
> To: WaitronCharm <waitronch...@proton.me>
> 
> 
> On Thu, Jun 19, 2025 at 2:31 PM WaitronCharm <waitronch...@proton.me> wrote:
> >
> > Thank you. Yes exactly that happens: 't4' is re-made in the 1st execution 
> > based on a -- by now -- outdated recipe.
> >
> > And why 'make' does not wait with that for the 2nd execution?
> >
> > I guess because 't9' is also included and 't9' has 't4' as prerequisite.
> 
> It does that because that's how it's defined to behave ("After *all*
> makefiles have been checked, if any have actually been changed, `make'
> starts with a clean slate and reads all the makefiles over again.",
> emphasis mine)
> 
> It's a more efficient process to build everything you can in one go,
> enabling parallel builds to be more effective.
> 
> 
> > Now I need to scratch my head how to resolve this (so far I believed 
> > correct)
> 
> IMHO the recipe for rebuilding t4 is not correct because it does not
> reflect that it must be run from a make process that has the current
> version of t2. Using a recursive make call fixes the recipe to not
> have that implicit dependency.
> 
> 
> Philip Guenther

Reply via email to