diff options
author | Scot Breitenfeld <brtnfld@hdfgroup.org> | 2015-01-27 17:17:09 (GMT) |
---|---|---|
committer | Scot Breitenfeld <brtnfld@hdfgroup.org> | 2015-01-27 17:17:09 (GMT) |
commit | 4d34a0c6ad62e0482b699987c6852014dc60b699 (patch) | |
tree | 8dc0a2c4c7d9bda10fd10ba14bb2f022b4aa8123 | |
parent | 1e85e7ca5257c66c73fc426ebe58c9faf85597ca (diff) | |
download | hdf5-4d34a0c6ad62e0482b699987c6852014dc60b699.zip hdf5-4d34a0c6ad62e0482b699987c6852014dc60b699.tar.gz hdf5-4d34a0c6ad62e0482b699987c6852014dc60b699.tar.bz2 |
[svn-r26051] Fix for HDFFV-9092
Change AC_TRY_RUN TO AC_TRY_COMPILE
Changed all the instances of AC_TRY_RUN for the Fortran and C++ tests to use
AC_COMPILE_IFELSE and moved all the tests to new files in m4 directory:
aclocal_cxx.m4 (for C++ tests)
aclocal_fc.m4 (for Fortran tests)
tested: jam
47 files changed, 486 insertions, 343 deletions
@@ -33,6 +33,8 @@ ./m4/ltversion.m4 _DO_NOT_DISTRIBUTE_ ./m4/lt~obsolete.m4 _DO_NOT_DISTRIBUTE_ ./m4/ltoptions.m4 _DO_NOT_DISTRIBUTE_ +./m4/aclocal_fc.m4 +./m4/aclocal_cxx.m4 ./README.txt ./aclocal.m4 ./acsite.m4 diff --git a/Makefile.in b/Makefile.in index 670bbde..31884e6 100644 --- a/Makefile.in +++ b/Makefile.in @@ -121,7 +121,8 @@ DIST_COMMON = $(top_srcdir)/config/commence.am $(srcdir)/Makefile.in \ $(top_srcdir)/bin/missing subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ @@ -1183,6 +1183,8 @@ AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR +m4_include([m4/aclocal_cxx.m4]) +m4_include([m4/aclocal_fc.m4]) # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, @@ -53,87 +53,3 @@ esac rm -rf conftest*[]dnl ])# _AC_SYS_LARGEFILE_MACRO_VALUE -dnl ------------------------------------------------------------------------- -dnl AC_F9X_MODS() -dnl -dnl Check how F9X handles modules. This macro also checks which -dnl command-line option to use to include the module once it's built. -dnl -AC_DEFUN(AC_F9X_MODS, -[AC_MSG_CHECKING(what $FC does with modules) -AC_LANG_PUSH(Fortran) - -test -d conftestdir || mkdir conftestdir -cd conftestdir -rm -rf * - -cat >conftest.$ac_ext <<EOF - module module - integer foo - end module module -EOF - -eval $ac_compile -modfiles="" -F9XMODEXT="" - -for f in conftest.o module.mod MODULE.mod module.M MODULE.M; do - if test -f "$f" ; then - modfiles="$f" - - case "$f" in - *.o) F9XMODEXT="o" ;; - *.mod) F9XMODEXT="mod" ;; - *.M) F9XMODEXT="M" ;; - esac - fi -done - -echo $modfiles 6>&1 -if test "$modfiles" = file.o; then - echo $ac_n "checking whether $FC -em is saner""... $ac_c" 1>&6 - OLD_FCFLAGS=$FCFLAGS - FCFLAGS="$FCFLAGS -em" - eval $ac_compile - modfiles="" - for f in file.o module.mod MODULE.mod module.M MODULE.M; do - test -f $f && modfiles="$f" - done - if test "$modfiles" = "file.o"; then - FCFLAGS=$OLD_FCFLAGS - echo no 6>&1 - else - echo yes 6>&1 - fi -fi -cd .. - -AC_MSG_CHECKING(how $FC finds modules) - -for flag in "-I" "-M" "-p"; do - cat >conftest.$ac_ext <<EOF - program conftest - use module - end program conftest -EOF - - ac_compile='${FC-f90} $FCFLAGS ${flag}conftestdir -c conftest.$ac_ext 1>&AS_MESSAGE_LOG_FD' - - if AC_TRY_EVAL(ac_compile); then - F9XMODFLAG=$flag - break - fi -done - -if test -n "$F9XMODFLAG"; then - echo $F9XMODFLAG 1>&6 - FCFLAGS="$F9XMODFLAG. $FCFLAGS" -else - echo unknown 1>&6 -fi -AC_SUBST(F9XMODFLAG) -AC_SUBST(F9XMODEXT) -rm -rf conftest* -AC_LANG_POP(Fortran) -]) - diff --git a/c++/Makefile.in b/c++/Makefile.in index de87fa5..c409ef1 100644 --- a/c++/Makefile.in +++ b/c++/Makefile.in @@ -101,7 +101,8 @@ DIST_COMMON = $(top_srcdir)/config/commence.am \ TESTS = subdir = c++ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs diff --git a/c++/examples/Makefile.in b/c++/examples/Makefile.in index 3403db4..a7b2a28 100644 --- a/c++/examples/Makefile.in +++ b/c++/examples/Makefile.in @@ -107,7 +107,8 @@ DIST_COMMON = $(top_srcdir)/config/commence.am \ TESTS = $(TEST_SCRIPT) subdir = c++/examples ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs diff --git a/c++/src/Makefile.in b/c++/src/Makefile.in index 7752e12..2532815 100644 --- a/c++/src/Makefile.in +++ b/c++/src/Makefile.in @@ -109,7 +109,8 @@ DIST_COMMON = $(top_srcdir)/config/commence.am \ TESTS = subdir = c++/src ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs diff --git a/c++/test/Makefile.in b/c++/test/Makefile.in index 49c08e4..ddbd8e0 100644 --- a/c++/test/Makefile.in +++ b/c++/test/Makefile.in @@ -106,7 +106,8 @@ check_PROGRAMS = $(am__EXEEXT_1) TESTS = $(am__EXEEXT_1) subdir = c++/test ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs @@ -5576,14 +5576,14 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu ## -------------------------------------------------------------------- - ## Check for a Fortran 9X compiler and how to include modules. + ## Check for a Fortran compiler and how to include modules. ## 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 if test -n "$ac_tool_prefix"; then - for ac_prog in f90 pgf90 slf90 f95 g95 xlf95 efc ifort ftn + for ac_prog in gfortran ifort pgf90 pathf90 pathf95 xlf90 xlf95 xlf2003 f90 epcf90 f95 fort lf95 g95 ifc efc gfc do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 @@ -5627,7 +5627,7 @@ fi fi if test -z "$FC"; then ac_ct_FC=$FC - for ac_prog in f90 pgf90 slf90 f95 g95 xlf95 efc ifort ftn + for ac_prog in gfortran ifort pgf90 pathf90 pathf95 xlf90 xlf95 xlf2003 f90 epcf90 f95 fort lf95 g95 ifc efc gfc do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 @@ -6600,6 +6600,7 @@ $as_echo "no" >&6; } fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ## See if the fortran compiler supports the intrinsic function "C_SIZEOF" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if Fortran compiler supports intrinsic C_SIZEOF" >&5 @@ -6624,6 +6625,7 @@ $as_echo "no" >&6; } fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ## See if the fortran compiler supports the intrinsic function "STORAGE_SIZE" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if Fortran compiler supports intrinsic STORAGE_SIZE" >&5 @@ -6647,6 +6649,8 @@ $as_echo "no" >&6; } fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + + ## Check to see if -r8 was specified to determine if we need to ## compile the DOUBLE PRECISION interfaces. @@ -6687,12 +6691,13 @@ $as_echo "yes" >&6; } fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + if test "X$HDF_FORTRAN2003" = "Xyes"; then ## Checking if the compiler supports the required Fortran 2003 features and ## disable Fortran 2003 if it does not. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if Fortran compiler version compatible with Fortran 2003 HDF" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if Fortran compiler version compatible with Fortran 2003 HDF" >&5 $as_echo_n "checking if Fortran compiler version compatible with Fortran 2003 HDF... " >&6; } HAVE_FORTRAN_2003="no" @@ -6720,11 +6725,11 @@ else $as_echo "no" >&6; } fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + + if test "X$HAVE_F2003_REQUIREMENTS" = "Xno"; then - ## echo $HAVE_FORTRAN_2003 as_fn_error $? "Fortran compiler lacks required Fortran 2003 features; unsupported Fortran 2003 compiler, remove --enable-fortran2003" "$LINENO" 5 else - ## echo $HAVE_FORTRAN_2003 HAVE_FORTRAN_2003="yes" fi fi @@ -7359,10 +7364,12 @@ ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ex ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + # Checking if C++ needs old style header files in includes + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CXX needs old style header files in includes" >&5 $as_echo_n "checking if $CXX needs old style header files in includes... " >&6; } - -cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <iostream> @@ -7381,6 +7388,9 @@ $as_echo "yes" >&6; } fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + + # Checking if C++ can handle namespaces + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CXX can handle namespaces" >&5 $as_echo_n "checking if $CXX can handle namespaces... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -7408,53 +7418,8 @@ $as_echo "no" >&6; } fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CXX supports std" >&5 -$as_echo_n "checking if $CXX supports std... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include <string> - -using namespace std; - -int main(void) { - string myString("testing namespace std"); - return 0; -} - -_ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - CXXFLAGS="${CXXFLAGS} -DH5_NO_STD" - AM_CXXFLAGS="${AM_CXXFLAGS} -DH5_NO_STD" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CXX supports bool types" >&5 -$as_echo_n "checking if $CXX supports bool types... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int main(void) { - bool flag; - return 0; -} -_ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - CXXFLAGS="${CXXFLAGS} -DBOOL_NOTDEFINED" - AM_CXXFLAGS="${AM_CXXFLAGS} -DBOOL_NOTDEFINED" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + # Checking if C++ has offsetof extension { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CXX has offsetof extension" >&5 $as_echo_n "checking if $CXX has offsetof extension... " >&6; } @@ -7503,6 +7468,9 @@ $as_echo "no" >&6; } fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + + # if C++ can handle static cast + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CXX can handle static cast" >&5 $as_echo_n "checking if $CXX can handle static cast... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -7527,6 +7495,8 @@ $as_echo "no" >&6; } AM_CXXFLAGS="${AM_CXXFLAGS} -DNO_STATIC_CAST" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + + else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } diff --git a/configure.ac b/configure.ac index 51e40d7..393b194 100644 --- a/configure.ac +++ b/configure.ac @@ -441,9 +441,9 @@ if test "X$HDF_FORTRAN" = "Xyes"; then AC_SUBST([FSEARCH_DIRS]) ## -------------------------------------------------------------------- - ## Check for a Fortran 9X compiler and how to include modules. + ## Check for a Fortran compiler and how to include modules. ## - AC_PROG_FC([f90 pgf90 slf90 f95 g95 xlf95 efc ifort ftn],) + AC_PROG_FC([PAC_FC_SEARCH_LIST],) AC_F9X_MODS ## It seems that libtool (as of Libtool 1.5.14) is trying to @@ -461,99 +461,27 @@ if test "X$HDF_FORTRAN" = "Xyes"; then ## -------------------------------------------------------------------- ## See if the fortran compiler supports the intrinsic function "SIZEOF" - - AC_MSG_CHECKING([if Fortran compiler supports intrinsic SIZEOF]) - AC_COMPILE_IFELSE([AC_LANG_SOURCE([ - PROGRAM main - i = sizeof(x) - END PROGRAM - ])],[AC_MSG_RESULT([yes]) - HAVE_SIZEOF_FORTRAN="yes"], - [AC_MSG_RESULT([no])]) + PAC_PROG_FC_SIZEOF ## See if the fortran compiler supports the intrinsic function "C_SIZEOF" - - AC_MSG_CHECKING([if Fortran compiler supports intrinsic C_SIZEOF]) - AC_COMPILE_IFELSE([AC_LANG_SOURCE([ - PROGRAM main - USE ISO_C_BINDING - INTEGER(C_INT) :: a - INTEGER(C_SIZE_T) :: result - result = C_SIZEOF(a) - END PROGRAM - ])], [AC_MSG_RESULT([yes]) - HAVE_C_SIZEOF_FORTRAN="yes"], - [AC_MSG_RESULT([no])]) + PAC_PROG_FC_C_SIZEOF ## See if the fortran compiler supports the intrinsic function "STORAGE_SIZE" - - AC_MSG_CHECKING([if Fortran compiler supports intrinsic STORAGE_SIZE]) - AC_COMPILE_IFELSE([AC_LANG_SOURCE([ - PROGRAM main - INTEGER :: a - INTEGER :: result - result = STORAGE_SIZE(a) - END PROGRAM - ])], [AC_MSG_RESULT([yes]) - HAVE_STORAGE_SIZE_FORTRAN="yes"], - [AC_MSG_RESULT([no])]) + PAC_PROG_FC_STORAGE_SIZE ## Check to see if -r8 was specified to determine if we need to ## compile the DOUBLE PRECISION interfaces. - - AC_MSG_CHECKING([if Fortran default REAL is DOUBLE PRECISION]) - - AC_COMPILE_IFELSE([AC_LANG_SOURCE([ - MODULE type_mod - INTERFACE h5t - MODULE PROCEDURE h5t_real - MODULE PROCEDURE h5t_dble - END INTERFACE - CONTAINS - SUBROUTINE h5t_real(r) - REAL :: r - END SUBROUTINE h5t_real - SUBROUTINE h5t_dble(d) - DOUBLE PRECISION :: d - END SUBROUTINE h5t_dble - END MODULE type_mod - PROGRAM main - USE type_mod - REAL :: r - DOUBLE PRECISION :: d - CALL h5t(r) - CALL h5t(d) - END PROGRAM main - ])], [AC_MSG_RESULT([no])], - [AC_MSG_RESULT([yes]) - FORTRAN_DEFAULT_REALisDBLE="yes"]) + PAC_PROG_FC_DEFAULT_REALisDBLE if test "X$HDF_FORTRAN2003" = "Xyes"; then ## Checking if the compiler supports the required Fortran 2003 features and ## disable Fortran 2003 if it does not. - - AC_MSG_CHECKING([if Fortran compiler version compatible with Fortran 2003 HDF]) - HAVE_FORTRAN_2003="no" - - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[ - - USE iso_c_binding - IMPLICIT NONE - TYPE(C_PTR) :: ptr - TYPE(C_FUNPTR) :: funptr - CHARACTER(LEN=80, KIND=c_char), TARGET :: ichr - - ptr = C_LOC(ichr(1:1)) - - ])],[AC_MSG_RESULT([yes]) - HAVE_F2003_REQUIREMENTS=[yes]], - [AC_MSG_RESULT([no])]) + PAC_PROG_FC_HAVE_F2003_REQUIREMENTS + if test "X$HAVE_F2003_REQUIREMENTS" = "Xno"; then - ## echo $HAVE_FORTRAN_2003 AC_MSG_ERROR([Fortran compiler lacks required Fortran 2003 features; unsupported Fortran 2003 compiler, remove --enable-fortran2003]) else - ## echo $HAVE_FORTRAN_2003 HAVE_FORTRAN_2003="yes" fi fi @@ -593,91 +521,18 @@ if test "X$HDF_CXX" = "Xyes"; then ## Change to the C++ language AC_LANG_PUSH(C++) - AC_MSG_CHECKING([if $CXX needs old style header files in includes]) - AC_COMPILE_IFELSE([AC_LANG_SOURCE([ -#include <iostream> - -int main(void) { return 0; } - ])], - [AC_MSG_RESULT([no])], - [AC_MSG_RESULT([yes]) - CXXFLAGS="${CXXFLAGS} -DOLD_HEADER_FILENAME" - AM_CXXFLAGS="${AM_CXXFLAGS} -DOLD_HEADER_FILENAME"]) - - AC_MSG_CHECKING([if $CXX can handle namespaces]) - AC_COMPILE_IFELSE([AC_LANG_SOURCE([ -namespace H5 { -int fnord; -} + # Checking if C++ needs old style header files in includes + PAC_PROG_CXX_HEADERS + + # Checking if C++ can handle namespaces + PAC_PROG_CXX_NAMESPACE + + # Checking if C++ has offsetof extension + PAC_PROG_CXX_OFFSETOF + + # if C++ can handle static cast + PAC_PROG_CXX_STAIC_CAST -int main(void) { - using namespace H5; - fnord = 37; - return 0; -} - ])], [AC_MSG_RESULT([yes])], - [AC_MSG_RESULT([no]) - CXXFLAGS="${CXXFLAGS} -DH5_NO_NAMESPACE" - AM_CXXFLAGS="${AM_CXXFLAGS} -DH5_NO_NAMESPACE"]) - - AC_MSG_CHECKING([if $CXX supports std]) - AC_COMPILE_IFELSE([AC_LANG_SOURCE([ -#include <string> - -using namespace std; - -int main(void) { - string myString("testing namespace std"); - return 0; -} - ])], [AC_MSG_RESULT([yes])], - [AC_MSG_RESULT([no]) - CXXFLAGS="${CXXFLAGS} -DH5_NO_STD" - AM_CXXFLAGS="${AM_CXXFLAGS} -DH5_NO_STD"]) - - AC_MSG_CHECKING([if $CXX supports bool types]) - AC_COMPILE_IFELSE([AC_LANG_SOURCE([ -int main(void) { - bool flag; - return 0; -} - ])], [AC_MSG_RESULT([yes])], - [AC_MSG_RESULT([no]) - CXXFLAGS="${CXXFLAGS} -DBOOL_NOTDEFINED" - AM_CXXFLAGS="${AM_CXXFLAGS} -DBOOL_NOTDEFINED"]) - - AC_MSG_CHECKING([if $CXX has offsetof extension]) - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([ - #include <stdio.h> - #include <stddef.h> - ],[ - struct index_st - { - unsigned char type; - unsigned char num; - unsigned int len; - }; - typedef struct index_st index_t; - int x,y; - x = offsetof(struct index_st, len); - y = offsetof(index_t, num) - ])],[AC_MSG_RESULT([yes]) - AC_DEFINE([CXX_HAVE_OFFSETOF], [1], [Define if C++ compiler recognizes offsetof])], - AC_MSG_RESULT([no])) - - AC_MSG_CHECKING([if $CXX can handle static cast]) - AC_COMPILE_IFELSE([AC_LANG_SOURCE([ -int main(void) { - float test_float; - int test_int; - test_float = 37.0; - test_int = static_cast <int> (test_float); - return 0; -} - ])], [AC_MSG_RESULT([yes])], - [AC_MSG_RESULT([no]) - CXXFLAGS="${CXXFLAGS} -DNO_STATIC_CAST" - AM_CXXFLAGS="${AM_CXXFLAGS} -DNO_STATIC_CAST"]) else AC_MSG_RESULT([no]) CXX="no" @@ -695,7 +550,6 @@ if test "X$GCC" = "Xyes"; then AC_CHECK_PROGS([PERL], [perl],, [$PATH]) fi - ## ---------------------------------------------------------------------- ## Check which archiving tool to use. This needs to be done before ## the AM_PROG_LIBTOOL macro. diff --git a/examples/Makefile.in b/examples/Makefile.in index 71a9b4c..1a53108 100644 --- a/examples/Makefile.in +++ b/examples/Makefile.in @@ -107,7 +107,8 @@ DIST_COMMON = $(top_srcdir)/config/commence.am \ TESTS = $(TEST_SCRIPT) subdir = examples ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs diff --git a/fortran/Makefile.in b/fortran/Makefile.in index 4d8abdc..9dfbd0b 100644 --- a/fortran/Makefile.in +++ b/fortran/Makefile.in @@ -105,7 +105,8 @@ DIST_COMMON = $(top_srcdir)/config/commence.am \ TESTS = subdir = fortran ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs diff --git a/fortran/examples/Makefile.in b/fortran/examples/Makefile.in index b9b5efb..a42e5d8 100644 --- a/fortran/examples/Makefile.in +++ b/fortran/examples/Makefile.in @@ -115,7 +115,8 @@ DIST_COMMON = $(top_srcdir)/config/commence.am \ TESTS = $(TEST_SCRIPT) subdir = fortran/examples ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs diff --git a/fortran/src/Makefile.in b/fortran/src/Makefile.in index 7e6b2eb..bf56554 100644 --- a/fortran/src/Makefile.in +++ b/fortran/src/Makefile.in @@ -112,7 +112,8 @@ noinst_PROGRAMS = H5match_types$(EXEEXT) H5fortran_detect$(EXEEXT) \ TESTS = subdir = fortran/src ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs diff --git a/fortran/test/Makefile.in b/fortran/test/Makefile.in index ca91cf5..936ac67 100644 --- a/fortran/test/Makefile.in +++ b/fortran/test/Makefile.in @@ -92,7 +92,8 @@ check_PROGRAMS = $(am__EXEEXT_2) TESTS = $(am__EXEEXT_2) subdir = fortran/test ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs diff --git a/fortran/testpar/Makefile.in b/fortran/testpar/Makefile.in index 583b6dc..558bc00 100644 --- a/fortran/testpar/Makefile.in +++ b/fortran/testpar/Makefile.in @@ -109,7 +109,8 @@ check_PROGRAMS = $(am__EXEEXT_1) TESTS = subdir = fortran/testpar ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs diff --git a/hl/Makefile.in b/hl/Makefile.in index cda0122..8950717 100644 --- a/hl/Makefile.in +++ b/hl/Makefile.in @@ -105,7 +105,8 @@ DIST_COMMON = $(top_srcdir)/config/commence.am \ TESTS = subdir = hl ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs diff --git a/hl/c++/Makefile.in b/hl/c++/Makefile.in index 3839814..f48852c 100644 --- a/hl/c++/Makefile.in +++ b/hl/c++/Makefile.in @@ -101,7 +101,8 @@ DIST_COMMON = $(top_srcdir)/config/commence.am \ TESTS = subdir = hl/c++ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs diff --git a/hl/c++/examples/Makefile.in b/hl/c++/examples/Makefile.in index 5712043..fbd94ae 100644 --- a/hl/c++/examples/Makefile.in +++ b/hl/c++/examples/Makefile.in @@ -106,7 +106,8 @@ DIST_COMMON = $(top_srcdir)/config/commence.am \ TESTS = subdir = hl/c++/examples ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs diff --git a/hl/c++/src/Makefile.in b/hl/c++/src/Makefile.in index 3754fc9..b5b49e8 100644 --- a/hl/c++/src/Makefile.in +++ b/hl/c++/src/Makefile.in @@ -108,7 +108,8 @@ DIST_COMMON = $(top_srcdir)/config/commence.am \ TESTS = subdir = hl/c++/src ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs diff --git a/hl/c++/test/Makefile.in b/hl/c++/test/Makefile.in index f6bd246..c410e07 100644 --- a/hl/c++/test/Makefile.in +++ b/hl/c++/test/Makefile.in @@ -105,7 +105,8 @@ check_PROGRAMS = $(am__EXEEXT_1) TESTS = $(am__EXEEXT_1) subdir = hl/c++/test ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs diff --git a/hl/examples/Makefile.in b/hl/examples/Makefile.in index 6bbf493..8023d4f 100644 --- a/hl/examples/Makefile.in +++ b/hl/examples/Makefile.in @@ -106,7 +106,8 @@ DIST_COMMON = $(top_srcdir)/config/commence.am \ TESTS = subdir = hl/examples ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs diff --git a/hl/fortran/Makefile.in b/hl/fortran/Makefile.in index 8fe9e35..d25ab46 100644 --- a/hl/fortran/Makefile.in +++ b/hl/fortran/Makefile.in @@ -105,7 +105,8 @@ DIST_COMMON = $(top_srcdir)/config/commence.am \ TESTS = subdir = hl/fortran ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs diff --git a/hl/fortran/examples/Makefile.in b/hl/fortran/examples/Makefile.in index 1051658..afb0e1a 100644 --- a/hl/fortran/examples/Makefile.in +++ b/hl/fortran/examples/Makefile.in @@ -106,7 +106,8 @@ DIST_COMMON = $(top_srcdir)/config/commence.am \ TESTS = subdir = hl/fortran/examples ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs diff --git a/hl/fortran/src/Makefile.in b/hl/fortran/src/Makefile.in index 5d4eaf2..134048b 100644 --- a/hl/fortran/src/Makefile.in +++ b/hl/fortran/src/Makefile.in @@ -108,7 +108,8 @@ DIST_COMMON = $(top_srcdir)/config/commence.am \ TESTS = subdir = hl/fortran/src ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs diff --git a/hl/fortran/test/Makefile.in b/hl/fortran/test/Makefile.in index 4a929a6..f7d1f6f 100644 --- a/hl/fortran/test/Makefile.in +++ b/hl/fortran/test/Makefile.in @@ -107,7 +107,8 @@ check_PROGRAMS = $(am__EXEEXT_1) TESTS = $(am__EXEEXT_1) subdir = hl/fortran/test ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs diff --git a/hl/src/Makefile.in b/hl/src/Makefile.in index 0ac1592..1a3e124 100644 --- a/hl/src/Makefile.in +++ b/hl/src/Makefile.in @@ -105,7 +105,8 @@ DIST_COMMON = $(top_srcdir)/config/commence.am \ TESTS = subdir = hl/src ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs diff --git a/hl/test/Makefile.in b/hl/test/Makefile.in index a002482..a08c7c2 100644 --- a/hl/test/Makefile.in +++ b/hl/test/Makefile.in @@ -107,7 +107,8 @@ check_PROGRAMS = $(am__EXEEXT_1) TESTS = $(am__EXEEXT_1) subdir = hl/test ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs diff --git a/hl/tools/Makefile.in b/hl/tools/Makefile.in index a34e225..f2ea28d 100644 --- a/hl/tools/Makefile.in +++ b/hl/tools/Makefile.in @@ -101,7 +101,8 @@ DIST_COMMON = $(top_srcdir)/config/commence.am \ TESTS = subdir = hl/tools ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs diff --git a/hl/tools/gif2h5/Makefile.in b/hl/tools/gif2h5/Makefile.in index 1c9be68..5ef6003 100644 --- a/hl/tools/gif2h5/Makefile.in +++ b/hl/tools/gif2h5/Makefile.in @@ -105,7 +105,8 @@ noinst_PROGRAMS = h52gifgentst$(EXEEXT) TESTS = $(TEST_SCRIPT) subdir = hl/tools/gif2h5 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs diff --git a/m4/aclocal_cxx.m4 b/m4/aclocal_cxx.m4 new file mode 100644 index 0000000..2068587 --- /dev/null +++ b/m4/aclocal_cxx.m4 @@ -0,0 +1,117 @@ +dnl ------------------------------------------------------------------------- +dnl ------------------------------------------------------------------------- +dnl +dnl Copyright by the Board of Trustees of the University of Illinois. +dnl All rights reserved. +dnl +dnl This file is part of HDF5. The full HDF5 copyright notice, including +dnl terms governing use, modification, and redistribution, is contained in +dnl the files COPYING and Copyright.html. COPYING can be found at the root +dnl of the source code distribution tree; Copyright.html can be found at the +dnl root level of an installed copy of the electronic HDF5 document set and +dnl is linked from the top-level documents page. It can also be found at +dnl http://hdf.ncsa.uiuc.edu/HDF5/doc/Copyright.html. If you do not have +dnl access to either file, you may request a copy from hdfhelp@ncsa.uiuc.edu. +dnl +dnl ------------------------------------------------------------------------- +dnl ------------------------------------------------------------------------- + +dnl ********************************* +dnl PURPOSE +dnl Contains Macros for HDF5 C++ +dnl ********************************* + +dnl Checking if C++ needs old style header files in includes + +AC_DEFUN([PAC_PROG_CXX_HEADERS],[ + AC_MSG_CHECKING([if $CXX needs old style header files in includes]) + AC_COMPILE_IFELSE([AC_LANG_SOURCE([ +#include <iostream> + +int main(void) { return 0; } + ])], + [AC_MSG_RESULT([no])], + [AC_MSG_RESULT([yes]) + CXXFLAGS="${CXXFLAGS} -DOLD_HEADER_FILENAME" + AM_CXXFLAGS="${AM_CXXFLAGS} -DOLD_HEADER_FILENAME"]) +]) + +dnl Checking if ++ can handle namespaces + +AC_DEFUN([PAC_PROG_CXX_NAMESPACE],[ + AC_MSG_CHECKING([if $CXX can handle namespaces]) + AC_COMPILE_IFELSE([AC_LANG_SOURCE([ +namespace H5 { +int fnord; +} + +int main(void) { + using namespace H5; + fnord = 37; + return 0; +} + ])], [AC_MSG_RESULT([yes])], + [AC_MSG_RESULT([no]) + CXXFLAGS="${CXXFLAGS} -DH5_NO_NAMESPACE" + AM_CXXFLAGS="${AM_CXXFLAGS} -DH5_NO_NAMESPACE"]) +]) + +dnl Checking if C++ supports std + +AC_DEFUN([PAC_PROG_CXX_STD],[ + AC_MSG_CHECKING([if $CXX supports std]) + AC_COMPILE_IFELSE([AC_LANG_SOURCE([ +#include <string> + +using namespace std; + +int main(void) { + string myString("testing namespace std"); + return 0; +} + ])], [AC_MSG_RESULT([yes])], + [AC_MSG_RESULT([no]) + CXXFLAGS="${CXXFLAGS} -DH5_NO_STD" + AM_CXXFLAGS="${AM_CXXFLAGS} -DH5_NO_STD"]) +]) + +dnl Checking if C++ has offsetof extension + +AC_DEFUN([PAC_PROG_CXX_OFFSETOF],[ + AC_MSG_CHECKING([if $CXX has offsetof extension]) + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([ + #include <stdio.h> + #include <stddef.h> + ],[ + struct index_st + { + unsigned char type; + unsigned char num; + unsigned int len; + }; + typedef struct index_st index_t; + int x,y; + x = offsetof(struct index_st, len); + y = offsetof(index_t, num) + ])],[AC_MSG_RESULT([yes]) + AC_DEFINE([CXX_HAVE_OFFSETOF], [1], [Define if C++ compiler recognizes offsetof])], + AC_MSG_RESULT([no])) +]) + +dnl Checking if C++ can handle static cast + +AC_DEFUN([PAC_PROG_CXX_STAIC_CAST],[ + AC_MSG_CHECKING([if $CXX can handle static cast]) + AC_COMPILE_IFELSE([AC_LANG_SOURCE([ +int main(void) { + float test_float; + int test_int; + test_float = 37.0; + test_int = static_cast <int> (test_float); + return 0; +} + ])], [AC_MSG_RESULT([yes])], + [AC_MSG_RESULT([no]) + CXXFLAGS="${CXXFLAGS} -DNO_STATIC_CAST" + AM_CXXFLAGS="${AM_CXXFLAGS} -DNO_STATIC_CAST"]) +]) diff --git a/m4/aclocal_fc.m4 b/m4/aclocal_fc.m4 new file mode 100644 index 0000000..ec638a3 --- /dev/null +++ b/m4/aclocal_fc.m4 @@ -0,0 +1,242 @@ +dnl ------------------------------------------------------------------------- +dnl ------------------------------------------------------------------------- +dnl +dnl Copyright by the Board of Trustees of the University of Illinois. +dnl All rights reserved. +dnl +dnl This file is part of HDF5. The full HDF5 copyright notice, including +dnl terms governing use, modification, and redistribution, is contained in +dnl the files COPYING and Copyright.html. COPYING can be found at the root +dnl of the source code distribution tree; Copyright.html can be found at the +dnl root level of an installed copy of the electronic HDF5 document set and +dnl is linked from the top-level documents page. It can also be found at +dnl http://hdf.ncsa.uiuc.edu/HDF5/doc/Copyright.html. If you do not have +dnl access to either file, you may request a copy from hdfhelp@ncsa.uiuc.edu. +dnl +dnl ------------------------------------------------------------------------- +dnl ------------------------------------------------------------------------- + +dnl ********************************* +dnl PURPOSE +dnl Contains Macros for HDF5 Fortran +dnl ********************************* +dnl +dnl PAC_FC_SEARCH_LIST - expands to a whitespace separated list of modern +dnl fortran compilers for use with AC_PROG_FC that is more suitable for HPC +dnl software packages +AC_DEFUN([PAC_FC_SEARCH_LIST], + [gfortran ifort pgf90 pathf90 pathf95 xlf90 xlf95 xlf2003 f90 epcf90 f95 fort lf95 g95 ifc efc gfc]) +dnl +dnl PAC_PROG_FC([COMPILERS]) +dnl +dnl COMPILERS is a space separated list of Fortran compilers to search for. +dnl +dnl Compilers are ordered by +dnl 1. F90, F95, F2003 +dnl 2. Good/tested native compilers, bad/untested native compilers +dnl 3. Wrappers around f2c go last. +dnl +dnl frt is the Fujitsu Fortran compiler. +dnl pgf90 are the Portland Group F90 compilers. +dnl xlf/xlf90/xlf95/xlf2003 are IBM (AIX) F90/F95/F2003 compilers. +dnl lf95 is the Lahey-Fujitsu compiler. +dnl fl32 is the Microsoft Fortran "PowerStation" compiler. +dnl epcf90 is the "Edinburgh Portable Compiler" F90. +dnl fort is the Compaq Fortran 90 (now 95) compiler for Tru64 and Linux/Alpha. +dnl pathf90 is the Pathscale Fortran 90 compiler +dnl ifort is another name for the Intel f90 compiler +dnl efc - An older Intel compiler (?) +dnl ifc - An older Intel compiler +dnl fc - A compiler on some unknown system. This has been removed because +dnl it may also be the name of a command for something other than +dnl the Fortran compiler (e.g., fc=file system check!) +dnl gfortran - The GNU Fortran compiler (not the same as g95) +dnl gfc - An alias for gfortran recommended in cygwin installations +dnl NOTE: this macro suffers from a basically intractable "expanded before it +dnl was required" problem when libtool is also used +dnl [1] MPICH.org +dnl + +dnl See if the fortran compiler supports the intrinsic function "SIZEOF" + +AC_DEFUN([PAC_PROG_FC_SIZEOF],[ + AC_MSG_CHECKING([if Fortran compiler supports intrinsic SIZEOF]) + AC_COMPILE_IFELSE([AC_LANG_SOURCE([ + PROGRAM main + i = sizeof(x) + END PROGRAM + ])],[AC_MSG_RESULT([yes]) + HAVE_SIZEOF_FORTRAN="yes"], + [AC_MSG_RESULT([no])]) +]) + +dnl See if the fortran compiler supports the intrinsic function "C_SIZEOF" + +AC_DEFUN([PAC_PROG_FC_C_SIZEOF],[ + AC_MSG_CHECKING([if Fortran compiler supports intrinsic C_SIZEOF]) + AC_COMPILE_IFELSE([AC_LANG_SOURCE([ + PROGRAM main + USE ISO_C_BINDING + INTEGER(C_INT) :: a + INTEGER(C_SIZE_T) :: result + result = C_SIZEOF(a) + END PROGRAM + ])], [AC_MSG_RESULT([yes]) + HAVE_C_SIZEOF_FORTRAN="yes"], + [AC_MSG_RESULT([no])]) +]) + +dnl See if the fortran compiler supports the intrinsic function "STORAGE_SIZE" + +AC_DEFUN([PAC_PROG_FC_STORAGE_SIZE],[ + AC_MSG_CHECKING([if Fortran compiler supports intrinsic STORAGE_SIZE]) + AC_COMPILE_IFELSE([AC_LANG_SOURCE([ + PROGRAM main + INTEGER :: a + INTEGER :: result + result = STORAGE_SIZE(a) + END PROGRAM + ])], [AC_MSG_RESULT([yes]) + HAVE_STORAGE_SIZE_FORTRAN="yes"], + [AC_MSG_RESULT([no])]) + +]) + +dnl Check to see if -r8 was specified to determine if we need to +dnl compile the DOUBLE PRECISION interfaces. + +AC_DEFUN([PAC_PROG_FC_DEFAULT_REALisDBLE],[ + AC_MSG_CHECKING([if Fortran default REAL is DOUBLE PRECISION]) + + AC_COMPILE_IFELSE([AC_LANG_SOURCE([ + MODULE type_mod + INTERFACE h5t + MODULE PROCEDURE h5t_real + MODULE PROCEDURE h5t_dble + END INTERFACE + CONTAINS + SUBROUTINE h5t_real(r) + REAL :: r + END SUBROUTINE h5t_real + SUBROUTINE h5t_dble(d) + DOUBLE PRECISION :: d + END SUBROUTINE h5t_dble + END MODULE type_mod + PROGRAM main + USE type_mod + REAL :: r + DOUBLE PRECISION :: d + CALL h5t(r) + CALL h5t(d) + END PROGRAM main + ])], [AC_MSG_RESULT([no])], + [AC_MSG_RESULT([yes]) + FORTRAN_DEFAULT_REALisDBLE="yes"]) +]) + +dnl Checking if the compiler supports the required Fortran 2003 features and +dnl disable Fortran 2003 if it does not. + +AC_DEFUN([PAC_PROG_FC_HAVE_F2003_REQUIREMENTS],[ + AC_MSG_CHECKING([if Fortran compiler version compatible with Fortran 2003 HDF]) + HAVE_FORTRAN_2003="no" + + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[ + + USE iso_c_binding + IMPLICIT NONE + TYPE(C_PTR) :: ptr + TYPE(C_FUNPTR) :: funptr + CHARACTER(LEN=80, KIND=c_char), TARGET :: ichr + + ptr = C_LOC(ichr(1:1)) + + ])],[AC_MSG_RESULT([yes]) + HAVE_F2003_REQUIREMENTS=[yes]], + [AC_MSG_RESULT([no])]) +]) + +dnl ------------------------------------------------------------------------- +dnl AC_F9X_MODS() +dnl +dnl Check how F9X handles modules. This macro also checks which +dnl command-line option to use to include the module once it's built. +dnl +AC_DEFUN([AC_F9X_MODS], +[AC_MSG_CHECKING(what $FC does with modules) +AC_LANG_PUSH(Fortran) + +test -d conftestdir || mkdir conftestdir +cd conftestdir +rm -rf * + +cat >conftest.$ac_ext <<EOF + module module + integer foo + end module module +EOF + +eval $ac_compile +modfiles="" +F9XMODEXT="" + +for f in conftest.o module.mod MODULE.mod module.M MODULE.M; do + if test -f "$f" ; then + modfiles="$f" + + case "$f" in + *.o) F9XMODEXT="o" ;; + *.mod) F9XMODEXT="mod" ;; + *.M) F9XMODEXT="M" ;; + esac + fi +done + +echo $modfiles 6>&1 +if test "$modfiles" = file.o; then + echo $ac_n "checking whether $FC -em is saner""... $ac_c" 1>&6 + OLD_FCFLAGS=$FCFLAGS + FCFLAGS="$FCFLAGS -em" + eval $ac_compile + modfiles="" + for f in file.o module.mod MODULE.mod module.M MODULE.M; do + test -f $f && modfiles="$f" + done + if test "$modfiles" = "file.o"; then + FCFLAGS=$OLD_FCFLAGS + echo no 6>&1 + else + echo yes 6>&1 + fi +fi +cd .. + +AC_MSG_CHECKING(how $FC finds modules) + +for flag in "-I" "-M" "-p"; do + cat >conftest.$ac_ext <<EOF + program conftest + use module + end program conftest +EOF + + ac_compile='${FC-f90} $FCFLAGS ${flag}conftestdir -c conftest.$ac_ext 1>&AS_MESSAGE_LOG_FD' + + if AC_TRY_EVAL(ac_compile); then + F9XMODFLAG=$flag + break + fi +done + +if test -n "$F9XMODFLAG"; then + echo $F9XMODFLAG 1>&6 + FCFLAGS="$F9XMODFLAG. $FCFLAGS" +else + echo unknown 1>&6 +fi +AC_SUBST(F9XMODFLAG) +AC_SUBST(F9XMODEXT) +rm -rf conftest* +AC_LANG_POP(Fortran) +]) + diff --git a/src/Makefile.in b/src/Makefile.in index 1933734..96883f6 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -109,7 +109,8 @@ noinst_PROGRAMS = H5detect$(EXEEXT) H5make_libsettings$(EXEEXT) TESTS = subdir = src ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs diff --git a/test/Makefile.in b/test/Makefile.in index 2a43aaf..ab8402b 100644 --- a/test/Makefile.in +++ b/test/Makefile.in @@ -115,7 +115,8 @@ check_PROGRAMS = $(am__EXEEXT_1) error_test$(EXEEXT) \ TESTS = $(am__EXEEXT_1) $(TEST_SCRIPT) subdir = test ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs diff --git a/testpar/Makefile.in b/testpar/Makefile.in index 6814acb..bf135b5 100644 --- a/testpar/Makefile.in +++ b/testpar/Makefile.in @@ -103,7 +103,8 @@ check_PROGRAMS = $(am__EXEEXT_1) TESTS = subdir = testpar ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs diff --git a/tools/Makefile.in b/tools/Makefile.in index c4bf941..82aabdf 100644 --- a/tools/Makefile.in +++ b/tools/Makefile.in @@ -101,7 +101,8 @@ DIST_COMMON = $(top_srcdir)/config/commence.am \ TESTS = subdir = tools ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs diff --git a/tools/h5copy/Makefile.in b/tools/h5copy/Makefile.in index 76573a0..06ed9de 100644 --- a/tools/h5copy/Makefile.in +++ b/tools/h5copy/Makefile.in @@ -105,7 +105,8 @@ check_PROGRAMS = $(am__EXEEXT_1) TESTS = $(am__EXEEXT_1) $(TEST_SCRIPT) subdir = tools/h5copy ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs diff --git a/tools/h5diff/Makefile.in b/tools/h5diff/Makefile.in index 6a8d2ac..230518f 100644 --- a/tools/h5diff/Makefile.in +++ b/tools/h5diff/Makefile.in @@ -105,7 +105,8 @@ check_PROGRAMS = $(am__EXEEXT_2) TESTS = $(am__EXEEXT_2) $(TEST_SCRIPT) subdir = tools/h5diff ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs diff --git a/tools/h5dump/Makefile.in b/tools/h5dump/Makefile.in index 8cb1661..f887f1a 100644 --- a/tools/h5dump/Makefile.in +++ b/tools/h5dump/Makefile.in @@ -106,7 +106,8 @@ bin_PROGRAMS = h5dump$(EXEEXT) TESTS = $(am__EXEEXT_1) $(TEST_SCRIPT) subdir = tools/h5dump ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs diff --git a/tools/h5import/Makefile.in b/tools/h5import/Makefile.in index d3b0185..aac2308 100644 --- a/tools/h5import/Makefile.in +++ b/tools/h5import/Makefile.in @@ -105,7 +105,8 @@ bin_PROGRAMS = h5import$(EXEEXT) TESTS = $(am__EXEEXT_1) $(TEST_SCRIPT) subdir = tools/h5import ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs diff --git a/tools/h5jam/Makefile.in b/tools/h5jam/Makefile.in index d0c8f16..b2ee809 100644 --- a/tools/h5jam/Makefile.in +++ b/tools/h5jam/Makefile.in @@ -105,7 +105,8 @@ check_PROGRAMS = tellub$(EXEEXT) h5jamgentest$(EXEEXT) getub$(EXEEXT) TESTS = $(TEST_SCRIPT) subdir = tools/h5jam ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs diff --git a/tools/h5ls/Makefile.in b/tools/h5ls/Makefile.in index 2c4fe10..4d96b19 100644 --- a/tools/h5ls/Makefile.in +++ b/tools/h5ls/Makefile.in @@ -104,7 +104,8 @@ bin_PROGRAMS = h5ls$(EXEEXT) TESTS = $(TEST_SCRIPT) subdir = tools/h5ls ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs diff --git a/tools/h5repack/Makefile.in b/tools/h5repack/Makefile.in index 50e7341..ad11b85 100644 --- a/tools/h5repack/Makefile.in +++ b/tools/h5repack/Makefile.in @@ -108,7 +108,8 @@ bin_PROGRAMS = h5repack$(EXEEXT) TESTS = $(am__EXEEXT_1) $(TEST_SCRIPT) subdir = tools/h5repack ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs diff --git a/tools/h5stat/Makefile.in b/tools/h5stat/Makefile.in index 32b6d4c..ff56c9b 100644 --- a/tools/h5stat/Makefile.in +++ b/tools/h5stat/Makefile.in @@ -106,7 +106,8 @@ bin_PROGRAMS = h5stat$(EXEEXT) TESTS = $(am__EXEEXT_1) $(TEST_SCRIPT) subdir = tools/h5stat ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs diff --git a/tools/lib/Makefile.in b/tools/lib/Makefile.in index b2afb07..d69d515 100644 --- a/tools/lib/Makefile.in +++ b/tools/lib/Makefile.in @@ -103,7 +103,8 @@ check_PROGRAMS = $(am__EXEEXT_1) TESTS = $(am__EXEEXT_1) subdir = tools/lib ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs diff --git a/tools/misc/Makefile.in b/tools/misc/Makefile.in index 1160938..612e37e 100644 --- a/tools/misc/Makefile.in +++ b/tools/misc/Makefile.in @@ -107,7 +107,8 @@ bin_PROGRAMS = h5debug$(EXEEXT) h5repart$(EXEEXT) h5mkgrp$(EXEEXT) TESTS = $(am__EXEEXT_1) $(TEST_SCRIPT) subdir = tools/misc ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs diff --git a/tools/perform/Makefile.in b/tools/perform/Makefile.in index 24aa8be..69a5b5f 100644 --- a/tools/perform/Makefile.in +++ b/tools/perform/Makefile.in @@ -111,7 +111,8 @@ check_PROGRAMS = iopipe$(EXEEXT) chunk$(EXEEXT) overhead$(EXEEXT) \ TESTS = $(am__EXEEXT_3) subdir = tools/perform ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \ + $(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs |