|
Packit |
0848f5 |
AC_INIT
|
|
Packit |
0848f5 |
|
|
Packit |
0848f5 |
AC_ARG_WITH(aint-size,
|
|
Packit |
0848f5 |
AC_HELP_STRING([--with-aint-size],
|
|
Packit |
0848f5 |
[Override the size of MPI_AINT (in bytes)]),,
|
|
Packit |
0848f5 |
with_aint_size=0)
|
|
Packit |
0848f5 |
|
|
Packit |
0848f5 |
AC_PROG_CPP
|
|
Packit |
0848f5 |
AC_PROG_CC
|
|
Packit |
0848f5 |
AC_CHECK_SIZEOF([char])
|
|
Packit |
0848f5 |
AC_CHECK_SIZEOF([short])
|
|
Packit |
0848f5 |
AC_CHECK_SIZEOF([int])
|
|
Packit |
0848f5 |
AC_CHECK_SIZEOF([long])
|
|
Packit |
0848f5 |
AC_CHECK_SIZEOF([long long])
|
|
Packit |
0848f5 |
AC_CHECK_SIZEOF([void *])
|
|
Packit |
0848f5 |
|
|
Packit |
0848f5 |
PAC_PROG_F77
|
|
Packit |
0848f5 |
AC_F77_LIBRARY_LDFLAGS
|
|
Packit |
0848f5 |
PAC_PROG_F77_FLIBS_VALID
|
|
Packit |
0848f5 |
PAC_PROG_F77_CHECK_FLIBS
|
|
Packit |
0848f5 |
PAC_PROG_F77_OBJ_LINKS_WITH_C
|
|
Packit |
0848f5 |
PAC_PROG_F77_LINKER_WITH_C
|
|
Packit |
0848f5 |
PAC_PROG_F77_NAME_MANGLE
|
|
Packit |
0848f5 |
PAC_PROG_F77_AND_C_STDIO_LIBS
|
|
Packit |
0848f5 |
|
|
Packit |
0848f5 |
CROSS_F77_SIZEOF_INTEGER=0
|
|
Packit |
0848f5 |
CROSS_F77_SIZEOF_REAL=0
|
|
Packit |
0848f5 |
CROSS_F77_SIZEOF_DOUBLE_PRECISION=0
|
|
Packit |
0848f5 |
PAC_PROG_F77_CHECK_SIZEOF_EXT([integer],[$CROSS_F77_SIZEOF_INTEGER])
|
|
Packit |
0848f5 |
PAC_PROG_F77_CHECK_SIZEOF_EXT([real],[$CROSS_F77_SIZEOF_REAL])
|
|
Packit |
0848f5 |
PAC_PROG_F77_CHECK_SIZEOF_EXT([double precision],[$CROSS_F77_SIZEOF_DOUBLE_PRECISION])
|
|
Packit |
0848f5 |
AC_SUBST(pac_cv_f77_sizeof_integer)
|
|
Packit |
0848f5 |
AC_SUBST(pac_cv_f77_sizeof_real)
|
|
Packit |
0848f5 |
AC_SUBST(pac_cv_f77_sizeof_double_precision)
|
|
Packit |
0848f5 |
|
|
Packit |
0848f5 |
# MPI_FINT is required for logical-to-C translation.
|
|
Packit |
0848f5 |
noval="yes"
|
|
Packit |
0848f5 |
AC_MSG_CHECKING([for C type matching Fortran integer])
|
|
Packit |
0848f5 |
for c_type in char short int long "long_long" ; do
|
|
Packit |
0848f5 |
eval ctypelen=\$"ac_cv_sizeof_$c_type"
|
|
Packit |
0848f5 |
if test "$pac_cv_f77_sizeof_integer" = "$ctypelen" -a \
|
|
Packit |
0848f5 |
"$ctypelen" -gt 0 ; then
|
|
Packit |
0848f5 |
c_type=`echo $c_type | sed -e 's/_/ /g'`
|
|
Packit |
0848f5 |
AC_MSG_RESULT($c_type)
|
|
Packit |
0848f5 |
MPI_FINT=$c_type
|
|
Packit |
0848f5 |
noval="no"
|
|
Packit |
0848f5 |
break
|
|
Packit |
0848f5 |
fi
|
|
Packit |
0848f5 |
done
|
|
Packit |
0848f5 |
if test "$noval" = "yes" ; then
|
|
Packit |
0848f5 |
# Set a default
|
|
Packit |
0848f5 |
MPI_FINT="int"
|
|
Packit |
0848f5 |
AC_MSG_RESULT([unavailable])
|
|
Packit |
0848f5 |
fi
|
|
Packit |
0848f5 |
PAC_F77_LOGICALS_IN_C([$MPI_FINT])
|
|
Packit |
0848f5 |
AC_SUBST([true_val])
|
|
Packit |
0848f5 |
AC_SUBST([false_val])
|
|
Packit |
0848f5 |
|
|
Packit |
0848f5 |
AC_PROG_FC
|
|
Packit |
0848f5 |
PAC_PROG_FC_WORKS
|
|
Packit |
0848f5 |
|
|
Packit |
0848f5 |
if test "$with_aint_size" -gt 0 -a \
|
|
Packit |
0848f5 |
"$with_aint_size" -gt "$ac_cv_sizeof_void_p" ; then
|
|
Packit |
0848f5 |
testsize=$with_aint_size
|
|
Packit |
0848f5 |
else
|
|
Packit |
0848f5 |
testsize=$ac_cv_sizeof_void_p
|
|
Packit |
0848f5 |
fi
|
|
Packit |
0848f5 |
if test "$testsize" = 0 ; then
|
|
Packit |
0848f5 |
# Set a default
|
|
Packit |
0848f5 |
testsize=4
|
|
Packit |
0848f5 |
fi
|
|
Packit |
0848f5 |
dnl Using the {} around testsize helps the comments work correctly
|
|
Packit |
0848f5 |
CROSS_F90_ADDRESS_KIND=0
|
|
Packit |
0848f5 |
CROSS_F90_OFFSET_KIND=0
|
|
Packit |
0848f5 |
CROSS_F90_INTEGER_KIND=0
|
|
Packit |
0848f5 |
PAC_PROG_FC_INT_KIND([ADDRESS_KIND], [${testsize}], [$CROSS_F90_ADDRESS_KIND])
|
|
Packit |
0848f5 |
if test "$testsize" = 8 ; then
|
|
Packit |
0848f5 |
OFFSET_KIND=$ADDRESS_KIND
|
|
Packit |
0848f5 |
else
|
|
Packit |
0848f5 |
PAC_PROG_FC_INT_KIND([OFFSET_KIND],[8],[$CROSS_F90_OFFSET_KIND])
|
|
Packit |
0848f5 |
fi
|
|
Packit |
0848f5 |
PAC_PROG_FC_INT_KIND([INTEGER_KIND],[$pac_cv_f77_sizeof_integer],
|
|
Packit |
0848f5 |
[$CROSS_F90_INTEGER_KIND])
|
|
Packit |
0848f5 |
AC_SUBST(ADDRESS_KIND)
|
|
Packit |
0848f5 |
AC_SUBST(OFFSET_KIND)
|
|
Packit |
0848f5 |
AC_SUBST(INTEGER_KIND)
|
|
Packit |
0848f5 |
|
|
Packit |
0848f5 |
|
|
Packit |
0848f5 |
CROSS_F90_REAL_MODEL=NIL
|
|
Packit |
0848f5 |
CROSS_F90_DOUBLE_MODEL=NIL
|
|
Packit |
0848f5 |
CROSS_F90_INTEGER_MODEL=NIL
|
|
Packit |
0848f5 |
CROSS_F90_ALL_INTEGER_MODELS=NIL
|
|
Packit |
0848f5 |
CROSS_F90_INTEGER_MODEL_MAP=NIL
|
|
Packit |
0848f5 |
PAC_FC_SIMPLE_NUMBER_MODEL([the precision and range of reals],
|
|
Packit |
0848f5 |
[real aa],
|
|
Packit |
0848f5 |
[precision(aa), ",", range(aa)],
|
|
Packit |
0848f5 |
[FC_REAL_MODEL],
|
|
Packit |
0848f5 |
[$CROSS_F90_REAL_MODEL])
|
|
Packit |
0848f5 |
PAC_FC_SIMPLE_NUMBER_MODEL([the precision and range of double precision],
|
|
Packit |
0848f5 |
[double precision aa],
|
|
Packit |
0848f5 |
[precision(aa), ",", range(aa)],
|
|
Packit |
0848f5 |
[FC_DOUBLE_MODEL],
|
|
Packit |
0848f5 |
[$CROSS_F90_DOUBLE_MODEL])
|
|
Packit |
0848f5 |
PAC_FC_SIMPLE_NUMBER_MODEL([the range of integer],
|
|
Packit |
0848f5 |
[integer aa],
|
|
Packit |
0848f5 |
[range(aa)],
|
|
Packit |
0848f5 |
[FC_INTEGER_MODEL],
|
|
Packit |
0848f5 |
[$CROSS_F90_INTEGER_MODEL])
|
|
Packit |
0848f5 |
PAC_FC_AVAIL_INTEGER_MODELS([FC_ALL_INTEGER_MODELS],
|
|
Packit |
0848f5 |
[$CROSS_F90_ALL_INTEGER_MODELS])
|
|
Packit |
0848f5 |
PAC_FC_INTEGER_MODEL_MAP([FC_INTEGER_MODEL_MAP],
|
|
Packit |
0848f5 |
[$CROSS_F90_INTEGER_MODEL_MAP])
|
|
Packit |
0848f5 |
AC_SUBST(FC_REAL_MODEL)
|
|
Packit |
0848f5 |
AC_SUBST(FC_DOUBLE_MODEL)
|
|
Packit |
0848f5 |
AC_SUBST(FC_INTEGER_MODEL)
|
|
Packit |
0848f5 |
AC_SUBST(FC_ALL_INTEGER_MODELS)
|
|
Packit |
0848f5 |
AC_SUBST(FC_INTEGER_MODEL_MAP)
|
|
Packit |
0848f5 |
|
|
Packit |
0848f5 |
AC_OUTPUT(cross_values.txt)
|