The more build scripts I write the more convinced I become that an ideal build system needs to be:
* Using declarative code as much as possible but still written in a good general purpose turing complete language (maybe python - not make).
* Built upon a foundation of well designed libraries, installable from a package manager that abstract common build workflows.
Make meets neither of these standards.