\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 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>
+
\subsubsection faq_cmakeoption1 Liste of options
\verbatim
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
\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.
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
make
\endverbatim
+On Windows
+
+\verbatim
+cmake -G"Unix Makefiles" -D[name]=[value] ... ./
+gmake
+\endverbatim
+
\subsubsection faq_cmakecompilation2 With ccmake tool.
\verbatim
\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.
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
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.
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
calloc(1,sizeof(double)));
*((double*) task->data) = MSG_get_clock();
MSG_task_put(task, slaves[i % slaves_count], PORT_22);
- INFO0("Send completed");
+ XBT_INFO("Send completed");
return 0;
}
int receiver()
time2 = MSG_get_clock();
if(time1<*((double *)task->data))
time1 = *((double *) task->data);
- INFO1("Communication time : \"%f\" ", time2-time1);
+ XBT_INFO("Communication time : \"%f\" ", time2-time1);
free(task->data);
MSG_task_destroy(task);
return 0;
/* Parse the file */
surf_parse_open(file);
- xbt_assert1((!surf_parse()), "Parse error in %s", file);
+ xbt_assert(!surf_parse(), "Parse error in %s", file);
surf_parse_close();
\endverbatim
- <b>Enable GTNetS support in SimGrid</b>
-In order to enable gtnets with simgrid you have to give where is gtnets. (path to <gtnets_path>/lib and <gtnets_path>/include)
+In order to enable gtnets with simgrid you have to give where is gtnets. (path to \<gtnets_path\>/lib and \<gtnets_path\>/include)
\verbatim
Since v3.4 (with cmake)
in the trace file. You have to enable this option to others take effect.
\li <b>\c
-tracing/platform
+tracing/categorized
</b>:
It activates the categorized resource utilization tracing. It should
be enabled if tracing categories are used by this simulator.