diff --git a/MANIFEST b/MANIFEST index b4ee3b09af..9af97ff67d 100644 --- a/MANIFEST +++ b/MANIFEST @@ -119,7 +119,6 @@ ./config/cce-flags ./config/commence.am ./config/conclude.am -./config/conclude_fc.am ./config/examples.am ./config/freebsd ./config/gnu-cxxflags diff --git a/config/conclude_fc.am b/config/conclude_fc.am deleted file mode 100644 index 15d04a77e9..0000000000 --- a/config/conclude_fc.am +++ /dev/null @@ -1,31 +0,0 @@ -## config/conclude_fc.am -## (Use double hashes for copyright notice so that automake treats it as -## comments and does not pass it to Makefile.in) -## Copyright by The HDF Group. -## Copyright by the Board of Trustees of the University of Illinois. -## All rights reserved. -## -## This file is part of HDF5. The full HDF5 copyright notice, including -## terms governing use, modification, and redistribution, is contained in -## the COPYING file, which can be found at the root of the source code -## distribution tree, or in https://support.hdfgroup.org/ftp/HDF5/releases. -## If you do not have access to either file, you may request a copy from -## help@hdfgroup.org. - - -## Textually included at the end of the Fortran HDF5 Makefiles.am. - -# Makefile.am include fragment with Fortran helper rules and macros. - -# AM_FCCPPFLAGS, FCCPPFLAGS are currently not used. - -PPFCCOMPILE = $(FC) $(FCDEFS) $(DEFAULT_INCLUDES) $(FCINCLUDES) $(AM_FCCPPFLAGS) $(FCCPPFLAGS) $(AM_FCFLAGS) $(FCFLAGS) -LTPPFCCOMPILE = $(LIBTOOL) --tag=FC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(PPFCCOMPILE) - -# Treat all .f90 and .F90 files as preprocessed Fortran. -.f90.o: - $(PPFCCOMPILE) -c -o $@ $< -.F90.o: - $(PPFCCOMPILE) -c -o $@ $< - -include $(top_srcdir)/config/conclude.am diff --git a/config/gnu-fflags b/config/gnu-fflags index 6b5e6a18c4..3a47787be5 100644 --- a/config/gnu-fflags +++ b/config/gnu-fflags @@ -1,4 +1,4 @@ -# -*- shell-script -*- +# -*- shell-script -*- # # Copyright by The HDF Group. # Copyright by the Board of Trustees of the University of Illinois. @@ -25,9 +25,8 @@ # if test X = "X$f9x_flags_set"; then f9x_version="`$FC $FCFLAGS $H5_FCFLAGS -v 2>&1 |grep 'gcc version' |\ - sed 's/.*gcc version \([-a-z0-9\.]*\).*/\1/'`" + sed 's/.*gcc version \([-a-z0-9\.]*\).*/\1/'`" if test X != "X$f9x_version"; then -# is_mpi="`$FC $FCFLAGS $H5_FCFLAGS -help 2>&1 |grep 'link MPI'`" f9x_vendor=`echo $f9x_version |sed 's/\([a-z]*\).*/\1/'` f9x_version=`echo $f9x_version |sed 's/[-a-z]//g'` if test X = "X$f9x_vendor" -a X != "X$f9x_version"; then @@ -37,24 +36,29 @@ if test X = "X$f9x_flags_set"; then echo "compiler '$FC' is GNU $f9x_vendor-$f9x_version" fi - # Some version numbers + # Get the compiler version numbers f9x_vers_major=`echo $f9x_version | cut -f1 -d.` f9x_vers_minor=`echo $f9x_version | cut -f2 -d.` f9x_vers_patch=`echo $f9x_version | cut -f3 -d.` test -n "$f9x_vers_major" || f9x_vers_major=0 test -n "$f9x_vers_minor" || f9x_vers_minor=0 test -n "$f9x_vers_patch" || f9x_vers_patch=0 - f9x_vers_all=`expr $f9x_vers_major '*' 1000000 + $f9x_vers_minor '*' 1000 + $f9x_vers_patch` fi fi -# Common GNU flags for various situations if test "X-gfortran" = "X-$f9x_vendor"; then - # Insert section about version specific problems from gnu-flags here, if - # necessary. + + FC_BASENAME=gfortran + F9XSUFFIXFLAG="" + FSEARCH_DIRS="" + + H5_FCFLAGS="$H5_FCFLAGS -std=f2008" + + ############################### + # Architecture-specific flags # + ############################### arch= - # Architecture-specific flags # Nothing currently. (Uncomment code below and modify to add any) #case "$host_os-$host_cpu" in # *-i686) @@ -62,43 +66,76 @@ if test "X-gfortran" = "X-$f9x_vendor"; then # ;; #esac - # Host-specific flags - # Nothing currently. (Uncomment code below and modify to add any) - #case "`hostname`" in - # sleipnir.ncsa.uiuc.edu) - # arch="$arch -pipe" - # ;; - #esac + H5_FCFLAGS="$H5_FCFLAGS $arch" + + ############## + # Production # + ############## + + PROD_FCFLAGS= + + ######### + # Debug # + ######### + + # Need to figure out an appropriate version for the switch. + if test $f9x_vers_major -ge 9; then + DEBUG_FCFLAGS="-fcheck=all" + else + DEBUG_FCFLAGS="-fbounds-check" + fi + + ########### + # Symbols # + ########### + + SYMBOLS_FCFLAGS="-g" + NO_SYMBOLS_FCFLAGS="-s" + + ############# + # Profiling # + ############# + + PROFILE_FCFLAGS="-pg" + + ################ + # Optimization # + ################ + + HIGH_OPT_FCFLAGS="-O2" + DEBUG_OPT_FCFLAGS="-O0" + NO_OPT_FCFLAGS="-O0" + + ############ + # Warnings # + ############ + + ########### + # General # + ########### - # General - FC_BASENAME=gfortran - F9XSUFFIXFLAG="" - FSEARCH_DIRS="" H5_FCFLAGS="$H5_FCFLAGS -pedantic -Wall -Wextra -Wunderflow -Wimplicit-interface -Wsurprising" # Turn off warnings for passing non-ANSI types to BIND(). # We pass a lot of hid_t, etc. types so this generates a LOT of spurious warnings. H5_FCFLAGS="$H5_FCFLAGS -Wno-c-binding-type" - # Production - PROD_FCFLAGS= + ############################# + # Version-specific warnings # + ############################# - # Debug - DEBUG_FCFLAGS="-fbounds-check" + # gcc 9 + # Move to other versions (9 is just the current version) + if test $f9x_vers_major -ge 9; then + H5_FCFLAGS="$H5_FCFLAGS -Waliasing -Warray-temporaries -Wcharacter-truncation" + H5_FCFLAGS="$H5_FCFLAGS -Wconversion-extra -Wfrontend-loop-interchange -Wimplicit-procedure" + H5_FCFLAGS="$H5_FCFLAGS -Winteger-division -Wintrinsics-std -Wreal-q-constant" + H5_FCFLAGS="$H5_FCFLAGS -Wuse-without-only -Wrealloc-lhs -Wrealloc-lhs-all" + fi - # Symbols - SYMBOLS_FCFLAGS="-g" - NO_SYMBOLS_FCFLAGS="-s" - - # Profiling - PROFILE_FCFLAGS="-pg" - - # Optimization - HIGH_OPT_FCFLAGS="-O2" - DEBUG_OPT_FCFLAGS="-O0" - NO_OPT_FCFLAGS="-O0" - - # Flags are set + ################# + # Flags are set # + ################# f9x_flags_set=yes fi diff --git a/fortran/examples/Makefile.am b/fortran/examples/Makefile.am index 6bf2edb380..00afb3a91c 100644 --- a/fortran/examples/Makefile.am +++ b/fortran/examples/Makefile.am @@ -105,4 +105,4 @@ compound_fortran2003: compound_fortran2003.f90 compound_complex_fortran2003: compound_complex_fortran2003.f90 include $(top_srcdir)/config/examples.am -include $(top_srcdir)/config/conclude_fc.am +include $(top_srcdir)/config/conclude.am diff --git a/fortran/src/Makefile.am b/fortran/src/Makefile.am index 40094392e1..3489566d4a 100644 --- a/fortran/src/Makefile.am +++ b/fortran/src/Makefile.am @@ -165,4 +165,4 @@ HDF5.lo: $(srcdir)/HDF5.F90 H5f90global.lo H5_ff.lo H5Aff.lo \ H5Off.lo H5Pff.lo H5Rff.lo \ H5Sff.lo H5Tff.lo H5Zff.lo H5_gen.lo -include $(top_srcdir)/config/conclude_fc.am +include $(top_srcdir)/config/conclude.am diff --git a/fortran/test/Makefile.am b/fortran/test/Makefile.am index f0d7f037ee..e5fe7d6b0f 100644 --- a/fortran/test/Makefile.am +++ b/fortran/test/Makefile.am @@ -100,4 +100,4 @@ H5_test_buildiface_LDADD = fflush2.chkexe_: fflush1.chkexe_ -include $(top_srcdir)/config/conclude_fc.am +include $(top_srcdir)/config/conclude.am diff --git a/fortran/testpar/Makefile.am b/fortran/testpar/Makefile.am index e597a84a6d..00bc3db311 100644 --- a/fortran/testpar/Makefile.am +++ b/fortran/testpar/Makefile.am @@ -48,4 +48,4 @@ LDADD=$(LIBH5FTEST) $(LIBH5TEST) $(LIBH5F) $(LIBHDF5) # Mark this directory as part of the Fortran API FORTRAN_API=yes -include $(top_srcdir)/config/conclude_fc.am +include $(top_srcdir)/config/conclude.am diff --git a/hl/fortran/examples/Makefile.am b/hl/fortran/examples/Makefile.am index d383f9ab9e..71c2866bf8 100644 --- a/hl/fortran/examples/Makefile.am +++ b/hl/fortran/examples/Makefile.am @@ -62,4 +62,4 @@ EXAMPLETOPDIR=${DESTDIR}$(exec_prefix)/share/hdf5_examples/hl # and fortran libraries above. include $(top_srcdir)/config/examples.am -include $(top_srcdir)/config/conclude_fc.am +include $(top_srcdir)/config/conclude.am diff --git a/hl/fortran/src/Makefile.am b/hl/fortran/src/Makefile.am index 37e074c09a..f51d595cd7 100644 --- a/hl/fortran/src/Makefile.am +++ b/hl/fortran/src/Makefile.am @@ -114,4 +114,5 @@ H5IMff.lo: $(srcdir)/H5IMff.F90 H5TBff.lo: $(srcdir)/H5TBff.F90 H5LTff_gen.lo: H5LTff.lo H5LTff_gen.F90 H5TBff_gen.lo: H5TBff.lo H5LTff_gen.F90 H5TBff_gen.F90 -include $(top_srcdir)/config/conclude_fc.am + +include $(top_srcdir)/config/conclude.am diff --git a/hl/fortran/test/Makefile.am b/hl/fortran/test/Makefile.am index 0552aaa34a..ef7cd4b75b 100644 --- a/hl/fortran/test/Makefile.am +++ b/hl/fortran/test/Makefile.am @@ -62,4 +62,4 @@ clean-local: # from tests in conclude.am) FORTRAN_API=yes -include $(top_srcdir)/config/conclude_fc.am +include $(top_srcdir)/config/conclude.am