Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
ptask_BMF: High-level documentation of BMF and the algorithm
[simgrid.git] / docs / source / Installing_SimGrid.rst
index 696dae7..1089cbd 100644 (file)
@@ -1,4 +1,4 @@
-.. Copyright 2005-2021
+.. Copyright 2005-2022
 
 .. _install:
 
@@ -25,9 +25,26 @@ following lines, or several lines if you need several languages.
    $ apt install simgrid-java    # if you want to develop in Java
    $ apt install python3-simgrid # if you want to develop in Python
 
+If you use the Nix_ package manager, the latest SimGrid release is packaged as ``simgrid`` in Nixpkgs_.
+Previous SimGrid versions are maintained in `NUR-Kapack`_ and are available
+pre-compiled in release and debug modes on the `capack cachix binary cache`_
+— refer to `NUR-Kapack's documentation`_ for usage instructions.
+
+If you use a pacman-based system (*e.g.*, Arch Linux and derived distributions),
+the latest SimGrid is available in the `simgrid AUR package`_
+— refer to `AUR official documentation`_ for installation instructions.
+
 If you build pre-compiled packages for other distributions, drop us an
 email.
 
+.. _Nix: https://nixos.org/
+.. _Nixpkgs: https://github.com/NixOS/nixpkgs
+.. _NUR-Kapack: https://github.com/oar-team/nur-kapack
+.. _capack cachix binary cache: https://app.cachix.org/cache/capack
+.. _NUR-Kapack's documentation: https://github.com/oar-team/nur-kapack
+.. _simgrid AUR package: https://aur.archlinux.org/packages/simgrid/
+.. _AUR official documentation: https://wiki.archlinux.org/title/Arch_User_Repository
+
 .. _install_java_precompiled:
 
 Stable Java Package
@@ -42,7 +59,7 @@ Nightly built Java Package
 ^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 Head to the corresponding `GitHub Action <https://github.com/simgrid/simgrid/actions/workflows/jarfile.yml>`_
-and pick the last green build. At the bottom of the build page, click on the ``jar-final`` artefact. 
+and pick the last green build. At the bottom of the build page, click on the ``jar-final`` artefact.
 Open this zip file to find the jar you need. This jar can be used under Linux, Mac OSX or Windows, as you wish.
 
 Binary Java Troubleshooting
@@ -58,6 +75,8 @@ Library not found: boost-context
    You should obviously install the ``boost-context`` library on your
    machine, for example with ``apt``.
 
+.. _deprecation_policy:
+
 Version numbering and deprecation
 ---------------------------------
 
@@ -104,20 +123,13 @@ cmake (v3.5).
 boost (at least v1.48, v1.59 recommended)
   - On Debian / Ubuntu: ``apt install libboost-dev libboost-context-dev``
   - On macOS with homebrew: ``brew install boost``
+Eigen3
+  - On Debian / Ubuntu: ``apt install libeigen3-dev``
+  - On macOS with homebrew: ``brew install eigen``
 Java (optional):
   - Debian / Ubuntu: ``apt install default-jdk libgcj18-dev`` (or
     any version of libgcj)
   - macOS or Windows: Grab a `full JDK <http://www.oracle.com/technetwork/java/javase/downloads>`_
-Lua (optional -- must be v5.3)
-  - SimGrid won't work with any other version of Lua.
-  - Debian / Ubuntu: ``apt install liblua5.3-dev lua5.3``
-  - Windows: ``choco install lua53``
-  - From the source
-      - You need to patch the sources to build dynamic libraries. First `download lua 5.3 <http://www.lua.org/download.html>`_
-      - Open the archive: ``tar xvfz lua-5.3.*.tar.gz``
-      - Enter the directory: ``cd lua-5.3*``
-      - Patch the sources: ``patch -p1 < /path/to/simgrid/...../tools/lualib.patch``
-      - Build and install lua: ``make linux && sudo make install``
 
 For platform-specific details, please see below.
 
@@ -148,7 +160,7 @@ dependencies.
    $ make install
 
 .. _install_src_config:
-   
+
 Build Configuration
 ^^^^^^^^^^^^^^^^^^^
 
@@ -167,7 +179,7 @@ cmake itself.
    files, such as ``CMakeCache.txt``. Since Cmake also generates some
    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
    <install_cmake_outsrc>`.
 
@@ -242,13 +254,6 @@ enable_java (on/OFF)
   Generates the java bindings of SimGrid. You must also enable MSG for
   this to work.
 
-enable_jedule (on/OFF)
-  Produces execution traces from SimDag simulations, which can then be visualized with the
-  Jedule external tool.
-
-enable_lua (on/OFF)
-  Generate the lua bindings to the SimGrid internals (requires lua-5.3).
-
 enable_lib_in_jar (ON/off)
   Embeds the native java bindings into the produced jar file.
 
@@ -278,7 +283,7 @@ enable_ns3 (on/OFF)
 enable_smpi (ON/off)
   Allows one to run MPI code on top of SimGrid.
 
-enable_smpi_ISP_testsuite (on/OFF)
+enable_smpi_MBI_testsuite (on/OFF)
   Adds many extra tests for the model checker module.
 
 enable_smpi_MPICH3_testsuite (on/OFF)
@@ -288,6 +293,14 @@ minimal-bindings (on/OFF)
   Take as few optional dependencies as possible, to get minimal
   library bindings in Java and Python.
 
+NS3_HINT (empty by default)
+  Alternative path into which ns-3 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 
+  does not fit your setup.
+
 SMPI_C_FLAGS, SMPI_CXX_FLAGS, SMPI_Fortran_FLAGS (string)
   Default compiler options to use in smpicc, smpicxx, or smpiff.
   This can be useful to set options like "-m32" or "-m64".
@@ -433,15 +446,15 @@ 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: 
+the source should be as easy as:
 
 .. code-block:: console
 
   # cd simgrid-source-tree
   $ python setup.py build install
-  
+
 Starting with SimGrid 3.13, it should even be possible to install
 simgrid without downloading the source with pip:
 
@@ -514,4 +527,3 @@ If needed, implement ``i686-linux-gnu-gfortran`` as a script:
 
   #!/usr/bin/env sh
   exec gfortran -m32 "$@"
-