Proposal to add build graph output to GNU Make (2020)
Considering that all build systems must keep a dependency graph internally, it’s surprising how many of them make it incredibly difficult to inspect <i>why</i> things are being rebuilt. I don’t really get it either, I’ve talked to a lot of people and getting feedback on how the build system is doing its task is one of the biggest complaints I see (others are “what is the build system doing” and “why does this have the worst syntax and weird edge cases”) and I mean all the build tools have literally everything they need to show this externally, but basically none expose it in a reasonable manner (if at all). I should be able to go, “oh you rebuilt all of libFoo.a because I accidentally made it depend on autogenerated.cpp”. If you are making a new build system today (and I am sure some of you here are considering it :P) <i>please</i> make this one of your priorities when designing the tool.