Compilation

Tip

In the instructions below, some parts are specific to an operating system. Clicking on an operating system logo will show the instructions for that platform.

After configuring CMake, build files for your build system can be generated and used to build the binaries.

Windows

To compile the toolset, open the generated mCRL2.sln located in the build directory with Visual Studio (or click open project in cmake-gui) and choose build solution.

Note

Windows may have difficulty finding the Qt dll’s, even when Qt is added to PATH, which prevents the GUI tools from running. To repair this for the release build, copy the following files from <path_to_Qt_dir>\<Qt_version>\msvc2017_64\bin to <path_to_build_dir>\stage\bin\Release:

Qt5Core.dll
Qt5Gui.dll
Qt5OpenGL.dll
Qt5Widgets.dll
Qt5Xml.dll

In case of the debug build do the same, except with the dll file names appended with a d.

Mac OS X & Linux

The toolset can be compiled using the following command line:

cd <mcrl2>/build
cmake .
make

For compilation using multiple cores, use the -j flag; e.g., to compile using 4 cores, use:

make -j4

Note

For every tool, an individual make target is defined. To compile only mcrl22lps, for instance, use:

make mcrl22lps

Substitute nmake Makefile for make when using the Microsoft compiler. If you are developing a tool, and have made only changes to the tool code, and not to any of the libraries, consider using:

make mcrl22lps/fast

This disables dependency checking, speeding up compilation dramatically.

Installation

The toolset may be installed by executing making the install target:

make install

Substitute nmake Makefile for make when using the Microsoft compiler.

Note that you may need administrative rights to install into the default location. You can install into a different location by configuring CMake appropriately.

Flags

The command ccmake . executed in the build directory allows to set compilation and installation flags.

Mac OS X

The Apple clang compiler versions 7.2 and 8.0 have a problem compiling the toolset in DEBUG mode. This leads to problems with asserts. A solution is to add the flag -fsanitize=address to the compiler flags in CMAKE_CXX_FLAGS_DEBUG, CMAKE_C_FLAGS_DEBUG and CMAKE_EXE_LINKER_FLAGS_DEBUG. The problem does not occur when no -DNDEBUG is used. Also other compilers or platform do not appear to have this issue.