Last week I’ve migrated the build system of LaTeXila from CMake to the Autotools. Here are the reasons.
The GNU Coding Standards
With CMake, some important make’s targets are missing, for example
make uninstall. The main problem is that CMake doesn’t follow the GNU Coding Standards (GCS). The purposes of the GCS, with regard to a build system, is to make a program portable, easy to install, and consistent with the way other softwares are built and installed.
The GCS has several decades of experience, the standards are well established, and we can trust the GNU hackers for having well conceived them. Those that don’t follow them are devoted to reinvent the wheel: they will be faced sooner or later by the same problems already solved by the GCS and the Autotools…
Following standards is important both for users and packagers. If every software uses a different build system, with different options etc, it is a nightmare.
Available macros for GNOME applications
Another reason to use the Autotools, for a GNOME application, is to use the available macros: for the translations (intltool, ITS Tool), the documentation (yelp), the settings (gsettings), …
Creating a tarball
With the Autotools it is as simple as running
make distcheck, and putting some files in
EXTRA_DIST or prefixing Automake variables with the
It is more complicated with CMake. CPack can be used, but it is far from automatic. When reading the CPack documentation, I changed my mind and wrote a shell script instead.
Learning the Autotools
The Autotools are not as Autopain as people generally say. The learning curve is maybe steeper, but with a good book, there is no reasons to be afraid.
That said, there are certainly problems in LaTeXila, so some tests before the stable release would be more than welcome 😉