From d79d667b3c08f3ef18e9c0f697324e94b4e8ec7d Mon Sep 17 00:00:00 2001
From: Victor Chong <victor.chong@linaro.org>
Date: Fri, 8 Nov 2019 09:50:30 +0000
Subject: [PATCH] Use EDK2_TOOLCHAIN and EDK2_ARCH

Introduce EDK2_TOOLCHAIN and EDK2_ARCH and fvp, qemu_v8 and synquacer
builds to better control some build variables.

Signed-off-by: Victor Chong <victor.chong@linaro.org>
Reviewed-by: Joakim Bech <joakim.bech@linaro.org>
---
 fvp.mk       | 10 ++++++----
 qemu_v8.mk   | 10 ++++++----
 synquacer.mk |  6 ++++--
 3 files changed, 16 insertions(+), 10 deletions(-)

diff --git a/fvp.mk b/fvp.mk
index 9e98fbf..7f4f520 100644
--- a/fvp.mk
+++ b/fvp.mk
@@ -22,12 +22,14 @@ TF_A_BUILD		?= release
 endif
 EDK2_PATH		?= $(ROOT)/edk2
 EDK2_PLATFORMS_PATH	?= $(ROOT)/edk2-platforms
+EDK2_TOOLCHAIN		?= GCC49
+EDK2_ARCH		?= AARCH64
 ifeq ($(DEBUG),1)
 EDK2_BUILD		?= DEBUG
 else
 EDK2_BUILD		?= RELEASE
 endif
-EDK2_BIN		?= $(EDK2_PLATFORMS_PATH)/Build/ArmVExpress-FVP-AArch64/$(EDK2_BUILD)_GCC49/FV/FVP_AARCH64_EFI.fd
+EDK2_BIN		?= $(EDK2_PLATFORMS_PATH)/Build/ArmVExpress-FVP-AArch64/$(EDK2_BUILD)_$(EDK2_TOOLCHAIN)/FV/FVP_$(EDK2_ARCH)_EFI.fd
 FOUNDATION_PATH		?= $(ROOT)/Foundation_Platformpkg
 ifeq ($(wildcard $(FOUNDATION_PATH)),)
 $(error $(FOUNDATION_PATH) does not exist)
@@ -85,9 +87,9 @@ define edk2-env
 endef
 
 define edk2-call
-	GCC49_AARCH64_PREFIX=$(AARCH64_CROSS_COMPILE) \
-	build -n `getconf _NPROCESSORS_ONLN` -a "AARCH64" \
-		-t "GCC49" -p Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.dsc -b $(EDK2_BUILD)
+	$(EDK2_TOOLCHAIN)_$(EDK2_ARCH)_PREFIX=$(AARCH64_CROSS_COMPILE) \
+	build -n `getconf _NPROCESSORS_ONLN` -a $(EDK2_ARCH) \
+		-t $(EDK2_TOOLCHAIN) -p Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.dsc -b $(EDK2_BUILD)
 endef
 
 edk2: edk2-common
diff --git a/qemu_v8.mk b/qemu_v8.mk
index 9ab3d13..9a1535b 100644
--- a/qemu_v8.mk
+++ b/qemu_v8.mk
@@ -25,12 +25,14 @@ DEBUG ?= 1
 TF_A_PATH		?= $(ROOT)/trusted-firmware-a
 BINARIES_PATH		?= $(ROOT)/out/bin
 EDK2_PATH		?= $(ROOT)/edk2
+EDK2_TOOLCHAIN		?= GCC49
+EDK2_ARCH		?= AARCH64
 ifeq ($(DEBUG),1)
 EDK2_BUILD		?= DEBUG
 else
 EDK2_BUILD		?= RELEASE
 endif
-EDK2_BIN		?= $(EDK2_PATH)/Build/ArmVirtQemuKernel-AARCH64/$(EDK2_BUILD)_GCC49/FV/QEMU_EFI.fd
+EDK2_BIN		?= $(EDK2_PATH)/Build/ArmVirtQemuKernel-$(EDK2_ARCH)/$(EDK2_BUILD)_$(EDK2_TOOLCHAIN)/FV/QEMU_EFI.fd
 QEMU_PATH		?= $(ROOT)/qemu
 SOC_TERM_PATH		?= $(ROOT)/soc_term
 
@@ -120,9 +122,9 @@ define edk2-env
 endef
 
 define edk2-call
-        GCC49_AARCH64_PREFIX=$(AARCH64_CROSS_COMPILE) \
-        build -n `getconf _NPROCESSORS_ONLN` -a AARCH64 \
-                -t GCC49 -p ArmVirtPkg/ArmVirtQemuKernel.dsc \
+        $(EDK2_TOOLCHAIN)_$(EDK2_ARCH)_PREFIX=$(AARCH64_CROSS_COMPILE) \
+        build -n `getconf _NPROCESSORS_ONLN` -a $(EDK2_ARCH) \
+                -t $(EDK2_TOOLCHAIN) -p ArmVirtPkg/ArmVirtQemuKernel.dsc \
 		-b $(EDK2_BUILD)
 endef
 
diff --git a/synquacer.mk b/synquacer.mk
index 1ade97f..2622341 100644
--- a/synquacer.mk
+++ b/synquacer.mk
@@ -39,6 +39,8 @@ EDK2_PLATFORMS_PATH ?= $(ROOT)/edk2-platforms
 EDK2_NON_OSI_PATH ?= $(ROOT)/edk2-non-osi
 EDK2_PKGS_PATH := "$(EDK2_PATH):$(EDK2_PLATFORMS_PATH):$(EDK2_NON_OSI_PATH)"
 EDK2_FIP ?= $(EDK2_NON_OSI_PATH)/Platform/Socionext/DeveloperBox/fip_all_arm_tf.bin
+EDK2_TOOLCHAIN ?= GCC5
+EDK2_ARCH ?= AARCH64
 
 ################################################################################
 # Targets
@@ -91,9 +93,9 @@ define edk2-env
 endef
 
 define edk2-call
-	GCC5_AARCH64_PREFIX=$(AARCH64_CROSS_COMPILE) \
+	$(EDK2_TOOLCHAIN)_$(EDK2_ARCH)_PREFIX=$(AARCH64_CROSS_COMPILE) \
 	build -n `getconf _NPROCESSORS_ONLN` \
-		-a "AARCH64" -t "GCC5" -b $(EDK2_BUILD) \
+		-a $(EDK2_ARCH) -t $(EDK2_TOOLCHAIN) -b $(EDK2_BUILD) \
 		-p Platform/Socionext/DeveloperBox/DeveloperBox.dsc
 endef
 
-- 
GitLab