PREREQUISITES
=============

GiNaC requires the CLN library by Bruno Haible installed on your system.
It is available from <ftp://ftpthep.physik.uni-mainz.de/pub/gnu/>.

You will also need a decent ANSI-compliant C++-compiler. We recommend the
C++ compiler from the GNU compiler collection, GCC >= 3.0. If you have a
different or older compiler you are on your own. Note that you may have to
use the same compiler you compiled CLN with because of differing
name-mangling schemes.

Known to work with:
 - Linux on x86, Alpha and Sparc using GCC 3.x and 4.0.

Known not to work with:
 - GCC 2.96 or earlier because proper exception and standard library support
   is missing there.

If you install from CVS, you also need GNU autoconf (>=2.59) and
automake (>=1.7) to be installed.


INSTALLATION
============

To install from a source .tar.bz2 distribution:

 $ ./configure
 $ make
 [become root if necessary]
 # make install

To install from CVS:

 $ cvs -d :pserver:anoncvs@cvs.ginac.de:/home/cvs/GiNaC login
 [enter "anoncvs" as the password]
 $ cvs -d :pserver:anoncvs@cvs.ginac.de:/home/cvs/GiNaC co GiNaC
 $ cd GiNaC
 $ autoreconf -i
 $ ./configure
 $ make
 [become root if necessary]
 # make install

To build the GiNaC tutorial and reference manual in HTML, DVI, PostScript,
or PDF formats, use one of

 $ make html
 $ make dvi
 $ make ps
 $ make pdf

To compile and run GiNaC's test and benchmark suite and check whether the
library works correctly you can use

 $ make check

The "configure" script (and "autogen.sh", which invokes "configure") can be
given a number of options to enable and disable various features. For a
complete list, type:

 $ ./configure --help

A few of the more important ones:

 --prefix=PREFIX        install architecture-independent files in PREFIX
                        [defaults to /usr/local]
 --exec-prefix=EPREFIX  install architecture-dependent files in EPREFIX
                        [defaults to the value given to --prefix]
 --disable-shared       suppress the creation of a shared version of libginac
 --disable-static       suppress the creation of a static version of libginac

More detailed installation instructions can be found in the documentation,
in the doc/ directory.

The time the "make" step takes depends heavily on optimization levels. Large
amounts of memory (>128MB) will be required by the compiler, also depending
on optimization. To give you a rough idea of what you have to expect the
following table may be helpful. It was measured on an Athlon/800MHz with
"enough" memory:

step          | GCC optimization  | comment
              |   -O1   |   -O2   |
--------------+---------+---------+----------------------------------------
make          |   ~6m   |   ~8m   | shared and static library
make check    |   ~8m   |  ~12m   | largely due to compilation


COMMON PROBLEMS
===============

Problems with CLN
-----------------

You should use at least CLN-1.1, since during the development of GiNaC
various bugs have been discovered and fixed in earlier versions. Please
install CLN properly on your system before continuing with GiNaC.

Problems building ginsh
-----------------------

The most common reason why this doesn't succeed is the absence of
libreadline and/or the corresponding header files. Depending on what your
system/distribution is, you will have to install a package called
libreadline and maybe libreadline-dev. If your system's vendor doesn't
supply such packages, go to <ftp://ftp.gnu.org/gnu/readline/> and compile
it yourself.

Problems with missing standard header files
-------------------------------------------

Building GiNaC requires many standard header files. If you get a configure
error complaining about such missing files your compiler and library are
probably not up to date enough and it's no worth continuing.
