blob: 87b783dc57bb65ea3cdbc8b3aca329d4e524a3ac [file] [log] [blame]
Jeevan Shriram062058c2016-11-07 16:46:44 -08001#Android makefile to build bootloader as a part of Android Build
Maria Yuf12a3612017-06-27 11:28:16 +08002CLANG_BIN := $(ANDROID_BUILD_TOP)/$(SDCLANG_PATH)/
3ifneq ($(wildcard $(SDCLANG_PATH_2)),)
4 CLANG_BIN := $(ANDROID_BUILD_TOP)/$(SDCLANG_PATH_2)/
5endif
Sridhar Parasuramfedf9ac2015-11-03 16:20:50 -08006
Sridhar Parasuramfedf9ac2015-11-03 16:20:50 -08007ifeq ($(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SUPPORTS_VERITY),true)
8 VERIFIED_BOOT := VERIFIED_BOOT=1
9else
10 VERIFIED_BOOT := VERIFIED_BOOT=0
Sridhar Parasuramfedf9ac2015-11-03 16:20:50 -080011endif
12
Shivaprasad Hongal3860bbf2017-04-27 17:40:13 -070013ifeq ($(BOARD_AVB_ENABLE),true)
14 VERIFIED_BOOT_2 := VERIFIED_BOOT_2=1
15else
16 VERIFIED_BOOT_2 := VERIFIED_BOOT_2=0
17endif
18
Sridhar Parasuramfedf9ac2015-11-03 16:20:50 -080019ifeq ($(TARGET_BUILD_VARIANT),user)
Vijay Kumar Pendoti9946e042016-09-16 17:38:51 +053020 USER_BUILD_VARIANT := USER_BUILD_VARIANT=1
21else
22 USER_BUILD_VARIANT := USER_BUILD_VARIANT=0
Sridhar Parasuramfedf9ac2015-11-03 16:20:50 -080023endif
24
Maria Yu3a174b82017-06-23 19:33:26 +080025# For most platform, abl needed always be built
26# in aarch64 arthitecture to run.
27# Specify BOOTLOADER_ARCH if needed to built with
28# other ARCHs.
29ifeq ($(BOOTLOADER_ARCH),)
30 BOOTLOADER_ARCH := AARCH64
31endif
32TARGET_ARCHITECTURE := $(BOOTLOADER_ARCH)
33
Jeevan Shriramd29e4402017-11-06 14:04:11 -080034ifeq ($(TARGET_ARCHITECTURE),arm)
35 CLANG35_PREFIX := $(ANDROID_BUILD_TOP)/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-$(TARGET_GCC_VERSION)/bin/arm-linux-androideabi-
36 CLANG35_GCC_TOOLCHAIN := $(ANDROID_BUILD_TOP)/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-$(TARGET_GCC_VERSION)
37else
38 CLANG35_PREFIX := $(ANDROID_BUILD_TOP)/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-$(TARGET_GCC_VERSION)/bin/aarch64-linux-android-
39 CLANG35_GCC_TOOLCHAIN := $(ANDROID_BUILD_TOP)/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-$(TARGET_GCC_VERSION)
40endif
41
42
Sridhar Parasuramfedf9ac2015-11-03 16:20:50 -080043# ABL ELF output
44TARGET_ABL := $(PRODUCT_OUT)/abl.elf
Channagoud Kadabi9dff4e22016-02-10 11:19:49 -080045TARGET_EMMC_BOOTLOADER := $(TARGET_ABL)
Sridhar Parasuramfedf9ac2015-11-03 16:20:50 -080046ABL_OUT := $(TARGET_OUT_INTERMEDIATES)/ABL_OBJ
47
48abl_clean:
49 $(hide) rm -f $(TARGET_ABL)
50
51$(ABL_OUT):
52 mkdir -p $(ABL_OUT)
53
54# Top level target
55$(TARGET_ABL): abl_clean | $(ABL_OUT) $(INSTALLED_KEYSTOREIMAGE_TARGET)
Jeevan Shriramd29e4402017-11-06 14:04:11 -080056 $(MAKE) -C bootable/bootloader/edk2 \
57 BOOTLOADER_OUT=../../../$(ABL_OUT) \
58 all \
59 $(VERIFIED_BOOT) \
60 $(VERIFIED_BOOT_2) \
61 $(USER_BUILD_VARIANT) \
62 CLANG_BIN=$(CLANG_BIN) \
63 CLANG_PREFIX=$(CLANG35_PREFIX)\
64 CLANG_GCC_TOOLCHAIN=$(CLANG35_GCC_TOOLCHAIN)\
65 TARGET_ARCHITECTURE=$(TARGET_ARCHITECTURE)
Sridhar Parasuramfedf9ac2015-11-03 16:20:50 -080066
Sridhar Parasuramfedf9ac2015-11-03 16:20:50 -080067.PHONY: abl
68
69abl: $(TARGET_ABL)