MTK 构建过程详解:从make.bat到Gsm2.mak

需积分: 9 10 下载量 201 浏览量 更新于2024-12-13 1 收藏 68KB PDF 举报
"MTK make命令分析" 在MTK (MediaTek) 的开发环境中,`make` 命令扮演着核心角色,它负责编译和构建固件或软件项目。在MTK工程的根目录下,通常有一个名为`make.bat`的批处理文件,这个文件的主要任务是启动构建流程。`make.bat`仅仅是一个启动器,它通过执行Perl脚本`make2.pl`来传递用户输入的命令行参数,并进行后续的构建工作。 Perl脚本`make2.pl`首先会解析用户输入的参数,设置必要的环境变量,并生成临时配置文件,这些文件对构建过程至关重要。根据构建目标的不同,`make2.pl`会决定调用PC模拟版的构建过程还是ARM版的构建过程。 对于PC模拟版的构建,MTK依赖于Microsoft Visual Studio (VC) 的`msdev`工具。`make2.pl`通过调用`msdevMoDIS.dsw/MAKE\\$argu-Win32$modisDir\\`命令来执行VC工程文件`MoDIS.dsw`中的构建任务。这里,`$argu`可能是构建目标等参数,`$modisDir`则是指定的工作目录。构建日志会被保存到`${MoDISLogDir}\\\\${argu}.log`。 对于ARM版的构建,`make2.pl`会使用GNU的`make`工具,命令格式为`${makeCmd}-f${makeFolder}${myMF}-r-R CUSTOMER=$custom PROJECT=$project $action`。这里的`${makeCmd}`通常指向`tools\\make.exe`,`${makeFolder}${myMF}`是核心Makefile文件`Gsm2.mak`的位置,`$action`可以是`new`、`update`、`remake`等构建操作。`CUSTOMER`和`PROJECT`变量用于指定客户名称和项目名称,以实现针对不同客户和项目的定制化构建。 `Gsm2.mak`文件是整个构建过程的关键,它不仅包含`Option.mak`这样的配置文件,还引用了由`make2.pl`生成的一系列`.tmp`和`.bld`临时配置文件。这些临时文件提供了针对特定构建动作(如`clean`、`remake`)的变量设置,以及关于客户化和版本信息的数据。 `Gsm2.mak`文件控制了各种动作的执行流程,比如: - `new`: 这个动作会先执行`cleanall`清除所有旧的编译产物,然后进行`cmmgen`、`mmi_feature_check`、`asngencodegen`和`asn`等步骤,这些步骤可能涉及到代码生成、功能检查、编译和编码等操作。 - `update`: 更新动作可能包括更新源代码、重新生成配置文件等,以确保构建反映最新的源码变化。 - `remake`: 当需要重新编译整个项目时,`remake`动作会执行,它会从头开始执行构建过程,确保所有文件都是最新状态。 MTK的`make`命令分析涉及到了批处理、Perl脚本、VC工程构建和GNU Makefile的综合运用,构建流程既考虑了模拟器环境下的开发,也支持了嵌入式ARM平台的编译,且能根据客户需求进行定制。这一过程展示了MTK开发环境的复杂性和灵活性。