summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xconfigure47
-rw-r--r--configure.ac59
-rw-r--r--fortran/src/Makefile.in15
-rw-r--r--m4/aclocal_fc.m421
4 files changed, 36 insertions, 106 deletions
diff --git a/configure b/configure
index c7d7779..2c3d632 100755
--- a/configure
+++ b/configure
@@ -1567,7 +1567,7 @@ Optional Features:
--disable-dependency-tracking
speeds up one-time build
--enable-unsupported Allow unsupported combinations of configure options
- --enable-fortran Compile the Fortran 90/95 interface [default=no]
+ --enable-fortran Compile the Fortran interface [default=no]
--enable-cxx Compile the C++ interface [default=no]
--enable-hl Enable the high level library [default=yes]
--enable-shared[=PKGS] build shared libraries [default=yes]
@@ -5736,7 +5736,7 @@ else
if test -s pac_Cconftest.out ; then
LDBL_DIG="`perl -ne '$. == 1 && print && exit' pac_Cconftest.out`"
FLT128_DIG="`perl -ne '$. == 2 && print && exit' pac_Cconftest.out`"
- else
+ else
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: No output from test program!" >&5
$as_echo "$as_me: WARNING: No output from test program!" >&2;}
fi
@@ -5753,15 +5753,14 @@ fi
-## __float128 seems to work intel compilers, but it should be _Quad type instead
+## __float128 seems to work with intel compilers, but it should be _Quad type instead
if test "$ac_cv_sizeof___float128" != 0 && test "$cc_vendor" = "gcc"; then
-## Check if __float128 and c_long_double are the same size and precision
$as_echo "#define HAVE_FLOAT128 1" >>confdefs.h
- PAC_C_MAX_REAL_PRECISION=$FLT128_DIG
- else
+ PAC_C_MAX_REAL_PRECISION=$FLT128_DIG
+else
PAC_C_MAX_REAL_PRECISION=$LDBL_DIG
fi
@@ -7239,7 +7238,7 @@ fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
-
+ ## Check KIND and size of native integer
ac_ext=${ac_fc_srcext-f}
ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5'
@@ -7247,9 +7246,12 @@ ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest
ac_compiler_gnu=$ac_cv_fc_compiler_gnu
rm -f pac_fconftest.out
-if test "$cross_compiling" = yes; then :
-
+if test "$cross_compiling" = yes; then :
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot run test program while cross compiling
+See \`config.log' for more details" "$LINENO" 5; }
else
cat > conftest.$ac_ext <<_ACEOF
@@ -7381,6 +7383,7 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
+
ac_ext=${ac_fc_srcext-f}
ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5'
ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5'
@@ -7433,8 +7436,7 @@ else
PAC_FORTRAN_NATIVE_REAL_SIZEOF="`perl -ne '$. == 4 && print && exit' pac_fconftest.out`"
PAC_FORTRAN_NATIVE_DOUBLE_KIND="`perl -ne '$. == 5 && print && exit' pac_fconftest.out`"
PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF="`perl -ne '$. == 6 && print && exit' pac_fconftest.out`"
-
- else
+ else
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: No output from test program!" >&5
$as_echo "$as_me: WARNING: No output from test program!" >&2;}
fi
@@ -7459,6 +7461,7 @@ ac_compiler_gnu=$ac_cv_fc_compiler_gnu
+ ## Find all available KINDs
ac_ext=${ac_fc_srcext-f}
ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5'
@@ -7466,9 +7469,12 @@ ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest
ac_compiler_gnu=$ac_cv_fc_compiler_gnu
rm -f pac_fconftest.out
-if test "$cross_compiling" = yes; then :
-
+if test "$cross_compiling" = yes; then :
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot run test program while cross compiling
+See \`config.log' for more details" "$LINENO" 5; }
else
cat > conftest.$ac_ext <<_ACEOF
@@ -7600,12 +7606,14 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
+
ac_ext=${ac_fc_srcext-f}
ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5'
ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_fc_compiler_gnu
+ ## Find all sizeofs for available KINDs
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking sizeof of available INTEGER KINDs" >&5
@@ -7766,13 +7774,6 @@ $as_echo "#define HAVE_Fortran_INTEGER_SIZEOF_16 0" >>confdefs.h
fi
- ##if test $PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF > ${ac_cv_sizeof_long_double}; then
- ## AC_MSG_ERROR([Fortran default DOUBLE PRECISION ("X$PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF" Bytes) can not be represented in C ])
- ##fi
-
- ##PAC_FC_AVAIL_INTEGER_MODELS
-
-
if test "X$HAVE_STORAGE_SIZE_FORTRAN" = "Xyes"; then
$as_echo "#define FORTRAN_HAVE_STORAGE_SIZE 1" >>confdefs.h
@@ -7910,8 +7911,8 @@ $as_echo_n "checking for Fortran interoperable KINDS with C... " >&6; }
$as_echo "$PAC_FC_ALL_REAL_KINDS" >&6; }
H5CONFIG_F_NUM_RKIND="INTEGER, PARAMETER :: num_rkinds = `echo \"$PAC_FC_ALL_REAL_KINDS\" | perl -e '$count = (<STDIN> =~ tr/,//);print $count+1'`"
- H5CONFIG_F_RKIND="INTEGER, DIMENSION(1:num_rkinds) :: rkind = (/`echo \"$PAC_FC_ALL_REAL_KINDS\" | perl -pe 's/{//g' | perl -pe 's/}//g' | perl -pe 's/ /,/g'`/)"
- H5CONFIG_F_RKIND_SIZEOF="INTEGER, DIMENSION(1:num_rkinds) :: rkind_sizeof = (/`echo \"$PAC_FC_ALL_REAL_KINDS_SIZEOF\" | perl -pe 's/{//g' | perl -pe 's/}//g'| perl -pe 's/ /,/g'`/)"
+ H5CONFIG_F_RKIND="INTEGER, DIMENSION(1:num_rkinds) :: rkind = (/`echo \"$PAC_FC_ALL_REAL_KINDS\" | perl -pe 's/{//g' | perl -pe 's/}//g' | perl -pe 's/ /,/g'`/)"
+ H5CONFIG_F_RKIND_SIZEOF="INTEGER, DIMENSION(1:num_rkinds) :: rkind_sizeof = (/`echo \"$PAC_FC_ALL_REAL_KINDS_SIZEOF\" | perl -pe 's/{//g' | perl -pe 's/}//g'| perl -pe 's/ /,/g'`/)"
cat >>confdefs.h <<_ACEOF
@@ -7929,8 +7930,6 @@ cat >>confdefs.h <<_ACEOF
_ACEOF
-
-
## Change back to the C language
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
diff --git a/configure.ac b/configure.ac
index ced8f0a..e989147 100644
--- a/configure.ac
+++ b/configure.ac
@@ -368,26 +368,11 @@ HAVE_QUADMATH=0
AC_CHECK_HEADERS([quadmath.h], [HAVE_QUADMATH=1], [])
PAC_LDBL_DIG
-## __float128 seems to work intel compilers, but it should be _Quad type instead
+## __float128 seems to work with intel compilers, but it should be _Quad type instead
if test "$ac_cv_sizeof___float128" != 0 && test "$cc_vendor" = "gcc"; then
-## Check if __float128 and c_long_double are the same size and precision
- dnl if test "$ac_cv_sizeof___float128" = "$ac_cv_sizeof_long_double"; then
- dnl if test "$LDBL_DIG" = "$FLT128_DIG"; then
- dnl AC_DEFINE([HAVE_FLOAT128], [0], [Determine if __float128 is available])
- dnl PAC_C_MAX_REAL_PRECISION=$LDBL_DIG
- dnl else
- dnl if test "$FLT128_DIG" > "$LDBL_DIG";then
- dnl choose the larger precision
- AC_DEFINE([HAVE_FLOAT128], [1], [Determine if __float128 is available])
- PAC_C_MAX_REAL_PRECISION=$FLT128_DIG
- dnl else
- dnl AC_DEFINE([HAVE_FLOAT128], [0], [Determine if __float128 is available])
- dnl PAC_C_MAX_REAL_PRECISION=$LDBL_DIG
- dnl fi
- dnl AC_MSG_CHECKING([for quadmath.h])
- dnl AC_MSG_RESULT([$HAVE_QUADMATH])
- dnl fi
+ AC_DEFINE([HAVE_FLOAT128], [1], [Determine if __float128 is available])
+ PAC_C_MAX_REAL_PRECISION=$FLT128_DIG
else
PAC_C_MAX_REAL_PRECISION=$LDBL_DIG
fi
@@ -400,7 +385,7 @@ AC_SUBST([HDF5_INTERFACES]) HDF5_INTERFACES=""
AC_MSG_CHECKING([if Fortran interface enabled])
AC_ARG_ENABLE([fortran],
[AS_HELP_STRING([--enable-fortran],
- [Compile the Fortran 90/95 interface [default=no]])],
+ [Compile the Fortran interface [default=no]])],
[HDF_FORTRAN=$enableval])
if test "X$HDF_FORTRAN" = "Xyes"; then
@@ -492,10 +477,12 @@ if test "X$HDF_FORTRAN" = "Xyes"; then
## See if the fortran compiler supports the intrinsic module "ISO_FORTRAN_ENV"
PAC_PROG_FC_ISO_FORTRAN_ENV
-
+ ## Check KIND and size of native integer
PAC_FC_NATIVE_INTEGER
-
+
+ ## Find all available KINDs
PAC_FC_AVAIL_KINDS
+ ## Find all sizeofs for available KINDs
PAC_FC_SIZEOF_INT_KINDS
PAC_FC_SIZEOF_REAL_KINDS
@@ -529,13 +516,6 @@ if test "X$HDF_FORTRAN" = "Xyes"; then
AC_DEFINE([HAVE_Fortran_INTEGER_SIZEOF_16], [0], [Determine if INTEGER*16 is available])
fi
- ##if test $PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF > ${ac_cv_sizeof_long_double}; then
- ## AC_MSG_ERROR([Fortran default DOUBLE PRECISION ("X$PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF" Bytes) can not be represented in C ])
- ##fi
-
- ##PAC_FC_AVAIL_INTEGER_MODELS
-
-
if test "X$HAVE_STORAGE_SIZE_FORTRAN" = "Xyes"; then
AC_DEFINE([FORTRAN_HAVE_STORAGE_SIZE], [1], [Define if we have Fortran intrinsic STORAGE_SIZE])
fi
@@ -574,9 +554,6 @@ if test "X$HDF_FORTRAN" = "Xyes"; then
dnl get the largest sizeof for REAL kinds
- dnl max_real_fortran_sizeof="`echo $pack_real_sizeof | sed -e 's/, *$//g' | sed -e [0-9]*$`"
- dnl max_real_fortran_sizeof="`echo $PAC_FC_ALL_REAL_KINDS_SIZEOF | sed -e 's/, }//g' | sed -e [0-9]*$`"
- dnl max_real_fortran_sizeof="`echo $PAC_FC_ALL_REAL_KINDS_SIZEOF | sed -e 's/\(, \}\)//g' | sed -e 's/.* //g'`"
max_real_fortran_sizeof="`echo \"[$]PAC_FC_ALL_REAL_KINDS_SIZEOF\" | perl -ne '/,(\d+)\}/; print $1'`"
max_real_fortran_kind="`echo \"[$]PAC_FC_ALL_REAL_KINDS\" | perl -ne '/,(\d+)\}/; print $1'`"
@@ -597,33 +574,13 @@ if test "X$HDF_FORTRAN" = "Xyes"; then
dnl count the number of real kinds
H5CONFIG_F_NUM_RKIND="INTEGER, PARAMETER :: num_rkinds = `echo \"[$]PAC_FC_ALL_REAL_KINDS\" | perl -e '$count = (<STDIN> =~ tr/,//);print $count+1'`"
- dnl MSB still need to replace spaces with commas??
H5CONFIG_F_RKIND="INTEGER, DIMENSION(1:num_rkinds) :: rkind = (/`echo \"[$]PAC_FC_ALL_REAL_KINDS\" | perl -pe 's/{//g' | perl -pe 's/}//g' | perl -pe 's/ /,/g'`/)"
- dnl H5CONFIG_F_RKIND="INTEGER, DIMENSION(1:num_rkinds) :: rkind = (`echo \"[$]PAC_FC_ALL_REAL_KINDS\" | $PERL -pe 'tr |{}|//|' | $PERL -e 's/ /,/g`)"
H5CONFIG_F_RKIND_SIZEOF="INTEGER, DIMENSION(1:num_rkinds) :: rkind_sizeof = (/`echo \"[$]PAC_FC_ALL_REAL_KINDS_SIZEOF\" | perl -pe 's/{//g' | perl -pe 's/}//g'| perl -pe 's/ /,/g'`/)"
AC_DEFINE_UNQUOTED([H5CONFIG_F_NUM_RKIND], $H5CONFIG_F_NUM_RKIND, [Define number of valid Fortran REAL KINDs])
AC_DEFINE_UNQUOTED([H5CONFIG_F_RKIND], $H5CONFIG_F_RKIND, [Define valid Fortran REAL KINDs])
AC_DEFINE_UNQUOTED([H5CONFIG_F_RKIND_SIZEOF], $H5CONFIG_F_RKIND_SIZEOF, [Define valid Fortran REAL KINDs Sizeof])
- dnl AC_MSG_WARN([...$PAC_FC_ALL_REAL_KINDS_SIZEOF...$PAC_FC_ALL_REAL_KINDS...])
- dnl PAC_FC_ALL_REAL_KINDS="{4,8,16}"
- dnl tmp3="`echo $PAC_FC_ALL_REAL_KINDS | perl -pe 's/,[0-9]*\}$/\}/g'`"
- dnl tmp1="`echo "${PAC_FC_ALL_REAL_KINDS}" | sed -e 's/,[0-9]*\}*\$/}/g'`"
- dnl tmp1="`echo $pac_validRealKinds | sed s/'w*$'//`"
- dnl tmp2="`echo $PAC_FC_ALL_REAL_KINDS_SIZEOF | sed -e 's/[0-9]*, \}*$/}/g'`"
- dnl tmp3="$PAC_FC_ALL_REAL_KINDS_SIZEOF"
- dnl echo "$tmp3"
- dnl tmp2=`echo $tmp3 | sed -e 's/[0-9]//'`
- dnl AC_MSG_WARN([here $tmp2....])
-
- dnl PAC_FC_ALL_REAL_KINDS="{4,8,16}"
- dnl echo "$PAC_FC_ALL_REAL_KINDS"
- dnl tmp1="`echo "${PAC_FC_ALL_REAL_KINDS}" | sed -e 's/,[0-9]*\}*\$/}/g'`"
- dnl tmp1="`echo $pac_validRealKinds | sed s/'w*$'//`"
- dnl tmp2="`echo $PAC_FC_ALL_REAL_KINDS_SIZEOF | sed -e 's/[0-9]*, \}*$/}/g'`"
- dnl tmp3="$PAC_FC_ALL_REAL_KINDS_SIZEOF"
-
## Change back to the C language
AC_LANG_POP(Fortran)
else
diff --git a/fortran/src/Makefile.in b/fortran/src/Makefile.in
index 768d466..d17f8c0 100644
--- a/fortran/src/Makefile.in
+++ b/fortran/src/Makefile.in
@@ -1396,17 +1396,6 @@ install-exec-local:
H5fortran_types.F90 H5f90i_gen.h: H5match_types$(EXEEXT)
$(RUNSERIAL) ./H5match_types$(EXEEXT)
-# H5fort_type_defines.h is created by running H5fortran_detect.
-# Obviously, H5fortran_detect needs to be built first.
-#H5fort_type_defines.h: H5fortran_detect$(EXEEXT)
-# $(RUNSERIAL) ./H5fortran_detect$(EXEEXT) > H5fort_type_defines.h
-
-#H5match_types.$(OBJEXT): H5fort_type_defines.h
-
-# Automake knows how to build fortran programs if we tell it the source
-# files.
-#H5fortran_detect_SOURCES = H5fortran_detect.F90
-
# H5_buildiface.F90 generates all the APIs that have a KIND type associated
# with them.
@@ -1418,9 +1407,7 @@ H5_gen.F90: H5_buildiface$(EXEEXT)
# doing a parallel make, some modules could be made way before the
# modules they depend upon are actually made. *sigh*
H5f90global.lo: $(srcdir)/H5f90global.F90 H5fortran_types.lo
-#H5fortran_types.lo: H5fortran_types.F90
-#H5fortran_detect.lo: H5fortran_detect.F90
-H5_buildiface.lo: $(srcdir)/H5_buildiface.F90
+H5_buildiface.lo: $(srcdir)/H5_buildiface.F90
H5_ff.lo: $(srcdir)/H5_ff.F90 H5f90global.lo
H5Aff.lo: $(srcdir)/H5Aff.F90 H5f90global.lo
H5Dff.lo: $(srcdir)/H5Dff.F90 H5f90global.lo
diff --git a/m4/aclocal_fc.m4 b/m4/aclocal_fc.m4
index bd724b1..b0da27c 100644
--- a/m4/aclocal_fc.m4
+++ b/m4/aclocal_fc.m4
@@ -321,6 +321,7 @@ dnl
AC_DEFUN([PAC_FC_AVAIL_KINDS],[
AC_LANG_PUSH([Fortran])
rm -f pac_fconftest.out
+
AC_RUN_IFELSE([
AC_LANG_SOURCE([
PROGRAM main
@@ -415,13 +416,8 @@ AC_RUN_IFELSE([
],[
AC_MSG_RESULT([Error])
AC_MSG_WARN([Failed to run program to determine available KINDs])
-],[
- dnl Even when cross_compiling=yes,
- dnl pac_validKinds needs to be set for PAC_FC_INTEGER_MODEL_MAP()
- dnl pac_validKinds="`echo \"$2\" | tr ',' ':'`"
- dnl AC_MSG_RESULT([$2])
- dnl ifelse([$1],[],[PAC_FC_ALL_INTEGER_MODELS=$2],[$1=$2])
-])
+],[])
+
AC_LANG_POP([Fortran])
])
AC_DEFUN([PAC_FC_SIZEOF_INT_KINDS],[
@@ -534,13 +530,6 @@ rm -f pac_fconftest.out
PAC_FORTRAN_NATIVE_REAL_SIZEOF="`perl -ne '$. == 4 && print && exit' pac_fconftest.out`"
PAC_FORTRAN_NATIVE_DOUBLE_KIND="`perl -ne '$. == 5 && print && exit' pac_fconftest.out`"
PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF="`perl -ne '$. == 6 && print && exit' pac_fconftest.out`"
-
- dnl PAC_FORTRAN_NATIVE_INTEGER_KIND="`sed -n '1p' pac_fconftest.out`"
- dnl PAC_FORTRAN_NATIVE_INTEGER_SIZEOF="`sed -n '2p' pac_fconftest.out`"
- dnl PAC_FORTRAN_NATIVE_REAL_KIND="`sed -n '3p' pac_fconftest.out`"
- dnl PAC_FORTRAN_NATIVE_REAL_SIZEOF="`sed -n '4p' pac_fconftest.out`"
- dnl PAC_FORTRAN_NATIVE_DOUBLE_KIND="`sed -n '5p' pac_fconftest.out`"
- dnl PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF="`sed -n '6p' pac_fconftest.out`"
else
AC_MSG_WARN([No output from test program!])
fi
@@ -588,9 +577,7 @@ rm -f pac_Cconftest.out
AC_RUN_IFELSE([],[
if test -s pac_Cconftest.out ; then
LDBL_DIG="`perl -ne '$. == 1 && print && exit' pac_Cconftest.out`"
- FLT128_DIG="`perl -ne '$. == 2 && print && exit' pac_Cconftest.out`"
- dnl LDBL_DIG="`sed -n '1p' pac_Cconftest.out`"
- dnl FLT128_DIG="`sed -n '2p' pac_Cconftest.out`"
+ FLT128_DIG="`perl -ne '$. == 2 && print && exit' pac_Cconftest.out`"
else
AC_MSG_WARN([No output from test program!])
fi