summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDana Robinson <derobins@hdfgroup.org>2017-04-25 06:09:55 (GMT)
committerDana Robinson <derobins@hdfgroup.org>2017-04-25 06:09:55 (GMT)
commitb1a5ba405393da68028cf1c8b159a3abb51d2187 (patch)
tree8558f5de6384e0d1a37a71ff16403cf053ad80ed
parent9d84abe503267baaf3ddc675a4e3182d7f415be0 (diff)
downloadhdf5-b1a5ba405393da68028cf1c8b159a3abb51d2187.zip
hdf5-b1a5ba405393da68028cf1c8b159a3abb51d2187.tar.gz
hdf5-b1a5ba405393da68028cf1c8b159a3abb51d2187.tar.bz2
Updated bin/trace to emit errors and reordered autogen.sh processing
so that script failures leave the library in a non-compilable state, making it harder to ignore errors.
-rwxr-xr-xautogen.sh63
-rwxr-xr-xbin/trace15
2 files changed, 48 insertions, 30 deletions
diff --git a/autogen.sh b/autogen.sh
index f3bd774..33779d4 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -205,6 +205,39 @@ Darwin*)
;;
esac
+# Run scripts that process source.
+#
+# These should be run before the autotools so that failures here block
+# compilation.
+
+# Run trace script
+# The trace script adds H5TRACE macros to library source files. It should
+# have no effect on files that don't have HDF5 API macros in them.
+echo "Running trace script:"
+bin/trace src/H5*.c || exit 1
+echo
+
+# Run make_err
+# make_err automatically generates the H5E headers that create error message
+# types for HDF5.
+echo "Running error generation script:"
+bin/make_err src/H5err.txt || exit 1
+echo
+
+# Run make_vers
+# make_vers automatically generates the public headers that define the API version
+# macros for HDF5.
+echo "Running API version generation script:"
+bin/make_vers src/H5vers.txt || exit 1
+echo
+
+# Run make_overflow
+# make_overflow automatically generates macros for detecting overflows for type
+# conversion.
+echo "Running overflow macro generation script:"
+bin/make_overflow src/H5overflow.txt || exit 1
+echo
+
# Run autotools in order
#
# When available, we use the --force option to ensure all files are
@@ -267,35 +300,7 @@ fi
${autoconf_cmd} || exit 1
echo
-# Run scripts that process source.
-
-# Run trace script
-# The trace script adds H5TRACE macros to library source files. It should
-# have no effect on files that don't have HDF5 API macros in them.
-echo
-echo "Running trace script:"
-bin/trace src/H5*.c || exit 1
-
-# Run make_err
-# make_err automatically generates the H5E headers that create error message
-# types for HDF5.
-echo
-echo "Running error generation script:"
-bin/make_err src/H5err.txt || exit 1
-
-# Run make_vers
-# make_vers automatically generates the public headers that define the API version
-# macros for HDF5.
-echo
-echo "Running API version generation script:"
-bin/make_vers src/H5vers.txt || exit 1
-
-# Run make_overflow
-# make_overflow automatically generates macros for detecting overflows for type
-# conversion.
-echo
-echo "Running overflow macro generation script:"
-bin/make_overflow src/H5overflow.txt || exit 1
+echo "*** SUCCESS ***"
echo
exit 0
diff --git a/bin/trace b/bin/trace
index 19c8990..ede344c 100755
--- a/bin/trace
+++ b/bin/trace
@@ -163,6 +163,8 @@ $Source = "";
##############################################################################
# Print an error message.
#
+my $found_errors = 0;
+
sub errmesg ($$@) {
my ($file, $func, @mesg) = @_;
my ($mesg) = join "", @mesg;
@@ -172,6 +174,8 @@ sub errmesg ($$@) {
$lineno = tr/\n/\n/;
}
+ $found_errors = 1;
+
print "$file: in function \`$func\':\n";
print "$file:$lineno: $mesg\n";
}
@@ -341,4 +345,13 @@ for $file (@ARGV) {
}
}
-printf "Finished processing HDF5 API calls\n"
+if ($found_errors eq 1) {
+ printf "\n";
+ printf "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n";
+ printf "*** ERRORS FOUND *** ERRORS FOUND *** ERRORS FOUND ****\n";
+ printf "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n";
+ exit 1;
+} else {
+ printf "Finished processing HDF5 API calls\n";
+}
+