X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/3b6a0ff265d6c9f0bccd34bfe35ade8d0bc9b7de..e94ee29b340453abdded4e762ba023ed73db42a8:/buildtools/Cmake/src/CMakeCompleteInFiles.txt diff --git a/buildtools/Cmake/src/CMakeCompleteInFiles.txt b/buildtools/Cmake/src/CMakeCompleteInFiles.txt index e55e0ad16a..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,54 +47,131 @@ 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(libruby "ruby1.8") -if(enable_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} - ) - if(RUBY_LIB_PATH_1) - string(REGEX REPLACE "libruby.*" "" RUBY_LIB_PATH_1 ${RUBY_LIB_PATH_1}) - SET(CMAKE_EXE_LINKER_FLAGS "-L${RUBY_LIB_PATH_1}") - endif(RUBY_LIB_PATH_1) - find_library(RUBY_LIB_PATH_2 - NAMES ruby.1.8 - PATHS ${RUBY_INCLUDE_PATH} - ) - if(RUBY_LIB_PATH_2) - set(libruby "ruby.1.8") - string(REGEX REPLACE "libruby.*" "" RUBY_LIB_PATH_2 ${RUBY_LIB_PATH_2}) - SET(CMAKE_EXE_LINKER_FLAGS "-L${RUBY_LIB_PATH_2}") - endif(RUBY_LIB_PATH_2) - - 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 1) - endif(RUBY_INCLUDE_PATH) -endif(enable_ruby) +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") + 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(NOT enable_java) - SET(HAVE_JAVA 0) -else(NOT enable_java) + +if(enable_java) include(FindJava) include(FindJNI) if(JAVA_INCLUDE_PATH) @@ -112,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 @@ -135,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) @@ -186,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) @@ -257,69 +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) - 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} ") - - 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) - set(lua_lib_path_to_use ${LUA_LIB_PATH_1}) - endif(LUA_LIB_PATH_1) - - if(LUA_LIB_PATH_2) - set(liblua lua-5.1) - set(lua_lib_path_to_use ${LUA_LIB_PATH_2}) - endif(LUA_LIB_PATH_2) - - if(LUA_LIB_PATH_3) - set(liblua lua.5.1.1) - 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(COMPARE EQUAL "-L${lua_lib_path_to_use}" "${CMAKE_EXE_LINKER_FLAGS}" operation) - if(NOT operation) - message("${CMAKE_EXE_LINKER_FLAGS}") - message("-L${lua_lib_path_to_use}") - 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) - -endif(enable_lua) - ############### ## SVN version check ## @@ -331,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}) @@ -461,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}") @@ -480,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") @@ -674,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) @@ -695,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)