展讯智能机平台8810的编译脚本解析

展讯智能机平台8810的编译脚本解析,第1张

概述./mk -o=eng:1sim:gplusc project_8810 u adr packages/apps/Contacts 这是一个编译apk的指令,先开个头,大致记录一下分析结果。 先从mk文件开始,mk就是一个perl文件了,里面的第一行: #!/usr/bin/perl -w    //指定了perl解释器的存放位置 require "customize/perl/main.pl";

./mk -o=eng:1sim:gplusc project_8810 u adr packages/apps/Contacts

这是一个编译apk的指令,先开个头,大致记录一下分析结果。

先从mk文件开始,mk就是一个perl文件了,里面的第一行:

#!/usr/bin/perl -w    //指定了perl解释器的存放位置

require "customize/perl/main.pl"; // include另外一个perl文件main.pl

在main.pl 中:

1.  $ARGV[0] =~ /^-(o|op|opt)=(.*)$/  //搜索“-o” 开头的输入参数
2.  @bopt = split(":",$2);    // 以“:”分隔符将输入参数存入bopt这个数组中(eng 1sim gplusc)

3.   遍历@bopt这个数组将eng/1sim/gplusc分别存入标量$mode/$sim/$gplusc  (eng/1sim是默认支持的option,gplusc是新增加的option)

4.   "project_8810"存入$project,  "u"存入$action,"adr packages/apps/Contacts"存入@input_module

5.   &parse_custmake(${project});   // 调用函数parse_custmake来检测customize/make/$project.mak是否存在

6.   @acts = split(",",$action);   //$action 可能是以“,”分隔的多个action,所以转换成数组@acts

7.   $result = &act_convey(\@acts,\@cust_act); // 调用act_convey函数来将用户输入的简单参数转换成标准参数,比如将“u”转换为“update”

8.  判断@input_module, 先匹配到“adr”,然后将 packages/apps/Contacts 存入 $CUR_MODulE_PATH

9.  gen_makeini(\@acts);  // 根据@acts数组生成ini文件

10. &system_call("perl customize/perl/prebuild.pl  customize/make/${project}.mak   2>&1 | tee $logdir/${project}_prebuild.log");  // 如果($uAct eq "new") or ($uAct eq "update") ,那么就需要做prebuild *** 作

11. $result += &system_call("$makeCmd $uMod CUR_ACTION=$uAct CUR_MODulE=$uMod KMOD_PATH=$CUR_MODulE_PATH");  // 如果if($uAct =~ /(update|clean|packet)/i) 条件满足,即update某个模块,则执行make命令:$makeCmd = "make -f customize/make/makefile.sprd $cmdArg @mOpts"; make命令的目标是$uMod,在这里即为“androID”

12.  再往下就是到makefile.sprd执行 target=androID的脚本了。

总结

以上是内存溢出为你收集整理的展讯智能机平台8810的编译脚本解析全部内容,希望文章能够帮你解决展讯智能机平台8810的编译脚本解析所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1294008.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-10
下一篇 2022-06-10

发表评论

登录后才能评论

评论列表(0条)

保存