Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Flags for coverage.
[simgrid.git] / buildtools / Cmake / CompleteInFiles.cmake
index 314fc0c..5c6e95a 100644 (file)
@@ -34,6 +34,7 @@ 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(ucontext.h HAVE_UCONTEXT_H)
 
 CHECK_FUNCTION_EXISTS(gettimeofday HAVE_GETTIMEOFDAY)
 CHECK_FUNCTION_EXISTS(usleep HAVE_USLEEP)
@@ -49,6 +50,11 @@ CHECK_FUNCTION_EXISTS(vasprintf HAVE_VASPRINTF)
 CHECK_FUNCTION_EXISTS(makecontext HAVE_MAKECONTEXT)
 CHECK_FUNCTION_EXISTS(mmap HAVE_MMAP)
 
+if(WIN32)
+    set(HAVE_UCONTEXT_H 1)
+    set(HAVE_MAKECONTEXT 1)
+endif(WIN32)
+
 set(CONTEXT_UCONTEXT 0)
 SET(CONTEXT_THREADS 0)
 SET(HAVE_RUBY 0)
@@ -60,9 +66,13 @@ if(enable_tracing)
        SET(HAVE_TRACING 1)
 endif(enable_tracing)
 
-if(enable_model-checking)
+if(enable_model-checking AND HAVE_MMAP)
+       SET(HAVE_MC 1)
        SET(MMALLOC_WANT_OVERIDE_LEGACY 1)
-endif(enable_model-checking)
+else(enable_model-checking AND HAVE_MMAP)
+       SET(HAVE_MC 0)
+       SET(MMALLOC_WANT_OVERIDE_LEGACY 0)
+endif(enable_model-checking AND HAVE_MMAP)
 
 if(enable_lua)
        exec_program("lua -v" OUTPUT_VARIABLE LUA_VERSION)
@@ -146,7 +156,7 @@ if(enable_ruby)
                                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_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)
@@ -190,12 +200,12 @@ endif(enable_java)
 
 #--------------------------------------------------------------------------------------------------
 ### Initialize of CONTEXT GTNETS
-if(NOT enable_gtnets)
+if(NOT enable_gtnets OR enable_supernovae)
        SET(HAVE_GTNETS 0)
-else(NOT enable_gtnets)
+else(NOT enable_gtnets OR enable_supernovae)
        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) 
+       exec_program("${CMAKE_CXX_COMPILER} ${GTNETS_CPPFLAGS} -lgtnets ${GTNETS_LDFLAGS} ${PROJECT_DIRECTORY}/buildtools/Cmake/test_prog/prog_gtnets.cpp " OUTPUT_VARIABLE COMPILE_GTNETS_VAR) 
        if(COMPILE_GTNETS_VAR)
                SET(HAVE_GTNETS 0)
        else(COMPILE_GTNETS_VAR)
@@ -203,7 +213,7 @@ else(NOT enable_gtnets)
                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(NOT enable_gtnets)
+endif(NOT enable_gtnets OR enable_supernovae)
 
 #--------------------------------------------------------------------------------------------------
 ### Initialize of CONTEXT THREADS
@@ -218,7 +228,7 @@ if(pthread)
        ### HAVE_SEM_INIT
        
        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)
+               exec_program("${CMAKE_C_COMPILER} -lpthread ${PROJECT_DIRECTORY}/buildtools/Cmake/test_prog/prog_sem_init.c" OUTPUT_VARIABLE HAVE_SEM_INIT_run)
                if(HAVE_SEM_INIT_run)
                        set(HAVE_SEM_INIT 0)
                else(HAVE_SEM_INIT_run)
@@ -229,7 +239,7 @@ if(pthread)
        ### HAVE_SEM_TIMEDWAIT
 
        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)
+               exec_program("${CMAKE_C_COMPILER} -lpthread ${PROJECT_DIRECTORY}/buildtools/Cmake/test_prog/prog_sem_timedwait.c" OUTPUT_VARIABLE HAVE_SEM_TIMEDWAIT_run)
                if(HAVE_SEM_TIMEDWAIT_run)
                        set(HAVE_SEM_TIMEDWAIT 0)
                else(HAVE_SEM_TIMEDWAIT_run)
@@ -240,7 +250,7 @@ if(pthread)
        ### HAVE_MUTEX_TIMEDLOCK
 
        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)
+               exec_program("${CMAKE_C_COMPILER} -lpthread ${PROJECT_DIRECTORY}/buildtools/Cmake/test_prog/prog_mutex_timedlock.c" OUTPUT_VARIABLE HAVE_SEM_TIMEDWAIT_run)
                if(HAVE_MUTEX_TIMEDLOCK_run)
                        set(HAVE_MUTEX_TIMEDLOCK 0)
                else(HAVE_MUTEX_TIMEDLOCK_run)
@@ -257,7 +267,7 @@ endif(CMAKE_SYSTEM_NAME MATCHES "Darwin")
 
 try_run(RUN_mcsc_VAR COMPILE_mcsc_VAR
        ${PROJECT_DIRECTORY}
-       ${PROJECT_DIRECTORY}/buildtools/Cmake/prog_test/prog_AC_CHECK_MCSC.c
+       ${PROJECT_DIRECTORY}/buildtools/Cmake/test_prog/prog_AC_CHECK_MCSC.c
        COMPILE_DEFINITIONS "${mcsc_flags}"
        )
        
@@ -346,17 +356,16 @@ if(IS_DIRECTORY ${PROJECT_DIRECTORY}/.svn)
 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" 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(REGEX REPLACE " .*" "" GIT_VERSION "${GIT_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_VERSION    : ${GIT_VERSION}")
        foreach(line ${GIT_SVN_VERSION})
                string(REGEX MATCH "^Revision:.*" line_good ${line})
                if(line_good)
@@ -364,7 +373,6 @@ if(IS_DIRECTORY ${PROJECT_DIRECTORY}/.git)
                        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 +383,7 @@ TEST_BIG_ENDIAN(BIGENDIAN)
 # Check architecture signature begin
 try_run(RUN_GRAS_VAR COMPILE_GRAS_VAR
        ${PROJECT_DIRECTORY}
-       ${PROJECT_DIRECTORY}/buildtools/Cmake/prog_test/prog_GRAS_ARCH.c
+       ${PROJECT_DIRECTORY}/buildtools/Cmake/test_prog/prog_GRAS_ARCH.c
        RUN_OUTPUT_VARIABLE var1
        )
 if(BIGENDIAN)
@@ -447,7 +455,7 @@ endif(val_big MATCHES "B_C:1/1:_I:2/2:4/4:8/8:8/8:_P:8/8:8/8:_D:4/4:8/4:")
 # Check architecture signature end
 try_run(RUN_GRAS_VAR COMPILE_GRAS_VAR
        ${PROJECT_DIRECTORY}
-       ${PROJECT_DIRECTORY}/buildtools/Cmake/prog_test/prog_GRAS_CHECK_STRUCT_COMPACTION.c
+       ${PROJECT_DIRECTORY}/buildtools/Cmake/test_prog/prog_GRAS_CHECK_STRUCT_COMPACTION.c
        RUN_OUTPUT_VARIABLE var2
        )
 separate_arguments(var2)
@@ -458,7 +466,7 @@ endforeach(var_tmp ${var2})
 # Check for [SIZEOF_MAX]
 try_run(RUN_SM_VAR COMPILE_SM_VAR
        ${PROJECT_DIRECTORY}
-       ${PROJECT_DIRECTORY}/buildtools/Cmake/prog_test/prog_max_size.c
+       ${PROJECT_DIRECTORY}/buildtools/Cmake/test_prog/prog_max_size.c
        RUN_OUTPUT_VARIABLE var3
        )
 SET(SIZEOF_MAX ${var3})
@@ -466,18 +474,21 @@ SET(SIZEOF_MAX ${var3})
 #--------------------------------------------------------------------------------------------------
 
 set(makecontext_CPPFLAGS_2 "")
-if(HAVE_MAKECONTEXT)
+if(HAVE_MAKECONTEXT OR WIN32)
        set(makecontext_CPPFLAGS "-DTEST_makecontext")
        if(CMAKE_SYSTEM_NAME MATCHES "Darwin")
                set(makecontext_CPPFLAGS_2 "-DOSX")
        endif(CMAKE_SYSTEM_NAME MATCHES "Darwin")
+       
+       if(WIN32)
+           set(makecontext_CPPFLAGS_2 "-DWIN32 ${INCLUDES}")
+       endif(WIN32)
 
        try_run(RUN_makecontext_VAR COMPILE_makecontext_VAR
                ${PROJECT_DIRECTORY}
-               ${PROJECT_DIRECTORY}/buildtools/Cmake/prog_test/prog_stacksetup.c
+               ${PROJECT_DIRECTORY}/buildtools/Cmake/test_prog/prog_stacksetup.c
                COMPILE_DEFINITIONS "${makecontext_CPPFLAGS} ${makecontext_CPPFLAGS_2}"
                )
-       
        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}")
@@ -487,7 +498,7 @@ if(HAVE_MAKECONTEXT)
        set(pth_skaddr_makecontext "#define pth_skaddr_makecontext(skaddr,sksize) (${makecontext_addr})")
        set(pth_sksize_makecontext "#define pth_sksize_makecontext(skaddr,sksize) (${makecontext_size})")
 
-endif(HAVE_MAKECONTEXT)
+endif(HAVE_MAKECONTEXT OR WIN32)
 
 #--------------------------------------------------------------------------------------------------
 
@@ -495,7 +506,7 @@ endif(HAVE_MAKECONTEXT)
 
        try_run(RUN_makecontext_VAR COMPILE_makecontext_VAR
                ${PROJECT_DIRECTORY}
-               ${PROJECT_DIRECTORY}/buildtools/Cmake/prog_test/prog_stackgrowth.c
+               ${PROJECT_DIRECTORY}/buildtools/Cmake/test_prog/prog_stackgrowth.c
                )
 file(READ "${simgrid_BINARY_DIR}/conftestval" stack)
 if(stack MATCHES "down")
@@ -519,7 +530,7 @@ endif(stack MATCHES "up")
 #AC_PRINTF_NULL
 try_run(RUN_PRINTF_NULL_VAR COMPILE_PRINTF_NULL_VAR
        ${PROJECT_DIRECTORY}
-       ${PROJECT_DIRECTORY}/buildtools/Cmake/prog_test/prog_printf_null.c
+       ${PROJECT_DIRECTORY}/buildtools/Cmake/test_prog/prog_printf_null.c
        )
 
 if(RUN_PRINTF_NULL_VAR MATCHES "FAILED_TO_RUN")
@@ -541,7 +552,7 @@ set(diff_va "va_copy((d),(s))"
 )
 
 foreach(fct ${diff_va})
-       write_file("${PROJECT_DIRECTORY}/buildtools/Cmake/prog_test/prog_va_copy.c" "#include <stdlib.h>
+       write_file("${PROJECT_DIRECTORY}/buildtools/Cmake/test_prog/prog_va_copy.c" "#include <stdlib.h>
        #include <stdarg.h>
        #include <string.h>
        #define DO_VA_COPY(d,s) ${fct}
@@ -572,7 +583,7 @@ foreach(fct ${diff_va})
        )
        try_compile(COMPILE_VA_NULL_VAR
        ${PROJECT_DIRECTORY}
-       ${PROJECT_DIRECTORY}/buildtools/Cmake/prog_test/prog_va_copy.c
+       ${PROJECT_DIRECTORY}/buildtools/Cmake/test_prog/prog_va_copy.c
        )
        if(COMPILE_VA_NULL_VAR)
                string(REGEX REPLACE "\;" "" fctbis ${fct})
@@ -618,7 +629,7 @@ foreach(fct ${diff_va})
                endif(${fctbis} STREQUAL "memcpy((void *)(d), (void *)(s)), sizeof(*(s))")
                                
                if(NOT STATUS_OK)
-               set(__VA_COPY_USE "__VA_COPY_USE_${ac_cv_va_copy}")
+               set(__VA_COPY_USE "__VA_COPY_USE_${ac_cv_va_copy}(d, s)")
                endif(NOT STATUS_OK)
                set(STATUS_OK "1")
                
@@ -630,7 +641,7 @@ endforeach(fct ${diff_va})
 ### Try execut getline command
 try_run(RUN_RESULT_VAR COMPILE_RESULT_VAR
        ${PROJECT_DIRECTORY}
-       ${PROJECT_DIRECTORY}/buildtools/Cmake/prog_test/prog_getline.c
+       ${PROJECT_DIRECTORY}/buildtools/Cmake/test_prog/prog_getline.c
        OUTPUT_VARIABLE GETLINE_OUTPUT
        )
 
@@ -645,7 +656,7 @@ if(HAVE_SNPRINTF AND HAVE_VSNPRINTF)
 
        try_run(RUN_SNPRINTF_FUNC_VAR COMPILE_SNPRINTF_FUNC_VAR
                ${PROJECT_DIRECTORY}
-               ${PROJECT_DIRECTORY}/buildtools/Cmake/prog_test/prog_snprintf.c
+               ${PROJECT_DIRECTORY}/buildtools/Cmake/test_prog/prog_snprintf.c
                )
        if(CMAKE_CROSSCOMPILING)
                set(RUN_SNPRINTF_FUNC "cross") 
@@ -653,7 +664,7 @@ if(HAVE_SNPRINTF AND HAVE_VSNPRINTF)
 
        try_run(RUN_VSNPRINTF_FUNC_VAR COMPILE_VSNPRINTF_FUNC_VAR
                ${PROJECT_DIRECTORY}
-               ${PROJECT_DIRECTORY}/buildtools/Cmake/prog_test/prog_vsnprintf.c
+               ${PROJECT_DIRECTORY}/buildtools/Cmake/test_prog/prog_vsnprintf.c
                )
        if(CMAKE_CROSSCOMPILING)
                set(RUN_VSNPRINTF_FUNC "cross")
@@ -689,18 +700,14 @@ endif(ADDR2LINE)
 
 ### File to create
 
-configure_file(${PROJECT_DIRECTORY}/src/context_sysv_config.h.in ${CMAKE_CURRENT_BINARY_DIR}/src/context_sysv_config.h)
+configure_file("${PROJECT_DIRECTORY}/src/context_sysv_config.h.in"                     "${PROJECT_DIRECTORY}/src/context_sysv_config.h" @ONLY IMMEDIATE)
 
 SET( CMAKEDEFINE "#cmakedefine" )
-configure_file("${PROJECT_DIRECTORY}/buildtools/Cmake/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" @ONLY IMMEDIATE)
-configure_file("${PROJECT_DIRECTORY}/buildtools/Cmake/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)
+configure_file("${PROJECT_DIRECTORY}/buildtools/Cmake/gras_config.h.in"        "${PROJECT_DIRECTORY}/src/gras_config.h" @ONLY IMMEDIATE)
+configure_file("${PROJECT_DIRECTORY}/src/gras_config.h"                                "${PROJECT_DIRECTORY}/src/gras_config.h" @ONLY IMMEDIATE)
+configure_file("${PROJECT_DIRECTORY}/include/simgrid_config.h.in"                      "${PROJECT_DIRECTORY}/include/simgrid_config.h" @ONLY IMMEDIATE)
+configure_file("${PROJECT_DIRECTORY}/buildtools/Cmake/tracing_config.h.in"     "${PROJECT_DIRECTORY}/include/instr/tracing_config.h" @ONLY IMMEDIATE)
+configure_file("${PROJECT_DIRECTORY}/include/instr/tracing_config.h"           "${PROJECT_DIRECTORY}/include/instr/tracing_config.h" @ONLY IMMEDIATE)
 
 set(top_srcdir "${PROJECT_DIRECTORY}")
 set(srcdir "${PROJECT_DIRECTORY}/src")
@@ -709,6 +716,7 @@ set(exec_prefix ${prefix})
 set(includedir ${prefix}/include)
 set(top_builddir ${PROJECT_DIRECTORY})
 set(libdir ${exec_prefix}/lib)
+set(CMAKE_LINKARGS "${CMAKE_CURRENT_BINARY_DIR}/lib")
 
 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)