-.. Copyright 2005-2018
+.. Copyright 2005-2019
.. _install:
Binaries for Linux
^^^^^^^^^^^^^^^^^^
-On Debian or Ubuntu, simply type:
+To get all of SimGrid on Debian or Ubuntu, simply type one of the
+following lines, or several lines if you need several languages.
.. code-block:: shell
- apt install simgrid
+ apt install libsimgrid-dev # if you want to develop in C or C++
+ apt install simgrid-java # if you want to develop in Java
+ apt install python3-simgrid # if you want to develop in Python
If you build pre-compiled packages for other distributions, drop us an
email.
^^^^^^^^^^^^^^^^^^^
The jar file can be retrieved from the `Release page
-<https://framagit.org/simgrid/simgrid/tags>`_. 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.
boost). SimGrid compiles well with `clang` or `icc` too.
Python 3.
SimGrid should build without Python, that is only needed by our regresion test suite.
-cmake (v2.8.8).
+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).
^^^^^^^^^^^^^^^^^^^
Grab the last **stable release** from `FramaGit
-<https://framagit.org/simgrid/simgrid/tags>`_, and compile it as follows:
+<https://framagit.org/simgrid/simgrid/releases>`_, and compile it as follows:
.. code-block:: shell
runtime. However, it obviously becomes impossible to get any debug
info from SimGrid if something goes wrong.
-enable_documentation (ON/off)
- Generates the documentation pages.
+enable_documentation (on/OFF)
+ Generates the documentation pages. Building the documentation is not
+ as easy as it used to be, and you should probably use the online
+ version for now.
enable_java (on/OFF)
Generates the java bindings of SimGrid.
run time.
enable_ns3 (on/OFF)
- Activates the ns-3 bindings. See section @ref pls_ns3.
+ Activates the ns-3 bindings. See section :ref:`model_ns3`.
enable_smpi (ON/off)
Allows to run MPI code on top of SimGrid.
enable_smpi_MPICH3_testsuite (on/OFF)
Adds many extra tests for the MPI module.
+minimal-bindings (on/OFF)
+ Take as few optional dependencies as possible, to get minimal
+ library bindings in Java and Python.
+
Reset the build configuration
"""""""""""""""""""""""""""""
.. _install_cmake_mac:
-macOS Specifics
-^^^^^^^^^^^^^^^
+macOS-specific instructions
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
SimGrid compiles like a charm with clang (version 3.0 or higher) on macOS:
.. _install_cmake_windows:
-Windows Specifics
-^^^^^^^^^^^^^^^^^
+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)
needs.
The drawback of MinGW-64 is that the produced DLL are not compatible
-with MS Visual C. `clang-cl <http://clang.llvm.org/docs/MSVCCompatibility.html">`_
-sounds promising to fix this. If you get something working or if you
-have any other improvement, please @ref community_contact "tell us".
+with MS Visual C. Some clang-based tools seem promising to fix this,
+but this is of rather low priority for us. It it's important for you
+and if you get it working, please @ref community_contact "tell us".
+
+Python-specific instructions
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Recompiling the python bindings from the source should be as easy as:
+
+.. code-block:: shell
-Java Specifics
-^^^^^^^^^^^^^^
+ # 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:
+
+.. code-block:: shell
+
+ pip install simgrid
+
+Java-specific instructions
+^^^^^^^^^^^^^^^^^^^^^^^^^^
Once you have the `full JDK <http://www.oracle.com/technetwork/java/javase/downloads>`_ installed,
things should be as simple as:
.. code-block:: shell
- cmake -Denable_java=ON .
+ cmake -Denable_java=ON -Dminimal-bindings=ON .
make simgrid-java_jar # Only build the jarfile
After the compilation, the file ```simgrid.jar``` is produced in the
Note that the filename ```jni.h``` was removed from the path.
-Linux Multi-Arch Specifics
-^^^^^^^^^^^^^^^^^^^^^^^^^^
+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: