diff -r da96f28684f7 -r 934258c64b6b install.dox --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/install.dox Fri Oct 24 13:26:15 2008 +0100 @@ -0,0 +1,189 @@ +/* -*- 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 Installation Guide + +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 do not 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 +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 hello_lemon. +However keep in mind that you have to make appropriate steps instead of +the instructions detailed here to be able to compile the example code +with your compiler. + +\subsection requirements_lp 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. + +\section install_from_source 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 hg_checkout "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 + +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 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. + +\subsection install_hg 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 lates 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 + +*/