INSTALL
author Peter Kovacs <kpeter@inf.elte.hu>
Thu, 12 Nov 2009 23:26:13 +0100
changeset 806 fa6f37d7a25b
parent 564 eda12d8ac953
child 824 974c48bda29e
permissions -rw-r--r--
Entirely rework CapacityScaling (#180)

- Use the new interface similarly to NetworkSimplex.
- Rework the implementation using an efficient internal structure
for handling the residual network. This improvement made the
code much faster (up to 2-5 times faster on large graphs).
- Handle GEQ supply type (LEQ is not supported).
- Handle negative costs for arcs of finite capacity.
(Note that this algorithm cannot handle arcs of negative cost
and infinite upper bound, thus it returns UNBOUNDED if such
an arc exists.)
- Extend the documentation.
alpar@5
     1
Installation Instructions
alpar@5
     2
=========================
alpar@5
     3
kpeter@318
     4
Since you are reading this I assume you already obtained one of the release
alpar@5
     5
tarballs and successfully extracted it. The latest version of LEMON is
ladanyi@245
     6
available at our web page (http://lemon.cs.elte.hu/).
alpar@5
     7
kpeter@493
     8
LEMON provides two different build environments, one is based on "autotool",
kpeter@493
     9
while the other is based on "cmake". This file contains instructions only for
kpeter@493
    10
the former one, which is the recommended build environment on Linux, Mac OSX
kpeter@493
    11
and other unices or if you use Cygwin on Windows. For cmake installation
kpeter@493
    12
instructions visit http://lemon.cs.elte.hu.
kpeter@493
    13
kpeter@318
    14
In order to install LEMON from the extracted source tarball you have to
alpar@5
    15
issue the following commands:
alpar@5
    16
ladanyi@245
    17
   1. `cd lemon-x.y.z'
alpar@5
    18
ladanyi@245
    19
      This command changes to the directory which was created when you
ladanyi@245
    20
      extracted the sources. The x.y.z part is a version number.
alpar@5
    21
ladanyi@245
    22
   2. `./configure'
alpar@5
    23
ladanyi@245
    24
      This command runs the configure shell script, which does some checks and
ladanyi@245
    25
      creates the makefiles.
alpar@5
    26
ladanyi@245
    27
   3. `make'
alpar@5
    28
ladanyi@245
    29
      This command compiles the non-template part of LEMON into libemon.a
ladanyi@564
    30
      file. It also compiles the programs in the tools subdirectory by
ladanyi@564
    31
      default.
alpar@5
    32
ladanyi@245
    33
   4. `make check'
alpar@5
    34
ladanyi@245
    35
      This step is optional, but recommended. It runs the test programs that
ladanyi@245
    36
      we developed for LEMON to check whether the library works properly on
ladanyi@245
    37
      your platform.
alpar@5
    38
ladanyi@245
    39
   5. `make install'
alpar@5
    40
ladanyi@245
    41
      This command installs LEMON under /usr/local (you will need root
ladanyi@245
    42
      privileges to be able to do that). If you want to install it to some
ladanyi@245
    43
      other location, then pass the --prefix=DIRECTORY flag to configure in
ladanyi@245
    44
      step 2. For example: `./configure --prefix=/home/username/lemon'.
alpar@5
    45
ladanyi@245
    46
   6. `make install-html'
alpar@5
    47
ladanyi@245
    48
      This command installs the documentation under share/doc/lemon/docs. The
ladanyi@245
    49
      generated documentation is included in the tarball. If you want to
ladanyi@245
    50
      generate it yourself, then run `make html'. Note that for this you need
ladanyi@245
    51
      to have the following programs installed: Doxygen, Graphviz, Ghostscript,
ladanyi@245
    52
      Latex.
alpar@5
    53
alpar@5
    54
ladanyi@245
    55
Configure Options and Variables
ladanyi@245
    56
===============================
ladanyi@245
    57
kpeter@318
    58
In step 2 you can customize the actions of configure by setting variables
ladanyi@245
    59
and passing options to it. This can be done like this:
ladanyi@245
    60
`./configure [OPTION]... [VARIABLE=VALUE]...'
ladanyi@245
    61
kpeter@318
    62
Below you will find some useful variables and options (see `./configure --help'
kpeter@318
    63
for more):
ladanyi@245
    64
ladanyi@245
    65
CXX='comp'
alpar@5
    66
alpar@5
    67
  Change the C++ compiler to 'comp'.
alpar@5
    68
alpar@5
    69
CXXFLAGS='flags'
alpar@5
    70
ladanyi@245
    71
  Pass the 'flags' to the compiler. For example CXXFLAGS='-O3 -march=pentium-m'
ladanyi@245
    72
  turns on generation of aggressively optimized Pentium-M specific code.
ladanyi@245
    73
ladanyi@245
    74
--prefix=PREFIX
ladanyi@245
    75
ladanyi@245
    76
  Set the installation prefix to PREFIX. By default it is /usr/local.
alpar@5
    77
ladanyi@245
    78
--enable-tools
ladanyi@245
    79
ladanyi@245
    80
   Build the programs in the tools subdirectory (default).
ladanyi@245
    81
ladanyi@245
    82
--disable-tools
ladanyi@245
    83
ladanyi@245
    84
   Do not build the programs in the tools subdirectory.
alpar@5
    85
alpar@5
    86
--with-glpk[=PREFIX]
alpar@5
    87
alpar@5
    88
   Enable GLPK support (default). You should specify the prefix too if
alpar@5
    89
   you installed GLPK to some non-standard location (e.g. your home
alpar@5
    90
   directory). If it is not found, GLPK support will be disabled.
alpar@5
    91
alpar@5
    92
--with-glpk-includedir=DIR
alpar@5
    93
alpar@5
    94
   The directory where the GLPK header files are located. This is only
alpar@5
    95
   useful when the GLPK headers and libraries are not under the same
alpar@5
    96
   prefix (which is unlikely).
alpar@5
    97
alpar@5
    98
--with-glpk-libdir=DIR
alpar@5
    99
alpar@5
   100
   The directory where the GLPK libraries are located. This is only
alpar@5
   101
   useful when the GLPK headers and libraries are not under the same
alpar@5
   102
   prefix (which is unlikely).
alpar@5
   103
alpar@5
   104
--without-glpk
alpar@5
   105
alpar@5
   106
   Disable GLPK support.
alpar@5
   107
alpar@5
   108
--with-cplex[=PREFIX]
alpar@5
   109
alpar@5
   110
   Enable CPLEX support (default). You should specify the prefix too
alpar@5
   111
   if you installed CPLEX to some non-standard location
alpar@5
   112
   (e.g. /opt/ilog/cplex75). If it is not found, CPLEX support will be
alpar@5
   113
   disabled.
alpar@5
   114
alpar@5
   115
--with-cplex-includedir=DIR
alpar@5
   116
alpar@5
   117
   The directory where the CPLEX header files are located. This is
alpar@5
   118
   only useful when the CPLEX headers and libraries are not under the
alpar@5
   119
   same prefix (e.g.  /usr/local/cplex/cplex75/include).
alpar@5
   120
alpar@5
   121
--with-cplex-libdir=DIR
alpar@5
   122
alpar@5
   123
   The directory where the CPLEX libraries are located. This is only
alpar@5
   124
   useful when the CPLEX headers and libraries are not under the same
alpar@5
   125
   prefix (e.g.
alpar@5
   126
   /usr/local/cplex/cplex75/lib/i86_linux2_glibc2.2_gcc3.0/static_pic_mt).
alpar@5
   127
alpar@5
   128
--without-cplex
alpar@5
   129
alpar@5
   130
   Disable CPLEX support.
ladanyi@245
   131
ladanyi@245
   132
--with-soplex[=PREFIX]
ladanyi@245
   133
ladanyi@245
   134
   Enable SoPlex support (default). You should specify the prefix too if
ladanyi@245
   135
   you installed SoPlex to some non-standard location (e.g. your home
ladanyi@245
   136
   directory). If it is not found, SoPlex support will be disabled.
ladanyi@245
   137
ladanyi@245
   138
--with-soplex-includedir=DIR
ladanyi@245
   139
ladanyi@245
   140
   The directory where the SoPlex header files are located. This is only
ladanyi@245
   141
   useful when the SoPlex headers and libraries are not under the same
ladanyi@245
   142
   prefix (which is unlikely).
ladanyi@245
   143
ladanyi@245
   144
--with-soplex-libdir=DIR
ladanyi@245
   145
ladanyi@245
   146
   The directory where the SoPlex libraries are located. This is only
ladanyi@245
   147
   useful when the SoPlex headers and libraries are not under the same
ladanyi@245
   148
   prefix (which is unlikely).
ladanyi@245
   149
ladanyi@245
   150
--without-soplex
ladanyi@245
   151
ladanyi@245
   152
   Disable SoPlex support.
ladanyi@568
   153
ladanyi@568
   154
--with-coin[=PREFIX]
ladanyi@568
   155
ladanyi@568
   156
   Enable support for COIN-OR solvers (CLP and CBC). You should
ladanyi@568
   157
   specify the prefix too. (by default, COIN-OR tools install
ladanyi@568
   158
   themselves to the source code directory). This command enables the
ladanyi@568
   159
   solvers that are actually found.
ladanyi@568
   160
ladanyi@568
   161
--with-coin-includedir=DIR
ladanyi@568
   162
ladanyi@568
   163
   The directory where the COIN-OR header files are located. This is
ladanyi@568
   164
   only useful when the COIN-OR headers and libraries are not under
ladanyi@568
   165
   the same prefix (which is unlikely).
ladanyi@568
   166
ladanyi@568
   167
--with-coin-libdir=DIR
ladanyi@568
   168
ladanyi@568
   169
   The directory where the COIN-OR libraries are located. This is only
ladanyi@568
   170
   useful when the COIN-OR headers and libraries are not under the
ladanyi@568
   171
   same prefix (which is unlikely).
ladanyi@568
   172
ladanyi@568
   173
--without-coin
ladanyi@568
   174
ladanyi@568
   175
   Disable COIN-OR support.