The Tup Build System
gittup.org
gittup.org
This will matter for large build systems where just loading the build files takes significant time. Another way to solve it is just to make loading the build file very fast so that it's a non-issue, which is what ninja [1] does.
Apparently there's some influence: "There are many other build systems that are more user-friendly or featureful than Ninja itself. For some recommendations: the Ninja author found the tup build system influential in Ninja’s design, and thinks redo's design is quite clever." [2]
[1] http://martine.github.io/ninja/ [2] http://martine.github.io/ninja/manual.html
for each file specified in tupfile
is target output file's creation date older than input file's last modified date?
yes -> build,
no -> skip.I particularly liked tup monitor - grunt-like functionality for C code is awesome.
Comparison to make is impressive: http://gittup.org/tup/make_vs_tup.html
[1] http://www.shakespeare-navigators.com/othello/T11.html
[2] https://www.google.com/search?q=define:tup
[3] https://git.wiki.kernel.org/index.php/GitFaq#Why_the_.27Git....
Other than that, it's great. I was able to replace my C++ project's (utilizing generated sources and headers and other nontrivial things) custom-written and brittle makefiles (of 100-ish lines) with under ten lines of Tup.
Is this more important or less important than all the stuff about directed acyclic graphs before it? Sheesh.