INSTALL
author Alpar Juttner <alpar@cs.elte.hu>
Sun, 11 Aug 2013 17:21:22 +0200
changeset 1288 dd5b5d96b657
parent 615 b53a9068e3e4
child 1148 78434a448b5e
permissions -rw-r--r--
Have graph_to_eps.h compile with both gcc-3.3 and clang++-3.2 (#471)

Hopefully, it puts an end to the story of [115031ac8001] and [761fe0846f49].
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"'.