@subsection install_src_deps Getting the Dependencies
Recompiling an official archive is not much more complex. SimGrid only uses very standard tools:
- - C compiler, C++ compiler, make and friends.
+ - C compiler, C++ compiler, make and friends. SimGrid is rather
+ demanding on the compiler. We use the C++11 standard, and older
+ compilers tend to fail on us. It seems that g++ 5.0 or higher is
+ required nowadays (because of boost).
- perl (but you may try to go without it)
- We use cmake to configure our compilation
([download page](http://www.cmake.org/cmake/resources/software.html)).
You need cmake version 2.8.8 or higher. You may want to use ccmake
for a graphical interface over cmake.
- boost:
+ - Debian / Ubuntu: `apt-get install libboost-dev libboost-context-dev`
- Max OS X: with [fink](http://www.finkproject.org/): `fink install boost1.53.nopython`,
or with homebrew: `brew install boost`
- - Debian / Ubuntu: `apt-get install libboost-dev libboost-context-dev`
- Java (if you want to build the Java bindings):
+ - Debian / Ubuntu: `apt-get install default-jdk libgcj16-dev`
- Mac OS X or Windows: Grab a [full JDK](http://www.oracle.com/technetwork/java/javase/downloads)
- - Debian / Ubuntu: `apt-get install default-jdk`
+ - Lua (if you want to build with lua enabled):
+ - Debian / Ubuntu: `apt-get install liblua5.3-dev lua5.3`
+ - Windows: choco install lua53
+ - From the source: you need to patch the sources to build dynamic libraries
+ - [Download lua 5.3](http://www.lua.org/download.html). SimGrid
+ won't work with lua 5.2 as lua breaks the compatibility.
+ - 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 @ref install_cmake_mac,
@ref install_cmake_windows, @ref install_java and @ref install_src_32bits
commands before launching cmake:
@verbatim
-export CC=gcc-4.7
-export CXX=g++-4.7
+export CC=gcc-5.1
+export CXX=g++-5.1
@endverbatim
Note that other variables are available, such as CFLAGS and CXXFLAGS to add options respectively for the C and C++
Jedule external tool.
@li <b>enable_lua</b> (ON/OFF) to enjoy the lua bindings to the
- SimGrid internals.
+ SimGrid internals (this require the liblua5.3-dev and lua-5.3 packages or equivalent).
@li <b>enable_lib_in_jar</b> (ON/OFF) to make sure that the native
java bindings are bundled in the jar file.
@li <b>enable_maintainer_mode</b> (ON/OFF) is only needed if you plan to modify very specific parts of SimGrid
(e.g., the XML parsers and other related elements). Moreover, this adds an extra dependency on flex and flexml.
- @li <b>enable_mallocators</b> (ON/OFF) has to be disabled when tracking memory issues within SimGrid, or the caching
- mechanism used internally will fool the debuggers.
+ @li <b>enable_mallocators</b> (ON/OFF) has to be disabled when tracking memory issues within SimGrid,
+ or our internal memory caching mechanism will fool the debuggers.
- @li <b>enable_model-checking</b> (ON/OFF) if you actually plan to
- use the model-checking feature of SimGrid. This execution mode
+ @li <b>enable_model-checking</b> (ON/OFF) This execution gear
is very usable now, but enabling this option at compile time
will **hinder simulation speed** even when the model-checker is
not activated at run time.