diff options
author | Robb Matzke <matzke@llnl.gov> | 1999-03-03 23:17:48 (GMT) |
---|---|---|
committer | Robb Matzke <matzke@llnl.gov> | 1999-03-03 23:17:48 (GMT) |
commit | ea3624e133ef35ec9c2c3f816a3afdbfb6b83156 (patch) | |
tree | 8d13c1c600a8ab25da627a64aa61818f00695098 /INSTALL | |
parent | 2925631a496cbd9890e967946b46c974998b13cd (diff) | |
download | hdf5-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-- | INSTALL | 112 |
1 files changed, 94 insertions, 18 deletions
@@ -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 |