Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
doxygen: rework the s4u header
[simgrid.git] / doc / doxygen / install.doc
index 1fb8c7e..8b474c7 100644 (file)
@@ -37,7 +37,7 @@ For Windows, head to [AppVeyor](https://ci.appveyor.com/project/simgrid/simgrid)
 Click on the artefact link on the right, and grab your file. If the latest build failed, there will be no artefact. Then
 you will need to first click on "History" on the top and search for the last successful build.
 
-For non-Windows systems (Linux, Mac or FreeBSD), head to [Jenkins](https://ci.inria.fr/simgrid/job/SimGrid-Multi).
+For non-Windows systems (Linux, Mac 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 artefact 
 will appear on the top of the resulting page.
@@ -62,19 +62,39 @@ will appear on the top of the resulting page.
 @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). 
+    SimGrid compiles well with `clang` too.
   - 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.
+      You need cmake version 2.8.8 or higher. 
+      `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).
   - 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 libgcj17-dev` (any
+      version of libgcj will do it; you can use libgcj16-dev or libgcj18-dev
+      instead, depending on your version of Debian/Ubuntu)
     - 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): Your version of Lua
+    must be 5.3. SimGrid won't work with Lua 5.2 nor with 5.1, and
+    probably not with Lua 5.4 either.
+    - 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
@@ -102,38 +122,51 @@ git clone git://scm.gforge.inria.fr/simgrid/simgrid.git simgrid
 
 @subsection install_src_config Build Configuration
 
-Note that compile-time options are very different from @ref options "run-time options".
-
-@subsubsection install_cmake_howto Compilation Options
-
-The default configuration should be fine for most usages, but if you need to change something, there are several ways 
-to do so. First, you can use environment variables. For example, you can change the compilers used by issuing these 
-commands before launching cmake:
+This section is about *compile-time options*, that are very different
+from @ref options "run-time options". Compile-time options fall into
+two categories. @ref install_cmake_list "SimGrid-specific options"
+define which part of the framework to compile while 
+@ref install_cmake_howto "generic options" are provided by cmake
+itself. 
+
+@subsubsection install_cmake_howto Generic build-time options
+
+These options specify for example the path to various system elements
+(Python path, compiler to use, etc). In most case, cmake automatically
+discovers the right value for these ones, but you can set them
+manually on need.  Notable such variables include @c CC and @c CXX,
+defining respectively the C and C++ compiler executables, @c CFLAGS
+and @c CXXFLAGS respectively specifying extra options to pass to the C
+and C++ compilers, or @c PYTHON_EXECUTABLE specifying the path to the
+python executable.  The best way to discover the exact name of the
+option that you need to change is to press 't' in the ccmake graphical
+interface, as all options are shown (and documented) in the advanced
+mode.
+
+Once you know their name, there is several ways to change the value of
+build-time options. You can naturally use the ccmake graphical
+interface for that, or you can use environment variables, or you can
+prefer the @c -D flag of @c cmake.
+
+For example, you can change the compilers with environment variables
+by issuing these 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++ 
-compilers.
-
-Another way to do so is to use the -D argument of cmake as follows.
+The same can be done by passing @c -D parameters to cmake, as follows.
 Note that the ending dot is mandatory (see @ref install_cmake_outsrc).
 
 @verbatim
 cmake -DCC=clang -DCXX=clang++ .
 @endverbatim
 
-Finally, you can use the ccmake graphical interface to change these settings. 
-
-@verbatim
-ccmake .
-@endverbatim
-
 @subsubsection install_cmake_list SimGrid compilation options
 
-In addition to the classical cmake configuration variables, SimGrid accepts several options, as listed below.
+Here is the list of SimGrid-specific @ref install_src_config
+"build-time options".
 
   @li <b>CMAKE_INSTALL_PREFIX</b> (path): Where to install SimGrid (/opt/simgrid, /usr/local, or elsewhere).
 
@@ -159,7 +192,7 @@ In addition to the classical cmake configuration variables, SimGrid accepts seve
       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.
@@ -312,7 +345,7 @@ cmake . \
 If needed, implement @c i686-linux-gnu-gfortran as a script:
 
 @verbatim
-#!/bin/sh
+#!/usr/bin/env sh
 exec gfortran -m32 "$@"
 @endverbatim