Building HDF4 and HDF5

HDF4

TBD

HDF5

There are binaries available, and they're probably fine, but the headers are not, because HDF5 installs different headers depending on which compiler it was built with (which in itself is a bug). Luckily, building HDF5 from source is fairly easy.

First, get the latest source from http://www.hdfgroup.org/HDF5/release/obtain5.html and extract it in a convenient place.

In HDF5 1.8.3, there is a bug in perform/sio_engine.c that needs to be fixed before compiling: on line 376, replace mkdir with HDmkdir.

Before we run configure, there are three issues we need to address. The first is that due to the libtool brokenness mentioned here, you have to regenerate the script:

$ aclocal
$ libtoolize --copy --force
$ automake --add-missing --copy --foreign
$ autoconf

The second is that C++ support is not enabled by default, and the third is that the test scripts use Winsock (ws2_32.lib), but don't link against it.

$ env LIBS=-lws2_32 sh configure --prefix=/opt/hdf5 --enable-cxx

Revisit later in re thread safety

Finally, build and install:

$ make install