X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/e19d44d4735c16f7fd1d3da1a143388faae13edd..888191381c0597924ca187ce08a36b10f1012dda:/CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt index f12df62b42..f45dca95b0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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()