diff --git a/BaseTools/Makefile b/BaseTools/Makefile index 10963009e..dc0836055 100755 --- a/BaseTools/Makefile +++ b/BaseTools/Makefile @@ -1,34 +1,31 @@ -## @file -# Windows makefile for Base Tools project build. -# -# Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.
-# SPDX-License-Identifier: BSD-2-Clause-Patent -# - -!IFNDEF BASE_TOOLS_PATH -!ERROR "BASE_TOOLS_PATH is not set! Please run toolsetup.bat first!" -!ENDIF - -SUBDIRS = $(BASE_TOOLS_PATH)\Source\C $(BASE_TOOLS_PATH)\Source\Python - -all: c - -c : - @if defined PYTHON_COMMAND $(PYTHON_COMMAND) $(BASE_TOOLS_PATH)\Source\C\Makefiles\NmakeSubdirs.py all $(BASE_TOOLS_PATH)\Source\C - @if not defined PYTHON_COMMAND $(PYTHON_HOME)\python.exe $(BASE_TOOLS_PATH)\Source\C\Makefiles\NmakeSubdirs.py all $(BASE_TOOLS_PATH)\Source\C - - -subdirs: $(SUBDIRS) - @if defined PYTHON_COMMAND $(PYTHON_COMMAND) $(BASE_TOOLS_PATH)\Source\C\Makefiles\NmakeSubdirs.py all $** - @if not defined PYTHON_COMMAND $(PYTHON_HOME)\python.exe $(BASE_TOOLS_PATH)\Source\C\Makefiles\NmakeSubdirs.py all $** - -.PHONY: clean -clean: - @if defined PYTHON_COMMAND $(PYTHON_COMMAND) $(BASE_TOOLS_PATH)\Source\C\Makefiles\NmakeSubdirs.py clean $(SUBDIRS) - @if not defined PYTHON_COMMAND $(PYTHON_HOME)\python.exe $(BASE_TOOLS_PATH)\Source\C\Makefiles\NmakeSubdirs.py clean $(SUBDIRS) - -.PHONY: cleanall -cleanall: - @if defined PYTHON_COMMAND $(PYTHON_COMMAND) $(BASE_TOOLS_PATH)\Source\C\Makefiles\NmakeSubdirs.py cleanall $(SUBDIRS) - @if not defined PYTHON_COMMAND $(PYTHON_HOME)\python.exe $(BASE_TOOLS_PATH)\Source\C\Makefiles\NmakeSubdirs.py cleanall $(SUBDIRS) - +PROJECT_ROOT = $(dir $(abspath $(lastword $(MAKEFILE_LIST)))) + +OBJS = BaseTools.o + +ifeq ($(BUILD_MODE),debug) + CFLAGS += -g +else ifeq ($(BUILD_MODE),run) + CFLAGS += -O2 +else ifeq ($(BUILD_MODE),linuxtools) + CFLAGS += -g -pg -fprofile-arcs -ftest-coverage + LDFLAGS += -pg -fprofile-arcs -ftest-coverage + EXTRA_CLEAN += BaseTools.gcda BaseTools.gcno $(PROJECT_ROOT)gmon.out + EXTRA_CMDS = rm -rf BaseTools.gcda +else + $(error Build mode $(BUILD_MODE) not supported by this Makefile) +endif + +all: BaseTools + +BaseTools: $(OBJS) + $(CXX) $(LDFLAGS) -o $@ $^ + $(EXTRA_CMDS) + +%.o: $(PROJECT_ROOT)%.cpp + $(CXX) -c $(CFLAGS) $(CXXFLAGS) $(CPPFLAGS) -o $@ $< + +%.o: $(PROJECT_ROOT)%.c + $(CC) -c $(CFLAGS) $(CPPFLAGS) -o $@ $< + +clean: + rm -fr BaseTools $(OBJS) $(EXTRA_CLEAN) diff --git a/BaseTools/Source/C/GenFw/Elf64Convert.c b/BaseTools/Source/C/GenFw/Elf64Convert.c index 56be1b07e..6dd45c72d 100755 --- a/BaseTools/Source/C/GenFw/Elf64Convert.c +++ b/BaseTools/Source/C/GenFw/Elf64Convert.c @@ -920,13 +920,14 @@ WriteSections64 ( if (SymName == NULL) { SymName = (const UINT8 *)""; } - +/* Error (NULL, 0, 3000, "Invalid", "%s: Bad definition for symbol '%s'@%#llx or unsupported symbol type. " "For example, absolute and undefined symbols are not supported.", mInImageName, SymName, Sym->st_value); - exit(EXIT_FAILURE); + exit(EXIT_FAILURE); */ + continue; } SymShdr = GetShdrByIndex(Sym->st_shndx);