---------- 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