X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/ab58f88f92ff03857b6cea328043a63619dc2ba7..61e51ed458b9c4bc40343c50fc28ab0f3da72eaa:/buildtools/Cmake/CompleteInFiles.cmake diff --git a/buildtools/Cmake/CompleteInFiles.cmake b/buildtools/Cmake/CompleteInFiles.cmake index c1e9ab30ea..f721971773 100644 --- a/buildtools/Cmake/CompleteInFiles.cmake +++ b/buildtools/Cmake/CompleteInFiles.cmake @@ -57,9 +57,11 @@ CHECK_FUNCTION_EXISTS(vasprintf HAVE_VASPRINTF) CHECK_FUNCTION_EXISTS(makecontext HAVE_MAKECONTEXT) CHECK_FUNCTION_EXISTS(mmap HAVE_MMAP) -if(WIN32) +if(WIN32) #THOSE FILES ARE FUNCTIONS ARE NOT DETECTED BUT THEY SHOULD... set(HAVE_UCONTEXT_H 1) set(HAVE_MAKECONTEXT 1) + set(HAVE_SNPRINTF 1) + set(HAVE_VSNPRINTF 1) endif(WIN32) set(CONTEXT_UCONTEXT 0) @@ -68,7 +70,6 @@ SET(HAVE_RUBY 0) set(HAVE_LUA 0) SET(HAVE_JAVA 0) SET(HAVE_TRACING 0) -SET(HAVE_LATENCY_BOUND_TRACKING 0) if(enable_tracing) SET(HAVE_TRACING 1) @@ -76,6 +77,13 @@ endif(enable_tracing) if(enable_latency_bound_tracking) SET(HAVE_LATENCY_BOUND_TRACKING 1) +else(enable_latency_bound_tracking) + if(enable_gtnets) + SET(enable_latency_bound_tracking ON) + SET(HAVE_LATENCY_BOUND_TRACKING 1) + else(enable_gtnets) + SET(HAVE_LATENCY_BOUND_TRACKING 0) + endif(enable_gtnets) endif(enable_latency_bound_tracking) if(enable_model-checking AND HAVE_MMAP) @@ -199,18 +207,24 @@ endif(HAVE_CGRAPH_LIB AND HAVE_CGRAPH_H) #-------------------------------------------------------------------------------------------------- ### Initialize of pcre -find_library(PATH_PCRE_LIB pcre "/usr/lib/") - -if(PATH_PCRE_LIB) - string(REGEX REPLACE "/libpcre.*[.]so$" "" PATHLIBPCRE "${PATH_PCRE_LIB}") - string(REGEX MATCH "-L${PATHLIBPCRE} " operation "${CMAKE_C_FLAGS}") - if(NOT operation) +find_library(PATH_PCRE_LIB pcre) +find_file(PATH_PCRE_H "pcre.h") +set(HAVE_PCRE_LIB 0) +if(PATH_PCRE_LIB AND PATH_PCRE_H) + string(REGEX REPLACE "/libpcre.*[.]${LIB_EXE}$" "" PATHLIBPCRE "${PATH_PCRE_LIB}") + string(REGEX REPLACE "/pcre.h" "" PATH_PCRE_H "${PATH_PCRE_H}") + string(REGEX MATCH "-L${PATHLIBPCRE} " operation "${CMAKE_C_FLAGS}") + if(NOT operation) SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}-L${PATHLIBPCRE} ") - endif(NOT operation) + endif(NOT operation) + string(REGEX MATCH "-I${PATH_PCRE_H} " operation "${CMAKE_C_FLAGS}") + if(NOT operation) + SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}-I${PATH_PCRE_H} ") + endif(NOT operation) set(HAVE_PCRE_LIB 1) else(PATH_PCRE_LIB) - message(FATAL_ERROR "You must have libpcre installed (please install the libpcre3-dev package or equivalent)") -endif(PATH_PCRE_LIB) + message("You should install libpcre (please install the libpcre3-dev package or equivalent)") +endif(PATH_PCRE_LIB AND PATH_PCRE_H) #-------------------------------------------------------------------------------------------------- ### Initialize of CONTEXT THREADS @@ -271,24 +285,31 @@ if(WIN32) endif(__GNUC__) endif(WIN32) -try_run(RUN_mcsc_VAR COMPILE_mcsc_VAR - ${PROJECT_DIRECTORY} - ${PROJECT_DIRECTORY}/buildtools/Cmake/test_prog/prog_AC_CHECK_MCSC.c - COMPILE_DEFINITIONS "${mcsc_flags}" - OUTPUT_VARIABLE var_compil - ) - -if(EXISTS "${simgrid_BINARY_DIR}/conftestval" AND COMPILE_mcsc_VAR) - file(READ "${simgrid_BINARY_DIR}/conftestval" mcsc) - STRING(REPLACE "\n" "" mcsc "${mcsc}") - if(mcsc) - set(mcsc "yes") - elseif(mcsc) - set(mcsc "no") - endif(mcsc) -else(EXISTS "${simgrid_BINARY_DIR}/conftestval" AND COMPILE_mcsc_VAR) - set(mcsc "no") -endif(EXISTS "${simgrid_BINARY_DIR}/conftestval" AND COMPILE_mcsc_VAR) +IF(CMAKE_CROSSCOMPILING) + IF(WIN32) + set(windows_context "yes") + set(IS_WINDOWS 1) + ENDIF(WIN32) +ELSE(CMAKE_CROSSCOMPILING) + try_run(RUN_mcsc_VAR COMPILE_mcsc_VAR + ${simgrid_BINARY_DIR} + ${PROJECT_DIRECTORY}/buildtools/Cmake/test_prog/prog_AC_CHECK_MCSC.c + COMPILE_DEFINITIONS "${mcsc_flags}" + OUTPUT_VARIABLE var_compil + ) + + if(EXISTS "${simgrid_BINARY_DIR}/conftestval" AND COMPILE_mcsc_VAR) + file(READ "${simgrid_BINARY_DIR}/conftestval" mcsc) + STRING(REPLACE "\n" "" mcsc "${mcsc}") + if(mcsc) + set(mcsc "yes") + elseif(mcsc) + set(mcsc "no") + endif(mcsc) + else(EXISTS "${simgrid_BINARY_DIR}/conftestval" AND COMPILE_mcsc_VAR) + set(mcsc "no") + endif(EXISTS "${simgrid_BINARY_DIR}/conftestval" AND COMPILE_mcsc_VAR) +ENDIF(CMAKE_CROSSCOMPILING) if(mcsc MATCHES "no" AND pthread) if(HAVE_WINDOWS_H) @@ -386,18 +407,19 @@ endif(IS_DIRECTORY ${PROJECT_DIRECTORY}/.git) ## SimGrid and GRAS specific checks ## +IF(NOT CMAKE_CROSSCOMPILING) # Check architecture signature begin try_run(RUN_GRAS_VAR COMPILE_GRAS_VAR - ${PROJECT_DIRECTORY} + ${simgrid_BINARY_DIR} ${PROJECT_DIRECTORY}/buildtools/Cmake/test_prog/prog_GRAS_ARCH.c RUN_OUTPUT_VARIABLE var1 ) if(BIGENDIAN) -set(val_big "B${var1}") -set(GRAS_BIGENDIAN 1) + set(val_big "B${var1}") + set(GRAS_BIGENDIAN 1) else(BIGENDIAN) -set(val_big "l${var1}") -set(GRAS_BIGENDIAN 0) + set(val_big "l${var1}") + set(GRAS_BIGENDIAN 0) endif(BIGENDIAN) if(val_big MATCHES "l_C:1/1:_I:2/1:4/1:4/1:8/1:_P:4/1:4/1:_D:4/1:8/1:") @@ -460,7 +482,7 @@ endif(val_big MATCHES "B_C:1/1:_I:2/2:4/4:8/8:8/8:_P:8/8:8/8:_D:4/4:8/4:") # Check architecture signature end try_run(RUN_GRAS_VAR COMPILE_GRAS_VAR - ${PROJECT_DIRECTORY} + ${simgrid_BINARY_DIR} ${PROJECT_DIRECTORY}/buildtools/Cmake/test_prog/prog_GRAS_CHECK_STRUCT_COMPACTION.c RUN_OUTPUT_VARIABLE var2 ) @@ -471,11 +493,12 @@ endforeach(var_tmp ${var2}) # Check for [SIZEOF_MAX] try_run(RUN_SM_VAR COMPILE_SM_VAR - ${PROJECT_DIRECTORY} + ${simgrid_BINARY_DIR} ${PROJECT_DIRECTORY}/buildtools/Cmake/test_prog/prog_max_size.c RUN_OUTPUT_VARIABLE var3 ) SET(SIZEOF_MAX ${var3}) +ENDIF(NOT CMAKE_CROSSCOMPILING) #-------------------------------------------------------------------------------------------------- @@ -493,12 +516,11 @@ if(HAVE_MAKECONTEXT OR WIN32) endif(__VISUALC__) if(__GNUC__) set(makecontext_CPPFLAGS "-DTEST_makecontext") - set(makecontext_CPPFLAGS_2 "-D_XBT_WIN32 -I${PROJECT_DIRECTORY}/include/xbt -I${PROJECT_DIRECTORY}/src/xbt") + set(makecontext_CPPFLAGS_2 "-D_XBT_WIN32 -I${PROJECT_DIRECTORY}/include/xbt -I${PROJECT_DIRECTORY}/src/xbt") endif(__GNUC__) - endif(WIN32) - + else(WIN32) try_run(RUN_makecontext_VAR COMPILE_makecontext_VAR - ${PROJECT_DIRECTORY} + ${simgrid_BINARY_DIR} ${PROJECT_DIRECTORY}/buildtools/Cmake/test_prog/prog_stacksetup.c COMPILE_DEFINITIONS "${makecontext_CPPFLAGS} ${makecontext_CPPFLAGS_2}" ) @@ -510,14 +532,15 @@ if(HAVE_MAKECONTEXT OR WIN32) string(REPLACE "," "" makecontext_size "${MAKECONTEXT_SIZE}") set(pth_skaddr_makecontext "#define pth_skaddr_makecontext(skaddr,sksize) (${makecontext_addr})") set(pth_sksize_makecontext "#define pth_sksize_makecontext(skaddr,sksize) (${makecontext_size})") + endif(WIN32) endif(HAVE_MAKECONTEXT OR WIN32) #-------------------------------------------------------------------------------------------------- ### check for stackgrowth - +if (NOT CMAKE_CROSSCOMPILING) try_run(RUN_makecontext_VAR COMPILE_makecontext_VAR - ${PROJECT_DIRECTORY} + ${simgrid_BINARY_DIR} ${PROJECT_DIRECTORY}/buildtools/Cmake/test_prog/prog_stackgrowth.c ) file(READ "${simgrid_BINARY_DIR}/conftestval" stack) @@ -528,6 +551,7 @@ if(stack MATCHES "up") set(PTH_STACKGROWTH "1") endif(stack MATCHES "up") +endif(NOT CMAKE_CROSSCOMPILING) ############### ## System checks ## @@ -541,7 +565,7 @@ endif(stack MATCHES "up") #AC_PRINTF_NULL try_run(RUN_PRINTF_NULL_VAR COMPILE_PRINTF_NULL_VAR - ${PROJECT_DIRECTORY} + ${simgrid_BINARY_DIR} ${PROJECT_DIRECTORY}/buildtools/Cmake/test_prog/prog_printf_null.c ) @@ -594,7 +618,7 @@ foreach(fct ${diff_va}) }" ) try_compile(COMPILE_VA_NULL_VAR - ${PROJECT_DIRECTORY} + ${simgrid_BINARY_DIR} ${PROJECT_DIRECTORY}/buildtools/Cmake/test_prog/prog_va_copy.c ) if(COMPILE_VA_NULL_VAR) @@ -652,7 +676,7 @@ endforeach(fct ${diff_va}) #-------------------------------------------------------------------------------------------------- ### check for getline try_compile(COMPILE_RESULT_VAR - ${PROJECT_DIRECTORY} + ${simgrid_BINARY_DIR} ${PROJECT_DIRECTORY}/buildtools/Cmake/test_prog/prog_getline.c ) @@ -665,23 +689,32 @@ SET(SIMGRID_NEED_GETLINE 0) endif(NOT COMPILE_RESULT_VAR) ### check for a working snprintf -if(HAVE_SNPRINTF AND HAVE_VSNPRINTF) - - try_run(RUN_SNPRINTF_FUNC_VAR COMPILE_SNPRINTF_FUNC_VAR - ${PROJECT_DIRECTORY} - ${PROJECT_DIRECTORY}/buildtools/Cmake/test_prog/prog_snprintf.c - ) +if(HAVE_SNPRINTF AND HAVE_VSNPRINTF OR WIN32) + if(WIN32) + #set(HAVE_SNPRINTF 1) + #set(HAVE_VSNPRINTF 1) + endif(WIN32) + if(CMAKE_CROSSCOMPILING) - set(RUN_SNPRINTF_FUNC "cross") + set(RUN_SNPRINTF_FUNC "cross") + #set(PREFER_PORTABLE_SNPRINTF 1) + else(CMAKE_CROSSCOMPILING) + try_run(RUN_SNPRINTF_FUNC_VAR COMPILE_SNPRINTF_FUNC_VAR + ${simgrid_BINARY_DIR} + ${PROJECT_DIRECTORY}/buildtools/Cmake/test_prog/prog_snprintf.c + ) endif(CMAKE_CROSSCOMPILING) - try_run(RUN_VSNPRINTF_FUNC_VAR COMPILE_VSNPRINTF_FUNC_VAR - ${PROJECT_DIRECTORY} - ${PROJECT_DIRECTORY}/buildtools/Cmake/test_prog/prog_vsnprintf.c - ) if(CMAKE_CROSSCOMPILING) set(RUN_VSNPRINTF_FUNC "cross") + set(PREFER_PORTABLE_VSNPRINTF 1) + else(CMAKE_CROSSCOMPILING) + try_run(RUN_VSNPRINTF_FUNC_VAR COMPILE_VSNPRINTF_FUNC_VAR + ${simgrid_BINARY_DIR} + ${PROJECT_DIRECTORY}/buildtools/Cmake/test_prog/prog_vsnprintf.c + ) endif(CMAKE_CROSSCOMPILING) + set(PREFER_PORTABLE_SNPRINTF 0) if(RUN_VSNPRINTF_FUNC_VAR MATCHES "FAILED_TO_RUN") set(PREFER_PORTABLE_SNPRINTF 1) @@ -689,7 +722,7 @@ if(HAVE_SNPRINTF AND HAVE_VSNPRINTF) if(RUN_SNPRINTF_FUNC_VAR MATCHES "FAILED_TO_RUN") set(PREFER_PORTABLE_SNPRINTF 1) endif(RUN_SNPRINTF_FUNC_VAR MATCHES "FAILED_TO_RUN") -endif(HAVE_SNPRINTF AND HAVE_VSNPRINTF) +endif(HAVE_SNPRINTF AND HAVE_VSNPRINTF OR WIN32) ### check for asprintf function familly if(HAVE_ASPRINTF) @@ -717,14 +750,12 @@ endif(ADDR2LINE) ### File to create -configure_file("${PROJECT_DIRECTORY}/src/context_sysv_config.h.in" "${PROJECT_DIRECTORY}/src/context_sysv_config.h" @ONLY IMMEDIATE) +configure_file("${PROJECT_DIRECTORY}/src/context_sysv_config.h.in" "${CMAKE_CURRENT_BINARY_DIR}/src/context_sysv_config.h" @ONLY IMMEDIATE) SET( CMAKEDEFINE "#cmakedefine" ) -configure_file("${PROJECT_DIRECTORY}/buildtools/Cmake/gras_config.h.in" "${PROJECT_DIRECTORY}/src/gras_config.h" @ONLY IMMEDIATE) -configure_file("${PROJECT_DIRECTORY}/src/gras_config.h" "${PROJECT_DIRECTORY}/src/gras_config.h" @ONLY IMMEDIATE) -configure_file("${PROJECT_DIRECTORY}/include/simgrid_config.h.in" "${PROJECT_DIRECTORY}/include/simgrid_config.h" @ONLY IMMEDIATE) -#configure_file("${PROJECT_DIRECTORY}/buildtools/Cmake/tracing_config.h.in" "${PROJECT_DIRECTORY}/include/instr/tracing_config.h" @ONLY IMMEDIATE) -#configure_file("${PROJECT_DIRECTORY}/include/instr/tracing_config.h" "${PROJECT_DIRECTORY}/include/instr/tracing_config.h" @ONLY IMMEDIATE) +configure_file("${PROJECT_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("${PROJECT_DIRECTORY}/include/simgrid_config.h.in" "${CMAKE_CURRENT_BINARY_DIR}/include/simgrid_config.h" @ONLY IMMEDIATE) set(top_srcdir "${PROJECT_DIRECTORY}") set(srcdir "${PROJECT_DIRECTORY}/src") @@ -740,6 +771,7 @@ configure_file(${PROJECT_DIRECTORY}/src/smpi/smpicc.in ${CMAKE_CURRENT_BINARY_DI configure_file(${PROJECT_DIRECTORY}/src/smpi/smpirun.in ${CMAKE_CURRENT_BINARY_DIR}/bin/smpirun @ONLY) configure_file(${PROJECT_DIRECTORY}/examples/smpi/hostfile ${CMAKE_CURRENT_BINARY_DIR}/examples/smpi/hostfile COPYONLY) configure_file(${PROJECT_DIRECTORY}/examples/msg/small_platform.xml ${CMAKE_CURRENT_BINARY_DIR}/examples/msg/small_platform.xml COPYONLY) +configure_file(${PROJECT_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/smpirun" OUTPUT_VARIABLE OKITOKI)