On Mon, 10 Jun 2019 15:40:53 -0800, Britton Kerin <britton.ke...@gmail.com> wrote: > No, just the rules that :Makefile, which you can easily tune if it matters. > Heck, you can include some_fragment.mk that has the recipes that > are a concern and depend on that if you really need that granularity, > and then the dependency that you want is explicit.
Using a lot of some_fragment.mk files gets you *closer*, but it's not the same thing. My proposed .COMMANDCHANGE depends on the *expanded* set of commands, not the original commands. That way, if you change a value (say CCFLAGS) the set of commands is considered *different* and will be re-run. For example: In file x.c.mk: x.o: x.c <TAB>$(CC) $(CCFLAGS) -o x.o x.c In file Makefile: include x.c.mk main: x.o x.c.mk ... Let's say I run this with: make CCFLAGS="-O1" main and in run #2 say: make CCFLAGS="-O3" main In run #2 the file x.c.mk has not changed, and x.o is still after x.c. Therefore, x.o will not be regenerated. If we add: .COMMANDCHANGE: then a change to CCFLAGS *will* cause re-execution of the rule that generates x.o. --- David A. Wheeler _______________________________________________ Bug-make mailing list Bug-make@gnu.org https://lists.gnu.org/mailman/listinfo/bug-make