X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/f93e9052e11177dda0653fffd4c3ead9a1dfc03b..cc3fbc08e8b448f5b820a2e5719f2029dcb23f89:/buildtools/Cmake/src/CMakeCompleteInFiles.txt diff --git a/buildtools/Cmake/src/CMakeCompleteInFiles.txt b/buildtools/Cmake/src/CMakeCompleteInFiles.txt index 4778c66b67..12e13ed3a4 100644 --- a/buildtools/Cmake/src/CMakeCompleteInFiles.txt +++ b/buildtools/Cmake/src/CMakeCompleteInFiles.txt @@ -3,9 +3,6 @@ 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) @@ -50,18 +47,106 @@ 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 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(LUA_LIB_PATH_2 + NAMES lua-${LUA_MAJOR_VERSION}.${LUA_MINOR_VERSION} + PATHS /usr + ) + 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) + + 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") - string(REGEX REPLACE "libruby.*" "" LIB_RUBY_PATH "${RUBY_LIBRARY}") - string(REPLACE "${LIB_RUBY_PATH}lib" "" LIB_RUBY_VERSION "${RUBY_LIBRARY}") - string(REGEX REPLACE "[.].[a-z]$" "" LIB_RUBY_VERSION "${LIB_RUBY_VERSION}") - SET(CMAKE_EXE_LINKER_FLAGS "-L${LIB_RUBY_PATH}") + 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) @@ -83,15 +168,10 @@ if(enable_ruby) endif(enable_ruby) -if(enable_tracing) - SET(HAVE_TRACING 1) -endif(enable_tracing) - #-------------------------------------------------------------------------------------------------- ### Initialize of CONTEXT JAVA -if(NOT enable_java) - SET(HAVE_JAVA 0) -else(NOT enable_java) + +if(enable_java) include(FindJava) include(FindJNI) if(JAVA_INCLUDE_PATH) @@ -106,7 +186,7 @@ else(NOT enable_java) 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(NOT enable_java) +endif(enable_java) #-------------------------------------------------------------------------------------------------- ### Initialize of CONTEXT GTNETS @@ -129,9 +209,9 @@ endif(NOT enable_gtnets) ### Initialize of CONTEXT THREADS if(pthread) -set(pthread 1) + set(pthread 1) elseif(pthread) -set(pthread 0) + set(pthread 0) endif(pthread) if(pthread) @@ -180,13 +260,18 @@ 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_BINARY_DIR}/conftestval" mcsc) -STRING(REPLACE "\n" "" mcsc ${mcsc}) -if(mcsc) - set(mcsc "yes") -elseif(mcsc) + +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) +endif(EXISTS "${simgrid_BINARY_DIR}/conftestval") if(mcsc MATCHES "no" AND pthread) if(HAVE_WINDOWS_H) @@ -251,80 +336,6 @@ 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(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(LUA_LIB_PATH_2 - NAMES lua-${LUA_MAJOR_VERSION}.${LUA_MINOR_VERSION} - PATHS /usr - ) - 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) - - 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) - ############### ## SVN version check ## @@ -336,7 +347,8 @@ 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}) @@ -466,7 +478,7 @@ if(HAVE_MAKECONTEXT) COMPILE_DEFINITIONS "${makecontext_CPPFLAGS} ${makecontext_CPPFLAGS_2}" ) - file(READ ${Project_BINARY_DIR}/conftestval MAKECONTEXT_ADDR_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}") @@ -485,7 +497,7 @@ endif(HAVE_MAKECONTEXT) ${PROJECT_DIRECTORY} ${PROJECT_DIRECTORY}/buildtools/Cmake/prog_test/prog_stackgrowth.c ) -file(READ "${Project_BINARY_DIR}/conftestval" stack) +file(READ "${simgrid_BINARY_DIR}/conftestval" stack) if(stack MATCHES "down") set(PTH_STACKGROWTH "-1") endif(stack MATCHES "down") @@ -679,14 +691,14 @@ endif(ADDR2LINE) ### 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/tracing_config.h.in" "${PROJECT_DIRECTORY}/buildtools/Cmake/src/tmp_tracing_config.h.in" @ONLY IMMEDIATE) -configure_file("${PROJECT_DIRECTORY}/buildtools/Cmake/src/tmp_tracing_config.h.in" "${PROJECT_DIRECTORY}/include/instr/tracing_config.h" @ONLY IMMEDIATE) +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) @@ -700,8 +712,8 @@ 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)