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