Chapter 9. Compiling Regina Into Your Projects

Table of Contents

Installing the Development Files
Compiler and Linker Flags
API Documentation

Regina offers its mathematical core as a C++ shared library. This means that your own C++ applications can make use of Regina's functionality, much like they might use any other mathematical library.

Regina is released under the GNU General Public License, which restricts how you may use it in other software. These restrictions are to benefit and encourage mathematical software that is free to use, modify and redistribute. For further information, please read the license details or write and ask if you have any specific questions.

Installing the Development Files

To build Regina into your own projects, you must install Regina's development files; that is, the C++ headers and development libraries.

  • If you downloaded an RPM-based package (e.g., for Fedora, Mandriva or SUSE), you should already have the development files installed. Check that the headers are present in /usr/include/regina/.

  • If you downloaded a Debian-based package (e.g., for Debian or Ubuntu), you will need to install the separate package regina-normal-dev. Check that the headers are present in /usr/include/regina-normal/.

  • If you built a Fink package on MacOS X, you will need to install the separate package regina-normal4.90-dev. Check that the headers are present in /sw/opt/kde4/mac/include/regina-normal/.

  • If you built Regina yourself, you should already have the C++ headers and development libraries installed. Check that the headers are present in /usr/include/regina/ (or wherever you chose to install Regina).

Regina uses some other libraries in turn, and you will need the development files for these libraries also. You should install these through ready-made packages if at all possible: they are available in every major GNU/Linux distribution. The extra libraries you will need are:

zlib compression library (libz)

Look for a package named zlib1g-dev, zlib1-devel or zlib-devel.

GNU multiprecision arithmetic library (libgmp)

Look for a package named libgmp-dev, lib64gmp-devel, libgmp-devel or gmp-devel.

GNOME XML library (libxml2)

Look for a package named libxml2-dev, lib64xml2-devel or libxml2-devel.