Why does Exodus use autotools and not Cmake?

From NEOSYS Dev Wiki
Revision as of 18:22, 26 July 2009 by Steve (talk | contribs)
Jump to navigationJump to search

Why does Exodus use autotools and not cmake

Primarily because it almost completely solves all the issues of building, packaging and installing on any Linux/Unix/Mingw system whereas Cmake only does building. If all you want is a simple portable build system then Cmake is probably simpler than autotools - but then you are still left with the far larger problem of creating packages for installation on the huge variety of target operating systems.

Building and packaging on Windows can either be done using autotools under cygwin and/or mingw or it can also be done using MS tools like Visual Studio. Packaging and installing on Windows is much less of an issue on Windows due to its long term binary stability and an NSIS package will be developed shortly since the free version of VS cannot run Exodus’ VS deployment project.

The well known steep learning curve for autotools is only required to setup the initial configure.ac and Makefile.am files and this has already been accomplished.

The strategy of installing from source instead of binaries is more suited to projects in their early stages since it favours developers of Exodus instead of users of Exodus. In the future, Exodus may produce binary packages targeting specific popular operating systems in the usual way. Building from source requires running a set of classic commands at a console with root privileges and can be done by anybody with basic IT skills. The process does not automatically install the required dependencies (c++ compiler and acceptable versions of the boost and postgres libraries) and will not proceed until they are installed.

wget http://www.neosys.com/support/exodus_all-9.6.tar.gz
tar xvfz exodus_all-9.6.tar.gz
cd exodus_all-9.6
./configure
make
sudo make install

If you feel like patching any of the source code files then you can easily recompile and reinstall by repeating the last two steps.

make
sudo make install

Perhaps best of all you can trivially package up your new version into a installable gz file. This provides a fundamental freedom to modify and propagate software.

make dist

... and send your new .tar.gz file to your appreciative fans!