MTK编译过程详解

需积分: 9 2 下载量 77 浏览量 更新于2024-09-20 收藏 66KB DOC 举报
"本文档详细阐述了MediaTek (MTK) 的编译流程,涵盖了从初始设置到最终生成bin文件的各个步骤。文档通过分析关键的Makefile文件及其相互依赖关系,提供了对MTK平台软件编译过程的深入理解。" 在MTK的编译过程中,有几个核心的文件和步骤起着至关重要的作用: 1. **Comp.mak**:这个文件负责模块的编译和链接,是构建过程的关键一步,最终会生成二进制bin文件。这个阶段通常包括源代码的预处理、编译、汇编和链接,将源代码转化为可执行程序。 2. **Gsm2.mak**:作为主Makefile,Gsm2.mak管理整个编译过程,包括清理、重新制作(remake)和新构建(new)等操作。它接收命令行参数,根据用户指定的action(如new、update或remake)执行相应的任务。 3. **XXX_GPRS.mak**:这是一个客户特定的配置文件,根据不同的客户需求设置不同的配置选项。这意味着对于每个不同客户,可能需要不同的XXX_GPRS.mak来定制编译过程。 4. **Option.mak**:这是工程的基本配置文件,包含宏定义和其他通用设置。Option.mak被其他Makefile引用,用于传递项目级别的配置信息。 5. **Verno_XXX.bld** 和 **Custom.bld**:这两个文件用于版本管理和客户特定的定制。Verno_XXX.bld记录版本信息,而Custom.bld则确保在不同客户版本之间保持一致的配置,其内容不应被随意更改。 编译流程的概要如下: - **启动阶段**:Make.bat脚本首先运行,调用ChgFileMode.bat修改编译所需文件的权限,然后调用make2.pl来继续编译过程。 - **make2.pl**:这个Perl脚本负责解析gsm2.mak的参数,并通过系统调用启动实际的Make命令,如`make -f make\gsm2.mak -r -RCUSTOMER=工程名PROJECT=gprs new|update|remake`。 接下来,一系列的Makefile交互开始: - **Gsm2.mak**:作为入口点,它首先包含Option.mak。 - **Option.mak**:引入`$(strip $(CUSTOMER))_$(strip $(PROJECT)).mak`,例如K500GSD_GPRS.mak。 - **XXX_GPRS.mak**(如K500GSD_GPRS.mak):这个文件进一步包含REL_CR_MMI_$(strip $(PROJECT)).mak,例如REL_CR_MMI_GPRS.mak。 - **REL_CR_MMI_GPRS.mak**:定义了编译过程中的目录结构和文件集合,特别是MMI(人机接口)部分的编译目录(如MMIDIR=plutommi)。 在整个编译过程中,MTK的Makefile系统通过这些文件之间的互相包含和调用来管理项目配置和构建规则,确保了代码的正确编译和链接。这不仅允许了不同客户定制的灵活性,也保证了编译过程的标准化和一致性。理解这些文件的作用和相互关系对于调试和优化MTK平台的编译过程至关重要。