Dependencies

PCSIM depends on several third party software packages. However, most modern Linux distributions have most of the necessary software packages in their package repositories, or for some there are binary packages (rpm or dpkg) on the home page of the software. If possible, for the sake of simplicity of the installation process, the user should prefer installing these binary packages, instead of compiling them from the source release. For example for openSUSE 10.2 and 10.3 with the exception of GCCXML and the pure python packages pygccxml and Py++ for any of the following packages there is a binary RPM distribution available which can conviniently be installed using Yast or easiliy be found via http://packages.opensuse-community.org/.

In the following we list all the packages needed in order to compile PCSIM from its source distribution. However only packages marked with ** are strictly required after PCSIM is compiled (e.g. when using a pre-compiled PCSIM library). Packages marked with * are neccessary only if PCSIM is linked dynamically against them (which is preferable and hance the default).

  1. Python ($\ge$2.4)** The primary interface for using PCSIM is based on the modern scriptin language python. This languae is used to setup and control PCSIM simulations.
    Home: http://www.python.org, Download: http://www.python.org/download/

  2. CMake ($\ge$2.4-patch8) CMake is the build tool which is used to compile the C++ part of PCSIM .

    Home: http://www.cmake.org, Download: http://www.cmake.org/HTML/Download.html

  3. Doxygen ($\ge$1.5.3) Doxygen is used to generate source documentation and to parse C++ source code to generate certain kind of wrapper code needet to allow for convienient access of properties of simulated objects.
    Home: http://www.doxygen.org, Download: http://www.stack.nl/~dimitri/doxygen/download.html

  4. elementtree This python module is used to parse the XML output of doxygen to generate the above mentioned wrapper code. As of python 2.5 this is contained in the python distribution.
    Home: http://www.effbot.org/zone/element-index.htm, Download: http://www.effbot.org/downloads/#elementtree

  5. Boost C++ ($\ge$1.33.1)* These libraries can not be avoided for any serious C++ project.
    Home: http://www.boost.org, Download: http://sourceforge.net/project/showfiles.php?group_id=7586

  6. MPI** The message passsing interface standard is used for distributed simulations. We are developing PCSIM with MPICH2 (1.0.6p1)
    Home: http://www.mcs.anl.gov/research/projects/mpich2, Download: http://www.mcs.anl.gov/research/projects/mpich2/downloads/index.php?s=downloads
    Note: On openSUSE 10.2 we compiled this from the sources since for some reasons the available RPM packages did not work.

  7. cppunit ($\ge$1.12.1) This unit test framework for C++ is used for testing the C++ core of PCSIM.
    Home: http://sourceforge.net/projects/cppunit, Download: https://sourceforge.net/project/showfiles.php?group_id=11795

  8. GSL - GNU Scientific Library ($\ge$1.9)* This library provides many useful methods for scientific computing. For example a library of methods for numeric integration.
    Home: http://www.gnu.org/software/gsl, Download: ftp://ftp.gnu.org/gnu/gsl/gsl-1.10.tar.gz

  9. GCCXML ($\ge$0.9) This code parser generates an XML description of C++ code. Such a description is used py Py++ (see below) to generate the python interface code.
    Home: http://www.gccxml.org, Download: GCCXML can only be downloaded from the development CVS repository :pserver:anoncvs@www.gccxml.org:/cvsroot/GCC_XML

  10. pygccxml and Py++ ($\ge$0.9.5): These two powerful tools are used to generate the code which interfaces the PCSIM C++ library with python. (download)

The source distribution of PCSIM also contains the file HowTo-Install-PCSIM-Dependencies-Linux.txt which describes how to install the above mentioned packages form their source distribution.

IMPORTANT NOTE: Paths to all installed libraries ( boost, mpich2, gsl, cppunit) should be added to LD_LIBRARY_PATH if they are installed in non-standard locations, so that the PCSIM build system can find them!