This is as much a survey question as anything: I would like to know what your favorite make system is and why. I have worked with a number of them over the years though in recent history I have been leaning more towards those that work in cross-platform environments.
My "go-to" make system is CMake CMake - Cross Platform Make
Pros: Easy for new programmers to grasp, works remarkably well across Win/Lin/Mac, well documented.
Cons: Not as well known.
Second choice is SCons. Written in Python (a language I know), works well on non-standard platforms. Cons: I cannot name anything specific but have had issues with it in the past with dealing with loadable libraries (DLL on Windows, Shared objects on Linux).
I have worked with autoconf/automake in the past and can generally get the job done but it has one heck of a learning curve (compared to the others).
Bakefiles: when doing a wxWindows app this is pretty much the defacto standard for building and since it is just XML, it is easy to work with. Works well on Win/Lin/Mac. Cons are that it is not that well known or documented.
How about you?
Noel Llopis has a few rather old blog entries on this topic:
The Quest for the Perfect Build System (June 2005)
The Quest for the Perfect Build System (Part 2) (September 2005)
Bad News for Scons Fans (September 2008)
I have been looking at Waf as an alternative to SCons, but so far not much work with it (since I only use these tools for rather small hobby projects, so my requirements are quite low).
CMake doens't fix much of the problems with make... IMO it's horrible, they didn't need to invent a syntax. Even if they did, it could have been much simpler. And per-target defines are hideous and unsupported (there is no direct, simple way of doing them).
I'm going to chuck my vote in for Bakefile, seriously it's wonderful. What do you mean not well documented? It's perfectly documented... https://www.bakefile.org/doc/index.html
One key thing that CMake brings to the table is the fact that it is far more approachable by non-Makefile-oriented people such as Windows and Mac folks. Sometimes you have to make the choice between a make system that can make anywhere and one that can be quickly understood by any programmer. What is right for my situation is almost certainly not right for everyone. I never meant to claim that it is better than any other system, just one that I know and have used for many years with great success whereas Makefiles themselves have proven to be debugging nightmares.
Originally Posted by zacs7
WRT the Bakefiles, I really do like them. By documentation I simply meant that there is a published book on getting the most out of CMake whereas there isn't one that I know of for Bakefiles.
@LL: I am looking into Waf....the more you know the more you know...