| There are likely to be some, but they will be a minority. And just like open source projects, their number will be dwindling. In both arenas, I've encountered CMake more than anything else over the course of the last decade. You're absolutely correct that Autotools is no longer synonymous with portability. If it ever was. Not catering for Windows or iOS means it's missing out on the lion's share of the market. There's a massive misplaced priority in catering for 90s Unix platforms which have marginal use by hobbyists and zero commercial use, above current open source and proprietary platforms. And this doesn't just extend to operating systems, it also extends to language support. C++17, C++20, Rust, Go, Swift, you name it. It's not kept up. Likewise build systems. It's make-only. And what about language and platform feature tests and support for stuff like threading, locking etc. It's non existent other than some third-party support which is quite limited. It's for all these reasons, as well as other well documented problems, that I moved all my personal projects over to CMake, as well as work projects, and other open source projects. I needed to support Windows. I needed to support building libraries on multiple platforms. I needed threading support. I needed C++14, and C++17 support. For some open source projects I maintain both Autotools and CMake support. I've had several instances of people trying to build on e.g. Solaris and having problems. I always ask "Were you using the Autotools build, or CMake?" They tell me they used the Autotools and I suggest retrying with CMake. It always works. In short: portability to other Unix systems is inferior today compared with CMake. That's supposed to be its main advantage... Agreed about the shell. There is no point to M4 and it could be removed compatibly by replacement with shell functions. This was true a decade ago. It was even true two decades ago. With regards to migration. The time, money and effort required to upgrade the Autotools would be better spent on converting the affected project(s) to use CMake or some other more modern build tool. The functionality gap is simply too big to overcome at this point, and the contributor base for CMake is large. The FSF have only themselves to blame for their contribution and development practices hindering forward progress, as well as a lack of concern for the real-world needs for software development. The turnaround time for submitting a CMake change is a few days to get it change reviewed and integrated, and a few weeks to be in a release. I've converted some large and complex projects to use CMake over the years, including Xerces-C, Xalan-C, libtiff and others. All in all, that time was well spent, and I'd rather have done this than waste time updating Autoconf/make/libtool. Regarding Debian. Current unstable Build-Depends is 1999 (CMake), 1544 (Autotools), 395 (Meson). So I think we're a good way past the tipping point now. Full disclosure: I've done the FSF copyright assignment for Autoconf and Automake and submitted some major features like C99 support. I'm also a CMake maintainer and I've submitted many different changes there. Primarily lots of Find module support including the Boost support, but also some lower-level bits and pieces as well. The community surrounding CMake is very active and also very friendly to submissions from new people. Kitware really deserve appreciation and thanks for their fostering and growing the community and committing resources to it including timely and friendly code review. |
These days pretty much everything build-depends indirectly on autotools, via debhelper → dh-autoreconf → autoconf.
These numbers are probably more meaningful: