blob: beae33505e7d02e6c3cf7aba3bc616280790e62a [file] [log] [blame]
Sridhar Parasuramfedf9ac2015-11-03 16:20:50 -08001UEFI_TOP_DIR := .
2
3ifndef $(BOOTLOADER_OUT)
4 BOOTLOADER_OUT := .
5endif
6export $(BOOTLOADER_OUT)
7
8BUILDDIR=$(shell pwd)
Prathyush Katukojwalaeec0cc62017-08-23 12:00:14 -07009export WRAPPER := $(BUILDDIR)/clang-wrapper.py
Jeevan Shriram4d4d5e62017-06-08 16:43:07 -070010
Sridhar Parasuramfedf9ac2015-11-03 16:20:50 -080011export CLANG35_BIN := $(CLANG_BIN)
Jeevan Shriramd29e4402017-11-06 14:04:11 -080012export CLANG35_GCC_TOOLCHAIN := $(CLANG35_GCC_TOOLCHAIN)
Jeevan Shriramd5d169f2018-04-20 16:09:10 -070013export $(BOARD_BOOTLOADER_PRODUCT_NAME)
Sridhar Parasuramfedf9ac2015-11-03 16:20:50 -080014
Jeevan Shriram4d4d5e62017-06-08 16:43:07 -070015ifeq ($(TARGET_ARCHITECTURE),arm)
16export ARCHITECTURE := ARM
Jeevan Shriramd29e4402017-11-06 14:04:11 -080017export CLANG35_ARM_PREFIX := $(CLANG_PREFIX)
Jeevan Shriram4d4d5e62017-06-08 16:43:07 -070018else
19export ARCHITECTURE := AARCH64
Jeevan Shriramd29e4402017-11-06 14:04:11 -080020export CLANG35_AARCH64_PREFIX := $(CLANG_PREFIX)
Jeevan Shriram4d4d5e62017-06-08 16:43:07 -070021endif
22
Jeevan Shriramd29e4402017-11-06 14:04:11 -080023export BUILD_REPORT_DIR := $(BOOTLOADER_OUT)/build_report
24ANDROID_PRODUCT_OUT := $(BOOTLOADER_OUT)/Build
25
Sridhar Parasuramfedf9ac2015-11-03 16:20:50 -080026WORKSPACE=$(BUILDDIR)
27TARGET_TOOLS := CLANG35
28TARGET := DEBUG
29BUILD_ROOT := $(ANDROID_PRODUCT_OUT)/$(TARGET)_$(TARGET_TOOLS)
Channagoud Kadabi1ed4a152016-02-05 15:15:41 -080030EDK_TOOLS := $(BUILDDIR)/BaseTools
31EDK_TOOLS_BIN := $(EDK_TOOLS)/Source/C/bin
Sridhar Parasuramfedf9ac2015-11-03 16:20:50 -080032ABL_FV_IMG := $(BUILD_ROOT)/FV/abl.fv
33ABL_FV_ELF := $(BOOTLOADER_OUT)/../../abl.elf
lijuang4d342f62016-09-13 15:51:26 +080034SHELL:=/bin/bash
Sridhar Parasuramfedf9ac2015-11-03 16:20:50 -080035
Trilok Sonic1a2d142017-04-26 17:32:05 -070036# UEFI UBSAN Configuration
37# ENABLE_UEFI_UBSAN := true
38
39ifeq "$(ENABLE_UEFI_UBSAN)" "true"
40 UBSAN_GCC_FLAG_UNDEFINED := -fsanitize=undefined
41 UBSAN_GCC_FLAG_ALIGNMENT := -fno-sanitize=alignment
42else
43 UBSAN_GCC_FLAG_UNDEFINED :=
44 UBSAN_GCC_FLAG_ALIGNMENT :=
45endif
46
Jeevan Shriram90c404b2018-03-29 15:11:44 -070047ifeq ($(TARGET_ARCHITECTURE), arm)
Jeevan Shriram32541172017-12-02 10:19:23 -080048 LOAD_ADDRESS := 0X8FB00000
Jeevan Shriram995c2312017-10-10 14:25:00 -070049else
Jeevan Shriram32541172017-12-02 10:19:23 -080050 LOAD_ADDRESS := 0X9FA00000
Jeevan Shriram995c2312017-10-10 14:25:00 -070051endif
52
Jeevan Shriram90c404b2018-03-29 15:11:44 -070053ifeq ($(ENABLE_LE_VARIANT), true)
54 ENABLE_LE_VARIANT := 1
55else
56 ENABLE_LE_VARIANT := 0
57endif
58
lijuang65c51d52018-03-28 13:52:57 +080059ifeq "$(ABL_USE_SDLLVM)" "true"
60 SDLLVM_COMPILE_ANALYZE := --compile-and-analyze
61 SDLLVM_ANALYZE_REPORT := $(BUILD_REPORT_DIR)
62else
63 SDLLVM_COMPILE_ANALYZE :=
64 SDLLVM_ANALYZE_REPORT :=
65endif
S A Muqthyarb25e5b32018-04-26 16:02:41 +053066
67ifneq "$(INIT_BIN_LE)" ""
68 INIT_BIN := $(INIT_BIN_LE)
69else
70 INIT_BIN := \"/init\"
71endif
72
lijuang65c51d52018-03-28 13:52:57 +080073export SDLLVM_COMPILE_ANALYZE := $(SDLLVM_COMPILE_ANALYZE)
74export SDLLVM_ANALYZE_REPORT := $(SDLLVM_ANALYZE_REPORT)
75
Sridhar Parasuramfedf9ac2015-11-03 16:20:50 -080076.PHONY: all cleanall
77
78all: ABL_FV_ELF
79
80cleanall:
81 @. ./edksetup.sh BaseTools && \
Jeevan Shriram4d4d5e62017-06-08 16:43:07 -070082 build -p $(WORKSPACE)/QcomModulePkg/QcomModulePkg.dsc -a $(ARCHITECTURE) -t $(TARGET_TOOLS) -b $(TARGET) -j build_modulepkg.log cleanall
Sridhar Parasuramfedf9ac2015-11-03 16:20:50 -080083 rm -rf $(WORKSPACE)/QcomModulePkg/Bin64
84
Channagoud Kadabi1ed4a152016-02-05 15:15:41 -080085EDK_TOOLS_BIN:
Sridhar Parasuramfedf9ac2015-11-03 16:20:50 -080086 @. ./edksetup.sh BaseTools && \
Channagoud Kadabi1ed4a152016-02-05 15:15:41 -080087 $(MAKE) -C $(EDK_TOOLS) -j1
88
89ABL_FV_IMG: EDK_TOOLS_BIN
90 @. ./edksetup.sh BaseTools && \
Jeevan Shriram995c2312017-10-10 14:25:00 -070091 build -p $(WORKSPACE)/QcomModulePkg/QcomModulePkg.dsc \
92 -a $(ARCHITECTURE) \
93 -t $(TARGET_TOOLS) \
94 -b $(TARGET) \
95 -D ABL_OUT_DIR=$(ANDROID_PRODUCT_OUT) \
Mukesh Ojha8dc65f52018-03-27 00:59:30 +053096 -D BUILD_SYSTEM_ROOT_IMAGE=$(BUILD_SYSTEM_ROOT_IMAGE) \
Jeevan Shriram995c2312017-10-10 14:25:00 -070097 -D VERIFIED_BOOT=$(VERIFIED_BOOT) \
98 -D VERIFIED_BOOT_2=$(VERIFIED_BOOT_2) \
Zhen Kongdd5c5e32017-07-05 13:44:45 -070099 -D VERIFIED_BOOT_LE=$(VERIFIED_BOOT_LE) \
Jeevan Shriram995c2312017-10-10 14:25:00 -0700100 -D USER_BUILD_VARIANT=$(USER_BUILD_VARIANT) \
Mukesh Ojhad29676a2018-04-10 17:37:56 +0530101 -D DISABLE_PARALLEL_DOWNLOAD_FLASH=$(DISABLE_PARALLEL_DOWNLOAD_FLASH) \
Jeevan Shriram995c2312017-10-10 14:25:00 -0700102 -D ENABLE_LE_VARIANT=$(ENABLE_LE_VARIANT) \
S A Muqthyarb25e5b32018-04-26 16:02:41 +0530103 -D INIT_BIN=$(INIT_BIN) \
Jeevan Shriram995c2312017-10-10 14:25:00 -0700104 -D UBSAN_UEFI_GCC_FLAG_UNDEFINED=$(UBSAN_GCC_FLAG_UNDEFINED) \
105 -D UBSAN_UEFI_GCC_FLAG_ALIGNMENT=$(UBSAN_GCC_FLAG_ALIGNMENT) \
106 -j build_modulepkg.log $*
107
Sridhar Parasuramfedf9ac2015-11-03 16:20:50 -0800108 cp $(BUILD_ROOT)/FV/FVMAIN_COMPACT.Fv $(ABL_FV_IMG)
109
110ABL_FV_ELF: ABL_FV_IMG
Jeevan Shriram19a53812017-06-14 15:39:48 -0700111 python $(WORKSPACE)/QcomModulePkg/Tools/image_header.py $(ABL_FV_IMG) $(ABL_FV_ELF) $(LOAD_ADDRESS) elf 32