主要观点:2025 年,./configure在 24 核 CPU 上仅能使用其中一个的 69%,导致构建配置时间约为实际构建时间的 13.5 倍;./configure脚本本质上是顺序编写,多数测试可并行进行,多数构建配置脚本如 Autoconf、CMake、Meson 等不能并行化;通过创建configure.mk、flags.sh、define.sh等文件,利用make工具实现并行化配置,生成Makefile和config.h,提高配置效率。
关键信息:
./configure配置时间长,如某随机项目配置时间约为构建时间的 13.5 倍。- 多数构建配置脚本顺序编写,可并行测试未利用。
configure.mk通过各种 makefile 片段实现并行化配置,如TRY_CC等。flags.sh用于检查编译器支持的标志。define.sh用于生成config.h中的宏定义。
重要细节:- 示例中
configure.mk通过多个目标生成不同的 makefile 片段,如deps.mk、Wall.mk等,可并行运行。 config.h通过测试编译简单 C 程序生成,如have_statx.c等,header.mk用于生成和合并这些小文件。- 最后用
configure脚本包装configure.mk,方便用户运行。在示例中,新的构建系统在bfs项目中性能提升显著,如配置时间从 1.44s + 1.78s 降至 0.401s,构建时间从 1.89s + 0.64s 降至 0.310s。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。