ali

Comparison of build systems

In Uncategorized on February 4, 2010 at 11:05 pm

Some time ago I went looking for build systems. Currently we use
GNU Make and our make files have become unwieldy.

I remember reading an article comparing different build systems and going through the alternatives one-by-one.

Here’s what I looked at:

Jam

Jam is a make alternative developed by Perforce Software.

Not chosen because:

  • The last release was in 2003
  • It seems very C/C++ specific
  • No community (BTS, forums, public repository)

CMake

CMake is a build-system generator. It will generate project files for Visual Studio etc. and also create make files. Note that CMake must be installed on every machine where the build takes place.

I may eventually switch to CMake, as the lesser of all evils.

Not chosen (at the moment) because:

  • Complicated
  • The scope didn’t seem to fit: I don’t want a build system generator, I want a build system

Ant

We use Ant for Java. I’ve played enough with Ant to know that I don’t want to use it. To be fair, I could have invested more time learning Ant, but I really, really don’t want to write XML.

Not chosen because:

  • Complicated
  • XML
  • Requires the JVM to run (huge)

Scons

I played with SCons and Waf a little bit. I gave up on Waf after trying to do a few odd things and not finding any documentation.

SCons was OK. I tried a small project and it seemed to work.

Not chosen because:

OMake

I like OCaml so I tried OMake. After doing two or three projects, I ended up not using it because:

  • Last release in 2007
  • Project seems dead
  • Cute output that is difficult to change
  • No package for Fedora

I say the project seems dead because:

Summary

At the moment I’m back to using GNU make after realizing that OMake is dead. I’ll investigate CMake and SCons again. If SCons hasn’t improved (speed wise), then alas, CMake is my only viable alternative.

Advertisements
%d bloggers like this: