ant, make and ermake

Rick Pettit rpettit@REDACTED
Thu Apr 14 17:52:41 CEST 2005


On Thu, Apr 14, 2005 at 04:55:53PM +0200, Marcin Kaszynski wrote:
> Rick Pettit wrote:
> >For C code I would really urge someone to give Autotools a shot. A page 
> >long
> >Makefile can be reduced to just a handful of lines in Makefile.am and
> >configure.ac and will produce the most lovely, portable binaries.
> >[...]
> >Just my 2 cents.
> 
> Slightly off topic, but I'll throw in another 2.
> 
> I recently converted a medium-sized project (quick check: 1630 .h and .cpp 
> files; lots of executables being built; uses Qt for GUI and portability; 
> includes some custom build rules) from autotools to scons (smarter make 
> replacement) and was _very_ pleased with the results.
>
> The configuration files are much more readable and make it much easier to 
> add custom rules for just about everything than autotools.  SCons handles 
> dependencies much, much better than anything else I tried so far -- doesn't 
> trust modification dates, but actually checks if the file contents changed 
> since the last build.
>
> It also keeps track of environment settings, so 
> adding or removing a compiler option will trigger a rebuild too.
> 
> And you get to write the configuration files in Python, so it is quite easy 
> to do weird stuff like writing your own little parser to create the build 
> rules based on information from a number of Makefile.am files (the project 
> had to be bulidable both using scons and autotools for some time).
> 
> I would strongly suggest giving scons a try.

Scons does look interesting. I think I will stick with Autotools, though, for
the following reasons:

  1) So much opensource stuff builds with it (including the OTP distro) that
     it's worth knowing either way

  2) Autotools have been around longer and I suspect they are quite a bit more
     mature than scons.
     
  3) Autotools don't require Python (they do require Perl but that seems to
     ship with most of the OSes we deal with anyhow)

  4) the output of a 'gmake dist' plugs so nicely into numerous packaging
     systems (this may be true of scons as well, I don't know)

That said I will poke around with scons in free time to see what I am missing.

-Rick



More information about the erlang-questions mailing list