Can We Remove the Autotools?
Dana Robinson, Director of Software Engineering, The HDF Group
HDF5 can be built using two build systems: the Autotools (since HDF5 1.0) and CMake (since HDF5 1.8.5). For a long time, the Autotools were better maintained and CMake was more of an “alternative” build system that we primarily used for handling Windows support (the legacy Visual Studio projects were removed in HDF5 1.8.11).
This is no longer the case though—CMake support in HDF5 is (almost) as good as Autotools support and CMake, in general, is much more commonly used now than when we first introduced it.
So why are we still hanging on to the legacy Autotools?
Maintaining two build systems is a royal pain. Keeping the two systems in sync requires extra overhead and almost doubles our testing load. Furthermore, we’ve implemented some hacks that make it a little easier to keep the two build systems in sync (e.g., the compiler warning system in the config directory) that make the build system more complicated. It’d be nice to see those go away.
There’s also changes I’d like to make to the build system, going forward, and I don’t want to have to invent the wheel twice. For example, I’d like to move most of the contents of H5pubconf.h out of the public API, moving the build feature symbols (like
H5_HAVE_PARALLEL) to a new public header file (H5features.h or something like that), but I don’t want to have to duplicate that work for two build systems.
What we’d like to do
In HDF5 2.0, we’d like to completely remove support for the Autotools. Of the two build systems, only CMake really supports Windows, so that’s the one we have to keep around. Before doing this, we’d make a thorough pass over both build systems to ensure that everything that can be done in the Autotools is possible in CMake. We’re pretty close, but I’d be willing to bet there are some platform- and compiler-specific options that still differ between the build systems.
All HDF5 1.x versions would retain Autotools support, of course.
Does this negatively affect you?
If losing the Autotools is a big loss for you, we’d like to hear from you. We have a post up on the HDF Forum where you can weigh in on this:
Let us know of any concerns you have. We’d also like to hear about any build system deficiencies you think we should address.