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.
20 2. Create a build subdirectory and step into it.
25 3. Perform system checks and create the makefiles.
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.
41 5. [Optional] Generate the user documentation.
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
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.
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.
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 -DGLPK_ROOT_DIR=DIRECTORY
110 -DCOIN_ROOT_DIR=DIRECTORY
111 -DILOG_ROOT_DIR=DIRECTORY
113 Install root directory prefixes of optional third party libraries.
120 This results in a more verbose output by showing the full
121 compiler and linker commands.