Why does Exodus use autotools and not Cmake?: Difference between revisions
(3 intermediate revisions by 2 users not shown) | |||
Line 9: | Line 9: | ||
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. | 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:// | wget http://www.neosys.com/support/exodus_all-9.6.tar.gz | ||
tar xvfz | tar xvfz exodus_all-9.6.tar.gz | ||
cd | cd exodus_all-9.6 | ||
./configure | ./configure | ||
make | make | ||
sudo make install | 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. Perhaps best of all | 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! |
Latest revision as of 14:01, 24 November 2010
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!