INSTALL
author Alpar Juttner <alpar@cs.elte.hu>
Sun, 24 Feb 2013 19:44:14 +0100
changeset 1185 b4f4c08e1210
parent 890 974c48bda29e
child 1208 60c0c3ed8d11
child 1230 caf16813b1e8
permissions -rw-r--r--
Better Maintainer build type settings (for MSVC)
alpar@5
     1
Installation Instructions
alpar@5
     2
=========================
alpar@5
     3
alpar@1148
     4
This file contains instructions for building and installing LEMON from
alpar@1148
     5
source on Linux. The process on Windows is similar.
alpar@5
     6
alpar@1148
     7
Note that it is not necessary to install LEMON in order to use
alpar@1148
     8
it. Instead, you can easily integrate it with your own code
alpar@1148
     9
directly. For instructions, see
alpar@1148
    10
https://lemon.cs.elte.hu/trac/lemon/wiki/HowToCompile
alpar@1148
    11
kpeter@526
    12
kpeter@318
    13
In order to install LEMON from the extracted source tarball you have to
alpar@5
    14
issue the following commands:
alpar@5
    15
alpar@1148
    16
   1. Step into the root of the source directory.
alpar@5
    17
alpar@1148
    18
      $ cd lemon-x.y.z
alpar@5
    19
alpar@1148
    20
   2. Create a build subdirectory and step into it.
alpar@5
    21
alpar@1148
    22
      $ mkdir build
alpar@1148
    23
      $ cd build
alpar@5
    24
alpar@1148
    25
   3. Perform system checks and create the makefiles.
alpar@5
    26
alpar@1148
    27
      $ cmake ..
alpar@5
    28
alpar@1148
    29
   4. Build LEMON.
alpar@5
    30
alpar@1148
    31
      $ make 
alpar@5
    32
alpar@1148
    33
      This command compiles the non-template part of LEMON into
alpar@1148
    34
      libemon.a file. It also compiles the programs in the 'tools' and
alpar@1148
    35
      'demo' subdirectories.
alpar@1148
    36
alpar@1148
    37
   5. [Optional] Compile and run the self-tests.
alpar@1148
    38
alpar@1148
    39
      $ make check
alpar@1148
    40
alpar@1148
    41
   5. [Optional] Generate the user documentation.
alpar@1148
    42
alpar@1148
    43
      $ make html
alpar@1148
    44
alpar@1148
    45
      The release tarballs already include the documentation.
alpar@1148
    46
alpar@1148
    47
      Note that for this step you need to have the following tools
alpar@1148
    48
      installed: Python, Doxygen, Graphviz, Ghostscript, LaTeX.
alpar@1148
    49
alpar@1148
    50
   6. [Optional] Install LEMON
alpar@1148
    51
alpar@1148
    52
      $ make install
alpar@5
    53
ladanyi@245
    54
      This command installs LEMON under /usr/local (you will need root
alpar@1148
    55
      privileges to be able to do that). If you want to install it to
alpar@1148
    56
      some other location, then pass the
alpar@1148
    57
      -DCMAKE_INSTALL_PREFIX=DIRECTORY flag to cmake in Step 3.
alpar@1148
    58
      For example:
alpar@1148
    59
      
alpar@1148
    60
      $ cmake -DCMAKE_INSTALL_PREFIX=/home/username/lemon'
alpar@5
    61
ladanyi@245
    62
Configure Options and Variables
ladanyi@245
    63
===============================
ladanyi@245
    64
alpar@1148
    65
In Step 3, you can customize the build process by passing options to CMAKE.
ladanyi@245
    66
alpar@1148
    67
$ cmake [OPTIONS] ..
ladanyi@245
    68
alpar@1148
    69
You find a list of the most useful options below.
alpar@5
    70
alpar@1148
    71
-DCMAKE_INSTALL_PREFIX=PREFIX
ladanyi@245
    72
ladanyi@245
    73
  Set the installation prefix to PREFIX. By default it is /usr/local.
alpar@5
    74
alpar@1148
    75
-DCMAKE_BUILD_TYPE=[Release|Debug|Maintainer|...]
ladanyi@245
    76
alpar@1148
    77
  This sets the compiler options. The choices are the following
ladanyi@245
    78
alpar@1148
    79
  'Release': A strong optimization is turned on (-O3 with gcc). This
alpar@1148
    80
    is the default setting and we strongly recommend using this for
alpar@1148
    81
    the final compilation.
ladanyi@245
    82
alpar@1148
    83
  'Debug': Optimization is turned off and debug info is added (-O0
alpar@1148
    84
    -ggdb with gcc). If is recommended during the development.
alpar@5
    85
alpar@1148
    86
  'Maintainer': The same as 'Debug' but the compiler warnings are
alpar@1148
    87
    converted to errors (-Werror with gcc). In addition, 'make' will
alpar@1148
    88
    also automatically compile and execute the test codes. It is the
alpar@1148
    89
    best way of ensuring that LEMON codebase is clean and safe.
alpar@5
    90
alpar@1148
    91
  'RelWithDebInfo': Optimized build with debug info.
alpar@5
    92
alpar@1148
    93
  'MinSizeRel': Size optimized build (-Os with gcc)
alpar@5
    94
alpar@1148
    95
-DTEST_WITH_VALGRIND=YES
alpar@5
    96
alpar@1148
    97
  Using this, the test codes will be executed using valgrind. It is a
alpar@1148
    98
  very effective way of identifying indexing problems and memory leaks.
alpar@5
    99
alpar@1148
   100
-DCMAKE_CXX_COMPILER=path-to-compiler
alpar@5
   101
alpar@1148
   102
  Change the compiler to be used.
alpar@5
   103
alpar@1148
   104
-DBUILD_SHARED_LIBS=TRUE
alpar@5
   105
alpar@1148
   106
  Build shared library instead of static one. Think twice if you
alpar@1148
   107
  really want to use this option.
alpar@5
   108
alpar@1148
   109
-DGLPK_ROOT_DIR=DIRECTORY
alpar@1148
   110
-DCOIN_ROOT_DIR=DIRECTORY
alpar@1148
   111
-DCPLEX_ROOT_DIR=DIRECTORY
alpar@5
   112
alpar@1148
   113
  Install root directory prefixes of optional third party libraries.
ladanyi@890
   114
ladanyi@890
   115
Makefile Variables
ladanyi@890
   116
==================
ladanyi@890
   117
alpar@1148
   118
make VERBOSE=1
ladanyi@890
   119
alpar@1148
   120
   This results in a more verbose output by showing the full
alpar@1148
   121
   compiler and linker commands.