1 INSTALLING GLPK ON YOUR COMPUTER
2 ********************************
4 Unpacking the distribution file
5 -------------------------------
6 The GLPK package (like all other GNU software) is distributed in the
7 form of a packed archive. It is one file named `glpk-X.Y.tar.gz', where
8 `X' is the major version number and `Y' is the minor version number;
9 for example, the archive name might be `glpk-4.15.tar.gz'.
11 In order to prepare the distribution for installation you should:
13 1. Copy the GLPK distribution file to a working directory.
15 2. Unpack the distribution file with the following command:
17 gzip -d glpk-X.Y.tar.gz
19 After unpacking the distribution file is automatically renamed to
22 3. Unarchive the distribution file with the following command:
26 It automatically creates the subdirectory `glpk-X.Y' containing the
29 Configuring the package
30 -----------------------
31 After unpacking and unarchiving the GLPK distribution you should
32 configure the package, i.e. automatically tune it for your platform.
34 Normally, you should just `cd' to the directory `glpk-X.Y' and run the
35 `configure' script, e.g.
39 The `configure' shell script attempts to guess correct values for
40 various system-dependent variables used during compilation. It uses
41 those values to create a `Makefile' in each directory of the package.
42 It also creates file `config.h' containing platform-dependent
43 definitions. Finally, it creates a shell script `config.status' that
44 you can run in the future to recreate the current configuration, a file
45 `config.cache' that saves the results of its tests to speed up
46 reconfiguring, and a file `config.log' containing compiler output
47 (useful mainly for debugging `configure').
49 Running `configure' takes about a few seconds. While it is running, it
50 displays some messages that tell you what it is doing. If you don't want
51 to see the messages, run `configure' with its standard output redirected
52 to `dev/null'; for example, `./configure > /dev/null'.
54 By default both static and shared versions of the GLPK library will be
55 compiled. Compilation of the shared librariy can be turned off by
56 specifying the `--disable-shared' option to `configure', e.g.
58 ./configure --disable-shared
60 If you encounter problems building the library try using the above
61 option, because some platforms do not support shared libraries.
63 The GLPK package has some optional features listed below. By default
64 all these features are disabled. To enable a feature the corresponding
65 option should be passed to the configure script.
67 --with-gmp Enable using the GNU MP bignum library
69 This feature allows the exact simplex solver to use the GNU MP
70 bignum library. If it is disabled, the exact simplex solver uses the
71 GLPK bignum module, which provides the same functionality as GNU MP,
72 however, it is much less efficient.
74 For details about the GNU MP bignum library see its web page at
77 --with-zlib Enable using the zlib data compression library
79 This feature allows GLPK API routines and the stand-alone solver to
80 read and write compressed data files performing compression and
81 decompression "on the fly" (compressed data files are recognized by
82 suffix `.gz' in the file name). It may be useful in case of large
83 MPS files to save the disk space.
85 For details about the zlib compression library see its web page at
86 <http://www.zlib.net/>.
88 --enable-dl The same as --enable-dl=ltdl
89 --enable-dl=ltdl Enable shared library support (GNU)
90 --enable-dl=dlfcn Enable shared library support (POSIX)
92 Currently this feature is only needed to provide dynamic linking to
93 ODBC and MySQL shared libraries (see below).
95 For details about the GNU shared library support see the manual at
96 <http://www.gnu.org/software/libtool/manual/>.
98 --enable-odbc Enable using ODBC table driver (libiodbc)
99 --enable-odbc=unix Enable using ODBC table driver (libodbc)
101 This feature allows transmitting data between MathProg model objects
102 and relational databases accessed through ODBC.
104 For more details about this feature see the supplement "Using Data
105 Tables in the GNU MathProg Modeling Language" (doc/tables.*).
107 --enable-mysql Enable using MySQL table driver (libmysql)
109 This feature allows transmitting data between MathProg model objects
110 and MySQL relational databases.
112 For more details about this feature see the supplement "Using Data
113 Tables in the GNU MathProg Modeling Language" (doc/tables.*).
115 Compiling the package
116 ---------------------
117 Normally, you can compile (build) the package by typing the command:
121 It reads `Makefile' generated by `configure' and performs all necessary
124 If you want, you can override the `make' variables CFLAGS and LDFLAGS
127 make CFLAGS=-O2 LDFLAGS=-s
129 To compile the package in a different directory from the one containing
130 the source code, you must use a version of `make' that supports `VPATH'
131 variable, such as GNU `make'. `cd' to the directory where you want the
132 object files and executables to go and run the `configure' script.
133 `configure' automatically checks for the source code in the directory
134 that `configure' is in and in `..'. If for some reason `configure' is
135 not in the source code directory that you are configuring, then it will
136 report that it can't find the source code. In that case, run `configure'
137 with the option `--srcdir=DIR', where DIR is the directory that contains
140 Some systems require unusual options for compilation or linking that
141 the `configure' script does not know about. You can give `configure'
142 initial values for variables by setting them in the environment. Using
143 a Bourne-compatible shell, you can do that on the command line like
146 CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
148 Or on systems that have the `env' program, you can do it like this:
150 env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
152 Here are the `make' variables that you might want to override with
153 environment variables when running `configure'.
155 For these variables, any value given in the environment overrides the
156 value that `configure' would choose:
158 CC: C compiler program. The default is `cc'.
160 INSTALL: Program used to install files. The default value is `install'
161 if you have it, otherwise `cp'.
163 For these variables, any value given in the environment is added to the
164 value that `configure' chooses:
166 DEFS: Configuration options, in the form `-Dfoo -Dbar ...'.
168 LIBS: Libraries to link with, in the form `-lfoo -lbar ...'.
172 To check the package, i.e. to run some tests included in the package,
173 you can use the following command:
177 Installing the package
178 ----------------------
179 Normally, to install the GLPK package you should type the following
184 By default, `make install' will install the package's files in
185 `usr/local/bin', `usr/local/lib', etc. You can specify an installation
186 prefix other than `/usr/local' by giving `configure' the option
187 `--prefix=PATH'. Alternately, you can do so by consistently giving a
188 value for the `prefix' variable when you run `make', e.g.
191 make prefix=/usr/gnu install
193 After installing you can remove the program binaries and object files
194 from the source directory by typing `make clean'. To remove all files
195 that `configure' created (`Makefile', `config.status', etc.), just type
198 The file `configure.ac' is used to create `configure' by a program
199 called `autoconf'. You only need it if you want to remake `configure'
200 using a newer version of `autoconf'.
202 Uninstalling the package
203 ------------------------
204 To uninstall the GLPK package, i.e. to remove all the package's files
205 from the system places, you can use the following command:
209 ========================================================================