[cairo] Alternatives to autotools-based build systems
Gustavo Carneiro
gjcarneiro at gmail.com
Thu May 1 15:56:55 PDT 2008
If we're talking about autotools alternatives, there's also WAF:
http://code.google.com/p/waf/
It doesn't generate msvc project files, but it uses a well known and simple
language (python), is portable, and very fast. It actually avoids
generating files like CMake and autotools. Surely I am not the only one
who's sick of generated files...
(not that I would consider myself a Cairo hacker or anything; just
mentioning WAF for the sake of completeness...)
2008/4/29 Alan W. Irwin <irwin at beluga.phys.uvic.ca>:
> The recent troubles with libtool mentioned on list remind me of when we
> used
> autotools to build PLplot; it wasn't too bad, but on the other hand, every
> month or so there was yet another build-system irritation we had to solve.
> Thus, our developers were happy to replace autotools with CMake for our
> build system. CMake syntax is easy to learn yet extremely powerful so our
> developers were able to participate in the change rather than leaving it
> to
> just a couple of individuals. As a bonus it works well on essentially all
> Unix and Windows variants. For example, PLplot has had good build reports
> for Linux, Mac OS X, Cygwin, MinGW/MSYS, and windows with proprietary
> compilers.
>
> The cmake command is equivalent to autotools "configure", and after you
> run
> cmake, then you follow with the usual "make" and "make install". The use
> of
> the massive and slow libtool script during the build is replaced by
> configured Makefiles with the compile and link options built in. For this
> reason and others, CMake build-system latency is substantially reduced
> compared to autotools which is a nice bonus for developers. A CMake-based
> build system can coexist peacefully with an autotools-based build system
> so
> while we developed the new CMake-based build system we kept our old
> autotools build system alive to serve as a basis of comparison. However,
> we
> eventually dropped our autotools-based build system completely because
> nobody was willing to continue to deal with its irritations.
>
> Since creating our CMake-based build system, PLplot development
> has flourished (including a new cairo-based device driver), and in
> retrospect I believe it was the intimidation of the required autotools
> build-system changes that was holding our developers back before.
>
> I haven't explored autotools build system alternatives other than CMake,
> but
> my understanding is there are a lot of them that are maturing right now so
> the basic point I want to make is autotools was good enough in its day,
> but
> it is now time for most software projects to give a serious look at the
> much-better alternatives. There is nothing urgent about this step, but to
> my
> mind it should be on your agenda in a way very similar to how most
> software
> projects were considering replacements for CVS several years ago.
>
> Alan
> __________________________
> Alan W. Irwin
>
> Astronomical research affiliation with Department of Physics and
> Astronomy,
> University of Victoria (astrowww.phys.uvic.ca).
>
> Programming affiliations with the FreeEOS equation-of-state implementation
> for stellar interiors (freeeos.sf.net); PLplot scientific plotting
> software
> package (plplot.org); the libLASi project (unifont.org/lasi); the Loads of
> Linux Links project (loll.sf.net); and the Linux Brochure Project
> (lbproject.sf.net).
> __________________________
>
> Linux-powered Science
> __________________________
> _______________________________________________
> cairo mailing list
> cairo at cairographics.org
> http://lists.cairographics.org/mailman/listinfo/cairo
>
--
Gustavo J. A. M. Carneiro
INESC Porto, Telecommunications and Multimedia Unit
"The universe is always one step beyond logic." -- Frank Herbert
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.cairographics.org/archives/cairo/attachments/20080501/b3a9db2d/attachment-0001.htm
More information about the cairo
mailing list