COIN-OR::LEMON - Graph Library

source: lemon-main/INSTALL @ 1205:57abff252556

Last change on this file since 1205:57abff252556 was 1065:490d89913a17, checked in by Alpar Juttner <alpar@…>, 11 years ago

Merge #446, #457, #465

File size: 4.9 KB
RevLine 
[5]1Installation Instructions
2=========================
3
[992]4This file contains instructions for building and installing LEMON from
5source on Linux. The process on Windows is similar.
[5]6
[992]7Note that it is not necessary to install LEMON in order to use
8it. Instead, you can easily integrate it with your own code
9directly. For instructions, see
10https://lemon.cs.elte.hu/trac/lemon/wiki/HowToCompile
11
[504]12
[318]13In order to install LEMON from the extracted source tarball you have to
[5]14issue the following commands:
15
[992]16   1. Step into the root of the source directory.
[5]17
[992]18      $ cd lemon-x.y.z
[5]19
[992]20   2. Create a build subdirectory and step into it.
[5]21
[992]22      $ mkdir build
23      $ cd build
[5]24
[992]25   3. Perform system checks and create the makefiles.
[5]26
[992]27      $ cmake ..
[5]28
[992]29   4. Build LEMON.
[5]30
[992]31      $ make
[5]32
[992]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.
36
37   5. [Optional] Compile and run the self-tests.
38
39      $ make check
40
41   5. [Optional] Generate the user documentation.
42
43      $ make html
44
45      The release tarballs already include the documentation.
46
47      Note that for this step you need to have the following tools
48      installed: Python, Doxygen, Graphviz, Ghostscript, LaTeX.
49
50   6. [Optional] Install LEMON
51
52      $ make install
[5]53
[245]54      This command installs LEMON under /usr/local (you will need root
[992]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:
59     
60      $ cmake -DCMAKE_INSTALL_PREFIX=/home/username/lemon'
[5]61
[245]62Configure Options and Variables
63===============================
64
[992]65In Step 3, you can customize the build process by passing options to CMAKE.
[245]66
[992]67$ cmake [OPTIONS] ..
[245]68
[992]69You find a list of the most useful options below.
[5]70
[992]71-DCMAKE_INSTALL_PREFIX=PREFIX
[245]72
73  Set the installation prefix to PREFIX. By default it is /usr/local.
[5]74
[992]75-DCMAKE_BUILD_TYPE=[Release|Debug|Maintainer|...]
[245]76
[992]77  This sets the compiler options. The choices are the following
[245]78
[992]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.
[245]82
[992]83  'Debug': Optimization is turned off and debug info is added (-O0
84    -ggdb with gcc). If is recommended during the development.
[5]85
[992]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.
[5]90
[992]91  'RelWithDebInfo': Optimized build with debug info.
[5]92
[992]93  'MinSizeRel': Size optimized build (-Os with gcc)
[5]94
[992]95-DTEST_WITH_VALGRIND=YES
[5]96
[992]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.
[5]99
[992]100-DCMAKE_CXX_COMPILER=path-to-compiler
[5]101
[992]102  Change the compiler to be used.
[5]103
[992]104-DBUILD_SHARED_LIBS=TRUE
[5]105
[992]106  Build shared library instead of static one. Think twice if you
107  really want to use this option.
[5]108
[1064]109-DLEMON_DOC_SOURCE_BROWSER=YES
110
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.
114
115-DLEMON_DOC_USE_MATHJAX=YES
116
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.
121
122  On the other hand, it needs either Internet access or a locally
123  installed version of MathJax to properly render the doc.
124
125-DLEMON_DOC_MATHJAX_RELPATH=DIRECTORY
126 
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.
133
134  See http://docs.mathjax.org/en/latest/installation.html for more details.
135
136 
137-DLEMON_ENABLE_GLPK=NO
138-DLEMON_ENABLE_COIN=NO
139-DLEMON_ENABLE_ILOG=NO
140
141  Enable optional third party libraries. They are all enabled by default.
142
143-DLEMON_DEFAULT_LP=GLPK
144
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.
148
149-DLEMON_DEFAULT_MIP=GLPK
150
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.
154
[992]155-DGLPK_ROOT_DIR=DIRECTORY
156-DCOIN_ROOT_DIR=DIRECTORY
[1062]157-DILOG_ROOT_DIR=DIRECTORY
[5]158
[1064]159  Root directory prefixes of optional third party libraries.
[824]160
161Makefile Variables
162==================
163
[992]164make VERBOSE=1
[824]165
[992]166   This results in a more verbose output by showing the full
167   compiler and linker commands.
Note: See TracBrowser for help on using the repository browser.