Why does Exodus use autotools and not Cmake?: Difference between revisions

From NEOSYS Dev Wiki
Jump to navigationJump to search
(New page: === 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 where...)
 
m (Reverted edits by Anecada (Talk) to last revision by Steve)
 
(5 intermediate revisions by 3 users not shown)
Line 1: Line 1:
=== Why does Exodus use autotools and not cmake ===
=== 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 automake - but you are left with the far larger problem of creating packages for installation on the huge variety of target operating systems.
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.
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.
Line 7: Line 7:
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 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 common 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 will ensure that the c++ compiler and acceptable versions of the boost and postgres libraries are installed before proceeding.
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


wget http://devwiki/neosys.com/download/exodus-9.6.tar.gz
tar xvfz exodus-9.6.tar.gz
cd exodus-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.
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!