INSTALL
 author Alpar Juttner Sat, 25 May 2013 06:59:31 +0200 changeset 1232 fc3854d936f7 parent 1230 caf16813b1e8 child 1233 490d89913a17 permissions -rw-r--r--
Enable/disable options for LP/MIP backends (#465)
1 Installation Instructions
2 =========================
4 This file contains instructions for building and installing LEMON from
5 source on Linux. The process on Windows is similar.
7 Note that it is not necessary to install LEMON in order to use
8 it. Instead, you can easily integrate it with your own code
9 directly. For instructions, see
10 https://lemon.cs.elte.hu/trac/lemon/wiki/HowToCompile
13 In order to install LEMON from the extracted source tarball you have to
14 issue the following commands:
16    1. Step into the root of the source directory.
18       $cd lemon-x.y.z 20 2. Create a build subdirectory and step into it. 22$ mkdir build
23       $cd build 25 3. Perform system checks and create the makefiles. 27$ cmake ..
29    4. Build LEMON.
31       $make 33 This command compiles the non-template part of LEMON into 34 libemon.a file. It also compiles the programs in the 'tools' and 35 'demo' subdirectories. 37 5. [Optional] Compile and run the self-tests. 39$ make check
41    5. [Optional] Generate the user documentation.
43       $make html 45 The release tarballs already include the documentation. 47 Note that for this step you need to have the following tools 48 installed: Python, Doxygen, Graphviz, Ghostscript, LaTeX. 50 6. [Optional] Install LEMON 52$ make install
54       This command installs LEMON under /usr/local (you will need root
55       privileges to be able to do that). If you want to install it to
56       some other location, then pass the
57       -DCMAKE_INSTALL_PREFIX=DIRECTORY flag to cmake in Step 3.
58       For example:
60       $cmake -DCMAKE_INSTALL_PREFIX=/home/username/lemon' 62 Configure Options and Variables 63 =============================== 65 In Step 3, you can customize the build process by passing options to CMAKE. 67$ cmake [OPTIONS] ..
69 You find a list of the most useful options below.
71 -DCMAKE_INSTALL_PREFIX=PREFIX
73   Set the installation prefix to PREFIX. By default it is /usr/local.
75 -DCMAKE_BUILD_TYPE=[Release|Debug|Maintainer|...]
77   This sets the compiler options. The choices are the following
79   'Release': A strong optimization is turned on (-O3 with gcc). This
80     is the default setting and we strongly recommend using this for
81     the final compilation.
83   'Debug': Optimization is turned off and debug info is added (-O0
84     -ggdb with gcc). If is recommended during the development.
86   'Maintainer': The same as 'Debug' but the compiler warnings are
87     converted to errors (-Werror with gcc). In addition, 'make' will
88     also automatically compile and execute the test codes. It is the
89     best way of ensuring that LEMON codebase is clean and safe.
91   'RelWithDebInfo': Optimized build with debug info.
93   'MinSizeRel': Size optimized build (-Os with gcc)
95 -DTEST_WITH_VALGRIND=YES
97   Using this, the test codes will be executed using valgrind. It is a
98   very effective way of identifying indexing problems and memory leaks.
100 -DCMAKE_CXX_COMPILER=path-to-compiler
102   Change the compiler to be used.
104 -DBUILD_SHARED_LIBS=TRUE
106   Build shared library instead of static one. Think twice if you
107   really want to use this option.
109 -DLEMON_DOC_SOURCE_BROWSER=YES
111   Include the browsable cross referenced LEMON source code into the
112   doc. It makes the doc quite bloated, but may be useful for
113   developing LEMON itself.
115 -DLEMON_DOC_USE_MATHJAX=YES
117   Use MathJax (http://mathjax.org) for rendering the math formulae in
118   the doc.  It of much higher quality compared to the default LaTeX
119   generated static images and it allows copy&paste of the formulae to
120   LaTeX, Open Office, MS Word etc. documents.
122   On the other hand, it needs either Internet access or a locally
123   installed version of MathJax to properly render the doc.
125 -DLEMON_DOC_MATHJAX_RELPATH=DIRECTORY
127   The location of the MathJax library. It defaults to
128   http://www.mathjax.org/mathjax, which necessitates Internet access
129   for proper rendering. The easiest way to make it usable offline is
130   to set this parameter to 'mathjax' and copy all files of the MathJax
131   library into the 'doc/html/mathjax' subdirectory of the build
132   location.
134   See http://docs.mathjax.org/en/latest/installation.html for more details.
137 -DLEMON_ENABLE_GLPK=NO
138 -DLEMON_ENABLE_COIN=NO
139 -DLEMON_ENABLE_ILOG=NO
141   Enable optional third party libraries. They are all enabled by default.
143 -DLEMON_DEFAULT_LP=GLPK
145   Sets the default LP solver backend. The supported values are
146   CPLEX, CLP and GLPK. By default, it is set to the first one which
147   is enabled and succesfully discovered.
149 -DLEMON_DEFAULT_MIP=GLPK
151   Sets the default MIP solver backend. The supported values are
152   CPLEX, CBC and GLPK. By default, it is set to the first one which
153   is enabled and succesfully discovered.
155 -DGLPK_ROOT_DIR=DIRECTORY
156 -DCOIN_ROOT_DIR=DIRECTORY
157 -DILOG_ROOT_DIR=DIRECTORY
159   Root directory prefixes of optional third party libraries.
161 Makefile Variables
162 ==================
164 make VERBOSE=1
166    This results in a more verbose output by showing the full