Note: Windows 10 features a bash shell that can run linux software directly on Windows. This makes the installation of MercuryDPM much easier, as it no longer requires the use of an emulator or a virtual machine. To use this, you have to have an up-to-date version of Windows (it requires the 2016 anniversary update). If you do not want to update your Windows version, use the Windows 8 installation instructions instead.

Step 1: Activate Bash for Windows 10

      1. Search for " Windows Update settings"

2. Go to " For developers" and activate "Developer mode"

3. Close the "Settings" app and open "Control Panel" -> "Programs" -> "Turn Windows features on or off

4. Enable "Windows Subsystem for Linux" and click OK. You will be prompted to reboot. Click "Restart now" to install Bash

5. Go to the "Microsoft Store" and download "Ubuntu" (this step is not necessary for older Windows 10 versions, where only Ubuntu was available.

6. After reboot, search for "bash" or "Ubuntu" in the start menu and open the program.

7. The first time it will ask you to accept the terms of service and to create a username and password. If you're not familiar with the linux environment, this password is needed for most sudo (i.e., administrator) commands

5. You now have the bash console, and all linux commands, available at your computer. To start in linux mode just open the "bash" program. (Your windows files are under /mnt/c)

6. If you prefer to work from your windows files from start, it is also possible to enter from the CMD prompt by typing bash

Step 2: Install required external programs (X11, SVN, CMake, C++ compiler with C++14 features, Python, Doxygen)

    1. For visualisation, an X11 server is needed. We recommend the Xming X server, available at
      Download that program and follow the default installation instructions

    2. Open "Xming" from the start menu. There should now be a "X" logo in the notification bar at the bottom left corner of your screen. Mouseover to see the address of the X11 display. (default case 0.0)

3. Open "bash" to open a terminal

4. Use the following commands to get several packages required for MercuryDPM (enter your password and type 'Y' to accept the installation).

sudo apt update

sudo apt install subversion cmake-curses-gui cmake-qt-gui g++ gfortran python2.7 python build-essential

sudo apt install libx11-dev libxt-dev libxres-dev libxtst-dev doxygen graphviz

5. Tip: You can paste each command into the command window by right-clicking the title bar:

6. For using the CMake graphical user interface, as well as Xballs or other visual programs, connection with the X11 server has to be established. Type:

echo "export DISPLAY=localhost:0.0" >> ~/.bashrc

Mind the capitals! If your address from step 2 is different from 0.0, change the number.

7. By default, the Ubuntu shell creates a home directory in the AppData folder in your user directory. This folder is hidden and very hard to access in Windows. We therefore recommend you to use a folder within the Windows file system instead. To do so, create a new folder "c:\dev" on your c-drive, and make bash enter this folder at start-up.

mkdir /mnt/c/dev

cd /mnt/c/dev

echo "cd /mnt/c/dev" >> ~/.bashrc

8. Add this folder to your Quick Access toolbar:

Step 3: Install MercuryDPM

      1. Now we will install MercuryDPM. Open the bash, and create a directory called "MercuryDPM", at a location of your choice, by typing

mkdir MercuryDPM

      1. To get into the directory, type

cd MercuryDPM/

      1. Once in the folder MercuryDPM, download or check out the version 0.11.1 of the DPM source by typing

svn checkout MercurySource

Type 'p' during the process to permanently allow the svn to connect to the MercuryDPM server.
The above command downloads the MercuryDPM source code into the folder named "MercurySource"

      1. In the current folder, i.e. MercuryDPM, create another directory called "MercuryBuild"

mkdir MercuryBuild

      1. Get into the folder "MercuryBuild" by typing

cd MercuryBuild

      1. Assuming cmake is successfully installed, go to directory "MercuryBuild" in order to create the executables from the source code. Do it by typing

cmake-gui ../MercurySource/

      1. A GUI pops up on your screen as in the picture shown below. Make sure option "Grouped" is selected and "Advanced" is selected.

8. After clicking on "Configure", the following window appears on your screen

  1. Select "Unix makefiles" under specify the generator for this code

  2. Choose "Use default native compilers"

  3. Click on "Done"

9. Search for CMAKE_CXX_COMPILER in the CMAKE menu and change its value to " to /usr/bin/g++", then click "Configure" again

10. Optional: for documentation tick the box MAKE_BUILD_DOCUMENTATION, in the picture as shown below, before you click on configure.

10. Click on "Generate" to create the make files and directory structure in "MercuryBuild" that is needed to build executables from the source files.

11. The building/installation progress is visible in the bottom panel of your cmake-gui window screen, as seen in the screenshot below.

    1. Any red line in the bottom panel, indicates that some package is missing or needs to be installed to have a successful "configure". In that case, click on the "Advanced" option to see exactly where the issue is or contact any of the MercuryDPM team of developers.

    2. Once configured for the first time, under the group named 'CMAKE' type 'Release' at 'CMAKE_BUILD_TYPE'. See the picture above.

12. To check if successfully installed, go to your build directory "MercuryBuild" using the terminal and type

make fullTest

This command builds all the source files in the directory "MercurySource" and creates the executables in the MercuryBuild directory. Then it runs several executables to test if MercuryDPM is installed correctly.

13. If all the tests have passed, MercuryDPM is successfully installed on your machine.

14. Please note: When using Xballs for make sure you have the Xming X11 server running (step 10) and are connected to the server (step 13) otherwise the visualisation will NOT work.


Please follow the instructions to sign up for the mailing list to receive updates about the code.