Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Add test for LUA and more.
authornavarrop <navarrop@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Tue, 26 Jan 2010 18:54:02 +0000 (18:54 +0000)
committernavarrop <navarrop@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Tue, 26 Jan 2010 18:54:02 +0000 (18:54 +0000)
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@7025 48e7efb5-ca39-0410-a469-dd3cf9ba447f

buildtools/CPACK/CMakeCompleteInFiles.txt
buildtools/CPACK/CMakeLists.txt
buildtools/CPACK/CMakeTest.txt
buildtools/CPACK/start.sh
buildtools/CPACK/tmp/test_gras_config.h.in

index 0d7787d..65e8bcb 100644 (file)
@@ -1,4 +1,3 @@
-cmake_minimum_required(VERSION 2.6)
 include(CheckFunctionExists)
 include(CheckIncludeFile)
 include(CheckIncludeFiles)
 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)
 
 CHECK_INCLUDE_FILE(pthread.h HAVE_PTHREAD_H)
 CHECK_LIBRARY_EXISTS(pthread pthread_create NO_DEFAULT_PATHS pthread)
-
 if(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)
        ### 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(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
 
 # 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")
 
        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_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______")
 
 
 message("______END_CONTEXT______")
 
@@ -512,19 +582,19 @@ endif(HAVE_VASPRINTF)
 
 ### check for addr2line
 
 
 ### 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(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
 
 
 ### 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)
 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")
 configure_file(${PROJECT_DIRECTORY}/include/simgrid_config.h.in ${PROJECT_DIRECTORY}/include/simgrid_config.h)
 
 message("__END_GRAS_&_SIMGRID____\n")
index 4df82e0..344fa4c 100644 (file)
@@ -1,58 +1,70 @@
 cmake_minimum_required(VERSION 2.6)
 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_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
 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")
 
 
 ### 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)
 ### 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("\n________ARGS_________")
+
 message("disable_java ${disable_java}")
 message("disable_java ${disable_java}")
+
 message("disable_gtnets ${disable_gtnets}")
 message("disable_gtnets ${disable_gtnets}")
-if(NOT disable_gtnets)
-message("gtnets_path \"${gtnets_path}\"")
-endif(NOT disable_gtnets)
+
 message("disable_threads ${disable_threads}")
 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")
 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(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("${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)
 
 ### 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)
 
 ### 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
 ### 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")
 ### 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)
 
 
 ### Make the distrib
 include(${PROJECT_DIRECTORY}/CPACK/CMakeDistrib.txt OPTIONAL NO_POLICY_SCOPE)
 
-
+INCLUDE(Dart)
index 81c0c55..196adf3 100644 (file)
@@ -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)
 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)
index a270577..76c93dd 100644 (file)
@@ -1,6 +1,5 @@
 #! /bin/sh
 make clean
 #! /bin/sh
 make clean
-cmake ./
 make
 ctest -D ExperimentalStart
 ctest -D ExperimentalUpdate
 make
 ctest -D ExperimentalStart
 ctest -D ExperimentalUpdate
index b463509..00bbdd8 100644 (file)
 /* Define to 1 if you have the <jni.h> header file. */
 #cmakedefine HAVE_JNI_H @HAVE_JNI_H@
 
 /* Define to 1 if you have the <jni.h> 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 <lua5.1/lualib.h> 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@
 
 /* Define to 1 if you have the `makecontext' function. */
 #cmakedefine HAVE_MAKECONTEXT @HAVE_MAKECONTEXT@