lemon-project-template-glpk

comparison deps/glpk/doc/glpk07.tex @ 11:4fc6ad2fb8a6

Test GLPK in src/main.cc
author Alpar Juttner <alpar@cs.elte.hu>
date Sun, 06 Nov 2011 21:43:29 +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 *%