This file contains instructions for the installation of HDF5 on Unix-like systems. First, one must obtain a tarball of the HDF5 release from ---FIXME---->http://hdf5.ncsa.uiuc.edu<----FIXME--- 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 hdf-5.0.0a.tar $ cd hdf-5.0.0a $ make test $ make install # Optional Step 1. Unpack the source tree. * The tarball will unpack into an hdf-5.0.0a directory with one of the following commands: $ tar xf hdf-5.0.0a.tar OR $ gunzip <hdf-5.0.0a.tar.gz |tar xf - OR $ bunzip2 <hdf-5.0.0a.tar.bz2 |tar xf - OR $ uncompress -c <hdf-5.0.0a.tar.Z | tar xf - Step 2. Configure makefiles. * HDF5 uses the GNU autoconf program for configuration. Most installations can be configured by typing just (from the hdf-5.0.0a directory) $ ./configure * By default libraries, include files, programs, and documentation are installed 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 Note: HDF5 can be used without installing it. * You can also override detection of certain things with environment variables: CC Name of the C compiler to use. CFLAGS Alternate C compiler flags. CPPFLAGS Alternate C preprocessor flags. MAKE Name of the make(1) program. For instance it is common to specify the name of the C compiler, C proprocessor flags, and compiler flags (add `env' to the beginning of this command if you're running a csh-like shell) $ CC=gcc CPPFLAGS=-DNDEBUG CFLAGS="-Wall -O3" ./configure * The HDF team recommends the following C flags for this prototype release of the library. o Full warnings, usually `-fullwarn' or `-Wall' depending on the compiler. With GCC you may optionally add: -Wpointer-arith -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs o Symbol table, usually with `-g' o Turn on debugging code in the various packages. Some packages just produce extra output while others traverse data structures looking for things that seem to be wrong. -DH5AC_DEBUG - cache debugging -DH5B_DEBUG - B-link-tree debugging -DH5F_DEBUG - File debugging -DH5G_DEBUG - Group debugging -UH5O_DEBUG - Open/Close debugging (produces lots of output) -DH5T_DEBUG - Data type conversion statistics o The default low level driver can be chosen with -DH5F_LOW_DFLT=H5F_LOW_STDIO - Use libc stdio.h functions -DH5F_LOW_DFLT=H5F_LOW_SEC2 - Use system calls directly the default is to use stdio functions. * You can see a list of other configuration options by saying $ ./configure --help 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: If you're re-building the library after changing some files and you're not using GNU make and gcc, then you should say `make clean' from the top directory between each build attempt since the development Makefiles don't have complete dependency information yet. Note: When using GNU make you can add `-j -l6' to the make command to compile in parallel on SMP machines. Step 4. Run confidence tests. * All confidence tests should be run by saying $ make test The command will fail if any test fails. Note: 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. 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. Step 6. Subscribe to mailing lists. * Subscribe to the mailing lists described in the README file.