Project Talk:Quality Assurance/Autotools failures
Suggested fixes/changes for "Introduction" section
Since i don't have editing privileges on this page, i'd like to suggest the following, which includes various fixes and changes (including fixing the broken "Best practices with autotools" link with what i guess is the appropriate article):
%%%
The term autotools usually refers to the tools developed by the GNU project to create platform- and operating-system-independent build systems: autoconf, automake, and libtool. Although not every package uses all of them at the same time, most of the modern ones do so; older packages often do not use automake and libtool, and KDE packages use a more complex build system that ultimately relies on all three.
It's simple to recognize a package with a build system based on autotools: if there's a configure script, and a configure.in or configure.ac file, the build system is based on autoconf; if there are one or more Makefile.am files in the various sub-directories, it's also automake based; if there's an ltmain.sh script, it's also using libtool.
To build a package that uses an autotools-based build system, the tools themselves aren't strictly needed: the configure script is usually a simple Bourne Shell script which transforms the Makefile.in files into a simpler Makefile for make (or, more often, the GNU implementation, gmake). Despite being optional for building the software, the patches needed to solve problems like --as-needed
build failure or automagic dependencies often require re-running the tools to recreate scripts and makefiles' templates.
This guide doesn't give directions on fixing packages' errors in their use of autotools, which is a wide topic requiring a lot of explanatory background; for a simple introduction to the most common errors while using autotools, refer to the "Best practices with autotools" article. Instead, this guide describes the common cases where re-running autotools lead to failures, either on rebuilding the script or at build time.
%%%
-- Flexibeast (talk) 00:33, 23 January 2025 (UTC)