Autotools ist eine Suite von Programmierwerkzeugen, die entwickelt wurde, um Quellcode-Pakete über verschiedene Unix-ähnliche Systeme hinweg portierbar zu machen. Es automatisiert den Konfigurations- und Build-Prozess und ermöglicht es Entwicklern, Software zu schreiben, die auf einer breiten Palette von Plattformen ohne manuelle Anpassungen kompiliert werden kann. Die Kernkomponenten sind Autoconf, Automake und Libtool. configure.ac (oder die ältere Version configure.in) ist die primäre Eingabedatei für Autoconf. Es handelt sich um eine Shell-Skript-Vorlage, die in der M4-Makrosprache geschrieben ist. Diese Datei enthält eine Reihe von M4-Makros, die Systemfunktionen, Bibliotheken, Header-Dateien und Programme testen, die von der Software benötigt werden. Basierend auf diesen Tests verarbeitet Autoconf configure.ac, um ein configure-Skript zu generieren. Wenn ein Endbenutzer das generierte configure-Skript ausführt, sondiert es seine spezifische Systemumgebung und erzeugt Makefiles (aus den von Automake bereitgestellten Makefile.in-Vorlagen) und andere für dieses System spezifische notwendige Dateien. Dies stellt sicher, dass die Software auf der Zielmaschine korrekt kompiliert werden kann, indem plattformspezifische Unterschiede abstrahiert werden. Im Wesentlichen definiert configure.ac die Build-Anforderungen und die Konfigurationslogik für ein Projekt, das das Autotools-System verwendet, was es zu einer entscheidenden Datei für jede auf Autotools basierende Softwareverteilung macht.