-.. Copyright 2005-2021
+.. Copyright 2005-2022
.. _install:
$ 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
^^^^^^^^^^^^^^^^^^^
The jar file can be retrieved from the `Release page
-<https://framagit.org/simgrid/simgrid/releases>`_. This file is
+<https://framagit.org/simgrid/simgrid/-/releases>`_. This file is
self-contained, including the native components for Linux, macOS and
Windows. Copy it to your project's classpath and you're set.
Nightly built Java Package
^^^^^^^^^^^^^^^^^^^^^^^^^^
-For non-Windows systems (Linux, macOS, or FreeBSD), head to `Jenkins <https://ci.inria.fr/simgrid/job/SimGrid>`_.
-In the build history, pick the last green (or at least yellow) build that is not blinking (i.e., not currently under
-build). In the list, pick a system that is close to yours, and click on the ball in the Debug row. The build artifact
-will appear at the top of the resulting page.
-
-For Windows, head to `AppVeyor <https://ci.appveyor.com/project/simgrid/simgrid>`_.
-Click on the artifact link on the right, and grab your file. If the latest build failed, there will be no artifact. Then
-you will need to first click on "History" at the top and look for the last successful build.
+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.
+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
^^^^^^^^^^^^^^^^^^^^^^^^^^^
You should obviously install the ``boost-context`` library on your
machine, for example with ``apt``.
+.. _deprecation_policy:
+
Version numbering and deprecation
---------------------------------
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``
+ - On CentOS / Fedora: ``yum install boost-devel``
- On macOS with homebrew: ``brew install boost``
+Eigen3 (optional)
+ - On Debian / Ubuntu: ``apt install libeigen3-dev``
+ - On CentOS / Fedora: ``yum 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.
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.
^^^^^^^^^^^^^^^^^^^
Grab the last **stable release** from `FramaGit
-<https://framagit.org/simgrid/simgrid/releases>`_, and compile it as follows:
+<https://framagit.org/simgrid/simgrid/-/releases>`_, and compile it as follows:
.. code-block:: console
$ make install
.. _install_src_config:
-
+
Build Configuration
^^^^^^^^^^^^^^^^^^^
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>`.
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.
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)
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.
+
+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
+ 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".
- **make simgrid**: Build only the SimGrid library. Not any example nor the helper tools.
- **make s4u-comm-pingpong**: Build only this example (works for any example)
- **make java-all**: Build all Java examples and their dependencies
+- **make python-bindings**: Build the Python bindings
- **make clean**: Clean the results of a previous compilation
- **make install**: Install the project (doc/ bin/ lib/ include/)
-- **make uninstall**: Uninstall the project (doc/ bin/ lib/ include/)
- **make dist**: Build a distribution archive (tar.gz)
- **make distcheck**: Check the dist (make + make dist + tests on the distribution)
- **make documentation**: Create SimGrid documentation
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
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:
#!/usr/bin/env sh
exec gfortran -m32 "$@"
-