Download the SRMC software

SRMC is supported by a suite of tools which provide separation between a rich cross-platform graphical user interface and an efficient set of model solvers. The user interface is implemented by the SRMC Project, a contribution to the Eclipse framework. If you're new to Eclipse, visit the Eclipse home page to get started. The back-end is implemented by the smc/ipclib/hydra tool chain. Here follows a step-by-step guide on how to install these tools.

Download and install the SRMC project

The graphical user interface is deployed as an Eclipse feature. You must have installed the Eclipse IDE already. If you don't have Eclipse, visit the Eclipse downloads page and download the distribution that suits you best. This tool has been successfully tested against Eclipse 3.3.1 running on JVM 1.6 on Windows and Linux Fedora Core 6.

You are now ready to download and install SRMC. The easiest way to do so is through the Eclipse Update Manager:

  1. In Eclipse, select Help > Software Updates > Find and Install.... The wizard dialogue box that pops up will assist you through the installation process.
  2. On the first page of the wizard select Search for new features to install.
  3. On the second page, you are provided with a list of update sites where you can download and install new features from. The SRMC Plug-in relies on third-party plug-ins for some of its functionality. Ensure that you have the Batik and Batik PDF features installed in your Eclipse distribution. If not, do the following:
    • To select the update site for Batik, select the Europa Discovery Site if you have it already. Otherwise press New Remote Site.... Enter the site name Europa Discovery Site and the site URL
    • To select the update site for Batik PDF create a new site called BIRT update site with the following URL:
    Click New Remote Site.... Enter the site name LFCS Updates and the site URL
  4. Press Next and select the SRMC in the check-list under LFCS Updates.
  5. If the wizard complains about dependencies not yet resolved, press Select required.
  6. When all the dependencies are resolved press Next. Accept the license agreement and press Next to install the product.

Optional Download. SRMC uses PEPA as the intermediate format for model analysis. The SRMC project itself does not provide tools for PEPA. However, the PEPA Eclipse Project is available from the same update site under the PEPA category.

Download and install smc/ipclib

We provide binary distributions of the smc/ipclib/hydra tool chain for Windows and Linux. Windows users must have cygwin installed. It is available for download at Ensure that you include gcc and g++ in your distribution.

  • To download the Windows binary distribution, click here
  • To download the Linux binary distribution, click here. It has been successfully tested on Linux Fedora Core 6.
  1. Unzip the distribution zip file into your filesystem.
  2. Update your PATH environment variable with <local_dir>/ipclib/bin where <local_dir> is the directory into which you unzipped the distribution.

ipc/ipclib and smc from source

The source code for the ipc and smc compilers is contained within the ipclib source distribution. This in turn is stored in a darcs repository. There are two ways to obtain the source:
  1. If you have darcs and you wish to possibly modify the source then this is the best way to obtain the source code. The repository is located at: and can be obtained through darcs with the command:
    • darcs get
  2. Alternatively one can download a source tarball and then issue the command:
    • tar xzf ipclib.tar.gz
Once you have obtained the source code the library and related tools can be compiled with the following commands:
  1. runhaskell Setup.hs configure
  2. runhaskell Setup.hs build
Optionally to install the package run the following command:
  1. runhaskell Setup.hs install
If you do not have root permissions (and even if so it's generally a good idea) you can install it to a local directory of your choice, such as: ${HOME}/install by exchanging the first command for the command:
  1. runhaskell Setup.hs configure --user --prefix ${HOME}/install
This will place the executable programs in: ${HOME}/install/bin/ which should be in your path.

Compiling ipclib under ghc 6.6

During the switch from ghc version 6.6 to ghc version 6.8 the 'base' libraries were split into several separate packages and the new 'base' package was much small. For example 'Data.Map' was put into the package 'containers'. This means that the ipclib.cabal file specifies as packages which the build depends upon some which were simply not packages in ghc version 6.6. Therefore your build configuration will fail with some message about build dependencies 'directory and containers' not being met.

To resolve this it is recommended that you upgrade to ghc version 6.8, if however this is impossible/awkward then in the darcs repository there is a cabal file which should work with ghc version 6.6. This is called: ghc.6.6.ipclib_cabal. To make your build work do, overwrite the ipclib.cabal with the ghc6.6.ipclib_cabal file. You will also need Neil Mitchell's filepath library (which is included with the ghc 6.8 version but not 6.6) you can download and install in the usual cabal way from Neil's homepage.

If you do this and you wish to send a patch, please remember not to record the (irrelevant) changes to the ipclib.cabal file.

Hydra from source

The source for Hydra (the Markov chain solver) can also be downloaded via darcs. The command is:
  • darcs get
Again the source can alternatively be downloaded via the tarball at: To compile and install issue the commands:
  1. cd hydra/src/
  2. autoreconf
  3. ./configure
  4. make
  5. make install
Usually you will need to become 'root' for the final command. As for most autoconf managed programs if you wish to install in a non-standard location then provide the ./configure command with a --prefix option. A typical user install is:
  1. cd hydra/src/
  2. autoreconf
  3. ./configure --prefix ${HOME}/install/
  4. make
  5. make install
Making sure that ${HOME}/install/bin is in your $PATH environment variable.