projectconfig.mk 中定义的宏将仅作用到android 层
Version >= android 5.0
[SOLUTION]
由于Projectconfig.mk只作用于Android层,而kernel ,lk ,和preloader 是不起作用的,需要宏控制对应代码时,请分别在对应地方定义。具体可参考以下:
preloader部分:
如需宏控制pl这部分代码时,需在alps/bootable/bootloader/preloader/custom/$project/$(project).mk中增加需要的宏。
lk部分:
如需宏控制lk这部分代码时,需在alps/bootable/bootloader/lk/project/$(Project).mk文件中添加控制宏。
kernel部分:
如需宏控制kernel这部分代码时,参考以下步骤新增kernel config.
1.请在您的driver code所在目录中的Kconfig文件增加您的宏定义
具体怎么写可以参考Kconfig中的其他宏定义
举个例子:
config MTK_FB
bool "MediaTek Framebuffer Driver"
depends on FB
default y
select FB_SOFT_CURSOR
---help---
This selects the MediaTek(R) frame buffer driver.
If you want to use MediaTek(R) frame buffer diver, say Y.
2.在您对应的kernel defconfig配置文件中(如:kernel-3.10/arch/arm/configs/$(project)_defconfig(user及userdebug版本时需在此文件中配置)或$(project)_debug_defconfig(eng版本时需在此文件中配置))中设定您增加的宏的值,如 CONFIG_MTK_FB=y
3.在您的kernel代码中就可使用CONFIG_MTK_FB这个宏了
Android部分:
如需宏控制Android c,c++代码时,参考以下步骤
1.ProjectConfig.mk中定义您需要添加的宏CONFIG_XXX = yes
2.Android.mk中根据ProjectConfig.mk中添加的宏设定LOCAL_CFLAGS
ifeq ($(CONFIG_XXX),yes)
LOCAL_CFLAGS += -DCONFIG_XXX=yes
endif
3.接下来,您的code中就可以使用您定义的CONFIG_XXX宏了
务必注意,自L版本之后preloader/lk/kernel/android已经完全独立,代码不会有任何耦合,请参考以上方法设置控制宏。