AndroidBoot.mk 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. #Android makefile to build lk bootloader as a part of Android Build
  2. ifeq ($(call is-android-codename,HONEYCOMB),true)
  3. CROSS_TOOL := ../../../prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-
  4. else ifeq ($(call is-android-codename,ICECREAM_SANDWICH),true)
  5. CROSS_TOOL := ../../../prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-
  6. else
  7. CROSS_TOOL := ../../../prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi-
  8. endif
  9. # Set flags if we need to include security libs
  10. ifeq ($(TARGET_BOOTIMG_SIGNED),true)
  11. SIGNED_KERNEL := SIGNED_KERNEL=1
  12. else
  13. SIGNED_KERNEL := SIGNED_KERNEL=0
  14. endif
  15. # NAND variant output
  16. TARGET_NAND_BOOTLOADER := $(PRODUCT_OUT)/appsboot.mbn
  17. NAND_BOOTLOADER_OUT := $(TARGET_OUT_INTERMEDIATES)/NAND_BOOTLOADER_OBJ
  18. # Remove bootloader binary to trigger recompile when source changes
  19. appsbootldr_clean:
  20. $(hide) rm -f $(TARGET_NAND_BOOTLOADER)
  21. $(NAND_BOOTLOADER_OUT):
  22. mkdir -p $(NAND_BOOTLOADER_OUT)
  23. # eMMC variant output
  24. TARGET_EMMC_BOOTLOADER := $(PRODUCT_OUT)/emmc_appsboot.mbn
  25. EMMC_BOOTLOADER_OUT := $(TARGET_OUT_INTERMEDIATES)/EMMC_BOOTLOADER_OBJ
  26. emmc_appsbootldr_clean:
  27. $(hide) rm -f $(TARGET_EMMC_BOOTLOADER)
  28. $(EMMC_BOOTLOADER_OUT):
  29. mkdir -p $(EMMC_BOOTLOADER_OUT)
  30. # Top level for NAND variant targets
  31. $(TARGET_NAND_BOOTLOADER): appsbootldr_clean | $(NAND_BOOTLOADER_OUT)
  32. $(MAKE) -C vendor/mediatek/proprietary/bootable/bootloader/lk TOOLCHAIN_PREFIX=$(CROSS_TOOL) BOOTLOADER_OUT=../../../$(NAND_BOOTLOADER_OUT) $(TARGET_PRODUCT) $(SIGNED_KERNEL)
  33. # Top level for eMMC variant targets
  34. $(TARGET_EMMC_BOOTLOADER): emmc_appsbootldr_clean | $(EMMC_BOOTLOADER_OUT)
  35. $(MAKE) -C vendor/mediatek/proprietary/bootable/bootloader/lk TOOLCHAIN_PREFIX=$(CROSS_TOOL) BOOTLOADER_OUT=../../../$(EMMC_BOOTLOADER_OUT) $(TARGET_PRODUCT) EMMC_BOOT=1 $(SIGNED_KERNEL)
  36. # Keep build NAND & eMMC as default for targets still using TARGET_BOOTLOADER
  37. TARGET_BOOTLOADER := $(PRODUCT_OUT)/EMMCBOOT.MBN
  38. $(TARGET_BOOTLOADER): $(NAND_BOOTLOADER_OUT) $(EMMC_BOOTLOADER_OUT) | $(TARGET_NAND_BOOTLOADER) $(TARGET_EMMC_BOOTLOADER)
  39. #
  40. # Build nandwrite as a part of Android Build for NAND configurations
  41. #
  42. TARGET_NANDWRITE := $(PRODUCT_OUT)/obj/nandwrite/build-$(TARGET_PRODUCT)_nandwrite/lk
  43. NANDWRITE_OUT := $(TARGET_OUT_INTERMEDIATES)/nandwrite
  44. nandwrite_clean:
  45. $(hide) rm -f $(TARGET_NANDWRITE)
  46. $(hide) rm -rf $(NANDWRITE_OUT)
  47. $(NANDWRITE_OUT):
  48. mkdir -p $(NANDWRITE_OUT)
  49. $(TARGET_NANDWRITE): nandwrite_clean | $(NANDWRITE_OUT)
  50. @echo $(TARGET_PRODUCT)_nandwrite
  51. $(MAKE) -C vendor/mediatek/proprietary/bootable/bootloader/lk TOOLCHAIN_PREFIX=$(CROSS_TOOL) BOOTLOADER_OUT=../../../$(NANDWRITE_OUT) $(TARGET_PRODUCT)_nandwrite BUILD_NANDWRITE=1