/* -*- mode: C++; indent-tabs-mode: nil; -*-
*
* This file is a part of LEMON, a generic C++ optimization library.
*
* Copyright (C) 2003-2008
* Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
* (Egervary Research Group on Combinatorial Optimization, EGRES).
*
* Permission to use, modify and distribute this software is granted
* provided that this copyright notice appears in all copies. For
* precise terms see the accompanying LICENSE file.
*
* This software is provided "AS IS" with no warranty of any kind,
* express or implied, and with no claim as to its suitability for any
* purpose.
*
*/
/**
[PAGE]install[PAGE] Installation Guide
In this section we detail how to start using LEMON, from downloading it
to your computer, through the steps of installation, to showing how to
compile programs that use LEMON. We assume that you
have a basic knowledge of your operating system and C++ programming
language. The procedure is pretty straightforward, but if you have any
difficulties do not hesitate to
ask.
[SEC]requirements_lemon[SEC] Hardware and Software Requirements
In LEMON we use C++ templates heavily, thus compilation takes a
considerable amount of time and memory. So some decent box would be
advantageousm, but otherwise there are no special hardware requirements.
You will need a recent C++ compiler. Our primary target is the GNU C++
Compiler (g++), from version 3.3 upwards. We also checked the Intel C++
Compiler (icc) and Microsoft Visual C++ (on Windows).
If you want to develop with LEMON under Windows, you can use a Windows
installer or you can consider using Cygwin.
In this description we will suppose a Linux environment and GNU C++ Compiler.
If you would like to develop under Windows and use a Windows installer,
you could skip the following sections and continue reading
\ref basic_concepts.
However keep in mind that you have to make appropriate steps instead of
the instructions detailed here to be able to use LEMON with your compiler.
[SEC]requirements_lp[SEC] LP Solver Requirements
The LEMON LP solver interface can use the GLPK (GNU Linear Programming
Kit), CPLEX and SoPlex solver. If you want to use it, you will need at
least one of these.
See the INSTALL file how to enable these at compile time.
[SEC]install_from_source[SEC] Install from Source
You can download LEMON from the web site:
http://lemon.cs.elte.hu/.
There you will find released versions in form of .tar.gz files
(and Windows installers).
If you want a developer version (for example you want to contribute in
developing LEMON) then you might want to use our Mercurial repository.
This case is detailed \ref install_hg "later", so from now on we
suppose that you downloaded a .tar.gz file.
Thus you have to do the following steps.
Download the tarball either from the browser or just issuing
\verbatim
wget http://lemon.cs.elte.hu/pub/sources/lemon-1.0.tar.gz
\endverbatim
\note The tarball is named lemon-x.y.z.tar.gz where \c x, \c
y and \c z (which is missing if it is 0) are numbers indicating the
version of the library, in our example we will have
lemon-1.0.tar.gz.
Then issue the following commands:
\verbatim
tar xvzf lemon-1.0.tar.gz
cd lemon-1.0
./configure
make
make check # This is optional, but recommended. It runs a bunch of tests.
make install
\endverbatim
These commands install LEMON under \c /usr/local (you will
need root privileges to be able to install to that
directory). If you want to install it to some other place, then
pass the \c --prefix=DIRECTORY flag to ./configure, for example:
\verbatim
./configure --prefix=/home/username/lemon
\endverbatim
We briefly explain these commands below.
\verbatim
tar xvzf lemon-1.0.tar.gz
\endverbatim
This command untars the tar.gz file into a directory named
lemon-1.0.
\verbatim
cd lemon-1.0
\endverbatim
This command enters the directory.
\verbatim
./configure
\endverbatim
This command runs the configure shell script, which does some checks and
creates the makefiles.
\verbatim
make
\endverbatim
This command compiles the non-template part of LEMON into libemon.a
file. It also compiles the programs in the tools and demo subdirectories
when enabled.
\verbatim
make check
\endverbatim
This step is optional, but recommended. It performes a bunch of library
self-tests.
\verbatim
make install
\endverbatim
This command will copy the directory structure to its final destination
(e.g. to \c /usr/local) so that your system can access it.
This command should be issued as "root", unless you provided a
\c --prefix switch to the \c configure to install the library in
non-default location.
Several other configure flags can be passed to ./configure.
For more information see the INSTALL file.
[SEC]install_hg[SEC] Install the Latest Development Version
You can also use the latest (developer) version of LEMON from our Mercurial
repository. You need a couple additional tool for that.
- Mercurial
- for obtaining the latest code (and for contributing into it)
- automake (1.7 or newer)
- autoconf (2.59 or newer)
- libtool
- pkgconfig
- for initializing the build framework
- Doxygen
- for generating the documentations (optional, but recommended)
Once you have all these tools installed, the process is fairly easy.
First, you have to get the copy of the latest version.
\verbatim
hg clone http://lemon.cs.elte.hu/hg/lemon-main lemon-src
\endverbatim
The next step is to initialize the build system.
\verbatim
autoreconf -vif
\endverbatim
Then the process is the same as in case of using the release tarball.
\verbatim
./configure
make
make check # This is optional, but recommended. It runs a bunch of tests.
make install
\endverbatim
To generate the documentation, just run
\verbatim
make html
\endverbatim
\todo Is make html really necessary after
make install?
[SEC]install_rpm[SEC] Install from rpm
\todo Write this section (\ref install_rpm).
[SEC]install_user[SEC] Install Locally to the User
\todo Write this section (\ref install_user).
[SEC]compile_codes[SEC] Compile Codes that Use LEMON
Now let us see how to use the library after installing it.
[SEC]compile_system_wide[SEC] If LEMON is Installed System-Wide
If your installation of LEMON into directory \c /usr/local was
successful, then you have to issue a command like this to compile a
source file that uses LEMON.
\verbatim
g++ -lemon [other options]