X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/05bdf500677b6406e385802991fe48cb168859a6..9fa79033d8728e656feb09c6c08e570dc8c256c9:/buildtools/Cmake/CompleteInFiles.cmake diff --git a/buildtools/Cmake/CompleteInFiles.cmake b/buildtools/Cmake/CompleteInFiles.cmake index 314fc0c111..5c6e95a983 100644 --- a/buildtools/Cmake/CompleteInFiles.cmake +++ b/buildtools/Cmake/CompleteInFiles.cmake @@ -34,6 +34,7 @@ CHECK_INCLUDE_FILE(memory.h HAVE_MEMORY_H) 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_FUNCTION_EXISTS(gettimeofday HAVE_GETTIMEOFDAY) CHECK_FUNCTION_EXISTS(usleep HAVE_USLEEP) @@ -49,6 +50,11 @@ CHECK_FUNCTION_EXISTS(vasprintf HAVE_VASPRINTF) CHECK_FUNCTION_EXISTS(makecontext HAVE_MAKECONTEXT) CHECK_FUNCTION_EXISTS(mmap HAVE_MMAP) +if(WIN32) + set(HAVE_UCONTEXT_H 1) + set(HAVE_MAKECONTEXT 1) +endif(WIN32) + set(CONTEXT_UCONTEXT 0) SET(CONTEXT_THREADS 0) SET(HAVE_RUBY 0) @@ -60,9 +66,13 @@ if(enable_tracing) SET(HAVE_TRACING 1) endif(enable_tracing) -if(enable_model-checking) +if(enable_model-checking AND HAVE_MMAP) + SET(HAVE_MC 1) SET(MMALLOC_WANT_OVERIDE_LEGACY 1) -endif(enable_model-checking) +else(enable_model-checking AND HAVE_MMAP) + SET(HAVE_MC 0) + SET(MMALLOC_WANT_OVERIDE_LEGACY 0) +endif(enable_model-checking AND HAVE_MMAP) if(enable_lua) exec_program("lua -v" OUTPUT_VARIABLE LUA_VERSION) @@ -146,7 +156,7 @@ 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_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) @@ -190,12 +200,12 @@ endif(enable_java) #-------------------------------------------------------------------------------------------------- ### Initialize of CONTEXT GTNETS -if(NOT enable_gtnets) +if(NOT enable_gtnets OR enable_supernovae) SET(HAVE_GTNETS 0) -else(NOT enable_gtnets) +else(NOT enable_gtnets OR enable_supernovae) set(GTNETS_LDFLAGS "-L${gtnets_path}/lib") set(GTNETS_CPPFLAGS "-I${gtnets_path}/include/gtnets") - exec_program("${CMAKE_CXX_COMPILER} ${GTNETS_CPPFLAGS} -lgtnets ${GTNETS_LDFLAGS} ${PROJECT_DIRECTORY}/buildtools/Cmake/prog_test/prog_gtnets.cpp " OUTPUT_VARIABLE COMPILE_GTNETS_VAR) + exec_program("${CMAKE_CXX_COMPILER} ${GTNETS_CPPFLAGS} -lgtnets ${GTNETS_LDFLAGS} ${PROJECT_DIRECTORY}/buildtools/Cmake/test_prog/prog_gtnets.cpp " OUTPUT_VARIABLE COMPILE_GTNETS_VAR) if(COMPILE_GTNETS_VAR) SET(HAVE_GTNETS 0) else(COMPILE_GTNETS_VAR) @@ -203,7 +213,7 @@ else(NOT enable_gtnets) SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}${GTNETS_LDFLAGS} ${GTNETS_CPPFLAGS} ") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}${GTNETS_LDFLAGS} ${GTNETS_CPPFLAGS} ") endif(COMPILE_GTNETS_VAR) -endif(NOT enable_gtnets) +endif(NOT enable_gtnets OR enable_supernovae) #-------------------------------------------------------------------------------------------------- ### Initialize of CONTEXT THREADS @@ -218,7 +228,7 @@ if(pthread) ### HAVE_SEM_INIT if(HAVE_SEM_INIT_LIB) - exec_program("${CMAKE_C_COMPILER} -lpthread ${PROJECT_DIRECTORY}/buildtools/Cmake/prog_test/prog_sem_init.c" OUTPUT_VARIABLE HAVE_SEM_INIT_run) + exec_program("${CMAKE_C_COMPILER} -lpthread ${PROJECT_DIRECTORY}/buildtools/Cmake/test_prog/prog_sem_init.c" OUTPUT_VARIABLE HAVE_SEM_INIT_run) if(HAVE_SEM_INIT_run) set(HAVE_SEM_INIT 0) else(HAVE_SEM_INIT_run) @@ -229,7 +239,7 @@ if(pthread) ### HAVE_SEM_TIMEDWAIT if(HAVE_SEM_TIMEDWAIT_LIB) - exec_program("${CMAKE_C_COMPILER} -lpthread ${PROJECT_DIRECTORY}/buildtools/Cmake/prog_test/prog_sem_timedwait.c" OUTPUT_VARIABLE HAVE_SEM_TIMEDWAIT_run) + exec_program("${CMAKE_C_COMPILER} -lpthread ${PROJECT_DIRECTORY}/buildtools/Cmake/test_prog/prog_sem_timedwait.c" OUTPUT_VARIABLE HAVE_SEM_TIMEDWAIT_run) if(HAVE_SEM_TIMEDWAIT_run) set(HAVE_SEM_TIMEDWAIT 0) else(HAVE_SEM_TIMEDWAIT_run) @@ -240,7 +250,7 @@ if(pthread) ### HAVE_MUTEX_TIMEDLOCK if(HAVE_MUTEX_TIMEDLOCK_LIB) - exec_program("${CMAKE_C_COMPILER} -lpthread ${PROJECT_DIRECTORY}/buildtools/Cmake/prog_test/prog_mutex_timedlock.c" OUTPUT_VARIABLE HAVE_SEM_TIMEDWAIT_run) + exec_program("${CMAKE_C_COMPILER} -lpthread ${PROJECT_DIRECTORY}/buildtools/Cmake/test_prog/prog_mutex_timedlock.c" OUTPUT_VARIABLE HAVE_SEM_TIMEDWAIT_run) if(HAVE_MUTEX_TIMEDLOCK_run) set(HAVE_MUTEX_TIMEDLOCK 0) else(HAVE_MUTEX_TIMEDLOCK_run) @@ -257,7 +267,7 @@ endif(CMAKE_SYSTEM_NAME MATCHES "Darwin") try_run(RUN_mcsc_VAR COMPILE_mcsc_VAR ${PROJECT_DIRECTORY} - ${PROJECT_DIRECTORY}/buildtools/Cmake/prog_test/prog_AC_CHECK_MCSC.c + ${PROJECT_DIRECTORY}/buildtools/Cmake/test_prog/prog_AC_CHECK_MCSC.c COMPILE_DEFINITIONS "${mcsc_flags}" ) @@ -346,17 +356,16 @@ if(IS_DIRECTORY ${PROJECT_DIRECTORY}/.svn) endif(IS_DIRECTORY ${PROJECT_DIRECTORY}/.svn) if(IS_DIRECTORY ${PROJECT_DIRECTORY}/.git) - find_file(GIT ".git" ${PROJECT_DIRECTORY}) + exec_program("git --git-dir=${PROJECT_DIRECTORY}/.git log --oneline -1" OUTPUT_VARIABLE "GIT_VERSION") - string(REGEX REPLACE " .*" "" GIT_VERSION "${GIT_VERSION}") exec_program("git --git-dir=${PROJECT_DIRECTORY}/.git log -n 1 --format=%ai ." OUTPUT_VARIABLE "GIT_DATE") exec_program("git svn info" ${PROJECT_DIRECTORY} OUTPUT_VARIABLE "GIT_SVN_VERSION") + + string(REGEX REPLACE " .*" "" GIT_VERSION "${GIT_VERSION}") string(REPLACE "\n" ";" GIT_SVN_VERSION ${GIT_SVN_VERSION}) STRING(REPLACE " +0000" "" GIT_DATE ${GIT_DATE}) STRING(REPLACE " " "~" GIT_DATE ${GIT_DATE}) STRING(REPLACE ":" "-" GIT_DATE ${GIT_DATE}) - message("GIT_DATE : ${GIT_DATE}") - message("GIT_VERSION : ${GIT_VERSION}") foreach(line ${GIT_SVN_VERSION}) string(REGEX MATCH "^Revision:.*" line_good ${line}) if(line_good) @@ -364,7 +373,6 @@ if(IS_DIRECTORY ${PROJECT_DIRECTORY}/.git) set(SVN_VERSION ${line_good}) endif(line_good) endforeach(line ${GIT_SVN_VERSION}) - message("GIT_SVN_VERSION : ${SVN_VERSION}") endif(IS_DIRECTORY ${PROJECT_DIRECTORY}/.git) ################################### @@ -375,7 +383,7 @@ TEST_BIG_ENDIAN(BIGENDIAN) # Check architecture signature begin try_run(RUN_GRAS_VAR COMPILE_GRAS_VAR ${PROJECT_DIRECTORY} - ${PROJECT_DIRECTORY}/buildtools/Cmake/prog_test/prog_GRAS_ARCH.c + ${PROJECT_DIRECTORY}/buildtools/Cmake/test_prog/prog_GRAS_ARCH.c RUN_OUTPUT_VARIABLE var1 ) if(BIGENDIAN) @@ -447,7 +455,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} - ${PROJECT_DIRECTORY}/buildtools/Cmake/prog_test/prog_GRAS_CHECK_STRUCT_COMPACTION.c + ${PROJECT_DIRECTORY}/buildtools/Cmake/test_prog/prog_GRAS_CHECK_STRUCT_COMPACTION.c RUN_OUTPUT_VARIABLE var2 ) separate_arguments(var2) @@ -458,7 +466,7 @@ endforeach(var_tmp ${var2}) # Check for [SIZEOF_MAX] try_run(RUN_SM_VAR COMPILE_SM_VAR ${PROJECT_DIRECTORY} - ${PROJECT_DIRECTORY}/buildtools/Cmake/prog_test/prog_max_size.c + ${PROJECT_DIRECTORY}/buildtools/Cmake/test_prog/prog_max_size.c RUN_OUTPUT_VARIABLE var3 ) SET(SIZEOF_MAX ${var3}) @@ -466,18 +474,21 @@ SET(SIZEOF_MAX ${var3}) #-------------------------------------------------------------------------------------------------- set(makecontext_CPPFLAGS_2 "") -if(HAVE_MAKECONTEXT) +if(HAVE_MAKECONTEXT OR WIN32) set(makecontext_CPPFLAGS "-DTEST_makecontext") if(CMAKE_SYSTEM_NAME MATCHES "Darwin") set(makecontext_CPPFLAGS_2 "-DOSX") endif(CMAKE_SYSTEM_NAME MATCHES "Darwin") + + if(WIN32) + set(makecontext_CPPFLAGS_2 "-DWIN32 ${INCLUDES}") + endif(WIN32) try_run(RUN_makecontext_VAR COMPILE_makecontext_VAR ${PROJECT_DIRECTORY} - ${PROJECT_DIRECTORY}/buildtools/Cmake/prog_test/prog_stacksetup.c + ${PROJECT_DIRECTORY}/buildtools/Cmake/test_prog/prog_stacksetup.c COMPILE_DEFINITIONS "${makecontext_CPPFLAGS} ${makecontext_CPPFLAGS_2}" ) - file(READ ${simgrid_BINARY_DIR}/conftestval MAKECONTEXT_ADDR_SIZE) string(REPLACE "\n" "" MAKECONTEXT_ADDR_SIZE "${MAKECONTEXT_ADDR_SIZE}") string(REGEX MATCH ;^.*,;MAKECONTEXT_ADDR "${MAKECONTEXT_ADDR_SIZE}") @@ -487,7 +498,7 @@ if(HAVE_MAKECONTEXT) 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) +endif(HAVE_MAKECONTEXT OR WIN32) #-------------------------------------------------------------------------------------------------- @@ -495,7 +506,7 @@ endif(HAVE_MAKECONTEXT) try_run(RUN_makecontext_VAR COMPILE_makecontext_VAR ${PROJECT_DIRECTORY} - ${PROJECT_DIRECTORY}/buildtools/Cmake/prog_test/prog_stackgrowth.c + ${PROJECT_DIRECTORY}/buildtools/Cmake/test_prog/prog_stackgrowth.c ) file(READ "${simgrid_BINARY_DIR}/conftestval" stack) if(stack MATCHES "down") @@ -519,7 +530,7 @@ endif(stack MATCHES "up") #AC_PRINTF_NULL try_run(RUN_PRINTF_NULL_VAR COMPILE_PRINTF_NULL_VAR ${PROJECT_DIRECTORY} - ${PROJECT_DIRECTORY}/buildtools/Cmake/prog_test/prog_printf_null.c + ${PROJECT_DIRECTORY}/buildtools/Cmake/test_prog/prog_printf_null.c ) if(RUN_PRINTF_NULL_VAR MATCHES "FAILED_TO_RUN") @@ -541,7 +552,7 @@ set(diff_va "va_copy((d),(s))" ) foreach(fct ${diff_va}) - write_file("${PROJECT_DIRECTORY}/buildtools/Cmake/prog_test/prog_va_copy.c" "#include + write_file("${PROJECT_DIRECTORY}/buildtools/Cmake/test_prog/prog_va_copy.c" "#include #include #include #define DO_VA_COPY(d,s) ${fct} @@ -572,7 +583,7 @@ foreach(fct ${diff_va}) ) try_compile(COMPILE_VA_NULL_VAR ${PROJECT_DIRECTORY} - ${PROJECT_DIRECTORY}/buildtools/Cmake/prog_test/prog_va_copy.c + ${PROJECT_DIRECTORY}/buildtools/Cmake/test_prog/prog_va_copy.c ) if(COMPILE_VA_NULL_VAR) string(REGEX REPLACE "\;" "" fctbis ${fct}) @@ -618,7 +629,7 @@ foreach(fct ${diff_va}) 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}") + set(__VA_COPY_USE "__VA_COPY_USE_${ac_cv_va_copy}(d, s)") endif(NOT STATUS_OK) set(STATUS_OK "1") @@ -630,7 +641,7 @@ endforeach(fct ${diff_va}) ### Try execut getline command try_run(RUN_RESULT_VAR COMPILE_RESULT_VAR ${PROJECT_DIRECTORY} - ${PROJECT_DIRECTORY}/buildtools/Cmake/prog_test/prog_getline.c + ${PROJECT_DIRECTORY}/buildtools/Cmake/test_prog/prog_getline.c OUTPUT_VARIABLE GETLINE_OUTPUT ) @@ -645,7 +656,7 @@ if(HAVE_SNPRINTF AND HAVE_VSNPRINTF) try_run(RUN_SNPRINTF_FUNC_VAR COMPILE_SNPRINTF_FUNC_VAR ${PROJECT_DIRECTORY} - ${PROJECT_DIRECTORY}/buildtools/Cmake/prog_test/prog_snprintf.c + ${PROJECT_DIRECTORY}/buildtools/Cmake/test_prog/prog_snprintf.c ) if(CMAKE_CROSSCOMPILING) set(RUN_SNPRINTF_FUNC "cross") @@ -653,7 +664,7 @@ if(HAVE_SNPRINTF AND HAVE_VSNPRINTF) try_run(RUN_VSNPRINTF_FUNC_VAR COMPILE_VSNPRINTF_FUNC_VAR ${PROJECT_DIRECTORY} - ${PROJECT_DIRECTORY}/buildtools/Cmake/prog_test/prog_vsnprintf.c + ${PROJECT_DIRECTORY}/buildtools/Cmake/test_prog/prog_vsnprintf.c ) if(CMAKE_CROSSCOMPILING) set(RUN_VSNPRINTF_FUNC "cross") @@ -689,18 +700,14 @@ endif(ADDR2LINE) ### File to create -configure_file(${PROJECT_DIRECTORY}/src/context_sysv_config.h.in ${CMAKE_CURRENT_BINARY_DIR}/src/context_sysv_config.h) +configure_file("${PROJECT_DIRECTORY}/src/context_sysv_config.h.in" "${PROJECT_DIRECTORY}/src/context_sysv_config.h" @ONLY IMMEDIATE) SET( CMAKEDEFINE "#cmakedefine" ) -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}/src/simgrid_config.h" @ONLY IMMEDIATE) -configure_file("${PROJECT_DIRECTORY}/buildtools/Cmake/tracing_config.h.in" "${CMAKE_CURRENT_BINARY_DIR}/include/instr/tracing_config.h" @ONLY IMMEDIATE) -configure_file("${CMAKE_CURRENT_BINARY_DIR}/include/instr/tracing_config.h" "${CMAKE_CURRENT_BINARY_DIR}/include/instr/tracing_config.h" @ONLY IMMEDIATE) - -if(NOT prefix) - set(prefix /usr/local) -endif(NOT prefix) +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) set(top_srcdir "${PROJECT_DIRECTORY}") set(srcdir "${PROJECT_DIRECTORY}/src") @@ -709,6 +716,7 @@ set(exec_prefix ${prefix}) set(includedir ${prefix}/include) set(top_builddir ${PROJECT_DIRECTORY}) set(libdir ${exec_prefix}/lib) +set(CMAKE_LINKARGS "${CMAKE_CURRENT_BINARY_DIR}/lib") 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)