|
From: | John W. Eaton |
Subject: | Re: Eliminating more recursive make invocations |
Date: | Mon, 13 Jul 2015 09:26:31 -0400 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Icedove/31.2.0 |
On 07/12/2015 09:12 PM, Rik wrote:
7/12/15 jwe, I've noticed that the new build system really likes to compile things. If I touch doc/interpreter/images.awk, it ends up re-building the single top-level Makefile which then causes *all* directories to be re-built which is quite time consuming. With the old system the change was isolated to doc/interpreter and only that directory was re-built. Is there any workaround for this?
Yes, eventually.The problem is that we put configuration variables into the Makefiles and then generate header files from them. Then to be correct, the list of dependencies includes the Makefile, but there are many reasons the Makefile could change that would not affect the generated files. So I think the solution is to be more careful about how we generate these files so that they don't need to depend on the Makefile. Probably the best thing is to place the configuration info in a separate files.
We could also use move-if-change more, but that introduces its own problems because then targets end up being always out of date, so you perform the generation step anyway, then throw away the result. That isn't bad if the generation steps are fast, but it's annoying when they are not.
jwe
[Prev in Thread] | Current Thread | [Next in Thread] |