主要观点: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) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。