lemon-project-template-glpk
comparison deps/glpk/doc/glpk07.tex @ 9:33de93886c88
Import GLPK 4.47
author | Alpar Juttner <alpar@cs.elte.hu> |
---|---|
date | Sun, 06 Nov 2011 20:59:10 +0100 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:7d270636b030 |
---|---|
1 %* glpk07.tex *% | |
2 | |
3 \chapter{Installing GLPK on Your Computer} | |
4 \label{install} | |
5 | |
6 \section{Downloading the distribution tarball} | |
7 | |
8 The distribution tarball of the most recent version of the GLPK | |
9 package can be found on \url{http://ftp.gnu.org/gnu/glpk/} [via http] | |
10 and \url{ftp://ftp.gnu.org/gnu/glpk/} [via FTP]. It can also be found | |
11 on one of the FTP mirrors; see \url{http://www.gnu.org/prep/ftp.html}. | |
12 Please use a mirror if possible. | |
13 | |
14 To make sure that the GLPK distribution tarball you have downloaded is | |
15 intact you need to download the corresponding `\verb|.sig|' file and | |
16 run a command like this: | |
17 | |
18 \begin{verbatim} | |
19 gpg --verify glpk-4.38.tar.gz.sig | |
20 \end{verbatim} | |
21 | |
22 \noindent | |
23 If that command fails because you do not have the required public key, | |
24 run the following command to import it: | |
25 | |
26 \begin{verbatim} | |
27 gpg --keyserver keys.gnupg.net --recv-keys 5981E818 | |
28 \end{verbatim} | |
29 | |
30 \noindent | |
31 and then re-run the previous command. | |
32 | |
33 \section{Unpacking the distribution tarball} | |
34 | |
35 The GLPK package (like all other GNU software) is distributed in the | |
36 form of packed archive. This is one file named \verb|glpk-X.Y.tar.gz|, | |
37 where {\it X} is the major version number and {\it Y} is the minor | |
38 version number. | |
39 | |
40 In order to prepare the distribution for installation you should: | |
41 | |
42 \medskip | |
43 | |
44 1. Copy the GLPK distribution file to a working subdirectory. | |
45 | |
46 \medskip | |
47 | |
48 2. Unpack the distribution file with the following command: | |
49 | |
50 \begin{verbatim} | |
51 gzip -d glpk-X.Y.tar.gz | |
52 \end{verbatim} | |
53 | |
54 \noindent | |
55 that renames the distribution file to \verb|glpk-X.Y.tar|. | |
56 | |
57 \medskip | |
58 | |
59 3. Unarchive the distribution file with the following command: | |
60 | |
61 \begin{verbatim} | |
62 tar -x < glpk-X.Y.tar | |
63 \end{verbatim} | |
64 | |
65 \noindent | |
66 that automatically creates the subdirectory \verb|glpk-X.Y| containing | |
67 the GLPK distribution. | |
68 | |
69 | |
70 \section{Configuring the package} | |
71 | |
72 After unpacking and unarchiving the GLPK distribution you should | |
73 configure the package, i.e. automatically tune it for your platform. | |
74 | |
75 Normally, you should just \verb|cd| to the subdirectory | |
76 \verb|glpk-X.Y| and run the configure script, e.g. | |
77 | |
78 \begin{verbatim} | |
79 ./configure | |
80 \end{verbatim} | |
81 | |
82 The `\verb|configure|' shell script attempts to guess correct values | |
83 for various system-dependent variables used during compilation. It uses | |
84 those values to create a `\verb|Makefile|' in each directory of the | |
85 package. It also creates file `\verb|config.h|' containing | |
86 platform-dependent definitions. Finally, it creates a shell script | |
87 `\verb|config.status|' that you can run in the future to recreate the | |
88 current configuration, a file `\verb|config.cache|' that saves the | |
89 results of its tests to speed up reconfiguring, and a file | |
90 `\verb|config.log|' containing compiler output (useful mainly for | |
91 debugging `\verb|configure|'). | |
92 | |
93 Running `\verb|configure|' takes about a few minutes. While it is | |
94 running, it displays some informational messages that tell you what it | |
95 is doing. If you don't want to see these messages, run | |
96 `\verb|configure|' with its standard output redirected to | |
97 `\verb|dev/null|'; for example, `\verb|./configure > /dev/null|'. | |
98 | |
99 By default both static and shared versions of the GLPK library will be | |
100 compiled. Compilation of the shared librariy can be turned off by | |
101 specifying the `\verb|--disable-shared|' option to `\verb|configure|', | |
102 e.g. | |
103 | |
104 \begin{verbatim} | |
105 ./configure --disable-shared | |
106 \end{verbatim} | |
107 | |
108 \noindent | |
109 If you encounter problems building the library try using the above | |
110 option, because some platforms do not support shared libraries. | |
111 | |
112 \newpage | |
113 | |
114 The GLPK package has some optional features listed below. By default | |
115 all these features are disabled. To enable a feature the corresponding | |
116 option should be passed to the configure script. | |
117 | |
118 \bigskip | |
119 | |
120 \noindent | |
121 \verb|--with-gmp | Enable using the GNU MP bignum library | |
122 | |
123 \medskip | |
124 | |
125 This feature allows the exact simplex solver to use the GNU MP bignum | |
126 library. If it is disabled, the exact simplex solver uses the GLPK | |
127 bignum module, which provides the same functionality as GNU MP, however, | |
128 it is much less efficient. | |
129 | |
130 For details about the GNU MP bignum library see its web page at | |
131 \url{http://gmplib.org/}. | |
132 | |
133 \bigskip | |
134 | |
135 \noindent | |
136 \verb|--with-zlib | | |
137 Enable using the zlib data compression library | |
138 | |
139 \medskip | |
140 | |
141 This feature allows GLPK API routines and the stand-alone solver to | |
142 read and write compressed data files performing compression and | |
143 decompression ``on the fly'' (compressed data files are recognized by | |
144 suffix `\verb|.gz|' in the file name). It may be useful in case of | |
145 large MPS files to save the disk space. | |
146 | |
147 For details about the zlib compression library see its web page at | |
148 \url{http://www.zlib.net/}. | |
149 | |
150 \bigskip | |
151 | |
152 \noindent | |
153 \verb|--enable-dl | The same as `\verb|--enable-dl=ltdl|' | |
154 | |
155 \noindent | |
156 \verb|--enable-dl=ltdl | Enable shared library support (GNU) | |
157 | |
158 \noindent | |
159 \verb|--enable-dl=dlfcn | Enable shared library support (POSIX) | |
160 | |
161 \medskip | |
162 | |
163 Currently this feature is only needed to provide dynamic linking to | |
164 ODBC and MySQL shared libraries (see below). | |
165 | |
166 For details about the GNU shared library support see the manual at | |
167 \url{http://www.gnu.org/software/libtool/manual/}. | |
168 | |
169 \bigskip | |
170 | |
171 \noindent | |
172 \verb|--enable-odbc | | |
173 Enable using ODBC table driver (\verb|libiodbc|) | |
174 | |
175 \noindent | |
176 \verb|--enable-odbc=unix | | |
177 Enable using ODBC table driver (\verb|libodbc|) | |
178 | |
179 \medskip | |
180 | |
181 This feature allows transmitting data between MathProg model objects | |
182 and relational databases accessed through ODBC. | |
183 | |
184 For more details about this feature see the supplement ``Using Data | |
185 Tables in the GNU MathProg Modeling Language'' (\verb|doc/tables.pdf|). | |
186 | |
187 \bigskip | |
188 | |
189 \noindent | |
190 \verb|--enable-mysql | | |
191 Enable using MySQL table driver (\verb|libmysql|) | |
192 | |
193 \medskip | |
194 | |
195 This feature allows transmitting data between MathProg model objects | |
196 and MySQL relational databases. | |
197 | |
198 For more details about this feature see the supplement ``Using Data | |
199 Tables in the GNU MathProg Modeling Language'' (\verb|doc/tables.pdf|). | |
200 | |
201 \section{Compiling the package} | |
202 | |
203 Normally, you can compile (build) the package by typing the command: | |
204 | |
205 \begin{verbatim} | |
206 make | |
207 \end{verbatim} | |
208 | |
209 \noindent | |
210 It reads `\verb|Makefile|' generated by `\verb|configure|' and performs | |
211 all necessary jobs. | |
212 | |
213 If you want, you can override the `\verb|make|' variables \verb|CFLAGS| | |
214 and \verb|LDFLAGS| like this: | |
215 | |
216 \begin{verbatim} | |
217 make CFLAGS=-O2 LDFLAGS=-s | |
218 \end{verbatim} | |
219 | |
220 To compile the package in a different directory from the one containing | |
221 the source code, you must use a version of `\verb|make|' that supports | |
222 `\verb|VPATH|' variable, such as GNU `\verb|make|'. `\verb|cd|' to the | |
223 directory where you want the object files and executables to go and run | |
224 the `\verb|configure|' script. `\verb|configure|' automatically checks | |
225 for the source code in the directory that `\verb|configure|' is in and | |
226 in `\verb|..|'. If for some reason `\verb|configure|' is not in the | |
227 source code directory that you are configuring, then it will report that | |
228 it can't find the source code. In that case, run `\verb|configure|' with | |
229 the option `\verb|--srcdir=DIR|', where \verb|DIR| is the directory that | |
230 contains the source code. | |
231 | |
232 Some systems require unusual options for compilation or linking that | |
233 the `\verb|configure|' script does not know about. You can give | |
234 `\verb|configure|' initial values for variables by setting them in the | |
235 environment. Using a Bourne-compatible shell, you can do that on the | |
236 command line like this: | |
237 | |
238 \begin{verbatim} | |
239 CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure | |
240 \end{verbatim} | |
241 | |
242 \noindent | |
243 Or on systems that have the `\verb|env|' program, you can do it like | |
244 this: | |
245 | |
246 \begin{verbatim} | |
247 env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure | |
248 \end{verbatim} | |
249 | |
250 Here are the `\verb|make|' variables that you might want to override | |
251 with environment variables when running `\verb|configure|'. | |
252 | |
253 For these variables, any value given in the environment overrides the | |
254 value that `\verb|configure|' would choose: | |
255 | |
256 \medskip | |
257 | |
258 \noindent | |
259 \verb|CC | C compiler program. The default is `\verb|cc|'. | |
260 | |
261 \medskip | |
262 | |
263 \noindent | |
264 \verb|INSTALL | Program used to install files. The default value is | |
265 `\verb|install|' if | |
266 | |
267 \noindent | |
268 \verb| | you have it, otherwise `\verb|cp|'. | |
269 | |
270 \medskip | |
271 | |
272 For these variables, any value given in the environment is added to the | |
273 value that `\verb|configure|' chooses: | |
274 | |
275 \medskip | |
276 | |
277 \noindent | |
278 \verb|DEFS | Configuration options, in the form | |
279 `\verb|-Dfoo -Dbar| \dots'. | |
280 | |
281 \medskip | |
282 | |
283 \noindent | |
284 \verb|LIBS | Libraries to link with, in the form | |
285 `\verb|-lfoo -lbar| \dots'. | |
286 | |
287 \section{Checking the package} | |
288 | |
289 To check the package, i.e. to run some tests included in the package, | |
290 you can use the following command: | |
291 | |
292 \begin{verbatim} | |
293 make check | |
294 \end{verbatim} | |
295 | |
296 \section{Installing the package} | |
297 | |
298 Normally, to install the GLPK package you should type the following | |
299 command: | |
300 | |
301 \begin{verbatim} | |
302 make install | |
303 \end{verbatim} | |
304 | |
305 \noindent | |
306 By default, `\verb|make install|' will install the package's files in | |
307 `\verb|usr/local/bin|', `\verb|usr/local/lib|', etc. You can specify an | |
308 installation prefix other than `\verb|/usr/local|' by giving | |
309 `\verb|configure|' the option `\verb|--prefix=PATH|'. Alternately, you | |
310 can do so by consistently giving a value for the `\verb|prefix|' | |
311 variable when you run `\verb|make|', e.g. | |
312 | |
313 \begin{verbatim} | |
314 make prefix=/usr/gnu | |
315 make prefix=/usr/gnu install | |
316 \end{verbatim} | |
317 | |
318 After installing you can remove the program binaries and object files | |
319 from the source directory by typing `\verb|make clean|'. To remove all | |
320 files that `\verb|configure|' created (`\verb|Makefile|', | |
321 `\verb|config.status|', etc.), just type `\verb|make distclean|'. | |
322 | |
323 The file `\verb|configure.ac|' is used to create `\verb|configure|' by | |
324 a program called `\verb|autoconf|'. You only need it if you want to | |
325 remake `\verb|configure|' using a newer version of `\verb|autoconf|'. | |
326 | |
327 \section{Uninstalling the package} | |
328 | |
329 To uninstall the GLPK package, i.e. to remove all the package's files | |
330 from the system places, you can use the following command: | |
331 | |
332 \begin{verbatim} | |
333 make uninstall | |
334 \end{verbatim} | |
335 | |
336 %* eof *% |