These instructions are for UNIX-like systems (including Linux, Cygwin
and MSys) only.  If Microsoft Developer Studio projects are
maintained for this package, you can find instructions at

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

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

You can obtain the source code for the Clp 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-Clp", you type

   svn co https://projects.coin-or.org/svn/Clp/trunk Coin-Clp

2. Download the tarball from http://www.coin-or.org/Tarballs/Clp and
   extract it, for example, with

   gunzip Clp_2006Jun07.tgz
   tar xvf Clp_2006Jun07.tar

   (Here "2006Jun07" is of course replaced by the string in the
   tarball you downloaded.)

   More detailed download instructions can be found at

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

**********************************************************************
***                        CONFIGURATION                           ***
**********************************************************************

Go into the directory that you just downloaded or extracted (e.g.,
Coin-Clp or Clp_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 Clp Trac page

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

for more information.

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

   "Main configuration of Clp successful"

**********************************************************************
***                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

**********************************************************************
***                     USING THE LIBRARIES                        ***
**********************************************************************

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

   Clp/examples/

subdirectory, see also the information at

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



==== 8< ======================================================

From here on you find the original installation instructions for the
previous GNU Makefile build system.  Most details have changed, but
for now we keep it here so that possibly missing items might be found
here.

Prerequisites for installation:
- at the moment on (*)nix platforms you must use g++ 2.95.2 or higher.
- must use gnu make
- to make the documentation doxygen must be installed

Targets are put in subdirectories, whose name is derived from the
platform name (as returned by `uname`) and the optimization level
(e.g., Linux-g).

To build Clp library and unitTest
  - read and edit the top of Makefile to select
      - whether shared or static library should be built
      - optimization level
      - where the compiled library should be installed
  - read and edit ../Common/make/Makefile.locations to uncomment Clp lines
  - 'make' to build and install the library.
  - 'make unitTest' to create the unitTest program. It will be placed
    in the target subdirectory.

  - 'make doc' to create the html documentation of the classes in the
    library and place them in doc/html.

To run Clp unitTest
  - clp -unitTest from Clp directory
To run Clp on netlib
  - clp -netlib from Clp directory (or -netlibp for primal).

To build Clp executable (after Clp libraries)
  In This directory 'make unitTest'.  This actually creates and executable
    clp in this directory which can both do unit test and act as simple
    Clp driver

Tuning information.  On Intel Linux I modified Makefiles/Makefile.Linux to add:

ifeq ($(OptLevel),-O1)
     CXXFLAGS += -DNDEBUG
     CXXFLAGS += -ffast-math -fomit-frame-pointer
     CXXFLAGS += -march=i686
endif

in Coin/Makefile I added the following to get dense code handling

CXXFLAGS += -DDENSE_CODE=1

and change Optimization level to -O1 (same level in Clp/Makefile.Clp).

and finally in Clp/Test/Makefile.test I added

#if DENSE and using given libraries
LDFLAGS += -llapack -lblas -lg2c

If you have not got these libraries then leave out dense code flags

For more information see README and files in Samples

IMPORTANT new note
To address the problem of stability I have gone over to a new system of releases.
Now a new release is a more minor thing but has its own snapshot.  To find out what
releases have snapshots just do

make restore

To restore Clp and Coin files to that snapshot do

make restore BACKUP=xxxx where a snapshot Clp_xxxx.tar or Clp_xxxx.tar.gz is available
and check that it looks OK.  Then do make restore BACKUP=xxxx CONFIRM=YES to actually 
overwrite files.  Then do make unitTest.

You can also create your own snapshots with make dist or make backup.  BUT use great care.
