The most used tools that I would recommend are autotools and CMake.
Autotools are the historical tools for the GNU projects and are a suite of scripts that allow the developer to implement feature detection via M4 scripting (autoconf). There are predefined macros for common tests.
CMake is a more recent native C++ toolchain that also include support for the most common features checks, and allows the developer to implement their own tests via its powerful language.
Be careful that both are complete build toolchains that completely replace hand-written makefiles.
I believe however that the advantages they provide in terms of cross-platform support and maintainability is worth much more than the level of control provided by makefiles.