[5] | 1 | Installation Instructions |
---|
| 2 | ========================= |
---|
| 3 | |
---|
[318] | 4 | Since you are reading this I assume you already obtained one of the release |
---|
[5] | 5 | tarballs and successfully extracted it. The latest version of LEMON is |
---|
[245] | 6 | available at our web page (http://lemon.cs.elte.hu/). |
---|
[5] | 7 | |
---|
[504] | 8 | LEMON provides two different build environments, one is based on "autotool", |
---|
| 9 | while the other is based on "cmake". This file contains instructions only for |
---|
| 10 | the former one, which is the recommended build environment on Linux, Mac OSX |
---|
| 11 | and other unices or if you use Cygwin on Windows. For cmake installation |
---|
| 12 | instructions visit http://lemon.cs.elte.hu. |
---|
| 13 | |
---|
[318] | 14 | In order to install LEMON from the extracted source tarball you have to |
---|
[5] | 15 | issue the following commands: |
---|
| 16 | |
---|
[245] | 17 | 1. `cd lemon-x.y.z' |
---|
[5] | 18 | |
---|
[245] | 19 | This command changes to the directory which was created when you |
---|
| 20 | extracted the sources. The x.y.z part is a version number. |
---|
[5] | 21 | |
---|
[245] | 22 | 2. `./configure' |
---|
[5] | 23 | |
---|
[245] | 24 | This command runs the configure shell script, which does some checks and |
---|
| 25 | creates the makefiles. |
---|
[5] | 26 | |
---|
[245] | 27 | 3. `make' |
---|
[5] | 28 | |
---|
[245] | 29 | This command compiles the non-template part of LEMON into libemon.a |
---|
[564] | 30 | file. It also compiles the programs in the tools subdirectory by |
---|
| 31 | default. |
---|
[5] | 32 | |
---|
[245] | 33 | 4. `make check' |
---|
[5] | 34 | |
---|
[245] | 35 | This step is optional, but recommended. It runs the test programs that |
---|
| 36 | we developed for LEMON to check whether the library works properly on |
---|
| 37 | your platform. |
---|
[5] | 38 | |
---|
[245] | 39 | 5. `make install' |
---|
[5] | 40 | |
---|
[245] | 41 | This command installs LEMON under /usr/local (you will need root |
---|
| 42 | privileges to be able to do that). If you want to install it to some |
---|
| 43 | other location, then pass the --prefix=DIRECTORY flag to configure in |
---|
| 44 | step 2. For example: `./configure --prefix=/home/username/lemon'. |
---|
[5] | 45 | |
---|
[245] | 46 | 6. `make install-html' |
---|
[5] | 47 | |
---|
[245] | 48 | This command installs the documentation under share/doc/lemon/docs. The |
---|
| 49 | generated documentation is included in the tarball. If you want to |
---|
| 50 | generate it yourself, then run `make html'. Note that for this you need |
---|
| 51 | to have the following programs installed: Doxygen, Graphviz, Ghostscript, |
---|
| 52 | Latex. |
---|
[5] | 53 | |
---|
| 54 | |
---|
[245] | 55 | Configure Options and Variables |
---|
| 56 | =============================== |
---|
| 57 | |
---|
[318] | 58 | In step 2 you can customize the actions of configure by setting variables |
---|
[245] | 59 | and passing options to it. This can be done like this: |
---|
| 60 | `./configure [OPTION]... [VARIABLE=VALUE]...' |
---|
| 61 | |
---|
[318] | 62 | Below you will find some useful variables and options (see `./configure --help' |
---|
| 63 | for more): |
---|
[245] | 64 | |
---|
| 65 | CXX='comp' |
---|
[5] | 66 | |
---|
| 67 | Change the C++ compiler to 'comp'. |
---|
| 68 | |
---|
| 69 | CXXFLAGS='flags' |
---|
| 70 | |
---|
[245] | 71 | Pass the 'flags' to the compiler. For example CXXFLAGS='-O3 -march=pentium-m' |
---|
| 72 | turns on generation of aggressively optimized Pentium-M specific code. |
---|
| 73 | |
---|
| 74 | --prefix=PREFIX |
---|
| 75 | |
---|
| 76 | Set the installation prefix to PREFIX. By default it is /usr/local. |
---|
[5] | 77 | |
---|
[245] | 78 | --enable-tools |
---|
| 79 | |
---|
| 80 | Build the programs in the tools subdirectory (default). |
---|
| 81 | |
---|
| 82 | --disable-tools |
---|
| 83 | |
---|
| 84 | Do not build the programs in the tools subdirectory. |
---|
[5] | 85 | |
---|
| 86 | --with-glpk[=PREFIX] |
---|
| 87 | |
---|
| 88 | Enable GLPK support (default). You should specify the prefix too if |
---|
| 89 | you installed GLPK to some non-standard location (e.g. your home |
---|
| 90 | directory). If it is not found, GLPK support will be disabled. |
---|
| 91 | |
---|
| 92 | --with-glpk-includedir=DIR |
---|
| 93 | |
---|
| 94 | The directory where the GLPK header files are located. This is only |
---|
| 95 | useful when the GLPK headers and libraries are not under the same |
---|
| 96 | prefix (which is unlikely). |
---|
| 97 | |
---|
| 98 | --with-glpk-libdir=DIR |
---|
| 99 | |
---|
| 100 | The directory where the GLPK libraries are located. This is only |
---|
| 101 | useful when the GLPK headers and libraries are not under the same |
---|
| 102 | prefix (which is unlikely). |
---|
| 103 | |
---|
| 104 | --without-glpk |
---|
| 105 | |
---|
| 106 | Disable GLPK support. |
---|
| 107 | |
---|
| 108 | --with-cplex[=PREFIX] |
---|
| 109 | |
---|
| 110 | Enable CPLEX support (default). You should specify the prefix too |
---|
| 111 | if you installed CPLEX to some non-standard location |
---|
| 112 | (e.g. /opt/ilog/cplex75). If it is not found, CPLEX support will be |
---|
| 113 | disabled. |
---|
| 114 | |
---|
| 115 | --with-cplex-includedir=DIR |
---|
| 116 | |
---|
| 117 | The directory where the CPLEX header files are located. This is |
---|
| 118 | only useful when the CPLEX headers and libraries are not under the |
---|
| 119 | same prefix (e.g. /usr/local/cplex/cplex75/include). |
---|
| 120 | |
---|
| 121 | --with-cplex-libdir=DIR |
---|
| 122 | |
---|
| 123 | The directory where the CPLEX libraries are located. This is only |
---|
| 124 | useful when the CPLEX headers and libraries are not under the same |
---|
| 125 | prefix (e.g. |
---|
| 126 | /usr/local/cplex/cplex75/lib/i86_linux2_glibc2.2_gcc3.0/static_pic_mt). |
---|
| 127 | |
---|
| 128 | --without-cplex |
---|
| 129 | |
---|
| 130 | Disable CPLEX support. |
---|
[245] | 131 | |
---|
| 132 | --with-soplex[=PREFIX] |
---|
| 133 | |
---|
| 134 | Enable SoPlex support (default). You should specify the prefix too if |
---|
| 135 | you installed SoPlex to some non-standard location (e.g. your home |
---|
| 136 | directory). If it is not found, SoPlex support will be disabled. |
---|
| 137 | |
---|
| 138 | --with-soplex-includedir=DIR |
---|
| 139 | |
---|
| 140 | The directory where the SoPlex header files are located. This is only |
---|
| 141 | useful when the SoPlex headers and libraries are not under the same |
---|
| 142 | prefix (which is unlikely). |
---|
| 143 | |
---|
| 144 | --with-soplex-libdir=DIR |
---|
| 145 | |
---|
| 146 | The directory where the SoPlex libraries are located. This is only |
---|
| 147 | useful when the SoPlex headers and libraries are not under the same |
---|
| 148 | prefix (which is unlikely). |
---|
| 149 | |
---|
| 150 | --without-soplex |
---|
| 151 | |
---|
| 152 | Disable SoPlex support. |
---|
[568] | 153 | |
---|
| 154 | --with-coin[=PREFIX] |
---|
| 155 | |
---|
| 156 | Enable support for COIN-OR solvers (CLP and CBC). You should |
---|
| 157 | specify the prefix too. (by default, COIN-OR tools install |
---|
| 158 | themselves to the source code directory). This command enables the |
---|
| 159 | solvers that are actually found. |
---|
| 160 | |
---|
| 161 | --with-coin-includedir=DIR |
---|
| 162 | |
---|
| 163 | The directory where the COIN-OR header files are located. This is |
---|
| 164 | only useful when the COIN-OR headers and libraries are not under |
---|
| 165 | the same prefix (which is unlikely). |
---|
| 166 | |
---|
| 167 | --with-coin-libdir=DIR |
---|
| 168 | |
---|
| 169 | The directory where the COIN-OR libraries are located. This is only |
---|
| 170 | useful when the COIN-OR headers and libraries are not under the |
---|
| 171 | same prefix (which is unlikely). |
---|
| 172 | |
---|
| 173 | --without-coin |
---|
| 174 | |
---|
| 175 | Disable COIN-OR support. |
---|
[824] | 176 | |
---|
| 177 | |
---|
| 178 | Makefile Variables |
---|
| 179 | ================== |
---|
| 180 | |
---|
| 181 | Some Makefile variables are reserved by the GNU Coding Standards for |
---|
| 182 | the use of the "user" - the person building the package. For instance, |
---|
| 183 | CXX and CXXFLAGS are such variables, and have the same meaning as |
---|
| 184 | explained in the previous section. These variables can be set on the |
---|
| 185 | command line when invoking `make' like this: |
---|
| 186 | `make [VARIABLE=VALUE]...' |
---|
| 187 | |
---|
| 188 | WARNINGCXXFLAGS is a non-standard Makefile variable introduced by us |
---|
| 189 | to hold several compiler flags related to warnings. Its default value |
---|
| 190 | can be overridden when invoking `make'. For example to disable all |
---|
| 191 | warning flags use `make WARNINGCXXFLAGS='. |
---|
| 192 | |
---|
| 193 | In order to turn off a single flag from the default set of warning |
---|
| 194 | flags, you can use the CXXFLAGS variable, since this is passed after |
---|
| 195 | WARNINGCXXFLAGS. For example to turn off `-Wold-style-cast' (which is |
---|
| 196 | used by default when g++ is detected) you can use |
---|
| 197 | `make CXXFLAGS="-g -O2 -Wno-old-style-cast"'. |
---|