build_preloader.mk 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. ifneq (,$(PL_MODE))
  2. PRELOADER_OUT := $(TARGET_OUT_INTERMEDIATES)/PRELOADER_$(PL_MODE)_OBJ
  3. INSTALLED_PRELOADER_TARGET := $(PRODUCT_OUT)/preloader_$(PRELOADER_TARGET_PRODUCT)_$(PL_MODE).bin
  4. BUILT_PRELOADER_TARGET := $(PRELOADER_OUT)/bin/preloader_$(PRELOADER_TARGET_PRODUCT)_$(PL_MODE).bin
  5. PRELOADER_BIN := $(PRODUCT_OUT)/preloader_$(PL_MODE).bin
  6. TARGET_PRELOADER := $(PRODUCT_OUT)/preloader_$(PL_MODE).img
  7. MTK_OTA_PREPROCESS_EXTRA_IMAGES := $(MTK_OTA_PREPROCESS_EXTRA_IMAGES) $(notdir $(TARGET_PRELOADER))
  8. BOARD_PACK_RADIOIMAGES := $(BOARD_PACK_RADIOIMAGES) $(notdir $(TARGET_PRELOADER))
  9. INSTALLED_RADIOIMAGE_TARGET := $(INSTALLED_RADIOIMAGE_TARGET) $(TARGET_PRELOADER)
  10. ifeq ($(CFG_PRELOADER_EXTENSION), 1)
  11. BUILT_LOADER_EXT_TARGET := $(PRELOADER_OUT)/bin/loader_ext.img
  12. INSTALLED_LOADER_EXT_TARGET := $(PRODUCT_OUT)/loader_ext_$(PL_MODE).img
  13. SIGN_LOADER_EXT_TARGET := $(addsuffix -verified$(suffix $(INSTALLED_LOADER_EXT_TARGET)),$(basename $(INSTALLED_LOADER_EXT_TARGET)))
  14. endif
  15. else
  16. PRELOADER_OUT := $(TARGET_OUT_INTERMEDIATES)/PRELOADER_OBJ
  17. INSTALLED_PRELOADER_TARGET := $(PRODUCT_OUT)/preloader_$(PRELOADER_TARGET_PRODUCT).bin
  18. BUILT_PRELOADER_TARGET := $(PRELOADER_OUT)/bin/preloader_$(PRELOADER_TARGET_PRODUCT).bin
  19. PRELOADER_BIN := $(PRODUCT_OUT)/preloader.bin
  20. TARGET_PRELOADER := $(PRODUCT_OUT)/preloader.img
  21. MTK_OTA_PREPROCESS_EXTRA_IMAGES := $(MTK_OTA_PREPROCESS_EXTRA_IMAGES) $(notdir $(TARGET_PRELOADER))
  22. BOARD_PACK_RADIOIMAGES := $(BOARD_PACK_RADIOIMAGES) $(notdir $(TARGET_PRELOADER))
  23. INSTALLED_RADIOIMAGE_TARGET := $(INSTALLED_RADIOIMAGE_TARGET) $(TARGET_PRELOADER) $(INSTALLED_PRELOADER_TARGET)
  24. ifeq ($(CFG_PRELOADER_EXTENSION), 1)
  25. BUILT_LOADER_EXT_TARGET := $(PRELOADER_OUT)/bin/loader_ext.img
  26. INSTALLED_LOADER_EXT_TARGET := $(PRODUCT_OUT)/loader_ext.img
  27. SIGN_LOADER_EXT_TARGET := $(addsuffix -verified$(suffix $(INSTALLED_LOADER_EXT_TARGET)),$(basename $(INSTALLED_LOADER_EXT_TARGET)))
  28. endif
  29. INSTALLED_EFUSE_IMAGE_TARGET := $(PRODUCT_OUT)/efuse.img
  30. BUILT_EFUSE_IMAGE_TARGET := $(PRELOADER_OUT)/bin/efuse.img
  31. endif
  32. PRELOADER_ROOT_OUT := $(if $(filter /% ~%,$(PRELOADER_OUT)),,$(PRELOADER_ROOT_DIR)/)$(PRELOADER_OUT)
  33. PRELOADER_MAKE_OPTION := $(if $(SHOW_COMMANDS),,-s) -f Makefile $(if $(PRELOADER_CROSS_COMPILE),CROSS_COMPILE=$(PRELOADER_CROSS_COMPILE)) PRELOADER_OUT=$(PRELOADER_ROOT_OUT) MTK_PROJECT=$(PRELOADER_TARGET_PRODUCT) TOOL_PATH=$(PRELOADER_ROOT_DIR)/device/mediatek/build/build/tools ROOTDIR=$(PRELOADER_ROOT_DIR) PL_MODE=$(PL_MODE)
  34. ifdef PERL
  35. PRELOADER_MAKE_OPTION += PERL=$(abspath $(PERL))
  36. endif
  37. ifeq ($(wildcard $(TARGET_PREBUILT_PRELOADER)),)
  38. PRELOADER_MAKE_DEPENDENCIES := $(shell find $(PRELOADER_DIR) -name .git -prune -o -type f | sort)
  39. PRELOADER_MAKE_DEPENDENCIES := $(filter-out %/.git %/.gitignore %/.gitattributes,$(PRELOADER_MAKE_DEPENDENCIES))
  40. .KATI_RESTAT: $(BUILT_PRELOADER_TARGET)
  41. $(BUILT_PRELOADER_TARGET): PRIVATE_PRELOADER_MAKE_OPTION := $(PRELOADER_MAKE_OPTION)
  42. $(BUILT_PRELOADER_TARGET): $(PRELOADER_MAKE_DEPENDENCIES)
  43. $(hide) mkdir -p $(dir $@)
  44. $(PREBUILT_MAKE_PREFIX)$(MAKE) -C $(PRELOADER_DIR) $(PRIVATE_PRELOADER_MAKE_OPTION)
  45. endif#TARGET_PREBUILT_PRELOADER
  46. ifneq ($(INSTALLED_PRELOADER_TARGET),$(BUILT_PRELOADER_TARGET))
  47. $(INSTALLED_PRELOADER_TARGET): $(BUILT_PRELOADER_TARGET) | $(ACP)
  48. $(copy-file-to-target)
  49. endif
  50. $(PRELOADER_BIN): $(INSTALLED_PRELOADER_TARGET)
  51. $(hide) mkdir -p $(dir $@)
  52. $(hide) cp -f $< $@
  53. $(TARGET_PRELOADER): PRIVATE_INSTALLED_PRELOADER_TARGET := $(INSTALLED_PRELOADER_TARGET)
  54. $(TARGET_PRELOADER): $(INSTALLED_PRELOADER_TARGET) $(PRELOADER_DIR)/tools/gen-preloader-img.py
  55. ifneq ("$(wildcard $(PRELOADER_HEADER_BLOCK))","")
  56. cat $(PRELOADER_HEADER_BLOCK) $(PRIVATE_INSTALLED_PRELOADER_TARGET) > $@
  57. else
  58. $(hide) $(PRELOADER_DIR)/tools/gen-preloader-img.py $< $@
  59. endif
  60. ifeq (,$(PL_MODE))
  61. ifneq ($(wildcard $(PRELOADER_UFS_HEADER_BLOCK)),)
  62. preloader pl: $(PRODUCT_OUT)/preloader_ufs.img
  63. $(PRODUCT_OUT)/preloader_ufs.img: $(PRELOADER_UFS_HEADER_BLOCK) $(INSTALLED_PRELOADER_TARGET)
  64. $(hide) mkdir -p $(dir $@)
  65. $(hide) cat $^ > $@
  66. endif
  67. ifneq ($(wildcard $(PRELOADER_EMMC_HEADER_BLOCK)),)
  68. preloader pl: $(PRODUCT_OUT)/preloader_emmc.img
  69. $(PRODUCT_OUT)/preloader_emmc.img: $(PRELOADER_EMMC_HEADER_BLOCK) $(INSTALLED_PRELOADER_TARGET)
  70. $(hide) mkdir -p $(dir $@)
  71. $(hide) cat $^ > $@
  72. endif
  73. endif
  74. preloader pl: $(INSTALLED_PRELOADER_TARGET) $(TARGET_PRELOADER) $(PRELOADER_BIN) $(INSTALLED_LOADER_EXT_TARGET) $(SIGN_LOADER_EXT_TARGET)
  75. $(SIGN_LOADER_EXT_TARGET):
  76. ifeq ($(CFG_PRELOADER_EXTENSION), 1)
  77. $(INSTALLED_LOADER_EXT_TARGET): PRIVATE_BUILT_LOADER_EXT_TARGET := $(BUILT_LOADER_EXT_TARGET)
  78. $(INSTALLED_LOADER_EXT_TARGET): $(BUILT_PRELOADER_TARGET)
  79. $(hide) cp -f $(PRIVATE_BUILT_LOADER_EXT_TARGET) $@
  80. endif
  81. ifeq (,$(PL_MODE))
  82. preloader pl: $(INSTALLED_EFUSE_IMAGE_TARGET)
  83. $(INSTALLED_EFUSE_IMAGE_TARGET): $(BUILT_PRELOADER_TARGET)
  84. $(hide) if [ -f $(BUILT_EFUSE_IMAGE_TARGET) ]; then cp -f $(BUILT_EFUSE_IMAGE_TARGET) $@; fi
  85. endif
  86. ifneq (,$(PL_MODE))
  87. .PHONY: clean-preloader-$(PL_MODE)
  88. clean-preloader: clean-preloader-$(PL_MODE)
  89. clean-preloader-$(PL_MODE): PRIVATE_INSTALLED_PRELOADER_TARGET := $(INSTALLED_PRELOADER_TARGET)
  90. clean-preloader-$(PL_MODE): PRIVATE_TARGET_PRELOADER := $(TARGET_PRELOADER)
  91. clean-preloader-$(PL_MODE): PRIVATE_PRELOADER_OUT := $(PRELOADER_OUT)
  92. clean-preloader-$(PL_MODE):
  93. $(hide) rm -rf $(PRIVATE_INSTALLED_PRELOADER_TARGET) $(PRIVATE_TARGET_PRELOADER) $(PRIVATE_PRELOADER_OUT) $(INSTALLED_LOADER_EXT_TARGET)
  94. else
  95. .PHONY: clean-preloader-normal
  96. clean-preloader: clean-preloader-normal
  97. clean-preloader-normal: PRIVATE_INSTALLED_PRELOADER_TARGET := $(INSTALLED_PRELOADER_TARGET)
  98. clean-preloader-normal: PRIVATE_TARGET_PRELOADER := $(TARGET_PRELOADER)
  99. clean-preloader-normal: PRIVATE_PRELOADER_OUT := $(PRELOADER_OUT)
  100. clean-preloader-normal:
  101. $(hide) rm -rf $(PRIVATE_INSTALLED_PRELOADER_TARGET) $(PRIVATE_TARGET_PRELOADER) $(PRIVATE_PRELOADER_OUT) $(INSTALLED_LOADER_EXT_TARGET)
  102. endif