From 1d99451ba728ac3b5ba61063a9098901079907a3 Mon Sep 17 00:00:00 2001 From: navarrop Date: Tue, 29 Jun 2010 11:28:37 +0000 Subject: [PATCH 1/1] Update the doc. git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@7950 48e7efb5-ca39-0410-a469-dd3cf9ba447f --- doc/FAQ.doc | 582 +++++++++++++++++++++++++--------------------------- 1 file changed, 277 insertions(+), 305 deletions(-) diff --git a/doc/FAQ.doc b/doc/FAQ.doc index 97dc7bcb39..0143959ebb 100644 --- a/doc/FAQ.doc +++ b/doc/FAQ.doc @@ -88,263 +88,7 @@ little more tricky than I would have expected, but the work is moving fast forward [2006/05/13]. More languages are evaluated, but for now, we do not feel a real demand for any other language. Please speak up! -\section faq_installation Installing the SimGrid library - -Many people have been asking me questions on how to use SimGrid. Quite -often, the questions were not really about SimGrid but on the -installation process. This section is intended to help people that are -not familiar with compiling C files under UNIX. If you follow these -instructions and still have some troubles, drop an e-mail to -. - -\subsection faq_compiling Compiling SimGrid from a stable archive - -First of all, you need to download the latest version of SimGrid from -here. -Suppose you have uncompressed SimGrid in some temporary location of -your home directory (say /home/joe/tmp/simgrid-3.0.1 ). The -simplest way to use SimGrid is to install it in your home -directory. Change your directory to -/home/joe/tmp/simgrid-3.0.1 and type - -\verbatim -./configure --prefix=$HOME -make -make install -\endverbatim - -If at some point, something fails, check the section \ref faq_trouble_compil . -If it does not help, you can report this problem to the -list but, please, avoid sending a laconic mail like "There is a problem. Is it -okay?". Send the config.log file which is automatically generated by -configure. Try to capture both the standard output and the error output of the -make command with script. There is no way for us to help you -without the relevant bits of information. - -Now, the following directory should have been created : - - \li /home/joe/doc/simgrid/html/ - \li /home/joe/lib/ - \li /home/joe/include/ - -SimGrid is not a binary, it is a library. Both a static and a dynamic -version are available. Here is what you can find if you try a ls -/home/joe/lib: - -\verbatim libsimgrid.a libsimgrid.la libsimgrid.so libsimgrid.so.0 libsimgrid.so.0.0.1 -\endverbatim - -Thus, there is two ways to link your program with SimGrid: - \li Either you use the static version, e.g -\verbatim gcc libsimgrid.a -o MainProgram MainProgram.c -\endverbatim - In this case, all the SimGrid functions are directly - included in MainProgram (hence a bigger binary). - \li Either you use the dynamic version (the preferred method) -\verbatim gcc -lsimgrid -o MainProgram MainProgram.c -\endverbatim - In this case, the SimGrid functions are not included in - MainProgram and you need to set your environment - variable in such a way that libsimgrid.so will be - found at runtime. This can be done by adding the following - line in your .bashrc (if you use bash and if you have - installed the SimGrid libraries in your home directory): -\verbatim export LD_LIBRARY_PATH=$HOME/lib/:$LD_LIBRARY_PATH -\endverbatim - -\subsection faq_compiling_java Java bindings don't get compiled - -The configure script detects automatically whether you have the -softwares needed to use the Java bindings or not. At the end of the -configure, you can see the configuration picked by the script, which -should look similar to -\verbatim Configuration of package simgrid' (version 3.3.4-svn) on -little64 (=4): - - Compiler: gcc (version: ) - - 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 -g3 - CPPFlags: - LDFlags: - - Context backend: ucontext - Compile Java: no - - Maintainer mode: no - Supernovae mode: yes -\endverbatim - -In this example, Java backends won't be compiled. - -On Debian-like systems (which includes ubuntu), you need the following -packages: sun-java6-jdk libgcj10-dev. If you cannot find the -libgcj10-dev, try another version, like libgcj9-dev (on Ubuntu before -9.10) or libgcj11-dev (not released yet, but certainly one day). -Please note that you need to activate the contrib and non-free -repositories in Debian, and the universe ones in Ubuntu. Java comes at -this price... - -\subsection faq_compiling_snapshoot SimGrid development snapshots - -We have very high standards on software quality, and we are reluctant releasing -a stable release as long as there is still some known bug in the code base. In -addition, we added quite an extensive test base, making sure that we correctly -test the most important parts of the tool. - -As an unfortunate conclusion, there may be some time between the stable -releases. If you want to benefit from the most recent features we introduced, -but don't want to take the risk of an untested version from the SVN, then -development snapshots are done for you. - -These are pre-releases of SimGrid that still fail some tests about features -that almost nobody use, or on platforms not being in our core target (which is -Linux, Mac, other Unixes and Windows, from the most important to the less -one). That means that using this development releases should be safe for most -users. - -These archives can be found on -this web page. Once you -got the lastest archive, you can compile it just like any archive (see above). - -\subsection faq_compiling_svn Compiling SimGrid from the SVN - -The project development takes place in the SVN, where all changes are -committed when they happen. Then every once in a while, we make sure that the -code quality meets our standard and release an archive from the code in the -SVN. We afterward go back to the development in the SVN. So, if you need a -recently added feature and can afford some little problem with the stability -of the lastest features, you may want to use the SVN version instead of a -released one. - -For that, you first need to get the "simgrid" module from -here. - -You won't find any configure and a few other things -(Makefile.in's, documentation, ...) will be missing as well. The -reason for that is that all these files have to be regenerated using the -latest versions of autoconf, libtool, automake -(>1.9) and doxygen (>1.4). To generate the configure and -the Makefile.in's, you just have to launch the bootstrap -command that resides in the top of the source tree. Then just follow the -instructions of Section \ref faq_compiling. - -We insist on the fact that you really need the latest versions of -autoconf, automake and libtool. Doing this step on exotic architectures/systems -(i.e. anything different from a recent linux distribution) may be -... uncertain. If you need to compile the SVN version on a machine where all these -dependencies are not met, the easiest is to do make dist in the SVN -directory of another machine where all dependencies are met. It will create an -archive you may deploy on other sites just as a regular stable release. - -In summary, the following commands will checkout the SVN, regenerate the -configure script and friends, configure SimGrid and build it. - -\verbatim svn checkout svn://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk simgrid -cd simgrid -./bootstrap -./configure --enable-maintainer-mode --prefix= -make \endverbatim - -Then, if you want to install SimGrid on the current box, just do: -\verbatim make install \endverbatim - -If you want to build an snapshot of the SVN to deploy it on another box (for -example because the other machine don't have the autotools), do: -\verbatim make dist \endverbatim - -Moreover, you should never call the autotools manually since you must run -them in a specific order with specific arguments. Most of the times, the -makefiles will automatically call the tools for you. When it's not possible -(such as the first time you checkout the SVN), use the ./bootstrap command -to call them explicitly. - - -\subsection faq_setting_MSG Setting up your own MSG code - -Do not build your simulator by modifying the SimGrid examples. Go -outside the SimGrid source tree and create your own working directory -(say /home/joe/SimGrid/MyFirstScheduler/). - -Suppose your simulation has the following structure (remember it is -just an example to illustrate a possible way to compile everything; -feel free to organize it as you want). - - \li sched.h: a description of the core of the - scheduler (i.e. which functions are can be used by the - agents). For example we could find the following functions - (master, forwarder, slave). - - \li sched.c: a C file including sched.h and - implementing the core of the scheduler. Most of these - functions use the MSG functions defined in section \ref - msg_gos_functions. - - \li masterslave.c: a C file with the main function, i.e. - the MSG initialization (MSG_global_init()), the platform - creation (e.g. with MSG_create_environment()), the - deployment phase (e.g. with MSG_function_register() and - MSG_launch_application()) and the call to - MSG_main()). - -To compile such a program, we suggest to use the following -Makefile. It is a generic Makefile that we have used many times with -our students when we teach the C language. - -\verbatim -all: masterslave -masterslave: masterslave.o sched.o - -INSTALL_PATH = $$HOME -CC = gcc -PEDANTIC_PARANOID_FREAK = -O0 -Wshadow -Wcast-align \ - -Waggregate-return -Wmissing-prototypes -Wmissing-declarations \ - -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations \ - -Wmissing-noreturn -Wredundant-decls -Wnested-externs \ - -Wpointer-arith -Wwrite-strings -finline-functions -REASONABLY_CAREFUL_DUDE = -Wall -NO_PRAYER_FOR_THE_WICKED = -w -O2 -WARNINGS = $(REASONABLY_CAREFUL_DUDE) -CFLAGS = -g $(WARNINGS) - -INCLUDES = -I$(INSTALL_PATH)/include -DEFS = -L$(INSTALL_PATH)/lib/ -LDADD = -lm -lsimgrid -LIBS = - -%: %.o - $(CC) $(INCLUDES) $(DEFS) $(CFLAGS) $^ $(LIBS) $(LDADD) -o $@ - -%.o: %.c - $(CC) $(INCLUDES) $(DEFS) $(CFLAGS) -c -o $@ $< - -clean: - rm -f $(BIN_FILES) *.o *~ -.SUFFIXES: -.PHONY : clean - -\endverbatim - -The first two lines indicates what should be build when typing make -(masterslave) and of which files it is to be made of -(masterslave.o and sched.o). This makefile assumes -that you have set up correctly your LD_LIBRARY_PATH variable -(look, there is a LDADD = -lm -lsimgrid). If you prefer using -the static version, remove the -lsimgrid and add a -$(INSTALL_PATH)/lib/libsimgrid.a on the next line, right -after the LIBS = . - -More generally, if you have never written a Makefile by yourself, type -in a terminal : info make and read the introduction. The -previous example should be enough for a first try but you may want to -perform some more complex compilations... - -\subsection faq_setting_GRAS Setting up your own GRAS code - -If you use the GRAS interface instead of the MSG one, then previous section -is not the better source of information. Instead, you should check the GRAS -tutorial in general, and the \ref GRAS_tut_tour_setup in particular. - -\section faq_cmake CMAKE +\section faq_cmake Installing the SimGrid library with Cmake (since V3.4) \subsection faq_intro Some generalitty @@ -354,7 +98,7 @@ CMake is a family of tools designed to build, test and package software. CMake i \subsubsection faq_intro2 Why cmake? -CMake permits to developers to compil projects on different plateform. Then many tools are embedded like ctest for making test, a link to cdash for vizualise results but also test coverage and bug reports. +CMake permits to developers to compil projects on different plateforms. Then many tools are embedded like ctest for making test, a link to cdash for vizualise results but also test coverage and bug reports. \subsubsection faq_intro3 What cmake need? @@ -404,6 +148,7 @@ SET --> CC TO --> C:\MicrosoftVisualStudio10\VC\bin\cl 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 prefix @@ -428,41 +173,8 @@ SET --> CC TO --> C:\MicrosoftVisualStudio10\VC\bin\cl \li enable_smpi : Set to true if you want to use smpi lib. Actually on simgrid v3.4.1 Mac doesn't support lib smpi. \li enable_maintainer_mode : set to true it remakes some files. -\verbatim -include/surf/simgrid_dtd.h -include/xbt/graphxml.h - -src/cunit_unit.c -src/ex_unit.c -src/dynar_unit.c -src/dict_unit.c -src/set_unit.c -src/swag_unit.c -src/xbt_str_unit.c -src/xbt_strbuff_unit.c -src/xbt_sha_unit.c -src/config_unit.c -src/xbt_synchro_unit.c -src/simgrid_units_main.c - -src/simdag/dax_dtd.c -src/simdag/dax_dtd.h -src/simdag/dax_dtd.l - -src/surf/simgrid_dtd.c -src/surf/simgrid_dtd.l -src/xbt/graphxml.c -src/xbt/graphxml.l - -src/gras/DataDesc/ddt_parse.yy.c -\endverbatim \li enable_supernovae : set to true make one file for each lib and compile with those generated files. -\verbatim -/src/supernovae_sg.c -/src/supernovae_gras.c -/src/supernovae_smpi.c -\endverbatim \li enable_tracing : To enable the generation of simulation traces for visualization @@ -471,6 +183,8 @@ src/gras/DataDesc/ddt_parse.yy.c \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) @@ -498,6 +212,7 @@ enable_tracing off enable_coverage off enable_memcheck off enable_model-checking off +enable_doc off gtnets_path null prefix null @@ -772,7 +487,7 @@ add_executable(get_sender get_sender.c) #add_executable( ) \endverbatim -Then you have to modified /buildtools/Cmake/CMakeMakeExeLib.txt and add +Then you have to modified /buildtools/Cmake/MakeExeLib.cmake and add this line : \verbatim add_subdirectory(${PROJECT_DIRECTORY}/) @@ -780,7 +495,7 @@ add_subdirectory(${PROJECT_DIRECTORY}/) \subsubsection faq_cmakehowto2 Delete/add sources to lib. -If you want modified, add or delete source files from a library you have to edit /buildtools/Cmake/CMakeDefinePackages.txt +If you want modified, add or delete source files from a library you have to edit /buildtools/Cmake/DefinePackages.cmake \verbatim set(JMSG_JAVA_SRC @@ -801,7 +516,7 @@ set(JMSG_JAVA_SRC \subsubsection faq_cmakehowto3 Add test -If you want modified, add or delete tests you have to edit /buildtools/Cmake/CMakeTest.txt +If you want modified, add or delete tests you have to edit /buildtools/Cmake/AddTests.cmake with this function : ADD_TEST( ) \verbatim @@ -815,47 +530,47 @@ add_test(test-simdag-1 ${PROJECT_DIRECTORY}/testsuite/simdag/sd_test --cfg=path: 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 CMakeCompleteInFiles.txt +\li CompleteInFiles.cmake Complete all .in files and define Variables for h files -\li CMakeDocs.txt +\li GenerateDoc.cmake This file make the html documentation. -\li CMakeMakeExeLib.txt +\li MakeExeLib.cmake Here are callled all "CMakeLists.txt" for make executables and libraries. -\li CMakePrintArgs.txt +\li PrintArgs.cmake This file is called at the end of the build for summarize environment variables. -\li CMakeDefinePackages.txt +\li DefinePackages.cmake Here is defined sources packages for compiling libs. -\li CMakeFlags.txt +\li Flags.cmake Defined flags which are used for compiling sources. -\li CMakeSupernovae.txt +\li Supernovae.cmake Here are made files for the supernovae mode. -\li CMakeDistrib.txt +\li Distrib.cmake Here is defined packages for install simgrid and make a distribution. -\li CMakeMaintainerMode.txt +\li MaintainerMode.cmake Part where are generated source files for maintainer mode. -\li CMakeOption.txt +\li Option.cmake Here are defined options and initialized values. -\li CMakeTest.txt +\li AddTests.cmake All tests are listed. @@ -879,6 +594,7 @@ Cmake sources: ./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 @@ -934,6 +650,262 @@ CMakeLists for each binaries or examples: ./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 +often, the questions were not really about SimGrid but on the +installation process. This section is intended to help people that are +not familiar with compiling C files under UNIX. If you follow these +instructions and still have some troubles, drop an e-mail to +. + +\subsection faq_compiling Compiling SimGrid from a stable archive + +First of all, you need to download the latest version of SimGrid from +here. +Suppose you have uncompressed SimGrid in some temporary location of +your home directory (say /home/joe/tmp/simgrid-3.0.1 ). The +simplest way to use SimGrid is to install it in your home +directory. Change your directory to +/home/joe/tmp/simgrid-3.0.1 and type + +\verbatim +./configure --prefix=$HOME +make +make install +\endverbatim + +If at some point, something fails, check the section \ref faq_trouble_compil . +If it does not help, you can report this problem to the +list but, please, avoid sending a laconic mail like "There is a problem. Is it +okay?". Send the config.log file which is automatically generated by +configure. Try to capture both the standard output and the error output of the +make command with script. There is no way for us to help you +without the relevant bits of information. + +Now, the following directory should have been created : + + \li /home/joe/doc/simgrid/html/ + \li /home/joe/lib/ + \li /home/joe/include/ + +SimGrid is not a binary, it is a library. Both a static and a dynamic +version are available. Here is what you can find if you try a ls +/home/joe/lib: + +\verbatim libsimgrid.a libsimgrid.la libsimgrid.so libsimgrid.so.0 libsimgrid.so.0.0.1 +\endverbatim + +Thus, there is two ways to link your program with SimGrid: + \li Either you use the static version, e.g +\verbatim gcc libsimgrid.a -o MainProgram MainProgram.c +\endverbatim + In this case, all the SimGrid functions are directly + included in MainProgram (hence a bigger binary). + \li Either you use the dynamic version (the preferred method) +\verbatim gcc -lsimgrid -o MainProgram MainProgram.c +\endverbatim + In this case, the SimGrid functions are not included in + MainProgram and you need to set your environment + variable in such a way that libsimgrid.so will be + found at runtime. This can be done by adding the following + line in your .bashrc (if you use bash and if you have + installed the SimGrid libraries in your home directory): +\verbatim export LD_LIBRARY_PATH=$HOME/lib/:$LD_LIBRARY_PATH +\endverbatim + +\subsection faq_compiling_java Java bindings don't get compiled + +The configure script detects automatically whether you have the +softwares needed to use the Java bindings or not. At the end of the +configure, you can see the configuration picked by the script, which +should look similar to +\verbatim Configuration of package simgrid' (version 3.3.4-svn) on +little64 (=4): + + Compiler: gcc (version: ) + + 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 -g3 + CPPFlags: + LDFlags: + + Context backend: ucontext + Compile Java: no + + Maintainer mode: no + Supernovae mode: yes +\endverbatim + +In this example, Java backends won't be compiled. + +On Debian-like systems (which includes ubuntu), you need the following +packages: sun-java6-jdk libgcj10-dev. If you cannot find the +libgcj10-dev, try another version, like libgcj9-dev (on Ubuntu before +9.10) or libgcj11-dev (not released yet, but certainly one day). +Please note that you need to activate the contrib and non-free +repositories in Debian, and the universe ones in Ubuntu. Java comes at +this price... + +\subsection faq_compiling_snapshoot SimGrid development snapshots + +We have very high standards on software quality, and we are reluctant releasing +a stable release as long as there is still some known bug in the code base. In +addition, we added quite an extensive test base, making sure that we correctly +test the most important parts of the tool. + +As an unfortunate conclusion, there may be some time between the stable +releases. If you want to benefit from the most recent features we introduced, +but don't want to take the risk of an untested version from the SVN, then +development snapshots are done for you. + +These are pre-releases of SimGrid that still fail some tests about features +that almost nobody use, or on platforms not being in our core target (which is +Linux, Mac, other Unixes and Windows, from the most important to the less +one). That means that using this development releases should be safe for most +users. + +These archives can be found on +this web page. Once you +got the lastest archive, you can compile it just like any archive (see above). + +\subsection faq_compiling_svn Compiling SimGrid from the SVN + +The project development takes place in the SVN, where all changes are +committed when they happen. Then every once in a while, we make sure that the +code quality meets our standard and release an archive from the code in the +SVN. We afterward go back to the development in the SVN. So, if you need a +recently added feature and can afford some little problem with the stability +of the lastest features, you may want to use the SVN version instead of a +released one. + +For that, you first need to get the "simgrid" module from +here. + +You won't find any configure and a few other things +(Makefile.in's, documentation, ...) will be missing as well. The +reason for that is that all these files have to be regenerated using the +latest versions of autoconf, libtool, automake +(>1.9) and doxygen (>1.4). To generate the configure and +the Makefile.in's, you just have to launch the bootstrap +command that resides in the top of the source tree. Then just follow the +instructions of Section \ref faq_compiling. + +We insist on the fact that you really need the latest versions of +autoconf, automake and libtool. Doing this step on exotic architectures/systems +(i.e. anything different from a recent linux distribution) may be +... uncertain. If you need to compile the SVN version on a machine where all these +dependencies are not met, the easiest is to do make dist in the SVN +directory of another machine where all dependencies are met. It will create an +archive you may deploy on other sites just as a regular stable release. + +In summary, the following commands will checkout the SVN, regenerate the +configure script and friends, configure SimGrid and build it. + +\verbatim svn checkout svn://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk simgrid +cd simgrid +./bootstrap +./configure --enable-maintainer-mode --prefix= +make \endverbatim + +Then, if you want to install SimGrid on the current box, just do: +\verbatim make install \endverbatim + +If you want to build an snapshot of the SVN to deploy it on another box (for +example because the other machine don't have the autotools), do: +\verbatim make dist \endverbatim + +Moreover, you should never call the autotools manually since you must run +them in a specific order with specific arguments. Most of the times, the +makefiles will automatically call the tools for you. When it's not possible +(such as the first time you checkout the SVN), use the ./bootstrap command +to call them explicitly. + + +\subsection faq_setting_MSG Setting up your own MSG code + +Do not build your simulator by modifying the SimGrid examples. Go +outside the SimGrid source tree and create your own working directory +(say /home/joe/SimGrid/MyFirstScheduler/). + +Suppose your simulation has the following structure (remember it is +just an example to illustrate a possible way to compile everything; +feel free to organize it as you want). + + \li sched.h: a description of the core of the + scheduler (i.e. which functions are can be used by the + agents). For example we could find the following functions + (master, forwarder, slave). + + \li sched.c: a C file including sched.h and + implementing the core of the scheduler. Most of these + functions use the MSG functions defined in section \ref + msg_gos_functions. + + \li masterslave.c: a C file with the main function, i.e. + the MSG initialization (MSG_global_init()), the platform + creation (e.g. with MSG_create_environment()), the + deployment phase (e.g. with MSG_function_register() and + MSG_launch_application()) and the call to + MSG_main()). + +To compile such a program, we suggest to use the following +Makefile. It is a generic Makefile that we have used many times with +our students when we teach the C language. + +\verbatim +all: masterslave +masterslave: masterslave.o sched.o + +INSTALL_PATH = $$HOME +CC = gcc +PEDANTIC_PARANOID_FREAK = -O0 -Wshadow -Wcast-align \ + -Waggregate-return -Wmissing-prototypes -Wmissing-declarations \ + -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations \ + -Wmissing-noreturn -Wredundant-decls -Wnested-externs \ + -Wpointer-arith -Wwrite-strings -finline-functions +REASONABLY_CAREFUL_DUDE = -Wall +NO_PRAYER_FOR_THE_WICKED = -w -O2 +WARNINGS = $(REASONABLY_CAREFUL_DUDE) +CFLAGS = -g $(WARNINGS) + +INCLUDES = -I$(INSTALL_PATH)/include +DEFS = -L$(INSTALL_PATH)/lib/ +LDADD = -lm -lsimgrid +LIBS = + +%: %.o + $(CC) $(INCLUDES) $(DEFS) $(CFLAGS) $^ $(LIBS) $(LDADD) -o $@ + +%.o: %.c + $(CC) $(INCLUDES) $(DEFS) $(CFLAGS) -c -o $@ $< + +clean: + rm -f $(BIN_FILES) *.o *~ +.SUFFIXES: +.PHONY : clean + +\endverbatim + +The first two lines indicates what should be build when typing make +(masterslave) and of which files it is to be made of +(masterslave.o and sched.o). This makefile assumes +that you have set up correctly your LD_LIBRARY_PATH variable +(look, there is a LDADD = -lm -lsimgrid). If you prefer using +the static version, remove the -lsimgrid and add a +$(INSTALL_PATH)/lib/libsimgrid.a on the next line, right +after the LIBS = . + +More generally, if you have never written a Makefile by yourself, type +in a terminal : info make and read the introduction. The +previous example should be enough for a first try but you may want to +perform some more complex compilations... + +\subsection faq_setting_GRAS Setting up your own GRAS code + +If you use the GRAS interface instead of the MSG one, then previous section +is not the better source of information. Instead, you should check the GRAS +tutorial in general, and the \ref GRAS_tut_tour_setup in particular. + \section faq_howto Feature related questions \subsection faq_MIA "Could you please add (your favorite feature here) to SimGrid?" -- 2.20.1