99 lines
3.5 KiB
Makefile
99 lines
3.5 KiB
Makefile
#Android makefile to build lk bootloader as a part of Android Build
|
|
|
|
ifndef 2ND_TARGET_GCC_VERSION
|
|
CROSS_COMPILE := ../../../prebuilts/gcc/linux-x86/arm/arm-eabi-$(TARGET_GCC_VERSION)/bin/arm-eabi-
|
|
else
|
|
CROSS_COMPILE := ../../../prebuilts/gcc/linux-x86/arm/arm-eabi-$(2ND_TARGET_GCC_VERSION)/bin/arm-eabi-
|
|
endif
|
|
|
|
# Set flags if we need to include security libs
|
|
ifeq ($(TARGET_BOOTIMG_SIGNED),true)
|
|
SIGNED_KERNEL := SIGNED_KERNEL=1
|
|
else
|
|
SIGNED_KERNEL := SIGNED_KERNEL=0
|
|
endif
|
|
|
|
ifeq ($(BOOTLOADER_PLATFORM),)
|
|
BOOTLOADER_PLATFORM := $(TARGET_BOARD_PLATFORM)
|
|
endif
|
|
|
|
ifeq ($(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SUPPORTS_VERITY),true)
|
|
VERIFIED_BOOT := VERIFIED_BOOT=1
|
|
else
|
|
VERIFIED_BOOT := VERIFIED_BOOT=0
|
|
endif
|
|
|
|
ifneq ($(TARGET_BUILD_VARIANT),user)
|
|
DEVICE_STATUS := DEFAULT_UNLOCK=true
|
|
endif
|
|
|
|
ifeq ($(TARGET_BUILD_VARIANT),user)
|
|
BUILD_VARIANT := USER_BUILD_VARIANT=true
|
|
endif
|
|
|
|
ifeq ($(TARGET_BOARD_PLATFORM),msm8660)
|
|
BOOTLOADER_PLATFORM := msm8660_surf
|
|
endif
|
|
|
|
ABOOT_OUT := $(TARGET_OUT_INTERMEDIATES)/ABOOT_OBJ
|
|
$(ABOOT_OUT):
|
|
$(hide) mkdir -p $(ABOOT_OUT)
|
|
|
|
ABOOT_CLEAN:
|
|
$(hide) rm -f $(TARGET_ABOOT_ELF)
|
|
|
|
# ELF binary for ABOOT
|
|
TARGET_ABOOT_ELF := $(PRODUCT_OUT)/aboot.elf
|
|
$(TARGET_ABOOT_ELF): ABOOT_CLEAN | $(ABOOT_OUT)
|
|
$(MAKE) -C bootable/bootloader/lk TOOLCHAIN_PREFIX=$(CROSS_COMPILE) BOOTLOADER_OUT=../../../$(ABOOT_OUT) $(BOOTLOADER_PLATFORM) $(EMMC_BOOT) $(SIGNED_KERNEL) $(VERIFIED_BOOT) $(DEVICE_STATUS) $(BUILD_VARIANT)
|
|
|
|
# NAND variant output
|
|
TARGET_NAND_BOOTLOADER := $(PRODUCT_OUT)/appsboot.mbn
|
|
NAND_BOOTLOADER_OUT := $(TARGET_OUT_INTERMEDIATES)/NAND_BOOTLOADER_OBJ
|
|
|
|
# Remove bootloader binary to trigger recompile when source changes
|
|
appsbootldr_clean:
|
|
$(hide) rm -f $(TARGET_NAND_BOOTLOADER)
|
|
|
|
$(NAND_BOOTLOADER_OUT):
|
|
mkdir -p $(NAND_BOOTLOADER_OUT)
|
|
|
|
# eMMC variant output
|
|
TARGET_EMMC_BOOTLOADER := $(PRODUCT_OUT)/emmc_appsboot.mbn
|
|
EMMC_BOOTLOADER_OUT := $(TARGET_OUT_INTERMEDIATES)/EMMC_BOOTLOADER_OBJ
|
|
|
|
emmc_appsbootldr_clean:
|
|
$(hide) rm -f $(TARGET_EMMC_BOOTLOADER)
|
|
|
|
$(EMMC_BOOTLOADER_OUT):
|
|
mkdir -p $(EMMC_BOOTLOADER_OUT)
|
|
|
|
# Top level for NAND variant targets
|
|
$(TARGET_NAND_BOOTLOADER): appsbootldr_clean | $(NAND_BOOTLOADER_OUT)
|
|
$(MAKE) -C bootable/bootloader/lk TOOLCHAIN_PREFIX=$(CROSS_COMPILE) BOOTLOADER_OUT=../../../$(NAND_BOOTLOADER_OUT) $(BOOTLOADER_PLATFORM) $(SIGNED_KERNEL)
|
|
|
|
# Top level for eMMC variant targets
|
|
$(TARGET_EMMC_BOOTLOADER): emmc_appsbootldr_clean | $(EMMC_BOOTLOADER_OUT) $(INSTALLED_KEYSTOREIMAGE_TARGET)
|
|
$(MAKE) -C bootable/bootloader/lk TOOLCHAIN_PREFIX=$(CROSS_COMPILE) BOOTLOADER_OUT=../../../$(EMMC_BOOTLOADER_OUT) $(BOOTLOADER_PLATFORM) EMMC_BOOT=1 $(SIGNED_KERNEL) $(VERIFIED_BOOT) $(DEVICE_STATUS) $(BUILD_VARIANT)
|
|
|
|
# Keep build NAND & eMMC as default for targets still using TARGET_BOOTLOADER
|
|
TARGET_BOOTLOADER := $(PRODUCT_OUT)/EMMCBOOT.MBN
|
|
$(TARGET_BOOTLOADER): $(NAND_BOOTLOADER_OUT) $(EMMC_BOOTLOADER_OUT) | $(TARGET_NAND_BOOTLOADER) $(TARGET_EMMC_BOOTLOADER)
|
|
|
|
#
|
|
# Build nandwrite as a part of Android Build for NAND configurations
|
|
#
|
|
TARGET_NANDWRITE := $(PRODUCT_OUT)/obj/nandwrite/build-$(BOOTLOADER_PLATFORM)_nandwrite/lk
|
|
NANDWRITE_OUT := $(TARGET_OUT_INTERMEDIATES)/nandwrite
|
|
|
|
nandwrite_clean:
|
|
$(hide) rm -f $(TARGET_NANDWRITE)
|
|
$(hide) rm -rf $(NANDWRITE_OUT)
|
|
|
|
$(NANDWRITE_OUT):
|
|
mkdir -p $(NANDWRITE_OUT)
|
|
|
|
$(TARGET_NANDWRITE): nandwrite_clean | $(NANDWRITE_OUT)
|
|
@echo $(BOOTLOADER_PLATFORM)_nandwrite
|
|
$(MAKE) -C bootable/bootloader/lk TOOLCHAIN_PREFIX=$(CROSS_COMPILE) BOOTLOADER_OUT=../../../$(NANDWRITE_OUT) $(BOOTLOADER_PLATFORM)_nandwrite BUILD_NANDWRITE=1
|