The longevity of make
I recently rewrote the build system for Pola from ant to GNU make. Keeping things in ant was getting to be too much work, trying to be proper and writing tasks (in Java) rather than just using the shell. I was initially a little worried about how much work it would be to redo the build system, but I was pleasantly reminded by how simple it is. It took probably about a quarter the amount of time to rewrite the entire build system from scratch in make than it would have taken to do a little incremental change to the ant system. As a bonus I managed to clean up the project a lot, reducing the build system down to just two files of a combined 70 lines.
I briefly skimmed through other build system, cmake, SCons, even cabal, but for all the talk of simplification and portability, they don’t seem to offer enough over make to get rid of it. Maybe I’m too corrupted by the Unix way of doing things, but building software, for me, always boils down to a few shell commands with a bit of dependency handling, which is pretty much the definition of make. If a build system uses anything other than the shell as its “native language” I end up fighting with it.
On the portability side of things, I would probably look at this issue differently if I were building libraries instead of just executables and documentation, but I’ve never seen portability to Windows (for instance) as such a compelling win that it strikes me as a better solution than just installing cygwin.