summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--config/gnu-flags40
-rw-r--r--configure.ac42
-rw-r--r--tools/src/Makefile.am3
-rw-r--r--tools/src/h5format_convert/Makefile.am3
-rw-r--r--tools/src/h5repack/Makefile.am23
-rw-r--r--tools/test/Makefile.am4
-rw-r--r--tools/test/h5format_convert/Makefile.am2
-rw-r--r--tools/test/h5format_convert/h5fc_gentest.c1
-rw-r--r--tools/test/h5repack/Makefile.am10
9 files changed, 84 insertions, 44 deletions
diff --git a/config/gnu-flags b/config/gnu-flags
index 0b5283c..c0c8368 100644
--- a/config/gnu-flags
+++ b/config/gnu-flags
@@ -94,7 +94,7 @@ case "$cc_vendor-$cc_version" in
esac
# General
- H5_CFLAGS="$H5_CFLAGS $arch -std=c99 -pedantic -Wall -W -Wundef -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align -Wwrite-strings -Wconversion -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls -Wnested-externs -Winline"
+ H5_CFLAGS="$H5_CFLAGS $arch -std=c99 -pedantic -Wall -W -Wundef -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align -Wwrite-strings -Wconversion -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls -Wnested-externs"
# Production
# NDEBUG is handled explicitly by the configure script
@@ -125,6 +125,10 @@ case "$cc_vendor-$cc_version" in
esac
#DEBUG_CFLAGS="-fsanitize=undefined"
+ # Developer warnings (suggestions from gcc, not code problems)
+ NO_DEVELOPER_WARNING_CFLAGS="-Wno-suggest-attribute=const -Wno-suggest-attribute=pure -Wno-suggest-attribute=noreturn -Wno-suggest-attribute=format -Wno-inline"
+ DEVELOPER_WARNING_CFLAGS="-Wsuggest-attribute=const -Wsuggest-attribute=pure -Wsuggest-attribute=noreturn -Wsuggest-attribute=format -Winline"
+
# Symbols
NO_SYMBOLS_CFLAGS="-s"
SYMBOLS_CFLAGS="-g"
@@ -223,13 +227,10 @@ case "$cc_vendor-$cc_version" in
H5_CFLAGS="$H5_CFLAGS -Wstrict-overflow=5 -Wjump-misses-init -Wunsuffixed-float-constants"
# Append more extra warning flags that only gcc 4.6+ know about
- H5_CFLAGS="$H5_CFLAGS -Wdouble-promotion -Wsuggest-attribute=const -Wtrampolines"
+ H5_CFLAGS="$H5_CFLAGS -Wdouble-promotion -Wtrampolines"
# Append more extra warning flags that only gcc 4.7+ know about
- H5_CFLAGS="$H5_CFLAGS -Wstack-usage=8192 -Wvector-operation-performance -Wsuggest-attribute=pure -Wsuggest-attribute=noreturn"
-
- # Append more extra warning flags that only gcc 4.8+ know about
- H5_CFLAGS="$H5_CFLAGS -Wsuggest-attribute=format"
+ H5_CFLAGS="$H5_CFLAGS -Wstack-usage=8192 -Wvector-operation-performance"
# Append more extra warning flags that only gcc 4.9+ know about
H5_CFLAGS="$H5_CFLAGS -Wdate-time"
@@ -297,13 +298,10 @@ case "$cc_vendor-$cc_version" in
H5_CFLAGS="$H5_CFLAGS -Wstrict-overflow=5 -Wjump-misses-init -Wunsuffixed-float-constants"
# Append more extra warning flags that only gcc 4.6+ know about
- H5_CFLAGS="$H5_CFLAGS -Wdouble-promotion -Wsuggest-attribute=const -Wtrampolines"
+ H5_CFLAGS="$H5_CFLAGS -Wdouble-promotion -Wtrampolines"
# Append more extra warning flags that only gcc 4.7+ know about
- H5_CFLAGS="$H5_CFLAGS -Wstack-usage=8192 -Wvector-operation-performance -Wsuggest-attribute=pure -Wsuggest-attribute=noreturn"
-
- # Append more extra warning flags that only gcc 4.8+ know about
- H5_CFLAGS="$H5_CFLAGS -Wsuggest-attribute=format"
+ H5_CFLAGS="$H5_CFLAGS -Wstack-usage=8192 -Wvector-operation-performance"
# Append more extra warning flags that only gcc 4.9+ know about
H5_CFLAGS="$H5_CFLAGS -Wdate-time"
@@ -368,13 +366,10 @@ case "$cc_vendor-$cc_version" in
H5_CFLAGS="$H5_CFLAGS -Wstrict-overflow=5 -Wjump-misses-init -Wunsuffixed-float-constants"
# Append more extra warning flags that only gcc 4.6+ know about
- H5_CFLAGS="$H5_CFLAGS -Wdouble-promotion -Wsuggest-attribute=const -Wtrampolines"
+ H5_CFLAGS="$H5_CFLAGS -Wdouble-promotion -Wtrampolines"
# Append more extra warning flags that only gcc 4.7+ know about
- H5_CFLAGS="$H5_CFLAGS -Wstack-usage=8192 -Wvector-operation-performance -Wsuggest-attribute=pure -Wsuggest-attribute=noreturn"
-
- # Append more extra warning flags that only gcc 4.8+ know about
- H5_CFLAGS="$H5_CFLAGS -Wsuggest-attribute=format"
+ H5_CFLAGS="$H5_CFLAGS -Wstack-usage=8192 -Wvector-operation-performance"
# Append more extra warning flags that only gcc 4.9+ know about
H5_CFLAGS="$H5_CFLAGS -Wdate-time"
@@ -436,13 +431,10 @@ case "$cc_vendor-$cc_version" in
H5_CFLAGS="$H5_CFLAGS -Wstrict-overflow=5 -Wjump-misses-init"
# Append more extra warning flags that only gcc 4.6+ know about
- H5_CFLAGS="$H5_CFLAGS -Wdouble-promotion -Wsuggest-attribute=const -Wtrampolines"
+ H5_CFLAGS="$H5_CFLAGS -Wdouble-promotion -Wtrampolines"
# Append more extra warning flags that only gcc 4.7+ know about
- H5_CFLAGS="$H5_CFLAGS -Wstack-usage=8192 -Wvector-operation-performance -Wsuggest-attribute=pure -Wsuggest-attribute=noreturn"
-
- # Append more extra warning flags that only gcc 4.8+ know about
- H5_CFLAGS="$H5_CFLAGS -Wsuggest-attribute=format"
+ H5_CFLAGS="$H5_CFLAGS -Wstack-usage=8192 -Wvector-operation-performance"
;;
gcc-4.7*)
@@ -502,10 +494,10 @@ case "$cc_vendor-$cc_version" in
H5_CFLAGS="$H5_CFLAGS -Wstrict-overflow=5 -Wjump-misses-init -Wunsuffixed-float-constants"
# Append more extra warning flags that only gcc 4.6+ know about
- H5_CFLAGS="$H5_CFLAGS -Wdouble-promotion -Wsuggest-attribute=const -Wtrampolines"
+ H5_CFLAGS="$H5_CFLAGS -Wdouble-promotion -Wtrampolines"
# Append more extra warning flags that only gcc 4.7+ know about
- H5_CFLAGS="$H5_CFLAGS -Wstack-usage=8192 -Wvector-operation-performance -Wsuggest-attribute=pure -Wsuggest-attribute=noreturn"
+ H5_CFLAGS="$H5_CFLAGS -Wstack-usage=8192 -Wvector-operation-performance"
;;
gcc-4.6*)
@@ -561,7 +553,7 @@ case "$cc_vendor-$cc_version" in
H5_CFLAGS="$H5_CFLAGS -Wstrict-aliasing -Wstrict-overflow=5 -Wjump-misses-init -Wunsuffixed-float-constants"
# Append more extra warning flags that only gcc 4.6+ know about
- H5_CFLAGS="$H5_CFLAGS -Wdouble-promotion -Wsuggest-attribute=const -Wtrampolines"
+ H5_CFLAGS="$H5_CFLAGS -Wdouble-promotion -Wtrampolines"
;;
gcc-4.5*)
diff --git a/configure.ac b/configure.ac
index 82ad020..9f84b0f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2055,6 +2055,48 @@ case "X-$ASSERTS" in
esac
## ----------------------------------------------------------------------
+## Check if developer warnings should be turned on
+## These are warnings that provide suggestions like gcc's -Wsuggest-attribute.
+## They do not indicate code problems.
+##
+## Note that developers don't need to build with these regularly. They
+## are just handy to check once in a while (before releases, etc.).
+##
+AC_MSG_CHECKING([enable developer warnings])
+AC_ARG_ENABLE([developer-warnings],
+ [AS_HELP_STRING([--enable-developer-warnings],
+ [Determines whether developer warnings will be
+ emitted. These are usually performance suggestions
+ (e.g. -Wsuggest-attribute) and do not flag poor code
+ quality.
+ [default=no]
+ ])],
+ [DEV_WARNINGS=$enableval])
+
+## Set default
+if test "X-$DEV_WARNINGS" = X- ; then
+ DEV_WARNINGS=no
+fi
+
+## Allow this variable to be substituted in
+## other files (src/libhdf5.settings.in, etc.)
+AC_SUBST([DEV_WARNINGS])
+
+case "X-$DEV_WARNINGS" in
+ X-yes)
+ H5_CFLAGS="$H5_CFLAGS $DEVELOPER_WARNING_CFLAGS"
+ AC_MSG_RESULT([yes])
+ ;;
+ X-no)
+ H5_CFLAGS="$H5_CFLAGS $NO_DEVELOPER_WARNING_CFLAGS"
+ AC_MSG_RESULT([no])
+ ;;
+ *)
+ AC_MSG_ERROR([Unrecognized value: $DEV_WARNINGS])
+ ;;
+esac
+
+## ----------------------------------------------------------------------
## Check if the compiler should use profiling flags/settings
##
AC_MSG_CHECKING([profiling])
diff --git a/tools/src/Makefile.am b/tools/src/Makefile.am
index 0cea969..358ac6b 100644
--- a/tools/src/Makefile.am
+++ b/tools/src/Makefile.am
@@ -24,6 +24,7 @@ include $(top_srcdir)/config/commence.am
CONFIG=ordered
# All subdirectories
-SUBDIRS=h5diff h5ls h5dump misc h5import h5repack h5jam h5copy h5stat
+SUBDIRS=h5diff h5ls h5dump misc h5import h5repack h5jam h5copy \
+ h5format_convert h5stat
include $(top_srcdir)/config/conclude.am
diff --git a/tools/src/h5format_convert/Makefile.am b/tools/src/h5format_convert/Makefile.am
index e2d1acf..35f9e68 100644
--- a/tools/src/h5format_convert/Makefile.am
+++ b/tools/src/h5format_convert/Makefile.am
@@ -25,6 +25,7 @@ AM_CPPFLAGS+=-I$(top_srcdir)/src -I$(top_srcdir)/tools/lib
# These are our main targets, the tools
bin_PROGRAMS=h5format_convert
+bin_SCRIPTS=
# Add h5format_convert specific linker flags here
h5format_convert_LDFLAGS = $(LT_STATIC_EXEC) $(AM_LDFLAGS)
@@ -32,4 +33,6 @@ h5format_convert_LDFLAGS = $(LT_STATIC_EXEC) $(AM_LDFLAGS)
# All programs rely on hdf5 library and h5tools library
LDADD=$(LIBH5TOOLS) $(LIBHDF5)
+CLEANFILES=
+
include $(top_srcdir)/config/conclude.am
diff --git a/tools/src/h5repack/Makefile.am b/tools/src/h5repack/Makefile.am
index e6e5a56..31d368d 100644
--- a/tools/src/h5repack/Makefile.am
+++ b/tools/src/h5repack/Makefile.am
@@ -23,20 +23,25 @@ include $(top_srcdir)/config/commence.am
# Include src, test, and tools/lib directories
AM_CPPFLAGS+=-I$(top_srcdir)/src -I$(top_srcdir)/test -I$(top_srcdir)/tools/lib
+# A convenience library for the h5repack tool and the h5repack tests
+noinst_LTLIBRARIES=libh5repack.la
+
+libh5repack_la_SOURCES=h5repack.c h5repack_copy.c h5repack_filters.c \
+ h5repack_opttable.c h5repack_parse.c h5repack_refs.c \
+ h5repack_verify.c
+libh5repack_la_LDFLAGS = $(AM_LDFLAGS)
+libh5repack_la_LIBADD=$(LIBH5TOOLS) $(LIBH5TEST) $(LIBHDF5)
+
+
# Our main target, h5repack tool
bin_PROGRAMS=h5repack
+h5repack_SOURCES=h5repack_main.c
+
# Add h5repack specific linker flags here
h5repack_LDFLAGS = $(LT_STATIC_EXEC) $(AM_LDFLAGS)
-# Depend on the hdf5 library, the tools library, the test library
-LDADD=$(LIBH5TOOLS) $(LIBH5TEST) $(LIBHDF5)
-
-# Source files
-COMMON_SOURCES=h5repack.c h5repack_copy.c h5repack_filters.c \
- h5repack_opttable.c h5repack_parse.c h5repack_refs.c \
- h5repack_verify.c
-
-h5repack_SOURCES=$(COMMON_SOURCES) h5repack_main.c
+# Depend on the hdf5 library, the tools library, the h5repack library
+h5repack_LDADD=libh5repack.la $(LIBH5TOOLS) $(LIBHDF5)
include $(top_srcdir)/config/conclude.am
diff --git a/tools/test/Makefile.am b/tools/test/Makefile.am
index 62193ba..db09003 100644
--- a/tools/test/Makefile.am
+++ b/tools/test/Makefile.am
@@ -24,7 +24,7 @@ include $(top_srcdir)/config/commence.am
CONFIG=ordered
# All subdirectories
-SUBDIRS=h5diff h5ls h5dump misc h5import h5repack h5jam h5copy h5stat \
- perform
+SUBDIRS=h5diff h5ls h5dump misc h5import h5repack h5jam h5copy \
+ h5format_convert h5stat perform
include $(top_srcdir)/config/conclude.am
diff --git a/tools/test/h5format_convert/Makefile.am b/tools/test/h5format_convert/Makefile.am
index 5779d4d..f67b2ce 100644
--- a/tools/test/h5format_convert/Makefile.am
+++ b/tools/test/h5format_convert/Makefile.am
@@ -31,6 +31,8 @@ check_PROGRAMS=$(TEST_PROG) h5fc_chk_idx
check_SCRIPTS=$(TEST_SCRIPT)
SCRIPT_DEPEND=../../src/h5format_convert/h5format_convert$(EXEEXT)
+CLEANFILES=
+
# Tell automake to clean h5redeploy script
CHECK_CLEANFILES+=*.h5
diff --git a/tools/test/h5format_convert/h5fc_gentest.c b/tools/test/h5format_convert/h5fc_gentest.c
index 520e5bf..fea7eed 100644
--- a/tools/test/h5format_convert/h5fc_gentest.c
+++ b/tools/test/h5format_convert/h5fc_gentest.c
@@ -296,7 +296,6 @@ error:
H5Dclose(did2);
H5Gclose(gid);
H5Fclose(fcpl);
- H5Fclose(fapl);
H5Fclose(fid);
} H5E_END_TRY;
diff --git a/tools/test/h5repack/Makefile.am b/tools/test/h5repack/Makefile.am
index 6c045c4..5c284b3 100644
--- a/tools/test/h5repack/Makefile.am
+++ b/tools/test/h5repack/Makefile.am
@@ -37,16 +37,12 @@ endif
check_SCRIPTS=$(TEST_SCRIPT)
-# Depend on the hdf5 library, the tools library, the test library
-LDADD=$(LIBH5TOOLS) $(LIBH5TEST) $(LIBHDF5)
+# Depend on the h5repack library, the hdf5 library, the tools library, the test library
+LDADD=../../src/h5repack/libh5repack.la $(LIBH5TOOLS) $(LIBH5TEST) $(LIBHDF5)
testh5repack_detect_szip_SOURCES=testh5repack_detect_szip.c
-# Source files
-COMMON_SOURCES=../../src/h5repack/h5repack.c ../../src/h5repack/h5repack_copy.c ../../src/h5repack/h5repack_filters.c \
- ../../src/h5repack/h5repack_opttable.c ../../src/h5repack/h5repack_parse.c ../../src/h5repack/h5repack_refs.c \
- ../../src/h5repack/h5repack_verify.c
-h5repacktst_SOURCES=$(COMMON_SOURCES) h5repacktst.c
+h5repacktst_SOURCES=h5repacktst.c
if HAVE_SHARED_CONDITIONAL