在 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.sh
和 lunch mini_emulator_x86-user
然后 make
时,您的 myproyect.mk
将达到。
为了测试它:
- 编辑您的
myproject.mk
文件,添加如下内容:$(warning MyProject MK has been called
- 呼叫
lunch mini_emulator_x86-user
.
make | grep MyProject
而且你不需要等待整个编译过程,如果这在第一秒内输出了一些东西,你就可以开始了。
如需更多参考,您可以查看 Qualcomm 如何使用 common
和 base
mk 文件组织其 device
文件夹。看看他们的开源代码here
我在 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
. 中有 - 编辑
mini_emulator_x86.mk
编辑或添加
PRODUCT_PACKAGES
如下:PRODUCT_PACKAGES += \ myproyect
mk
文件
注意正确的缩进。
这样,当您执行 source build/envsetup.sh
和 lunch mini_emulator_x86-user
然后 make
时,您的 myproyect.mk
将达到。
为了测试它:
- 编辑您的
myproject.mk
文件,添加如下内容:$(warning MyProject MK has been called
- 呼叫
lunch mini_emulator_x86-user
. make | grep MyProject
而且你不需要等待整个编译过程,如果这在第一秒内输出了一些东西,你就可以开始了。
如需更多参考,您可以查看 Qualcomm 如何使用 common
和 base
mk 文件组织其 device
文件夹。看看他们的开源代码here