summaryrefslogtreecommitdiffstats
path: root/INSTALL
blob: 40b04f8ed8e9c62ab8f3ee506ca61c44aa081408 (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
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
	$ make test
	$ make install		# Optional


Step 1. Unpack the source tree.

    * The tarball will unpack into an hdf5-1.0.0a directory with one of
      the following commands:

	$ tar xf hdf5-1.0.0a.tar				OR
	$ gunzip <hdf5-1.0.0a.tar.gz |tar xf -		OR
	$ bunzip2 <hdf5-1.0.0a.tar.bz2 |tar xf -		OR
	$ uncompress -c <hdf5-1.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
      hdf5-1.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.