For example, looking at what go install does wrt what a few mkfiles would do for the same go source is illustrative of what I'm trying to say.
I've never seen a mkfile that builds a transitive dependency graph given only the source code, downloads the relative dependencies from the network, builds all the dependencies, and installs the result. Yes mk could do that, but it would need a lot of help, and that help is not going to materialize. Why use mk when the source code has all the information you need to build the program? I was a big fan of mk, and it (or make, depending) is still used to help bootstrap the Go installation, but honestly I do not miss writing mkfiles one bit. -rob