Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
stop checking for HAVE_GNU_LD now that we don't use the result
[simgrid.git] / CMakeLists.txt
index f12df62..f45dca9 100644 (file)
@@ -79,9 +79,9 @@ if ((NOT DEFINED enable_smpi) OR enable_smpi)
   endif()
   
   if(CMAKE_Fortran_COMPILER)
+
     # Fortran compiler detected: save it, then replace by smpiff
     set(SMPI_Fortran_COMPILER "${CMAKE_Fortran_COMPILER}" CACHE FILEPATH "The real Fortran compiler")
-    set(CMAKE_Fortran_COMPILER smpiff)
 
        # Set flags/libs to be used in smpiff
     if(CMAKE_Fortran_COMPILER_ID MATCHES "GNU")
@@ -428,38 +428,6 @@ else()
   SET(HAVE_SMPI 0)
 endif()
 
-#--------------------------------------------------------------------------------------------------
-### Check for GNU dynamic linker
-CHECK_INCLUDE_FILE("dlfcn.h" HAVE_DLFCN_H)
-if (HAVE_DLFCN_H)
-  execute_process(COMMAND ${CMAKE_C_COMPILER} ${CMAKE_HOME_DIRECTORY}/tools/cmake/test_prog/prog_gnu_dynlinker.c ${DL_LIBRARY} -o test_gnu_ld
-                  WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
-                  OUTPUT_VARIABLE HAVE_GNU_LD_compil
-  )
-  if(HAVE_GNU_LD_compil)
-    set(HAVE_GNU_LD 0)
-    message(STATUS "Warning: test program toward GNU ld failed to compile:")
-    message(STATUS "${HAVE_GNU_LD_comp_output}")
-  else()
-    execute_process(COMMAND ./test_gnu_ld
-                    WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
-                    RESULT_VARIABLE HAVE_GNU_LD_run
-                    OUTPUT_VARIABLE var_exec
-                   )
-
-    if(NOT HAVE_GNU_LD_run)
-      set(HAVE_GNU_LD 1)
-      message(STATUS "We are using GNU dynamic linker")
-    else()
-      set(HAVE_GNU_LD 0)
-      message(STATUS "Warning: error while checking for GNU ld:")
-      message(STATUS "Test output: '${var_exec}'")
-      message(STATUS "Exit status: ${HAVE_GNU_LD_run}")
-    endif()
-    file(REMOVE test_gnu_ld)
-  endif()
-endif()
-
 #--------------------------------------------------------------------------------------------------
 ### Initialize of CONTEXT THREADS
 
@@ -703,6 +671,16 @@ set(CMAKE_SMPI_COMMAND "${CMAKE_SMPI_COMMAND}:\${LD_LIBRARY_PATH:+:$LD_LIBRARY_P
 set(SMPIMAIN smpimain)
 
 configure_file(${CMAKE_HOME_DIRECTORY}/include/smpi/mpif.h.in ${CMAKE_BINARY_DIR}/include/smpi/mpif.h @ONLY)
+#configure mpif.f90 to build mpi.mod
+if(SMPI_FORTRAN)
+  set(MODULE_MPIF_IN "module mpi")
+  set(MODULE_MPIF_OUT "end module mpi")
+  configure_file(${CMAKE_HOME_DIRECTORY}/include/smpi/mpif.h.in ${CMAKE_BINARY_DIR}/src/smpi/mpif.f90.generated @ONLY)
+  execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_BINARY_DIR}/src/smpi/mpif.f90.generated ${CMAKE_BINARY_DIR}/src/smpi/mpif.f90)
+  set(CMAKE_Fortran_MODULE_DIRECTORY ${CMAKE_BINARY_DIR}/include/smpi)
+  add_library(mpi SHARED ${CMAKE_BINARY_DIR}/src/smpi/mpif.f90)
+endif()
+
 foreach(script cc cxx ff f90 run)
   configure_file(${CMAKE_HOME_DIRECTORY}/src/smpi/smpi${script}.in ${CMAKE_BINARY_DIR}/bin/smpi${script} @ONLY)
 endforeach()