[9] | 1 | INSTALLING GLPK ON YOUR COMPUTER |
---|
| 2 | ******************************** |
---|
| 3 | |
---|
| 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'. |
---|
| 10 | |
---|
| 11 | In order to prepare the distribution for installation you should: |
---|
| 12 | |
---|
| 13 | 1. Copy the GLPK distribution file to a working directory. |
---|
| 14 | |
---|
| 15 | 2. Unpack the distribution file with the following command: |
---|
| 16 | |
---|
| 17 | gzip -d glpk-X.Y.tar.gz |
---|
| 18 | |
---|
| 19 | After unpacking the distribution file is automatically renamed to |
---|
| 20 | `glpk-X.Y.tar'. |
---|
| 21 | |
---|
| 22 | 3. Unarchive the distribution file with the following command: |
---|
| 23 | |
---|
| 24 | tar -x < glpk-X.Y.tar |
---|
| 25 | |
---|
| 26 | It automatically creates the subdirectory `glpk-X.Y' containing the |
---|
| 27 | GLPK distribution. |
---|
| 28 | |
---|
| 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. |
---|
| 33 | |
---|
| 34 | Normally, you should just `cd' to the directory `glpk-X.Y' and run the |
---|
| 35 | `configure' script, e.g. |
---|
| 36 | |
---|
| 37 | ./configure |
---|
| 38 | |
---|
| 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'). |
---|
| 48 | |
---|
| 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'. |
---|
| 53 | |
---|
| 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. |
---|
| 57 | |
---|
| 58 | ./configure --disable-shared |
---|
| 59 | |
---|
| 60 | If you encounter problems building the library try using the above |
---|
| 61 | option, because some platforms do not support shared libraries. |
---|
| 62 | |
---|
| 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. |
---|
| 66 | |
---|
| 67 | --with-gmp Enable using the GNU MP bignum library |
---|
| 68 | |
---|
| 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. |
---|
| 73 | |
---|
| 74 | For details about the GNU MP bignum library see its web page at |
---|
| 75 | <http://gmplib.org/>. |
---|
| 76 | |
---|
| 77 | --with-zlib Enable using the zlib data compression library |
---|
| 78 | |
---|
| 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. |
---|
| 84 | |
---|
| 85 | For details about the zlib compression library see its web page at |
---|
| 86 | <http://www.zlib.net/>. |
---|
| 87 | |
---|
| 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) |
---|
| 91 | |
---|
| 92 | Currently this feature is only needed to provide dynamic linking to |
---|
| 93 | ODBC and MySQL shared libraries (see below). |
---|
| 94 | |
---|
| 95 | For details about the GNU shared library support see the manual at |
---|
| 96 | <http://www.gnu.org/software/libtool/manual/>. |
---|
| 97 | |
---|
| 98 | --enable-odbc Enable using ODBC table driver (libiodbc) |
---|
| 99 | --enable-odbc=unix Enable using ODBC table driver (libodbc) |
---|
| 100 | |
---|
| 101 | This feature allows transmitting data between MathProg model objects |
---|
| 102 | and relational databases accessed through ODBC. |
---|
| 103 | |
---|
| 104 | For more details about this feature see the supplement "Using Data |
---|
| 105 | Tables in the GNU MathProg Modeling Language" (doc/tables.*). |
---|
| 106 | |
---|
| 107 | --enable-mysql Enable using MySQL table driver (libmysql) |
---|
| 108 | |
---|
| 109 | This feature allows transmitting data between MathProg model objects |
---|
| 110 | and MySQL relational databases. |
---|
| 111 | |
---|
| 112 | For more details about this feature see the supplement "Using Data |
---|
| 113 | Tables in the GNU MathProg Modeling Language" (doc/tables.*). |
---|
| 114 | |
---|
| 115 | Compiling the package |
---|
| 116 | --------------------- |
---|
| 117 | Normally, you can compile (build) the package by typing the command: |
---|
| 118 | |
---|
| 119 | make |
---|
| 120 | |
---|
| 121 | It reads `Makefile' generated by `configure' and performs all necessary |
---|
| 122 | jobs. |
---|
| 123 | |
---|
| 124 | If you want, you can override the `make' variables CFLAGS and LDFLAGS |
---|
| 125 | like this: |
---|
| 126 | |
---|
| 127 | make CFLAGS=-O2 LDFLAGS=-s |
---|
| 128 | |
---|
| 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 |
---|
| 138 | the source code. |
---|
| 139 | |
---|
| 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 |
---|
| 144 | this: |
---|
| 145 | |
---|
| 146 | CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure |
---|
| 147 | |
---|
| 148 | Or on systems that have the `env' program, you can do it like this: |
---|
| 149 | |
---|
| 150 | env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure |
---|
| 151 | |
---|
| 152 | Here are the `make' variables that you might want to override with |
---|
| 153 | environment variables when running `configure'. |
---|
| 154 | |
---|
| 155 | For these variables, any value given in the environment overrides the |
---|
| 156 | value that `configure' would choose: |
---|
| 157 | |
---|
| 158 | CC: C compiler program. The default is `cc'. |
---|
| 159 | |
---|
| 160 | INSTALL: Program used to install files. The default value is `install' |
---|
| 161 | if you have it, otherwise `cp'. |
---|
| 162 | |
---|
| 163 | For these variables, any value given in the environment is added to the |
---|
| 164 | value that `configure' chooses: |
---|
| 165 | |
---|
| 166 | DEFS: Configuration options, in the form `-Dfoo -Dbar ...'. |
---|
| 167 | |
---|
| 168 | LIBS: Libraries to link with, in the form `-lfoo -lbar ...'. |
---|
| 169 | |
---|
| 170 | Checking the package |
---|
| 171 | -------------------- |
---|
| 172 | To check the package, i.e. to run some tests included in the package, |
---|
| 173 | you can use the following command: |
---|
| 174 | |
---|
| 175 | make check |
---|
| 176 | |
---|
| 177 | Installing the package |
---|
| 178 | ---------------------- |
---|
| 179 | Normally, to install the GLPK package you should type the following |
---|
| 180 | command: |
---|
| 181 | |
---|
| 182 | make install |
---|
| 183 | |
---|
| 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. |
---|
| 189 | |
---|
| 190 | make prefix=/usr/gnu |
---|
| 191 | make prefix=/usr/gnu install |
---|
| 192 | |
---|
| 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 |
---|
| 196 | `make distclean'. |
---|
| 197 | |
---|
| 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'. |
---|
| 201 | |
---|
| 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: |
---|
| 206 | |
---|
| 207 | make uninstall |
---|
| 208 | |
---|
| 209 | ======================================================================== |
---|