dolfin team mailing list archive
-
dolfin team
-
Mailing list archive
-
Message #03589
Build tests
As promised, I have now put up test builds for DOLFIN with Autotools,
SCons and CMake. Thanks to Arve Knudsen for putting together the
builds. The packages can be found here:
http://www.fenics.org/pub/software/misc/build-tests-2006-10-24/
This is a stripped-down version of DOLFIN with just a few of the
libraries (linear algebra and dependencies) and one simple demo.
I ask anyone who is interested to download and compare the three
different builds of DOLFIN and submit any comments to dolfin-dev.
Here are some initial statistics:
Autotools:
preconfigure: 8 s (aclocal, automake, autoconf)
configure: 16 s
make install: 60 s
make demo: 4 s
-----------------
total: 88 s
configuration files: 45 files, 50,000 lines
SCons:
scons: 36 s
-----------------
total: 36 s
configuration files: 4 files, 250 lines
CMake:
cmake: 1 s
make: 32 s
-----------------
total: 33 s
configuration files: 4 files, 73 lines
Here are some initial comments:
Autotools is "standard" but is slow, difficult to understand, composed
of a number of different tools (autoconf, automake, libtool, aclocal,
m4 scripts etc etc). Look also at the total number of lines of code in
configuration files: 50,000!
SCons is fast and brings down the number of lines of code needed to
set up the configuration. It's also attractive because it's Python so
you can do pretty much what you want in the configuration files. This
is also the drawback. You usually end up doing a significant amount of
coding in the configuration files. There is also no clear separation
of configure phase and build phase.
CMake is fastest and is also the smallest in terms of the size of the
configuration files. A large part of the configuration is just the
listing of the files to be compiled. The drawback would be that no one
here knows CMake very well, whereas a lot of people at Simula know
Scons *very* well. (Too well one could argue...)
A fourth option would be the PETSc build system, which could be an
option if there was a manual (maybe there is?) and a user community.
/Anders
Follow ups