X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/f906a2a1b83328d2ef01ea2a00bea38e076e9429..d649c1b9b2415afa32720000a369572588ce6462:/buildtools/Cmake/CompleteInFiles.cmake diff --git a/buildtools/Cmake/CompleteInFiles.cmake b/buildtools/Cmake/CompleteInFiles.cmake index 4d22b77954..828615aaac 100644 --- a/buildtools/Cmake/CompleteInFiles.cmake +++ b/buildtools/Cmake/CompleteInFiles.cmake @@ -41,6 +41,7 @@ CHECK_INCLUDE_FILE("stdlib.h" HAVE_STDLIB_H) CHECK_INCLUDE_FILE("strings.h" HAVE_STRINGS_H) CHECK_INCLUDE_FILE("string.h" HAVE_STRING_H) CHECK_INCLUDE_FILE("ucontext.h" HAVE_UCONTEXT_H) +CHECK_INCLUDE_FILE("stdio.h" HAVE_STDIO_H) CHECK_FUNCTION_EXISTS(gettimeofday HAVE_GETTIMEOFDAY) CHECK_FUNCTION_EXISTS(usleep HAVE_USLEEP) @@ -56,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) @@ -67,11 +70,16 @@ 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) endif(enable_tracing) +if(enable_latency_bound_tracking) + SET(HAVE_LATENCY_BOUND_TRACKING 1) +endif(enable_latency_bound_tracking) + if(enable_model-checking AND HAVE_MMAP) SET(HAVE_MC 1) SET(MMALLOC_WANT_OVERIDE_LEGACY 1) @@ -87,14 +95,12 @@ if(enable_lua) SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}-I${LUA_INCLUDE_DIR} ") foreach(path_lua ${LUA_LIBRARIES}) string(REGEX REPLACE "liblua.*" "" path_lua_to_use ${path_lua}) - string(REGEX MATCH "-L${path_lua_to_use}" operation "${CMAKE_EXE_LINKER_FLAGS}") - string(REGEX MATCH ".*lua.*" operation2 "${path_lua}") - if(NOT operation AND operation2) + string(REGEX MATCH ".*lua.*" operation "${path_lua}") + if(operation) string(REGEX REPLACE "${path_lua_to_use}" "" liblua ${path_lua}) string(REPLACE "lib" "" liblua "${liblua}") string(REGEX REPLACE "[.][^.]*$" "" liblua "${liblua}") - SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}-L${path_lua_to_use} ") - endif(NOT operation AND operation2) + endif(operation) endforeach(path_lua ${LUA_LIBRARIES}) else(LUA51_FOUND) message("Lua binding need version 5.1 and cmake version 2.8") @@ -112,7 +118,6 @@ if(enable_ruby) set(RUBY_LIBRARY_NAME ruby) endif(NOT RUBY_LIBRARY_NAME) string(REGEX REPLACE "/libruby.*$" "" RUBY_LIBRARY ${RUBY_LIBRARY}) - SET(CMAKE_EXE_LINKER_FLAGS "-L${RUBY_LIBRARY} ") SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}-I${RUBY_CONFIG_INCLUDE_DIR} ") #path to config.h string(COMPARE EQUAL "${RUBY_INCLUDE_DIR}" "${RUBY_CONFIG_INCLUDE_DIR}" operation) if(NOT operation) @@ -166,11 +171,11 @@ else(NOT enable_gtnets OR enable_supernovae) SET(HAVE_GTNETS 0) else(COMPILE_GTNETS_VAR) SET(HAVE_GTNETS 1) - SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}${GTNETS_CPPFLAGS} ") - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}${GTNETS_CPPFLAGS} ") - string(REGEX MATCH "${GTNETS_LDFLAGS}" operation "${CMAKE_EXE_LINKER_FLAGS}") + SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}${GTNETS_CPPFLAGS} ${GTNETS_LDFLAGS} ") + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}${GTNETS_CPPFLAGS} ${GTNETS_LDFLAGS} ") + string(REGEX MATCH "${gtnets_path}/lib" operation "$ENV{LD_LIBRARY_PATH}") if(NOT operation) - SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}${GTNETS_LDFLAGS} ") + message(FATAL_ERROR "\n\nTo use GTNETS don't forget to set LD_LIBRARY_PATH with \n\texport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${gtnets_path}/lib\n\n") endif(NOT operation) endif(COMPILE_GTNETS_VAR) endif(NOT enable_gtnets OR enable_supernovae) @@ -183,19 +188,32 @@ mark_as_advanced(HAVE_CGRAPH_H) if(HAVE_CGRAPH_LIB AND HAVE_CGRAPH_H) string(REGEX REPLACE "/libcgraph.*" "" lib_cgraph ${HAVE_CGRAPH_LIB}) string(REPLACE "/cgraph.h" "" file_cgraph_h ${HAVE_CGRAPH_H}) - - string(REGEX MATCH "-L${lib_cgraph} " operation "${CMAKE_EXE_LINKER_FLAGS}") - if(NOT operation) - SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}-L${lib_cgraph} ") - endif(NOT operation) - string(REGEX MATCH "-I${file_cgraph_h} " operation "${CMAKE_C_FLAGS}") if(NOT operation) SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}-I${file_cgraph_h} ") endif(NOT operation) + string(REGEX MATCH "-L${lib_cgraph} " operation "${CMAKE_C_FLAGS}") + if(NOT operation) + SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}-L${lib_cgraph} ") + endif(NOT operation) endif(HAVE_CGRAPH_LIB AND HAVE_CGRAPH_H) +#-------------------------------------------------------------------------------------------------- +### Initialize of pcre +find_library(PATH_PCRE_LIB pcre "/usr/lib/") +set(HAVE_PCRE_LIB 0) +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) + SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}-L${PATHLIBPCRE} ") + endif(NOT operation) + set(HAVE_PCRE_LIB 1) +else(PATH_PCRE_LIB) + message("You should install libpcre (please install the libpcre3-dev package or equivalent)") +endif(PATH_PCRE_LIB) + #-------------------------------------------------------------------------------------------------- ### Initialize of CONTEXT THREADS @@ -246,13 +264,23 @@ if(CMAKE_SYSTEM_NAME MATCHES "Darwin") set(mcsc_flags "-D_XOPEN_SOURCE") endif(CMAKE_SYSTEM_NAME MATCHES "Darwin") +if(WIN32) + if(__VISUALC__) + set(mcsc_flags "/D_XBT_WIN32 /I${PROJECT_DIRECTORY}/include/xbt /I${PROJECT_DIRECTORY}/src/xbt") + endif(__VISUALC__) + if(__GNUC__) + set(mcsc_flags "-D_XBT_WIN32 -I${PROJECT_DIRECTORY}/include/xbt -I${PROJECT_DIRECTORY}/src/xbt") + 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") + +if(EXISTS "${simgrid_BINARY_DIR}/conftestval" AND COMPILE_mcsc_VAR) file(READ "${simgrid_BINARY_DIR}/conftestval" mcsc) STRING(REPLACE "\n" "" mcsc "${mcsc}") if(mcsc) @@ -260,9 +288,9 @@ if(EXISTS "${simgrid_BINARY_DIR}/conftestval") elseif(mcsc) set(mcsc "no") endif(mcsc) -else(EXISTS "${simgrid_BINARY_DIR}/conftestval") +else(EXISTS "${simgrid_BINARY_DIR}/conftestval" AND COMPILE_mcsc_VAR) set(mcsc "no") -endif(EXISTS "${simgrid_BINARY_DIR}/conftestval") +endif(EXISTS "${simgrid_BINARY_DIR}/conftestval" AND COMPILE_mcsc_VAR) if(mcsc MATCHES "no" AND pthread) if(HAVE_WINDOWS_H) @@ -460,9 +488,16 @@ if(HAVE_MAKECONTEXT OR WIN32) set(makecontext_CPPFLAGS_2 "-DOSX") endif(CMAKE_SYSTEM_NAME MATCHES "Darwin") - if(WIN32) - set(makecontext_CPPFLAGS_2 "-D_XBT_WIN32 ${INCLUDES}") - endif(WIN32) + if(WIN32) + if(__VISUALC__) + set(makecontext_CPPFLAGS "/DTEST_makecontext") + set(makecontext_CPPFLAGS_2 "/D_XBT_WIN32 /I${PROJECT_DIRECTORY}/include/xbt /I${PROJECT_DIRECTORY}/src/xbt") + 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") + endif(__GNUC__) + endif(WIN32) try_run(RUN_makecontext_VAR COMPILE_makecontext_VAR ${PROJECT_DIRECTORY} @@ -477,7 +512,6 @@ 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(HAVE_MAKECONTEXT OR WIN32) #-------------------------------------------------------------------------------------------------- @@ -527,8 +561,8 @@ set(diff_va "va_copy((d),(s))" "__builtin_va_copy((d),(s))" "do { (d) = (s)\; } while (0)" "do { *(d) = *(s)\; } while (0)" -"memcpy((void *)&(d), (void *)&(s)), sizeof((s))" -"memcpy((void *)(d), (void *)(s)), sizeof(*(s))" +"memcpy((void *)&(d), (void *)&(s), sizeof(s))" +"memcpy((void *)(d), (void *)(s), sizeof(*(s)))" ) foreach(fct ${diff_va}) @@ -598,15 +632,15 @@ foreach(fct ${diff_va}) set(__VA_COPY_USE_ASP "do { *(d) = *(s); } while (0)") endif(${fctbis} STREQUAL "do { *(d) = *(s) } while (0)") - if(${fctbis} STREQUAL "memcpy((void *)&(d), (void *)&(s)), sizeof((s))") + if(${fctbis} STREQUAL "memcpy((void *)&(d), (void *)&(s), sizeof(s))") set(ac_cv_va_copy "CPS") - set(__VA_COPY_USE_CPS "memcpy((void *)&(d), (void *)&(s)), sizeof((s))") - endif(${fctbis} STREQUAL "memcpy((void *)&(d), (void *)&(s)), sizeof((s))") + set(__VA_COPY_USE_CPS "memcpy((void *)&(d), (void *)&(s), sizeof(s))") + endif(${fctbis} STREQUAL "memcpy((void *)&(d), (void *)&(s), sizeof(s))") - if(${fctbis} STREQUAL "memcpy((void *)(d), (void *)(s)), sizeof(*(s))") + if(${fctbis} STREQUAL "memcpy((void *)(d), (void *)(s), sizeof(*(s)))") set(ac_cv_va_copy "CPP") - set(__VA_COPY_USE_CPP "memcpy((void *)(d), (void *)(s)), sizeof(*(s))") - endif(${fctbis} STREQUAL "memcpy((void *)(d), (void *)(s)), sizeof(*(s))") + set(__VA_COPY_USE_CPP "memcpy((void *)(d), (void *)(s), sizeof(*(s)))") + endif(${fctbis} STREQUAL "memcpy((void *)(d), (void *)(s), sizeof(*(s)))") if(NOT STATUS_OK) set(__VA_COPY_USE "__VA_COPY_USE_${ac_cv_va_copy}(d, s)") @@ -618,22 +652,27 @@ foreach(fct ${diff_va}) endforeach(fct ${diff_va}) #-------------------------------------------------------------------------------------------------- -### Try execut getline command -try_run(RUN_RESULT_VAR COMPILE_RESULT_VAR +### check for getline +try_compile(COMPILE_RESULT_VAR ${PROJECT_DIRECTORY} ${PROJECT_DIRECTORY}/buildtools/Cmake/test_prog/prog_getline.c - OUTPUT_VARIABLE GETLINE_OUTPUT ) if(NOT COMPILE_RESULT_VAR) SET(need_getline "#define SIMGRID_NEED_GETLINE 1") +SET(SIMGRID_NEED_GETLINE 1) else(NOT COMPILE_RESULT_VAR) SET(need_getline "") +SET(SIMGRID_NEED_GETLINE 0) endif(NOT COMPILE_RESULT_VAR) ### check for a working snprintf -if(HAVE_SNPRINTF AND HAVE_VSNPRINTF) - +if(HAVE_SNPRINTF AND HAVE_VSNPRINTF OR WIN32) + if(WIN32) + #set(HAVE_SNPRINTF 1) + #set(HAVE_VSNPRINTF 1) + endif(WIN32) + try_run(RUN_SNPRINTF_FUNC_VAR COMPILE_SNPRINTF_FUNC_VAR ${PROJECT_DIRECTORY} ${PROJECT_DIRECTORY}/buildtools/Cmake/test_prog/prog_snprintf.c @@ -656,19 +695,23 @@ 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) - SET(need_asprintf "") + SET(simgrid_need_asprintf "") + SET(NEED_ASPRINTF 0) else(HAVE_ASPRINTF) - SET(need_asprintf "#define SIMGRID_NEED_ASPRINTF 1") + SET(simgrid_need_asprintf "#define SIMGRID_NEED_ASPRINTF 1") + SET(NEED_ASPRINTF 1) endif(HAVE_ASPRINTF) if(HAVE_VASPRINTF) - SET(need_vasprintf "") + SET(simgrid_need_vasprintf "") + SET(NEED_VASPRINTF 0) else(HAVE_VASPRINTF) - SET(need_vasprintf "#define SIMGRID_NEED_VASPRINTF 1") + SET(simgrid_need_vasprintf "#define SIMGRID_NEED_VASPRINTF 1") + SET(NEED_VASPRINTF 1) endif(HAVE_VASPRINTF) ### check for addr2line @@ -697,9 +740,13 @@ set(includedir ${prefix}/include) set(top_builddir ${PROJECT_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_path}/lib:$LD_LIBRARY_PATH") configure_file(${PROJECT_DIRECTORY}/src/smpi/smpicc.in ${CMAKE_CURRENT_BINARY_DIR}/bin/smpicc @ONLY) 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)