本文记录FFmpeg的Configure脚本的源代码。Configure一方面用于检测FFmpeg的编译环境,另一方面根据用户配置的选项生成config.mak,config.h文件(可能还有config.asm),提供给Makefile使用。由于FFmpeg的configure脚本很复杂(一个4000-5000行的Shell脚本),难以逐行细致的分析,因此本文简单梳理一下它的结构。
PS1:Configure的日志位于config.log文件中。查看该文件有助于分析Configure的过程。
PS2:使用“sh -x script_name.sh”可以调试Shell脚本。
Configure文件的整体流程
Configure文件的整体流程如下所示。

Configure的整体流程可以分成以下几步:
Set Default Value:设置各个变量默认值;
Parse Options:解析输入的选项;
Check Compiler:检查编译器;
die_license_disabled():检查GPL等协议的设置情况;
Check:检查编译环境(数学函数,第三方类库等);
Echo info:控制台上打印配置信息;
Write basic info:向config.mak中写入一些基本信息;
print_config():向config.h、config.mak、config.asm中写入所有配置信息;
print_enabled():向config.mak写入所有enabled的组件信息;
pkgconfig_generate()

本文分析FFmpeg的Configure脚本,主要涉及整体流程、默认值设置和选项解析。Configure用于检测编译环境并根据用户选项生成配置。流程包括设置默认值、解析选项、检查编译器和环境等。通过查阅相关日志和使用特定标志可辅助分析。
最低0.47元/天 解锁文章
1516

被折叠的 条评论
为什么被折叠?



