美文网首页
cleanbuild.mk

cleanbuild.mk

作者: gbmaotai | 来源:发表于2018-08-29 16:52 被阅读0次
    1. 定义了add-clean-step函数。

    有一个入口参数(1),执行删除操作的具体shell命令。 一般add-clean-step应当在%/cleanspec.mk脚本中使用,命令会为(1)定义一个变量保存,变量的名字是INTERNAL_STEP.(_acs_id),所有的(_acs_id)保存在INTERNAL_STEPS中。

    $(_acs_id)的值分成3个部分构造:

    第一部分是有cleanspec.mk的路径转化而来,用'_'替代'/','-'替代'.',后缀_acs。

    第二部分是$(INTERNAL_CLEAN_BUILD_VERSION),默认是4。

    第三部分是有'@'组成,cleanspec.mk中的第几个add- clean-step就用几个@。

    例如,packages/apps/Camera/cleanspec.mk中定义了两个删除动作

    $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/APPS/Camera*)
    $(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/APPS/Camera*)
    

    那么,对应的生成变量有:

    INTERNAL_STEP.packages_apps_Camera_CleanSpec-mk_acs4@:= rm -rf $(PRODUCT_OUT)/obj/APPS/Camera*
    INTERNAL_STEP.packages_apps_Camera_CleanSpec-mk_acs4@@ := rm -rf$(OUT_DIR)/target/common/obj/APPS/Camera*
    INTERNAL_CLEAN_STEPS+=packages_apps_Camera_CleanSpec-mk_acs4@:
    INTERNAL_CLEAN_STEPS+packages_apps_Camera_CleanSpec-mk_acs4@@:
    
    2.包含:$(BUILD_SYSTEM)/cleanspec.mk。并且枚举所有的CleanSpec.mk文件,并把它们包含进来

    设置INTERNAL_CLEAN_BUILD_VERSION :=3,并通过add-clean-step函数,加进一些默认的删除操作,在通过build/tools/findleaves.py枚举所有的CleanSpec.mk文件,并把它们包含进来。在这些文件里根据具体的模块加删除操作。

    3.包含:$(PRODUCT_OUT)/clean_steps.mk。

    这个文件是自动生成的,设置CURRENT_CLEAN_BUILD_VERSION :=INTERNAL_CLEAN_BUILD_VERSION

    4.比较CURRENT_CLEAN_BUILD_VERSION和INTERNAL_CLEAN_BUILD_VERSION

    若相等执行INTERNAL_CLEAN_STEPS里的命令,否则表示我们修改过cleanspec.mk, 删除整个$(OUT_DIR)。

    5.定义两个make目标installclean和dataclean。

    分别用来删除安装文件和数据文件。

    相关文章

      网友评论

          本文标题:cleanbuild.mk

          本文链接:https://www.haomeiwen.com/subject/tpskwftx.html