Tip: See the page on building Regina on different distributions, which offers advice tailored for your particular type of machine.
Building Regina from its sources can be either trivially simple or quite painstaking depending upon your system configuration. With each new release, the scripts that automatically detect your system configuration become more sophisticated, hopefully making Regina simple to build on more and more systems.
If Regina does not build directly out of the box for you, please drop me an email (including your config.log if possible) so that the automatic detection scripts can be made to work with your system and others like yours for the next release.
Basically the steps are as follows.
If you are having trouble compiling or running Regina, you may check the troubleshooting page to see if your problem is discussed there. Of course you are also welcome to mail either myself or the users' mailing list regina-user@lists.sourceforge.net for assistance.
It is highly recommended that you download ready-made packages of these tools and libraries for your GNU/Linux distribution, since this is the best way to provide standard installations in standard locations that Regina can easily find and use. Where you will find such packages depends upon your distribution. For instance, Debian packages can all be found on the usual Debian servers, Fedora Core packages can be found on the Fedora download servers and so on.
The following table lists each requirement along with its Debian package name and some commonly-used RPM package names (these tend to vary between different RPM-based distributions). It also lists the website from which each piece of software can be obtained directly if no ready-made packages are available, though this should be avoided where possible.
Please note that if you get an error at build time saying that Regina cannot link with -lfoo for some library foo, you probably just need to install another library development package on your system. For instance, Fedora users who get the error "/usr/bin/ld: cannot find -lselinux" need to install the additional package libselinux-devel, and users who get the error "/usr/bin/ld: cannot find -ljpeg" need to install the package libjpeg-devel.
| Legend | |
|---|---|
| Required | Optional |
| Component | Required For | Version | Package Names / Website |
|---|---|---|---|
| GNU multiprecision arithmetic library (libgmp) | Calculation engine | >= 3 | libgmp3-dev (DEB) gmp-devel (RPM) ftp://ftp.gnu.org/gnu/gmp/ |
| GNOME XML library (libxml2) | Calculation engine | >= 2.0.0 | libxml2-dev (DEB) libxml2-devel (RPM) ftp://ftp.gnome.org/.../libxml2/ |
| Popt command-line parsing library (libpopt) | Command-line utilities | >= 1.3 | libpopt-dev (DEB) popt / popt-devel (RPM) http://rpm5.org/files/popt/ |
| KDE 3 and Qt 3 libraries | Graphical user interface | KDE >= 3.2 with Qt >= 3.2 | kdelibs4-dev & libqt3-mt-dev (DEB) kdelibs-devel / kdelibs3-devel & qt-devel / qt3-devel (RPM) http://www.kde.org/ |
| Python libraries | Python scripting | >= 2.2 | python-dev (DEB) python-devel (RPM) http://www.python.org/ (note that some RPM-based systems also require libselinux-devel) |
| Boost.Python libraries (libboost_python) | Python scripting | >= 1.31.0 | libboost-python-dev (DEB) boost-devel (RPM) http://www.boost.org/ |
| Perl | Python scripting | >= 5 | perl (DEB) perl (RPM) http://www.perl.com/.../software.html |
| Doxygen | Calculation engine API docs | >= 1.2.2 | doxygen (DEB) doxygen (RPM) http://www.stack.nl/~dimitri/doxygen/ |
| MPI development environment (e.g., MPICH or LAM) | MPI-enabled utilities | libmpich1.0-dev & mpich-bin (DEB) (mpich-devel / libmpich1-devel) & mpich (RPM) http://www.mcs.anl.gov/mpi/mpich/ (MPICH) | |
| lam4-dev & lam-runtime (DEB) (lam-devel / liblam7-devel) & (lam / lam-runtime) (RPM) http://www.lam-mpi.org/ (LAM) | |||
| CppUnit | Test suite | >= 1.8.0 | cppunit (DEB) cppunit-devel (RPM) http://sourceforge.net/projects/cppunit/ |