COIN-OR::LEMON - Graph Library

Changes between Initial Version and Version 1 of InstallAutotool


Ignore:
Timestamp:
01/20/09 16:57:05 (15 years ago)
Author:
Alpar Juttner
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • InstallAutotool

    v1 v1  
     1= Install on Linux/Unix (using autotool) =
     2
     3== Hardware and Software Requirements ==
     4
     5In LEMON we use C++ templates heavily, thus compilation takes a
     6considerable amount of time and memory. So some decent box would be
     7advantageous, but otherwise there are no special hardware requirements.
     8
     9You will need a recent C++ compiler. Our primary target is the GNU C++
     10Compiler (g++), from version 3.3 upwards. We also checked the Intel C++
     11Compiler (icc) and Microsoft Visual C++ (on Windows).
     12If you want to develop with LEMON under Windows, you can use a Windows
     13installer or you can consider using Cygwin.
     14
     15In this description we will suppose a Linux environment and GNU C++ Compiler.
     16If you would like to develop under Windows and use a Windows installer,
     17you could skip the following sections and continue reading
     18\ref basic_concepts.
     19However keep in mind that you have to make appropriate steps instead of
     20the instructions detailed here to be able to use LEMON with your compiler.
     21
     22=== LP Solver Requirements ===
     23
     24The LEMON LP solver interface can use the GLPK (GNU Linear Programming
     25Kit), CPLEX and {{{SoPlex}}} solver. If you want to use it, you will need at
     26least one of these.
     27See the '''{{{INSTALL}}}''' file how to enable these at compile time.
     28
     29=== Install from Source ===
     30
     31You can download LEMON from the web site:
     32[http://lemon.cs.elte.hu].
     33There you will find released versions in form of {{{.tar.gz}}} files.
     34If you want a developer version (for example you want to contribute in
     35developing LEMON) then you might want to use our Mercurial repository.
     36This case is detailed [install_hg later], so from now on we
     37suppose that you downloaded a {{{.tar.gz}}} file.
     38
     39Thus you have to do the following steps.
     40
     41Download the tarball either from the browser or just issuing
     42
     43{{{
     44wget http://lemon.cs.elte.hu/pub/sources/lemon-1.0.tar.gz
     45}}}
     46
     47Note, that the tarball is named {{{lemon-x.y.z.tar.gz}}} where {{{x}}}, {{{y}}} and {{{z}}} (which is missing if it is 0) are numbers indicating the
     48version of the library, in our example we will have
     49{{{lemon-1.0.1.tar.gz}}}.
     50
     51Then issue the following commands:
     52
     53{{{
     54tar xvzf lemon-1.0.1.tar.gz
     55cd lemon-1.0.1
     56./configure
     57make
     58make check    # This is optional, but recommended. It runs a bunch of tests.
     59make install
     60}}}
     61
     62These commands install LEMON under {{{/usr/local}}} (you will
     63need root privileges to be able to install to that
     64directory). If you want to install it to some other place, then
     65pass the {{{--prefix=DIRECTORY}}} flag to {{{./configure}}}, for example:
     66
     67{{{
     68./configure --prefix=/home/username/lemon
     69}}}
     70
     71We briefly explain these commands below.
     72
     73{{{
     74tar xvzf lemon-1.0.tar.gz
     75}}}
     76This command untars the {{{tar.gz}}} file into a directory named
     77{{{lemon-1.0}}}.
     78
     79{{{
     80cd lemon-1.0
     81}}}
     82This command enters the directory.
     83
     84{{{
     85./configure
     86}}}
     87This command runs the configure shell script, which does some checks and
     88creates the makefiles.
     89
     90{{{
     91make
     92}}}
     93This command compiles the non-template part of LEMON into {{{libemon.a}}}
     94file. It also compiles the programs in the tools and demo subdirectories
     95when enabled.
     96
     97{{{
     98make check
     99}}}
     100This step is optional, but recommended. It performs a bunch of library
     101self-tests.
     102
     103{{{
     104make install
     105}}}
     106This command will copy the directory structure to its final destination
     107(e.g. to {{{/usr/local}}}) so that your system can access it.
     108This command should be issued as "root", unless you provided a
     109{{{--prefix}}} switch to the {{{configure}}} to install the library in
     110non-default location.
     111
     112Several other configure flags can be passed to {{{./configure}}}.
     113For more information see the {{{INSTALL}}} file.
     114
     115=== Install the Latest Development Version ===
     116
     117You can also use the latest (developer) version of LEMON from our Mercurial
     118repository. You need a couple additional tool for that.
     119
     120 - [http://www.selenic.com/mercurial Mercurial]
     121   - for obtaining the latest code (and for contributing into it)
     122 - [http://www.gnu.org/software/automake/ automake] (1.7 or newer)
     123 - [http://www.gnu.org/software/autoconf/ autoconf] (2.59 or newer)
     124 - [http://www.gnu.org/software/libtool/ libtool]
     125 - [http://pkgconfig.freedesktop.org/ pkgconfig]
     126   - for initializing the build framework
     127 - [http://doxygen.org Doxygen]
     128   - for generating the documentations (optional, but recommended)
     129
     130Once you have all these tools installed, the process is fairly easy.
     131First, you have to get the copy of the latest version.
     132
     133{{{
     134hg clone http://lemon.cs.elte.hu/hg/lemon-main lemon-src
     135}}}
     136
     137The next step is to initialize the build system.
     138
     139{{{
     140autoreconf -vif
     141}}}
     142
     143Then the process is the same as in case of using the release tarball.
     144
     145{{{
     146./configure
     147make
     148make check    # This is optional, but recommended. It runs a bunch of tests.
     149make install
     150}}}
     151
     152To generate the documentation, just run
     153{{{
     154make html
     155}}}