From 9d5aab05540fd7de26894b05544f1efc424ff595 Mon Sep 17 00:00:00 2001 From: Chema Gonzalez Date: Wed, 27 Dec 2017 16:23:56 -0800 Subject: [PATCH] BaseTools: Barf on unknown HOST_ARCH in C Makefile I was getting `HOST_ARCH` set using the linux arch name ("x86_64"), which is different from the MS one ("X64"). It is not clear anyway we can proceed without valid build variables (`ARCH_INCLUDE`, `BIN_PATH`, `LIB_PATH`, `SYS_BIN_PATH`, and `SYS_LIB_PATH`). Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Chema Gonzalez Reviewed-by: Liming Gao --- BaseTools/Source/C/Makefiles/header.makefile | 12 ++++++------ BaseTools/Source/C/Makefiles/ms.common | 6 ++++-- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/BaseTools/Source/C/Makefiles/header.makefile b/BaseTools/Source/C/Makefiles/header.makefile index 27aa28b2fa..e034da258c 100644 --- a/BaseTools/Source/C/Makefiles/header.makefile +++ b/BaseTools/Source/C/Makefiles/header.makefile @@ -29,18 +29,18 @@ BUILD_LD ?= ld LINKER ?= $(BUILD_CC) ifeq ($(HOST_ARCH), IA32) ARCH_INCLUDE = -I $(MAKEROOT)/Include/Ia32/ -endif -ifeq ($(HOST_ARCH), X64) +else ifeq ($(HOST_ARCH), X64) ARCH_INCLUDE = -I $(MAKEROOT)/Include/X64/ -endif -ifeq ($(HOST_ARCH), ARM) +else ifeq ($(HOST_ARCH), ARM) ARCH_INCLUDE = -I $(MAKEROOT)/Include/Arm/ -endif -ifeq ($(HOST_ARCH), AARCH64) +else ifeq ($(HOST_ARCH), AARCH64) ARCH_INCLUDE = -I $(MAKEROOT)/Include/AArch64/ + +else +$(error Bad HOST_ARCH) endif INCLUDE = $(TOOL_INCLUDE) -I $(MAKEROOT) -I $(MAKEROOT)/Include/Common -I $(MAKEROOT)/Include/ -I $(MAKEROOT)/Include/IndustryStandard -I $(MAKEROOT)/Common/ -I .. -I . $(ARCH_INCLUDE) diff --git a/BaseTools/Source/C/Makefiles/ms.common b/BaseTools/Source/C/Makefiles/ms.common index a6bfea5036..d23308c4bb 100644 --- a/BaseTools/Source/C/Makefiles/ms.common +++ b/BaseTools/Source/C/Makefiles/ms.common @@ -42,14 +42,16 @@ BIN_PATH = $(BASE_TOOLS_PATH)\Bin\Win32 LIB_PATH = $(BASE_TOOLS_PATH)\Lib\Win32 SYS_BIN_PATH = $(EDK_TOOLS_PATH)\Bin\Win32 SYS_LIB_PATH = $(EDK_TOOLS_PATH)\Lib\Win32 -!ENDIF -!IF "$(HOST_ARCH)"=="X64" +!ELSEIF "$(HOST_ARCH)"=="X64" ARCH_INCLUDE = $(SOURCE_PATH)\Include\X64 BIN_PATH = $(BASE_TOOLS_PATH)\Bin\Win64 LIB_PATH = $(BASE_TOOLS_PATH)\Lib\Win64 SYS_BIN_PATH = $(EDK_TOOLS_PATH)\Bin\Win64 SYS_LIB_PATH = $(EDK_TOOLS_PATH)\Lib\Win64 + +!ELSE +!ERROR "Bad HOST_ARCH" !ENDIF CC = cl.exe -- 2.39.2