/* -*- 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 getting_started How to Start Using LEMON
In this page we detail how to start using LEMON, from downloading it to
your computer, through the steps of installation, to showing a simple
"Hello World" type program that already uses 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 don't hesitate to
ask.
\section requirements_lemon 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
advantageous. 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++ .NET 2003, 2005.
If you want to develop with LEMON under Windows you could consider
using Cygwin.
In this description we will suppose a Linux environment and GNU C++ Compiler.
\subsection requirements_lp LP Solver Requirements
The LEMON LP solver interface can use the GLPK (GNU Linear Programming
Kit), CPLEX (was tested with CPLEX 7.5) and SoPlex solver. If you want
to use it you will need at least one of these. See \ref configure_flags
how to enable these at compile time.
\section download_lemon How to Download LEMON
You can download LEMON from the LEMON web site:
https://lemon.cs.elte.hu/.
There you will find released versions in form of .tar.gz files.
If you want a developer version (for example you want to contribute in
developing the library LEMON) then you might want to use our Mercurial
repository. This case is detailed later, so from now on we suppose that
you downloaded a .tar.gz file.
\section install_lemon How to Install LEMON
In order to install LEMON you have to do the following steps.
Download the tarball (named lemon-x.y.z.tar.gz where \c x, \c y
and \c z are numbers indicating the version of the library, in our example
we will have lemon-1.0.tar.gz) and 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
In what follows we will assume that you were able to install to directory
\c /usr/local, otherwise some extra care is to be taken to use the library.
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 runs the test programs that
we developed for LEMON to check whether the library works properly on
your platform.
\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 ./configure --help and the INSTALL
file in the install directory.
\section hg_checkout How to Checkout LEMON from our Mercurial Repository
You can obtain the latest version of LEMON from our Mercurial repository.
To do this issue the following command:
\verbatim
hg clone http://lemon.cs.elte.hu/hg/lemon lemon-src
\endverbatim
\section hg_compile How to Compile the Source from the Repository
You can compile the code from the repository similarly to the packaged
version, but you will need to run autoreconf -vif or
./bootstrap in some older environment before
./configure. See ./configure --help for options.
For bootstrapping you will need the following tools:
- automake (1.7 or newer)
- autoconf (2.59 or newer)
- libtool
- pkgconfig
To generate the documentation, run make html.
You will need Doxygen for this.
*/