【问题标题】:Where is a good AOSP Makefile to put PRODUCT_PACKAGES+=mytool放置 PRODUCT_PACKAGES+=mytool 的好 AOSP Makefile 在哪里
【发布时间】:2019-09-06 05:27:12
【问题描述】:

我正在为一些在 AOSP 树中构建的用户使用内部工具。 要启用此工具的构建,必须将其添加到 make-system 中某处的 PRODUCT_PACKAGES 变量中。

PRODUCT_PACKAGES+=mytool

到目前为止,我一直将此作为对/build/make/target/product/base_system.mk 的未提交更改进行维护,我当然可以分叉此模块并维护我的补丁或将其维护为差异并在创建新工作区时对其进行补丁。

该项目现在需要与少数同事共享,因此这是一个减少 hacky 和更易于维护的好机会,因为分叉模块需要不断合并上游补丁。

该项目只为清单维护一个 git repo,为工具本身维护一个。

我怎样才能将此分配添加到 Makefile 而不必将其维护为 shell 脚本或其中一个 android git 的分叉版本?

【问题讨论】:

    标签: android makefile android-source android-build


    【解决方案1】:

    您必须将mytool 添加到device/<vendor>/<device>/device.mk 中的设备配置中。

    即使您碰巧在mytool 存储库中找到了使其工作的方法,您也可能不应该这样做,因为将模块添加到设备是集成商的工作。如果不是在一个点收集包,他几乎无法跟踪,如果集成分布在许多存储库中,我可以想到更多的问题,每个存储库可能都有自己的一组访问权限。

    当我想共享早期版本而无需集成麻烦时,我使用的一种解决方案是以local repo manifest 的形式提供它,它将mytool 存储库与已修补的device/<vendor>/<device> 存储库结合在一起。

    【讨论】:

    • 对于设备/供应商/设备,我仍然有分叉上游版本的缺点,如果我们同时为hikey960 和hikey 平台构建,我将不得不维护两个版本。本地清单与我当前的静态清单一样重要。可能,但不是我正在寻找的银弹。
    • 我假设您还使用自定义设备配置。你可以在你的本地服务器上 fork hikey 并使用它。
    • 您是否尝试过不添加到 product_packages 直接构建它?例如:make mytool(来自 android 顶级文件夹)
    猜你喜欢
    • 2015-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-29
    • 2018-03-27
    • 2011-02-15
    相关资源
    最近更新 更多