Go to the first, previous, next, last section, table of contents.


2 Installation

This section describes how to install the CLN package on your system.

2.1 Prerequisites

2.1.1 C++ compiler

To build CLN, you need a C++ compiler. Actually, you need GNU g++ 2.7.0 or newer. On HPPA, you need GNU g++ 2.8.0 or newer.

The following C++ features are used: classes, member functions, overloading of functions and operators, constructors and destructors, inline, const, multiple inheritance, templates.

The following C++ features are not used: new, delete, virtual inheritance, exceptions.

CLN relies on semi-automatic ordering of initializations of static and global variables, a feature which I could implement for GNU g++ only.

2.1.2 Make utility

To build CLN, you also need to have GNU make installed.

2.2 Building the library

As with any autoconfiguring GNU software, installation is as easy as this:

$ ./configure
$ make
$ make check

If on your system, `make' is not GNU make, you have to use `gmake' instead of `make' above.

The configure command checks out some features of your system and C++ compiler and builds the Makefiles. The make command builds the library. This step may take 4 hours on an average workstation. The make check runs some test to check that no important subroutine has been miscompiled.

The configure command accepts options. To get a summary of them, try

$ ./configure --help

Some of the options are explained in detail in the `INSTALL.generic' file.

You can specify the C compiler, the C++ compiler and their options through the following environment variables when running configure:

CC
Specifies the C compiler.
CFLAGS
Flags to be given to the C compiler when compiling programs (not when linking).
CXX
Specifies the C++ compiler.
CXXFLAGS
Flags to be given to the C++ compiler when compiling programs (not when linking).

Examples:

$ CC="gcc" CFLAGS="-O" CXX="g++" CXXFLAGS="-O" ./configure
$ CC="gcc -V 2.7.0" CFLAGS="-O -g" \
  CXX="g++ -V 2.7.0" CXXFLAGS="-O -g" ./configure
$ CC="gcc -V 2.8.0" CFLAGS="-O" \
  CXX="g++ -V 2.8.0" CXXFLAGS="-O -fno-exceptions" ./configure

Note that for these environment variables to take effect, you have to set them (assuming a Bourne-compatible shell) on the same line as the configure command. If you made the settings in earlier shell commands, you have to export the environment variables before calling configure. In a csh shell, you have to use the `setenv' command for setting each of the environment variables.

On Linux, g++ needs 15 MB to compile the tests. So you should better have 17 MB swap space and 1 MB room in $TMPDIR.

If you use g++ version 2.7.x, don't add `-O2' to the CXXFLAGS, because `g++ -O' generates better code for CLN than `g++ -O2'.

If you use g++ version 2.8.x, I recommend adding `-fno-exceptions' to the CXXFLAGS. This will likely generate better code.

2.3 Installing the library

As with any autoconfiguring GNU software, installation is as easy as this:

$ make install

The `make install' command installs the library and the include files into public places (`/usr/local/lib/' and `/usr/local/include/', if you haven't specified a --prefix option to configure). This step may require superuser privileges.

If you have already built the library and wish to install it, but didn't specify --prefix=... at configure time, just re-run configure, giving it the same options as the first time, plus the --prefix=... option.

2.4 Cleaning up

You can remove system-dependent files generated by make through

$ make clean

You can remove all files generated by make, thus reverting to a virgin distribution of CLN, through

$ make distclean


Go to the first, previous, next, last section, table of contents.