Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Also check that the compiler really is gcc.
[simgrid.git] / buildtools / Cmake / Modules / FindF2c.cmake
index 69e519f..efe8df6 100644 (file)
@@ -66,14 +66,19 @@ mark_as_advanced(HAVE_F2C_LIB)
 if(HAVE_F2C_H)
   include_directories(${HAVE_F2C_H})
 else()
-  if(WIN32)
     message("-- Fortran for smpi is not installed (http://www.netlib.org/f2c/).")
-  else()
-    message(FATAL_ERROR "You should install f2c before use smpi.")
-  endif()
+endif()
+
+
+#Some old versions of 64 bits systems seem to have a different size between C and Fortran Datatypes
+#Deactivate F2C with these versions, in order to avoid breaking test cases in legacy systems (as Fedora 13)
+set(COMPILER_OK 1)
+if(PROCESSOR_x86_64 AND "${CMAKE_SYSTEM}" MATCHES "Linux" AND ${CMAKE_C_COMPILER_ID} STREQUAL "GNU" AND "4.5" STRGREATER "${COMPILER_C_VERSION_MAJOR_MINOR}" )
+    set(COMPILER_OK 0)
+    message("Your C compiler is a bit old and Fortran support is quite problematic on 64 bit platforms, F2C has been deactivated")
 endif()
 
 set(SMPI_F2C 0)
-if(HAVE_F2C_H AND F2C_EXE AND HAVE_F2C_LIB)
+if(HAVE_F2C_H AND F2C_EXE AND HAVE_F2C_LIB AND COMPILER_OK)
   set(SMPI_F2C 1)
 endif()