Requirements
In order to use the Parma Polyhedra Library you should have the following tools and libraries installed on your system. Prospective PPL developers need more infrastructure.
Requirements for Everybody
C/C++ Compiler
We are currently using GCC
version 4.x, including all the dot-revisions.
Versions of GCC prior to 4.0.3 cannot be used to build the PPL,
since they do not correctly implement C++ standard features we use.
In addition GCC 4.1.0 has a bug that prevents compiling the PPL.
For the purpose of checking standard conformance, from time to time we also compile the library with the following compilers:
- Intel C/C++ Compiler 10.x for Linux;
- Comeau C/C++ 4.3.10.1 Compiler Front-End.
README.configure
in the source distribution for more details on the subject.
GMP: the GNU Multiple Precision library
GMP is a free library for arbitrary precision arithmetic, operating on signed integers, rational numbers, and floating point numbers. There is no limit to the precision except that implied by the available memory in the machine that GMP runs on.PPL version 0.3 and following require GMP version 4.0.1 or higher. PPL version 0.5 and following require GMP version 4.1.2 or higher. PPL version 0.7 and following require GMP version 4.1.3 or higher. Moreover, it is important that the following conditions are met:
- the GMP library has to be compiled with the C++ interface enabled (on GMP 4.0.x and 4.1.x it is not enabled by default);
- the GMP C++ interface has to be compiled with the same compiler version with which you will compile the PPL;
- your C and C++ compilers and your linker have to find that version of GMP (and not other versions that may be present in your system).
Since binary distributions of GMP may contain a version
of the C++ interface compiled with a C++ compiler
implementing a different ABI than the compiler you
will use to compile the PPL, the most reliable way to satisfy the points
above is to visit the GMP web site,
download the sources of the last available version,
and then follow the steps detailed in
README.configure
in the PPL's source distribution.
Additional Requirements for Developers
Prospective developers of the Parma Polyhedra Library,
besides fullfilling the
requirements for normal users of the library,
should also have the following tools and libraries installed.
Automake, Autoconf and Libtool
We are currently using- GNU Autoconf version 2.61;
- GNU Automake version 1.9.6;
- GNU Libtool version 1.5.24.
Doxygen
The documentation for PPL is produced by using the latest release of Doxygen (at the time of writing, we use 1.5.7.1; several of the older versions are known not to work correctly). In turn, Doxygen uses Graphviz in order to render the graphs in the HTML documentation (we are currently using versions in the range from 2.12 to 2.20.3) and thepdftops program, which is included in
Xpdf and
Poppler,
a PDF rendering library based on the xpdf-3.0 code base.
Ocamldoc
Part of the documentation for the Ocaml PPL interface is produced by using theocamldoc tool, which is included in the
OCaml source
distribution. If opting for a pre-built binary distribution,
then be warned that the documentation tool is often provided as
a separate package (usually named ocaml-ocamldoc).
