summaryrefslogtreecommitdiffstats
path: root/INSTALL
blob: f53537d54c1c1d232d70053de46c701ffa6192ac (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
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).

    * 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.