= GLPK =

== Description ==

The GLPK (GNU Linear Programming Kit) package is intended for solving
large-scale linear programming (LP), mixed integer programming (MIP),
and other related problems. It is a set of routines written in ANSI C
and organized in the form of a callable library.

GLPK supports the GNU MathProg modelling language, which is a subset of
the AMPL language.

The GLPK package includes the following main components:

 * primal and dual simplex methods
 * primal-dual interior-point method
 * branch-and-cut method
 * translator for GNU MathProg
 * application program interface (API)
 * stand-alone LP/MIP solver

== License ==

The GLPK package is GPL version 3.

== Upstream Contact ==

GLPK is currently being maintained by:

 * Andrew Makhorin (mao@gnu.org, mao@mai2.rcnet.ru)

http://www.gnu.org/software/glpk/#maintainer

== Dependencies ==

 * GMP/MPIR
 * zlib

== Special Update/Build Instructions == 

 * It should be sufficient to pass `--with-<package>="$SAGE_LOCAL"` 
   (where <package>={gmp,zlib}) instead of adding Sage's directories 
   to `CPPFLAGS` and `LDFLAGS`; see comment in `spkg-install`. 
   Turns out that (as of version 4.55) 
   1) GLPK unconditionally uses its own copy of zlib (see above), 
      and the `configure` option `--with-zlib` is no longer valid; 
   2) `configure` doesn't support specifying the location of the GMP 
      library to use; only `--with-gmp[=yes]` or `--with-gmp=no` 
      are valid options.  (So we *have to* add Sage's include and 
      library directories to `CPPFLAGS` and `LDFLAGS`, respectively.) 
 * Do we need the `--disable-static`?  The stand-alone solver presumably 
   runs faster when built with a static library; also other (stand-alone) 
   programs using it would. 
   (Instead, we should perhaps use `--enable-static --enable-shared` to 
   go safe.)

=== Patches ===

 * cygwin_sharedlib.patch: Let a shared library be built on Cygwin by
   passing the -no-undefined flag to libtool.
 * zlib.patch: don't build the included zlib library.
 * build_system/: contains patches prior to re-autotoolification.

