Autotools es un conjunto de herramientas de programación diseñado para hacer que los paquetes de código fuente sean portables entre diversos sistemas tipo Unix. Automatiza el proceso de configuración y compilación, permitiendo a los desarrolladores escribir software que puede compilarse en una amplia gama de plataformas sin ajustes manuales. Sus componentes principales son Autoconf, Automake y Libtool. El archivo 'configure.ac' (o el antiguo 'configure.in') es el archivo de entrada principal para Autoconf. Se trata de una plantilla de script de shell escrita en el lenguaje de macros M4. Este archivo contiene una serie de macros M4 que prueban las características del sistema, bibliotecas, cabeceras y programas requeridos por el software. Basándose en estas pruebas, Autoconf procesa 'configure.ac' para generar un script de 'configure'. Cuando un usuario final ejecuta el script 'configure' generado, este analiza su entorno de sistema específico y genera los 'Makefile' (a partir de las plantillas 'Makefile.in' proporcionadas por Automake) y otros archivos necesarios específicos para dicho sistema. Esto garantiza que el software pueda compilarse correctamente en la máquina de destino, abstrayendo las diferencias específicas de cada plataforma. En esencia, 'configure.ac' define los requisitos de compilación y la lógica de configuración para un proyecto que utiliza el sistema Autotools, lo que lo convierte en un archivo crucial para cualquier distribución de software basada en Autotools.