X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/65e3ac59202e1a229d0472c199ba1396c5a99873..621567e097f236cdb81007637323ecc23ac26d45:/buildtools/Cmake/CompleteInFiles.cmake diff --git a/buildtools/Cmake/CompleteInFiles.cmake b/buildtools/Cmake/CompleteInFiles.cmake index 9683bdbe9f..74503d0803 100644 --- a/buildtools/Cmake/CompleteInFiles.cmake +++ b/buildtools/Cmake/CompleteInFiles.cmake @@ -14,28 +14,32 @@ 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) -if(enable_ruby) - include(FindRubySimgrid) -endif(enable_ruby) if(enable_smpi) include(FindF2c) 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 NO_DEFAULT_PATHS pthread) -CHECK_LIBRARY_EXISTS(pthread sem_init NO_DEFAULT_PATHS HAVE_SEM_INIT_LIB) -CHECK_LIBRARY_EXISTS(pthread sem_timedwait NO_DEFAULT_PATHS HAVE_SEM_TIMEDWAIT_LIB) -CHECK_LIBRARY_EXISTS(pthread pthread_mutex_timedlock NO_DEFAULT_PATHS HAVE_MUTEX_TIMEDLOCK_LIB) -CHECK_LIBRARY_EXISTS(rt clock_gettime NO_DEFAULT_PATHS HAVE_POSIX_GETTIME) +CHECK_LIBRARY_EXISTS(pthread pthread_create "" pthread) +CHECK_LIBRARY_EXISTS(pthread sem_init "" HAVE_SEM_INIT_LIB) +CHECK_LIBRARY_EXISTS(pthread sem_timedwait "" HAVE_SEM_TIMEDWAIT_LIB) +CHECK_LIBRARY_EXISTS(pthread pthread_mutex_timedlock "" HAVE_MUTEX_TIMEDLOCK_LIB) +CHECK_LIBRARY_EXISTS(rt clock_gettime "" HAVE_POSIX_GETTIME) CHECK_INCLUDE_FILES("time.h;sys/time.h" TIME_WITH_SYS_TIME) CHECK_INCLUDE_FILES("stdlib.h;stdarg.h;string.h;float.h" STDC_HEADERS) @@ -48,6 +52,7 @@ CHECK_INCLUDE_FILE("sys/stat.h" HAVE_SYS_STAT_H) CHECK_INCLUDE_FILE("windows.h" HAVE_WINDOWS_H) CHECK_INCLUDE_FILE("winsock.h" HAVE_WINSOCK_H) CHECK_INCLUDE_FILE("winsock2.h" HAVE_WINSOCK2_H) +CHECK_INCLUDE_FILE("WinDef.h" HAVE_WINDEF_H) CHECK_INCLUDE_FILE("errno.h" HAVE_ERRNO_H) CHECK_INCLUDE_FILE("unistd.h" HAVE_UNISTD_H) CHECK_INCLUDE_FILE("execinfo.h" HAVE_EXECINFO_H) @@ -64,7 +69,6 @@ CHECK_INCLUDE_FILE("ucontext.h" HAVE_UCONTEXT_H) CHECK_INCLUDE_FILE("stdio.h" HAVE_STDIO_H) CHECK_INCLUDE_FILE("linux/futex.h" HAVE_FUTEX_H) - CHECK_FUNCTION_EXISTS(gettimeofday HAVE_GETTIMEOFDAY) CHECK_FUNCTION_EXISTS(usleep HAVE_USLEEP) CHECK_FUNCTION_EXISTS(getdtablesize HAVE_GETDTABLESIZE) @@ -78,6 +82,21 @@ CHECK_FUNCTION_EXISTS(asprintf HAVE_ASPRINTF) CHECK_FUNCTION_EXISTS(vasprintf HAVE_VASPRINTF) CHECK_FUNCTION_EXISTS(makecontext HAVE_MAKECONTEXT) CHECK_FUNCTION_EXISTS(mmap HAVE_MMAP) +CHECK_FUNCTION_EXISTS(mergesort HAVE_MERGESORT) + +#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) @@ -94,6 +113,10 @@ if(enable_tracing) SET(HAVE_TRACING 1) endif(enable_tracing) +if(enable_jedule) + SET(HAVE_JEDULE 1) +endif(enable_jedule) + if(enable_latency_bound_tracking) SET(HAVE_LATENCY_BOUND_TRACKING 1) else(enable_latency_bound_tracking) @@ -244,36 +267,34 @@ 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") - exec_program("git svn info" ${CMAKE_HOME_DIRECTORY} OUTPUT_VARIABLE "GIT_SVN_VERSION") string(REGEX REPLACE " .*" "" GIT_VERSION "${GIT_VERSION}") 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 @@ -621,12 +642,12 @@ endif(ADDR2LINE) ### File to create -configure_file("${CMAKE_HOME_DIRECTORY}/src/context_sysv_config.h.in" "${CMAKE_CURRENT_BINARY_DIR}/src/context_sysv_config.h" @ONLY IMMEDIATE) +configure_file("${CMAKE_HOME_DIRECTORY}/src/context_sysv_config.h.in" "${CMAKE_BINARY_DIR}/src/context_sysv_config.h" @ONLY IMMEDIATE) SET( CMAKEDEFINE "#cmakedefine" ) -configure_file("${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/gras_config.h.in" "${CMAKE_CURRENT_BINARY_DIR}/src/gras_config.h" @ONLY IMMEDIATE) -configure_file("${CMAKE_CURRENT_BINARY_DIR}/src/gras_config.h" "${CMAKE_CURRENT_BINARY_DIR}/src/gras_config.h" @ONLY IMMEDIATE) -configure_file("${CMAKE_HOME_DIRECTORY}/include/simgrid_config.h.in" "${CMAKE_CURRENT_BINARY_DIR}/include/simgrid_config.h" @ONLY IMMEDIATE) +configure_file("${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/gras_config.h.in" "${CMAKE_BINARY_DIR}/src/gras_config.h" @ONLY IMMEDIATE) +configure_file("${CMAKE_BINARY_DIR}/src/gras_config.h" "${CMAKE_BINARY_DIR}/src/gras_config.h" @ONLY IMMEDIATE) +configure_file("${CMAKE_HOME_DIRECTORY}/include/simgrid_config.h.in" "${CMAKE_BINARY_DIR}/include/simgrid_config.h" @ONLY IMMEDIATE) set(top_srcdir "${CMAKE_HOME_DIRECTORY}") set(srcdir "${CMAKE_HOME_DIRECTORY}/src") @@ -635,37 +656,52 @@ set(exec_prefix ${CMAKE_INSTALL_PREFIX}) set(includedir ${CMAKE_INSTALL_PREFIX}/include) set(top_builddir ${CMAKE_HOME_DIRECTORY}) set(libdir ${exec_prefix}/lib) -set(CMAKE_LINKARGS "${CMAKE_CURRENT_BINARY_DIR}/lib") -set(CMAKE_SMPI_COMMAND "export LD_LIBRARY_PATH=${CMAKE_CURRENT_BINARY_DIR}/lib:${GTNETS_LIB_PATH}:$LD_LIBRARY_PATH") - -configure_file(${CMAKE_HOME_DIRECTORY}/src/smpi/smpicc.in ${CMAKE_CURRENT_BINARY_DIR}/bin/smpicc @ONLY) -configure_file(${CMAKE_HOME_DIRECTORY}/src/smpi/smpif2c.in ${CMAKE_CURRENT_BINARY_DIR}/bin/smpif2c @ONLY) -configure_file(${CMAKE_HOME_DIRECTORY}/src/smpi/smpiff.in ${CMAKE_CURRENT_BINARY_DIR}/bin/smpiff @ONLY) -configure_file(${CMAKE_HOME_DIRECTORY}/src/smpi/smpirun.in ${CMAKE_CURRENT_BINARY_DIR}/bin/smpirun @ONLY) -configure_file(${CMAKE_HOME_DIRECTORY}/examples/smpi/hostfile ${CMAKE_CURRENT_BINARY_DIR}/examples/smpi/hostfile COPYONLY) -configure_file(${CMAKE_HOME_DIRECTORY}/examples/msg/small_platform.xml ${CMAKE_CURRENT_BINARY_DIR}/examples/msg/small_platform.xml COPYONLY) -configure_file(${CMAKE_HOME_DIRECTORY}/examples/msg/small_platform_with_routers.xml ${CMAKE_CURRENT_BINARY_DIR}/examples/msg/small_platform_with_routers.xml COPYONLY) - -exec_program("chmod a=rwx ${CMAKE_CURRENT_BINARY_DIR}/bin/smpicc" OUTPUT_VARIABLE OKITOKI) -exec_program("chmod a=rwx ${CMAKE_CURRENT_BINARY_DIR}/bin/smpif2c" OUTPUT_VARIABLE OKITOKI) -exec_program("chmod a=rwx ${CMAKE_CURRENT_BINARY_DIR}/bin/smpiff" OUTPUT_VARIABLE OKITOKI) -exec_program("chmod a=rwx ${CMAKE_CURRENT_BINARY_DIR}/bin/smpirun" OUTPUT_VARIABLE OKITOKI) +set(CMAKE_LINKARGS "${CMAKE_BINARY_DIR}/lib") +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) +configure_file(${CMAKE_HOME_DIRECTORY}/src/smpi/smpif2c.in ${CMAKE_BINARY_DIR}/bin/smpif2c @ONLY) +configure_file(${CMAKE_HOME_DIRECTORY}/src/smpi/smpiff.in ${CMAKE_BINARY_DIR}/bin/smpiff @ONLY) +configure_file(${CMAKE_HOME_DIRECTORY}/src/smpi/smpirun.in ${CMAKE_BINARY_DIR}/bin/smpirun @ONLY) + +exec_program("chmod a=rwx ${CMAKE_BINARY_DIR}/bin/smpicc" OUTPUT_VARIABLE OKITOKI) +exec_program("chmod a=rwx ${CMAKE_BINARY_DIR}/bin/smpif2c" OUTPUT_VARIABLE OKITOKI) +exec_program("chmod a=rwx ${CMAKE_BINARY_DIR}/bin/smpiff" OUTPUT_VARIABLE OKITOKI) +exec_program("chmod a=rwx ${CMAKE_BINARY_DIR}/bin/smpirun" OUTPUT_VARIABLE OKITOKI) set(generate_files_to_clean -${CMAKE_CURRENT_BINARY_DIR}/src/context_sysv_config.h -${CMAKE_CURRENT_BINARY_DIR}/src/gras_config.h -${CMAKE_CURRENT_BINARY_DIR}/include/simgrid_config.h -${CMAKE_CURRENT_BINARY_DIR}/bin/smpicc -${CMAKE_CURRENT_BINARY_DIR}/bin/smpif2c -${CMAKE_CURRENT_BINARY_DIR}/bin/smpiff -${CMAKE_CURRENT_BINARY_DIR}/bin/smpirun -${CMAKE_CURRENT_BINARY_DIR}/bin/colorize -${CMAKE_CURRENT_BINARY_DIR}/bin/simgrid_update_xml -${CMAKE_CURRENT_BINARY_DIR}/examples/smpi/hostfile -${CMAKE_CURRENT_BINARY_DIR}/examples/smpi/smpi_traced.trace -${CMAKE_CURRENT_BINARY_DIR}/examples/msg/small_platform.xml -${CMAKE_CURRENT_BINARY_DIR}/examples/msg/small_platform_with_routers.xml +${CMAKE_BINARY_DIR}/src/context_sysv_config.h +${CMAKE_BINARY_DIR}/src/gras_config.h +${CMAKE_BINARY_DIR}/include/simgrid_config.h +${CMAKE_BINARY_DIR}/include/smpi/smpif.h +${CMAKE_BINARY_DIR}/bin/smpicc +${CMAKE_BINARY_DIR}/bin/smpif2c +${CMAKE_BINARY_DIR}/bin/smpiff +${CMAKE_BINARY_DIR}/bin/smpirun +${CMAKE_BINARY_DIR}/bin/colorize +${CMAKE_BINARY_DIR}/bin/simgrid_update_xml +${CMAKE_BINARY_DIR}/examples/smpi/smpi_traced.trace +${CMAKE_BINARY_DIR}/src/supernovae_sg.c +${CMAKE_BINARY_DIR}/src/supernovae_gras.c +${CMAKE_BINARY_DIR}/src/supernovae_smpi.c ) +if("${CMAKE_BINARY_DIR}" STREQUAL "${CMAKE_HOME_DIRECTORY}") +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}") + SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES -"${generate_files_to_clean}") \ No newline at end of file +"${generate_files_to_clean}")