Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Let's assume that Hurd systems provide working MMAP services
[simgrid.git] / buildtools / Cmake / CompleteInFiles.cmake
index 74503d0..e63a6a7 100644 (file)
@@ -94,9 +94,10 @@ else(HAVE_thread_storage_run)
 endif(HAVE_thread_storage_run)
 
 # 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")
+IF(NOT "${CMAKE_SYSTEM}" MATCHES "Linux" AND NOT "${CMAKE_SYSTEM}" MATCHES "kFreeBSD" AND NOT "${CMAKE_SYSTEM}" MATCHES "GNU")
   SET(HAVE_MMAP 0)
-ENDIF(NOT "${CMAKE_SYSTEM}" MATCHES "Linux" AND NOT "${CMAKE_SYSTEM}" MATCHES "kFreeBSD")
+  message(STATUS "Warning: MMAP is thought as non functional on this architecture (${CMAKE_SYSTEM})")
+ENDIF(NOT "${CMAKE_SYSTEM}" MATCHES "Linux" AND NOT "${CMAKE_SYSTEM}" MATCHES "kFreeBSD" AND NOT "${CMAKE_SYSTEM}" MATCHES "GNU")
 
 if(WIN32) #THOSE FILES ARE FUNCTIONS ARE NOT DETECTED BUT THEY SHOULD...
     set(HAVE_UCONTEXT_H 1)
@@ -219,11 +220,16 @@ ELSE(CMAKE_CROSSCOMPILING)
                        file(READ "${simgrid_BINARY_DIR}/conftestval" mcsc)
                        STRING(REPLACE "\n" "" mcsc "${mcsc}")
                        if(mcsc)
-                               set(mcsc "yes")
-                       elseif(mcsc)
+                           if(APPLE AND NOT ucontext) # TODO for the moment ucontext don't work on MAC OSX
+                               set(mcsc "no") 
+                           else(APPLE AND NOT ucontext)
+                               set(mcsc "yes")
+                               set(HAVE_UCONTEXT_H 1)
+                               endif(APPLE AND NOT ucontext)
+                       else(mcsc)
                                set(mcsc "no")
                        endif(mcsc)
-               else(EXISTS "${simgrid_BINARY_DIR}/conftestval" AND COMPILE_mcsc_VAR)
+           else(EXISTS "${simgrid_BINARY_DIR}/conftestval" AND COMPILE_mcsc_VAR)
                        set(mcsc "no")
                endif(EXISTS "${simgrid_BINARY_DIR}/conftestval" AND COMPILE_mcsc_VAR)
 ENDIF(CMAKE_CROSSCOMPILING)