Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branch 'master' of scm.gforge.inria.fr:/gitroot/simgrid/simgrid
[simgrid.git] / tools / cmake / CompleteInFiles.cmake
index d4730da..c28fc82 100644 (file)
@@ -17,7 +17,7 @@ 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()
-  if (NOT MSVC)
+  if (MSVC)
     message(STATUS "Disable fast raw contextes on Microsoft Visual.")
   else()
     set(HAVE_RAWCTX 1)
@@ -66,8 +66,6 @@ else()
   set(MPI_ADDRESS_SIZE 8)
 endif()
 
-message(STATUS "Cmake version ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}")
-
 include(CheckFunctionExists)
 include(CheckTypeSize)
 include(CheckIncludeFile)
@@ -169,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)
@@ -202,11 +197,18 @@ 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(
@@ -222,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()
@@ -234,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)
@@ -332,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