blob: 51c1d6e622e6138a3083eed2ebc90b0db0eef643 [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
Maria Yuf12a3612017-06-27 11:28:16 +080015ifneq ($(wildcard $(SDCLANG_PATH_2)),)
Ashwini Muduganti36db63f2017-12-12 14:20:38 -080016 ifeq ($(shell echo $(SDCLANG_PATH_2) | head -c 1),/)
17 CLANG_BIN := $(SDCLANG_PATH_2)/
18 else
19 CLANG_BIN := $(ANDROID_BUILD_TOP)/$(SDCLANG_PATH_2)/
20 endif
lijuang65c51d52018-03-28 13:52:57 +080021
22 ABL_USE_SDLLVM := true
Maria Yuf12a3612017-06-27 11:28:16 +080023endif
Sridhar Parasuramfedf9ac2015-11-03 16:20:50 -080024
Sridhar Parasuramfedf9ac2015-11-03 16:20:50 -080025ifeq ($(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SUPPORTS_VERITY),true)
26 VERIFIED_BOOT := VERIFIED_BOOT=1
27else
28 VERIFIED_BOOT := VERIFIED_BOOT=0
Sridhar Parasuramfedf9ac2015-11-03 16:20:50 -080029endif
30
Mukesh Ojha8dc65f52018-03-27 00:59:30 +053031ifeq ($(BOARD_BUILD_SYSTEM_ROOT_IMAGE),true)
32 BUILD_SYSTEM_ROOT_IMAGE := BUILD_SYSTEM_ROOT_IMAGE=1
33else
34 BUILD_SYSTEM_ROOT_IMAGE := BUILD_SYSTEM_ROOT_IMAGE=0
35endif
36
Shivaprasad Hongal3860bbf2017-04-27 17:40:13 -070037ifeq ($(BOARD_AVB_ENABLE),true)
38 VERIFIED_BOOT_2 := VERIFIED_BOOT_2=1
39else
40 VERIFIED_BOOT_2 := VERIFIED_BOOT_2=0
41endif
42
Zhen Kongdd5c5e32017-07-05 13:44:45 -070043ifeq ($(BOARD_LEVB_ENABLE),true)
44 VERIFIED_BOOT_LE := VERIFIED_BOOT_LE=1
45else
46 VERIFIED_BOOT_LE := VERIFIED_BOOT_LE=0
47endif
48
Sridhar Parasuramfedf9ac2015-11-03 16:20:50 -080049ifeq ($(TARGET_BUILD_VARIANT),user)
Vijay Kumar Pendoti9946e042016-09-16 17:38:51 +053050 USER_BUILD_VARIANT := USER_BUILD_VARIANT=1
51else
52 USER_BUILD_VARIANT := USER_BUILD_VARIANT=0
Sridhar Parasuramfedf9ac2015-11-03 16:20:50 -080053endif
54
Maria Yu3a174b82017-06-23 19:33:26 +080055# For most platform, abl needed always be built
56# in aarch64 arthitecture to run.
57# Specify BOOTLOADER_ARCH if needed to built with
58# other ARCHs.
59ifeq ($(BOOTLOADER_ARCH),)
60 BOOTLOADER_ARCH := AARCH64
61endif
62TARGET_ARCHITECTURE := $(BOOTLOADER_ARCH)
63
Jeevan Shriramd29e4402017-11-06 14:04:11 -080064ifeq ($(TARGET_ARCHITECTURE),arm)
65 CLANG35_PREFIX := $(ANDROID_BUILD_TOP)/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-$(TARGET_GCC_VERSION)/bin/arm-linux-androideabi-
66 CLANG35_GCC_TOOLCHAIN := $(ANDROID_BUILD_TOP)/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-$(TARGET_GCC_VERSION)
67else
68 CLANG35_PREFIX := $(ANDROID_BUILD_TOP)/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-$(TARGET_GCC_VERSION)/bin/aarch64-linux-android-
69 CLANG35_GCC_TOOLCHAIN := $(ANDROID_BUILD_TOP)/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-$(TARGET_GCC_VERSION)
70endif
71
72
Sridhar Parasuramfedf9ac2015-11-03 16:20:50 -080073# ABL ELF output
74TARGET_ABL := $(PRODUCT_OUT)/abl.elf
Channagoud Kadabi9dff4e22016-02-10 11:19:49 -080075TARGET_EMMC_BOOTLOADER := $(TARGET_ABL)
Sridhar Parasuramfedf9ac2015-11-03 16:20:50 -080076ABL_OUT := $(TARGET_OUT_INTERMEDIATES)/ABL_OBJ
77
78abl_clean:
79 $(hide) rm -f $(TARGET_ABL)
80
81$(ABL_OUT):
82 mkdir -p $(ABL_OUT)
83
84# Top level target
85$(TARGET_ABL): abl_clean | $(ABL_OUT) $(INSTALLED_KEYSTOREIMAGE_TARGET)
Jeevan Shriramd29e4402017-11-06 14:04:11 -080086 $(MAKE) -C bootable/bootloader/edk2 \
87 BOOTLOADER_OUT=../../../$(ABL_OUT) \
88 all \
Mukesh Ojha8dc65f52018-03-27 00:59:30 +053089 $(BUILD_SYSTEM_ROOT_IMAGE) \
Jeevan Shriramd29e4402017-11-06 14:04:11 -080090 $(VERIFIED_BOOT) \
91 $(VERIFIED_BOOT_2) \
Zhen Kongdd5c5e32017-07-05 13:44:45 -070092 $(VERIFIED_BOOT_LE) \
Jeevan Shriramd29e4402017-11-06 14:04:11 -080093 $(USER_BUILD_VARIANT) \
94 CLANG_BIN=$(CLANG_BIN) \
95 CLANG_PREFIX=$(CLANG35_PREFIX)\
lijuang65c51d52018-03-28 13:52:57 +080096 ABL_USE_SDLLVM=$(ABL_USE_SDLLVM) \
Jeevan Shriramd29e4402017-11-06 14:04:11 -080097 CLANG_GCC_TOOLCHAIN=$(CLANG35_GCC_TOOLCHAIN)\
98 TARGET_ARCHITECTURE=$(TARGET_ARCHITECTURE)
Sridhar Parasuramfedf9ac2015-11-03 16:20:50 -080099