本文记录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()
:向