There is now a package hdf5oct available from github that provides the necessary hdf5 read/write functions for octave. There were a few steps to get it to work:
I have octave 4.4.1 and hdf5 1.10.4 installed. I installed the hdf5 from source, so I specified the location explicitly for building octave ./configure --with-hdf5-libdir='/usr/local/hdf5/lib' --with-hdf5-includedir='/usr/local/hdf5/include'
The reason the latest octave 4.4.1 was needed is it has support for handle classes, which the octave version available by dpkg/apt-get may or may not.
hdf5oct had a couple of slight problems. The github code from 4 years ago somehow does not pick up the HDF libraries. There is a modified version of the h5read.cc source here:
https://raw.githubusercontent.com/tmullins/hdf5oct/2c4b1c412f67cc8b11923054756e001c4161db39/h5read.cc
which is fixed for this problem. Then a second issue at line 979 of that modified h5read.cc, i edited:
979 int rank = ov_data.dims ().numel ();
to become:
979 int rank = ov_data.ndims ();
after that there was only one other edit, at getComputerInfo.m line 54 system_dependent is a matlab command, replace with uname or computer in octave, it is only a text field so anything will do.
At this point the c++ binaries are running in the example_us_beam_patterns.