CoinAll Release 1.0.0
=====================

The goal of this project is to provide an environment for building a
completely interoperable set of binaries consisting of all COIN projects that
use the COIN configuration and build system. Currently this project will only
build in Unix-like environments using the GNU autotools. Currently, the
explicitly supported and tested environments are:

1. Microsoft Windows using CYGWIN with the default compiler gcc v3.4
2. Microsoft Windows using Msys with gcc v4.2
3. Microsoft Windows using the Microsoft cl compiler
4. Linux using the compiler gcc v4.1
5. Mac OSX using the compiler gcc 4.0

If you want to exclude projects from the configuration and
compilation, you can do so by setting the COIN_SKIP_PROJECTS variable
to a space-separated list of the project directory names, such as

./configure [...]  COIN_SKIP_PROJECTS='Cbc Clp'

Below are the standard COIN-OR installation procedures. Please be sure to read
the notes at the very bottom of this file for exceptions for specific
platforms.

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

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

   svn co https://projects.coin-or.org/svn/CoinAll/stable/1.0 CoinAll

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

   gunzip CoinAll-1.0.0.tgz
   tar xvf CoinAll-1.0.0.tar

   More detailed download instructions can be found at

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

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

First, if you want to compile Ipopt, you need to make sure that Blas, Lapack
and either Mumps or certain packages from the Harwell subroutine library are
available (see the INSTALL.* files in ThirdParty/*). You must also download
any other optional third party packages before configuration. It is
recommended to download glpk, as this enables additional functionality in a
number of COIN packages.

Go into the directory that you just downloaded or extracted (e.g., CoinAll)
and 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

for more information.

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

   "Main configuration of CoinAll 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 in the projects 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 for a Project Prjct in 

   Prjct/examples/

subdirectory (for those, that provide examples), see also the
information at

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

**********************************************************************
***                       SPECIAL NOTES                            ***
**********************************************************************

1. To buld Ipopt with the freely available Mumps library, you need to have a
Fortran 95-compliant compiler. On Linux and Mac OSX, the default GNU compilers
work fine, but on Windows, the only build environment in which there is a
freely available F95 compiler is the Msys shell environment. To build Mumps in
Microsoft Windows using MSys, you will first need to install the MinGW gcc 4.2
technology preview in order obtain a Fortran 95 compliant Fortran compiler.
GCC 4.2 is available here:

http://sourceforge.net/project/showfiles.php?group_id=2435&package_id=241304

You need to install the gcc-core, gcc-g++, and gcc-gfortran packages. After
installing these packages, you will also need to patch Mumps by executing the
command

patch -p0 < mumps.gcc.patch

in this directory.

Note the executable names in the gcc packages have the suffix "sjlj" and will
not be found by the configuration script of whatever project you are trying to
build, so you must either (1) change their names by deleting the suffix
(beware that if you do this, you may create a conflict with other version of
gcc already installed) or (2) configure with

./configure CC=gcc-sjlj CXX=g++-sjlj F77=gfortran-sjlj

2. The OS project uses low-level socket calls to communicate with servers. To
build OS with the microsoft cl compiler, you need to the necessary socket
header and lib files at:

http://msdn2.microsoft.com/en-us/express/aa700755.aspx

See also

http://www.coin-or.org/OS/documentation/node13.html
