Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
python3-dev is another dependency of the Python bindings
[simgrid.git] / docs / source / Installing_SimGrid.rst
index cb7ebd7..adfb90e 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,10 +90,18 @@ 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 dependencies (optional)
+  - On Debian / Ubuntu: ``apt install libunwind-dev libdw-dev libelf-dev libevent-dev``
 Eigen3 (optional)
   - On Debian / Ubuntu: ``apt install libeigen3-dev``
   - On CentOS / Fedora: ``dnf install eigen3-devel``
@@ -229,9 +239,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 formal 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`.
@@ -256,8 +266,8 @@ EIGEN3_HINT (empty by default)
   Alternative path into which Eigen3 should be searched for.
 
 SIMGRID_PYTHON_LIBDIR (auto-detected)
-  Where to install the Python module library. By default, it is set to the cmake Python3_SITEARCH variable if installing to /usr, 
-  and a modified version of that variable if installing to another path. Just force another value if the auto-detected default 
+  Where to install the Python module library. By default, it is set to the cmake Python3_SITEARCH variable if installing to /usr,
+  and a modified version of that variable if installing to another path. Just force another value if the auto-detected default
   does not fit your setup.
 
 SMPI_C_FLAGS, SMPI_CXX_FLAGS, SMPI_Fortran_FLAGS (string)
@@ -394,7 +404,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:
 
@@ -409,30 +419,3 @@ simgrid without downloading the source with pip:
 .. code-block:: console
 
   $ pip install simgrid
-
-Linux Multi-Arch specific instructions
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-On a multiarch x86_64 Linux, it should be possible to compile a 32-bit
-version of SimGrid with something like:
-
-.. code-block:: console
-
-  $ CFLAGS=-m32                                                      \
-    CXXFLAGS=-m32                                                    \
-    FFLAGS=-m32                                                      \
-    PKG_CONFIG_LIBDIR=/usr/lib/i386-linux-gnu/pkgconfig/             \
-    cmake .                                                          \
-      -DCMAKE_SYSTEM_PROCESSOR=i386                                  \
-      -DCMAKE_Fortran_COMPILER=/some/path/to/i686-linux-gnu-gfortran \
-      -DGFORTRAN_EXE=/some/path/to/i686-linux-gnu-gfortran           \
-      -DSMPI_C_FLAGS=-m32                                            \
-      -DSMPI_CXX_FLAGS=-m32                                          \
-      -DSMPI_Fortran_FLAGS=-m32
-
-If needed, implement ``i686-linux-gnu-gfortran`` as a script:
-
-.. code-block:: shell
-
-  #!/usr/bin/env sh
-  exec gfortran -m32 "$@"