It is probably not newws to anyone on this list that autotools has turned into more trouble than it is really worth. I am pretty expert with it based on many years of experience, but I reached my personal limit recently while attempting to fix bug #8635.
There are only two people on the Wesnoth project who understand our autotools-based build machinery at all well. The other besides myself is Isaac de Clerencia, who is mostly inactive these days. Notably, our release manager *doesn't* really grok our build machinery. This adds up to a significant maintainance vulnerability. Ivanovic and I have agreed it's time to find a better build system. Fortunately, the problems with autotools have been building for long enough that alternatives have begun appearing, and some are relatively mature. Ivanovic and I began our search knowing of cmake and scons. In an email conversation with a GNOME developer we've had WAF recommended to us as potentially better than either. I've since been reading about all three. Here are my evaluations based on the documentation: cmake <http://www.cmake.org/HTML/Index.html> Pros: Relatively mature, well supported, well documented, strong cross-platform support. Probably a lot fewer sharp edges and broken bits than autotools. Cons: Ugly and heavyweight. The most like autotools of the three and that's *not* a compliment -- I'm not sure we'd gain a whole lot in simplicity from cmake. The design style of this tool makes me uneasy. I have no doubt that it works well within the limits the designers anticipated, but I have a suspicion it will be brittle and difficult if pushed even slightly past them. scons <http://www.scons.org/> Pros: Simpler than cmake. More readily extensible -- it's written in Python and the build recipes are declarations in a dialect of Python. Runs on Windows as well as Unixes. Cons: None I can see, except maybe that it's somewhat more complex than WAF. WAF <http://code.google.com/p/waf/> Pros: All the advantages of scons. Very small and lightweight. One script, no installation; you drop a copy in your project directory, write a handful of declarations in wscript files, and go. Recommended to us by a GNOME dev with both cmake and scons experience. Cons: Documentation is poor. Relatively new project, small dev team. I'd like to say we should go with WAF -- the lightness of the design appeals to me, and we've had it recommended. However, having read both sets of documentation, I think it would be more prudent to go with scons. Comments welcome, especially from anyone with experience of these tools. -- <a href="http://www.catb.org/~esr/">Eric S. Raymond</a> Certainly one of the chief guarantees of freedom under any government, no matter how popular and respected, is the right of the citizens to keep and bear arms. [...] the right of the citizens to bear arms is just one guarantee against arbitrary government and one more safeguard against a tyranny which now appears remote in America, but which historically has proved to be always possible. -- Hubert H. Humphrey, 1960 _______________________________________________ Wesnoth-dev mailing list [email protected] https://mail.gna.org/listinfo/wesnoth-dev
