blob: d75720a57fd8aba0ae04c07c84eb35bfec61fd48 [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)
Sridhar Parasuramfedf9ac2015-11-03 16:20:50 -080013
Jeevan Shriram4d4d5e62017-06-08 16:43:07 -070014ifeq ($(TARGET_ARCHITECTURE),arm)
15export ARCHITECTURE := ARM
Jeevan Shriramd29e4402017-11-06 14:04:11 -080016export CLANG35_ARM_PREFIX := $(CLANG_PREFIX)
Jeevan Shriram4d4d5e62017-06-08 16:43:07 -070017else
18export ARCHITECTURE := AARCH64
Jeevan Shriramd29e4402017-11-06 14:04:11 -080019export CLANG35_AARCH64_PREFIX := $(CLANG_PREFIX)
Jeevan Shriram4d4d5e62017-06-08 16:43:07 -070020endif
21
Jeevan Shriramd29e4402017-11-06 14:04:11 -080022export BUILD_REPORT_DIR := $(BOOTLOADER_OUT)/build_report
23ANDROID_PRODUCT_OUT := $(BOOTLOADER_OUT)/Build
24
Sridhar Parasuramfedf9ac2015-11-03 16:20:50 -080025WORKSPACE=$(BUILDDIR)
26TARGET_TOOLS := CLANG35
27TARGET := DEBUG
28BUILD_ROOT := $(ANDROID_PRODUCT_OUT)/$(TARGET)_$(TARGET_TOOLS)
Channagoud Kadabi67698992016-03-02 13:04:47 -080029LOAD_ADDRESS := 0X9FA00000
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 Shriram995c2312017-10-10 14:25:00 -070047ifeq ($(ENABLE_LE_VARIANT), true)
48 ENABLE_LE_VARIANT := 1
49else
50 ENABLE_LE_VARIANT := 0
51endif
52
Sridhar Parasuramfedf9ac2015-11-03 16:20:50 -080053.PHONY: all cleanall
54
55all: ABL_FV_ELF
56
57cleanall:
58 @. ./edksetup.sh BaseTools && \
Jeevan Shriram4d4d5e62017-06-08 16:43:07 -070059 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 -080060 rm -rf $(WORKSPACE)/QcomModulePkg/Bin64
61
Channagoud Kadabi1ed4a152016-02-05 15:15:41 -080062EDK_TOOLS_BIN:
Sridhar Parasuramfedf9ac2015-11-03 16:20:50 -080063 @. ./edksetup.sh BaseTools && \
Channagoud Kadabi1ed4a152016-02-05 15:15:41 -080064 $(MAKE) -C $(EDK_TOOLS) -j1
65
66ABL_FV_IMG: EDK_TOOLS_BIN
67 @. ./edksetup.sh BaseTools && \
Jeevan Shriram995c2312017-10-10 14:25:00 -070068 build -p $(WORKSPACE)/QcomModulePkg/QcomModulePkg.dsc \
69 -a $(ARCHITECTURE) \
70 -t $(TARGET_TOOLS) \
71 -b $(TARGET) \
72 -D ABL_OUT_DIR=$(ANDROID_PRODUCT_OUT) \
73 -D VERIFIED_BOOT=$(VERIFIED_BOOT) \
74 -D VERIFIED_BOOT_2=$(VERIFIED_BOOT_2) \
75 -D USER_BUILD_VARIANT=$(USER_BUILD_VARIANT) \
76 -D ENABLE_LE_VARIANT=$(ENABLE_LE_VARIANT) \
77 -D UBSAN_UEFI_GCC_FLAG_UNDEFINED=$(UBSAN_GCC_FLAG_UNDEFINED) \
78 -D UBSAN_UEFI_GCC_FLAG_ALIGNMENT=$(UBSAN_GCC_FLAG_ALIGNMENT) \
79 -j build_modulepkg.log $*
80
Sridhar Parasuramfedf9ac2015-11-03 16:20:50 -080081 cp $(BUILD_ROOT)/FV/FVMAIN_COMPACT.Fv $(ABL_FV_IMG)
82
83ABL_FV_ELF: ABL_FV_IMG
Jeevan Shriram19a53812017-06-14 15:39:48 -070084 python $(WORKSPACE)/QcomModulePkg/Tools/image_header.py $(ABL_FV_IMG) $(ABL_FV_ELF) $(LOAD_ADDRESS) elf 32