Autotools 是一套编程工具集,旨在使源代码包在各种类 Unix 系统之间具有可移植性。它自动化了配置和构建过程,允许开发人员编写的软件能够在广泛的平台上编译,而无需手动调整。其核心组件包括 Autoconf、Automake 和 Libtool。
configure.ac(或较旧的 configure.in)是 Autoconf 的主要输入文件。它是一个用 M4 宏语言编写的 shell 脚本模板。此文件包含一系列 M4 宏,用于检测软件所需的系统特性、库、头文件和程序。基于这些检测结果,Autoconf 处理 configure.ac 以生成一个 configure 脚本。
当最终用户运行生成的 configure 脚本时,它会探测其特定的系统环境,并生成 Makefile 文件(来自 Automake 提供的 Makefile.in 模板)以及该系统所需的其他文件。这确保了软件可以在目标机器上正确编译,同时抽象化了平台特定的差异。本质上,configure.ac 定义了使用 Autotools 系统的项目的构建要求和配置逻辑,使其成为任何基于 Autotools 的软件分发的关键文件。