From 1c6be1e4561d0e7442555c948ffa6da6d4f35f6b Mon Sep 17 00:00:00 2001 From: navarrop Date: Tue, 26 Jan 2010 18:54:02 +0000 Subject: [PATCH] Add test for LUA and more. git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@7025 48e7efb5-ca39-0410-a469-dd3cf9ba447f --- buildtools/CPACK/CMakeCompleteInFiles.txt | 101 +++++++++++++++++---- buildtools/CPACK/CMakeLists.txt | 95 +++++++++++++------ buildtools/CPACK/CMakeTest.txt | 3 +- buildtools/CPACK/start.sh | 1 - buildtools/CPACK/tmp/test_gras_config.h.in | 6 ++ 5 files changed, 158 insertions(+), 48 deletions(-) diff --git a/buildtools/CPACK/CMakeCompleteInFiles.txt b/buildtools/CPACK/CMakeCompleteInFiles.txt index 0d7787d30d..65e8bcb3c6 100644 --- a/buildtools/CPACK/CMakeCompleteInFiles.txt +++ b/buildtools/CPACK/CMakeCompleteInFiles.txt @@ -1,4 +1,3 @@ -cmake_minimum_required(VERSION 2.6) include(CheckFunctionExists) include(CheckIncludeFile) include(CheckIncludeFiles) @@ -50,8 +49,13 @@ message("HAVE_GTNETS ${HAVE_GTNETS}") CHECK_INCLUDE_FILE(pthread.h HAVE_PTHREAD_H) CHECK_LIBRARY_EXISTS(pthread pthread_create NO_DEFAULT_PATHS pthread) - if(pthread) +set(pthread "yes") +elseif(pthread) +set(pthread "no") +endif(pthread) + +if(pthread MATCHES "yes") ### HAVE_SEM_INIT CHECK_LIBRARY_EXISTS(pthread sem_init NO_DEFAULT_PATHS HAVE_SEM_INIT_LIB) if(HAVE_SEM_INIT_LIB) @@ -87,7 +91,7 @@ if(pthread) endif(HAVE_MUTEX_TIMEDLOCK_run) message("HAVE_MUTEX_TIMEDLOCK ${HAVE_MUTEX_TIMEDLOCK}") endif(HAVE_MUTEX_TIMEDLOCK_LIB) -endif(pthread) +endif(pthread MATCHES "yes") # AC_CHECK_MCSC(mcsc=yes, mcsc=no) try_run(RUN_mcsc_VAR COMPILE_mcsc_VAR @@ -102,14 +106,80 @@ elseif(mcsc MATCHES "yes") set(mcsc "no") endif(mcsc MATCHES "yes") -#TODO configure.ac ligne 215 +if(mcsc MATCHES "no" AND pthread MATCHES "no") + CHECK_INCLUDE_FILE(windows.h HAVE_WINDOWS_H) + if(HAVE_WINDOWS_H) + set(windows_context "yes") + set(IS_WINDOWS 1) + elseif(HAVE_WINDOWS_H) + message("no appropriate backend found") + endif(HAVE_WINDOWS_H) +endif(mcsc MATCHES "no" AND pthread MATCHES "no") + +if(NOT disable_context AND with_context MATCHES "ucontext" AND mcsc MATCHES "no") + message(FATAL_ERROR "-Dwith-context=ucontext specified but ucontext unusable.") +endif(NOT disable_context AND with_context MATCHES "ucontext" AND mcsc MATCHES "no") + +if(NOT disable_context) + set(with_context_ok 0) + if(with_context MATCHES "windows") + set(with_context_ok 1) + endif(with_context MATCHES "windows") + + if(with_context MATCHES "pthreads") + set(with_context_ok 1) + set(with_context "pthread") + endif(with_context MATCHES "pthreads") + + if(with_context MATCHES "auto") + set(with_context_ok 1) + set(with_context "ucontext") + message("with_context auto change to ucontext") + endif(with_context MATCHES "auto") + + if(with_context MATCHES "ucontext") + set(with_context_ok 1) + if(mcsc MATCHES "yes") + set(CONTEXT_UCONTEXT 1) + CHECK_INCLUDE_FILE(valgrind/valgrind.h HAVE_VALGRIND_VALGRIND_H) + else(mcsc MATCHES "yes") + if(windows_context MATCHES "yes") + set(with_context "windows") + else(windows_context MATCHES "yes") + set(with_context "pthread") + endif(windows_context MATCHES "yes") + endif(mcsc MATCHES "yes") + endif(with_context MATCHES "ucontext") + + if(with_context MATCHES "pthread") + set(with_context_ok 1) + if(pthread MATCHES "no") + message(FATAL_ERROR "Cannot find pthreads (try -Dwith_context=ucontext if you haven't already tried).") + endif(pthread MATCHES "no") + SET(CONTEXT_THREADS 1) + endif(with_context MATCHES "pthread") + + if(with_context MATCHES "ucontext") + SET(CONTEXT_THREADS 0) + endif(with_context MATCHES "ucontext") + + if(NOT with_context_ok) + message(FATAL_ERROR "-Dwith-context must be either ucontext or pthread") + endif(NOT with_context_ok) +endif(NOT disable_context) + -if(disable_threads) - SET(CONTEXT_THREADS 0) -else(disable_threads) - SET(CONTEXT_THREADS 1) -endif(disable_threads) message("CONTEXT_THREADS ${CONTEXT_THREADS}") +message("CONTEXT_UCONTEXT ${CONTEXT_UCONTEXT}") + +if(NOT disable_lua) + CHECK_INCLUDE_FILE(lua5.1/lualib.h HAVE_LUA5_1_LUALIB_H) + message("HAVE_LUA5_1_LUALIB_H ${HAVE_LUA5_1_LUALIB_H}") + if(HAVE_LUA5_1_LUALIB_H) + set(HAVE_LUA 1) + endif(HAVE_LUA5_1_LUALIB_H) +endif(NOT disable_lua) +message("HAVE_LUA ${HAVE_LUA}") message("______END_CONTEXT______") @@ -512,19 +582,19 @@ endif(HAVE_VASPRINTF) ### check for addr2line -find_path(ADDR2LINE_tmp NAMES addr2line PATHS NO_DEFAULT_PATHS ) -if(ADDR2LINE_tmp) -set(ADDR2LINE "${ADDR2LINE_tmp}/addr2line") -endif(ADDR2LINE_tmp) +find_path(ADDR2LINE NAMES addr2line PATHS NO_DEFAULT_PATHS ) +if(ADDR2LINE) +set(ADDR2LINE "${ADDR2LINE}/addr2line") +endif(ADDR2LINE) +find_program(ADDR2LINE NAMES addr2line) -### check for include files +### 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) -CHECK_INCLUDE_FILE(valgrind/valgrind.h HAVE_VALGRIND_VALGRIND_H) ### File to create @@ -533,7 +603,6 @@ configure_file(${PROJECT_DIRECTORY}/src/context_sysv_config.h.in ${PROJECT_DIREC SET( CMAKEDEFINE "#cmakedefine" ) configure_file("${PROJECT_DIRECTORY}/CPACK/tmp/test_gras_config.h.in" "${PROJECT_DIRECTORY}/CPACK/tmp/test_gras_config_tmp.h.in" @ONLY IMMEDIATE) configure_file("${PROJECT_DIRECTORY}/CPACK/tmp/test_gras_config_tmp.h.in" "${PROJECT_DIRECTORY}/src/test_gras_config.h" @ONLY IMMEDIATE) - configure_file(${PROJECT_DIRECTORY}/include/simgrid_config.h.in ${PROJECT_DIRECTORY}/include/simgrid_config.h) message("__END_GRAS_&_SIMGRID____\n") diff --git a/buildtools/CPACK/CMakeLists.txt b/buildtools/CPACK/CMakeLists.txt index 4df82e0549..344fa4c3ba 100644 --- a/buildtools/CPACK/CMakeLists.txt +++ b/buildtools/CPACK/CMakeLists.txt @@ -1,58 +1,70 @@ cmake_minimum_required(VERSION 2.6) + find_program(SH_EXE NAMES sh) find_program(SED_EXE NAMES sed) find_program(PWD_EXE NAMES pwd) find_program(UNAME NAMES uname) find_program(HOSTNAME_CMD NAMES hostname) -find_path(GCC_PATH NAMES gcc PATHS NO_DEFAULT_PATHS ) -find_path(GCOV_PATH NAMES gcov PATHS NO_DEFAULT_PATHS ) +find_path(GCC_PATH NAMES gcc PATHS NO_DEFAULT_PATHS ) +find_path(GCOV_PATH NAMES gcov PATHS NO_DEFAULT_PATHS ) find_path(VALGRIND_PATH NAMES valgrind PATHS NO_DEFAULT_PATHS ) ### DETECT AUTO. THE PROJECT_DIRECTORY -exec_program("${PWD_EXE}" ARGS "| ${SED_EXE} 's/\\/CPACK//g'" OUTPUT_VARIABLE "PROJECT_DIRECTORY") +exec_program("${PWD_EXE}" ARGS "| ${SED_EXE} 's/\\/CPACK//g'" OUTPUT_VARIABLE PROJECT_DIRECTORY) ### DETECT MANUAL. THE PROJECT_DIRECTORY #SET(PROJECT_DIRECTORY "/home/navarrop/Bureau/simgrid-trunk") -### Get the hostname of current machine : -exec_program(${HOSTNAME_CMD} OUTPUT_VARIABLE SITE) - -### Get the system information of current machine -exec_program("${UNAME}" OUTPUT_VARIABLE "SYSTEM") - ### ARGs use -D[var]=[ON/OFF] or [1/0] or [true/false](see after) ### ex: cmake -Ddisable_java=ON -Ddisable_gtnets=ON ./ SET(disable_java OFF) #default value SET(disable_threads ON) SET(disable_gtnets ON) +SET(disable_context ON) +SET(disable_lua ON) -option(disable_java "This variable set the java context.") -option(disable_gtnets "This variable set the gtnets context.") -option(disable_threads "This variable set the thread context.") +option(disable_java "This variable set the java context." OFF) +option(disable_gtnets "This variable set the gtnets context." ON) +option(disable_threads "This variable set the thread context." ON) +option(disable_context "This variable set the context." ON) +option(disable_lua "This variable set lua use." ON) message("\n________ARGS_________") + message("disable_java ${disable_java}") + message("disable_gtnets ${disable_gtnets}") -if(NOT disable_gtnets) -message("gtnets_path \"${gtnets_path}\"") -endif(NOT disable_gtnets) + message("disable_threads ${disable_threads}") +if(disable_gtnets) + set(gtnets_path "none" CACHE TYPE INTERNAL FORCE) +endif(disable_gtnets) +message(" -> gtnets_path \"${gtnets_path}\"") + +message("disable_context ${disable_context}") +if(disable_context) + set(with_context "none" CACHE TYPE INTERNAL FORCE) +endif(disable_context) +message(" -> with_context \"${with_context}\"") + +message("disable_lua ${disable_lua}") + message("_______END_ARGS_______") #-------------------------------------------------------------------------------------------------- ### Set some variables for Cmake SET(PROJECT_NAME "Simgrid") +SET(LANGUAGE "C") SET(PROJECT_SOURCE_DIRECTORY "${PROJECT_DIRECTORY}/src") set(EXECUTABLE_OUTPUT_PATH "${PROJECT_DIRECTORY}/bin") set(LIBRARY_OUTPUT_PATH "${PROJECT_DIRECTORY}/lib") set(INCLUDES "-I${PROJECT_DIRECTORY}/include -I${PROJECT_DIRECTORY}/src/include -I${PROJECT_DIRECTORY}/src") - +set(CMAKE_SOURCE_FILES ${PROJECT_SOURCE_DIRECTORY}) +set(CMAKE_CXX_FLAGS "-fprofile-arcs -ftest-coverage") +set(CMAKE_C_FLAGS "-fprofile-arcs -ftest-coverage") +add_definitions (-fprofile-arcs -ftest-coverage) add_definitions("${INCLUDES}") -add_definitions (-fprofile-arcs) -add_definitions (-ftest-coverage) -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage") -set(CMAKE_C_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage") ### Make the *.h files with *.h.in files include(${PROJECT_DIRECTORY}/CPACK/CMakeCompleteInFiles.txt OPTIONAL NO_POLICY_SCOPE) @@ -60,20 +72,45 @@ include(${PROJECT_DIRECTORY}/CPACK/CMakeCompleteInFiles.txt OPTIONAL NO_POLICY_S ### Define source packages for Libs include(${PROJECT_DIRECTORY}/CPACK/CMakeDefinePackages.txt OPTIONAL NO_POLICY_SCOPE) +### Make tests +include(${PROJECT_DIRECTORY}/CPACK/CMakeTest.txt OPTIONAL NO_POLICY_SCOPE) + ### Make Libs -add_library(simgrid SHARED ${simgrid_sources}) -add_library(gras SHARED ${gras_sources}) +add_library(simgrid STATIC ${simgrid_sources}) +add_library(gras STATIC ${gras_sources}) +set(GRAS_DEP "") +set(SIMGRID_DEP "") + +if(pthread) + if(with_context MATCHES pthread) + SET(SIMGRID_DEP pthread) + SET(ESPACE " ") + endif(with_context MATCHES pthread) + + if(with_context MATCHES windows) + elseif(with_context MATCHES windows) + SET(GRAS_DEP pthread) + endif(with_context MATCHES windows) +endif(pthread) + +if(HAVE_LUA) + SET(SIMGRID_DEP "${SIMGRID_DEP}${ESPACE}dl lua5.1") +endif(HAVE_LUA) + +message("SIMGRID_DEP \"${SIMGRID_DEP}\"") +message("GRAS_DEP \"${GRAS_DEP}\"") +target_link_libraries(simgrid ${SIMGRID_DEP} -fprofile-arcs) +target_link_libraries(gras ${GRAS_DEP} -fprofile-arcs) + ### Make EXEs add_executable(masterslave_failure "${PROJECT_DIRECTORY}/examples/msg/masterslave/masterslave_failure.c") add_executable(masterslave_forwarder "${PROJECT_DIRECTORY}/examples/msg/masterslave/masterslave_forwarder.c") -target_link_libraries(masterslave_forwarder simgrid m gcov) -target_link_libraries(masterslave_failure simgrid m gcov) - - -### Make tests -include(${PROJECT_DIRECTORY}/CPACK/CMakeTest.txt OPTIONAL NO_POLICY_SCOPE) +add_executable(Test "${PROJECT_DIRECTORY}/src/test.c") +target_link_libraries(masterslave_forwarder simgrid m -fprofile-arcs) +target_link_libraries(masterslave_failure simgrid m -fprofile-arcs) +target_link_libraries(Test -fprofile-arcs) ### Make the distrib include(${PROJECT_DIRECTORY}/CPACK/CMakeDistrib.txt OPTIONAL NO_POLICY_SCOPE) - +INCLUDE(Dart) diff --git a/buildtools/CPACK/CMakeTest.txt b/buildtools/CPACK/CMakeTest.txt index 81c0c5559a..196adf3b7b 100644 --- a/buildtools/CPACK/CMakeTest.txt +++ b/buildtools/CPACK/CMakeTest.txt @@ -21,5 +21,4 @@ INCLUDE(CTest) ENABLE_TESTING() add_test(MasterSlave_forwarder ${EXECUTABLE_OUTPUT_PATH}/masterslave_forwarder ${PROJECT_DIRECTORY}/examples/msg/msg_platform.xml ${PROJECT_DIRECTORY}/examples/msg/masterslave/deployment_masterslave_forwarder.xml) add_test(MasterSlave_failure ${EXECUTABLE_OUTPUT_PATH}/masterslave_forwarder ${PROJECT_DIRECTORY}/examples/msg/msg_platform.xml ${PROJECT_DIRECTORY}/examples/msg/masterslave/deployment_masterslave_forwarder.xml) - -INCLUDE(Dart) +add_test(Test_run ${EXECUTABLE_OUTPUT_PATH}/Test) diff --git a/buildtools/CPACK/start.sh b/buildtools/CPACK/start.sh index a270577a5d..76c93dd545 100644 --- a/buildtools/CPACK/start.sh +++ b/buildtools/CPACK/start.sh @@ -1,6 +1,5 @@ #! /bin/sh make clean -cmake ./ make ctest -D ExperimentalStart ctest -D ExperimentalUpdate diff --git a/buildtools/CPACK/tmp/test_gras_config.h.in b/buildtools/CPACK/tmp/test_gras_config.h.in index b4635099ad..00bbdd82fe 100644 --- a/buildtools/CPACK/tmp/test_gras_config.h.in +++ b/buildtools/CPACK/tmp/test_gras_config.h.in @@ -85,6 +85,12 @@ /* Define to 1 if you have the header file. */ #cmakedefine HAVE_JNI_H @HAVE_JNI_H@ +/* defines whether Lua bindings must be compiled or not */ +#cmakedefine HAVE_LUA @HAVE_LUA@ + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_LUA5_1_LUALIB_H @HAVE_LUA5_1_LUALIB_H@ + /* Define to 1 if you have the `makecontext' function. */ #cmakedefine HAVE_MAKECONTEXT @HAVE_MAKECONTEXT@ -- 2.20.1