This makes "make" build only the most useful software by default.
Building the test_plugin target requires fortran and openmp, which are
otherwise not required for the durin plugin itself, and is not of
interest to most building the software.
The HDF5 library was made thread-safe via excessive locking, so does
not gain much from reads being parallelized.
By using the H5DOread_chunk function (introduced in HDF5 1.10.2)
we reduce the time spent the library, improving performance for
when XDS uses multiple threads to process data.
The decompression and type conversions have to be done manually
however, and this is only used in a limited case.
Source for the bitshuffle code is:
https://github.com/kiyo-masui/bitshuffle
Release Tag: 0.3.4
Commit at time of copy:
9ffba9de83036a91d345fa2f62fcaedf55f54c5f
The LZF and HDF5 plugin parts are not included as they are
not required.
Error messages and function names/line numbers are traced via
__func__ or __FUNCTION__, __LINE__, etc (or just "unknown" if
not available). A manual stack is kept onto which these values
are pushed which can then be dumped to stderr/stdout.
stderr is used to report this information since no other
facility appears to be provided.