在 AOSP 的主 make 中添加 make 规则

Add a make rule to the main make of AOSP

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

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

您需要调用 Android.mk 文件。有多种方法可以做到这一点,具体取决于您的需要。

如果您希望 myproyect 为您在 device/ 下拥有的多个设备编译,请寻找一个通用的 mk 文件。比如高通是这样的,你可以照着做AOSP。

  • Edit/create device/common/common.mk
  • 从您想要的每台设备拨打电话 device/common/common.mk。 (QCM 是这样做的:$(call inherit-product, device/qcom/common/common.mk)

如果您只想为特定设备使用它:

  • 假设您想为 mini_emulator_x86-userdebug 编译,它在 device/generic/mini-emulator-x86.
  • 中有 mk 文件
  • 编辑mini_emulator_x86.mk
  • 编辑或添加PRODUCT_PACKAGES如下:

    PRODUCT_PACKAGES += \
        myproyect
    

注意正确的缩进。

这样,当您执行 source build/envsetup.shlunch mini_emulator_x86-user 然后 make 时,您的 myproyect.mk 将达到。

为了测试它:

  • 编辑您的 myproject.mk 文件,添加如下内容:$(warning MyProject MK has been called
  • 呼叫lunch mini_emulator_x86-user.
  • make | grep MyProject 而且你不需要等待整个编译过程,如果这在第一秒内输出了一些东西,你就可以开始了。

如需更多参考,您可以查看 Qualcomm 如何使用 commonbase mk 文件组织其 device 文件夹。看看他们的开源代码here