include $(MAKEROOT)/Makefiles/app.makefile\r
\r
GCCVERSION = $(shell $(CC) -dumpversion | awk -F'.' '{print $$1}')\r
+CLANG := $(shell $(CC) --version | grep clang)\r
ifneq ("$(GCCVERSION)", "5")\r
-ifneq ($(CXX), llvm)\r
+ifeq ($(CLANG),)\r
ifneq ($(DARWIN),Darwin)\r
# gcc 12 trips over device path handling\r
CFLAGS += -Wno-error=stringop-overflow\r
CYGWIN:=$(findstring CYGWIN, $(shell uname -s))\r
LINUX:=$(findstring Linux, $(shell uname -s))\r
DARWIN:=$(findstring Darwin, $(shell uname -s))\r
-ifeq ($(CXX), llvm)\r
+CLANG:=$(shell $(CC) --version | grep clang)\r
+ifneq ($(CLANG),)\r
CC ?= $(CLANG_BIN)clang\r
CXX ?= $(CLANG_BIN)clang++\r
AS ?= $(CLANG_BIN)clang\r
AR ?= $(CLANG_BIN)llvm-ar\r
LD ?= $(CLANG_BIN)llvm-ld\r
-else\r
-CC ?= gcc\r
-CXX ?= g++\r
-AS ?= gcc\r
-AR ?= ar\r
-LD ?= ld\r
+else ifeq ($(origin CC),default)\r
+CC = gcc\r
+CXX = g++\r
+AS = gcc\r
+AR = ar\r
+LD = ld\r
endif\r
LINKER ?= $(CC)\r
ifeq ($(HOST_ARCH), IA32)\r
CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror \\r
-Wno-deprecated-declarations -Wno-self-assign -Wno-unused-result -nostdlib -g\r
else\r
-ifeq ($(CXX), llvm)\r
+ifneq ($(CLANG),)\r
CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -fwrapv \\r
-fno-delete-null-pointer-checks -Wall -Werror \\r
-Wno-deprecated-declarations -Wno-self-assign \\r
-Wno-unused-result -nostdlib -g\r
endif\r
endif\r
-ifeq ($(CXX), llvm)\r
+ifneq ($(CLANG),)\r
LDFLAGS =\r
CXXFLAGS = -Wno-deprecated-register -Wno-unused-result\r
else\r
#OBJECTS = VfrSyntax.o VfrServices.o DLGLexer.o EfiVfrParser.o ATokenBuffer.o DLexerBase.o AParser.o\r
OBJECTS = AParser.o DLexerBase.o ATokenBuffer.o EfiVfrParser.o VfrLexer.o VfrSyntax.o \\r
VfrFormPkg.o VfrError.o VfrUtilityLib.o VfrCompiler.o\r
-ifeq ($(CXX), llvm)\r
+CLANG:=$(shell $(CC) --version | grep clang)\r
+ifneq ($(CLANG),)\r
VFR_CPPFLAGS = -Wno-deprecated-register -std=c++14 -DPCCTS_USE_NAMESPACE_STD $(CPPFLAGS)\r
else\r
VFR_CPPFLAGS = -DPCCTS_USE_NAMESPACE_STD $(CPPFLAGS)\r