blob: 674204154e210582a57d7304f0de8e6fc767d7e9 [file] [log] [blame]
Jeevan Shriram062058c2016-11-07 16:46:44 -08001#Android makefile to build bootloader as a part of Android Build
Ashwini Muduganti36db63f2017-12-12 14:20:38 -08002ifeq ($(shell echo $(SDCLANG_PATH) | head -c 1),/)
3 CLANG_BIN := $(SDCLANG_PATH)/
4else
5 CLANG_BIN := $(ANDROID_BUILD_TOP)/$(SDCLANG_PATH)/
6endif
7
Maria Yuf12a3612017-06-27 11:28:16 +08008ifneq ($(wildcard $(SDCLANG_PATH_2)),)
Ashwini Muduganti36db63f2017-12-12 14:20:38 -08009 ifeq ($(shell echo $(SDCLANG_PATH_2) | head -c 1),/)
10 CLANG_BIN := $(SDCLANG_PATH_2)/
11 else
12 CLANG_BIN := $(ANDROID_BUILD_TOP)/$(SDCLANG_PATH_2)/
13 endif
Maria Yuf12a3612017-06-27 11:28:16 +080014endif
Sridhar Parasuramfedf9ac2015-11-03 16:20:50 -080015
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
Shivaprasad Hongal3860bbf2017-04-27 17:40:13 -070022ifeq ($(BOARD_AVB_ENABLE),true)
23 VERIFIED_BOOT_2 := VERIFIED_BOOT_2=1
24else
25 VERIFIED_BOOT_2 := VERIFIED_BOOT_2=0
26endif
27
Sridhar Parasuramfedf9ac2015-11-03 16:20:50 -080028ifeq ($(TARGET_BUILD_VARIANT),user)
Vijay Kumar Pendoti9946e042016-09-16 17:38:51 +053029 USER_BUILD_VARIANT := USER_BUILD_VARIANT=1
30else
31 USER_BUILD_VARIANT := USER_BUILD_VARIANT=0
Sridhar Parasuramfedf9ac2015-11-03 16:20:50 -080032endif
33
Maria Yu3a174b82017-06-23 19:33:26 +080034# For most platform, abl needed always be built
35# in aarch64 arthitecture to run.
36# Specify BOOTLOADER_ARCH if needed to built with
37# other ARCHs.
38ifeq ($(BOOTLOADER_ARCH),)
39 BOOTLOADER_ARCH := AARCH64
40endif
41TARGET_ARCHITECTURE := $(BOOTLOADER_ARCH)
42
Jeevan Shriramd29e4402017-11-06 14:04:11 -080043ifeq ($(TARGET_ARCHITECTURE),arm)
44 CLANG35_PREFIX := $(ANDROID_BUILD_TOP)/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-$(TARGET_GCC_VERSION)/bin/arm-linux-androideabi-
45 CLANG35_GCC_TOOLCHAIN := $(ANDROID_BUILD_TOP)/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-$(TARGET_GCC_VERSION)
46else
47 CLANG35_PREFIX := $(ANDROID_BUILD_TOP)/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-$(TARGET_GCC_VERSION)/bin/aarch64-linux-android-
48 CLANG35_GCC_TOOLCHAIN := $(ANDROID_BUILD_TOP)/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-$(TARGET_GCC_VERSION)
49endif
50
51
Sridhar Parasuramfedf9ac2015-11-03 16:20:50 -080052# ABL ELF output
53TARGET_ABL := $(PRODUCT_OUT)/abl.elf
Channagoud Kadabi9dff4e22016-02-10 11:19:49 -080054TARGET_EMMC_BOOTLOADER := $(TARGET_ABL)
Sridhar Parasuramfedf9ac2015-11-03 16:20:50 -080055ABL_OUT := $(TARGET_OUT_INTERMEDIATES)/ABL_OBJ
56
57abl_clean:
58 $(hide) rm -f $(TARGET_ABL)
59
60$(ABL_OUT):
61 mkdir -p $(ABL_OUT)
62
63# Top level target
64$(TARGET_ABL): abl_clean | $(ABL_OUT) $(INSTALLED_KEYSTOREIMAGE_TARGET)
Jeevan Shriramd29e4402017-11-06 14:04:11 -080065 $(MAKE) -C bootable/bootloader/edk2 \
66 BOOTLOADER_OUT=../../../$(ABL_OUT) \
67 all \
68 $(VERIFIED_BOOT) \
69 $(VERIFIED_BOOT_2) \
70 $(USER_BUILD_VARIANT) \
71 CLANG_BIN=$(CLANG_BIN) \
72 CLANG_PREFIX=$(CLANG35_PREFIX)\
73 CLANG_GCC_TOOLCHAIN=$(CLANG35_GCC_TOOLCHAIN)\
74 TARGET_ARCHITECTURE=$(TARGET_ARCHITECTURE)
Sridhar Parasuramfedf9ac2015-11-03 16:20:50 -080075
Sridhar Parasuramfedf9ac2015-11-03 16:20:50 -080076.PHONY: abl
77
78abl: $(TARGET_ABL)