I'll add that I evaluate a build system by considering how it caters to the needs of the following categories of user:
1. Project developers
2. End users (who simply want to build the project)
3. Translators (who need rules for extracting, merging and updating translations)
4. Porters (who want to cross compile to another system, or build with a native toolchain on another system)
CMake and other systems that are sadly popular such as SCons or waf, fall over when considering the needs of those who aren't project developers themselves. For all its warts, autotools is the only system that caters adequately to the needs of all of the above groups.
Posted Aug 21, 2012 14:06 UTC (Tue) by hummassa (subscriber, #307)
[Link]
CMake is the second best build system, far far far behind autotools. Yes, it does not cater well to Group 4 (especially if cross-compiling is needed), but it's OK for the other three.
Kamp: A Generation Lost in the Bazaar
Posted Aug 21, 2012 15:27 UTC (Tue) by pboddie (subscriber, #50784)
[Link]
I've spent the last few days cross-compiling, and although the overhead of the build system in question may involve the use of autotools by some projects, my own rant would have something to do with people writing and promoting new tools whilst ignoring use-cases that result in those new tools being completely useless for various groups of people.
I've seen quite a bit of build system evolution and apathy towards cross-compiling in my time - just search the Python bug-tracker for the debris of attempts to get Python's build system to stop doing "I need to run myself on the host now!" and actually work for cross-compilation - and hoping that target devices will be powerful enough for everyone to forget about cross-compilation isn't a useful strategy.
I suppose people can argue that the "anarchy" has not only resulted in the construction of autotools - a dubious claim, since autotools does consider things that later tools ignore or miss, and thus does seem to have had some thought given to its functionality - but also the lack of maintenance of autotools and the proliferation of other tools that don't always measure up. Those things have more to do with the perceived cost of fixing things or developing new things than any particular development strategy, though.
Kamp: A Generation Lost in the Bazaar
Posted Aug 21, 2012 14:22 UTC (Tue) by Cyberax (✭ supporter ✭, #52523)
[Link]
I felt a little sick reading this:
>For all its warts, autotools is the only system that caters adequately to the needs of all of the above groups.
Autotools at most is an equal-opportunity serial murder, which chooses its victims from any of the four listed groups indiscriminately.
Kamp: A Generation Lost in the Bazaar
Posted Aug 22, 2012 17:21 UTC (Wed) by dashesy (subscriber, #74652)
[Link]
I enjoyed your analogy, I may borrow it for many discussions at work I guess.
I wish LWN adds the "Unread comments by $USER"
Kamp: A Generation Lost in the Bazaar
Posted Aug 23, 2012 22:09 UTC (Thu) by nix (subscriber, #2304)
[Link]
Recent versions of the autotools add parallel murder support if you set the AUTOMURDER_JOBS environment variable.