Android.mk 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. LOCAL_PATH := $(call my-dir)
  2. LK_ROOT_DIR := $(PWD)
  3. ifdef LK_PROJECT
  4. LK_DIR := $(LOCAL_PATH)
  5. INSTALLED_LK_TARGET := $(PRODUCT_OUT)/lk.img
  6. INSTALLED_LOGO_TARGET := $(PRODUCT_OUT)/logo.bin
  7. SIGN_LK_TARGET := $(addsuffix -verified$(suffix $(INSTALLED_LK_TARGET)),$(basename $(INSTALLED_LK_TARGET)))
  8. SIGN_LOGO_TARGET := $(addsuffix -verified$(suffix $(INSTALLED_LOGO_TARGET)),$(basename $(INSTALLED_LOGO_TARGET)))
  9. ifeq ($(wildcard $(TARGET_PREBUILT_LK)),)
  10. TARGET_LK_OUT ?= $(TARGET_OUT_INTERMEDIATES)/BOOTLOADER_OBJ
  11. TARGET_LK_ROOT_OUT := $(if $(filter /% ~%,$(TARGET_LK_OUT)),,$(LK_ROOT_DIR)/)$(TARGET_LK_OUT)
  12. BUILT_LK_TARGET := $(TARGET_LK_OUT)/build-$(LK_PROJECT)/lk.img
  13. ifeq ($(LK_CROSS_COMPILE),)
  14. ifeq ($(TARGET_ARCH), arm)
  15. LK_CROSS_COMPILE := $(LK_ROOT_DIR)/$(TARGET_TOOLS_PREFIX)
  16. else ifeq ($(TARGET_2ND_ARCH), arm)
  17. LK_CROSS_COMPILE := $(LK_ROOT_DIR)/$($(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_TOOLS_PREFIX)
  18. endif
  19. endif
  20. LK_MAKE_OPTION := $(if $(SHOW_COMMANDS),NOECHO=) $(if $(LK_CROSS_COMPILE),TOOLCHAIN_PREFIX=$(LK_CROSS_COMPILE)) BOOTLOADER_OUT=$(TARGET_LK_ROOT_OUT) ROOTDIR=$(LK_ROOT_DIR)
  21. LK_MAKE_OPTION += LCM_WIDTH=$(LCM_WIDTH) LCM_HEIGHT=$(LCM_HEIGHT)
  22. LK_MAKE_OPTION += COMPILER=$(LK_ROOT_DIR)/$(SOONG_CLANG)
  23. LK_MAKE_DEPENDENCIES := $(shell find $(LK_DIR) -name .git -prune -o -type f | sort)
  24. LK_MAKE_DEPENDENCIES := $(filter-out %/.git %/.gitignore %/.gitattributes,$(LK_MAKE_DEPENDENCIES))
  25. .KATI_RESTAT: $(BUILT_LK_TARGET)
  26. $(BUILT_LK_TARGET): $(LK_MAKE_DEPENDENCIES)
  27. $(hide) mkdir -p $(dir $@)
  28. $(PREBUILT_MAKE_PREFIX)$(MAKE) -C $(LK_DIR) $(LK_MAKE_OPTION) $(LK_PROJECT)
  29. $(INSTALLED_LK_TARGET): $(BUILT_LK_TARGET) $(MTK_LK_DTB_TARGET)
  30. $(hide) mkdir -p $(dir $@)
  31. $(hide) cat $(BUILT_LK_TARGET) $(MTK_LK_DTB_TARGET) > $@
  32. $(INSTALLED_LOGO_TARGET): $(BUILT_LK_TARGET)
  33. $(hide) mkdir -p $(dir $@)
  34. $(hide) cp -f $(dir $<)$(notdir $@) $@
  35. else
  36. $(INSTALLED_LK_TARGET): $(TARGET_PREBUILT_LK) $(MTK_LK_DTB_TARGET)
  37. $(hide) mkdir -p $(dir $@)
  38. $(hide) cat $^ > $@
  39. $(INSTALLED_LOGO_TARGET): $(dir $(TARGET_PREBUILT_LK))$(notdir $(INSTALLED_LOGO_TARGET))
  40. $(hide) mkdir -p $(dir $@)
  41. $(hide) cp -f $< $@
  42. endif#TARGET_PREBUILT_LK
  43. .PHONY: lk clean-lk check-lk-config check-mtk-config
  44. droidcore: $(INSTALLED_LK_TARGET) $(INSTALLED_LOGO_TARGET) $(SIGN_LK_TARGET) $(SIGN_LOGO_TARGET)
  45. lk: $(INSTALLED_LK_TARGET) $(INSTALLED_LOGO_TARGET) $(SIGN_LK_TARGET) $(SIGN_LOGO_TARGET)
  46. $(SIGN_LK_TARGET) $(SIGN_LOGO_TARGET):
  47. ifeq ($(wildcard $(TARGET_PREBUILT_LK)),)
  48. lk: check-lk-config
  49. clean-lk:
  50. $(hide) rm -rf $(INSTALLED_LK_TARGET) $(INSTALLED_LOGO_TARGET) $(TARGET_LK_OUT)
  51. droid: check-lk-config
  52. check-mtk-config: check-lk-config
  53. check-lk-config:
  54. ifneq (yes,$(strip $(DISABLE_MTK_CONFIG_CHECK)))
  55. python device/mediatek/build/build/tools/check_kernel_config.py -c $(MTK_TARGET_PROJECT_FOLDER)/ProjectConfig.mk -l $(LK_DIR)/project/$(LK_PROJECT).mk -p $(MTK_PROJECT_NAME)
  56. else
  57. -python device/mediatek/build/build/tools/check_kernel_config.py -c $(MTK_TARGET_PROJECT_FOLDER)/ProjectConfig.mk -l $(LK_DIR)/project/$(LK_PROJECT).mk -p $(MTK_PROJECT_NAME)
  58. endif
  59. TARGET_LK_FES_OUT ?= $(TARGET_OUT_INTERMEDIATES)/LK_FES_OBJ
  60. TARGET_LK_FES_ROOT_OUT := $(if $(filter /% ~%,$(TARGET_LK_FES_OUT)),,$(LK_ROOT_DIR)/)$(TARGET_LK_FES_OUT)
  61. BUILT_LK_FES_TARGET := $(TARGET_LK_FES_OUT)/build-$(LK_PROJECT)/lk.img
  62. LK_FES_MAKE_OPTION := $(if $(SHOW_COMMANDS),NOECHO=) $(if $(LK_CROSS_COMPILE),TOOLCHAIN_PREFIX=$(LK_CROSS_COMPILE)) BOOTLOADER_OUT=$(TARGET_LK_FES_OUT) ROOTDIR=$(LK_ROOT_DIR)
  63. LK_FES_MAKE_OPTION += MTK_SECURITY_SW_SUPPORT=no
  64. LK_FES_MAKE_OPTION += CFG_DTB_EARLY_LOADER_SUPPORT=no
  65. LK_FES_MAKE_OPTION += PLATFORM_FASTBOOT_EMPTY_STORAGE=yes
  66. LK_FES_MAKE_OPTION += APPSBOOTHDR_FILES=
  67. .KATI_RESTAT: $(BUILT_LK_FES_TARGET)
  68. $(BUILT_LK_FES_TARGET): $(LK_MAKE_DEPENDENCIES)
  69. $(hide) mkdir -p $(dir $@)
  70. $(PREBUILT_MAKE_PREFIX)$(MAKE) -C $(LK_DIR) $(LK_FES_MAKE_OPTION) $(LK_PROJECT)
  71. endif#TARGET_PREBUILT_LK
  72. endif#LK_PROJECT