summaryrefslogtreecommitdiffstats
path: root/INSTALL
diff options
context:
space:
mode:
Diffstat (limited to 'INSTALL')
-rw-r--r--INSTALL112
1 files changed, 94 insertions, 18 deletions
diff --git a/INSTALL b/INSTALL
index 7c80c86..32d78d4 100644
--- a/INSTALL
+++ b/INSTALL
@@ -99,20 +99,20 @@ INSTALL.ascired for instructions.
** Configuring
HDF5 uses the GNU autoconf system for configuration, which
detects various features of the host system and creates the
- various Makefiles. On most systems it should be sufficient to
- say:
+ Makefiles. On most systems it should be sufficient to say:
+ $ ./configure OR
$ 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'. The host configuration files are located in
- the `config' directory and are based on architecture name,
+ configuration files. For a complete list of switches say
+ `./configure --help'. The 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. The host config file
- influences the behavior of configure by setting shell
- variables.
+ influences the behavior of configure by setting or augmenting
+ shell variables.
*** Specifying the installation directories
Typing `make install' will install the HDF5 library, header
@@ -123,6 +123,10 @@ INSTALL.ascired for instructions.
$ ./configure --prefix=/home/robb
+ If shared libraries are being built (the default) then the
+ final home of the shared library must be specified with this
+ switch before the library and executables are built.
+
*** Using an alternate C compiler
By default, configure will look for the C compiler by trying
`gcc' and `cc'. However, if the environment variable "CC" is
@@ -141,9 +145,8 @@ INSTALL.ascired for instructions.
$ CC=/usr/local/mpi/bin/mpicc ./configure
- On Irix 6.x systems the default compiler is `cc -n32' and on
- Irix64 it is `cc -64'. To use an alternate compiler specify it
- with the CC variable:
+ On Irix64 the default compiler is `cc -64'. To use an
+ alternate compiler specify it with the CC variable:
$ CC='cc -o32' ./configure
@@ -155,7 +158,7 @@ INSTALL.ascired for instructions.
$ CFLAGS=-g ./confgure --enable-production
-*** Speicifying other programs
+*** Specifying other programs
The build system has been tuned for use with GNU make but
works also with other versions of make. If the `make' command
runs a non-GNU version but a GNU version is available under a
@@ -171,6 +174,27 @@ INSTALL.ascired for instructions.
of the `ar' and `ranlib' (or `:') commands to override values
detected by configure.
+ The HDF5 library, include files, and utilities are installed
+ during `make install' (described below) with a BSD-compatible
+ install program detected automatically by configure. If none
+ is found then the shell script bin/install-sh is
+ used. Configure doesn't check that the install script actually
+ works, but if a bad install is detected on your system (e.g.,
+ on the ASCI blue machine as of March 2, 1999) you have two
+ choices:
+
+ 1. Copy the bin/install-sh program to your $HOME/bin
+ directory, name it `install', and make sure that
+ $HOME/bin is searched before the system bin
+ directories.
+
+ 2. Specify the full path name of the `install-sh' program
+ as the value of the INSTALL environment variable. Note:
+ do not use `cp' or some other program in place of
+ install because the HDF5 makefiles also use the install
+ program to also change file ownership and/or access
+ permissions.
+
*** Specifying other libraries and headers
Configure searches the standard places (those places known by
the systems compiler) for include files and header
@@ -188,15 +212,22 @@ INSTALL.ascired for instructions.
CPPFLAGS and LDFLAGS variables) for the zlib headers and
library. The search can be disabled by specifying
`--without-zlib' or alternate directories can be specified
- with `--with-zlib=INCDIR,LIBDIR'.
+ with `--with-zlib=INCDIR,LIBDIR' or through the CPPFLAGS and
+ LDFLAGS variables:
$ ./configure --with-zlib=/usr/unsup/include,/usr/unsup/lib
+ $ CPPFLAGS=-I/usr/unsup/include \
+ LDFLAGS=-L/usr/unsup/lib \
+ ./configure
+
The HDF5-to-HDF4 conversion tool requires the HDF4 library and
header files which are detected the same way as zlib. The
switch to give to configure is `--with-hdf4'. Note that HDF5
requires a newer version of zlib than the one shipped with
- some versions of HDF4.
+ some versions of HDF4. Also, unless you have the "correct"
+ version of hdf4 the confidence testing will fail in the tools
+ directory.
*** Static versus shared linking
The build process will create static libraries on all systems
@@ -217,7 +248,9 @@ INSTALL.ascired for instructions.
be compiled for profiling with gprof by saying
`--enable-production=profile'.
- $ ./configure --enable-production
+ $ ./configure --disable-production #symbolic debugging
+ $ ./configure --enable-production #optimized code
+ $ ./configure --enable-production=profile #for use with gprof
Regardless of whether support for symbolic debugging is
enabled, the library also is able to perform runtime debugging
@@ -231,13 +264,17 @@ INSTALL.ascired for instructions.
supported releases is no debugging (debugging can incur a
significant runtime penalty).
- $ ./configure --enable-debug=s,t
+ $ ./configure --enable-debug=s,t #debug only H5S and H5T
+ $ ./configure --enable-debug #debug normal packages
+ $ ./configure --enable-debug=all #debug all packages
+ $ ./configure --disable-debug #no debugging
HDF5 is also able to print a trace of all API function calls,
their arguments, and the return values. To enable or disable
- the ability to trace the API say `--enable-trace' or
- `--disable-trace'. The tracing must also be enabled at runtime
- to see any output (see Debugging.html).
+ the ability to trace the API say `--enable-trace' (the default
+ for snapthots) or `--disable-trace' (the default for public
+ releases). The tracing must also be enabled at runtime to see
+ any output (see Debugging.html).
*** Large (>2GB) vs. small (<2GB) file capability
In order to read or write files that could potentially be
@@ -250,6 +287,45 @@ INSTALL.ascired for instructions.
$ ./configure --disable-hsizet
+*** Parallel vs. serial library
+ The HDF5 library can be configured to use MPI and MPI-IO for
+ parallelizm on a distributed multi-processor system. The easy
+ way to do this is to have a properly installed parallel
+ compiler (e.g., MPICH's mpicc or IBM's mpcc) and supply that
+ executable as the value of the CC environment variable:
+
+ $ CC=mpcc ./configure
+ $ CC=/usr/local/mpi/bin/mpicc ./configure
+
+ If no such wrapper script is available then you must specify
+ your normal C compiler along with the distribution of
+ MPI/MPI-IO which is to be used (values other than `mpich' will
+ be added at a later date):
+
+ $ ./configure --enable-parallel=mpich
+
+ If the MPI/MPI-IO include files and/or libraries cannot be
+ found by the compiler then their directories must be given as
+ arguments to CPPFLAGS and/or LDFLAGS:
+
+ $ CPPFLAGS=-I/usr/local/mpi/include \
+ LDFLAGS=-L/usr/local/mpi/lib/LINUX/ch_p4 \
+ ./configure --enable-parallel=mpich
+
+ If a parallel library is being built then configure attempts
+ to determine how to run a parallel application on one
+ processor and on many processors. If the compiler is mpicc
+ and the user hasn't specified values for RUNSERIAL and
+ RUNPARALLEL then configure chooses `mpirun' from the same
+ directory as `mpicc':
+
+ RUNSERIAL: /usr/local/mpi/bin/mpirun -np 1
+ RUNPARALLEL: /usr/local/mpi/bin/mpirun -np $${NPROCS:=2}
+
+ The `$${NPROCS:=2}' will be substituted with the value of the
+ NPROCS environment variable at the time `make check' is run
+ (or the value 2).
+
** Building
The library, confidence tests, and programs can be build by
saying just