Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Compile the safe part of MC in default mode too
[simgrid.git] / docs / source / Installing_SimGrid.rst
index 86d9a60..c58f470 100644 (file)
@@ -75,6 +75,8 @@ but that's even more so for these unreleased versions).
 Installing from the Source
 --------------------------
 
+.. _install_src_deps:
+
 Getting the Dependencies
 ^^^^^^^^^^^^^^^^^^^^^^^^
 
@@ -88,15 +90,28 @@ cmake (v3.5).
   ``ccmake`` provides a nicer graphical interface compared to ``cmake``.
   Press ``t`` in ``ccmake`` if you need to see absolutely all
   configuration options (e.g., if your Python installation is not standard).
-boost (at least v1.48, v1.59 recommended)
-  - On Debian / Ubuntu: ``apt install libboost-dev libboost-context-dev``
+boost mandatory components (at least v1.48, v1.59 recommended)
+  - On Debian / Ubuntu: ``apt install libboost-dev``
   - On CentOS / Fedora: ``dnf install boost-devel``
   - On macOS with homebrew: ``brew install boost``
+boost recommended components (optional).
+  - boost-context may be used instead of our own fast context switching code which only works on amd64.
+  - boost-stacktrace is used to get nice stacktraces on errors in SimGrid.
+  - On Debian / Ubuntu: ``apt install libboost-context-dev libboost-stacktrace-dev``
+python bindings (optional):
+  - On Debian / Ubuntu: ``apt install pybind11-dev python3-dev``
+Model-checking mandatory dependencies
+  - On Debian / Ubuntu: ``apt install libevent-dev``
+Model-checking optional dependencies
+  - On Debian / Ubuntu: ``apt install libunwind-dev libdw-dev libelf-dev``
 Eigen3 (optional)
   - On Debian / Ubuntu: ``apt install libeigen3-dev``
   - On CentOS / Fedora: ``dnf install eigen3-devel``
   - On macOS with homebrew: ``brew install eigen``
   - Use EIGEN3_HINT to specify where it's installed if cmake doesn't find it automatically.
+JSON (optional, for the DAG wfcommons loader)
+  - On Debian / Ubuntu: ``apt install nlohmann-json3-dev``
+  - Use nlohmann_json_HINT to specify where it's installed if cmake doesn't find it automatically.
 
 For platform-specific details, please see below.
 
@@ -182,7 +197,7 @@ Note that the dot at the end is mandatory (see :ref:`install_cmake_outsrc`).
 
 .. code-block:: console
 
-   $ cmake -DCC=clang -DCXX=clang++ .
+   $ cmake -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ .
 
 SimGrid compilation options
 """""""""""""""""""""""""""
@@ -229,9 +244,9 @@ enable_mallocators (ON/off)
   code, but it may fool the debuggers.
 
 enable_model-checking (on/OFF)
-  Activates the formal verification mode. This will **hinder
-  simulation speed** even when the model checker is not activated at
-  run time.
+  Activates the liveness verification mode. This will hinder simulation speed even when the model checker is not activated at run
+  time, because some optimizations such as LTO must be disabled at compile time. You need to have the :ref:`required
+  build-dependencies <install_src_deps>` to activate this option.
 
 enable_ns3 (on/OFF)
   Activates the ns-3 bindings. See section :ref:`models_ns3`.
@@ -386,7 +401,7 @@ Windows-specific instructions
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 The best solution to get SimGrid working on windows is to install the
-Ubuntu subsystem of Windows 10. All of SimGrid (but the model checker)
+Ubuntu subsystem of Windows 10. All of SimGrid (but the liveness model checker)
 works in this setting. Native builds never really worked, and they are
 disabled starting with SimGrid v3.33.
 
@@ -394,7 +409,7 @@ Python-specific instructions
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 Once you have the Python development headers installed as well as a
-recent version of the `pybind11 <https://pybind11.readthedocs.io/en/stable/>`
+recent version of the `pybind11 <https://pybind11.readthedocs.io/en/stable/>`_
 module (version at least 2.4), recompiling the Python bindings from
 the source should be as easy as: