X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/705a594f8781bc7eccadb7adecd884476351f4b8..6c686f5c734739033f848b8009c9b825b7aa9c1d:/tools/cmake/CompleteInFiles.cmake diff --git a/tools/cmake/CompleteInFiles.cmake b/tools/cmake/CompleteInFiles.cmake index 30b005a263..c28fc82a41 100644 --- a/tools/cmake/CompleteInFiles.cmake +++ b/tools/cmake/CompleteInFiles.cmake @@ -17,7 +17,11 @@ IF(CMAKE_SYSTEM_PROCESSOR MATCHES ".86|AMD64|amd64") message(STATUS "System processor: x86_64 (${CMAKE_SYSTEM_PROCESSOR}, 64 bits)") set(PROCESSOR_x86_64 1) ENDIF() - set(HAVE_RAWCTX 1) + if (MSVC) + message(STATUS "Disable fast raw contextes on Microsoft Visual.") + else() + set(HAVE_RAWCTX 1) + endif() ELSEIF(CMAKE_SYSTEM_PROCESSOR MATCHES "^alpha") message(STATUS "System processor: alpha") @@ -62,13 +66,12 @@ else() set(MPI_ADDRESS_SIZE 8) endif() -message(STATUS "Cmake version ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}") - include(CheckFunctionExists) include(CheckTypeSize) include(CheckIncludeFile) include(CheckIncludeFiles) include(CheckLibraryExists) +include(CheckSymbolExists) include(TestBigEndian) TEST_BIG_ENDIAN(BIGENDIAN) @@ -148,11 +151,11 @@ CHECK_LIBRARY_EXISTS(rt clock_gettime "" HAVE_POSIX_GETTIME) if(CMAKE_SYSTEM_NAME MATCHES "Darwin") set(CMAKE_REQUIRED_DEFINITIONS "-D_XOPEN_SOURCE=700 -D_DARWIN_C_SOURCE") -endif() - -if(MINGW) +elseif(MINGW) add_definitions(-D__USE_MINGW_ANSI_STDIO=1) set(CMAKE_REQUIRED_DEFINITIONS "-D__USE_MINGW_ANSI_STDIO=1") +else() + set(CMAKE_REQUIRED_DEFINITIONS "-D_GNU_SOURCE") endif() CHECK_INCLUDE_FILES("time.h;sys/time.h" TIME_WITH_SYS_TIME) @@ -164,9 +167,6 @@ CHECK_INCLUDE_FILE("sys/socket.h" HAVE_SYS_SOCKET_H) CHECK_INCLUDE_FILE("stat.h" HAVE_STAT_H) CHECK_INCLUDE_FILE("sys/stat.h" HAVE_SYS_STAT_H) CHECK_INCLUDE_FILE("windows.h" HAVE_WINDOWS_H) -CHECK_INCLUDE_FILE("winsock.h" HAVE_WINSOCK_H) -CHECK_INCLUDE_FILE("winsock2.h" HAVE_WINSOCK2_H) -CHECK_INCLUDE_FILE("windef.h" HAVE_WINDEF_H) CHECK_INCLUDE_FILE("errno.h" HAVE_ERRNO_H) CHECK_INCLUDE_FILE("unistd.h" HAVE_UNISTD_H) CHECK_INCLUDE_FILE("execinfo.h" HAVE_EXECINFO_H) @@ -191,15 +191,24 @@ CHECK_FUNCTION_EXISTS(sysconf HAVE_SYSCONF) CHECK_FUNCTION_EXISTS(readv HAVE_READV) CHECK_FUNCTION_EXISTS(popen HAVE_POPEN) CHECK_FUNCTION_EXISTS(signal HAVE_SIGNAL) -CHECK_FUNCTION_EXISTS(snprintf HAVE_SNPRINTF) -CHECK_FUNCTION_EXISTS(vsnprintf HAVE_VSNPRINTF) -CHECK_FUNCTION_EXISTS(asprintf HAVE_ASPRINTF) -CHECK_FUNCTION_EXISTS(vasprintf HAVE_VASPRINTF) + +CHECK_SYMBOL_EXISTS(snprintf stdio.h HAVE_SNPRINTF) +CHECK_SYMBOL_EXISTS(vsnprintf stdio.h HAVE_VSNPRINTF) +CHECK_SYMBOL_EXISTS(asprintf stdio.h HAVE_ASPRINTF) +CHECK_SYMBOL_EXISTS(vasprintf stdio.h HAVE_VASPRINTF) + +if(MINGW) + # The detection of asprintf fails on MinGW, assumingly because it's + # defined as an inline function in stdio.h instead of a regular + # function. So force the result to be 1 despite of the test. + set(HAVE_ASPRINTF 1) + set(HAVE_VASPRINTF 1) +endif() + CHECK_FUNCTION_EXISTS(makecontext HAVE_MAKECONTEXT) -CHECK_FUNCTION_EXISTS(mmap HAVE_MMAP) CHECK_FUNCTION_EXISTS(process_vm_readv HAVE_PROCESS_VM_READV) -CHECK_FUNCTION_EXISTS(strdup SIMGRID_HAVE_STRDUP) -CHECK_FUNCTION_EXISTS(_strdup SIMGRID_HAVE__STRDUP) + +CHECK_FUNCTION_EXISTS(mmap HAVE_MMAP) #Check if __thread is defined execute_process( @@ -215,7 +224,11 @@ else() endif() # Our usage of mmap is Linux-specific (flag MAP_ANONYMOUS), but kFreeBSD uses a GNU libc -IF(NOT "${CMAKE_SYSTEM}" MATCHES "Linux" AND NOT "${CMAKE_SYSTEM}" MATCHES "kFreeBSD" AND NOT "${CMAKE_SYSTEM}" MATCHES "GNU" AND NOT "${CMAKE_SYSTEM}" MATCHES "Darwin") +IF(HAVE_MMAP AND + NOT "${CMAKE_SYSTEM}" MATCHES "Linux" AND + NOT "${CMAKE_SYSTEM}" MATCHES "kFreeBSD" AND + NOT "${CMAKE_SYSTEM}" MATCHES "GNU" AND + NOT "${CMAKE_SYSTEM}" MATCHES "Darwin") SET(HAVE_MMAP 0) message(STATUS "Warning: MMAP is thought as non functional on this architecture (${CMAKE_SYSTEM})") ENDIF() @@ -227,7 +240,7 @@ else() endif() -if(WIN32) #THOSE FILES ARE FUNCTIONS ARE NOT DETECTED BUT THEY SHOULD... +if(WIN32) # Those files are not detected despite being present set(HAVE_UCONTEXT_H 1) set(HAVE_MAKECONTEXT 1) set(HAVE_SNPRINTF 1) @@ -325,12 +338,6 @@ endif() #-------------------------------------------------------------------------------------------------- ### Initialize of CONTEXT THREADS -if(HAVE_PTHREAD) - set(pthread 1) -elseif(pthread) - set(pthread 0) -endif() - if(HAVE_PTHREAD) ### Test that we have a way to create semaphores