mirror of
https://github.com/HDFGroup/hdf5.git
synced 2025-03-25 17:00:45 +08:00
---------------------- ./INSTALL Added warning that enabling debugging code can adversely affect performance even when the debugging isn't turned on at run-time. Performance testing shows that under certain circumstances (like data type conversions of compound types) the H5_timer functions, although only a few lines each, contribute a fairly large percent to the execution time. ./src/H5T.c ./src/H5Tpkg.h ./src/H5Tpublic.h Improved the H5Tunregister() function to make unregistering more flexible. It takes the same arguments as H5Tregister() but also accepts wild cards. All conversion functions that match the H5Tunregister() search criteria are removed from the global type conversion table. The H5Tregister_hard() and H5Tregister_soft() were combined into a single function called H5Tregister() which is the counterpart to H5Tunregister(). A new `persistence' argument was added to differentiate between the two types of conversion functions. The application is allowed to register a hard conversion function for the no-op conversion path although the library isn't obligated to call it (it usually does). This is mostly for completeness, but the application might use it to help determine if the raw data pipeline was able to use the optimized path for the case when no type conversion is necessary. The library doesn't allow this path to be unregistered although the application can redefine it as often as it likes. Fixed the type conversion tables in preparation for MT-safety and to fix previosly-known design bugs wrt. unregistering conversion functions or changing the C function associated with a conversion path. The MT-safety stuff is documented in a separate white paper. Increased the conversion function debugging name from 9 characters to 31 characters so the output can be more descriptive. Moved conversion path statistics from the H5T_cdata_t member into the conversion path itself. This makes H5T_cdata_t contain only application-visible data structures. ./src/H5A.c ./src/H5D.c ./src/H5Ofill.c ./src/H5P.c ./src/H5T.c Improved the way type conversion functions are called so the caller doesn't have to check for data type debugging and increment type conversion timers and statistics. Changed check for no-op conversion since it is now application-definable and there may even be more than one definition at a time in a multi-threaded application (one thread might be using the no-op conversion path when some other thread changes its definition -- the first thread still sees the original defintion until it's done with the operation). ./doc/html/Datatypes.html Updated the user guide to reflect the changes to data type conversion registration functions. ./bin/trace ./src/H5.c Added tracing support for the new H5T_pers_t data type. ./test/dtypes.c Added printf to display alignment value if non-aligned data types are being tested. ./test/h5test.c Modified the H5Tunregister() calls to use the new arguments. All 94 of those calls can be replaced by a single call to the new H5Tunregister() function. ./src/H5.c Added HAVE_GETTIMEOFDAY around an auto variable and initialized the elapsed time to zero when gettimeofday() is not available. ./src/H5F.c ./src/H5Fprivate.h ./src/H5P.c Added an H5*_init() functions which do the same thing as H5*_init_interface() but can be called from other packages and don't do anything if the interface is already initialized. This fixes a couple memory leaks in applications that repeatedly close and open the library with H5close(). ./src/H5Tconv.c Optimized some data alignment code in the hardware conversion functions. Hardware conversions accumulate statistics about source and destination data alignment and print that information when the conversion function is unregistered (usually when the application exits) if data type debugging is compiled into the library and enabled at run-time. The conversion caching was cleaned up for the compound data type conversion function. It now caches conversion paths in a manner that will be MT-safe and is much simpler than the old method. Also cleaned up some array index maps. ./src/H5detect.c Fixd mispelling of alingemnt. ./src/H5private.h Changed `TRUE' to `1' in assignment to interface_initialize_g in FUNC_ENTER macro definition. ./tools/testh5dump.sh Completely rewritten to make it shorter, better documented, and conforming to most of the other test outputs. The comparison of the actual output with the expected output is insensitive to differences in white space. The test now passes for the first time on Linux where the output width wasn't as expected but the output was otherwise correct. ./tools/testfiles/tall-1.ddl ./tools/testfiles/tall-2.ddl ./tools/testfiles/tall-3.ddl ./tools/testfiles/tattr-1.ddl ./tools/testfiles/tattr-2.ddl ./tools/testfiles/tattr-3.ddl ./tools/testfiles/tattr-4.ddl ./tools/testfiles/tcomp-1.ddl ./tools/testfiles/tcomp-2.ddl ./tools/testfiles/tcomp-3.ddl ./tools/testfiles/tcomp-4.ddl ./tools/testfiles/tdset-1.ddl ./tools/testfiles/tdset-2.ddl ./tools/testfiles/tdset-3.ddl ./tools/testfiles/tdset-4.ddl ./tools/testfiles/tgroup-1.ddl ./tools/testfiles/tgroup-2.ddl ./tools/testfiles/tgroup-3.ddl ./tools/testfiles/tlink-1.ddl ./tools/testfiles/tlink-2.ddl ./tools/testfiles/tlink-3.ddl ./tools/testfiles/tlink-4.ddl ./tools/testfiles/tlink-5.ddl ./tools/testfiles/tslink-1.ddl ./tools/testfiles/tslink-2.ddl Changed `../h5dump' to just `h5dump'. ./config/alpha-dec-osf4.0 Added more warning and optimization switches to the native compiler.
199 lines
7.5 KiB
Plaintext
199 lines
7.5 KiB
Plaintext
This file contains instructions for the installation of HDF5 on
|
|
Unix-like systems. First, one must obtain a tarball of the HDF5
|
|
release from the ftp://hdf.ncsa.uiuc.edu/pub/dist/HDF5 repository.
|
|
The files are available in uncompressed tar, gzip, bzip2, and compress
|
|
formats.
|
|
|
|
For those that like to live dangerously and don't like to read ;-) you
|
|
can do the following:
|
|
|
|
$ tar xf hdf5-1.0.0a.tar
|
|
$ cd hdf5-1.0.0a
|
|
|
|
$ sh configure
|
|
$ make # Builds library and tools
|
|
$ make test # Builds and runs confidence tests.
|
|
# NOTE: if fails, run the
|
|
# command in the test directory
|
|
|
|
$ make install # Optional
|
|
|
|
Note:
|
|
For the users of the Intel TFLOPS machine, a special sequence of steps
|
|
for the install may be found in the file: INSTALL.ascired.
|
|
|
|
=======
|
|
Step 0: Install optional third-party packages.
|
|
|
|
* GNU zlib compression library, version 1.0.2 or later is used for
|
|
the `deflate' compression method if available; otherwise no
|
|
compression filters will be predefined.
|
|
|
|
Step 1. Unpack the source tree.
|
|
|
|
* The tarball will unpack into an hdf5-1.1.0 directory with one of
|
|
the following commands:
|
|
|
|
$ tar xf hdf5-1.1.0.tar OR
|
|
$ gunzip <hdf5-1.1.0.tar.gz |tar xf - OR
|
|
$ bunzip2 <hdf5-1.1.0.tar.bz2 |tar xf - OR
|
|
$ uncompress -c <hdf5-1.1.0.tar.Z |tar xf -
|
|
|
|
Step 2. Configure.
|
|
|
|
* HDF5 uses the GNU autoconf program for configuration. Most
|
|
installations can be configured by typing just (from the
|
|
hdf5-1.1.0 directory)
|
|
|
|
$ sh configure
|
|
|
|
* The configuration process can be controlled through environment
|
|
variables, command-line switches, and host configuration files.
|
|
For a complete list of switches say `sh configure --help'.
|
|
|
|
* Host configuration files are located in the `config' directory
|
|
and are based on architecture name, vendor name, and/or operating
|
|
system which are displayed near the beginning of the `configure'
|
|
output. Not all hosts require a host configuration file.
|
|
|
|
* The C compiler and flags, the `ar' and `ranlib' program names,
|
|
and the `make' program can be specified with environment
|
|
variables if configure doesn't properly detect them and they are
|
|
not defined in a host config file.
|
|
|
|
CC Name of the C compiler.
|
|
CFLAGS Switches for the C compiler.
|
|
CPPFLAGS Additional switches for the .c -> .o step.
|
|
AR Name of the `ar' program.
|
|
RANLIB Name of the `ranlib' program or `:' if none.
|
|
MAKE Name of the `make' program (GNU make is preferred)
|
|
|
|
* This version of HDF5 is normally built with various debugging code
|
|
enabled. To turn it off add the `--disable-debug' switch to the
|
|
configure command. Even if debugging support is compiled into the
|
|
library one must still enable the code at runtime with the HDF5_DEBUG
|
|
environment variable (see Debugging.html). Including debugging support
|
|
in the library (whether it's enabled or not) may incur a significant
|
|
run-time penalty.
|
|
|
|
* This version of HDF5 is normally built with support for symbolic
|
|
debugging with dbx or gdb and without compiler optimization
|
|
switches. To disable symbolic debugging and enable
|
|
optimizations add `--enable-production' to the configure
|
|
command.
|
|
|
|
* This version of HDF5 is normally built with the ability to print
|
|
the names, arguments, and return values of all API functions
|
|
when they're called. For more information refer to the
|
|
Debugging.html file. To disable tracing support add
|
|
`--disable-trace' to the configure command.
|
|
|
|
* Configure will look for the GNU zlib (a compression library) in
|
|
the standard places for your environment. If it's installed in
|
|
a non-standard place then absolute path names can be specified
|
|
with `--with-zlib=INCDIR,LIBDIR' for the include file and/or
|
|
library. To prevent detection of zlib use `--without-zlib'.
|
|
|
|
* The HDF5-to-HDF4 conversion tool requires the HDF4 library and header
|
|
files which are auto-detected by configure. If they are in a
|
|
non-standard place then absolute path names can be specified with
|
|
`--with-hdf4=INCDIR,LIBDIR' for the include file and/or library. To
|
|
prevent detection of hdf4 use `--without-hdf4'. Beware of the GNU zlib
|
|
that comes with hdf4 -- it's too old to use with hdf5 (hdf4 tools can be
|
|
linked with the newer versions of zlib).
|
|
|
|
* Old versions of gcc (<2.8.0) may experience register allocation
|
|
problems on some architectures. If this happens then the
|
|
`--disable-hsizet' can be given but the resulting library will
|
|
be unable to handle datasets larger than 4GB.
|
|
|
|
* Libraries, include files, programs, and documentation are
|
|
installed (when one says `make install') under /usr/local/lib,
|
|
/usr/local/include, /usr/local/bin, and /usr/local/man.
|
|
However, if you want them in some other location you can specify
|
|
a prefix to use instead of /usr/local. For instance, to install
|
|
in /usr/lib, /usr/include, /usr/bin, and /usr/man one would say
|
|
|
|
$ ./configure --prefix=/usr
|
|
|
|
The library can be used directly from the source tree without
|
|
installing it.
|
|
|
|
Step 3. Compile library, tests, and programs.
|
|
|
|
* Build library targets by saying
|
|
|
|
$ make
|
|
|
|
Note: If you supplied some other make command through the MAKE
|
|
environment variable in the previous step then use that command
|
|
instead. The same applies below.
|
|
|
|
Note: When using GNU make you can add `-j -l6' to the make
|
|
command to compile in parallel on SMP machines. Do not give a
|
|
number after the `-j' since GNU make will turn it off for
|
|
recursive invocations of make.
|
|
|
|
Step 4. Run confidence tests.
|
|
|
|
* All confidence tests should be run by saying
|
|
|
|
$ make test
|
|
|
|
The command will fail if any test fails, and one will see the
|
|
word "*FAIL*" in the output.
|
|
|
|
* Some old versions of make will report that `test is up to
|
|
date'. If this happens then run `make _test' instead or run
|
|
`make test' from within the test directory.
|
|
|
|
* Temporary files will be deleted by each test when it completes,
|
|
but may continue to exist in an incomplete state if the test
|
|
fails. To prevent deletion of the files define the
|
|
HDF5_NOCLEANUP environment variable.
|
|
|
|
Step 5. Install public files.
|
|
|
|
* Install the library, header files, and programs by saying:
|
|
|
|
$ make install
|
|
|
|
* This step will fail unless you have permission to write to the
|
|
installation directories. Of course, you can use the header
|
|
files, library, and programs directly out of the source tree if
|
|
you like, skipping this step. The directory specified for the
|
|
--prefix switch (or "/usr/local") must exist, but the
|
|
directories under it are created automatically by make.
|
|
|
|
* The minimum which must be installed are:
|
|
|
|
The library:
|
|
./src/libhdf5.a
|
|
|
|
The public header files:
|
|
./src/H5*public.h
|
|
|
|
The main header file:
|
|
./src/hdf5.h
|
|
|
|
The configuration information:
|
|
./src/H5config.h
|
|
|
|
* Additional useful things which are installed:
|
|
|
|
The tools library:
|
|
./tools/libh5tools.a
|
|
|
|
Some tools:
|
|
./tools/h5ls (list file contents)
|
|
./tools/h5dump (dump file contents)
|
|
./tools/h5repart (repartition file families)
|
|
./tools/h5toh4 (hdf5 to hdf4 file converter)
|
|
./tools/h5debug (low-level file debugging)
|
|
./tools/h5import (a demo)
|
|
|
|
Step 6. Subscribe to mailing lists.
|
|
|
|
* Subscribe to the mailing lists described in the README file.
|
|
|