Just throwing this out here, because I thought about the autotools bootstrapping mess again, which is its main disadvantage. There are many ways the bootstrapping process can fail, some even non-deterministic and shell-dependent.
I think the only sane alternatives are:
write custom Makefiles (I have enough experience with that to make it work, even for distro packagers)
switch to CMake
So... to give an overview
Autotools
Advantages:
satisfies pretty much every packager and every distro... de-facto linux standard
works well with pkg-config
Disadvantages:
unreliable, complicated and slow bootstrapping process
sometimes hard to keep up with the macro mess, macro deprecation etc.
CMake
Advantages:
much more reliable bootstrapping process
(usually) faster, especially with ninja
more cross-platform (probably irrelevant for us)
Disadvantages:
pkg-config support sucks a bit
module quality sometimes poor, wild hacks to find libraries
no uninstall rules whatsoever
Custom Makefile
Advantages:
full control, no bullshit, no overhead, no cruft
no bootstrapping
fast (if done right)
Disadvantages:
complexity to write and maintain
distro-compatibility only if done right, not per default
Just throwing this out here, because I thought about the autotools bootstrapping mess again, which is its main disadvantage. There are many ways the bootstrapping process can fail, some even non-deterministic and shell-dependent.
I think the only sane alternatives are:
So... to give an overview
Autotools
Advantages:
Disadvantages:
CMake
Advantages:
Disadvantages:
Custom Makefile
Advantages:
Disadvantages:
But this is really just if someone is bored.