summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--MANIFEST2
-rw-r--r--Makefile.dist24
-rwxr-xr-xbin/release142
-rw-r--r--src/H5AC.c5
4 files changed, 171 insertions, 2 deletions
diff --git a/MANIFEST b/MANIFEST
index 0960f34..fbf9552 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -2,6 +2,7 @@
./configure
./INSTALL
./INSTALL_MAINT
+./Makefile.dist
./Makefile.in
./MANIFEST
./bin/checkposix
@@ -9,6 +10,7 @@
./bin/config.sub
./bin/errors
./bin/install-sh
+./bin/release
./config/commence.in
./config/conclude.in
./config/depend.in
diff --git a/Makefile.dist b/Makefile.dist
new file mode 100644
index 0000000..e2145ee
--- /dev/null
+++ b/Makefile.dist
@@ -0,0 +1,24 @@
+# Top-level distributed Makefile -*- makefile -*-
+
+# This Makefile is a stub (copied from Makefile.dist) which will run
+# configure and then invoke the same target in the new Makefile created
+# by configure.
+
+# Uncomment this variable if your make(1) doesn't set it automatically.
+#
+#MAKE=make
+
+
+SHELL=/bin/sh
+
+all lib progs test install uninstall dep depend clean mostlyclean: config
+ $(MAKE) $@
+
+distclean maintainer-clean TAGS: config
+ $(MAKE) $@
+
+config:
+ sh configure
+
+.PHONY: all lib progs test install uninstall dep depend clean mostlyclean \
+ distclean maintainer-clean config
diff --git a/bin/release b/bin/release
new file mode 100755
index 0000000..6b96fa0
--- /dev/null
+++ b/bin/release
@@ -0,0 +1,142 @@
+#! /usr/local/bin/perl -w
+require 5.003;
+
+# Builds a release. Arguments are zero or more of the words.
+#
+# tar -- build a tar file *.tar
+# compress -- build a compressed tar file *.tar.Z
+# gzip -- build a compressed tar file *.tar.gz
+# bzip2 -- build a compressed tar file *.tar.bz2
+#
+# If no arguments are given then `gzip' is assumed. If the only argument
+# is the word `all' then all forms are used.
+
+$releases = "./releases"; # Directory for release tarballs
+
+##############################################################################
+# Read version info, return an array (MAJOR,MINOR,RELEASE,PATCHLEVEL) or
+# a string "MAJOR.MINOR.RELEASE PATCHLEVEL"
+#
+sub getver () {
+ my @ver;
+
+ open SRC, "./src/H5private.h" or die "cannot read HDF5 version";
+ while (<SRC>) {
+ $ver[0] = $1 if /define\s+HDF5_MAJOR_VERSION\s+(\d+)/;
+ $ver[1] = $1 if /define\s+HDF5_MINOR_VERSION\s+(\d+)/;
+ $ver[2] = $1 if /define\s+HDF5_RELEASE_VERSION\s+(\d+)/;
+ $ver[3] = $1 if /define\s+HDF5_PATCH_VERSION\s+(\d+)/;
+ }
+ close SRC;
+ wantarray ? @ver : "$ver[0].$ver[1].$ver[2]".chr(ord('a')+$ver[3]);
+}
+
+##############################################################################
+# Set version information. Input is a string or an array.
+#
+sub setver ($;$$$) {
+ my @ver = @_;
+ local $_;
+
+ if ($ver[0]=~/\D/) {
+ @ver = $ver[0] =~ /^(\d+)\.(\d+)\.(\d+)([a-z])$/ or return "";
+ $ver[3] = ord($ver[3])-ord('a');
+ }
+
+ $_ = `cat ./src/H5private.h`;
+ s/(define\s+HDF5_MAJOR_VERSION\s+)(\d+)/$1$ver[0]/;
+ s/(define\s+HDF5_MINOR_VERSION\s+)(\d+)/$1$ver[1]/;
+ s/(define\s+HDF5_RELEASE_VERSION\s+)(\d+)/$1$ver[2]/;
+ s/(define\s+HDF5_PATCH_VERSION\s+)(\d+)/$1$ver[3]/;
+ open SRC, "> ./src/H5private.h" or return "";
+ print SRC $_;
+ close SRC;
+
+ return 1;
+}
+
+##############################################################################
+# Build a release
+#
+sub release (@) {
+ my @types = @_;
+ my ($ver, $status);
+ local $_;
+
+ # Make sure the version number is correct.
+ print "Building an HDF release...\n";
+ print "HDF version to release [", ($ver=getver), "] ";
+ return "" unless defined ($_=<STDIN>);
+ chomp;
+ (setver ($ver=$_) or die "cannot set version") if /\S/;
+
+ # Clean the source tree, showing only errors.
+ print "Cleaning source tree...\n";
+ $status = system "make distclean >/dev/null";
+ die "cannot make distclean" if $status >> 8;
+
+ # Move default top-level makefile into place.
+ $status = system "cp Makefile.dist Makefile";
+ die "cannot install default Makefile" if $status >> 8;
+
+ # Make sure release directory exists and create a name.
+ (mkdir $releases, 0777 or die "cannot create $releases")
+ unless -d $releases;
+ die "no manifest" unless -r "MANIFEST";
+ my $name = "$releases/hdf-$ver";
+
+ # Build the releases
+ @types = ("gzip") unless @types;
+ @types = qw/tar gzip compress bzip2/ if 1==@types && "all" eq $types[0];
+ my $filelist = 'Makefile `cat MANIFEST`';
+ for (@types) {
+ print "Compressing with $_...\n";
+
+ /^tar$/ && do {
+ $status = system "tar cf $name.tar $filelist";
+ next;
+ };
+
+ /^gzip$/ && do {
+ $status = system "tar cf - $filelist |gzip -9 >$name.tar.gz";
+ next;
+ };
+
+ /^compress$/ && do {
+ $status = system "tar cf - $filelist |compress -c >$name.tar.Z";
+ next;
+ };
+
+ /^bzip2$/ && do {
+ $status = system "tar cf - $filelist |bzip2 -9 >$name.tar.bz2";
+ next;
+ };
+ } continue {
+ print STDERR "$_ failed\n" if $status >> 8;
+ }
+
+ # Update version info
+ print <<EOF;
+
+If this is a real release then the version number for continued development
+should be incremented. Otherwise just press return.
+
+EOF
+ print "Set development version to [", ($ver=getver), "] ";
+ return "" unless defined ($_ = <STDIN>);
+ chomp;
+ (setver ($ver=$_) or die "cannot set version") if /\S/;
+
+ if (-d "CVS") {
+ print <<EOF;
+ # If we're running under CVS then check in changes and tag all files
+ # with the release number. Quincey, do you want to add this to the
+ # bottom of the perl script? Otherwise just give me the commands
+ # and I'll add them.
+EOF
+ }
+
+ return 1;
+}
+
+release @ARGV;
diff --git a/src/H5AC.c b/src/H5AC.c
index b2c60c2..c96eb94 100644
--- a/src/H5AC.c
+++ b/src/H5AC.c
@@ -873,12 +873,13 @@ H5AC_debug(H5F_t *f)
} else {
sprintf(ascii, "%7.2f%%", miss_rate);
}
- fprintf(stderr, " %18s: %8d %8d %7s %8d%+-9d\n", s,
+ fprintf(stderr, " %18s: %8u %8u %7s %8u%+-9ld\n", s,
cache->diagnostics[i].nhits,
cache->diagnostics[i].nmisses,
ascii,
cache->diagnostics[i].ninits,
- cache->diagnostics[i].nflushes - cache->diagnostics[i].ninits);
+ ((long)(cache->diagnostics[i].nflushes) -
+ (long)(cache->diagnostics[i].ninits)));
}
FUNC_LEAVE(SUCCEED);