Bug fix
Description:
Configuration files' timestamps were incorrect.
Solution:
Update Makefiles.in. Also added correct paths to autotools on heping,
so heping build should be able to re-generate configuration files even
if they are still broken.
Platforms tested:
sleipnir
Bug fix
Description:
Dependencies between configure files (aclocal, configure.in, configure,
Makefiles.am and .in) are still causing Makefiles to try to run autotools
during build.
Solution:
Committed all Makefiles.in to update their timestamps.
As a temporary measure, forcibly prevented automake from running
autotools during build by redefining the variables it uses.
Platforms tested:
sleipnir (No changes to Makefile content)
Bug fix
Description:
Different compilers use different flags to include Fortran module files
Solution:
Changed boilerplate to use configure variable rather than hardcoded -M flag.
Platforms tested:
sleipnir, sol, copper
Configuration feature
Description:
HDF5 now uses automake to generate Makefiles
Solution:
Makefile.in files are now generated from Makefile.am files.
To reconfigure (after chaning a Makefile.am or configure.in):
/bin/sh bin/reconfigure.sh
Platforms tested:
Many
Added data transform example
Description:
Added example code for the data dtransform
Solution:
This code both illustrates how data transform works and shows how to use it.
Examples of data transform on read, write, and both at the same time.
Also shows usage of H5Pget_data_transform
Platforms tested:
eirene + copper
Misc. update:
Bug fix
Description:
The examples would compile even if some header file were not
installed. That was because the CPPFLAGS has -I... components
that included the src directories.
Solution:
The h5cc or h5pcc commands should have all the necessarily
library include directories covered. Changed CPPFLAGS to
search only the examples source directory for local header
files.
Platforms tested:
No h5committest tests which do not check examples.
Hand tested it in sol.
Bug fix
Description:
Hack on include paths some more to make srcdir builds work correctly with
the [broken] dependency generation from the Intel 7.1 C compiler.
Platforms tested:
Linux 2.4 (titan) w/srcdir build
Too minor to require h5committest
Bug fix
Description:
Added directory where actual source code is located to allow broken Intel
C 7.1 compiler to generate dependencies correctly.
Platforms tested:
Linux 2.4 (titan)
too minor to need h5committest
Bug fix.
Description:
"make check" failed because the macro "$<" is not known to those
makes.
Solution:
Replace that macro with a string name in the form of a more basic
macro of "$@".
Platforms tested:
h5committested (copper used make.)
Misc. update:
Improvement
Description:
If the library is built in parallel mode, then name the "h5cc" and
"h5fc" programs "h5pcc" and "h5pfc" resp. This saves the user from
worrying about mixing serial and parallel builds of the library and
having to specify the pathnames and so-forth.
Platforms tested:
Linux (w/ parallel & Fortran)
Modi4 (w/ parallel & Fortran)
Sol (Serial & Fortran & C++)
Misc. update:
Updated release/docs/RELEASE
Updated the copyright notice--mostly by rearranging
some text to make them consistent.
Solution:
Platforms tested:
"h5committested"--sol is down, so, no SUn test.
Misc. update:
Code Cleanup
Description:
Warning messages were being produced by the "make" program because
the "docdir" was being specified twice as a target in the generated
Makefiles. This is because the "EXAMPLESDIR" was also defined as
"docdir".
Solution:
Made "EXAMPLESDIR" unique for C, Fortran, and C++ in the commence.in
file and removed EXAMPLESDIR from the Makefile.ins
Platforms tested:
Dangermouse (only affects make system, not code).
Misc. update:
Bug Fix
Description:
Making of the programs when using the --srcdir option didn't work. It
couldn't find the files to compile.
Solution:
Specified where the files are by prepending the $(srcdir) macro to
them.
Platforms tested:
Linux
Bug Fix
Description:
Ported the bug fix for h5cc failing on platforms from the 1.4 branch
to 1.5 branch. In a nutshell, when we ran "make check" in the
examples directory, libtool would get in the way trying to compile
things to .lo for us. but we didn't want libtool to do this.
Solution:
Made it so that make check will compile only the .c files to
executables without the intervening .lo stage...
Platforms tested:
Linux (Dangermouse and Platinum)
Feature
Description:
Change examples to use the installed h5cc to compile the examples
programs. That will test the correctness of the installed software.
Removed examples from make targets in the top level so that it does
not get invoked in make or make check since one cannot compile
the example programs until after "make install" has completed.
Platforms tested:
eirene and modi4 (parallel)
Bug fix
Description:
$TEST_PROG_PARA was included in the serial tests.
$TEST_PROG_PARA was not dependent on $LIBHDF5 (it should.)
Solution:
Adjusted the file to fix both problems.
Platforms tested:
eirene (pp, linux 2.2.), dangermouse (pp, linux 2.4)
modi4 (pp, -64) and modi4 serial (to verify that ph5example was not
tested at all.)
Purpose:
Feature Add
Description:
Added "install-example" and "install-all" to the Makefile system.
The behaviour of the "make install*" options:
make install - Installs binaries, libraries, include
files, and example programs.
make install-examples - Installs only the example programs.
The directories are:
${prefix}/doc/hdf5/examples/{c,c++,fortran}
make install-all - Install the binaries, libraries, include
files, example programs, and
documentation. The whole kit-n'-caboodle.
make uninstall-examples - Get rid of those example files (but not
the ${prefix}/doc/hdf5/examples/...
directories)
There's a new bin/ program which helps create directories which are
deeply nested called "mkdirs". It's a simple shell script.
Platforms tested:
Linux
Feature
Description:
Added an example program showing how to use different virtual
file drivers. First example is to show the Split File driver.
Platforms tested:
eirene.
bug fix
Description:
The last reported problem that the parallel example program
in examples could not be compiled, could not be duplicated
again. I guessed maybe Rushad mistook the compile warning
messages as error messages. Just a guess.
Furthermore, the changed examples/Makefile.in and configure.in,
did not work for the parallel case. The examples/ph5example.c
was never included for compiling.
Solution:
Removed the fix in configure.in, put ph5exmple directly back
in the examples/Makefile.in but put it in a variable for
easier future maintenance. Also, easier to identify the
parallel examples too.
Platforms tested:
Eirene, both serial and parallel modes.
Bug Fix
Description:
A parallel example was added to the examples/ subdirectory. This was
being built whether --enable-parallel was defined or not. This was
causing some havoc with certain setups.
Solution:
Added logic to make it so that the parallel examples are made only if
--enable-parallel is specified.
Platforms tested:
Linux
New feature
Description:
Added a parallel HDF5 example. make check knows how to
run it in serial mode but not in parallel mode since the
current makefile has no provision for parallel code execution.
One would have to do it by hand (e.g., mpirun -np 2 ./ph4example)
Platforms tested:
modi4 (serial and parallel)
----------------------
./MANIFEST
./configure.in
./configure [REGENERATED]
Added more checking for `make' features.
./Makefile.in
./doc/Makefile.in
./doc/html/Makefile.in
./doc/html/Tutor/Makefile.in
./examples/Makefile.in
./pablo/Makefile.in
./src/Makefile.in
./test/Makefile.in
./testpar/Makefile.in
./tools/Makefile.in
./config/commence.in
./config/conclude.in
./config/depend.in [REMOVED]
./config/depend1.in [NEW]
./config/depend2.in [NEW]
./config/depend3.in [NEW]
./config/depend4.in [NEW]
./config/dependN.in [NEW]
The directory search stuff was moved into commence.in, thereby
shortening the Makefile.in prologues.
./doc/html/Dependencies [NEW]
./doc/html/Tutor/Dependencies [NEW]
./examples/Dependencies [NEW]
./src/Dependencies [NEW]
./test/Dependencies [NEW]
./testpar/Dependencies [NEW]
./tools/Dependencies [NEW]
The `.distdep' files were all renamed to `Dependencies' to make them
more obvious. They are required (but may be empty) in every directory
that has a Makefile.in that ends with @CONCLUDE@ (you'll get an
obvious error from make if you forgot to create one).
./bin/trace
./src/H5.c
Added H5E_major_t and H5E_minor_t although tracing only prints the
integer value.
./src/H5E.c
./src/H5Epublic.h
Added tracing information.
./src/H5FDcore.c
./src/H5FDfamily.c
./src/H5FDgass.c
./src/H5FDmpio.c
./src/H5FDsec2.c
./src/H5FDstdio.c
Fixed places where FUNC_LEAVE() evaluated it's argument more than
once.
Added tracing information.
Wrapped long lines.
./config/gnu-flags
Fixed a syntax error when we don't have a gnu compiler.
----------------------
./Makefile.in [1.3]
./examples/Makefile.in [1.3]
./pablo/Makefile.in [1.3]
./src/Makefile.in [1.3]
./test/Makefile.in [1.3]
./testpar/Makefile.in [1.3]
./tools/Makefile.in [1.3]
./config/commence.in [1.3]
./config/conclude.in [1.3]
./config/depend.in [1.3]
Added a `.PATH' target for Irix pmake which is identical to
the VPATH used by most other `make' programs. Irix 6.5 (or
6.4?) and later `make' ignores VPATH.
Started all beginning-of-line comments with `##' instead of
just `#' because Irix `pmake' barfs on things like the
following because it sees the `# if' as a directive:
# make will barf on the following line
# if running Irix pmake
./config/commence.in [1.3]
Added empty definitions for optional `make' macros because
Irix pmake complains if it sees a macro which has never been
defined. The main body of the Makefiles can redefine these
macros to whatever they need.
h5_select.c was modified to use fill values, and h5_group.c was modified
to show how H5Giterate can be used to get information about the objects in
a group.
Necessary changes were done to the Makefile.in.
Tested on Solaris 2.6 (baldric)
Changes since 19990618
----------------------
./Makefile.in
Running `make' in the top directory recurses into the examples
directory also except if the make target is one of: lib,
progs, check, test, _test, install, uninstall.
./examples/Makefile.in
Changed programs into tests, which just means that `make
tests' does what `make progs' used to do and that `make check'
runs the executables.
./src/H5Tconv.c
Fixed a typo in the unsigned-to-signed native converter for
large types to small types. This fixes a bug on baldric and
possibly other machines for the `dtypes' test.
Also fixed a signed vs. unsigned warning.
----------------------
./config/commence.in
./examples/Makefile.in
./test/Makefile.in
./testpar/Makefile.in
./tools/Makefile.in
Fixed some dependency problems in Makefiles. If the library
version is updated then everything gets recompiled.
./src/H5G.c
./src/H5R.c
Failure return value for object type functions is now
H5G_UNKNOWN as documented.
./src/H5Shyper.c
./src/H5Spoint.c
Fixed an unused argument warning.
./tools/h5debug.c
Fixed a call to H5F_block_read() since the 4th argument is
different now.
./tools/h5ls.c
Added a space between the object name and class to make the
output readable when the object name is longer than 24
characters.
C
----------------------
./Makefile.in
./configure.in
./configure [REGENERATED]
./src/H5config.h.in [REGENERATED]
./config/commence.in
./config/conclude.in
./config/dec-osf4.x
./config/depend.in
./config/freebsd
./config/linux-gnu
./config/linux-gnulibc1
./config/linux-gnulibc2
./config/solaris2.x
./examples/Makefile.in
./src/Makefile.in
./test/Makefile.in
./testpar/Makefile.in
./tools/Makefile.in
./tools/testh5dump.sh
Changes that allow hdf5 to be configured and compiled in a
directory other than the source directory. This is especially
useful if you want to concurrently compile with different
compilers and/or compile flags, or if the hdf5 source is on
read-only media like a CDROM. The changes were surprisingly
easy ;-) Here's what you can do now...
$ mkdir /tmp/build1 # or something
$ cd /tmp/build1
$ /cdrom/hdf5/configure # where ever the source is
$ make
Paul, you'll have to change the testh5toh4 script similar to
the way I changed testh5dump.sh. I started working on it but
then gave up because of a number of problems: (1) I had to
comment out all the tests that let h5toh4 choose the output
file name because it always tried to put the output file in
the same directory as the input file, (2) if path names are
used during the h4 dump then they interfere with the
diff. The test works fine when run in the source directory,
but try this instead:
$ gunzip <hdf5-1.1.67.tar.gz |tar xf -
$ chmod -R ugo-w hdf5-1.1.67
$ mkdir build
$ cd build
$ ../hdf5-1.1.67/configure
$ make check
Dan, I didn't modify the pablo/Makefile.in because I have no
way to test it. I think all you need to do is add a couple
lines before the @COMMENCE@ line and add a couple search
directories for header files. Anyway, it seems like almost an
exact duplicate of the src/Makefile.in, so it shouldn't be a
problem...
./Makefile.in
Removes a few more temporary files during make clean and
distclean.
./configure.in
I fixed the creation of the time-stamp files so that the
initial make doesn't have to regenerated all the makefiles
(only GNU make users will see any change).
./src/H5R.c
Changed a return type from `intn' to `int' for an API
function.
./src/H5detect.c
Added the volatile qualifier to a couple more variables.
./tools/h5tools.c
Fixed a compiler warning about an unused local.
./tools/h5toh4.c
Initialized `optind' to 1 because it's zero on my system. It
should always be one on a unix system.
./tools/testh5toh4
Redirected "broken pipe" messages to /dev/null so outut is
formatted correctly.
----------------------
./INSTALL
Added instructions about specifying a path for GNU zlib and
HDF4 headers and library.
Added comments for each of the tool names. Added h5toh4 as a
tool name.
./configure.in
./conigure [REGENERATED]
./src/H5config.h.in [REGENERATED]
The config/* scripts get invoked with $CC_BASENAME set the
base name of the compiler in order to make it easier to handle
setting compiler flags for different compilers in a big case
statement. For instance, if $CC has the value
/usr/local/mpi/bin/mpicc -ansi -64
then $CC_BASENAME will be `mpicc'. The $CC_BASENAME is not
set if $CC is not set.
Fixed alignment in `configure --help'.
An include and/or library path can be specified for GNU zlib
if configure can't find it in normal places. The "normal"
means wherever your compiler normally searches, including
search paths you've added through environment variables like
CPPFLAGS and LDFLAGS. The INSTALL file has instructions.
The `-ljpeg' library is detected.
If `ssize_t' is not found then a #define is added to
H5config.h similar to what we already do for `size_t'.
We detect the hdf5 header file `mfhdf.h' and libraries
`-lmfhdf' and `-ldf' and if found define the H5TOH4 and
TESTH5TOH4 Makefile variables. The user can specify an
include and/or library path. The INSTALL file has
instructions.
The `RUNTEST' variable has been split into `RUNSERIAL' and
`RUNPARALLEL' because these are different commands. The
makefile still uses `RUNTEST', which defaults to the RUNSERIAL
value. The new testpar/Makefile.in sets RUNTEST to the
RUNPARALLEL value. The default RUNSERIAL value is empty and
the default RUNPARALLEL value is `mpirun -np 2'. These can
both be overridden in the config/* files. To make the value
the empty string set it like `RUNPARALLEL=none' in the
config/* file.
The new testpar/Makefile is generated from testpar/Makefile.in
./config/commence.in
Added the RUNSERIAL and RUNPARALLEL makefile definitions.
./src/Makefile.in
The `H5detect' program is run with RUNSERIAL, which is empty
on all platforms except intel-osf1 (ASCI/Red)
./config/conclude.in
Removed the `.c.a:' implicit rule -- we don't use it any more.
./config/BlankForm
./config/alpha-dec
./config/alpha-dec-osf4.0
./config/freebsd2.2.7
./config/hpux10.20
./config/hpux9.03
./config/intel-osf1
./config/irix5.3
./config/irix6.2
./config/irix64
./config/linux
./config/powerpc-ibm-aix4.2.1.0
./config/rs6000-ibm-aix4.1.4.0
./config/solaris2.5
All of these files have been updated to hande multiple
compilers. Most of them assume `cc' if CC is not set. The
documentation in `BlankForm' has been updated and
documentation in the other files refer to `BlankForm'.
The intel-osf1 uses LDFLAGS instead of LIBS to specify the extra
library search paths.
./examples/Makefile.in
./test/Makefile.in
./tools/Makefile.in
Simplified by grouping some dependency information together
more succinctly.
The tools Makefile.in has been modified to work with the
`h5toh4' and `testh5toh4' programs. Until Paul checks these
in you may have problems compiling. If so, just create files
h5toh4.c and testh5toh4.c that contain:
#include <stdio.h>
int main(int argc, char *argv[]) {
fprintf(stderr, "%s: not implemented\n", argv[0]);
return 1;
}
./src/H5public.h
Removed definition for `ssize_t' since this is now handled by
configure in H5config.h with a #define.
./MANIFEST
./testpar/Makefile.in [NEW]
Added a makefile for parallel tests. As soon as we get this
working properly we can remove the other four makefiles in
that directory and maintain just one.