getting_started.dox
author Peter Kovacs <kpeter@inf.elte.hu>
Sat, 11 Oct 2008 13:13:09 +0200
changeset 3 0cf8882c7e7c
child 6 da96f28684f7
permissions -rw-r--r--
Add Intro and Getting Started pages
     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 */