mtk的make过程详细解释

mtk的make过程详细解释

ID:5567236

大小:33.50 KB

页数:3页

时间:2017-12-18

mtk的make过程详细解释_第1页
mtk的make过程详细解释_第2页
mtk的make过程详细解释_第3页
资源描述:

《mtk的make过程详细解释》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、Make.bat实际上只起引导作用,其只有一行批处理语句perlmake2.pl%*,于是运行该批处理文件后控制权转给了perl脚本make2.pl。在这个perl脚本中解析了用户输入的命令行参数,设置变量,准备make时需要的临时配置文件,随后根据生成的可运行映像是PC模拟版还是ARM版而分别调用不同的构建过程。   Pc模拟版的构建通过调用如下命令实现。   system("$msdevMoDIS.dsw/MAKE"$argu-Win32$modisDir"   /OUT${MoDISLogDir}\${argu}.log")   在这里$msdev就是VC的

2、msdev,通过VC的工程文件MoDIS.dsw和后面的参数进行具体的构建过程。熟悉VC工程的朋友应该比较清楚,因此就不再具体解释了。之后将只以ARM版为主来讲解整个工程的构建过程。   ARM版的构建通过调用如下命令实现。   system("${makeCmd}-f${makeFolder}${myMF}-r-R   CUSTOMER=$customPROJECT=$project$action")   在这里${makeCmd}是toolsmake.exe,即GNU的make,${makeFolder}${myMF}是makeGsm2.mak,$action是

3、new、update、remake等。变量CUSTOMER和PROJECT分别是客户名和项目名,在构建过程中将根据此两个变量的值选定项目相关的配置文件,从而实现客户化的定制。通过给make指定ARM版的核心Makefile文件Gsm2.mak,开始了ARM版的构建过程。   Gsm2.mak文件中包含了Option.mak这个配置用的Makefile文件,另外还包含了一些以.tmp和.bld为后缀的由perl脚本make2.pl生成的临时配置文件。这些临时配置文件主要是一些action如clean、remake等所需的变量设置,及客户化和版本号等的一些信息。Gsm2.m

4、ak控制了new、update、remake等动作的过程。具体分别如下所示。         new:cleanallcmmgenmmi_feature_checkasngencodegenasnregen      operator_check_liteupdate         update:cleanlogcleanbinmcddll_updatecodegenresgencksysdrvremake         remake:cleanlogcleanbingenvernolibs$(BIN_FILE)done         上面的构建过程的几个步骤中

5、,最重要的两个步骤是libs、$(BIN_FILE)。libs调用ARM版的编译器和连接器将各个模块目录下的C文件编译链接为独立的库。$(BIN_FILE)这个步骤将各个模块编译链接得到的库和mtk_lib目录下的库一起链接起来得到一个映像文件,然后使用ADS的工具fromelf将映像文件生成以变量BIN_FILE命名的二进制文件,该文件可以下载到硬件板上运行。   libs这个步骤如下所示。         libs:cleanlibstartbuildlibs$(COMPLIBLIST)   libs中真正进行编译链接的步骤是$(COMPLIBLIST),要生成的库

6、由变量COMPLIBLIST列出,在ARM版中,变量COMPLIBLIST从变量COMPLIST得到。变量COMPLIST是在Option.mak及其包含的Makefile文件中赋值的。因有很多库需要编译链接,变量COMPLIBLIST展开后包含多个步骤,而这些步骤都是重复不变的,因此在定义步骤$(COMPLIBLIST)的构建过程时使用%.lib代替。%.lib这个步骤先清除了之前的一些依赖关系文件,将一些变量的设置写入~compbld.tmp这个临时文件中,然后给make指定Makefile文件comp.mak,完成库的编译和链接,如下所示。   %.lib:   

7、…   @if/I%OS%EQUWINDOWS_NT   (if/I$(BM_NEW)EQUTRUE   (toolsmake.exe-fmakecomp.mak-k-r-R$(strip$(CMD_ARGU))COMPONENT=$*>$(strip$(COMPLOGDIR))$*.log2>&1)      else   (toolsmake.exe-fmakecomp.mak-r-R$(strip$(CMD_ARGU))COMPONENT=$*>$(strip$(COMPLOGDIR))$*.log2>&1) 

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。