* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*                                                                           *
*                  This file is part of the program                         *
*          GCG --- Generic Column Generation                                *
*                  a Dantzig-Wolfe decomposition based extension            *
*                  of the branch-cut-and-price framework                    *
*         SCIP --- Solving Constraint Integer Programs                      *
*                                                                           *
* Copyright (C) 2010-2021 Operations Research, RWTH Aachen University       *
*                         Zuse Institute Berlin (ZIB)                       *
*                                                                           *
* This program is free software; you can redistribute it and/or             *
* modify it under the terms of the GNU Lesser General Public License        *
* as published by the Free Software Foundation; either version 3            *
* of the License, or (at your option) any later version.                    *
*                                                                           *
* This program is distributed in the hope that it will be useful,           *
* but WITHOUT ANY WARRANTY; without even the implied warranty of            *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the             *
* GNU Lesser General Public License for more details.                       *
*                                                                           *
* You should have received a copy of the GNU Lesser General Public License  *
* along with this program; if not, write to the Free Software               *
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.*
*                                                                           *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

We provide two different systems to compile the code. It's recommended to use the
new CMake system. The traditional Makefile system is still supported for backwards
compatibility but might be discontinued in the future.
Be aware that generated libraries and binaries of both systems might be different.
For further information please refer to the online documentation of SCIP and GCG.

Installation description using CMake
====================================

The easiest way to install GCG is to use the SCIP Optimization Suite which
contains GCG, SCIP, SoPlex, and ZIMPL. For that we refer to the INSTALL file of
the SCIP Optimization Suite (In case of the SCIP Optimization Suite, there is
no need to specify any directories, the compiling process is fully
automated).

Compiling GCG directly can be done as follows:

1) unpack the tarball:        "tar xvzf gcg-x.y.z.tgz"
2) change into the directory: "cd gcg-x.y.z"
3) create a new directory:    "build"
4) change directories:        "cd build"
4) configure the build:       "cmake .."
5) start compiling GCG:       "make"
6) (recommended) check build: "make check"
7) (optional) install GCG:    "make install"
   custom installation dir:   "cmake .. -DCMAKE_INSTALL_PREFIX=<install/dir>"

CMake checks for available third-party libraries like GMP or ZLIB and sets up
the configuration accordingly.

There are multiple options to customize the configuration. You can list them
using "cmake .. -LH" and set them by running "cmake .. -D<option>=<value>".
Options can be chained together or be specified in subsequent calls
to cmake. The existing configuration will be updated or extended.

To specify a custom path to a library you may specify "-D<name>_DIR=<path>",
e.g., "cmake .. -DSCIP_DIR=<path/to/SCIP/build/or/install>".

Refer to the online documentation and the FAQ section for further information.


Installation description with Makefile
=======================================

In order to compile GCG using the traditional Makefile system, you need a
running version of SCIP and you need to create a (soft-)link "scip" in the
lib/ directory pointing to the main directory of your SCIP version
(e.g., "../../scip").

If you do not create the soft link yourself, the Makefile will ask you
where SCIP is located. You need a recent version of SCIP (for GCG 1.0.0
this is SCIP 3.0.0).

The Makefile options are the same as in SCIP, for a detailed description
of those, have a look at the INSTALL file in your SCIP directory.

The compilation only works if SCIP was previously compiled with exactly
the same options. For example, if you want to compile in optimized
compilation mode and use Soplex as LP solver, you should first compile SCIP
via "make OPT=opt LPS=spx", then switch to the GCG directory and compile
GCG with "make OPT=opt LPS=spx", too.
The GCG makefile also provides the possibility to compile SCIP from your
GCG directory via the "SCIP" target, e.g., "make OPT=opt LPS=spx scip".

GCG is currently only tested on GNU/Linux and may not compile under
Microsoft Windows.

You can create the documentation via "make doc". Please visit
doc/html/index.html with your favorite web browser. You need doxygen 1.8.0
to build the documentation.

Bugs can be reported via email to gcg-bugs AT or.rwth-aachen.de
