在AOSP的主要品牌中添加制作规则

时间:2017-06-12 04:58:33

标签: android makefile android-source android-make

我在frameworks/base/cmds/myproject添加了一个新的C ++子项目,它有自己的Android.mk文件。当我运行make myproject时,它会很好地编译,没问题。

但我想将make myproject添加到主make。我的意思是,当有人在AOSP的根目录运行make时,我的项目也会包括在内。我该怎么办?

1 个答案:

答案 0 :(得分:4)

您需要调用Android.mk文件。根据您的需要,有多种方法可以这样做。

如果您希望为myproyect下的几个设备编译device/,请查找常用的mk文件。例如,高通公司就是这样做的,您可以将其复制到AOSP。

  • 修改/创建device/common/common.mk
  • 从您想要的每台设备拨打device/common/common.mk。 (这就是QCM的做法:$(call inherit-product, device/qcom/common/common.mk)

如果您只想要特定设备:

  • 我们理所当然地想要为mini_emulator_x86-userdebug编译mkdevice/generic/mini-emulator-x86文件已mini_emulator_x86.mk
  • 修改PRODUCT_PACKAGES
  • 按如下方式编辑或添加PRODUCT_PACKAGES += \ myproyect

    source build/envsetup.sh

注意正确的缩进。

这样,当您执行lunch mini_emulator_x86-usermake然后myproyect.mk时,您的myproject.mk就会到达。

为了测试它:

  • 通过添加以下内容来编辑您的$(warning MyProject MK has been called文件:lunch mini_emulator_x86-user
  • 致电make | grep MyProject
  • device并且您不需要等待整个编辑,如果在第一秒内输出内容,那么您就可以了。

有关其他参考,您可以查看Qualcomm如何使用commonbase mk文件组织其.categ文件夹。看看他们的开源代码here