1 | Installation Instructions |
---|
2 | ========================= |
---|
3 | |
---|
4 | Since you are reading this I assume you already obtained one of the release |
---|
5 | tarballs and successfully extracted it. The latest version of LEMON is |
---|
6 | available at our web page (http://lemon.cs.elte.hu/). |
---|
7 | |
---|
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 | |
---|
14 | In order to install LEMON from the extracted source tarball you have to |
---|
15 | issue the following commands: |
---|
16 | |
---|
17 | 1. `cd lemon-x.y.z' |
---|
18 | |
---|
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. |
---|
21 | |
---|
22 | 2. `./configure' |
---|
23 | |
---|
24 | This command runs the configure shell script, which does some checks and |
---|
25 | creates the makefiles. |
---|
26 | |
---|
27 | 3. `make' |
---|
28 | |
---|
29 | This command compiles the non-template part of LEMON into libemon.a |
---|
30 | file. It also compiles the programs in the tools subdirectory by |
---|
31 | default. |
---|
32 | |
---|
33 | 4. `make check' |
---|
34 | |
---|
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. |
---|
38 | |
---|
39 | 5. `make install' |
---|
40 | |
---|
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'. |
---|
45 | |
---|
46 | 6. `make install-html' |
---|
47 | |
---|
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. |
---|
53 | |
---|
54 | |
---|
55 | Configure Options and Variables |
---|
56 | =============================== |
---|
57 | |
---|
58 | In step 2 you can customize the actions of configure by setting variables |
---|
59 | and passing options to it. This can be done like this: |
---|
60 | `./configure [OPTION]... [VARIABLE=VALUE]...' |
---|
61 | |
---|
62 | Below you will find some useful variables and options (see `./configure --help' |
---|
63 | for more): |
---|
64 | |
---|
65 | CXX='comp' |
---|
66 | |
---|
67 | Change the C++ compiler to 'comp'. |
---|
68 | |
---|
69 | CXXFLAGS='flags' |
---|
70 | |
---|
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. |
---|
77 | |
---|
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. |
---|
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. |
---|
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. |
---|
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. |
---|
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"'. |
---|