1
1
Этот коммит содержится в:
Gilles Gouaillardet 2014-10-06 19:56:47 +09:00 коммит произвёл Gilles Gouaillardet
родитель ab148e4e0c
Коммит dd572a0838
16 изменённых файлов: 213 добавлений и 198 удалений

Просмотреть файл

@ -104,69 +104,60 @@ AM_CONDITIONAL(WANT_PERUSE, test "$WANT_PERUSE" = "1")
AC_MSG_CHECKING([if want Fortran MPI bindings]) AC_MSG_CHECKING([if want Fortran MPI bindings])
AC_ARG_ENABLE(mpi-fortran, AC_ARG_ENABLE(mpi-fortran,
AC_HELP_STRING([--enable-mpi-fortran], AC_HELP_STRING([--enable-mpi-fortran],
[specify which Fortran MPI bindings to build: all (or yes), none (or no), mpifh (build only mpif.h support), usempi (build mpif.h and the mpi module), or usempif08 (build mpifh, the mpi module, and the mpi_f08 module) (default: "all" if Fortran compiler found)])) [specify which Fortran MPI bindings to build: yes, none (or no), best-effort, mpifh (build only mpif.h support), usempi (build mpif.h and the mpi module), or usempif08 (or all, build mpifh, the mpi module, and the mpi_f08 module) (default: "yes" if Fortran compiler found)]))
OMPI_FORTRAN_NO_BINDINGS=0
OMPI_FORTRAN_MPIFH_BINDINGS=1
OMPI_FORTRAN_USEMPI_BINDINGS=2
OMPI_FORTRAN_USEMPIF08_BINDINGS=3
OMPI_WANT_FORTRAN_BINDINGS=$OMPI_FORTRAN_NO_BINDINGS
OMPI_TRY_FORTRAN_BINDINGS=$OMPI_FORTRAN_NO_BINDINGS
OMPI_FORTRAN_USER_REQUESTED=0
case "x$enable_mpi_fortran" in case "x$enable_mpi_fortran" in
x) x|xbest-effort)
AC_MSG_RESULT([yes (all/default)]) AC_MSG_RESULT([ (try)])
OMPI_WANT_FORTRAN_MPIFH_BINDINGS=1 OMPI_WANT_FORTRAN_BINDINGS=$OMPI_FORTRAN_NO_BINDINGS
OMPI_WANT_FORTRAN_USEMPI_BINDINGS=1 OMPI_TRY_FORTRAN_BINDINGS=$OMPI_FORTRAN_USEMPIF08_BINDINGS
OMPI_WANT_FORTRAN_USEMPIF08_BINDINGS=1
;; ;;
xyes|xall) xyes)
AC_MSG_RESULT([yes (all)]) AC_MSG_RESULT([yes (default)])
OMPI_FORTRAN_USER_REQUESTED=1 OMPI_WANT_FORTRAN_BINDINGS=$OMPI_FORTRAN_MPIFH_BINDINGS
OMPI_WANT_FORTRAN_MPIFH_BINDINGS=1 OMPI_TRY_FORTRAN_BINDINGS=$OMPI_FORTRAN_USEMPIF08_BINDINGS
OMPI_WANT_FORTRAN_USEMPI_BINDINGS=1 ;;
OMPI_WANT_FORTRAN_USEMPIF08_BINDINGS=1
xall|xusempif08)
AC_MSG_RESULT([all (usempif08)])
OMPI_WANT_FORTRAN_BINDINGS=$OMPI_FORTRAN_USEMPIF08_BINDINGS
OMPI_TRY_FORTRAN_BINDINGS=$OMPI_FORTRAN_USEMPIF08_BINDINGS
;; ;;
xno|xnone) xno|xnone)
AC_MSG_RESULT([no (none)]) AC_MSG_RESULT([no (none)])
OMPI_WANT_FORTRAN_MPIFH_BINDINGS=0 OMPI_WANT_FORTRAN_BINDINGS=$OMPI_FORTRAN_NO_BINDINGS
OMPI_WANT_FORTRAN_USEMPI_BINDINGS=0 OMPI_TRY_FORTRAN_BINDINGS=$OMPI_FORTRAN_NO_BINDINGS
OMPI_WANT_FORTRAN_USEMPIF08_BINDINGS=0
;; ;;
xmpifh) xmpifh)
AC_MSG_RESULT([yes (mpif.h)]) AC_MSG_RESULT([yes (mpif.h)])
OMPI_FORTRAN_USER_REQUESTED=1 OMPI_WANT_FORTRAN_BINDINGS=$OMPI_FORTRAN_MPIFH_BINDINGS
OMPI_WANT_FORTRAN_MPIFH_BINDINGS=1 OMPI_TRY_FORTRAN_BINDINGS=$OMPI_FORTRAN_MPIFH_BINDINGS
OMPI_WANT_FORTRAN_USEMPI_BINDINGS=0
OMPI_WANT_FORTRAN_USEMPIF08_BINDINGS=0
;; ;;
xusempi) xusempi)
AC_MSG_RESULT([yes (mpif.h, mpi module)]) AC_MSG_RESULT([yes (mpif.h, mpi module)])
OMPI_FORTRAN_USER_REQUESTED=1 OMPI_WANT_FORTRAN_BINDINGS=$OMPI_FORTRAN_USEMPI_BINDINGS
OMPI_WANT_FORTRAN_MPIFH_BINDINGS=1 OMPI_TRY_FORTRAN_BINDINGS=$OMPI_FORTRAN_USEMPI_BINDINGS
OMPI_WANT_FORTRAN_USEMPI_BINDINGS=1
OMPI_WANT_FORTRAN_USEMPIF08_BINDINGS=0
;;
xusempif08)
AC_MSG_RESULT([yes (mpif.h, mpi and mpi_f08 modules)])
OMPI_FORTRAN_USER_REQUESTED=1
OMPI_WANT_FORTRAN_MPIFH_BINDINGS=1
OMPI_WANT_FORTRAN_USEMPI_BINDINGS=1
OMPI_WANT_FORTRAN_USEMPIF08_BINDINGS=1
;; ;;
*) *)
AC_MSG_RESULT([unknown: $binding]) AC_MSG_RESULT([unknown: $binding])
AC_MSG_WARN([--enable-mpi-fortran only one of the following values: all, none, mpifh, usempi, or usempif08]) AC_MSG_WARN([--enable-mpi-fortran only one of the following values: yes, all, none, best-effort, mpifh, usempi, or usempif08])
AC_MSG_ERROR([Cannot continue]) AC_MSG_ERROR([Cannot continue])
;; ;;
esac esac
AS_IF([test $OMPI_WANT_FORTRAN_MPIFH_BINDINGS -eq 1 || \
test $OMPI_WANT_FORTRAN_USEMPI_BINDINGS -eq 1 || \
test $OMPI_WANT_FORTRAN_USEMPIF08_BINDINGS -eq 1],
[OMPI_WANT_FORTRAN_BINDINGS=1],
[OMPI_WANT_FORTRAN_BINDINGS=0])
# #
# MPI profiling # MPI profiling
# #
@ -263,7 +254,7 @@ AC_ARG_ENABLE(mpi-f08-subarray-prototype,
AC_HELP_STRING([--enable-mpi-f08-subarray-prototype], AC_HELP_STRING([--enable-mpi-f08-subarray-prototype],
[Use the PROTOTYPE and SEVERLY FUNCTIONALITY-LIMITED Fortran 08 'use mpi_f08' implementation that supports subarrrays (via Fortran descriptors). This option will disable the normal 'use mpi_f08' implementation and *only* build the prototype implementation.])) [Use the PROTOTYPE and SEVERLY FUNCTIONALITY-LIMITED Fortran 08 'use mpi_f08' implementation that supports subarrrays (via Fortran descriptors). This option will disable the normal 'use mpi_f08' implementation and *only* build the prototype implementation.]))
OMPI_BUILD_FORTRAN_F08_SUBARRAYS=0 OMPI_BUILD_FORTRAN_F08_SUBARRAYS=0
AS_IF([test $OMPI_WANT_FORTRAN_USEMPIF08_BINDINGS -eq 0], AS_IF([test $OMPI_TRY_FORTRAN_BINDINGS -lt $OMPI_FORTRAN_USEMPIF08_BINDINGS],
[AC_MSG_RESULT([none (use mpi_f08 disabled)])], [AC_MSG_RESULT([none (use mpi_f08 disabled)])],
[AS_IF([test "$enable_mpi_f08_subarray_prototype" = "yes"], [AS_IF([test "$enable_mpi_f08_subarray_prototype" = "yes"],
[OMPI_BUILD_FORTRAN_F08_SUBARRAYS=1 [OMPI_BUILD_FORTRAN_F08_SUBARRAYS=1

Просмотреть файл

@ -15,6 +15,8 @@
# Copyright (c) 2006-2007 Los Alamos National Security, LLC. All rights # Copyright (c) 2006-2007 Los Alamos National Security, LLC. All rights
# reserved. # reserved.
# Copyright (c) 2009 Oak Ridge National Labs. All rights reserved. # Copyright (c) 2009 Oak Ridge National Labs. All rights reserved.
# Copyright (c) 2014 Research Organization for Information Science
# and Technology (RIST). All rights reserved.
# $COPYRIGHT$ # $COPYRIGHT$
# #
# Additional copyrights may follow # Additional copyrights may follow
@ -28,7 +30,7 @@ AC_DEFUN([OMPI_FIND_MPI_AINT_COUNT_OFFSET],[
_OMPI_FIND_MPI_OFFSET_TYPE _OMPI_FIND_MPI_OFFSET_TYPE
if test "$ompi_fortran_happy" == "1" && \ if test "$ompi_fortran_happy" == "1" && \
test "$OMPI_WANT_FORTRAN_BINDINGS" == "1"; then test "$OMPI_TRY_FORTRAN_BINDINGS" -gt "$OMPI_FORTRAN_NO_BINDINGS"; then
_OMPI_FIND_MPI_INTEGER_KIND _OMPI_FIND_MPI_INTEGER_KIND
_OMPI_FIND_MPI_ADDRESS_KIND _OMPI_FIND_MPI_ADDRESS_KIND
_OMPI_FIND_MPI_COUNT_KIND _OMPI_FIND_MPI_COUNT_KIND

Просмотреть файл

@ -47,7 +47,7 @@ AC_DEFUN([OMPI_FORTRAN_CHECK], [
# Fortran compiler. This allows us to call this macro, even if # Fortran compiler. This allows us to call this macro, even if
# there is no Fortran compiler. If we have no Fortran compiler, # there is no Fortran compiler. If we have no Fortran compiler,
# then just set a bunch of defaults. # then just set a bunch of defaults.
if test $OMPI_WANT_FORTRAN_BINDINGS -eq 1; then if test $OMPI_TRY_FORTRAN_BINDINGS -gt $OMPI_FORTRAN_NO_BINDINGS; then
OMPI_FORTRAN_CHECK_TYPE([$1], [ofc_have_type=1], [ofc_have_type=0]) OMPI_FORTRAN_CHECK_TYPE([$1], [ofc_have_type=1], [ofc_have_type=0])
else else
AC_MSG_CHECKING([if Fortran compiler supports $1]) AC_MSG_CHECKING([if Fortran compiler supports $1])

Просмотреть файл

@ -24,7 +24,9 @@ AC_DEFUN([OMPI_FORTRAN_CHECK_LOGICAL_ARRAY],[
AC_CACHE_CHECK([for correct handling of Fortran logical arrays], AC_CACHE_CHECK([for correct handling of Fortran logical arrays],
logical_array_var, logical_array_var,
[if test "$1" = "none" || test $OMPI_WANT_FORTRAN_BINDINGS -eq 0 || test $ompi_fortran_happy -eq 0; then [if test "$1" = "none" || \
test $OMPI_TRY_FORTRAN_BINDINGS -eq $OMPI_FORTRAN_NO_BINDINGS || \
test $ompi_fortran_happy -eq 0; then
value=skipped value=skipped
else else
# Fortran module # Fortran module
@ -107,7 +109,7 @@ EOF
[value=no])]) [value=no])])
fi fi
AS_VAR_SET(logical_array_var, [$value]) AS_VAR_SET(logical_array_var, [$value])
]) ])
AS_VAR_COPY([ompi_fortran_logical_array_correct], [logical_array_var]) AS_VAR_COPY([ompi_fortran_logical_array_correct], [logical_array_var])
if test "$ompi_fortran_logical_array_correct" = "no" ; then if test "$ompi_fortran_logical_array_correct" = "no" ; then

Просмотреть файл

@ -31,52 +31,54 @@ AC_DEFUN([OMPI_FORTRAN_CHECK_REAL16_C_EQUIV],[
# We have to do this as a cache check for cross-compilation platforms # We have to do this as a cache check for cross-compilation platforms
AC_CACHE_CHECK([for C type matching bit representation of REAL*16], AC_CACHE_CHECK([for C type matching bit representation of REAL*16],
real16_matches_c_var, real16_matches_c_var,
[AS_IF([test "$OMPI_WANT_FORTRAN_BINDINGS" = "1" && test "$OMPI_HAVE_FORTRAN_REAL16" = "1"],[ [AS_IF([test "$OMPI_TRY_FORTRAN_BINDINGS" -gt "$OMPI_FORTRAN_NO_BINDINGS" && \
# AC_CACHE_CHECK automatically does its own AC_MSG_CHECKING, so close it out test "$OMPI_HAVE_FORTRAN_REAL16" = "1"],
AC_MSG_RESULT([pending]) [
# AC_CACHE_CHECK automatically does its own AC_MSG_CHECKING, so close it out
AC_MSG_RESULT([pending])
# First check the type that we found was the same length in C # First check the type that we found was the same length in C
AC_MSG_CHECKING([if $OMPI_FORTRAN_REAL16_C_TYPE == REAL*16]) AC_MSG_CHECKING([if $OMPI_FORTRAN_REAL16_C_TYPE == REAL*16])
OMPI_FORTRAN_CHECK_REAL16_EQUIV_TYPE([$OMPI_FORTRAN_REAL16_C_TYPE], [L]) OMPI_FORTRAN_CHECK_REAL16_EQUIV_TYPE([$OMPI_FORTRAN_REAL16_C_TYPE], [L])
# If that didn't work, see if we have a compiler-specific # If that didn't work, see if we have a compiler-specific
# type that might work # type that might work
AS_IF([test "$happy" = "no"], AS_IF([test "$happy" = "no"],
[AC_MSG_RESULT([$happy]) [AC_MSG_RESULT([$happy])
# Intel compiler has a special type that should work # Intel compiler has a special type that should work
AS_IF([test "$opal_cv_c_compiler_vendor" = "intel"], AS_IF([test "$opal_cv_c_compiler_vendor" = "intel"],
[AC_MSG_CHECKING([if intel compiler _Quad == REAL*16]) [AC_MSG_CHECKING([if intel compiler _Quad == REAL*16])
CFLAGS_save="$CFLAGS" CFLAGS_save="$CFLAGS"
CFLAGS="$CFLAGS -Qoption,cpp,--extended_float_types" CFLAGS="$CFLAGS -Qoption,cpp,--extended_float_types"
OPAL_UNIQ([CFLAGS]) OPAL_UNIQ([CFLAGS])
OMPI_FORTRAN_CHECK_REAL16_EQUIV_TYPE([_Quad], [q]) OMPI_FORTRAN_CHECK_REAL16_EQUIV_TYPE([_Quad], [q])
AS_IF([test "$happy" = "yes"], AS_IF([test "$happy" = "yes"],
[OMPI_FORTRAN_REAL16_C_TYPE="_Quad" [OMPI_FORTRAN_REAL16_C_TYPE="_Quad"
AC_MSG_RESULT([works!])], AC_MSG_RESULT([works!])],
[CFLAGS="$CFLAGS_save" [CFLAGS="$CFLAGS_save"
AC_MSG_RESULT([does not work])]) AC_MSG_RESULT([does not work])])
]) ])
AS_IF([test "$opal_cv_c_compiler_vendor" = "gnu" && test "$ac_cv_type___float128" = "yes"], AS_IF([test "$opal_cv_c_compiler_vendor" = "gnu" -a "$ac_cv_type___float128" = "yes"],
[AC_MSG_CHECKING([if gnu compiler __float128 == REAL*16]) [AC_MSG_CHECKING([if gnu compiler __float128 == REAL*16])
OPAL_UNIQ([CFLAGS]) OPAL_UNIQ([CFLAGS])
OMPI_FORTRAN_CHECK_REAL16_EQUIV_TYPE([__float128], [q]) OMPI_FORTRAN_CHECK_REAL16_EQUIV_TYPE([__float128], [q])
AS_IF([test "$happy" = "yes"], AS_IF([test "$happy" = "yes"],
[OMPI_FORTRAN_REAL16_C_TYPE="__float128" [OMPI_FORTRAN_REAL16_C_TYPE="__float128"
AC_MSG_RESULT([works!])], AC_MSG_RESULT([works!])],
[AC_MSG_RESULT([does not work])]) [AC_MSG_RESULT([does not work])])
]) ])
# We have to [re-]print a new message here, because # We have to [re-]print a new message here, because
# AC_CACHE_CHECK will automatically AC_MSG_RESULT # AC_CACHE_CHECK will automatically AC_MSG_RESULT
AC_MSG_CHECKING([for C type matching bit representation of REAL*16]) AC_MSG_CHECKING([for C type matching bit representation of REAL*16])
]) ])
AS_VAR_SET(real16_matches_c_var, [$happy]) AS_VAR_SET(real16_matches_c_var, [$happy])
],[ ],[
# No fortran bindings or no REAL*16 # No fortran bindings or no REAL*16
AS_IF([test "$OMPI_WANT_FORTRAN_BINDINGS" = "0"], AS_IF([test "$OMPI_TRY_FORTRAN_BINDINGS" = "$OMPI_FORTRAN_NO_BINDINGS"],
[msg="skipped (no Fortran MPI bindings)"], [msg="skipped (no Fortran MPI bindings)"],
[msg="skipped (no REAL*16)"]) [msg="skipped (no REAL*16)"])
AS_VAR_SET(real16_matches_c_var, [$msg]) AS_VAR_SET(real16_matches_c_var, [$msg])
])
]) ])
])
AS_VAR_COPY([ompi_real16_matches_c], [real16_matches_c_var]) AS_VAR_COPY([ompi_real16_matches_c], [real16_matches_c_var])
AS_VAR_POPDEF([real16_matches_c_var]) AS_VAR_POPDEF([real16_matches_c_var])

Просмотреть файл

@ -34,7 +34,8 @@ AC_DEFUN([OMPI_FORTRAN_FIND_EXT_SYMBOL_CONVENTION], [
AC_CACHE_CHECK([$FORTRAN external symbol convention], AC_CACHE_CHECK([$FORTRAN external symbol convention],
[ompi_cv_fortran_external_symbol], [ompi_cv_fortran_external_symbol],
[if test "$FC" = "none" || test "$OMPI_WANT_FORTRAN_BINDINGS" = "0"; then [if test "$FC" = "none" || \
test "$OMPI_TRY_FORTRAN_BINDINGS" = "$OMPI_FORTRAN_NO_BINDINGS"; then
ompi_cv_fortran_external_symbol="skipped" ompi_cv_fortran_external_symbol="skipped"
else else
cat >conftest.f <<EOF cat >conftest.f <<EOF

Просмотреть файл

@ -30,7 +30,8 @@ AC_DEFUN([OMPI_FORTRAN_GET_KIND_VALUE],[
rm -f conftest.out rm -f conftest.out
AC_CACHE_CHECK([KIND value of Fortran $1], kind_value_var, AC_CACHE_CHECK([KIND value of Fortran $1], kind_value_var,
[if test $OMPI_WANT_FORTRAN_BINDINGS -eq 0 || test $ompi_fortran_happy -eq 0; then [if test $OMPI_TRY_FORTRAN_BINDINGS -eq $OMPI_FORTRAN_NO_BINDINGS || \
test $ompi_fortran_happy -eq 0; then
value=skipped value=skipped
else else
AC_LANG_PUSH([Fortran]) AC_LANG_PUSH([Fortran])
@ -75,7 +76,8 @@ AC_DEFUN([_OMPI_FORTRAN_SELECTED_INT_KIND],[
AC_CACHE_CHECK([Fortran value of selected_int_kind($1)], sel_int_kind_var, AC_CACHE_CHECK([Fortran value of selected_int_kind($1)], sel_int_kind_var,
[outval=no [outval=no
AS_IF([test $OMPI_WANT_FORTRAN_BINDINGS -eq 1 && test $ompi_fortran_happy -eq 1], AS_IF([test $OMPI_TRY_FORTRAN_BINDINGS -gt $OMPI_FORTRAN_NO_BINDINGS && \
test $ompi_fortran_happy -eq 1],
[rm -f conftest.out [rm -f conftest.out
AC_LANG_PUSH([Fortran]) AC_LANG_PUSH([Fortran])
AC_RUN_IFELSE(AC_LANG_PROGRAM(, [[ AC_RUN_IFELSE(AC_LANG_PROGRAM(, [[

Просмотреть файл

@ -33,7 +33,9 @@ AC_DEFUN([OMPI_FORTRAN_GET_VALUE_TRUE],[
AC_CACHE_CHECK([Fortran value for .TRUE. logical type], AC_CACHE_CHECK([Fortran value for .TRUE. logical type],
fortran_true_var, fortran_true_var,
[if test "$1" = "none" || test $OMPI_WANT_FORTRAN_BINDINGS -eq 0 || test $ompi_fortran_happy -eq 0 ; then [if test "$1" = "none" || \
test $OMPI_TRY_FORTRAN_BINDINGS -eq $OMPI_FORTRAN_NO_BINDINGS || \
test $ompi_fortran_happy -eq 0 ; then
value=77 value=77
else else
# #

Просмотреть файл

@ -26,9 +26,7 @@ dnl
AC_DEFUN([OMPI_SETUP_MPI_FORTRAN],[ AC_DEFUN([OMPI_SETUP_MPI_FORTRAN],[
# Default to building nothing # Default to building nothing
OMPI_BUILD_FORTRAN_MPIFH_BINDINGS=0 OMPI_BUILD_FORTRAN_BINDINGS=$OMPI_FORTRAN_NO_BINDINGS
OMPI_BUILD_FORTRAN_USEMPI_BINDINGS=0
OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS=0
OMPI_FORTRAN_BUILD_SIZEOF=0 OMPI_FORTRAN_BUILD_SIZEOF=0
@ -86,7 +84,17 @@ AC_DEFUN([OMPI_SETUP_MPI_FORTRAN],[
ompi_fortran_caps=0 ompi_fortran_caps=0
ompi_fortran_plain=0 ompi_fortran_plain=0
AS_IF([test $OMPI_WANT_FORTRAN_BINDINGS -eq 1], AC_DEFINE_UNQUOTED([OMPI_FORTRAN_MPIFH_BINDINGS],
[$OMPI_FORTRAN_MPIFH_BINDINGS],
[Support for mpif.h bindings])
AC_DEFINE_UNQUOTED([OMPI_FORTRAN_USEMPI_BINDINGS],
[$OMPI_FORTRAN_USEMPI_BINDINGS],
[Support for use mpi bindings])
AC_DEFINE_UNQUOTED([OMPI_FORTRAN_USEMPIF08_BINDINGS],
[$OMPI_FORTRAN_USEMPIF08_BINDINGS],
[Support for use mpif08 bindings])
AS_IF([test $OMPI_TRY_FORTRAN_BINDINGS -gt $OMPI_FORTRAN_NO_BINDINGS],
[OMPI_SETUP_FC([ompi_fortran_happy=1])]) [OMPI_SETUP_FC([ompi_fortran_happy=1])])
# These values will be determined by SETUP_FC. We must always # These values will be determined by SETUP_FC. We must always
@ -108,7 +116,8 @@ AC_DEFUN([OMPI_SETUP_MPI_FORTRAN],[
# Check to see if any of the MPI Fortran bindings were # Check to see if any of the MPI Fortran bindings were
# specifically requested. If so, and we weren't able to setup the # specifically requested. If so, and we weren't able to setup the
# Fortran compiler properly, it's an error. # Fortran compiler properly, it's an error.
AS_IF([test $ompi_fortran_happy -eq 0 && test $OMPI_FORTRAN_USER_REQUESTED -eq 1], AS_IF([test $ompi_fortran_happy -eq 0 && \
test $OMPI_WANT_FORTRAN_BINDINGS -gt $OMPI_FORTRAN_NO_BINDINGS],
[AC_MSG_WARN([MPI Fortran bindings requested, but no suitable Fortran compiler found]) [AC_MSG_WARN([MPI Fortran bindings requested, but no suitable Fortran compiler found])
AC_MSG_ERROR([Cannot continue])]) AC_MSG_ERROR([Cannot continue])])
@ -263,9 +272,10 @@ AC_DEFUN([OMPI_SETUP_MPI_FORTRAN],[
AC_MSG_CHECKING([if building Fortran mpif.h bindings]) AC_MSG_CHECKING([if building Fortran mpif.h bindings])
AS_IF([test $ompi_fortran_happy -eq 1], AS_IF([test $ompi_fortran_happy -eq 1],
[AC_MSG_RESULT([yes]) [OMPI_BUILD_FORTRAN_BINDINGS=$OMPI_FORTRAN_MPIFH_BINDINGS
OMPI_BUILD_FORTRAN_MPIFH_BINDINGS=1], AC_MSG_RESULT([yes])],
[AC_MSG_RESULT([no])]) [OMPI_TRY_FORTRAN_BINDINGS=$OMPI_FORTRAN_NO_BINDINGS
AC_MSG_RESULT([no])])
# "INTERFACE" is needed for MPI_SIZEOF # "INTERFACE" is needed for MPI_SIZEOF
AS_IF([test $ompi_fortran_happy -eq 1], AS_IF([test $ompi_fortran_happy -eq 1],
@ -303,8 +313,7 @@ AC_DEFUN([OMPI_SETUP_MPI_FORTRAN],[
#-------------------------------------------- #--------------------------------------------
AS_IF([test $ompi_fortran_happy -eq 1 && \ AS_IF([test $ompi_fortran_happy -eq 1 && \
( test $OMPI_WANT_FORTRAN_USEMPI_BINDINGS -eq 1 || \ test $OMPI_TRY_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPI_BINDINGS],
test $OMPI_WANT_FORTRAN_USEMPIF08_BINDINGS -eq 1 )],
[ # Look for the fortran module compiler flag [ # Look for the fortran module compiler flag
OMPI_FORTRAN_FIND_MODULE_INCLUDE_FLAG([], OMPI_FORTRAN_FIND_MODULE_INCLUDE_FLAG([],
[AC_MSG_WARN([*** Could not determine the fortran compiler flag to indicate where modules reside]) [AC_MSG_WARN([*** Could not determine the fortran compiler flag to indicate where modules reside])
@ -317,9 +326,9 @@ AC_DEFUN([OMPI_SETUP_MPI_FORTRAN],[
# If we got here, we can build the mpi module if it was requested. # If we got here, we can build the mpi module if it was requested.
# Decide whether to build the ignore TKR version or the # Decide whether to build the ignore TKR version or the
# non-ignore-TKR/legacy version. # non-ignore-TKR/legacy version.
AS_IF([test $OMPI_WANT_FORTRAN_USEMPI_BINDINGS -eq 1 && \ AS_IF([test $OMPI_TRY_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPI_BINDINGS && \
test $ompi_fortran_happy -eq 1], test $ompi_fortran_happy -eq 1],
[OMPI_BUILD_FORTRAN_USEMPI_BINDINGS=1 [OMPI_BUILD_FORTRAN_BINDINGS=$OMPI_FORTRAN_USEMPI_BINDINGS
AS_IF([test $OMPI_FORTRAN_HAVE_IGNORE_TKR -eq 1], AS_IF([test $OMPI_FORTRAN_HAVE_IGNORE_TKR -eq 1],
[OMPI_FORTRAN_USEMPI_DIR=mpi/fortran/use-mpi-ignore-tkr [OMPI_FORTRAN_USEMPI_DIR=mpi/fortran/use-mpi-ignore-tkr
OMPI_FORTRAN_USEMPI_LIB=-lmpi_usempi_ignore_tkr], OMPI_FORTRAN_USEMPI_LIB=-lmpi_usempi_ignore_tkr],
@ -328,16 +337,17 @@ AC_DEFUN([OMPI_SETUP_MPI_FORTRAN],[
]) ])
OMPI_FORTRAN_HAVE_ISO_C_BINDING=0 OMPI_FORTRAN_HAVE_ISO_C_BINDING=0
AS_IF([test $OMPI_WANT_FORTRAN_USEMPI_BINDINGS -eq 1 && \ AS_IF([test $OMPI_TRY_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPI_BINDINGS && \
test $ompi_fortran_happy -eq 1], test $ompi_fortran_happy -eq 1],
[OMPI_FORTRAN_CHECK_ISO_C_BINDING( [OMPI_FORTRAN_CHECK_ISO_C_BINDING(
[OMPI_FORTRAN_HAVE_ISO_C_BINDING=1], [OMPI_FORTRAN_HAVE_ISO_C_BINDING=1],
[OMPI_FORTRAN_HAVE_ISO_C_BINDING=0])]) [OMPI_FORTRAN_HAVE_ISO_C_BINDING=0])])
AC_MSG_CHECKING([if building Fortran 'use mpi' bindings]) AC_MSG_CHECKING([if building Fortran 'use mpi' bindings])
AS_IF([test $OMPI_BUILD_FORTRAN_USEMPI_BINDINGS -eq 1], AS_IF([test $OMPI_BUILD_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPI_BINDINGS],
[AC_MSG_RESULT([yes])], [AC_MSG_RESULT([yes])],
[AC_MSG_RESULT([no])]) [OMPI_TRY_FORTRAN_BINDINGS=$OMPI_FORTRAN_MPIFH_BINDINGS
AC_MSG_RESULT([no])])
#--------------------------------- #---------------------------------
# Fortran use mpi_f08 MPI bindings # Fortran use mpi_f08 MPI bindings
@ -348,9 +358,9 @@ AC_DEFUN([OMPI_SETUP_MPI_FORTRAN],[
# We need to have ignore TKR functionality to build the mpi_f08 # We need to have ignore TKR functionality to build the mpi_f08
# module # module
AS_IF([test $OMPI_WANT_FORTRAN_USEMPIF08_BINDINGS -eq 1 && AS_IF([test $OMPI_TRY_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS &&
test $OMPI_FORTRAN_HAVE_IGNORE_TKR -eq 1], test $OMPI_FORTRAN_HAVE_IGNORE_TKR -eq 1],
[OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS=1 [OMPI_BUILD_FORTRAN_BINDINGS=$OMPI_FORTRAN_USEMPIF08_BINDINGS
OMPI_FORTRAN_F08_PREDECL=$OMPI_FORTRAN_IGNORE_TKR_PREDECL OMPI_FORTRAN_F08_PREDECL=$OMPI_FORTRAN_IGNORE_TKR_PREDECL
OMPI_FORTRAN_F08_TYPE=$OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_FORTRAN_F08_TYPE=$OMPI_FORTRAN_IGNORE_TKR_TYPE
]) ])
@ -359,29 +369,29 @@ AC_DEFUN([OMPI_SETUP_MPI_FORTRAN],[
# the necessary forms of BIND(C) # the necessary forms of BIND(C)
OMPI_FORTRAN_HAVE_BIND_C=0 OMPI_FORTRAN_HAVE_BIND_C=0
AS_IF([test $OMPI_WANT_FORTRAN_USEMPIF08_BINDINGS -eq 1 && \ AS_IF([test $OMPI_TRY_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS && \
test $OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS -eq 1], test $OMPI_BUILD_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS],
[ # If we don't have ISO C bindings, we won't build mpi_f08 at all [ # If we don't have ISO C bindings, we won't build mpi_f08 at all
AS_IF([test "$OMPI_FORTRAN_HAVE_ISO_C_BINDING" -eq 0], AS_IF([test "$OMPI_FORTRAN_HAVE_ISO_C_BINDING" -eq 0],
[OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS=0])]) [OMPI_BUILD_FORTRAN_BINDINGS=$OMPI_FORTRAN_USEMPI_BINDINGS])])
OMPI_FORTRAN_HAVE_BIND_C_SUB=0 OMPI_FORTRAN_HAVE_BIND_C_SUB=0
AS_IF([test $OMPI_WANT_FORTRAN_USEMPIF08_BINDINGS -eq 1 && \ AS_IF([test $OMPI_TRY_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS && \
test $OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS -eq 1], test $OMPI_BUILD_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS],
[ # If we don't have SUBROUTINE BIND(C), we won't build mpi_f08 at all [ # If we don't have SUBROUTINE BIND(C), we won't build mpi_f08 at all
OMPI_FORTRAN_CHECK_BIND_C_SUB( OMPI_FORTRAN_CHECK_BIND_C_SUB(
[OMPI_FORTRAN_HAVE_BIND_C_SUB=1], [OMPI_FORTRAN_HAVE_BIND_C_SUB=1],
[OMPI_FORTRAN_HAVE_BIND_C_SUB=0 [OMPI_FORTRAN_HAVE_BIND_C_SUB=0
OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS=0])]) OMPI_BUILD_FORTRAN_BINDINGS=$OMPI_FORTRAN_USEMPI_BINDINGS])])
OMPI_FORTRAN_HAVE_BIND_C_TYPE=0 OMPI_FORTRAN_HAVE_BIND_C_TYPE=0
AS_IF([test $OMPI_WANT_FORTRAN_USEMPIF08_BINDINGS -eq 1 && \ AS_IF([test $OMPI_TRY_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS && \
test $OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS -eq 1], test $OMPI_BUILD_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS],
[ # If we don't have TYPE, BIND(C), we won't build mpi_f08 at all [ # If we don't have TYPE, BIND(C), we won't build mpi_f08 at all
OMPI_FORTRAN_CHECK_BIND_C_TYPE( OMPI_FORTRAN_CHECK_BIND_C_TYPE(
[OMPI_FORTRAN_HAVE_BIND_C_TYPE=1], [OMPI_FORTRAN_HAVE_BIND_C_TYPE=1],
[OMPI_FORTRAN_HAVE_BIND_C_TYPE=0 [OMPI_FORTRAN_HAVE_BIND_C_TYPE=0
OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS=0])]) OMPI_BUILD_FORTRAN_BINDINGS=$OMPI_FORTRAN_USEMPI_BINDINGS])])
# Per discussion on the devel list starting here: # Per discussion on the devel list starting here:
# http://www.open-mpi.org/community/lists/devel/2014/01/13799.php # http://www.open-mpi.org/community/lists/devel/2014/01/13799.php
@ -396,8 +406,8 @@ AC_DEFUN([OMPI_SETUP_MPI_FORTRAN],[
# to ensure that BIND(C, name="foo") works, where "foo" is # to ensure that BIND(C, name="foo") works, where "foo" is
# actually a name >32 characters. # actually a name >32 characters.
OMPI_FORTRAN_HAVE_BIND_C_TYPE_NAME=0 OMPI_FORTRAN_HAVE_BIND_C_TYPE_NAME=0
AS_IF([test $OMPI_WANT_FORTRAN_USEMPIF08_BINDINGS -eq 1 && \ AS_IF([test $OMPI_TRY_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS && \
test $OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS -eq 1], test $OMPI_BUILD_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS],
[ # If we don't have TYPE, BIND(C, name="foo"), we won't build mpi_f08 at all [ # If we don't have TYPE, BIND(C, name="foo"), we won't build mpi_f08 at all
OMPI_FORTRAN_CHECK_BIND_C_TYPE_NAME( OMPI_FORTRAN_CHECK_BIND_C_TYPE_NAME(
[ # If we got here, we have all the required forms of [ # If we got here, we have all the required forms of
@ -405,74 +415,74 @@ AC_DEFUN([OMPI_SETUP_MPI_FORTRAN],[
OMPI_FORTRAN_HAVE_BIND_C=1 OMPI_FORTRAN_HAVE_BIND_C=1
OMPI_FORTRAN_HAVE_BIND_C_TYPE_NAME=1], OMPI_FORTRAN_HAVE_BIND_C_TYPE_NAME=1],
[OMPI_FORTRAN_HAVE_BIND_C_TYPE_NAME=0 [OMPI_FORTRAN_HAVE_BIND_C_TYPE_NAME=0
OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS=0])]) OMPI_BUILD_FORTRAN_BINDINGS=$OMPI_FORTRAN_USEMPI_BINDINGS])])
# Per https://svn.open-mpi.org/trac/ompi/ticket/4590, if the # Per https://svn.open-mpi.org/trac/ompi/ticket/4590, if the
# Fortran compiler doesn't support PROCEDURE in the way we # Fortran compiler doesn't support PROCEDURE in the way we
# want/need, disable the mpi_f08 module. # want/need, disable the mpi_f08 module.
OMPI_FORTRAN_HAVE_PROCEDURE=0 OMPI_FORTRAN_HAVE_PROCEDURE=0
AS_IF([test $OMPI_WANT_FORTRAN_USEMPIF08_BINDINGS -eq 1 && \ AS_IF([test $OMPI_TRY_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS && \
test $OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS -eq 1], test $OMPI_BUILD_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS],
[ # Does the compiler support "procedure" [ # Does the compiler support "procedure"
OMPI_FORTRAN_CHECK_PROCEDURE( OMPI_FORTRAN_CHECK_PROCEDURE(
[OMPI_FORTRAN_HAVE_PROCEDURE=1], [OMPI_FORTRAN_HAVE_PROCEDURE=1],
[OMPI_FORTRAN_HAVE_PROCEDURE=0 [OMPI_FORTRAN_HAVE_PROCEDURE=0
OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS=0])]) OMPI_BUILD_FORTRAN_BINDINGS=$OMPI_FORTRAN_USEMPI_BINDINGS])])
OMPI_FORTRAN_HAVE_OPTIONAL_ARGS=0 OMPI_FORTRAN_HAVE_OPTIONAL_ARGS=0
AS_IF([test $OMPI_WANT_FORTRAN_USEMPIF08_BINDINGS -eq 1 && \ AS_IF([test $OMPI_TRY_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS && \
test $OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS -eq 1], test $OMPI_BUILD_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS],
[ # Does the compiler have optional arguments? [ # Does the compiler have optional arguments?
OMPI_FORTRAN_CHECK_OPTIONAL_ARGS( OMPI_FORTRAN_CHECK_OPTIONAL_ARGS(
[OMPI_FORTRAN_HAVE_OPTIONAL_ARGS=1], [OMPI_FORTRAN_HAVE_OPTIONAL_ARGS=1],
[OMPI_FORTRAN_HAVE_OPTIONAL_ARGS=0 [OMPI_FORTRAN_HAVE_OPTIONAL_ARGS=0
OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS=0])]) OMPI_BUILD_FORTRAN_BINDINGS=$OMPI_FORTRAN_USEMPI_BINDINGS])])
OMPI_FORTRAN_HAVE_C_FUNLOC=0 OMPI_FORTRAN_HAVE_C_FUNLOC=0
AS_IF([test $OMPI_WANT_FORTRAN_USEMPIF08_BINDINGS -eq 1 && \ AS_IF([test $OMPI_TRY_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS && \
test $OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS -eq 1], test $OMPI_BUILD_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS],
[ # Does the compiler supports c_funloc per [ # Does the compiler supports c_funloc per
# TS 29113 subclause 8.1 ? # TS 29113 subclause 8.1 ?
OMPI_FORTRAN_CHECK_C_FUNLOC( OMPI_FORTRAN_CHECK_C_FUNLOC(
[OMPI_FORTRAN_HAVE_C_FUNLOC=1], [OMPI_FORTRAN_HAVE_C_FUNLOC=1],
[OMPI_FORTRAN_HAVE_C_FUNLOC=0 [OMPI_FORTRAN_HAVE_C_FUNLOC=0
OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS=0])]) OMPI_BUILD_FORTRAN_BINDINGS=$OMPI_FORTRAN_USEMPI_BINDINGS])])
OMPI_FORTRAN_HAVE_PRIVATE=0 OMPI_FORTRAN_HAVE_PRIVATE=0
AS_IF([test $OMPI_WANT_FORTRAN_USEMPIF08_BINDINGS -eq 1 && \ AS_IF([test $OMPI_TRY_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS && \
test $OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS -eq 1], test $OMPI_BUILD_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS],
[ # Does the compiler support "private" [ # Does the compiler support "private"
OMPI_FORTRAN_CHECK_PRIVATE( OMPI_FORTRAN_CHECK_PRIVATE(
[OMPI_FORTRAN_HAVE_PRIVATE=1], [OMPI_FORTRAN_HAVE_PRIVATE=1],
[OMPI_FORTRAN_HAVE_PRIVATE=0])]) [OMPI_FORTRAN_HAVE_PRIVATE=0])])
OMPI_FORTRAN_HAVE_PROTECTED=0 OMPI_FORTRAN_HAVE_PROTECTED=0
AS_IF([test $OMPI_WANT_FORTRAN_USEMPIF08_BINDINGS -eq 1 && \ AS_IF([test $OMPI_TRY_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS && \
test $OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS -eq 1], test $OMPI_BUILD_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS],
[ # Does the compiler support "protected" [ # Does the compiler support "protected"
OMPI_FORTRAN_CHECK_PROTECTED( OMPI_FORTRAN_CHECK_PROTECTED(
[OMPI_FORTRAN_HAVE_PROTECTED=1], [OMPI_FORTRAN_HAVE_PROTECTED=1],
[OMPI_FORTRAN_HAVE_PROTECTED=0])]) [OMPI_FORTRAN_HAVE_PROTECTED=0])])
OMPI_FORTRAN_HAVE_ABSTRACT=0 OMPI_FORTRAN_HAVE_ABSTRACT=0
AS_IF([test $OMPI_WANT_FORTRAN_USEMPIF08_BINDINGS -eq 1 && \ AS_IF([test $OMPI_TRY_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS && \
test $OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS -eq 1], test $OMPI_BUILD_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS],
[ # Does the compiler support "abstract" [ # Does the compiler support "abstract"
OMPI_FORTRAN_CHECK_ABSTRACT( OMPI_FORTRAN_CHECK_ABSTRACT(
[OMPI_FORTRAN_HAVE_ABSTRACT=1], [OMPI_FORTRAN_HAVE_ABSTRACT=1],
[OMPI_FORTRAN_HAVE_ABSTRACT=0])]) [OMPI_FORTRAN_HAVE_ABSTRACT=0])])
OMPI_FORTRAN_HAVE_ASYNCHRONOUS=0 OMPI_FORTRAN_HAVE_ASYNCHRONOUS=0
AS_IF([test $OMPI_WANT_FORTRAN_USEMPIF08_BINDINGS -eq 1 && \ AS_IF([test $OMPI_TRY_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS && \
test $OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS -eq 1], test $OMPI_BUILD_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS],
[ # Does the compiler support "asynchronous" [ # Does the compiler support "asynchronous"
OMPI_FORTRAN_CHECK_ASYNCHRONOUS( OMPI_FORTRAN_CHECK_ASYNCHRONOUS(
[OMPI_FORTRAN_HAVE_ASYNCHRONOUS=1], [OMPI_FORTRAN_HAVE_ASYNCHRONOUS=1],
[OMPI_FORTRAN_HAVE_ASYNCHRONOUS=0])]) [OMPI_FORTRAN_HAVE_ASYNCHRONOUS=0])])
OMPI_FORTRAN_F08_HANDLE_SIZE=4 OMPI_FORTRAN_F08_HANDLE_SIZE=4
AS_IF([test $OMPI_WANT_FORTRAN_USEMPIF08_BINDINGS -eq 1 && \ AS_IF([test $OMPI_TRY_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS && \
test $OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS -eq 1], test $OMPI_BUILD_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS],
[ # How big are derived types with a single INTEGER? [ # How big are derived types with a single INTEGER?
OMPI_FORTRAN_GET_SIZEOF([type, BIND(C) :: test_mpi_handle OMPI_FORTRAN_GET_SIZEOF([type, BIND(C) :: test_mpi_handle
integer :: MPI_VAL integer :: MPI_VAL
@ -485,8 +495,8 @@ end type test_mpi_handle],
OMPI_FORTRAN_F08_PREDECL='!' OMPI_FORTRAN_F08_PREDECL='!'
OMPI_FORTRAN_F08_TYPE=real OMPI_FORTRAN_F08_TYPE=real
OMPI_FORTRAN_HAVE_F08_ASSUMED_RANK=0 OMPI_FORTRAN_HAVE_F08_ASSUMED_RANK=0
AS_IF([test $OMPI_WANT_FORTRAN_USEMPIF08_BINDINGS -eq 1 && \ AS_IF([test $OMPI_TRY_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS && \
test $OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS -eq 1], test $OMPI_BUILD_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS],
[ # Look for Fortran 2008 assumed rank syntax [ # Look for Fortran 2008 assumed rank syntax
OMPI_FORTRAN_CHECK_F08_ASSUMED_RANK( OMPI_FORTRAN_CHECK_F08_ASSUMED_RANK(
[ # If we have assumed rank, we can build the use [ # If we have assumed rank, we can build the use
@ -533,13 +543,22 @@ end type test_mpi_handle],
# implementation, but for now, I'm just hard-wiring # implementation, but for now, I'm just hard-wiring
# OMPI_FORTRAN_NEED_WRAPPER_ROUTINES to 1 when we're # OMPI_FORTRAN_NEED_WRAPPER_ROUTINES to 1 when we're
# building the F08 wrappers. # building the F08 wrappers.
OMPI_FORTRAN_NEED_WRAPPER_ROUTINES=$OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS if test $OMPI_BUILD_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS; then
OMPI_FORTRAN_NEED_WRAPPER_ROUTINES=1
else
OMPI_FORTRAN_NEED_WRAPPER_ROUTINES=0
fi
AC_MSG_CHECKING([if building Fortran 'use mpi_f08' bindings]) AC_MSG_CHECKING([if building Fortran 'use mpi_f08' bindings])
AS_IF([test $OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS -eq 1], AS_IF([test $OMPI_BUILD_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS],
[OMPI_FORTRAN_USEMPIF08_LIB=-lmpi_usempif08 [OMPI_FORTRAN_USEMPIF08_LIB=-lmpi_usempif08
AC_MSG_RESULT([yes])], AC_MSG_RESULT([yes])],
[AC_MSG_RESULT([no])]) [OMPI_TRY_FORTRAN_BINDIGS=$OMPI_FORTRAN_USEMPI_BINDINGS
AC_MSG_RESULT([no])])
# If Fortran bindings is requested, make sure at least one can be built
AS_IF([test $OMPI_WANT_FORTRAN_BINDINGS -gt $OMPI_BUILD_FORTRAN_BINDINGS],
[AC_MSG_ERROR([Cannot build requested Fortran bindings, aborting])])
# ------------------- # -------------------
# mpif.h final setup # mpif.h final setup
@ -606,15 +625,12 @@ end type test_mpi_handle],
AM_CONDITIONAL(BUILD_MPI_FORTRAN_MPIFH_BINDINGS_LAYER, AM_CONDITIONAL(BUILD_MPI_FORTRAN_MPIFH_BINDINGS_LAYER,
[( test $WANT_MPI_PROFILING -eq 0 || test $OMPI_PROFILING_COMPILE_SEPARATELY -eq 1 ) && \ [( test $WANT_MPI_PROFILING -eq 0 || test $OMPI_PROFILING_COMPILE_SEPARATELY -eq 1 ) && \
test $OMPI_BUILD_FORTRAN_MPIFH_BINDINGS -eq 1]) test $OMPI_BUILD_FORTRAN_BINDINGS -gt $OMPI_FORTRAN_NO_BINDINGS])
AM_CONDITIONAL(BUILD_PMPI_FORTRAN_MPIFH_BINDINGS_LAYER, AM_CONDITIONAL(BUILD_PMPI_FORTRAN_MPIFH_BINDINGS_LAYER,
[test $OMPI_BUILD_FORTRAN_MPIFH_BINDINGS -eq 1 && \ [test $OMPI_BUILD_FORTRAN_BINDINGS -gt $OMPI_FORTRAN_NO_BINDINGS && \
test $WANT_MPI_PROFILING -eq 1]) test $WANT_MPI_PROFILING -eq 1])
AC_DEFINE_UNQUOTED(OMPI_BUILD_FORTRAN_MPIFH_BINDINGS,
$OMPI_BUILD_FORTRAN_MPIFH_BINDINGS,
[Whether we will build the MPI Fortran mpif.h bindings or not])
AM_CONDITIONAL(OMPI_BUILD_FORTRAN_MPIFH_BINDINGS, AM_CONDITIONAL(OMPI_BUILD_FORTRAN_MPIFH_BINDINGS,
[test $OMPI_BUILD_FORTRAN_MPIFH_BINDINGS -eq 1]) [test $OMPI_BUILD_FORTRAN_BINDINGS -gt $OMPI_FORTRAN_NO_BINDINGS])
# ------------------- # -------------------
# use mpi final setup # use mpi final setup
@ -636,9 +652,6 @@ end type test_mpi_handle],
AC_DEFINE_UNQUOTED([OMPI_FORTRAN_IGNORE_TKR_TYPE], AC_DEFINE_UNQUOTED([OMPI_FORTRAN_IGNORE_TKR_TYPE],
[$type], [$type],
[Type declaration for FORTRAN ignore parameter TKR behavior]) [Type declaration for FORTRAN ignore parameter TKR behavior])
AC_DEFINE_UNQUOTED(OMPI_BUILD_FORTRAN_USEMPI_BINDINGS,
$OMPI_BUILD_FORTRAN_USEMPI_BINDINGS,
[Whether we will build the MPI Fortran "use mpi" bindings or not])
AC_DEFINE_UNQUOTED(OMPI_FORTRAN_HAVE_IGNORE_TKR, AC_DEFINE_UNQUOTED(OMPI_FORTRAN_HAVE_IGNORE_TKR,
[$OMPI_FORTRAN_HAVE_IGNORE_TKR], [$OMPI_FORTRAN_HAVE_IGNORE_TKR],
[Whether the Fortran compiler supports ignore TKR functionality or not]) [Whether the Fortran compiler supports ignore TKR functionality or not])
@ -648,15 +661,15 @@ end type test_mpi_handle],
# ompi/mpi/fortran/use-mpi*/Makefile.ams be safe, too. # ompi/mpi/fortran/use-mpi*/Makefile.ams be safe, too.
# True if we're building either "use mpi" bindings # True if we're building either "use mpi" bindings
AM_CONDITIONAL(OMPI_BUILD_FORTRAN_USEMPI_BINDINGS, AM_CONDITIONAL(OMPI_BUILD_FORTRAN_USEMPI_BINDINGS,
[test $OMPI_BUILD_FORTRAN_USEMPI_BINDINGS -eq 1 || \ [test $OMPI_BUILD_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPI_BINDINGS || \
test $OMPI_FORTRAN_HAVE_IGNORE_TKR -eq 1]) test $OMPI_FORTRAN_HAVE_IGNORE_TKR -eq 1])
# True if we're building the old TKR-style bindings # True if we're building the old TKR-style bindings
AM_CONDITIONAL(OMPI_BUILD_FORTRAN_USEMPI_TKR_BINDINGS, AM_CONDITIONAL(OMPI_BUILD_FORTRAN_USEMPI_TKR_BINDINGS,
[test $OMPI_BUILD_FORTRAN_USEMPI_BINDINGS -eq 1 && \ [test $OMPI_BUILD_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPI_BINDINGS && \
test $OMPI_FORTRAN_HAVE_IGNORE_TKR -eq 0]) test $OMPI_FORTRAN_HAVE_IGNORE_TKR -eq 0])
# True if we're building the new ignore-TKR-style bindings # True if we're building the new ignore-TKR-style bindings
AM_CONDITIONAL(OMPI_BUILD_FORTRAN_USEMPI_IGNORE_TKR_BINDINGS, AM_CONDITIONAL(OMPI_BUILD_FORTRAN_USEMPI_IGNORE_TKR_BINDINGS,
[test $OMPI_BUILD_FORTRAN_USEMPI_BINDINGS -eq 1 && \ [test $OMPI_BUILD_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPI_BINDINGS && \
test $OMPI_FORTRAN_HAVE_IGNORE_TKR -eq 1]) test $OMPI_FORTRAN_HAVE_IGNORE_TKR -eq 1])
# ------------------- # -------------------
@ -697,9 +710,6 @@ end type test_mpi_handle],
[How many bytes the mpi_f08 TYPE(MPI_<foo>) handles will be]) [How many bytes the mpi_f08 TYPE(MPI_<foo>) handles will be])
# These go into ompi/info/param.c # These go into ompi/info/param.c
AC_DEFINE_UNQUOTED(OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS,
$OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS,
[For ompi_info: Whether we will build the MPI Fortran "use mpi_f08" bindings or not])
AC_DEFINE_UNQUOTED(OMPI_FORTRAN_HAVE_F08_ASSUMED_RANK, AC_DEFINE_UNQUOTED(OMPI_FORTRAN_HAVE_F08_ASSUMED_RANK,
[$OMPI_FORTRAN_HAVE_F08_ASSUMED_RANK], [$OMPI_FORTRAN_HAVE_F08_ASSUMED_RANK],
[For ompi_info: Whether the Fortran compiler supports the Fortran 2008 "assumed rank" syntax or not]) [For ompi_info: Whether the Fortran compiler supports the Fortran 2008 "assumed rank" syntax or not])
@ -771,5 +781,9 @@ end type test_mpi_handle],
# might as well have ompi/mpi/fortran/use-mpi-f08/Makefile.am be # might as well have ompi/mpi/fortran/use-mpi-f08/Makefile.am be
# safe, too. # safe, too.
AM_CONDITIONAL(OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS, AM_CONDITIONAL(OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS,
[test $OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS -eq 1]) [test $OMPI_BUILD_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS])
AC_DEFINE_UNQUOTED(OMPI_BUILD_FORTRAN_BINDINGS,
$OMPI_BUILD_FORTRAN_BINDINGS,
[The level of fortran bindings to be built])
]) ])

Просмотреть файл

@ -218,7 +218,9 @@ AC_DEFUN([OPAL_INTL_POSIX_THREADS_PLAIN_FC], [
# #
# Fortran compiler # Fortran compiler
# #
if test "$opal_pthread_fortran_success" = "0" && test "$OMPI_WANT_FORTRAN_BINDINGS" = "1" && test $ompi_fortran_happy -eq 1; then if test "$opal_pthread_fortran_success" = "0" && \
test "$OMPI_TRY_FORTRAN_BINDINGS" -gt "$OMPI_FORTRAN_NO_BINDINGS" && \
test $ompi_fortran_happy -eq 1; then
AC_MSG_CHECKING([if Fortran compiler and POSIX threads work as is]) AC_MSG_CHECKING([if Fortran compiler and POSIX threads work as is])
AC_LANG_PUSH(C) AC_LANG_PUSH(C)
@ -322,7 +324,9 @@ AC_DEFUN([OPAL_INTL_POSIX_THREADS_SPECIAL_FLAGS_FC], [
# #
# Fortran compiler # Fortran compiler
# #
if test "$opal_pthread_fortran_success" = "0" && test "$OMPI_WANT_FORTRAN_BINDINGS" = "1" && test $ompi_fortran_happy -eq 1; then if test "$opal_pthread_fortran_success" = "0" && \
test "$OMPI_TRY_FORTRAN_BINDINGS" -gt "$OMPI_FORTRAN_NO_BINDINGS" && \
test $ompi_fortran_happy -eq 1; then
for pf in $pflags; do for pf in $pflags; do
AC_MSG_CHECKING([if Fortran compiler and POSIX threads work with $pf]) AC_MSG_CHECKING([if Fortran compiler and POSIX threads work with $pf])
FCFLAGS="$orig_FCFLAGS $pf" FCFLAGS="$orig_FCFLAGS $pf"
@ -507,7 +511,9 @@ AC_DEFUN([OPAL_INTL_POSIX_THREADS_LIBS_FC],[
# #
# Fortran compiler # Fortran compiler
# #
if test "$opal_pthread_fortran_success" = "0" && test "$OMPI_WANT_FORTRAN_BINDINGS" = "1" && test $ompi_fortran_happy -eq 1; then if test "$opal_pthread_fortran_success" = "0" && \
test "$OMPI_TRY_FORTRAN_BINDINGS" -gt "$OMPI_FORTRAN_NO_BINDINGS" && \
test $ompi_fortran_happy -eq 1; then
if test ! "$opal_pthread_c_success" = "0" && test ! "$PTHREAD_LIBS" = "" ; then if test ! "$opal_pthread_c_success" = "0" && test ! "$PTHREAD_LIBS" = "" ; then
AC_MSG_CHECKING([if Fortran compiler and POSIX threads work with $PTHREAD_LIBS]) AC_MSG_CHECKING([if Fortran compiler and POSIX threads work with $PTHREAD_LIBS])
LIBS="$orig_LIBS $PTHREAD_LIBS" LIBS="$orig_LIBS $PTHREAD_LIBS"
@ -650,7 +656,8 @@ CXXCPPFLAGS="$orig_CXXCPPFLAGS"
LDFLAGS="$orig_LDFLAGS" LDFLAGS="$orig_LDFLAGS"
LIBS="$orig_LIBS" LIBS="$orig_LIBS"
if test "$OMPI_WANT_FORTRAN_BINDINGS" != "1" || test $ompi_fortran_happy -ne 1; then if test "$OMPI_TRY_FORTRAN_BINDINGS" = "$OMPI_FORTRAN_NO_BINDINGS" || \
test $ompi_fortran_happy -ne 1; then
opal_pthread_fortran_success=1 opal_pthread_fortran_success=1
fi fi

Просмотреть файл

@ -440,7 +440,7 @@ AC_DEFUN([OPAL_SETUP_WRAPPER_FINAL],[
AC_SUBST([OMPI_WRAPPER_CXX_LIB]) AC_SUBST([OMPI_WRAPPER_CXX_LIB])
AC_SUBST([OMPI_WRAPPER_CXX_REQUIRED_FILE]) AC_SUBST([OMPI_WRAPPER_CXX_REQUIRED_FILE])
if test "$OMPI_WANT_FORTRAN_BINDINGS" = "1" ; then if test "$OMPI_TRY_FORTRAN_BINDINGS" -gt "$OMPI_FORTRAN_NO_BINDINGS" ; then
OMPI_WRAPPER_FORTRAN_REQUIRED_FILE="" OMPI_WRAPPER_FORTRAN_REQUIRED_FILE=""
else else
OMPI_WRAPPER_FORTRAN_REQUIRED_FILE="not supported" OMPI_WRAPPER_FORTRAN_REQUIRED_FILE="not supported"

Просмотреть файл

@ -133,13 +133,14 @@ AC_HELP_STRING([--enable-oshmem-fortran],
[enable OSHMEM Fortran bindings (default: enabled if Fortran compiler found)])) [enable OSHMEM Fortran bindings (default: enabled if Fortran compiler found)]))
if test "$enable_oshmem" != "no" && test "$enable_oshmem_fortran" != "no"; then if test "$enable_oshmem" != "no" && test "$enable_oshmem_fortran" != "no"; then
# If no OMPI FORTRAN, bail # If no OMPI FORTRAN, bail
AS_IF([test $OMPI_WANT_FORTRAN_BINDINGS -eq 0 && test "$enable_oshmem_fortran" = "yes"], AS_IF([test $OMPI_TRY_FORTRAN_BINDINGS -eq $OMPI_FORTRAN_NO_BINDINGS && \
[AC_MSG_RESULT([bad value OMPI_WANT_FORTRAN_BINDINGS: ($OMPI_WANT_FORTRAN_BINDINGS)]) test "$enable_oshmem_fortran" = "yes"],
[AC_MSG_RESULT([bad value OMPI_TRY_FORTRAN_BINDINGS: ($OMPI_TRY_FORTRAN_BINDINGS)])
AC_MSG_WARN([Your request to --enable-oshmem-fortran can only be satisfied if fortran support is enabled in OMPI. AC_MSG_WARN([Your request to --enable-oshmem-fortran can only be satisfied if fortran support is enabled in OMPI.
You see this message because OMPI fortran support has been explicitly disabled via --disable-mpi-fortran and OSHMEM fortran support was explicitly enabled with --enable-oshmem-fortran. You see this message because OMPI fortran support has been explicitly disabled via --disable-mpi-fortran and OSHMEM fortran support was explicitly enabled with --enable-oshmem-fortran.
Configure will abort because you, a human, have asked for something that cannot be provided.]) Configure will abort because you, a human, have asked for something that cannot be provided.])
AC_MSG_ERROR([Cannot continue])]) AC_MSG_ERROR([Cannot continue])])
if test $OMPI_WANT_FORTRAN_BINDINGS -eq 1; then if test $OMPI_TRY_FORTRAN_BINDINGS -gt $OMPI_FORTRAN_NO_BINDINGS; then
AC_MSG_RESULT([yes]) AC_MSG_RESULT([yes])
else else
AC_MSG_RESULT([no]) AC_MSG_RESULT([no])

Просмотреть файл

@ -578,7 +578,7 @@ m4_ifdef([project_ompi], [OMPI_SETUP_MPI_FORTRAN], [ompi_fortran_happy=0])
AM_CONDITIONAL(OSHMEM_BUILD_FORTRAN_BINDINGS, AM_CONDITIONAL(OSHMEM_BUILD_FORTRAN_BINDINGS,
[test "$enable_oshmem" = "yes" && \ [test "$enable_oshmem" = "yes" && \
test "$ompi_fortran_happy" = "1" && \ test "$ompi_fortran_happy" = "1" && \
test "$OMPI_WANT_FORTRAN_BINDINGS" = "1" && \ test "$OMPI_TRY_FORTRAN_BINDINGS" -gt "$OMPI_FORTRAN_NO_BINDINGS" && \
test "$enable_oshmem_fortran" != "no"]) test "$enable_oshmem_fortran" != "no"])
# checkpoint results # checkpoint results
@ -1212,7 +1212,7 @@ fi
# do this for C++, because even if we're not building the MPI C++ # do this for C++, because even if we're not building the MPI C++
# bindings, we *do* still want to setup the mpicxx wrapper if we have # bindings, we *do* still want to setup the mpicxx wrapper if we have
# a C++ compiler. # a C++ compiler.
AS_IF([test "$OMPI_WANT_FORTRAN_BINDINGS" != "1"],[F77=no FC=no]) AS_IF([test "$OMPI_TRY_FORTRAN_BINDINGS" = "$OMPI_FORTRAN_NO_BINDINGS"],[F77=no FC=no])
LT_INIT([dlopen win32-dll]) LT_INIT([dlopen win32-dll])

Просмотреть файл

@ -12,6 +12,8 @@
* All rights reserved. * All rights reserved.
* Copyright (c) 2007-2012 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2007-2012 Cisco Systems, Inc. All rights reserved.
* Copyright (c) 2007 Sun Microsystems, Inc. All rights reserved. * Copyright (c) 2007 Sun Microsystems, Inc. All rights reserved.
* Copyright (c) 2014 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* $COPYRIGHT$ * $COPYRIGHT$
* *
* Additional copyrights may follow * Additional copyrights may follow
@ -54,11 +56,4 @@
# endif # endif
# endif # endif
/* Convenience */
#if OMPI_BUILD_FORTRAN_MPIFH_BINDINGS || OMPI_BUILD_FORTRAN_USEMPI_BINDINGS || OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS
#define OMPI_BUILD_FORTRAN_BINDINGS 1
#else
#define OMPI_BUILD_FORTRAN_BINDINGS 0
#endif
#endif #endif

Просмотреть файл

@ -156,7 +156,7 @@ void ompi_info_do_config(bool want_all)
/* setup the strings that don't require allocations*/ /* setup the strings that don't require allocations*/
cxx = OMPI_BUILD_CXX_BINDINGS ? "yes" : "no"; cxx = OMPI_BUILD_CXX_BINDINGS ? "yes" : "no";
if (OMPI_BUILD_FORTRAN_USEMPI_BINDINGS) { if (OMPI_BUILD_FORTRAN_BINDINGS >= OMPI_FORTRAN_USEMPI_BINDINGS) {
if (OMPI_FORTRAN_HAVE_IGNORE_TKR) { if (OMPI_FORTRAN_HAVE_IGNORE_TKR) {
fortran_usempi = "yes (full: ignore TKR)"; fortran_usempi = "yes (full: ignore TKR)";
} else { } else {
@ -165,7 +165,7 @@ void ompi_info_do_config(bool want_all)
} else { } else {
fortran_usempi = "no"; fortran_usempi = "no";
} }
fortran_usempif08 = OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS ? "yes" : "no"; fortran_usempif08 = OMPI_BUILD_FORTRAN_BINDINGS >= OMPI_FORTRAN_USEMPIF08_BINDINGS ? "yes" : "no";
fortran_have_f08_assumed_rank = OMPI_FORTRAN_HAVE_F08_ASSUMED_RANK ? fortran_have_f08_assumed_rank = OMPI_FORTRAN_HAVE_F08_ASSUMED_RANK ?
"yes" : "no"; "yes" : "no";
fortran_build_f08_subarrays = OMPI_BUILD_FORTRAN_F08_SUBARRAYS ? fortran_build_f08_subarrays = OMPI_BUILD_FORTRAN_F08_SUBARRAYS ?
@ -197,7 +197,7 @@ void ompi_info_do_config(bool want_all)
/* Build a string describing what level of compliance the mpi_f08 /* Build a string describing what level of compliance the mpi_f08
module has */ module has */
char f08_msg[1024]; char f08_msg[1024];
if (OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS) { if (OMPI_BUILD_FORTRAN_BINDINGS >= OMPI_FORTRAN_USEMPIF08_BINDINGS) {
/* Do we have everything? (not including PROTECTED, which /* Do we have everything? (not including PROTECTED, which
isn't *needed* for the mpi_f08 module compliance -- it's isn't *needed* for the mpi_f08 module compliance -- it's
@ -255,9 +255,9 @@ void ompi_info_do_config(bool want_all)
cprofiling = OMPI_ENABLE_MPI_PROFILING ? "yes" : "no"; cprofiling = OMPI_ENABLE_MPI_PROFILING ? "yes" : "no";
cxxprofiling = (OMPI_BUILD_CXX_BINDINGS && OMPI_ENABLE_MPI_PROFILING) ? "yes" : "no"; cxxprofiling = (OMPI_BUILD_CXX_BINDINGS && OMPI_ENABLE_MPI_PROFILING) ? "yes" : "no";
cxxexceptions = (OMPI_BUILD_CXX_BINDINGS && OMPI_HAVE_CXX_EXCEPTION_SUPPORT) ? "yes" : "no"; cxxexceptions = (OMPI_BUILD_CXX_BINDINGS && OMPI_HAVE_CXX_EXCEPTION_SUPPORT) ? "yes" : "no";
fortran_mpifh_profiling = (OMPI_ENABLE_MPI_PROFILING && OMPI_BUILD_FORTRAN_MPIFH_BINDINGS) ? "yes" : "no"; fortran_mpifh_profiling = (OMPI_ENABLE_MPI_PROFILING && OMPI_BUILD_FORTRAN_BINDINGS >= OMPI_FORTRAN_MPIFH_BINDINGS) ? "yes" : "no";
fortran_usempi_profiling = (OMPI_ENABLE_MPI_PROFILING && OMPI_BUILD_FORTRAN_USEMPI_BINDINGS) ? "yes" : "no"; fortran_usempi_profiling = (OMPI_ENABLE_MPI_PROFILING && OMPI_BUILD_FORTRAN_BINDINGS >= OMPI_FORTRAN_USEMPI_BINDINGS) ? "yes" : "no";
fortran_usempif08_profiling = (OMPI_ENABLE_MPI_PROFILING && OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS) ? "yes" : "no"; fortran_usempif08_profiling = (OMPI_ENABLE_MPI_PROFILING && OMPI_BUILD_FORTRAN_BINDINGS >= OMPI_FORTRAN_USEMPIF08_BINDINGS) ? "yes" : "no";
have_dl = OPAL_HAVE_DL_SUPPORT ? "yes" : "no"; have_dl = OPAL_HAVE_DL_SUPPORT ? "yes" : "no";
#if OMPI_RTE_ORTE #if OMPI_RTE_ORTE
mpirun_prefix_by_default = ORTE_WANT_ORTERUN_PREFIX_BY_DEFAULT ? "yes" : "no"; mpirun_prefix_by_default = ORTE_WANT_ORTERUN_PREFIX_BY_DEFAULT ? "yes" : "no";
@ -269,7 +269,7 @@ void ompi_info_do_config(bool want_all)
topology_support = OPAL_HAVE_HWLOC ? "yes" : "no"; topology_support = OPAL_HAVE_HWLOC ? "yes" : "no";
/* setup strings that require allocation */ /* setup strings that require allocation */
if (OMPI_BUILD_FORTRAN_MPIFH_BINDINGS) { if (OMPI_BUILD_FORTRAN_BINDINGS >= OMPI_FORTRAN_MPIFH_BINDINGS) {
(void)asprintf(&fortran_mpifh, "yes (%s)", (void)asprintf(&fortran_mpifh, "yes (%s)",
(OPAL_HAVE_WEAK_SYMBOLS ? "all" : (OPAL_HAVE_WEAK_SYMBOLS ? "all" :
(OMPI_FORTRAN_CAPS ? "caps" : (OMPI_FORTRAN_CAPS ? "caps" :
@ -453,9 +453,7 @@ void ompi_info_do_config(bool want_all)
/* May or may not have the other Fortran sizes */ /* May or may not have the other Fortran sizes */
if (OMPI_BUILD_FORTRAN_MPIFH_BINDINGS || if (OMPI_BUILD_FORTRAN_BINDINGS >= OMPI_FORTRAN_MPIFH_BINDINGS) {
OMPI_BUILD_FORTRAN_USEMPI_BINDINGS ||
OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS) {
opal_info_out("Fort have integer1", "compiler:fortran:have:integer1", opal_info_out("Fort have integer1", "compiler:fortran:have:integer1",
OMPI_HAVE_FORTRAN_INTEGER1 ? "yes" : "no"); OMPI_HAVE_FORTRAN_INTEGER1 ? "yes" : "no");
opal_info_out("Fort have integer2", "compiler:fortran:have:integer2", opal_info_out("Fort have integer2", "compiler:fortran:have:integer2",

Просмотреть файл

@ -146,7 +146,7 @@ void oshmem_info_do_config(bool want_all)
/* setup the strings that don't require allocations*/ /* setup the strings that don't require allocations*/
cxx = OMPI_BUILD_CXX_BINDINGS ? "yes" : "no"; cxx = OMPI_BUILD_CXX_BINDINGS ? "yes" : "no";
if (OMPI_BUILD_FORTRAN_USEMPI_BINDINGS) { if (OMPI_BUILD_FORTRAN_BINDINGS >= OMPI_FORTRAN_USEMPI_BINDINGS) {
if (OMPI_FORTRAN_HAVE_IGNORE_TKR) { if (OMPI_FORTRAN_HAVE_IGNORE_TKR) {
fortran_usempi = "yes (full: ignore TKR)"; fortran_usempi = "yes (full: ignore TKR)";
} else { } else {
@ -155,7 +155,7 @@ void oshmem_info_do_config(bool want_all)
} else { } else {
fortran_usempi = "no"; fortran_usempi = "no";
} }
fortran_usempif08 = OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS ? "yes" : "no"; fortran_usempif08 = OMPI_BUILD_FORTRAN_BINDINGS >= OMPI_FORTRAN_USEMPIF08_BINDINGS ? "yes" : "no";
fortran_have_f08_assumed_rank = OMPI_FORTRAN_HAVE_F08_ASSUMED_RANK ? fortran_have_f08_assumed_rank = OMPI_FORTRAN_HAVE_F08_ASSUMED_RANK ?
"yes" : "no"; "yes" : "no";
fortran_build_f08_subarrays = OMPI_BUILD_FORTRAN_F08_SUBARRAYS ? fortran_build_f08_subarrays = OMPI_BUILD_FORTRAN_F08_SUBARRAYS ?
@ -174,7 +174,7 @@ void oshmem_info_do_config(bool want_all)
/* Build a string describing what level of compliance the mpi_f08 /* Build a string describing what level of compliance the mpi_f08
module has */ module has */
char f08_msg[1024]; char f08_msg[1024];
if (OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS) { if (OMPI_BUILD_FORTRAN_BINDINGS >= OMPI_FORTRAN_USEMPIF08_BINDINGS) {
/* Do we have everything? */ /* Do we have everything? */
if (OMPI_BUILD_FORTRAN_F08_SUBARRAYS && if (OMPI_BUILD_FORTRAN_F08_SUBARRAYS &&
@ -230,9 +230,9 @@ void oshmem_info_do_config(bool want_all)
cprofiling = OMPI_ENABLE_MPI_PROFILING ? "yes" : "no"; cprofiling = OMPI_ENABLE_MPI_PROFILING ? "yes" : "no";
cxxprofiling = (OMPI_BUILD_CXX_BINDINGS && OMPI_ENABLE_MPI_PROFILING) ? "yes" : "no"; cxxprofiling = (OMPI_BUILD_CXX_BINDINGS && OMPI_ENABLE_MPI_PROFILING) ? "yes" : "no";
cxxexceptions = (OMPI_BUILD_CXX_BINDINGS && OMPI_HAVE_CXX_EXCEPTION_SUPPORT) ? "yes" : "no"; cxxexceptions = (OMPI_BUILD_CXX_BINDINGS && OMPI_HAVE_CXX_EXCEPTION_SUPPORT) ? "yes" : "no";
fortran_mpifh_profiling = (OMPI_ENABLE_MPI_PROFILING && OMPI_BUILD_FORTRAN_MPIFH_BINDINGS) ? "yes" : "no"; fortran_mpifh_profiling = (OMPI_ENABLE_MPI_PROFILING && OMPI_BUILD_FORTRAN_BINDINGS >= OMPI_FORTRAN_MPIFH_BINDINGS) ? "yes" : "no";
fortran_usempi_profiling = (OMPI_ENABLE_MPI_PROFILING && OMPI_BUILD_FORTRAN_USEMPI_BINDINGS) ? "yes" : "no"; fortran_usempi_profiling = (OMPI_ENABLE_MPI_PROFILING && OMPI_BUILD_FORTRAN_BINDINGS >= OMPI_FORTRAN_USEMPI_BINDINGS) ? "yes" : "no";
fortran_usempif08_profiling = (OMPI_ENABLE_MPI_PROFILING && OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS) ? "yes" : "no"; fortran_usempif08_profiling = (OMPI_ENABLE_MPI_PROFILING && OMPI_BUILD_FORTRAN_BINDINGS >= OMPI_FORTRAN_USEMPIF08_BINDINGS) ? "yes" : "no";
have_dl = OPAL_HAVE_DL_SUPPORT ? "yes" : "no"; have_dl = OPAL_HAVE_DL_SUPPORT ? "yes" : "no";
#if OMPI_RTE_ORTE #if OMPI_RTE_ORTE
mpirun_prefix_by_default = ORTE_WANT_ORTERUN_PREFIX_BY_DEFAULT ? "yes" : "no"; mpirun_prefix_by_default = ORTE_WANT_ORTERUN_PREFIX_BY_DEFAULT ? "yes" : "no";
@ -244,7 +244,7 @@ void oshmem_info_do_config(bool want_all)
topology_support = OPAL_HAVE_HWLOC ? "yes" : "no"; topology_support = OPAL_HAVE_HWLOC ? "yes" : "no";
/* setup strings that require allocation */ /* setup strings that require allocation */
if (OMPI_BUILD_FORTRAN_MPIFH_BINDINGS) { if (OMPI_BUILD_FORTRAN_BINDINGS >= OMPI_FORTRAN_MPIFH_BINDINGS) {
(void)asprintf(&fortran_mpifh, "yes (%s)", (void)asprintf(&fortran_mpifh, "yes (%s)",
(OPAL_HAVE_WEAK_SYMBOLS ? "all" : (OPAL_HAVE_WEAK_SYMBOLS ? "all" :
(OMPI_FORTRAN_CAPS ? "caps" : (OMPI_FORTRAN_CAPS ? "caps" :
@ -401,9 +401,7 @@ void oshmem_info_do_config(bool want_all)
/* May or may not have the other Fortran sizes */ /* May or may not have the other Fortran sizes */
if (OMPI_BUILD_FORTRAN_MPIFH_BINDINGS || if (OMPI_BUILD_FORTRAN_BINDINGS >= OMPI_FORTRAN_MPIFH_BINDINGS) {
OMPI_BUILD_FORTRAN_USEMPI_BINDINGS ||
OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS) {
opal_info_out("Fort have integer1", "compiler:fortran:have:integer1", opal_info_out("Fort have integer1", "compiler:fortran:have:integer1",
OMPI_HAVE_FORTRAN_INTEGER1 ? "yes" : "no"); OMPI_HAVE_FORTRAN_INTEGER1 ? "yes" : "no");
opal_info_out("Fort have integer2", "compiler:fortran:have:integer2", opal_info_out("Fort have integer2", "compiler:fortran:have:integer2",