-.. Copyright 2005-2019
+.. Copyright 2005-2021
.. _install:
one year: Code compiling without warning on 3.24 will still compile
with 3.28, but maybe with some deprecation warnings. You should update
your SimGrid installation at least once a year and fix those
-deprecation warnings: the compatiblity wrappers are usually removed
+deprecation warnings: the compatibility wrappers are usually removed
after 4 versions. Another approach is to never update your SimGrid
installation, but we don't provide any support to old versions.
^^^^^^^^^^^^^^^^^^^^^^^^
C++ compiler (either g++, clang, or icc).
- We use the C++11 standard, and older compilers tend to fail on
+ We use the C++14 standard, and older compilers tend to fail on
us. It seems that g++ 5.0 or higher is required nowadays (because of
boost). SimGrid compiles well with `clang` or `icc` too.
Python 3.
.. code-block:: shell
- tar xf SimGrid-3-XX.tar.gz
- cd SimGrid-*
+ tar xf simgrid-3-XX.tar.gz
+ cd simgrid-*
cmake -DCMAKE_INSTALL_PREFIX=/opt/simgrid .
make
make install
enable_debug (ON/off)
Disabling this option discards all log messages of severity
- debug or below at compile time (see @ref XBT_log). The resulting
- code is faster than if you discard these messages at
- runtime. However, it obviously becomes impossible to get any debug
- info from SimGrid if something goes wrong.
+ debug or below at compile time (see :ref:`outcome_logs`). The resulting
+ code is marginaly faster than if you discard these messages at
+ runtime, but it obviously becomes impossible to get any debug
+ info from SimGrid when things go wrong.
enable_documentation (on/OFF)
Generates the documentation pages. Building the documentation is not
version for now.
enable_java (on/OFF)
- Generates the java bindings of SimGrid.
+ 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
simulation speed** even when the model checker is not activated at
run time.
+enable_msg (on/OFF)
+ Activates the :ref:`MSG <MSG_doc>` legacy interface.
+
enable_ns3 (on/OFF)
Activates the ns-3 bindings. See section :ref:`model_ns3`.
Take as few optional dependencies as possible, to get minimal
library bindings in Java and Python.
+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".
+
Reset the build configuration
"""""""""""""""""""""""""""""
- **make**: Build the core of SimGrid that gets installed, but not any example.
- **make tests**: Build the tests and examples.
- **make simgrid**: Build only the SimGrid library. Not any example nor the helper tools.
-- **make s4u-app-pingpong**: Build only this example (works for any example)
+- **make s4u-comm-pingpong**: Build only this example (works for any example)
- **make java-all**: Build all Java examples and their dependencies
- **make clean**: Clean the results of a previous compilation
- **make install**: Install the project (doc/ bin/ lib/ include/)
Python-specific instructions
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-Recompiling the Python bindings from the source should be as easy as:
+Once you have the Python development headers installed as well as a
+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:
.. code-block:: shell
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 \
- -DCMAKE_Fortran_FLAGS=-m32
+ -DSMPI_C_FLAGS=-m32 \
+ -DSMPI_CXX_FLAGS=-m32 \
+ -DSMPI_Fortran_FLAGS=-m32
If needed, implement ``i686-linux-gnu-gfortran`` as a script: