X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/47a6b2b4bbfa3f2acb62c6a0a48569f3b5194f15..1bbca19ae9a38f3cbac1162b207bb71b7fbf328d:/buildtools/Cmake/Modules/FindF2c.cmake diff --git a/buildtools/Cmake/Modules/FindF2c.cmake b/buildtools/Cmake/Modules/FindF2c.cmake index 75121eb39b..efe8df6aa9 100644 --- a/buildtools/Cmake/Modules/FindF2c.cmake +++ b/buildtools/Cmake/Modules/FindF2c.cmake @@ -1,39 +1,84 @@ find_path(HAVE_F2C_H f2c.h - HINTS - $ENV{LD_LIBRARY_PATH} - PATH_SUFFIXES include/ - PATHS - /opt - /opt/local - /opt/csw - /sw - /usr -) - -find_program(F2C_EXE - NAME f2c - PATH_SUFFIXES bin/ - PATHS - /opt - /opt/local - /opt/csw - /sw - /usr -) + HINTS + $ENV{LD_LIBRARY_PATH} + PATH_SUFFIXES include/ + PATHS + /opt + /opt/local + /opt/csw + /sw + /usr + ) + +find_program(F2C_EXE + NAME f2c + PATH_SUFFIXES bin/ + PATHS + /opt + /opt/local + /opt/csw + /sw + /usr + ) find_library(HAVE_F2C_LIB - NAME f2c - HINTS - $ENV{LD_LIBRARY_PATH} - PATH_SUFFIXES lib/ - PATHS - /opt - /opt/local - /opt/csw - /sw - /usr -) + NAME f2c + HINTS + $ENV{LD_LIBRARY_PATH} + PATH_SUFFIXES lib/ + PATHS + /opt + /opt/local + /opt/csw + /sw + /usr + ) + +if(HAVE_F2C_H) + set(HAVE_SMPI_F2C_H 1) +endif() + +message(STATUS "Looking for f2c.h") +if(HAVE_F2C_H) + message(STATUS "Looking for f2c.h - found") +else() + message(STATUS "Looking for f2c.h - not found") +endif() + +message(STATUS "Looking for lib f2c") +if(HAVE_F2C_LIB) + message(STATUS "Looking for lib f2c - found") +else() + message(STATUS "Looking for lib f2c - not found") +endif() + +message(STATUS "Looking for bin f2c") +if(F2C_EXE) + message(STATUS "Found F2C: ${F2C_EXE}") +else() + message(STATUS "Looking for bin f2c - not found") +endif() mark_as_advanced(HAVE_F2C_H) mark_as_advanced(F2C_EXE) -mark_as_advanced(HAVE_F2C_LIB) \ No newline at end of file +mark_as_advanced(HAVE_F2C_LIB) + +if(HAVE_F2C_H) + include_directories(${HAVE_F2C_H}) +else() + message("-- Fortran for smpi is not installed (http://www.netlib.org/f2c/).") +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 AND COMPILER_OK) + set(SMPI_F2C 1) +endif()