getting_started.dox
changeset 5 29baa4a189bf
child 6 da96f28684f7
equal deleted inserted replaced
-1:000000000000 0:baad77908e37
       
     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 getting_started How to Start Using LEMON
       
    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 don't 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 advantageous. 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++ .NET 2003, 2005.
       
    39 If you want to develop with LEMON under Windows you could consider
       
    40 using Cygwin.
       
    41 
       
    42 In this description we will suppose a Linux environment and GNU C++ Compiler.
       
    43 
       
    44 \subsection requirements_lp LP Solver Requirements
       
    45 
       
    46 The LEMON LP solver interface can use the GLPK (GNU Linear Programming
       
    47 Kit), CPLEX (was tested with CPLEX 7.5) and SoPlex solver. If you want
       
    48 to use it you will need at least one of these. See \ref configure_flags
       
    49 how to enable these at compile time.
       
    50 
       
    51 \section download_lemon How to Download LEMON
       
    52 
       
    53 You can download LEMON from the LEMON web site:
       
    54 <a href="http://lemon.cs.elte.hu/">https://lemon.cs.elte.hu/</a>.
       
    55 There you will find released versions in form of <tt>.tar.gz</tt> files.
       
    56 If you want a developer version (for example you want to contribute in
       
    57 developing the library LEMON) then you might want to use our Mercurial
       
    58 repository. This case is detailed later, so from now on we suppose that
       
    59 you downloaded a <tt>.tar.gz</tt> file.
       
    60 
       
    61 \section install_lemon How to Install LEMON
       
    62 
       
    63 In order to install LEMON you have to do the following steps.
       
    64 
       
    65 Download the tarball (named <tt>lemon-x.y.z.tar.gz</tt> where \c x, \c y
       
    66 and \c z are numbers indicating the version of the library, in our example
       
    67 we will have <tt>lemon-1.0.tar.gz</tt>) and issue the following commands:
       
    68 
       
    69 \verbatim
       
    70 tar xvzf lemon-1.0.tar.gz
       
    71 cd lemon-1.0
       
    72 ./configure
       
    73 make
       
    74 make check    # This is optional, but recommended. It runs a bunch of tests.
       
    75 make install
       
    76 \endverbatim
       
    77 
       
    78 These commands install LEMON under \c /usr/local (you will
       
    79 need root privileges to be able to install to that
       
    80 directory). If you want to install it to some other place, then
       
    81 pass the \c --prefix=DIRECTORY flag to <tt>./configure</tt>, for example:
       
    82 
       
    83 \verbatim
       
    84 ./configure --prefix=/home/username/lemon
       
    85 \endverbatim
       
    86 
       
    87 In what follows we will assume that you were able to install to directory
       
    88 \c /usr/local, otherwise some extra care is to be taken to use the library.
       
    89 
       
    90 We briefly explain these commands below.
       
    91 
       
    92 \verbatim
       
    93 tar xvzf lemon-1.0.tar.gz
       
    94 \endverbatim
       
    95 This command untars the <tt>tar.gz</tt> file into a directory named
       
    96 <tt>lemon-1.0</tt>.
       
    97 
       
    98 \verbatim
       
    99 cd lemon-1.0
       
   100 \endverbatim
       
   101 This command enters the directory.
       
   102 
       
   103 \verbatim
       
   104 ./configure
       
   105 \endverbatim
       
   106 This command runs the configure shell script, which does some checks and
       
   107 creates the makefiles.
       
   108 
       
   109 \verbatim
       
   110 make
       
   111 \endverbatim
       
   112 This command compiles the non-template part of LEMON into <tt>libemon.a</tt>
       
   113 file. It also compiles the programs in the tools and demo subdirectories
       
   114 when enabled.
       
   115 
       
   116 \verbatim
       
   117 make check
       
   118 \endverbatim
       
   119 This step is optional, but recommended. It runs the test programs that
       
   120 we developed for LEMON to check whether the library works properly on
       
   121 your platform.
       
   122 
       
   123 \verbatim
       
   124 make install
       
   125 \endverbatim
       
   126 This command will copy the directory structure to its final destination
       
   127 (e.g. to \c /usr/local) so that your system can access it.
       
   128 This command should be issued as "root", unless you provided a
       
   129 \c --prefix switch to the \c configure to install the library in
       
   130 non-default location.
       
   131 
       
   132 Several other configure flags can be passed to <tt>./configure</tt>.
       
   133 For more information see <tt>./configure --help</tt> and the INSTALL
       
   134 file in the install directory.
       
   135 
       
   136 \section hg_checkout How to Checkout LEMON from our Mercurial Repository
       
   137 
       
   138 You can obtain the latest version of LEMON from our Mercurial repository.
       
   139 To do this issue the following command:
       
   140 \verbatim
       
   141 hg clone http://lemon.cs.elte.hu/hg/lemon lemon-src
       
   142 \endverbatim
       
   143 
       
   144 \section hg_compile How to Compile the Source from the Repository
       
   145 
       
   146 You can compile the code from the repository similarly to the packaged
       
   147 version, but you will need to run <b><tt>autoreconf -vif</tt></b> or
       
   148 <b><tt>./bootstrap</tt></b> in some older environment before
       
   149 <tt>./configure</tt>. See <tt>./configure --help</tt> for options.
       
   150 For bootstrapping you will need the following tools:
       
   151 
       
   152  - <a href="http://www.gnu.org/software/automake/">automake</a> (1.7 or newer)
       
   153  - <a href="http://www.gnu.org/software/autoconf/">autoconf</a> (2.59 or newer)
       
   154  - <a href="http://www.gnu.org/software/libtool/">libtool</a>
       
   155  - <a href="http://pkgconfig.freedesktop.org/">pkgconfig</a>
       
   156 
       
   157 To generate the documentation, run <tt>make html</tt>.
       
   158 You will need <a href="http://www.doxygen.org/">Doxygen</a> for this.
       
   159 
       
   160 */