Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Change name install_HEADERS for headers_to_install.
[simgrid.git] / buildtools / Cmake / CompleteInFiles.cmake
index 72a6c6c..2cea4e2 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)
@@ -208,7 +209,6 @@ IF(CMAKE_CROSSCOMPILING)
                set(IS_WINDOWS 1)       
        ENDIF(WIN32)
 ELSE(CMAKE_CROSSCOMPILING)
-    if(HAVE_UCONTEXT_H)
        try_run(RUN_mcsc_VAR COMPILE_mcsc_VAR
                ${simgrid_BINARY_DIR}
                ${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/test_prog/prog_AC_CHECK_MCSC.c
@@ -220,16 +220,18 @@ ELSE(CMAKE_CROSSCOMPILING)
                        file(READ "${simgrid_BINARY_DIR}/conftestval" mcsc)
                        STRING(REPLACE "\n" "" mcsc "${mcsc}")
                        if(mcsc)
-                               set(mcsc "yes")
+                           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)
                        set(mcsc "no")
                endif(EXISTS "${simgrid_BINARY_DIR}/conftestval" AND COMPILE_mcsc_VAR)
-       else(HAVE_UCONTEXT_H)
-        set(mcsc "no")   
-       endif(HAVE_UCONTEXT_H)
 ENDIF(CMAKE_CROSSCOMPILING)
 
 if(mcsc MATCHES "no" AND pthread)
@@ -403,7 +405,7 @@ set(makecontext_CPPFLAGS_2 "")
 if(HAVE_MAKECONTEXT OR WIN32)
        set(makecontext_CPPFLAGS "-DTEST_makecontext")
        if(CMAKE_SYSTEM_NAME MATCHES "Darwin")
-               set(makecontext_CPPFLAGS_2 "-DOSX")
+               set(makecontext_CPPFLAGS_2 "-D_XOPEN_SOURCE")
        endif(CMAKE_SYSTEM_NAME MATCHES "Darwin")
        
     if(WIN32 AND __VISUALC__)
@@ -674,11 +676,19 @@ exec_program("chmod a=rwx ${CMAKE_BINARY_DIR}/bin/smpif2c" OUTPUT_VARIABLE OKITO
 exec_program("chmod a=rwx ${CMAKE_BINARY_DIR}/bin/smpiff" OUTPUT_VARIABLE OKITOKI)
 exec_program("chmod a=rwx ${CMAKE_BINARY_DIR}/bin/smpirun" OUTPUT_VARIABLE OKITOKI)
 
-set(generate_files_to_clean
-${CMAKE_BINARY_DIR}/src/context_sysv_config.h
-${CMAKE_BINARY_DIR}/src/gras_config.h
-${CMAKE_BINARY_DIR}/include/simgrid_config.h
-${CMAKE_BINARY_DIR}/include/smpi/smpif.h
+set(generated_headers_to_install
+       ${CMAKE_CURRENT_BINARY_DIR}/include/smpi/smpif.h
+       ${CMAKE_CURRENT_BINARY_DIR}/include/simgrid_config.h
+)
+
+set(generated_headers
+    ${CMAKE_CURRENT_BINARY_DIR}/src/context_sysv_config.h
+    ${CMAKE_CURRENT_BINARY_DIR}/src/gras_config.h
+)
+
+set(generated_files_to_clean
+${generated_headers}
+${generated_headers_to_install}
 ${CMAKE_BINARY_DIR}/bin/smpicc
 ${CMAKE_BINARY_DIR}/bin/smpif2c
 ${CMAKE_BINARY_DIR}/bin/smpiff