原文链接:http://diy-phone.com/tao/index.php?p=75
MTK软件的编译系统在 make/Verno_$(CUSTOMER).mak 中提供了一些软件构建相关的变量。
比如软甲版本相关信息、编译的日期时间、编译批次等。
在编译操作 genverno 中会将这些变量转换为C代码(verno/verno.c),以供上层应用(*#8375#)调用。
可如果每次编译都手动去修改编译计数,未免太傻了点:D 这种事情应该让程序自己去做才对。
大致原理:
将计数保存到一个文件里,该文件位于- BUILDNO_FILE=build\$(CUSTOMER)\$(NEWTARGNAME)-buildno.txt
复制代码
文件保存路径与客户项目和软件版本相关,这样项目和软件版本发生变化时,编译计数会自动重新开始计数。
每次编译执行后,从文件中读取编译计数并累加一保存到文件。
新编译计数在 genverno 过程中,被保存到 verno/verno.c 中。
形式:”$(strip $(BUILD)) #$(strip $(NEW_BUILDNO))”
OK。开始动手给MTK软件编译添加一个自动编译计数吧
提供一个基于HUAYU P1300发布软件代码的补丁。- diff --git a/make/Gsm2.mak b/make/Gsm2.mak
- --- a/make/Gsm2.mak
- +++ b/make/Gsm2.mak
- @@ -264,6 +264,10 @@ COMPDEFS = __NULL_DEF__
- COMPDEFS += $(foreach COMP,$(COMPLIST),$(shell type make\$(COMP)\$(COMP).def))
- #$(warning [$(COMPDEFS)])
- +BUILDNO_FILE=build\$(CUSTOMER)\$(NEWTARGNAME)-buildno.txt
- +OLD_BUILDNO=$(strip $(shell type $(BUILDNO_FILE)))
- +NEW_BUILDNO=$(strip $(shell perl -e 'print $(OLD_BUILDNO)+1'))
- +
- # -----------------------------
- # Macros definition
- # -----------------------------
- @@ -1180,7 +1184,7 @@ genverno:
- @echo kal_char* release_build(void) >> $(strip $(VERNODIR))\verno.c
- @echo { >> $(strip $(VERNODIR))\verno.c
- - @echo static kal_char build_str[] = "$(strip $(BUILD))"; >> $(strip $(VERNODIR))\verno.c
- + @echo static kal_char build_str[] = "$(strip $(BUILD)) #$(strip $(NEW_BUILDNO))"; >> $(strip $(VERNODIR))\verno.c
- @echo return build_str; >> $(strip $(VERNODIR))\verno.c
- @echo } >> $(strip $(VERNODIR))\verno.c
- @@ -1192,6 +1196,8 @@ genverno:
- @echo #define VERNO_STR "$(strip $(VERNO))" > $(strip $(VERNODIR))\verno.h
- + @echo $(NEW_BUILDNO) > $(BUILDNO_FILE)
- +
- # *************************************************************************
- # Generate Custom Information
- # *************************************************************************
复制代码
参考:
http://www.linuxjournal.com/cont ... -your-build-process |