X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/0da6595ee68093903e46a1c46d30a792f0dd6ed3..6e31bb477ffc836d630ada9793873dab17243622:/buildtools/Cmake/CompleteInFiles.cmake diff --git a/buildtools/Cmake/CompleteInFiles.cmake b/buildtools/Cmake/CompleteInFiles.cmake index d9fd831056..d398e7a5cc 100644 --- a/buildtools/Cmake/CompleteInFiles.cmake +++ b/buildtools/Cmake/CompleteInFiles.cmake @@ -14,9 +14,12 @@ include(TestBigEndian) TEST_BIG_ENDIAN(BIGENDIAN) include(FindGraphviz) -if(enable_pcre) + +string(TOUPPER ${enable_pcre} enable_pcre) +if(enable_pcre STREQUAL "AUTO" OR enable_pcre STREQUAL "ON") include(FindPCRE) -endif(enable_pcre) +endif(enable_pcre STREQUAL "AUTO" OR enable_pcre STREQUAL "ON") +set(HAVE_GTNETS 0) if(enable_gtnets) include(FindGTnets) endif(enable_gtnets) @@ -26,6 +29,10 @@ endif(enable_smpi) if(enable_lua) include(FindLua51Simgrid) endif(enable_lua) +set(HAVE_NS3 0) +if(enable_ns3) + include(FindNS3) +endif(enable_ns3) # Checks for header libraries functions. CHECK_LIBRARY_EXISTS(pthread pthread_create "" pthread) @@ -76,6 +83,20 @@ CHECK_FUNCTION_EXISTS(vasprintf HAVE_VASPRINTF) CHECK_FUNCTION_EXISTS(makecontext HAVE_MAKECONTEXT) CHECK_FUNCTION_EXISTS(mmap HAVE_MMAP) +#Check if __thread is defined +exec_program("${CMAKE_C_COMPILER} ${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/test_prog/prog_thread_storage.c" + OUTPUT_VARIABLE HAVE_thread_storage_run) +if(HAVE_thread_storage_run) + set(HAVE_THREAD_LOCAL_STORAGE 0) +else(HAVE_thread_storage_run) + set(HAVE_THREAD_LOCAL_STORAGE 1) +endif(HAVE_thread_storage_run) + +# Our usage of mmap is Linux-specific (flag MAP_ANONYMOUS), but kFreeBSD uses a GNU libc +IF(NOT "${CMAKE_SYSTEM}" MATCHES "Linux" AND NOT "${CMAKE_SYSTEM}" MATCHES "kFreeBSD") + SET(HAVE_MMAP 0) +ENDIF(NOT "${CMAKE_SYSTEM}" MATCHES "Linux" AND NOT "${CMAKE_SYSTEM}" MATCHES "kFreeBSD") + if(WIN32) #THOSE FILES ARE FUNCTIONS ARE NOT DETECTED BUT THEY SHOULD... set(HAVE_UCONTEXT_H 1) set(HAVE_MAKECONTEXT 1) @@ -245,10 +266,13 @@ if(IS_DIRECTORY ${CMAKE_HOME_DIRECTORY}/.svn) find_file(SVN ".svn" ${CMAKE_HOME_DIRECTORY}) exec_program("svnversion ${CMAKE_HOME_DIRECTORY}" OUTPUT_VARIABLE "SVN_VERSION") message(STATUS "svn version ${SVN_VERSION}") +else(IS_DIRECTORY ${CMAKE_HOME_DIRECTORY}/.svn) + exec_program("git config --get svn-remote.svn.url" + OUTPUT_VARIABLE url + RETURN_VALUE ret) endif(IS_DIRECTORY ${CMAKE_HOME_DIRECTORY}/.svn) -if(IS_DIRECTORY ${CMAKE_HOME_DIRECTORY}/.git) - +if(url) exec_program("git --git-dir=${CMAKE_HOME_DIRECTORY}/.git log --oneline -1" OUTPUT_VARIABLE "GIT_VERSION") exec_program("git --git-dir=${CMAKE_HOME_DIRECTORY}/.git log -n 1 --format=%ai ." OUTPUT_VARIABLE "GIT_DATE") @@ -256,24 +280,20 @@ if(IS_DIRECTORY ${CMAKE_HOME_DIRECTORY}/.git) STRING(REPLACE " +0000" "" GIT_DATE ${GIT_DATE}) STRING(REPLACE " " "~" GIT_DATE ${GIT_DATE}) STRING(REPLACE ":" "-" GIT_DATE ${GIT_DATE}) + + exec_program("git svn info" ${CMAKE_HOME_DIRECTORY} + OUTPUT_VARIABLE "GIT_SVN_VERSION") + string(REPLACE "\n" ";" GIT_SVN_VERSION ${GIT_SVN_VERSION}) + foreach(line ${GIT_SVN_VERSION}) + string(REGEX MATCH "^Revision:.*" line_good ${line}) + if(line_good) + string(REPLACE "Revision: " "" + line_good ${line_good}) + set(SVN_VERSION ${line_good}) + endif(line_good) + endforeach(line ${GIT_SVN_VERSION}) +endif(url) - exec_program("git config --get svn-remote.svn.url" - OUTPUT_VARIABLE url - RETURN_VALUE ret) - if(ret EQUAL 0) - exec_program("git svn info" ${CMAKE_HOME_DIRECTORY} - OUTPUT_VARIABLE "GIT_SVN_VERSION") - string(REPLACE "\n" ";" GIT_SVN_VERSION ${GIT_SVN_VERSION}) - foreach(line ${GIT_SVN_VERSION}) - string(REGEX MATCH "^Revision:.*" line_good ${line}) - if(line_good) - string(REPLACE "Revision: " "" - line_good ${line_good}) - set(SVN_VERSION ${line_good}) - endif(line_good) - endforeach(line ${GIT_SVN_VERSION}) - endif(ret EQUAL 0) -endif(IS_DIRECTORY ${CMAKE_HOME_DIRECTORY}/.git) ################################### ## SimGrid and GRAS specific checks @@ -636,7 +656,7 @@ set(includedir ${CMAKE_INSTALL_PREFIX}/include) set(top_builddir ${CMAKE_HOME_DIRECTORY}) set(libdir ${exec_prefix}/lib) set(CMAKE_LINKARGS "${CMAKE_BINARY_DIR}/lib") -set(CMAKE_SMPI_COMMAND "export LD_LIBRARY_PATH=${CMAKE_BINARY_DIR}/lib:${GTNETS_LIB_PATH}:$LD_LIBRARY_PATH") +set(CMAKE_SMPI_COMMAND "export LD_LIBRARY_PATH=${CMAKE_BINARY_DIR}/lib:${GTNETS_LIB_PATH}:${HAVE_NS3_LIB}:$LD_LIBRARY_PATH") configure_file(${CMAKE_HOME_DIRECTORY}/include/smpi/smpif.h.in ${CMAKE_BINARY_DIR}/include/smpi/smpif.h @ONLY) configure_file(${CMAKE_HOME_DIRECTORY}/src/smpi/smpicc.in ${CMAKE_BINARY_DIR}/bin/smpicc @ONLY) @@ -671,12 +691,14 @@ else("${CMAKE_BINARY_DIR}" STREQUAL "${CMAKE_HOME_DIRECTORY}") configure_file(${CMAKE_HOME_DIRECTORY}/examples/smpi/hostfile ${CMAKE_BINARY_DIR}/examples/smpi/hostfile COPYONLY) configure_file(${CMAKE_HOME_DIRECTORY}/examples/msg/small_platform.xml ${CMAKE_BINARY_DIR}/examples/msg/small_platform.xml COPYONLY) configure_file(${CMAKE_HOME_DIRECTORY}/examples/msg/small_platform_with_routers.xml ${CMAKE_BINARY_DIR}/examples/msg/small_platform_with_routers.xml COPYONLY) + configure_file(${CMAKE_HOME_DIRECTORY}/examples/msg/tracing/platform.xml ${CMAKE_BINARY_DIR}/examples/msg/tracing/platform.xml COPYONLY) set(generate_files_to_clean ${generate_files_to_clean} ${CMAKE_BINARY_DIR}/examples/smpi/hostfile ${CMAKE_BINARY_DIR}/examples/msg/small_platform.xml ${CMAKE_BINARY_DIR}/examples/msg/small_platform_with_routers.xml + ${CMAKE_BINARY_DIR}/examples/msg/tracing/platform.xml ) endif("${CMAKE_BINARY_DIR}" STREQUAL "${CMAKE_HOME_DIRECTORY}")