summaryrefslogtreecommitdiffstats
path: root/INSTALL
diff options
context:
space:
mode:
authorRobb Matzke <matzke@llnl.gov>1999-03-03 23:17:48 (GMT)
committerRobb Matzke <matzke@llnl.gov>1999-03-03 23:17:48 (GMT)
commitea3624e133ef35ec9c2c3f816a3afdbfb6b83156 (patch)
tree8d13c1c600a8ab25da627a64aa61818f00695098 /INSTALL
parent2925631a496cbd9890e967946b46c974998b13cd (diff)
downloadhdf5-ea3624e133ef35ec9c2c3f816a3afdbfb6b83156.zip
hdf5-ea3624e133ef35ec9c2c3f816a3afdbfb6b83156.tar.gz
hdf5-ea3624e133ef35ec9c2c3f816a3afdbfb6b83156.tar.bz2
[svn-r1115] Changes since 19990302
---------------------- ./INSTALL ./configure.in ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Improvements for parallel library. If you have a properly working mpicc you should be able to just say: $ CC=mpicc ./configure and you will see checking for mpirun... /usr/local/mpi/bin/mpirun checking for parallel support files... skipped checking how to run on one processor... /usr/local/mpi/bin/mpirun -np 1 checking how to run in parallel... /usr/local/mpi/bin/mpirun -np $$NPROCS To quote from the INSTALL file.... *** 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: [NOTE: mpcc is not tested yet] $ 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). ./testpar/Makefile.in Saying `make check' (or `make test') will run the tests on two processors by default. If you define NPROCS then that many processors are used instead: $ NPROCS=4 make check ./configure.in Fixed (hopefully) bugs with detecting whether __attribute__ and __FUNCTION__ are special keywords for the compiler. ./Makefile.in Saying `make install' from the top level directory shows instructions for using shared libraries. ./config/commence.in ./src/Makefile.in ./test/Makefile.in ./testpar/Makefile.in ./tools/Makefile.in Moved the @top_srcdir@ into the makefiles because it was expanded too early and had the wrong value. ./INSTALL Added a warning that if the wrong version of hdf4 tools are installed then `make check' will fail in the tools directory.
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