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
Wesnoth-dev@gna.org
https://mail.gna.org/listinfo/wesnoth-dev

Reply via email to