So far I've also always found `make` to be the best option for what I need, especially because it's already available everywhere (albeit sadly in very subtly incompatible versions).
Anyways, one thing that has always bothered me about make is that it so much depends on file modification dates. Imagine if it would instead use a very optimised hashing algorithm over the input content. Content can be a file or any URI, so it uses wget/curl and ssh as a dependency. Hashing is optimized such that it fails early - e.g. hash in n kB increments, mark as new and return if changed.
Imagine how well this would now suddenly integrate into our modern web service based landscape. You could hook together services quite easily:
all: report.csv
report.csv: ${customers_json_uri} ${earnings_json_uri}
${report_executable} $^ > $@
Has anyone built something like this already?