INSTALL
author Peter Kovacs <kpeter@inf.elte.hu>
Tue, 15 Mar 2011 19:32:21 +0100
changeset 1047 ddd3c0d3d9bf
parent 615 b53a9068e3e4
child 1148 78434a448b5e
permissions -rw-r--r--
Implement the scaling Price Refinement heuristic in CostScaling (#417)
instead of Early Termination.

These two heuristics are similar, but the newer one is faster
and not only makes it possible to skip some epsilon phases, but
it can improve the performance of the other phases, as well.
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@526
     8
LEMON provides two different build environments, one is based on "autotool",
kpeter@526
     9
while the other is based on "cmake". This file contains instructions only for
kpeter@526
    10
the former one, which is the recommended build environment on Linux, Mac OSX
kpeter@526
    11
and other unices or if you use Cygwin on Windows. For cmake installation
kpeter@526
    12
instructions visit http://lemon.cs.elte.hu.
kpeter@526
    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@611
    30
      file. It also compiles the programs in the tools subdirectory by
ladanyi@611
    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@615
   153
ladanyi@615
   154
--with-coin[=PREFIX]
ladanyi@615
   155
ladanyi@615
   156
   Enable support for COIN-OR solvers (CLP and CBC). You should
ladanyi@615
   157
   specify the prefix too. (by default, COIN-OR tools install
ladanyi@615
   158
   themselves to the source code directory). This command enables the
ladanyi@615
   159
   solvers that are actually found.
ladanyi@615
   160
ladanyi@615
   161
--with-coin-includedir=DIR
ladanyi@615
   162
ladanyi@615
   163
   The directory where the COIN-OR header files are located. This is
ladanyi@615
   164
   only useful when the COIN-OR headers and libraries are not under
ladanyi@615
   165
   the same prefix (which is unlikely).
ladanyi@615
   166
ladanyi@615
   167
--with-coin-libdir=DIR
ladanyi@615
   168
ladanyi@615
   169
   The directory where the COIN-OR libraries are located. This is only
ladanyi@615
   170
   useful when the COIN-OR headers and libraries are not under the
ladanyi@615
   171
   same prefix (which is unlikely).
ladanyi@615
   172
ladanyi@615
   173
--without-coin
ladanyi@615
   174
ladanyi@615
   175
   Disable COIN-OR support.
ladanyi@890
   176
ladanyi@890
   177
ladanyi@890
   178
Makefile Variables
ladanyi@890
   179
==================
ladanyi@890
   180
ladanyi@890
   181
Some Makefile variables are reserved by the GNU Coding Standards for
ladanyi@890
   182
the use of the "user" - the person building the package. For instance,
ladanyi@890
   183
CXX and CXXFLAGS are such variables, and have the same meaning as
ladanyi@890
   184
explained in the previous section. These variables can be set on the
ladanyi@890
   185
command line when invoking `make' like this:
ladanyi@890
   186
`make [VARIABLE=VALUE]...'
ladanyi@890
   187
ladanyi@890
   188
WARNINGCXXFLAGS is a non-standard Makefile variable introduced by us
ladanyi@890
   189
to hold several compiler flags related to warnings. Its default value
ladanyi@890
   190
can be overridden when invoking `make'. For example to disable all
ladanyi@890
   191
warning flags use `make WARNINGCXXFLAGS='.
ladanyi@890
   192
ladanyi@890
   193
In order to turn off a single flag from the default set of warning
ladanyi@890
   194
flags, you can use the CXXFLAGS variable, since this is passed after
ladanyi@890
   195
WARNINGCXXFLAGS. For example to turn off `-Wold-style-cast' (which is
ladanyi@890
   196
used by default when g++ is detected) you can use
ladanyi@890
   197
`make CXXFLAGS="-g -O2 -Wno-old-style-cast"'.