1 #########################################
2 ### Fill in the "make install" target ###
3 #########################################
6 if(NOT EXISTS ${CMAKE_HOME_DIRECTORY}/doc/ref_guide/html/)
7 file(MAKE_DIRECTORY ${CMAKE_HOME_DIRECTORY}/doc/ref_guide/html/)
8 endif(NOT EXISTS ${CMAKE_HOME_DIRECTORY}/doc/ref_guide/html/)
10 if(NOT EXISTS ${CMAKE_HOME_DIRECTORY}/doc/user_guide/html/)
11 file(MAKE_DIRECTORY ${CMAKE_HOME_DIRECTORY}/doc/user_guide/html/)
12 endif(NOT EXISTS ${CMAKE_HOME_DIRECTORY}/doc/user_guide/html/)
14 install(DIRECTORY "${CMAKE_HOME_DIRECTORY}/doc/ref_guide/html/"
15 DESTINATION "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/doc/simgrid/ref_guide/html/"
16 PATTERN ".svn" EXCLUDE
17 PATTERN ".git" EXCLUDE
22 install(DIRECTORY "${CMAKE_HOME_DIRECTORY}/doc/user_guide/html/"
23 DESTINATION "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/doc/simgrid/user_guide/html/"
24 PATTERN ".svn" EXCLUDE
25 PATTERN ".git" EXCLUDE
30 #### Generate the manpages
33 set( MANPAGE_DIR ${CMAKE_BINARY_DIR}/manpages )
34 endif( NOT MANPAGE_DIR)
36 add_custom_target(manpages ALL
37 COMMAND ${CMAKE_COMMAND} -E make_directory ${MANPAGE_DIR}
38 COMMAND pod2man ${CMAKE_HOME_DIRECTORY}/tools/simgrid_update_xml.pl > ${MANPAGE_DIR}/simgrid_update_xml.1
39 COMMENT "Generating manpages"
41 install(FILES ${MANPAGE_DIR}/simgrid_update_xml.1
42 DESTINATION $ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/share/man/man1)
47 install(PROGRAMS ${CMAKE_BINARY_DIR}/bin/smpicc
48 ${CMAKE_BINARY_DIR}/bin/smpif2c
49 ${CMAKE_BINARY_DIR}/bin/smpiff
50 ${CMAKE_BINARY_DIR}/bin/smpirun
51 DESTINATION $ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/)
53 install(PROGRAMS ${CMAKE_BINARY_DIR}/bin/tesh
54 DESTINATION $ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/)
56 install(PROGRAMS ${CMAKE_BINARY_DIR}/bin/graphicator
57 DESTINATION $ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/)
59 install(PROGRAMS ${CMAKE_HOME_DIRECTORY}/tools/MSG_visualization/colorize.pl
60 DESTINATION $ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/
61 RENAME simgrid-colorizer)
63 add_custom_target(simgrid-colorizer ALL
64 COMMENT "Install ${CMAKE_BINARY_DIR}/bin/colorize"
65 COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_HOME_DIRECTORY}/tools/MSG_visualization/colorize.pl ${CMAKE_BINARY_DIR}/bin/colorize
68 install(PROGRAMS ${CMAKE_HOME_DIRECTORY}/tools/simgrid_update_xml.pl
69 DESTINATION $ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/
70 RENAME simgrid_update_xml)
72 add_custom_target(simgrid_update_xml ALL
73 COMMENT "Install ${CMAKE_BINARY_DIR}/bin/simgrid_update_xml"
74 COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_HOME_DIRECTORY}/tools/simgrid_update_xml.pl ${CMAKE_BINARY_DIR}/bin/simgrid_update_xml
77 install(PROGRAMS ${CMAKE_BINARY_DIR}/bin/gras_stub_generator
78 DESTINATION $ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/)
81 install(TARGETS simgrid gras
82 DESTINATION $ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/)
86 DESTINATION $ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/)
89 if(enable_lib_static AND NOT WIN32)
90 install(TARGETS simgrid_static
91 DESTINATION $ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/)
93 install(TARGETS smpi_static
94 DESTINATION $ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/)
96 endif(enable_lib_static AND NOT WIN32)
100 ${headers_to_install}
101 ${generated_headers_to_install}
103 foreach(file ${HEADERS})
104 get_filename_component(location ${file} PATH)
105 string(REPLACE "${CMAKE_CURRENT_BINARY_DIR}/" "" location "${location}")
106 install(FILES ${file}
107 DESTINATION $ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/${location})
108 endforeach(file ${HEADERS})
111 foreach(file ${examples_to_install})
112 string(REPLACE "${CMAKE_CURRENT_SOURCE_DIR}/examples/" "" file ${file})
113 get_filename_component(location ${file} PATH)
114 install(FILES "examples/${file}"
115 DESTINATION $ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/doc/simgrid/examples/${location})
116 endforeach(file ${examples_to_install})
121 file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/lib/lua/5.1")
122 add_custom_target(simgrid_lua ALL
124 ${CMAKE_BINARY_DIR}/lib/lua/5.1/simgrid.${LIB_EXE}
127 OUTPUT ${CMAKE_BINARY_DIR}/lib/lua/5.1/simgrid.${LIB_EXE}
128 COMMAND ${CMAKE_COMMAND} -E create_symlink ../../libsimgrid.${LIB_EXE} ${CMAKE_BINARY_DIR}/lib/lua/5.1/simgrid.${LIB_EXE}
130 install(FILES ${CMAKE_BINARY_DIR}/lib/lua/5.1/simgrid.${LIB_EXE}
131 DESTINATION $ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/lua/5.1
135 ###########################################
136 ### Fill in the "make uninstall" target ###
137 ###########################################
139 add_custom_target(uninstall
140 COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_INSTALL_PREFIX}/doc/simgrid
141 COMMAND ${CMAKE_COMMAND} -E echo "uninstall doc ok"
142 COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/lib/libgras*
143 COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/lib/libsimgrid*
144 COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/lib/libsmpi*
145 COMMAND ${CMAKE_COMMAND} -E echo "uninstall lib ok"
146 COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/bin/smpicc
147 COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/bin/smpif2c
148 COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/bin/smpiff
149 COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/bin/smpirun
150 COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/bin/tesh
151 COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/bin/simgrid-colorizer
152 COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/bin/simgrid_update_xml
153 COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/bin/gras_stub_generator
154 COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/bin/graphicator
155 COMMAND ${CMAKE_COMMAND} -E echo "uninstall bin ok"
156 COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_INSTALL_PREFIX}/include/amok
157 COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_INSTALL_PREFIX}/include/gras
158 COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_INSTALL_PREFIX}/include/instr
159 COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_INSTALL_PREFIX}/include/msg
160 COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_INSTALL_PREFIX}/include/simdag
161 COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_INSTALL_PREFIX}/include/smpi
162 COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_INSTALL_PREFIX}/include/simix
163 COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_INSTALL_PREFIX}/include/surf
164 COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_INSTALL_PREFIX}/include/xbt
165 COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_INSTALL_PREFIX}/include/mc
166 COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_INSTALL_PREFIX}/include/simgrid
167 COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/include/simgrid_config.h
168 COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/include/gras.h
169 COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/include/xbt.h
170 COMMAND ${CMAKE_COMMAND} -E echo "uninstall include ok"
171 COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/share/man/man1/simgrid_update_xml.1
172 COMMAND ${CMAKE_COMMAND} -E echo "uninstall man ok"
173 WORKING_DIRECTORY "${CMAKE_INSTALL_PREFIX}"
177 add_custom_command(TARGET uninstall
178 COMMAND ${CMAKE_COMMAND} -E echo "uninstall binding lua ok"
179 COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/lib/lua/5.1/simgrid.${LIB_EXE}
180 WORKING_DIRECTORY "${CMAKE_HOME_DIRECTORY}/"
184 ################################################################
185 ## Build a sain "make dist" target to build a source package ###
186 ## containing only the files that I explicitely state ###
187 ## (instead of any cruft laying on my disk as CPack does) ###
188 ################################################################
190 # This is the complete list of what will be added to the source archive
192 ${headers_to_install}
193 ${source_of_generated_headers}
214 ${CMAKE_SOURCE_FILES}
215 ${EXAMPLES_CMAKEFILES_TXT}
216 ${TESHSUITE_CMAKEFILES_TXT}
217 ${TOOLS_CMAKEFILES_TXT}
218 ${TESTSUITE_CMAKEFILES_TXT}
220 ${USER_GUIDE_SOURCES}
232 ${PLATFORMS_EXAMPLES}
235 ##########################################
236 ### Fill in the "make dist-dir" target ###
237 ##########################################
239 add_custom_target(dist-dir
240 COMMENT "Generating the distribution directory"
241 COMMAND ${CMAKE_COMMAND} -E remove_directory ${PROJECT_NAME}-${release_version}/
242 COMMAND ${CMAKE_COMMAND} -E remove ${PROJECT_NAME}-${release_version}.tar.gz
243 COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_NAME}-${release_version}
244 COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_NAME}-${release_version}/doc/user_guide/html/
245 COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_NAME}-${release_version}/doc/ref_guide/html/
246 COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_HOME_DIRECTORY}/doc/user_guide/html/ ${PROJECT_NAME}-${release_version}/doc/user_guide/html/
247 COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_HOME_DIRECTORY}/doc/ref_guide/html/ ${PROJECT_NAME}-${release_version}/doc/ref_guide/html/
249 add_dependencies(dist-dir simgrid_documentation)
250 add_dependencies(dist-dir maintainer_files)
252 set(dirs_in_tarball "")
253 foreach(file ${source_to_pack})
255 # This damn prefix is still set somewhere (seems to be in subdirs)
256 string(REPLACE "${CMAKE_HOME_DIRECTORY}/" "" file "${file}")
258 # Create the directory on need
259 get_filename_component(file_location ${file} PATH)
260 string(REGEX MATCH ";${file_location};" OPERATION "${dirs_in_tarball}")
262 set(dirs_in_tarball "${dirs_in_tarball};${file_location};")
265 COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_NAME}-${release_version}/${file_location}/
269 # Actually copy the file
272 COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_HOME_DIRECTORY}/${file} ${PROJECT_NAME}-${release_version}/${file_location}/
277 COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/Scripts/Makefile.default ${PROJECT_NAME}-${release_version}/Makefile
279 endforeach(file ${source_to_pack})
281 ######################################
282 ### Fill in the "make dist" target ###
283 ######################################
285 add_custom_target(dist
286 COMMENT "Removing the distribution directory"
287 DEPENDS ${CMAKE_BINARY_DIR}/${PROJECT_NAME}-${release_version}.tar.gz
288 COMMAND ${CMAKE_COMMAND} -E remove_directory ${PROJECT_NAME}-${release_version}/
292 OUTPUT ${CMAKE_BINARY_DIR}/${PROJECT_NAME}-${release_version}.tar.gz
293 COMMENT "Compressing the archive from the distribution directory"
294 COMMAND ${CMAKE_COMMAND} -E tar cf ${PROJECT_NAME}-${release_version}.tar ${PROJECT_NAME}-${release_version}/
295 COMMAND gzip -9v ${PROJECT_NAME}-${release_version}.tar
296 COMMAND ${CMAKE_COMMAND} -E remove_directory ${PROJECT_NAME}-${release_version}/
298 add_dependencies(dist dist-dir)
300 if(NOT enable_maintainer_mode)
301 add_custom_target(echo-dist
302 COMMAND ${CMAKE_COMMAND} -E echo "WARNING: ----------------------------------------------------"
303 COMMAND ${CMAKE_COMMAND} -E echo "WARNING: Distrib is generated without option maintainer mode "
304 COMMAND ${CMAKE_COMMAND} -E echo "WARNING: ----------------------------------------------------"
306 add_dependencies(dist echo-dist)
307 endif(NOT enable_maintainer_mode)
309 ###########################################
310 ### Fill in the "make distcheck" target ###
311 ###########################################
313 set(CMAKE_BINARY_TEST_DIR ${CMAKE_BINARY_DIR})
315 # Allow to test the "make dist"
316 add_custom_target(distcheck
317 COMMAND ${CMAKE_COMMAND} -E echo "XXX remove old copy"
318 COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_BINARY_TEST_DIR}/${PROJECT_NAME}-${release_version}
320 COMMAND ${CMAKE_COMMAND} -E echo "XXX Untar distrib"
321 COMMAND ${CMAKE_COMMAND} -E tar xf ${CMAKE_BINARY_TEST_DIR}/${PROJECT_NAME}-${release_version}.tar.gz ${CMAKE_BINARY_TEST_DIR}/${PROJECT_NAME}-${release_version}
323 COMMAND ${CMAKE_COMMAND} -E echo "XXX create build and install subtrees"
324 COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_TEST_DIR}/${PROJECT_NAME}-${release_version}/_build
325 COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_TEST_DIR}/${PROJECT_NAME}-${release_version}/_inst
327 COMMAND ${CMAKE_COMMAND} -E echo "XXX Configure"
328 COMMAND ${CMAKE_COMMAND} -E chdir ${CMAKE_BINARY_TEST_DIR}/${PROJECT_NAME}-${release_version}/_build
330 -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_TEST_DIR}/${PROJECT_NAME}-${release_version}/_inst
332 -Denable_model-checking=ON
334 COMMAND ${CMAKE_COMMAND} -E echo "XXX Build"
335 COMMAND ${CMAKE_COMMAND} -E chdir ${CMAKE_BINARY_TEST_DIR}/${PROJECT_NAME}-${release_version}/_build ${CMAKE_MAKE_PROGRAM}
337 COMMAND ${CMAKE_COMMAND} -E echo "XXX Test"
338 COMMAND ${CMAKE_COMMAND} -E chdir ${CMAKE_BINARY_TEST_DIR}/${PROJECT_NAME}-${release_version}/_build ctest || true
340 COMMAND ${CMAKE_COMMAND} -E echo "XXX Install"
341 COMMAND ${CMAKE_COMMAND} -E chdir ${CMAKE_BINARY_TEST_DIR}/${PROJECT_NAME}-${release_version}/_build ${CMAKE_MAKE_PROGRAM} install
342 COMMAND ${CMAKE_COMMAND} -E create_symlink
343 ${CMAKE_BINARY_TEST_DIR}/${PROJECT_NAME}-${release_version}/_inst/lib/libsimgrid.so
344 ${CMAKE_BINARY_TEST_DIR}/${PROJECT_NAME}-${release_version}/_inst/lib/libsimgridtest.so
346 COMMAND ${CMAKE_COMMAND} -E echo "XXX Remove temp directories"
347 COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_BINARY_TEST_DIR}/${PROJECT_NAME}-${release_version}
349 #add_dependencies(distcheck dist)
351 #######################################
352 ### Fill in the "make check" target ###
353 #######################################
356 add_custom_target(check
357 COMMAND ctest -D ExperimentalMemCheck
359 else(enable_memcheck)
360 add_custom_target(check
363 endif(enable_memcheck)
365 #######################################
366 ### Fill in the "make xxx-clean" target ###
367 #######################################
369 add_custom_target(maintainer-clean
370 COMMAND ${CMAKE_COMMAND} -E remove -f src/config_unit.c
371 COMMAND ${CMAKE_COMMAND} -E remove -f src/cunit_unit.c
372 COMMAND ${CMAKE_COMMAND} -E remove -f src/dict_unit.c
373 COMMAND ${CMAKE_COMMAND} -E remove -f src/dynar_unit.c
374 COMMAND ${CMAKE_COMMAND} -E remove -f src/ex_unit.c
375 COMMAND ${CMAKE_COMMAND} -E remove -f src/set_unit.c
376 COMMAND ${CMAKE_COMMAND} -E remove -f src/simgrid_units_main.c
377 COMMAND ${CMAKE_COMMAND} -E remove -f src/swag_unit.c
378 COMMAND ${CMAKE_COMMAND} -E remove -f src/xbt_sha_unit.c
379 COMMAND ${CMAKE_COMMAND} -E remove -f src/xbt_str_unit.c
380 COMMAND ${CMAKE_COMMAND} -E remove -f src/xbt_strbuff_unit.c
381 COMMAND ${CMAKE_COMMAND} -E remove -f src/xbt_synchro_unit.c
382 WORKING_DIRECTORY "${CMAKE_HOME_DIRECTORY}"
385 add_custom_target(supernovae-clean
386 COMMAND ${CMAKE_COMMAND} -E remove -f src/supernovae_gras.c
387 COMMAND ${CMAKE_COMMAND} -E remove -f src/supernovae_sg.c
388 COMMAND ${CMAKE_COMMAND} -E remove -f src/supernovae_smpi.c
389 WORKING_DIRECTORY "${CMAKE_HOME_DIRECTORY}"
392 #############################################
393 ### Fill in the "make sync-gforge" target ###
394 #############################################
397 add_custom_target(sync-pipol
398 COMMAND scp -r Experimental_bindings.sh Experimental.sh MemCheck.sh pre-simgrid.sh navarro@pipol.inria.fr:~/
399 COMMAND scp -r rc.* navarro@pipol.inria.fr:~/.pipol/
400 COMMAND scp -r Nightly* navarro@pipol.inria.fr:~/.pipol/nightly
401 COMMAND ssh navarro@pipol.inria.fr "chmod a=rwx ~/* ~/.pipol/rc.* ~/.pipol/nightly/*"
402 WORKING_DIRECTORY "${CMAKE_HOME_DIRECTORY}/buildtools/pipol/"