# System Requirements¶

Herwig is written in C++ but includes some FORTRAN and Python. Some of the programs we use to supply real and virtual amplitudes are written in FORTRAN.

• By default we assume you are using gcc for compilation and should have the same version of gcc, g++ and gfortran. From Herwig 7.1 on, some of the dependencies and Herwig itself are using C++11 features and therefore we strongly recommend at least GCC 4.9 is used. If your system does not provide a recent version of the compilers the --build-gcc option of the bootstrap script can be used to install them.
• You need to install both python and the headers for python so it can be linked with C++. This will usually be provided by packages called python and python-dev or python-devel on your system.
• The OpenLoops package is installed from an svn repository and therefore you need to install svn if you wish to use this package.
• ThePEG uses the zlib library to read compressed files. This is supplied by the zlib or zlib1g package on most systems. As the code is linked against the library the header files from the zlib-dev or zlib-devel or zlib1g-dev packages are also needed. This option can be disabled by using the -without-zlib option when configuring ThePEG.

Furthermore if you are installing Herwig or ThePEG from the repository you will need

• The Mercurial package management system hg
• The autotools packages automake, autoconf and libtool. If you use Mac OS X make sure that these are up to date as Mac shippes outdated versions. We require at least automake v1.13 and autoconf v2.65
• The gengetopt program which can be installed using the --with-gengetopt of the bootstrap script if not provided by your system.

Finally if you wish to use a system install of the boost libraries, rather than installing them yourself or with the bootstrap script, you will need the boost or libboost package for the library and the header files supplied by the libboost-dev or boost-devel packages.

## Mac¶

First, make sure you get the OS X command line tools as described here (just ignore the Ruby-specific sections).

From the Macports system, install gcc6:

sudo port install gcc6


From here on, the bootstrap script can be used

FC=gfortran-mp-6 ./herwig-bootstrap \${HW_INSTALL_PATH}


### Do you still get errors?¶

If you still get double free errors at runtime (our test machines don’t!), the most likely explanation is that you have built your toolchain with incompatible compilers.

The only compilers on your system should be /usr/bin/gcc etc. and /opt/local/bin/gcc-mp-6 etc. You need nothing in /usr/local and nothing from Fink (/sw).