install.dox
changeset 7 934258c64b6b
child 9 a48bf0d3a790
equal deleted inserted replaced
-1:000000000000 0:138e057cdf45
       
     1 /* -*- mode: C++; indent-tabs-mode: nil; -*-
       
     2  *
       
     3  * This file is a part of LEMON, a generic C++ optimization library.
       
     4  *
       
     5  * Copyright (C) 2003-2008
       
     6  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
       
     7  * (Egervary Research Group on Combinatorial Optimization, EGRES).
       
     8  *
       
     9  * Permission to use, modify and distribute this software is granted
       
    10  * provided that this copyright notice appears in all copies. For
       
    11  * precise terms see the accompanying LICENSE file.
       
    12  *
       
    13  * This software is provided "AS IS" with no warranty of any kind,
       
    14  * express or implied, and with no claim as to its suitability for any
       
    15  * purpose.
       
    16  *
       
    17  */
       
    18 
       
    19 /**
       
    20 \page install Installation Guide
       
    21 
       
    22 In this page we detail how to start using LEMON, from downloading it to
       
    23 your computer, through the steps of installation, to showing a simple
       
    24 "Hello World" type program that already uses LEMON. We assume that you
       
    25 have a basic knowledge of your operating system and C++ programming
       
    26 language. The procedure is pretty straightforward, but if you have any
       
    27 difficulties do not hesitate to
       
    28 <a href="mailto:lemon-user@lemon.cs.elte.hu"><b>ask</b></a>.
       
    29 
       
    30 \section requirements_lemon Hardware and Software Requirements
       
    31 
       
    32 In LEMON we use C++ templates heavily, thus compilation takes a
       
    33 considerable amount of time and memory. So some decent box would be
       
    34 advantageousm, but otherwise there are no special hardware requirements.
       
    35 
       
    36 You will need a recent C++ compiler. Our primary target is the GNU C++
       
    37 Compiler (g++), from version 3.3 upwards. We also checked the Intel C++
       
    38 Compiler (icc) and Microsoft Visual C++ (on Windows).
       
    39 If you want to develop with LEMON under Windows, you can use a Windows
       
    40 installer or you can consider using Cygwin.
       
    41 
       
    42 In this description we will suppose a Linux environment and GNU C++ Compiler.
       
    43 If you would like to develop under Windows and use a Windows installer,
       
    44 you could skip the following sections and continue reading \ref hello_lemon.
       
    45 However keep in mind that you have to make appropriate steps instead of
       
    46 the instructions detailed here to be able to compile the example code
       
    47 with your compiler.
       
    48 
       
    49 \subsection requirements_lp LP Solver Requirements
       
    50 
       
    51 The LEMON LP solver interface can use the GLPK (GNU Linear Programming
       
    52 Kit), CPLEX and SoPlex solver. If you want to use it, you will need at
       
    53 least one of these.
       
    54 See the <b><tt>INSTALL</tt></b> file how to enable these at compile time.
       
    55 
       
    56 \section install_from_source Install from Source
       
    57 
       
    58 You can download LEMON from the web site:
       
    59 <a href="http://lemon.cs.elte.hu/">http://lemon.cs.elte.hu/</a>.
       
    60 There you will find released versions in form of <tt>.tar.gz</tt> files
       
    61 (and Windows installers).
       
    62 If you want a developer version (for example you want to contribute in
       
    63 developing LEMON) then you might want to use our Mercurial repository.
       
    64 This case is detailed \ref hg_checkout "later", so from now on we
       
    65 suppose that you downloaded a <tt>.tar.gz</tt> file.
       
    66 
       
    67 Thus you have to do the following steps.
       
    68 
       
    69 Download the tarball either from the browser or just issuing
       
    70 
       
    71 \verbatim
       
    72 wget http://lemon.cs.elte.hu/pub/sources/lemon-1.0.tar.gz
       
    73 \endverbatim
       
    74 
       
    75 \note The tarball is named <tt>lemon-x.y.z.tar.gz</tt> where \c x, \c
       
    76 y and \c z (which is missing if it is 0) are numbers indicating the
       
    77 version of the library, in our example we will have
       
    78 <tt>lemon-1.0.tar.gz</tt>.
       
    79 
       
    80 Then issue the following commands:
       
    81 
       
    82 \verbatim
       
    83 tar xvzf lemon-1.0.tar.gz
       
    84 cd lemon-1.0
       
    85 ./configure
       
    86 make
       
    87 make check    # This is optional, but recommended. It runs a bunch of tests.
       
    88 make install
       
    89 \endverbatim
       
    90 
       
    91 These commands install LEMON under \c /usr/local (you will
       
    92 need root privileges to be able to install to that
       
    93 directory). If you want to install it to some other place, then
       
    94 pass the \c --prefix=DIRECTORY flag to <tt>./configure</tt>, for example:
       
    95 
       
    96 \verbatim
       
    97 ./configure --prefix=/home/username/lemon
       
    98 \endverbatim
       
    99 
       
   100 In what follows we will assume that you were able to install to directory
       
   101 \c /usr/local, otherwise some extra care is to be taken to use the library.
       
   102 
       
   103 We briefly explain these commands below.
       
   104 
       
   105 \verbatim
       
   106 tar xvzf lemon-1.0.tar.gz
       
   107 \endverbatim
       
   108 This command untars the <tt>tar.gz</tt> file into a directory named
       
   109 <tt>lemon-1.0</tt>.
       
   110 
       
   111 \verbatim
       
   112 cd lemon-1.0
       
   113 \endverbatim
       
   114 This command enters the directory.
       
   115 
       
   116 \verbatim
       
   117 ./configure
       
   118 \endverbatim
       
   119 This command runs the configure shell script, which does some checks and
       
   120 creates the makefiles.
       
   121 
       
   122 \verbatim
       
   123 make
       
   124 \endverbatim
       
   125 This command compiles the non-template part of LEMON into <tt>libemon.a</tt>
       
   126 file. It also compiles the programs in the tools and demo subdirectories
       
   127 when enabled.
       
   128 
       
   129 \verbatim
       
   130 make check
       
   131 \endverbatim
       
   132 This step is optional, but recommended. It performes a bunch of library
       
   133 self-tests.
       
   134 
       
   135 \verbatim
       
   136 make install
       
   137 \endverbatim
       
   138 This command will copy the directory structure to its final destination
       
   139 (e.g. to \c /usr/local) so that your system can access it.
       
   140 This command should be issued as "root", unless you provided a
       
   141 \c --prefix switch to the \c configure to install the library in
       
   142 non-default location.
       
   143 
       
   144 Several other configure flags can be passed to <tt>./configure</tt>.
       
   145 For more information see the <b><tt>INSTALL</tt></b> file.
       
   146 
       
   147 \subsection install_hg Install the latest development version
       
   148 
       
   149 You can also use the latest (developer) version of LEMON from our Mercurial
       
   150 repository. You need a couple additional tool for that
       
   151 
       
   152 - <a href="http://www.selenic.com/mercurial">Mercurial</a>
       
   153   - for obtaining the latest code (and for contributing into it)
       
   154 - <a href="http://www.gnu.org/software/automake/">automake</a> (1.7 or newer)
       
   155 - <a href="http://www.gnu.org/software/autoconf/">autoconf</a> (2.59 or newer)
       
   156 - <a href="http://www.gnu.org/software/libtool/">libtool</a>
       
   157 - <a href="http://pkgconfig.freedesktop.org/">pkgconfig</a>
       
   158   - for initializing the build framework
       
   159 - <a href="http://doxygen.org">Doxygen</a>
       
   160   - for generating the documentations (optional, but recommended)
       
   161 
       
   162 Once you have all these tools installed, the process is fairly easy.
       
   163 First, you have to get the copy of the lates version.
       
   164 
       
   165 \verbatim
       
   166 hg clone http://lemon.cs.elte.hu/hg/lemon-main lemon-src
       
   167 \endverbatim
       
   168 
       
   169 The next step is to initialize the build system.
       
   170 
       
   171 \verbatim
       
   172 autoreconf -vif
       
   173 \endverbatim
       
   174 
       
   175 Then the process is the same as in case of using the release tarball.
       
   176 
       
   177 \verbatim
       
   178 ./configure
       
   179 make
       
   180 make check    # This is optional, but recommended. It runs a bunch of tests.
       
   181 make install
       
   182 \endverbatim
       
   183 
       
   184 To generate the documentation, just run 
       
   185 \verbatim
       
   186 make html
       
   187 \endverbatim
       
   188 
       
   189 */