blob: 0e879be20d6f8490e7d6c66b23400d44cd213d43 [file] [log] [blame]
Jeevan Shriram062058c2016-11-07 16:46:44 -08001#Android makefile to build bootloader as a part of Android Build
lijuang65c51d52018-03-28 13:52:57 +08002CLANG_BIN := $(ANDROID_BUILD_TOP)/$(LLVM_PREBUILTS_PATH)/
3ABL_USE_SDLLVM := false
4
5ifneq ($(wildcard $(SDCLANG_PATH)),)
6 ifeq ($(shell echo $(SDCLANG_PATH) | head -c 1),/)
7 CLANG_BIN := $(SDCLANG_PATH)/
8 else
9 CLANG_BIN := $(ANDROID_BUILD_TOP)/$(SDCLANG_PATH)/
10 endif
11
12 ABL_USE_SDLLVM := true
Ashwini Muduganti36db63f2017-12-12 14:20:38 -080013endif
14
Mukesh Ojhad29676a2018-04-10 17:37:56 +053015DISABLE_PARALLEL_DOWNLOAD_FLASH := DISABLE_PARALLEL_DOWNLOAD_FLASH=0
Sridhar Parasuramfedf9ac2015-11-03 16:20:50 -080016ifeq ($(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SUPPORTS_VERITY),true)
17 VERIFIED_BOOT := VERIFIED_BOOT=1
18else
19 VERIFIED_BOOT := VERIFIED_BOOT=0
Sridhar Parasuramfedf9ac2015-11-03 16:20:50 -080020endif
21
Mukesh Ojha8dc65f52018-03-27 00:59:30 +053022ifeq ($(BOARD_BUILD_SYSTEM_ROOT_IMAGE),true)
23 BUILD_SYSTEM_ROOT_IMAGE := BUILD_SYSTEM_ROOT_IMAGE=1
24else
25 BUILD_SYSTEM_ROOT_IMAGE := BUILD_SYSTEM_ROOT_IMAGE=0
26endif
27
Shivaprasad Hongal3860bbf2017-04-27 17:40:13 -070028ifeq ($(BOARD_AVB_ENABLE),true)
29 VERIFIED_BOOT_2 := VERIFIED_BOOT_2=1
30else
31 VERIFIED_BOOT_2 := VERIFIED_BOOT_2=0
32endif
33
Zhen Kongdd5c5e32017-07-05 13:44:45 -070034ifeq ($(BOARD_LEVB_ENABLE),true)
35 VERIFIED_BOOT_LE := VERIFIED_BOOT_LE=1
36else
37 VERIFIED_BOOT_LE := VERIFIED_BOOT_LE=0
38endif
39
Sridhar Parasuramfedf9ac2015-11-03 16:20:50 -080040ifeq ($(TARGET_BUILD_VARIANT),user)
Vijay Kumar Pendoti9946e042016-09-16 17:38:51 +053041 USER_BUILD_VARIANT := USER_BUILD_VARIANT=1
42else
43 USER_BUILD_VARIANT := USER_BUILD_VARIANT=0
Sridhar Parasuramfedf9ac2015-11-03 16:20:50 -080044endif
45
Jeevan Shriramd5d169f2018-04-20 16:09:10 -070046ifneq ($(TARGET_BOOTLOADER_BOARD_NAME),)
47 BOARD_BOOTLOADER_PRODUCT_NAME := $(TARGET_BOOTLOADER_BOARD_NAME)
48else
49 BOARD_BOOTLOADER_PRODUCT_NAME := QC_Reference_Phone
50endif
51
Venkata Narendra Kumar Gutta688a1612018-04-18 17:12:50 -070052ifeq ($(BOARD_ABL_SAFESTACK_DISABLE),true)
53 ABL_SAFESTACK := false
54else
55 ABL_SAFESTACK := true
56endif
57
58SAFESTACK_SUPPORTED_CLANG_VERSION = 6.0
59
Maria Yu3a174b82017-06-23 19:33:26 +080060# For most platform, abl needed always be built
61# in aarch64 arthitecture to run.
62# Specify BOOTLOADER_ARCH if needed to built with
63# other ARCHs.
64ifeq ($(BOOTLOADER_ARCH),)
65 BOOTLOADER_ARCH := AARCH64
66endif
67TARGET_ARCHITECTURE := $(BOOTLOADER_ARCH)
68
Jeevan Shriramd29e4402017-11-06 14:04:11 -080069ifeq ($(TARGET_ARCHITECTURE),arm)
70 CLANG35_PREFIX := $(ANDROID_BUILD_TOP)/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-$(TARGET_GCC_VERSION)/bin/arm-linux-androideabi-
71 CLANG35_GCC_TOOLCHAIN := $(ANDROID_BUILD_TOP)/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-$(TARGET_GCC_VERSION)
72else
73 CLANG35_PREFIX := $(ANDROID_BUILD_TOP)/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-$(TARGET_GCC_VERSION)/bin/aarch64-linux-android-
74 CLANG35_GCC_TOOLCHAIN := $(ANDROID_BUILD_TOP)/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-$(TARGET_GCC_VERSION)
75endif
76
77
Sridhar Parasuramfedf9ac2015-11-03 16:20:50 -080078# ABL ELF output
79TARGET_ABL := $(PRODUCT_OUT)/abl.elf
Channagoud Kadabi9dff4e22016-02-10 11:19:49 -080080TARGET_EMMC_BOOTLOADER := $(TARGET_ABL)
Sridhar Parasuramfedf9ac2015-11-03 16:20:50 -080081ABL_OUT := $(TARGET_OUT_INTERMEDIATES)/ABL_OBJ
82
83abl_clean:
84 $(hide) rm -f $(TARGET_ABL)
85
86$(ABL_OUT):
87 mkdir -p $(ABL_OUT)
88
89# Top level target
90$(TARGET_ABL): abl_clean | $(ABL_OUT) $(INSTALLED_KEYSTOREIMAGE_TARGET)
Jeevan Shriramd29e4402017-11-06 14:04:11 -080091 $(MAKE) -C bootable/bootloader/edk2 \
92 BOOTLOADER_OUT=../../../$(ABL_OUT) \
93 all \
Mukesh Ojha8dc65f52018-03-27 00:59:30 +053094 $(BUILD_SYSTEM_ROOT_IMAGE) \
Jeevan Shriramd29e4402017-11-06 14:04:11 -080095 $(VERIFIED_BOOT) \
96 $(VERIFIED_BOOT_2) \
Zhen Kongdd5c5e32017-07-05 13:44:45 -070097 $(VERIFIED_BOOT_LE) \
Jeevan Shriramd29e4402017-11-06 14:04:11 -080098 $(USER_BUILD_VARIANT) \
Mukesh Ojhad29676a2018-04-10 17:37:56 +053099 $(DISABLE_PARALLEL_DOWNLOAD_FLASH) \
Jeevan Shriramd29e4402017-11-06 14:04:11 -0800100 CLANG_BIN=$(CLANG_BIN) \
101 CLANG_PREFIX=$(CLANG35_PREFIX)\
lijuang65c51d52018-03-28 13:52:57 +0800102 ABL_USE_SDLLVM=$(ABL_USE_SDLLVM) \
Venkata Narendra Kumar Gutta688a1612018-04-18 17:12:50 -0700103 ABL_SAFESTACK=$(ABL_SAFESTACK) \
104 SAFESTACK_SUPPORTED_CLANG_VERSION=$(SAFESTACK_SUPPORTED_CLANG_VERSION) \
Jeevan Shriramd29e4402017-11-06 14:04:11 -0800105 CLANG_GCC_TOOLCHAIN=$(CLANG35_GCC_TOOLCHAIN)\
Jeevan Shriramd5d169f2018-04-20 16:09:10 -0700106 TARGET_ARCHITECTURE=$(TARGET_ARCHITECTURE) \
107 BOARD_BOOTLOADER_PRODUCT_NAME=$(BOARD_BOOTLOADER_PRODUCT_NAME)
Sridhar Parasuramfedf9ac2015-11-03 16:20:50 -0800108