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.
This commit is contained in:
Dana Robinson 2017-04-25 02:09:55 -04:00
parent b962c7ad42
commit 14bc39bcb5
2 changed files with 48 additions and 30 deletions

View File

@ -203,6 +203,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
@ -265,35 +298,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

View File

@ -161,6 +161,8 @@ $Source = "";
##############################################################################
# Print an error message.
#
my $found_errors = 0;
sub errmesg ($$@) {
my ($file, $func, @mesg) = @_;
my ($mesg) = join "", @mesg;
@ -170,6 +172,8 @@ sub errmesg ($$@) {
$lineno = tr/\n/\n/;
}
$found_errors = 1;
print "$file: in function \`$func\':\n";
print "$file:$lineno: $mesg\n";
}
@ -339,4 +343,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";
}