/* -*- 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. */