X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/e67f5a9a4b03ef81a4be31005fe8bde1968ec168..cc3fbc08e8b448f5b820a2e5719f2029dcb23f89:/buildtools/Cmake/src/CMakeCompleteInFiles.txt diff --git a/buildtools/Cmake/src/CMakeCompleteInFiles.txt b/buildtools/Cmake/src/CMakeCompleteInFiles.txt index d78ea8ce83..12e13ed3a4 100644 --- a/buildtools/Cmake/src/CMakeCompleteInFiles.txt +++ b/buildtools/Cmake/src/CMakeCompleteInFiles.txt @@ -3,46 +3,175 @@ include(CheckIncludeFile) include(CheckIncludeFiles) include(CheckLibraryExists) -find_program(SET_MAKE NAMES make) -find_program(CAT_EXE NAMES cat) +# 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_INCLUDE_FILES("time.h;sys/time.h" TIME_WITH_SYS_TIME) +CHECK_INCLUDE_FILES("stdlib.h;stdarg.h;string.h;float.h" STDC_HEADERS) +CHECK_INCLUDE_FILE(pthread.h HAVE_PTHREAD_H) +CHECK_INCLUDE_FILE(valgrind/valgrind.h HAVE_VALGRIND_VALGRIND_H) +CHECK_INCLUDE_FILE(socket.h HAVE_SOCKET_H) +CHECK_INCLUDE_FILE(sys/socket.h HAVE_SYS_SOCKET_H) +CHECK_INCLUDE_FILE(stat.h HAVE_STAT_H) +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(errno.h HAVE_ERRNO_H) +CHECK_INCLUDE_FILE(unistd.h HAVE_UNISTD_H) +CHECK_INCLUDE_FILE(execinfo.h HAVE_EXECINFO_H) +CHECK_INCLUDE_FILE(signal.h HAVE_SIGNAL_H) +CHECK_INCLUDE_FILE(sys/time.h HAVE_SYS_TIME_H) +CHECK_INCLUDE_FILE(time.h HAVE_TIME_H) +CHECK_INCLUDE_FILE(dlfcn.h HAVE_DLFCN_H) +CHECK_INCLUDE_FILE(inttypes.h HAVE_INTTYPES_H) +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_FUNCTION_EXISTS(gettimeofday HAVE_GETTIMEOFDAY) +CHECK_FUNCTION_EXISTS(usleep HAVE_USLEEP) +CHECK_FUNCTION_EXISTS(getdtablesize HAVE_GETDTABLESIZE) +CHECK_FUNCTION_EXISTS(sysconf HAVE_SYSCONF) +CHECK_FUNCTION_EXISTS(readv HAVE_READV) +CHECK_FUNCTION_EXISTS(popen HAVE_POPEN) +CHECK_FUNCTION_EXISTS(signal HAVE_SIGNAL) +CHECK_FUNCTION_EXISTS(snprintf HAVE_SNPRINTF) +CHECK_FUNCTION_EXISTS(vsnprintf HAVE_VSNPRINTF) +CHECK_FUNCTION_EXISTS(asprintf HAVE_ASPRINTF) +CHECK_FUNCTION_EXISTS(vasprintf HAVE_VASPRINTF) +CHECK_FUNCTION_EXISTS(makecontext HAVE_MAKECONTEXT) +CHECK_FUNCTION_EXISTS(mmap HAVE_MMAP) set(CONTEXT_UCONTEXT 0) SET(CONTEXT_THREADS 0) -SET(HAVE_RUBY_H 0) -set(libruby "ruby1.8") -if(NOT disable_ruby) - include(FindRuby) - set(OKITOKI no) - foreach(path ${RUBY_INCLUDE_PATH}) - if(NOT OKITOKI) - set(RUBY_INCLUDE_PATH ${path}) - set(OKITOKI yes) - endif(NOT OKITOKI) - endforeach(path ${RUBY_INCLUDE_PATH}) - if(RUBY_INCLUDE_PATH) - find_library(RUBY_LIB_PATH_1 - NAMES ruby1.8 - PATHS ${RUBY_INCLUDE_PATH} +SET(HAVE_RUBY 0) +set(HAVE_LUA 0) +SET(HAVE_JAVA 0) +SET(HAVE_TRACING 0) + +if(enable_tracing) + SET(HAVE_TRACING 1) +endif(enable_tracing) + +if(enable_model-checking) + SET(MMALLOC_WANT_OVERIDE_LEGACY 1) +endif(enable_model-checking) + +if(enable_lua) + exec_program("lua -v" OUTPUT_VARIABLE LUA_VERSION) + string(REGEX MATCH "[0-9].[0-9].[0-9]" LUA_VERSION "${LUA_VERSION}") + string(REGEX MATCH "^[0-9]" LUA_MAJOR_VERSION "${LUA_VERSION}") + string(REPLACE "${LUA_MAJOR_VERSION}." "" LUA_VERSION "${LUA_VERSION}") + string(REGEX MATCH "^[0-9]" LUA_MINOR_VERSION "${LUA_VERSION}") + string(REPLACE "${LUA_MINOR_VERSION}." "" LUA_PATCH_VERSION "${LUA_VERSION}") + + if(LUA_MAJOR_VERSION MATCHES "5" AND LUA_MINOR_VERSION MATCHES "1") + + find_path(HAVE_LUA5_1_LUALIB_H + NAMES lualib.h + PATHS "/sw/include/" "/usr/include/lua${LUA_MAJOR_VERSION}.${LUA_MINOR_VERSION}/" + ) + find_path(HAVE_LUA5_1_LAUXLIB_H + NAMES lauxlib.h + PATHS "/sw/include/" "/usr/include/lua${LUA_MAJOR_VERSION}.${LUA_MINOR_VERSION}/" + ) + find_library(LUA_LIB_PATH_1 + NAMES lua${LUA_MAJOR_VERSION}.${LUA_MINOR_VERSION} + PATHS /usr ) - find_library(RUBY_LIB_PATH_2 - NAMES ruby.1.8 - PATHS ${RUBY_INCLUDE_PATH} + find_library(LUA_LIB_PATH_2 + NAMES lua-${LUA_MAJOR_VERSION}.${LUA_MINOR_VERSION} + PATHS /usr ) - if(RUBY_LIB_PATH_2) - set(libruby "ruby.1.8") - endif(RUBY_LIB_PATH_2) + find_library(LUA_LIB_PATH_3 + NAMES lua.${LUA_MAJOR_VERSION}.${LUA_MINOR_VERSION}.${LUA_PATCH_VERSION} + PATHS /sw + ) + + if(HAVE_LUA5_1_LUALIB_H AND HAVE_LUA5_1_LAUXLIB_H) + set(HAVE_LUA 1) + SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}-I${HAVE_LUA5_1_LUALIB_H} ") + + if(NOT HAVE_LUA5_1_LUALIB_H STREQUAL HAVE_LUA5_1_LAUXLIB_H) + SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}-I${HAVE_LUA5_1_LAUXLIB_H} ") + #SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}-I${HAVE_LUA5_1_LAUXLIB_H} ") + endif(NOT HAVE_LUA5_1_LUALIB_H STREQUAL HAVE_LUA5_1_LAUXLIB_H) + endif(HAVE_LUA5_1_LUALIB_H AND HAVE_LUA5_1_LAUXLIB_H) + + if(LUA_LIB_PATH_1) + set(liblua lua${LUA_MAJOR_VERSION}.${LUA_MINOR_VERSION}) + set(lua_lib_path_to_use ${LUA_LIB_PATH_1}) + endif(LUA_LIB_PATH_1) + + if(LUA_LIB_PATH_2) + set(liblua lua-${LUA_MAJOR_VERSION}.${LUA_MINOR_VERSION}) + set(lua_lib_path_to_use ${LUA_LIB_PATH_2}) + endif(LUA_LIB_PATH_2) + + if(LUA_LIB_PATH_3) + set(liblua lua.${LUA_MAJOR_VERSION}.${LUA_MINOR_VERSION}.${LUA_PATCH_VERSION}) + set(lua_lib_path_to_use ${LUA_LIB_PATH_3}) + endif(LUA_LIB_PATH_3) + + if(NOT LUA_LIB_PATH_1 AND NOT LUA_LIB_PATH_2 AND NOT LUA_LIB_PATH_3) + set(HAVE_LUA 0) + else(NOT LUA_LIB_PATH_1 AND NOT LUA_LIB_PATH_2 AND NOT LUA_LIB_PATH_3) + string(REGEX REPLACE "liblua.*" "" lua_lib_path_to_use ${lua_lib_path_to_use}) + string(REGEX MATCH "-L${lua_lib_path_to_use}" operation "${CMAKE_EXE_LINKER_FLAGS}") + if(NOT operation) + SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}-L${lua_lib_path_to_use} ") + endif(NOT operation) + endif(NOT LUA_LIB_PATH_1 AND NOT LUA_LIB_PATH_2 AND NOT LUA_LIB_PATH_3) - SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -I${RUBY_INCLUDE_PATH} -fPIC ") - ADD_DEFINITIONS("-I${PROJECT_DIRECTORY}/src/bindings/ruby -I${PROJECT_DIRECTORY}/src/simix") - SET(HAVE_RUBY_H 1) - endif(RUBY_INCLUDE_PATH) -endif(NOT disable_ruby) + else(LUA_MAJOR_VERSION MATCHES "5" AND LUA_MINOR_VERSION MATCHES "1") + message("Lua binding need version 5.1.x actually version ${LUA_MAJOR_VERSION}.${LUA_MINOR_VERSION}.x") + endif(LUA_MAJOR_VERSION MATCHES "5" AND LUA_MINOR_VERSION MATCHES "1") + +endif(enable_lua) + +if(enable_ruby) + include(FindRuby) + if(RUBY_LIBRARY) + if(RUBY_VERSION_MAJOR MATCHES "1" AND RUBY_VERSION_MINOR MATCHES "8") + set(LIB_RUBY_VERSION "${RUBY_VERSION_MAJOR}.${RUBY_VERSION_MINOR}.${RUBY_VERSION_PATCH}") + string(REGEX MATCH "ruby.*[0-9]" RUBY_LIBRARY_NAME ${RUBY_LIBRARY}) + if(NOT RUBY_LIBRARY_NAME) + 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) + SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}-I${RUBY_INCLUDE_DIR} ") #path to ruby.h + endif(NOT operation) + ADD_DEFINITIONS("-I${PROJECT_DIRECTORY}/src/bindings/ruby -I${PROJECT_DIRECTORY}/src/simix") + SET(HAVE_RUBY 1) + else(RUBY_VERSION_MAJOR MATCHES "1" AND RUBY_VERSION_MINOR MATCHES "8") + message("Ruby binding need version 1.8.x actually version ${RUBY_VERSION_MAJOR}.${RUBY_VERSION_MINOR}.x") + SET(HAVE_RUBY 0) + endif(RUBY_VERSION_MAJOR MATCHES "1" AND RUBY_VERSION_MINOR MATCHES "8") + else(RUBY_LIBRARY) + SET(HAVE_RUBY 0) + endif(RUBY_LIBRARY) + + if(NOT RUBY_EXECUTABLE) + message("Take care : you don't have ruby executable so you can compile and build examples but can't execute them!!!") + endif(NOT RUBY_EXECUTABLE) + +endif(enable_ruby) #-------------------------------------------------------------------------------------------------- ### Initialize of CONTEXT JAVA -if(disable_java) - SET(HAVE_JAVA 0) -else(disable_java) + +if(enable_java) include(FindJava) include(FindJNI) if(JAVA_INCLUDE_PATH) @@ -50,48 +179,44 @@ else(disable_java) endif(JAVA_INCLUDE_PATH) if(JAVA_COMPILE AND JAVA_INCLUDE_PATH AND JAVA_INCLUDE_PATH2) SET(HAVE_JAVA 1) - SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -I${JAVA_INCLUDE_PATH}") + SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}-I${JAVA_INCLUDE_PATH} ") if(NOT JAVA_INCLUDE_PATH STREQUAL JAVA_INCLUDE_PATH2) - SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -I${JAVA_INCLUDE_PATH2}") + SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}-I${JAVA_INCLUDE_PATH2} ") endif(NOT JAVA_INCLUDE_PATH STREQUAL JAVA_INCLUDE_PATH2) else(JAVA_COMPILE AND JAVA_INCLUDE_PATH AND JAVA_INCLUDE_PATH2) SET(HAVE_JAVA 0) endif(JAVA_COMPILE AND JAVA_INCLUDE_PATH AND JAVA_INCLUDE_PATH2) -endif(disable_java) +endif(enable_java) #-------------------------------------------------------------------------------------------------- ### Initialize of CONTEXT GTNETS -if(disable_gtnets) +if(NOT enable_gtnets) SET(HAVE_GTNETS 0) -else(disable_gtnets) - SET(BUILDNAME "GTNETS" CACHE TYPE INTERNAL FORCE) +else(NOT enable_gtnets) 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) if(COMPILE_GTNETS_VAR) SET(HAVE_GTNETS 0) - message("GTnetS doesn't works : set -Ddisable_gtnets=on") else(COMPILE_GTNETS_VAR) SET(HAVE_GTNETS 1) - SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${GTNETS_LDFLAGS} ${GTNETS_CPPFLAGS} ") - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${GTNETS_LDFLAGS} ${GTNETS_CPPFLAGS} ") + 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(disable_gtnets) +endif(NOT enable_gtnets) #-------------------------------------------------------------------------------------------------- ### Initialize of CONTEXT THREADS -CHECK_INCLUDE_FILE(pthread.h HAVE_PTHREAD_H) -CHECK_LIBRARY_EXISTS(pthread pthread_create NO_DEFAULT_PATHS pthread) if(pthread) -set(pthread "yes") + set(pthread 1) elseif(pthread) -set(pthread "no") + set(pthread 0) endif(pthread) -if(pthread MATCHES "yes") +if(pthread) ### HAVE_SEM_INIT - CHECK_LIBRARY_EXISTS(pthread sem_init NO_DEFAULT_PATHS HAVE_SEM_INIT_LIB) + 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) if(HAVE_SEM_INIT_run) @@ -102,7 +227,7 @@ if(pthread MATCHES "yes") endif(HAVE_SEM_INIT_LIB) ### HAVE_SEM_TIMEDWAIT - CHECK_LIBRARY_EXISTS(pthread sem_timedwait NO_DEFAULT_PATHS HAVE_SEM_TIMEDWAIT_LIB) + 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) if(HAVE_SEM_TIMEDWAIT_run) @@ -113,7 +238,7 @@ if(pthread MATCHES "yes") endif(HAVE_SEM_TIMEDWAIT_LIB) ### HAVE_MUTEX_TIMEDLOCK - CHECK_LIBRARY_EXISTS(pthread pthread_mutex_timedlock NO_DEFAULT_PATHS HAVE_MUTEX_TIMEDLOCK_LIB) + 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) if(HAVE_MUTEX_TIMEDLOCK_run) @@ -122,7 +247,7 @@ if(pthread MATCHES "yes") set(HAVE_MUTEX_TIMEDLOCK 1) endif(HAVE_MUTEX_TIMEDLOCK_run) endif(HAVE_MUTEX_TIMEDLOCK_LIB) -endif(pthread MATCHES "yes") +endif(pthread) # AC_CHECK_MCSC(mcsc=yes, mcsc=no) set(mcsc_flags "") @@ -135,21 +260,27 @@ try_run(RUN_mcsc_VAR COMPILE_mcsc_VAR ${PROJECT_DIRECTORY}/buildtools/Cmake/prog_test/prog_AC_CHECK_MCSC.c COMPILE_DEFINITIONS "${mcsc_flags}" ) -file(READ "${PROJECT_DIRECTORY}/conftestval" mcsc) -if(mcsc MATCHES "yes") - set(mcsc "yes") -elseif(mcsc MATCHES "yes") + +if(EXISTS "${simgrid_BINARY_DIR}/conftestval") + 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") set(mcsc "no") -endif(mcsc MATCHES "yes") -CHECK_INCLUDE_FILE(windows.h HAVE_WINDOWS_H) -if(mcsc MATCHES "no" AND pthread MATCHES "no") +endif(EXISTS "${simgrid_BINARY_DIR}/conftestval") + +if(mcsc MATCHES "no" AND pthread) if(HAVE_WINDOWS_H) set(windows_context "yes") set(IS_WINDOWS 1) elseif(HAVE_WINDOWS_H) message(FATAL_ERROR "no appropriate backend found") endif(HAVE_WINDOWS_H) -endif(mcsc MATCHES "no" AND pthread MATCHES "no") +endif(mcsc MATCHES "no" AND pthread) if(with_context MATCHES "ucontext" AND mcsc MATCHES "no") message(FATAL_ERROR "-Dwith-context=ucontext specified but ucontext unusable.") @@ -176,10 +307,9 @@ endif(with_context MATCHES "auto") if(with_context MATCHES "ucontext") set(with_context_ok 1) - if(mcsc MATCHES "yes") + if(mcsc) set(CONTEXT_UCONTEXT 1) - CHECK_INCLUDE_FILE(valgrind/valgrind.h HAVE_VALGRIND_VALGRIND_H) - else(mcsc MATCHES "yes") + else(mcsc) if(windows_context MATCHES "yes") set(with_context "windows") message("with_context ucontext change to windows") @@ -187,14 +317,14 @@ if(with_context MATCHES "ucontext") set(with_context "pthread") message("with_context ucontext change to pthread") endif(windows_context MATCHES "yes") - endif(mcsc MATCHES "yes") + endif(mcsc) endif(with_context MATCHES "ucontext") if(with_context MATCHES "pthread") set(with_context_ok 1) - if(pthread MATCHES "no") + if(NOT pthread) message(FATAL_ERROR "Cannot find pthreads (try -Dwith_context=ucontext if you haven't already tried).") - endif(pthread MATCHES "no") + endif(NOT pthread) SET(CONTEXT_THREADS 1) endif(with_context MATCHES "pthread") @@ -206,75 +336,35 @@ if(NOT with_context_ok) message(FATAL_ERROR "-Dwith-context must be either ucontext or pthread") endif(NOT with_context_ok) -set(HAVE_LUA 0) - -if(NOT disable_lua) - find_path(HAVE_LUA5_1_LUALIB_H - NAMES lualib.h - PATHS "/sw/include/" "/usr/include/lua5.1/" - ) - find_path(HAVE_LUA5_1_LAUXLIB_H - NAMES lauxlib.h - PATHS "/sw/include/" "/usr/include/lua5.1/" - ) - find_library(LUA_LIB_PATH_1 - NAMES lua5.1 - PATHS /usr - ) - find_library(LUA_LIB_PATH_2 - NAMES lua-5.1 - PATHS /usr - ) - find_library(LUA_LIB_PATH_3 - NAMES lua.5.1.1 - PATHS /sw - ) - - if(HAVE_LUA5_1_LUALIB_H AND HAVE_LUA5_1_LAUXLIB_H) - set(HAVE_LUA 1) - SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -I${HAVE_LUA5_1_LUALIB_H} ") - #SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -I${HAVE_LUA5_1_LUALIB_H} ") - - if(NOT HAVE_LUA5_1_LUALIB_H STREQUAL HAVE_LUA5_1_LAUXLIB_H) - SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}-I${HAVE_LUA5_1_LAUXLIB_H} ") - #SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}-I${HAVE_LUA5_1_LAUXLIB_H} ") - endif(NOT HAVE_LUA5_1_LUALIB_H STREQUAL HAVE_LUA5_1_LAUXLIB_H) - endif(HAVE_LUA5_1_LUALIB_H AND HAVE_LUA5_1_LAUXLIB_H) - - if(LUA_LIB_PATH_1) - set(liblua lua5.1) - endif(LUA_LIB_PATH_1) - - if(LUA_LIB_PATH_2) - set(liblua lua-5.1) - endif(LUA_LIB_PATH_2) - - if(LUA_LIB_PATH_3) - set(liblua lua.5.1.1) - endif(LUA_LIB_PATH_3) - - if(NOT LUA_LIB_PATH_1 AND NOT LUA_LIB_PATH_2 AND NOT LUA_LIB_PATH_3) - set(HAVE_LUA 0) - endif(NOT LUA_LIB_PATH_1 AND NOT LUA_LIB_PATH_2 AND NOT LUA_LIB_PATH_3) - -endif(NOT disable_lua) - ############### ## SVN version check ## if(IS_DIRECTORY ${PROJECT_DIRECTORY}/.svn) find_file(SVN ".svn" ${PROJECT_DIRECTORY}) exec_program("svnversion ${PROJECT_DIRECTORY}" OUTPUT_VARIABLE "SVN_VERSION") + message("SVN_VERSION : ${SVN_VERSION}") 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 | sed 's| .*||'" OUTPUT_VARIABLE "GIT_VERSION") + 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(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_DATE : ${GIT_DATE}") + message("GIT_VERSION : ${GIT_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}) + message("GIT_SVN_VERSION : ${SVN_VERSION}") endif(IS_DIRECTORY ${PROJECT_DIRECTORY}/.git) ################################### @@ -375,7 +465,6 @@ SET(SIZEOF_MAX ${var3}) #-------------------------------------------------------------------------------------------------- -CHECK_FUNCTION_EXISTS(makecontext HAVE_MAKECONTEXT) set(makecontext_CPPFLAGS_2 "") if(HAVE_MAKECONTEXT) set(makecontext_CPPFLAGS "-DTEST_makecontext") @@ -389,9 +478,12 @@ if(HAVE_MAKECONTEXT) COMPILE_DEFINITIONS "${makecontext_CPPFLAGS} ${makecontext_CPPFLAGS_2}" ) - - exec_program("${SED_EXE}" ARGS "-e 's;,.*$;;' ${PROJECT_DIRECTORY}/conftestval" OUTPUT_VARIABLE "makecontext_addr") - exec_program("${SED_EXE}" ARGS "-e 's;^.*,;;' ${PROJECT_DIRECTORY}/conftestval" OUTPUT_VARIABLE "makecontext_size") + 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}") + string(REGEX MATCH ;,.*$; MAKECONTEXT_SIZE "${MAKECONTEXT_ADDR_SIZE}") + string(REPLACE "," "" makecontext_addr "${MAKECONTEXT_ADDR}") + 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})") @@ -405,7 +497,7 @@ endif(HAVE_MAKECONTEXT) ${PROJECT_DIRECTORY} ${PROJECT_DIRECTORY}/buildtools/Cmake/prog_test/prog_stackgrowth.c ) -file(READ "${PROJECT_DIRECTORY}/conftestval" stack) +file(READ "${simgrid_BINARY_DIR}/conftestval" stack) if(stack MATCHES "down") set(PTH_STACKGROWTH "-1") endif(stack MATCHES "down") @@ -536,28 +628,6 @@ foreach(fct ${diff_va}) endif(RUN_VA_NULL_VAR MATCHES "FAILED_TO_RUN") endforeach(fct ${diff_va}) -# Checks for header files. - -CHECK_INCLUDE_FILES("stdlib.h;stdarg.h;string.h;float.h" STDC_HEADERS) -CHECK_INCLUDE_FILES("time.h;sys/time.h" TIME_WITH_SYS_TIME) -CHECK_INCLUDE_FILE(sys/socket.h HAVE_SYS_SOCKET_H) -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(sys/time.h HAVE_SYS_TIME_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) -CHECK_INCLUDE_FILE(signal.h HAVE_SIGNAL_H) -CHECK_FUNCTION_EXISTS(gettimeofday HAVE_GETTIMEOFDAY) -CHECK_FUNCTION_EXISTS(usleep HAVE_USLEEP) -CHECK_FUNCTION_EXISTS(getdtablesize HAVE_GETDTABLESIZE) -CHECK_FUNCTION_EXISTS(sysconf HAVE_SYSCONF) -CHECK_FUNCTION_EXISTS(readv HAVE_READV) -CHECK_FUNCTION_EXISTS(popen HAVE_POPEN) -CHECK_FUNCTION_EXISTS(signal HAVE_SIGNAL) - #-------------------------------------------------------------------------------------------------- ### Try execut getline command try_run(RUN_RESULT_VAR COMPILE_RESULT_VAR @@ -573,8 +643,6 @@ SET(need_getline "") endif(NOT COMPILE_RESULT_VAR) ### check for a working snprintf -CHECK_FUNCTION_EXISTS(snprintf HAVE_SNPRINTF) -CHECK_FUNCTION_EXISTS(vsnprintf HAVE_VSNPRINTF) if(HAVE_SNPRINTF AND HAVE_VSNPRINTF) try_run(RUN_SNPRINTF_FUNC_VAR COMPILE_SNPRINTF_FUNC_VAR @@ -602,13 +670,12 @@ if(HAVE_SNPRINTF AND HAVE_VSNPRINTF) endif(HAVE_SNPRINTF AND HAVE_VSNPRINTF) ### check for asprintf function familly -CHECK_FUNCTION_EXISTS(asprintf HAVE_ASPRINTF) if(HAVE_ASPRINTF) SET(need_asprintf "") else(HAVE_ASPRINTF) SET(need_asprintf "#define SIMGRID_NEED_ASPRINTF 1") endif(HAVE_ASPRINTF) -CHECK_FUNCTION_EXISTS(vasprintf HAVE_VASPRINTF) + if(HAVE_VASPRINTF) SET(need_vasprintf "") else(HAVE_VASPRINTF) @@ -622,34 +689,31 @@ if(ADDR2LINE) set(ADDR2LINE "${ADDR2LINE}/addr2line") endif(ADDR2LINE) -### check for include files and fct -CHECK_INCLUDE_FILE(dlfcn.h HAVE_DLFCN_H) -CHECK_INCLUDE_FILE(inttypes.h HAVE_INTTYPES_H) -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) - ### File to create -configure_file(${PROJECT_DIRECTORY}/src/context_sysv_config.h.in ${PROJECT_DIRECTORY}/src/context_sysv_config.h) +configure_file(${PROJECT_DIRECTORY}/src/context_sysv_config.h.in ${CMAKE_CURRENT_BINARY_DIR}/src/context_sysv_config.h) SET( CMAKEDEFINE "#cmakedefine" ) -configure_file("${PROJECT_DIRECTORY}/buildtools/Cmake/src/c_gras_config.h.in" "${PROJECT_DIRECTORY}/buildtools/Cmake/src/tmp_gras_config.h.in" @ONLY IMMEDIATE) -configure_file("${PROJECT_DIRECTORY}/buildtools/Cmake/src/tmp_gras_config.h.in" "${PROJECT_DIRECTORY}/src/gras_config.h" @ONLY IMMEDIATE) -configure_file(${PROJECT_DIRECTORY}/include/simgrid_config.h.in ${PROJECT_DIRECTORY}/include/simgrid_config.h) +configure_file("${PROJECT_DIRECTORY}/buildtools/Cmake/src/c_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) +configure_file("${PROJECT_DIRECTORY}/buildtools/Cmake/src/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) + +set(top_srcdir "${PROJECT_DIRECTORY}") +set(srcdir "${PROJECT_DIRECTORY}/src") + set(exec_prefix ${prefix}) -set(top_srcdir ${PROJECT_DIRECTORY}) set(includedir ${prefix}/include) set(top_builddir ${PROJECT_DIRECTORY}) set(libdir ${exec_prefix}/lib) -configure_file(${PROJECT_DIRECTORY}/src/smpi/smpicc.in ${PROJECT_DIRECTORY}/src/smpi/smpicc @ONLY) -configure_file(${PROJECT_DIRECTORY}/src/smpi/smpirun.in ${PROJECT_DIRECTORY}/src/smpi/smpirun @ONLY) +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) -exec_program("chmod a=rwx ${PROJECT_DIRECTORY}/src/smpi/smpicc" OUTPUT_VARIABLE OKITOKI) -exec_program("chmod a=rwx ${PROJECT_DIRECTORY}/src/smpi/smpirun" OUTPUT_VARIABLE OKITOKI) +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)