Copyright 2007 Stuart Mitchell
s.mitchell@auckland.ac.nz

PuLP is an LP modeler written in python. PuLP can generate MPS or LP files
and call GLPK[1], COIN CLP/CBC[2], CPLEX[3] and XPRESS[4] to solve linear
problems.

See test1.py and test2.py for simple commented examples.
See test3.py, test4.py and test5.py for slightly more complex examples.

PuLP requires Python >= 2.5.

1) Unpack this Zip file in an appropriate directory.
2) if python is on the search path type:
python setup.py install
3) the required files should now be installed in your python path
4) At a python command line type
>>>import pulp
>>>pulp.pulpTestAll()
this should test the available solvers
5) if you wish to change the directories where your solvers are located
at the python command line type
>>> import pulp
>>> pulp.configSolvers()
Follow the instructions to enter the correct paths for your solvers.

The module must be reimported (I can only do this by restarting the 
command line) before changes take effect.

Building CoinMP.dll from source
CoinMP is the default solver for pulp and the file CoinMp.dll is 
included in the distribution so under windows it should just work
CoinMP can be built from source by using Microsoft Visual studio and the
files in the CoinMP msvc6 directory.

Under linux the CoinMP libraries may need to be built from source so 
please follow the instructions below and copy the .so files into 
pulp-or/src
There is a precomplied libraries included in the distribution but
they may not be appropriate for your linux distribution.
Copy this file into the pulp-or/src directory or change the value of 
CoinMPPath in pulp.cfg(.linux|.win)

For Debian distributions it may be enough to install glpk
$ sudo apt-get install glpk

**********************************************************************
***                         DOWNLOAD                               ***
**********************************************************************

You can obtain the source code for the CoinMP package in two ways:

1. Obtain the source directly from the COIN-OR subversion repository
   (recommended).  For this you needs the program 'svn' installed on
   your machine, and output of "svn --version" must contain 
   "handles 'https' scheme".

   Assuming that you want to download the code into a subdirectory
   "COIN-CoinMP", you type

   svn co https://projects.coin-or.org/svn/CoinMP/stable/1.2 Coin-CoinMP

2. Download the tarball from http://www.coin-or.org/download/source/CoinMP
   extract it, for example, with

   gunzip CoinMP-1.2.0.tgz
   tar xvf CoinMP-1.2.0.tar

   (Here "-1.2.0" is of course replaced by the actual release string 
    in the tarball you downloaded.)

   More detailed download instructions can be found at

   https://projects.coin-or.org/BuildTools/wiki/user-download


**********************************************************************
**********************************************************************
***   MS Visual Studio Build                                       ***
**********************************************************************
**********************************************************************

To build the 'CoinMP.dll', start MS Visual Studio 8 (2005) or 9 (2008), 
open the solution file 'CoinMP.sln' in the CoinMP\MSVisualStudio\v8 
folder and select 'Build Solution' from the 'Build' menu.


**********************************************************************
**********************************************************************
***   Unix Build                                                   ***
**********************************************************************
**********************************************************************
These instructions are for UNIX-like systems (including Linux, Cygwin
and MSys).

**********************************************************************
***               Unix CONFIGURATION                               ***
**********************************************************************

Go into the directory that you just downloaded or extracted (e.g.,
Coin-CoinMP or CoinMP_2006Jun07).  Then you type

   ./configure

Note that you might have to specify additional options, in case you
don't want to use the default choices that configure makes (e.g.,
compilers).  Please visit

   https://projects.coin-or.org/BuildTools/wiki/user-configure

and the CoinMP Trac page

   https://projects.coin-or.org/CoinMP

for more information.

If everything went fine, you will see at the end of the output

   "Main configuration of CoinMP successful"

**********************************************************************
***           Unix     COMPILATION AND INSTALLATION                ***
**********************************************************************

In the directory where you ran the configure script:

1. Compile the code by typing

   make

2. To test if the code works, you can type

   make test

3. To install the code, you type

   make install

   After this, you will find the executables, libraries and header
   files in the "bin", "lib" and "include" subdirectory, respectively.

More information on the compilation and installation can be found at

   https://projects.coin-or.org/BuildTools/wiki/user-compile

**********************************************************************
***                UNIX: USING THE LIBRARIES                       ***
**********************************************************************

Now you can link your own code with the installed libraries.  You can
find examples in the

   CoinMP/examples/

subdirectory, see also the information at

   https://projects.coin-or.org/BuildTools/wiki/user-examples



