X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/aad6b6c4c7b1454dd284f822ba6f52e790f42c6e..0e6e9a9dade4d5272159ab2a5cfd7496a62eaa18:/docs/source/Installing_SimGrid.rst diff --git a/docs/source/Installing_SimGrid.rst b/docs/source/Installing_SimGrid.rst index 53ba688887..c58f470e35 100644 --- a/docs/source/Installing_SimGrid.rst +++ b/docs/source/Installing_SimGrid.rst @@ -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. @@ -110,7 +125,7 @@ Grab the last **stable release** from `FramaGit $ tar xf simgrid-3-XX.tar.gz $ cd simgrid-* - $ cmake -DCMAKE_INSTALL_PREFIX=/opt/simgrid -GNinja. + $ cmake -DCMAKE_INSTALL_PREFIX=/opt/simgrid -GNinja . $ make $ make install @@ -147,8 +162,7 @@ cmake itself. files in the tree, you may need to wipe out your complete tree and start with a fresh one when you install new dependencies. - Another (better) solution is to :ref:`build out of the source tree - `. + A better solution is to :ref:`build out of the source tree `. Generic build-time options """""""""""""""""""""""""" @@ -183,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 """"""""""""""""""""""""""" @@ -230,12 +244,12 @@ 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 ` to activate this option. enable_ns3 (on/OFF) - Activates the ns-3 bindings. See section :ref:`model_ns3`. + Activates the ns-3 bindings. See section :ref:`models_ns3`. enable_smpi (ON/off) Allows one to run MPI code on top of SimGrid. @@ -257,8 +271,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) @@ -387,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. @@ -395,7 +409,7 @@ Python-specific instructions ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Once you have the Python development headers installed as well as a -recent version of the `pybind11 ` +recent version of the `pybind11 `_ module (version at least 2.4), recompiling the Python bindings from the source should be as easy as: @@ -410,30 +424,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 "$@"