Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Update documentation since v3.5
[simgrid.git] / doc / FAQ.doc
index a629b30..3db2cce 100644 (file)
@@ -103,11 +103,31 @@ CMake permits to developers to compil projects on different plateforms. Then man
 \subsubsection faq_intro3 What cmake need?
 
 CMake needs some prerequists like :
+
+For Unix and MacOS:
   \li make
+  \li perl and libpcre
   \li c, c++ and java compiler regards to developers
   \li ccmake for graphical used of CMake
   \li cmake <a href="http://www.cmake.org/cmake/resources/software.html">(download page)</a>
 
+For Windows :
+  \li cmake 2.8.3 <a href="http://www.cmake.org/files/v2.8/cmake-2.8.3-win32-x86.exe">(download page)</a>
+  \li Dev-c++ <a href="http://sourceforge.net/projects/dev-cpp/files/Binaries/Dev-C%2B%2B%204.9.9.2/devcpp-4.9.9.2_nomingw_setup.exe/download">(download page)</a>
+  \li perl strawberry <a href="http://www.strawberryperl.com/download/5.12.2.0/strawberry-perl-5.12.2.0.msi">(download page)</a>
+  \li pcre-7.0 <a href="http://sourceforge.net/projects/gnuwin32/files/pcre/7.0/pcre-7.0.exe/download">(download page)</a>
+
+  \li Set environment variables.
+
+\verbatim
+CC                to   C:\Dev-Cpp\bin\gcc
+CXX               to   C:\Dev-Cpp\bin\g++
+INCLUDE                   to   C:\Dev-Cpp\include
+LIB               to   C:\Dev-Cpp\lib
+PCRE_LIBRARY_PATH  to  C:\
+PATH              to   C:\Dev-Cpp\bin
+\endverbatim
+
 \subsubsection faq_cmakeoption1 Liste of options
 
 \verbatim
@@ -126,11 +146,8 @@ CMake needs some prerequists like :
        enable_coverage                 ON/OFF or TRUE/FALSE or 1/0
        enable_memcheck                 ON/OFF or TRUE/FALSE or 1/0 
        enable_model-checking           ON/OFF or TRUE/FALSE or 1/0
-       enable_doc                      ON/OFF or TRUE/FALSE or 1/0
        gtnets_path                     <path_to_gtnets_directory>
-       prefix                          <path_to_install_directory>
-       BIBTEX2HTML                     <path_to_bibtex2html>
-       with_context                    auto/ucontext/pthread/window
+       CMAKE_INSTALL_PREFIX            <path_to_install_directory>
        pipol_user                      <pipol_username>         
 \endverbatim
                                                                                                                                                           
@@ -161,16 +178,10 @@ CMake needs some prerequists like :
   \li enable_memcheck : When set to true this option enable tests for memcheck.
 
   \li enable_model-checking : Enable the model checking when set to true.
-  
-  \li enable_doc : Generate the documentation for simgrid with make command. (You can also make the doc manually with command : make html)
 
   \li gtnets_path : Path to gtnets install directory (ex /usr)
 
-  \li prefix : Path where are installed lib/ doc/ and include/ directories (ex /usr/local)
-
-  \li BIBTEX2HTML : Path where is installed bibtex2html.
-
-  \li with context : specify which context the user wants to use.
+  \li CMAKE_INSTALL_PREFIX : Path where are installed lib/ doc/ and include/ directories (ex /usr/local)
   
   \li pipol_user : specify your pipol username if you want to use the pipol-remote command.
 
@@ -182,22 +193,18 @@ Those options are initialized the first time you launch "cmake ." whithout speci
 enable_gtnets                  on
 enable_lua                     on
 enable_ruby                    on
-enable_java                    off
-enable_compile_optimizations   off
-enable_compile_warnings                off
+enable_java                    on
 enable_smpi                    on
+enable_supernovae              on
+enable_tracing                 on
+enable_compile_optimizations   on
+enable_compile_warnings                off
 enable_maintainer_mode         off
-enable_supernovae              off
-enable_tracing                 off
 enable_coverage                off
 enable_memcheck                off
 enable_model-checking          off
-enable_doc                     off
-
+CMAKE_INSTALL_PREFIX           /usr/local
 gtnets_path                    null
-prefix                         null
-BIBTEX2HTML                    null
-with_context                   auto
 pipol_user                     null
 \endverbatim
 
@@ -250,21 +257,16 @@ Those two kind of compilation permit to delete files created by compilation easi
 
  \li CMake
 \verbatim
-cmake <path>           configure the project
-make                   build all targets
-make VERBOSE=1         build all targets and print build command lines
-make check             test all targets and summarize
-make dist              make the distrib
-make distcheck         check the dist (make + make dist + make check) 
-make install           install the project (doc/ lib/ include/)
-make uninstall         uninstall the project (doc/ lib/ include/)
-make clean             clean all targets
-make java-clean                clean files created by java option
-make doc-clean         clean files created for making doc
-make supernovae-clean  clean supernovae files
-make maintainer-clean  clean maintainer files
-make all-clean         execute the 5 upper clean command
-make html              Create simgrid documentation
+cmake <path>                   configure the project
+make                           build all targets
+make VERBOSE=1                 build all targets and print build command lines
+make check                     test all targets and summarize
+make dist                      make the distrib
+make distcheck                 check the dist (make + make dist + make check) 
+make install                   install the project (doc/ bin/ lib/ include/)
+make uninstall                 uninstall the project (doc/ bin/ lib/ include/)
+make clean                     clean all targets
+make simgrid_documentation     Create simgrid documentation
 \endverbatim
 
 When the project have been succesfully compiling and build you can make tests.
@@ -286,161 +288,25 @@ ctest -D NightlyMemoryCheck
 
 If you want to test before make a commit you can simply make "ctest -D Experimental" and then you can visualize results submitted into Cdash. <a href="http://cdash.inria.fr/CDash/index.php?project=Simgrid">(Go to Cdash site)</a>.
 
-\subsubsection faq_cmakecompilation5 Examples for different mode.
-
-\li Mode maintainer
-
-cmake -Denable_maintainer_mode=on ./
-\verbatim 
--- lookign for config.h
-with_context auto change to ucontext
-GIT_DATE       : 2010-05-04~09-59-15
-GIT_VERSION    : 53ec816
-GIT_SVN_VERSION : 7669
-
-Configuration of package `simgrid' (revision 7669) on arch (=4):
-            BUILDNAME :        UCONTEXT
-            SITE      :        Linux_2.6.31-21-generic_x86_64
-            Release   :        simgrid-3.4~rev7669
-
-        Compiler: c++ :        /usr/bin/c++
-               version:        c++ (Ubuntu 4.4.1-4ubuntu9) 4.4.1
-        Compiler: c   :        /usr/bin/gcc
-               version:        gcc (Ubuntu 4.4.1-4ubuntu9) 4.4.1
-
-              CFlags  :        -I/usr/lib/ruby/1.8/x86_64-linux -I/usr/include/lua5.1 -g3
-              CPPFlags:        
-              LDFlags :        -L/usr/lib/
-
-       Context backend:        ucontext
-       Compile Gtnets :        0
-       Gtnets path    :        
-       Compile Java   :        0
-       Compile Lua    :        1
-       Compile Ruby   :        1
-
-       Compile Smpi   :        ON
-       Maintainer mode:        ON
-       Supernovae mode:        OFF
-       Tracing mode   :        OFF
-
-       Simgrid dependencies:   -lm -lruby1.8 -module -ldl -llua5.1 -lrt
-       Gras dependencies   :   -lm -lpthread -lrt
-       Smpi dependencies   :   
-
-       INSTALL_PREFIX:         /usr/local
-
--- Configuring done
--- Generating done
--- Build files have been written to: /home/navarrop/Developments/simgrid
-\endverbatim
-
-\li Mode supernovae
-
-cmake -Dsupernovae=on ./
-\verbatim 
--- lookign for config.h
-with_context auto change to ucontext
-GIT_DATE       : 2010-05-04~09-59-15
-GIT_VERSION    : 53ec816
-GIT_SVN_VERSION : 7669
-
-Configuration of package `simgrid' (revision 7669) on arch (=4):
-            BUILDNAME :        SUPERNOVAE
-            SITE      :        Linux_2.6.31-21-generic_x86_64
-            Release   :        simgrid-3.4~rev7669
-
-        Compiler: c++ :        /usr/bin/c++
-               version:        c++ (Ubuntu 4.4.1-4ubuntu9) 4.4.1
-        Compiler: c   :        /usr/bin/gcc
-               version:        gcc (Ubuntu 4.4.1-4ubuntu9) 4.4.1
-
-              CFlags  :        -O3 -finline-functions -funroll-loops -fno-strict-aliasing -Wall -Wunused -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wcomment -Wformat -Wwrite-strings -Wno-unused-function -Wno-unused-parameter -Wno-strict-aliasing -Wno-format-nonliteral -Werror -I/usr/lib/ruby/1.8/x86_64-linux -I/usr/include/lua5.1 -g3
-              CPPFlags:        
-              LDFlags :        -L/usr/lib/
-
-       Context backend:        ucontext
-       Compile Gtnets :        0
-       Gtnets path    :        
-       Compile Java   :        0
-       Compile Lua    :        1
-       Compile Ruby   :        1
-
-       Compile Smpi   :        ON
-       Maintainer mode:        OFF
-       Supernovae mode:        OFF
-       Tracing mode   :        OFF
-
-       Simgrid dependencies:   -lm -lruby1.8 -module -ldl -llua5.1 -lrt
-       Gras dependencies   :   -lm -lpthread -lrt
-       Smpi dependencies   :   
-
-       INSTALL_PREFIX:         /usr/local
-
--- Configuring done
--- Generating done
--- Build files have been written to: /home/navarrop/Developments/simgrid
-
-\endverbatim
-
-\li Mode GTnetS
-
-cmake -Dgtnets_path=/home/navarrop/Bureau/usr/ ./
-\verbatim 
--- lookign for config.h
-with_context auto change to ucontext
-GIT_DATE       : 2010-05-04~09-59-15
-GIT_VERSION    : 53ec816
-GIT_SVN_VERSION : 7669
-
-Configuration of package `simgrid' (revision 7669) on arch (=4):
-            BUILDNAME :        GTNETS
-            SITE      :        Linux_2.6.31-21-generic_x86_64
-            Release   :        simgrid-3.4~rev7669
-
-        Compiler: c++ :        /usr/bin/c++
-               version:        c++ (Ubuntu 4.4.1-4ubuntu9) 4.4.1
-        Compiler: c   :        /usr/bin/gcc
-               version:        gcc (Ubuntu 4.4.1-4ubuntu9) 4.4.1
-
-              CFlags  :        -O3 -finline-functions -funroll-loops -fno-strict-aliasing -Wall -Wunused -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wcomment -Wformat -Wwrite-strings -Wno-unused-function -Wno-unused-parameter -Wno-strict-aliasing -Wno-format-nonliteral -Werror -I/usr/lib/ruby/1.8/x86_64-linux -L/usr/lib -I/usr/include/gtnets -I/usr/include/lua5.1 -g3
-              CPPFlags:        -L/usr/lib -I/usr/include/gtnets 
-              LDFlags :        -L/usr/lib/
-
-       Context backend:        ucontext
-       Compile Gtnets :        1
-       Gtnets path    :        /usr
-       Compile Java   :        0
-       Compile Lua    :        1
-       Compile Ruby   :        1
-
-       Compile Smpi   :        ON
-       Maintainer mode:        OFF
-       Supernovae mode:        OFF
-       Tracing mode   :        OFF
-
-       Simgrid dependencies:   -lm -lruby1.8 -module -ldl -llua5.1 -lgtnets -lrt
-       Gras dependencies   :   -lm -lpthread -lrt
-       Smpi dependencies   :   
-
-       INSTALL_PREFIX:         /usr/local
-
--- Configuring done
--- Generating done
--- Build files have been written to: /home/navarrop/Developments/simgrid
-
-\endverbatim
-
 \subsection faq_cmakeinstall How to install with cmake?
 
 \subsubsection faq_cmakeinstall1 From svn. 
 
+For Unix and MacOS:
 \verbatim
-cmake -Denable_maintainer_mode=on -Dprefix=/home/navarrop/Bureau/install_simgrid ./
+cmake -Denable_maintainer_mode=on -DCMAKE_INSTALL_PREFIX=/home/navarrop/Bureau/install_simgrid ./
 make 
 make install
 \endverbatim
 
+For Windows:
+
+\verbatim
+cmake -G"Unix Makefiles" -DCMAKE_INSTALL_PREFIX=C:\simgrid_install ./
+make
+make install
+\endverbatim
+
 \subsubsection faq_cmakeinstall2 From a distrib
 
 \verbatim
@@ -449,11 +315,58 @@ For version 3.4.1 and 3.4
        make
        make install-simgrid
 Since version 3.5
-       cmake -Dprefix=/home/navarrop/Bureau/install_simgrid ./
+       cmake -DCMAKE_INSTALL_PREFIX=/home/navarrop/Bureau/install_simgrid ./
        make
        make install
 \endverbatim
 
+\subsection faq_cmakeWHATisInstall What is installed by cmake?
+
+\subsubsection faq_cmakeWHATisInstallBIN CMAKE_INSTALL_PREFIX/bin
+\verbatim
+tesh
+graphicator
+gras_stub_generator
+simgrid_update_xml
+simgrid-colorizer
+smpicc
+smpiff
+smpif2c
+smpirun
+\endverbatim
+\subsubsection faq_cmakeWHATisInstallDOC CMAKE_INSTALL_PREFIX/doc 
+\verbatim
+simgrid/examples/
+simgrid/html/
+\endverbatim
+\subsubsection faq_cmakeWHATisInstallINCLUDE CMAKE_INSTALL_PREFIX/include
+\verbatim
+amok/
+gras/
+instr/
+mc/
+msg/
+simdag/
+simix/
+smpi/
+surf/
+xbt/
+gras.h
+simgrid_config.h
+xbt.h
+\endverbatim
+\subsubsection faq_cmakeWHATisInstallLIB CMAKE_INSTALL_PREFIX/lib
+\verbatim
+libgras.so.3.5
+libsimgrid.so.3.5
+libsmpi.so.3.5
+libsimgrid.so -> libsimgrid.so.3.5
+libgras.so -> libgras.so.3.5
+libsmpi.so -> libsmpi.so.3.5
+lua/5.1/simgrid.so -> ../../libsimgrid.so
+ruby/1.9.0/x86_64-linux/libsimgrid.so -> ../../../libsimgrid.so
+ruby/1.9.0/x86_64-linux/simgrid.rb
+\endverbatim
 \subsection faq_cmakehowto How to modified sources files for developers
 
 \subsubsection faq_cmakehowto1 Add an executable or examples.
@@ -593,133 +506,6 @@ bob@caraja:~/Developments/simgrid/tmp_build$ make pipol_experimental_list_images
 bob@caraja:~/Developments/simgrid/tmp_build$ make pipol_test_list_images
 \endverbatim
 
-\subsection faq_cmakeExplain Explaination of sources files for cmake
-
-\li CMakeLists.txt
-
-Those files are the "main parts". One located at the project directory call all the cmake sources files. The others
-are little projects called by the first for make examples.
-
-\li CompleteInFiles.cmake
-
-Complete all .in files and define Variables for h files
-
-\li GenerateDoc.cmake
-
-This file make the html documentation.
-
-\li MakeExeLib.cmake
-
-Here are callled all "CMakeLists.txt" for make executables and libraries.
-
-\li PrintArgs.cmake
-
-This file is called at the end of the build for summarize environment variables.
-
-\li DefinePackages.cmake
-
-Here is defined sources packages for compiling libs.
-
-\li Flags.cmake
-
-Defined flags which are used for compiling sources.
-
-\li Supernovae.cmake
-
-Here are made files for the supernovae mode.
-
-\li Distrib.cmake
-
-Here is defined packages for install simgrid and make a distribution.
-
-\li MaintainerMode.cmake
-
-Part where are generated source files for maintainer mode.
-
-\li Option.cmake
-
-Here are defined options and initialized values.
-
-\li AddTests.cmake
-
-All tests are listed.
-
-\li CTestConfig.cmake
-
-Properties which link tests with dashboard.
-
-\subsection faq_cmakeList List of files added for cmake
-
-Here is a list of files involved into cmake build (relative to project directory path) :
-\verbatim
-
-Cmake sources:
-       ./doc/CMakeLists.txt
-       ./buildtools/Cmake/AddTests.cmake
-       ./buildtools/Cmake/CompleteInFiles.cmake
-       ./buildtools/Cmake/CTestConfig.cmake
-       ./buildtools/Cmake/DefinePackages.cmake
-       ./buildtools/Cmake/Distrib.cmake
-       ./buildtools/Cmake/Flags.cmake
-       ./buildtools/Cmake/GenerateDocs.cmake
-       ./buildtools/Cmake/MaintainerMode.cmake
-       ./buildtools/Cmake/MakeExeLib.cmake
-       ./buildtools/Cmake/MakeExeLibWin.cmake
-       ./buildtools/Cmake/MakeJava.cmake
-       ./buildtools/Cmake/Option.cmake
-       ./buildtools/Cmake/PrintArgs.cmake
-       ./buildtools/Cmake/Supernovae.cmake
-       
-CMakeLists for each binaries or examples:
-       ./CMakeLists.txt
-       ./src/CMakeLists.txt
-       ./teshsuite/gras/empty_main/CMakeLists.txt
-       ./teshsuite/gras/small_sleep/CMakeLists.txt
-       ./teshsuite/gras/datadesc/CMakeLists.txt
-       ./teshsuite/gras/msg_handle/CMakeLists.txt
-       ./teshsuite/simdag/CMakeLists.txt
-       ./teshsuite/simdag/partask/CMakeLists.txt
-       ./teshsuite/simdag/platforms/CMakeLists.txt
-       ./teshsuite/simdag/network/CMakeLists.txt
-       ./teshsuite/simdag/network/mxn/CMakeLists.txt
-       ./teshsuite/simdag/network/p2p/CMakeLists.txt
-       ./teshsuite/xbt/CMakeLists.txt
-       ./teshsuite/msg/CMakeLists.txt
-       ./tools/gras/CMakeLists.txt
-       ./tools/tesh/CMakeLists.txt
-       ./testsuite/simdag/CMakeLists.txt
-       ./testsuite/xbt/CMakeLists.txt
-       ./testsuite/surf/CMakeLists.txt
-       ./examples/gras/properties/CMakeLists.txt
-       ./examples/gras/ping/CMakeLists.txt
-       ./examples/gras/pmm/CMakeLists.txt
-       ./examples/gras/mmrpc/CMakeLists.txt
-       ./examples/gras/synchro/CMakeLists.txt
-       ./examples/gras/timer/CMakeLists.txt
-       ./examples/gras/mutual_exclusion/simple_token/CMakeLists.txt
-       ./examples/gras/spawn/CMakeLists.txt
-       ./examples/gras/chrono/CMakeLists.txt
-       ./examples/gras/rpc/CMakeLists.txt
-       ./examples/gras/all2all/CMakeLists.txt
-       ./examples/simdag/properties/CMakeLists.txt
-       ./examples/simdag/CMakeLists.txt
-       ./examples/simdag/metaxml/CMakeLists.txt
-       ./examples/simdag/dax/CMakeLists.txt
-       ./examples/smpi/CMakeLists.txt
-       ./examples/amok/bandwidth/CMakeLists.txt
-       ./examples/amok/saturate/CMakeLists.txt
-       ./examples/msg/priority/CMakeLists.txt
-       ./examples/msg/properties/CMakeLists.txt
-       ./examples/msg/migration/CMakeLists.txt
-       ./examples/msg/gtnets/CMakeLists.txt
-       ./examples/msg/parallel_task/CMakeLists.txt
-       ./examples/msg/trace/CMakeLists.txt
-       ./examples/msg/suspend/CMakeLists.txt
-       ./examples/msg/masterslave/CMakeLists.txt
-       ./examples/msg/actions/CMakeLists.txt
-       ./examples/msg/sendrecv/CMakeLists.txt
-\endverbatim
-
 \section faq_installation Installing the SimGrid library with Autotools (valid until V3.3.4)
 
 Many people have been asking me questions on how to use SimGrid. Quite