Make or Break: 5 of the Best Build Systems

Scons is another option, written in Python. Technically, Gulp and Grunt fit the mold too. These may be classified as ‘task runners’ but that is effectively what a build system is. Also, Gyp used by Chromium and a number of other projects like Node. When you write a native plugin for Node, you are required to use Gyp as you might expect.

I do not have a favourite but I generally use CMake with C/C++, and simple Makefiles for various things (including many non-compiling things). CMake has the easiest language to write plugins for detecting libs and such. Prior to things like Composer, Makefiles were the way to go in a PHP project to get dependencies.

You really can go insane with Make and the strange language therein (it is especially easy when you target only one OS), but I would not recommend it. I would rather use Autohell than that, and even that is not that great. Apple has tended to use Make (and not Automake) for their open source projects (like CoreFoundation), for which (no surprises here) they generally have no intention of being cross-platform.