summaryrefslogtreecommitdiff
path: root/EdkCompatibilityPkg/Sample/CommonTools.env
diff options
context:
space:
mode:
Diffstat (limited to 'EdkCompatibilityPkg/Sample/CommonTools.env')
-rw-r--r--EdkCompatibilityPkg/Sample/CommonTools.env672
1 files changed, 672 insertions, 0 deletions
diff --git a/EdkCompatibilityPkg/Sample/CommonTools.env b/EdkCompatibilityPkg/Sample/CommonTools.env
new file mode 100644
index 0000000000..2d97156a02
--- /dev/null
+++ b/EdkCompatibilityPkg/Sample/CommonTools.env
@@ -0,0 +1,672 @@
+#/*++
+#
+# Copyright (c) 2004 - 2007, Intel Corporation
+# All rights reserved. This program and the accompanying materials
+# are licensed and made available under the terms and conditions of the BSD License
+# which accompanies this distribution. The full text of the license may be found at
+# http://opensource.org/licenses/bsd-license.php
+#
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+#
+# Module Name:
+#
+# CommonTools.env
+#
+# Abstract:
+#
+# This file should not need to be customized. Customizations should
+# be done in LocalTools.env if at all possible.
+#
+# This file can be included by other makefiles.
+#
+# It defines variables used by the different toolchains. It first includes
+# the user-customized LocalTools.env, and then uses those defines to
+# define other variables.
+#
+# It basically has sections for different toolchains which define variables
+# used to build.
+#
+#--*/
+
+#
+# Everything depends on EDK_SOURCE. Make sure it's defined
+#
+!IFNDEF EDK_SOURCE
+!ERROR EDK_SOURCE environmental variable not set
+!ENDIF
+
+#
+# Tools depend on BUILD_DIR. Make sure it's defined
+#
+!IFNDEF BUILD_DIR
+!ERROR BUILD_DIR environmental variable not set. Should be set in PlatformTools.env
+!ENDIF
+
+#
+# This include file gets customized by the developer. Get the customizations.
+#
+!INCLUDE $(EDK_SOURCE)\Sample\LocalTools.env
+
+################################################################################
+#
+# Define paths for EFI build tools
+#
+################################################################################
+!IFNDEF EDK_TOOLS_PATH
+EDK_TOOLS_BIN = $(EDK_SOURCE)\Tools\Bin
+!ELSE
+EDK_TOOLS_BIN = $(EDK_TOOLS_PATH)\Bin
+!ENDIF
+EDK_TOOLS_DIR = $(EDK_SOURCE)\Sample\Tools
+EDK_TOOLS_SOURCE = $(EDK_TOOLS_DIR)\Source
+EDK_TOOLS_COMMON = $(EDK_TOOLS_DIR)\Source\Common
+EDK_TOOLS_OUTPUT = $(BUILD_DIR)\Tools
+PCCTS_DIR = $(EDK_SOURCE)\Other\Maintained\Tools\Pccts
+
+#
+# This include file gets some version info.
+#
+!INCLUDE $(EDK_SOURCE)\Sample\Version.env
+
+#
+# Macros to define the build tools
+#
+ANTLR = $(PCCTS_DIR)\bin\antlr
+DLG = $(PCCTS_DIR)\bin\dlg
+FWIMAGE = $(EDK_TOOLS_OUTPUT)\FwImage
+GENDEPEX = $(EDK_TOOLS_OUTPUT)\GenDepex
+GENFDIMAGE = $(EDK_TOOLS_OUTPUT)\GenFdImage
+GENFFSFILE = $(EDK_TOOLS_OUTPUT)\GenFfsFile
+GENFVIMAGE = $(EDK_TOOLS_OUTPUT)\GenFvImage
+GENSECTION = $(EDK_TOOLS_OUTPUT)\GenSection
+GUIDCHK = $(EDK_TOOLS_OUTPUT)\GuidChk
+MAKEDEPS = $(EDK_TOOLS_OUTPUT)\MakeDeps
+PROCESSDSC = $(EDK_TOOLS_OUTPUT)\ProcessDsc
+STRGATHER = $(EDK_TOOLS_OUTPUT)\StrGather
+SETSTAMP = $(EDK_TOOLS_OUTPUT)\SetStamp
+VFRCOMPILE = $(EDK_TOOLS_OUTPUT)\VfrCompile
+GENAPRIORI = $(EDK_TOOLS_OUTPUT)\GenAprioriFile
+MODIFYINF = $(EDK_TOOLS_OUTPUT)\ModifyInf
+
+MAKE = nmake -nologo
+
+#
+# Everything else requires that TOOLCHAIN be defined. This should be defined
+# by the calling makefile.
+#
+!IFNDEF TOOLCHAIN
+!ERROR TOOLCHAIN not defined for $(EDK_SOURCE)\Sample\CommonTools.env
+!ENDIF
+
+###############################################################################
+#
+# Specify the path and macros for ASL tools
+#
+###############################################################################
+!IF "$(EFI_ASL_LOCAL)" == "YES"
+ASL = $(ASLPATH)\Iasl
+!ELSE
+ASL = $(EDK_TOOLS_BIN)\Iasl
+!ENDIF
+
+ASL_FLAGS =
+C_FLAGS_ASL = /nologo /EP /C
+
+###############################################################################
+#
+# Specify the path and macros for IA32 tools
+#
+###############################################################################
+
+!IF "$(TOOLCHAIN)" == "TOOLCHAIN_IA32"
+
+#
+# Globally relevant flags. Options not appropriate for all builds may be
+# appropriate in the processor architecture specific macros (xxx_ARCH_FLAGS) or
+# in the platform specific macros (xxx_PROJ_FLAGS)
+#
+C_STD_INCLUDE = /X
+!IF "$(EFI_GENERATE_INTERMEDIATE_FILE)" == "YES"
+!IF "$(USE_VC8)" == "YES"
+C_STD_FLAGS = /nologo /W4 /WX /EHsc /Gy /GS- /D USE_VC8 /c /Fa$* /FAsc /Fo$@ /FR$(@R).SBR $(INC)
+!ELSE
+C_STD_FLAGS = /nologo /W4 /WX /GX /Gy /c /Fa$* /FAsc /Fo$@ /FR$(@R).SBR $(INC)
+!ENDIF
+!ELSE
+!IF "$(USE_VC8)" == "YES"
+C_STD_FLAGS = /nologo /W4 /WX /EHsc /Gy /GS- /D USE_VC8 /c /Fo$@ $(INC)
+!ELSE
+C_STD_FLAGS = /nologo /W4 /WX /GX /Gy /c /Fo$@ $(INC)
+!ENDIF
+!ENDIF
+ASM_STD_FLAGS = /nologo $(INC)
+LINK_STD_FLAGS = /nologo /SUBSYSTEM:CONSOLE /NODEFAULTLIB /MAP /OPT:REF /BASE:0 /IGNORE:4001,4078,4086,4096,4108 $(BUILD_DIR)\IA32\CompilerStub.lib
+LIB_STD_FLAGS = /nologo
+
+#
+# Build type specific flags. Globally relevant flags belong in the standard
+# macros, xxx_STD_FLAGS defined above. Platform specific macros belong in the
+# PlatformTools.env file in macros named xxx_PROJ_FLAGS.
+#
+C_ARCH_FLAGS = /D EFI32
+ASM_ARCH_FLAGS = /W3 /WX /c /coff /Fo$@ /DEFI32
+LINK_ARCH_FLAGS = /MACHINE:I386
+LIB_ARCH_FLAGS =
+
+ASM16_FLAGS = /nologo /c /omf /Fo$@
+ASMLINK16_FLAGS =
+
+#
+# Build tools
+#
+CC = cl
+LINK = link
+LIB = lib
+#
+# When using VS ml to compile 16bit code, please add /omf compiler option
+#
+ASM = ml
+
+!IF "$(EFI_ASSEMBLER_NAME)" == ""
+ASM16 = $(MASMPATH)\bin\ml
+ASMLINK16 = $(MASMPATH)\binr\link
+ASMLINK = $(MASMPATH)\binr\link
+!ELSE
+ASM16 = $(EDK_TOOLS_BIN)\Ia32\$(EFI_ASSEMBLER_NAME)\bin\ml
+ASMLINK16 = $(EDK_TOOLS_BIN)\Ia32\$(EFI_ASSEMBLER_NAME)\binr\link
+ASMLINK = $(EDK_TOOLS_BIN)\Ia32\$(EFI_ASSEMBLER_NAME)\binr\link
+!ENDIF
+
+BSCMAKE = bscmake
+
+!IF "$(EFI_SYMBOLIC_DEBUG)" == "YES"
+ASM_ARCH_FLAGS = $(ASM_ARCH_FLAGS) /Zi /DDEBUG
+C_STD_FLAGS = $(C_STD_FLAGS) /Zi /Gm /Fd$(DEST_DIR)\$(BASE_NAME)Obj
+LINK_STD_FLAGS = $(LINK_STD_FLAGS) /DEBUG
+!ENDIF
+
+# END OF TOOLCHAIN_IA32
+###############################################################################
+
+###############################################################################
+#
+# Specify the path and macros for the X64 (also called x86-64, EM64T, AMD64) tools
+#
+###############################################################################
+
+!ELSEIF "$(TOOLCHAIN)" == "TOOLCHAIN_X64"
+
+#
+# Globally relevant flags. Options not appropriate for all builds may be
+# appropriate in the processor architecture specific macros (xxx_ARCH_FLAGS) or
+# in the platform specific macros (xxx_PROJ_FLAGS)
+#
+C_STD_INCLUDE = /X
+!IF "$(EFI_GENERATE_INTERMEDIATE_FILE)" == "YES"
+C_STD_FLAGS = /nologo /W4 /WX /Gy /c /GS- /Fa$* /FAsc /Fo$@ /FR$(@R).SBR $(INC)
+!ELSE
+C_STD_FLAGS = /nologo /W4 /WX /Gy /c /GS- /Fo$@ $(INC)
+!ENDIF
+ASM_STD_FLAGS = /nologo $(INC)
+LINK_STD_FLAGS = /nologo /SUBSYSTEM:CONSOLE /NODEFAULTLIB /MAP /OPT:REF /BASE:0 /IGNORE:4001,4078,4086,4096,4108 $(BUILD_DIR)\X64\CompilerStub.lib
+LIB_STD_FLAGS = /nologo
+
+#
+# Build type specific flags. Globally relevant flags belong in the standard
+# macros, xxx_STD_FLAGS defined above. Platform specific macros belong in the
+# PlatformTools.env file in macros named xxx_PROJ_FLAGS.
+#
+C_ARCH_FLAGS = /D EFIX64
+ASM_ARCH_FLAGS = /W3 /WX /c /Fo$@ /DEFIX64
+LINK_ARCH_FLAGS = /Machine:AMD64
+LIB_ARCH_FLAGS =
+
+ASM16_FLAGS = /nologo /c /omf /Fo$@
+ASMLINK16_FLAGS =
+
+#
+# Build tools
+#
+!IF "$(EFI_COMPILER_X64_NAME)" == ""
+!IF "$(USE_VC8_X64)" == "YES"
+#
+# Use VC8 as X64 compiler
+#
+CC = "$(VC8_X64_PATH)\cl"
+LINK = "$(VC8_X64_PATH)\link"
+LIB = "$(VC8_X64_PATH)\lib"
+ASM = "$(VC8_X64_PATH)\ml64"
+!ELSE
+#
+# Use DDK as X64 compiler
+#
+CC = $(WIN_DDK_X64_PATH)\cl
+LINK = $(WIN_DDK_X64_PATH)\link
+LIB = $(WIN_DDK_X64_PATH)\lib
+ASM = $(WIN_DDK_X64_PATH)\ml64
+!ENDIF
+!ELSE
+CC = $(EDK_TOOLS_BIN)\X64\$(EFI_COMPILER_X64_NAME)\cl
+LINK = $(EDK_TOOLS_BIN)\X64\$(EFI_COMPILER_X64_NAME)\link
+LIB = $(EDK_TOOLS_BIN)\X64\$(EFI_COMPILER_X64_NAME)\lib
+ASM = $(EDK_TOOLS_BIN)\X64\$(EFI_COMPILER_X64_NAME)\ml64
+!ENDIF
+
+!IF "$(EFI_ASSEMBLER_NAME)" == ""
+ASM16 = $(MASMPATH)\bin\ml
+ASMLINK16 = $(MASMPATH)\binr\link
+ASMLINK = $(MASMPATH)\binr\link
+!ELSE
+ASM16 = $(EDK_TOOLS_BIN)\Ia32\$(EFI_ASSEMBLER_NAME)\bin\ml
+ASMLINK16 = $(EDK_TOOLS_BIN)\Ia32\$(EFI_ASSEMBLER_NAME)\binr\link
+ASMLINK = $(EDK_TOOLS_BIN)\Ia32\$(EFI_ASSEMBLER_NAME)\binr\link
+!ENDIF
+
+BSCMAKE = bscmake
+
+!IF "$(EFI_SYMBOLIC_DEBUG)" == "YES"
+ASM_ARCH_FLAGS = $(ASM_ARCH_FLAGS) /Zi /DDEBUG
+C_STD_FLAGS = $(C_STD_FLAGS) /Zi /Gm /Fd$(DEST_DIR)\$(BASE_NAME)Obj
+LINK_STD_FLAGS = $(LINK_STD_FLAGS) /DEBUG
+!ENDIF
+
+# END OF TOOLCHAIN_X64
+###############################################################################
+
+###############################################################################
+#
+# Specify the path and macros for the IPF tools
+#
+###############################################################################
+
+!ELSEIF "$(TOOLCHAIN)" == "TOOLCHAIN_IPF"
+
+#
+# Globally relevant flags. Options not appropriate for all builds may be
+# appropriate in the processor architecture specific macros (xxx_ARCH_FLAGS) or
+# in the platform specific macros (xxx_PROJ_FLAGS)
+#
+C_STD_INCLUDE = /X
+!IF "$(EFI_GENERATE_INTERMEDIATE_FILE)" == "YES"
+!IF "$(USE_VC8_IPF)" == "YES"
+C_STD_FLAGS = /nologo /W4 /WX /EHsc /Gy /GS- /c /Fa$* /FAsc /Fo$@ /FR$(@R).SBR $(INC)
+!ELSE
+!IF "$(USE_NEWDDK)" == "YES"
+C_STD_FLAGS = /nologo /W4 /WX /EHsc /Gy /GS- /c /Fa$* /FAsc /Fo$@ /FR$(@R).SBR $(INC)
+!ELSE
+C_STD_FLAGS = /nologo /W4 /WX /GX /Gy /c /Fa$* /FAsc /Fo$@ /FR$(@R).SBR $(INC)
+!ENDIF
+!ENDIF
+!ELSE
+!IF "$(USE_VC8_IPF)" == "YES"
+C_STD_FLAGS = /nologo /W4 /WX /EHsc /Gy /GS- /c /Fo$@ $(INC)
+!ELSE
+!IF "$(USE_NEWDDK)" == "YES"
+C_STD_FLAGS = /nologo /W4 /WX /EHsc /Gy /GS- /c /Fo$@ $(INC)
+!ELSE
+C_STD_FLAGS = /nologo /W4 /WX /GX /Gy /c /Fo$@ $(INC)
+!ENDIF
+!ENDIF
+!ENDIF
+
+ASM_STD_FLAGS = $(INC)
+LINK_STD_FLAGS = /nologo /SUBSYSTEM:CONSOLE /NODEFAULTLIB /MAP /OPT:REF /BASE:0 /IGNORE:4001,4078,4086,4096,4108
+LIB_STD_FLAGS = /nologo
+
+#
+# Build type specific flags. Globally relevant flags belong in the standard
+# macros, xxx_STD_FLAGS defined above. Platform specific macros belong in the
+# PlatformTools.env file in macros named xxx_PROJ_FLAGS.
+#
+C_ARCH_FLAGS = /D EFI64
+ASM_ARCH_FLAGS = -N us -X explicit -M ilp64 -N so -W4 -o $@
+LINK_ARCH_FLAGS = /MACHINE:IA64
+LIB_ARCH_FLAGS =
+
+#
+# This is used for preprocessing IPF Assembly files
+#
+C_FLAGS_PRO = /nologo /EP /C $(C_STD_FLAGS) $(C_ARCH_FLAGS) $(C_PROJ_FLAGS) $(C_STD_INCLUDE)
+
+!IF "$(EFI_DEBUG)" == "YES"
+ASM_ARCH_FLAGS = $(ASM_ARCH_FLAGS) -d debug
+!ENDIF
+
+#
+# Build tools
+#
+!IF "$(EFI_COMPILER_NAME)" == ""
+!IF "$(USE_VC8_IPF)" == "YES"
+CC = "$(VC8_IPF_PATH)\cl"
+LINK = "$(VC8_IPF_PATH)\link"
+LIB = "$(VC8_IPF_PATH)\lib"
+!ELSE
+CC = $(EFI_IA64TOOLPATH)\cl
+LINK = $(EFI_IA64TOOLPATH)\link
+LIB = $(EFI_IA64TOOLPATH)\lib
+!ENDIF
+!ELSE
+CC = $(EDK_TOOLS_BIN)\Ipf\$(EFI_COMPILER_NAME)\cl
+LINK = $(EDK_TOOLS_BIN)\Ipf\$(EFI_COMPILER_NAME)\link
+LIB = $(EDK_TOOLS_BIN)\Ipf\$(EFI_COMPILER_NAME)\lib
+!ENDIF
+
+!IF "$(EFI_ASSEMBLER_NAME)" == ""
+!IF "$(USE_VC8_IPF)" == "YES"
+ASM = "$(VC8_IPF_PATH)\ias"
+ASMLINK = "$(VC8_IPF_PATH)\link"
+!ELSE
+ASM = $(EFI_IA64ASMPATH)\ias
+ASMLINK = $(EFI_IA64ASMPATH)\link
+!ENDIF
+!ELSE
+ASM = $(EDK_TOOLS_BIN)\Ipf\$(EFI_ASSEMBLER_NAME)\ias
+ASMLINK = $(EDK_TOOLS_BIN)\Ipf\$(EFI_ASSEMBLER_NAME)\link
+!ENDIF
+
+BSCMAKE = bscmake
+
+!IF "$(EFI_SYMBOLIC_DEBUG)" == "YES"
+C_STD_FLAGS = $(C_STD_FLAGS) /Zi /Gm /Fd$(DEST_DIR)\$(BASE_NAME)Obj
+LINK_STD_FLAGS = $(LINK_STD_FLAGS) /DEBUG
+!ENDIF
+
+# END TOOLCHAIN_IPF
+###############################################################################
+
+###############################################################################
+#
+# Define toolchain for building the EFI tools on an IA32 system.
+#
+###############################################################################
+
+!ELSEIF "$(TOOLCHAIN)" == "TOOLCHAIN_MSVC"
+
+#
+# Globally relevant flags. Options not appropriate for all builds may be
+# appropriate in the processor architecture specific macros (xxx_ARCH_FLAGS) or
+# in the platform specific macros (xxx_PROJ_FLAGS)
+#
+!IF "$(EFI_GENERATE_INTERMEDIATE_FILE)" == "YES"
+!IF "$(USE_VC8)" == "YES"
+C_STD_FLAGS = /nologo /W4 /WX /EHsc /Gy /D _CRT_SECURE_NO_DEPRECATE /D USE_VC8 /c /Fa$* /FAsc /Fo$@ /FR$(@R).SBR $(INC)
+!ELSE
+C_STD_FLAGS = /nologo /W4 /WX /GX /Gy /c /Fa$* /FAsc /Fo$@ /FR$(@R).SBR $(INC)
+!ENDIF
+!ELSE
+!IF "$(USE_VC8)" == "YES"
+C_STD_FLAGS = /nologo /W4 /WX /EHsc /Gy /D _CRT_SECURE_NO_DEPRECATE /D USE_VC8 /c /Fo$@ $(INC)
+!ELSE
+C_STD_FLAGS = /nologo /W4 /WX /GX /Gy /c /Fo$@ $(INC)
+!ENDIF
+!ENDIF
+ASM_STD_FLAGS = /nologo $(INC)
+LINK_STD_FLAGS = /nologo /SUBSYSTEM:CONSOLE /NODEFAULTLIB /MAP /OPT:REF
+LIB_STD_FLAGS = /nologo
+
+MSVS_LINK_LIBPATHS =
+
+#
+# Build type specific flags. Globally relevant flags belong in the standard
+# macros, xxx_STD_FLAGS defined above. Platform specific macros belong in the
+# PlatformTools.env file in macros named xxx_PROJ_FLAGS.
+#
+
+#
+# Add a define to skip inclusion of Microsoft include file rpcasync.h, which
+# results in a compile warning at W4.
+#
+C_ARCH_FLAGS = /Od /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D __RPCASYNC_H__
+ASM_ARCH_FLAGS =
+LINK_ARCH_FLAGS = /MACHINE:i386
+LIB_ARCH_FLAGS =
+
+#
+# Always turn on debug for the build tools so that we can debug problems
+# quickly.
+# NOTE: Ideally all the tools makefiles should be updated to use LINK_FLAGS_EXE
+# instead of L_FLAGS for linking. When this happens we can get rid of
+# the L_FLAGS definition here.
+#
+
+#!IF "$(EFI_SYMBOLIC_DEBUG)" == "YES"
+C_STD_FLAGS = $(C_STD_FLAGS) /Zi /Gm /Fd$(EDK_TOOLS_OUTPUT)\$(TARGET_NAME)Obj
+LINK_ARCH_FLAGS = $(LINK_ARCH_FLAGS) /DEBUG
+L_FLAGS = $(L_FLAGS) /DEBUG
+#!ENDIF
+
+#
+# Clear any project flags when building tools
+#
+C_PROJ_FLAGS =
+ASM_PROJ_FLAGS =
+LINK_PROJ_FLAGS =
+LIB_PROJ_FLAGS =
+EBC_C_PROJ_FLAGS =
+EBC_LINK_PROJ_FLAGS =
+EBC_LIB_PROJ_FLAGS =
+
+#
+# Build tools
+#
+CC = cl
+LINK = link
+BSCMAKE = bscmake
+ASM = ml
+ASMLINK = link
+#
+# Use a different macro name for tools build to avoid conflict with environment
+# variable LIB
+#
+LIB_EXE = lib
+
+INC = -I $(EDK_SOURCE)\Foundation \
+ -I $(EDK_SOURCE)\Foundation\Efi \
+ -I $(EDK_SOURCE)\Foundation\Framework \
+ -I $(EDK_SOURCE)\Sample\Platform\Nt32 \
+ -I $(EDK_SOURCE)\Foundation\Core\Dxe \
+ -I $(EDK_SOURCE)\Foundation\Include \
+ -I $(EDK_SOURCE)\Foundation\Efi\Include \
+ -I $(EDK_SOURCE)\Foundation\Framework\Include \
+ -I $(EDK_SOURCE)\Foundation\Include\IndustryStandard \
+ -I $(EDK_SOURCE)\Foundation\Include\Ia32 \
+ -I $(EDK_SOURCE)\Foundation\Include\Pei \
+ -I $(EDK_SOURCE)\Foundation\Library\Pei\Include \
+ -I $(EDK_SOURCE)\Sample\Include \
+ -I "$(EDK_TOOLS_COMMON)"
+
+# END TOOLCHAIN_MSVC
+###############################################################################
+
+###############################################################################
+#
+# Specify the path and macros for the EBC tools
+#
+###############################################################################
+
+!ELSEIF "$(TOOLCHAIN)" == "TOOLCHAIN_EBC"
+
+!IF "$(EFI_GENERATE_INTERMEDIATE_FILE)" == "YES"
+EBC_C_STD_FLAGS = /nologo /W3 /WX /c /Fa$* /FAsc /Fo$@ $(INC) /X
+!ELSE
+EBC_C_STD_FLAGS = /nologo /W3 /WX /c /Fo$@ $(INC) /X
+!ENDIF
+
+#
+# All EBC entry point functions must be called EfiMain. Redefine it.
+#
+!IF "$(IMAGE_ENTRY_POINT)" == ""
+IMAGE_ENTRY_POINT = EfiMain
+!ENDIF
+EBC_C_STD_FLAGS = $(EBC_C_STD_FLAGS) /D $(IMAGE_ENTRY_POINT)=EfiMain
+EBC_LINK_STD_FLAGS = /nologo /MACHINE:EBC /BASE:0 /OPT:REF /NODEFAULTLIB
+EBC_LIB_STD_FLAGS = /nologo /MACHINE:EBC
+
+#
+# EBC tools path should be defined in LocalTools.env.
+#
+EBC_CC = $(EBC_TOOLS_PATH)\Bin\Iec
+EBC_LINK = $(EBC_TOOLS_PATH)\Bin\Link
+EBC_LIB = $(EBC_TOOLS_PATH)\Bin\Link /lib
+
+!IF "$(EFI_SYMBOLIC_DEBUG)" == "YES"
+EBC_C_STD_FLAGS = $(EBC_C_STD_FLAGS) /Zd /Zi
+EBC_LINK_STD_FLAGS = $(EBC_LINK_STD_FLAGS) /DEBUG
+!ENDIF
+
+# END TOOLCHAIN_EBC
+
+###############################################################################
+#
+# Let the caller define a NULL toolchain if they don't care. This way you can
+# pick up at least some defines.
+#
+###############################################################################
+
+!ELSEIF "$(TOOLCHAIN)" == ""
+
+###############################################################################
+#
+# You get this if the calling makefile did not define TOOLCHAIN_xxx before
+# including this file.
+#
+###############################################################################
+
+!ELSE
+!ERROR Unknown toolchain $(TOOLCHAIN) defined for $(EDK_SOURCE)\Sample\CommonTools.env use
+!ENDIF
+
+
+###############################################################################
+#
+# These are standard settings for all tool chains
+#
+###############################################################################
+
+#
+# These are standard build options
+#
+VERSION_FLAGS = /D EFI_SPECIFICATION_VERSION=$(EFI_SPECIFICATION_VERSION) \
+ /D PI_SPECIFICATION_VERSION=$(PI_SPECIFICATION_VERSION) \
+ /D TIANO_RELEASE_VERSION=$(TIANO_RELEASE_VERSION)
+C_STD_FLAGS = $(C_STD_FLAGS) $(VERSION_FLAGS)
+EBC_C_STD_FLAGS = $(EBC_C_STD_FLAGS) $(VERSION_FLAGS)
+VFRCOMPILE_FLAGS = $(VFRCOMPILE_FLAGS) -ppflag "$(VERSION_FLAGS)"
+
+!IF "$(EFI_DEBUG)" == "YES"
+C_STD_FLAGS = $(C_STD_FLAGS) /D EFI_DEBUG
+EBC_C_STD_FLAGS = $(EBC_C_STD_FLAGS) /D EFI_DEBUG
+VFRCOMPILE_FLAGS = $(VFRCOMPILE_FLAGS) -ppflag "/D EFI_DEBUG"
+!ENDIF
+
+!IF "$(EFI_DEBUG_CLEAR_MEMORY)" == "YES"
+C_STD_FLAGS = $(C_STD_FLAGS) /D EFI_DEBUG_CLEAR_MEMORY
+!ENDIF
+
+!IF "$(EFI_PEI_PERFORMANCE)" == "YES"
+C_STD_FLAGS = $(C_STD_FLAGS) /D EFI_PEI_PERFORMANCE /D EFI_DXE_PERFORMANCE
+!ENDIF
+
+!IF "$(EFI_ADDTIONAL_DRIVERS)" == "YES"
+C_STD_FLAGS = $(C_STD_FLAGS) /D EFI_ADDTIONAL_DRIVERS
+!ENDIF
+
+!IF "$(EFI_USE_CUSTOM_COMPRESS)" == "YES"
+C_STD_FLAGS = $(C_STD_FLAGS) /D EFI_USE_CUSTOM_COMPRESS
+!ENDIF
+
+!IF "$(EFI_UNLOCK_FWH)" == "YES"
+C_STD_FLAGS = $(C_STD_FLAGS) /D EFI_UNLOCK_FWH
+!ENDIF
+
+!IF "$(EFI_DXE_PERFORMANCE)" == "YES"
+C_STD_FLAGS = $(C_STD_FLAGS) /D EFI_DXE_PERFORMANCE
+!ENDIF
+
+!IF "$(EFI_DEBUG_SERIAL_PRINT)" == "YES"
+C_STD_FLAGS = $(C_STD_FLAGS) /D EFI_DEBUG_SERIAL_PRINT
+!ENDIF
+
+!IF "$(EFI_S3_RESUME)" == "YES"
+C_STD_FLAGS = $(C_STD_FLAGS) /D EFI_S3_RESUME
+!ENDIF
+
+!IF "$(EFI_PEI_REPORT_STATUS_CODE)" == "YES"
+C_STD_FLAGS = $(C_STD_FLAGS) /D EFI_PEI_REPORT_STATUS_CODE_ON
+!ENDIF
+
+###############################################################################
+
+###############################################################################
+#
+# Collect final build flags for components. These flags are used to build
+# any standard component and some non-standard components.
+#
+###############################################################################
+C_FLAGS = $(C_STD_FLAGS) $(C_ARCH_FLAGS) $(C_PROJ_FLAGS) $(C_STD_INCLUDE)
+ASM_FLAGS = $(ASM_STD_FLAGS) $(ASM_ARCH_FLAGS) $(ASM_PROJ_FLAGS)
+LINK_FLAGS_DLL = $(LINK_STD_FLAGS) $(LINK_ARCH_FLAGS) $(LINK_PROJ_FLAGS) /DLL
+LINK_FLAGS_EXE = $(LINK_STD_FLAGS) $(LINK_ARCH_FLAGS) $(LINK_PROJ_FLAGS)
+LIB_FLAGS = $(LIB_STD_FLAGS) $(LIB_ARCH_FLAGS) $(LIB_PROJ_FLAGS)
+EBC_C_FLAGS = $(EBC_C_STD_FLAGS) $(EBC_C_ARCH_FLAGS) $(EBC_C_PROJ_FLAGS)
+EBC_LINK_FLAGS = $(EBC_LINK_STD_FLAGS) $(EBC_LINK_ARCH_FLAGS) $(EBC_LINK_PROJ_FLAGS)
+EBC_LIB_FLAGS = $(EBC_LIB_STD_FLAGS) $(EBC_LIB_ARCH_FLAGS) $(EBC_LIB_PROJ_FLAGS)
+
+###############################################################################
+#
+# define X64 denpendant driver files
+#
+###############################################################################
+!IF "$(EFI_BUILD_TARGET_X64)" == "YES"
+BUILD_TARGET_PROCESSOR = X64
+DXE_IPL = DxeIplX64
+!ELSE
+BUILD_TARGET_PROCESSOR = IA32
+DXE_IPL = DxeIpl
+!ENDIF
+###############################################################################
+#
+# define EFI specification denpendant driver files
+#
+###############################################################################
+!IF "$(UEFI_MODE)" == "YES"
+UEFI_PREFIX = Uefi
+ATAPI_PASS_THRU_INF = Sample\Bus\Pci\AtapiExtPassThru\Dxe\AtapiExtPassThru.inf
+!IF "$(CAPSULE_INF)" == ""
+CAPSULE_INF = Sample\Universal\Capsule\RuntimeDxe\Capsule.inf
+!ENDIF
+DEVPATH_INF = Sample\Universal\DevicePath\Dxe\DevicePath.inf
+!ELSE
+UEFI_PREFIX =
+CAPSULE_INF =
+DEVPATH_INF =
+ATAPI_PASS_THRU_INF = Sample\Bus\Pci\AtapiPassThru\Dxe\AtapiPassThru.inf
+!ENDIF
+###############################################################################
+#
+# define PIWG specification denpendant driver files
+#
+###############################################################################
+!IF "$(PI_MODE)" == "YES"
+PI_PREFIX = Pi
+!ELSE
+PI_PREFIX =
+!ENDIF
+###############################################################################
+#
+# define customized compress makefile
+#
+###############################################################################
+CUSTOMIZEDCOMPRESS_MAKEFILE = $(EDK_TOOLS_SOURCE)\CustomizedCompress\Makefile
+COMPRESS_METHOD = Dummy
+###############################################################################
+#
+# define EFI_BINARY default path
+#
+###############################################################################
+!IFNDEF EFI_BINARY
+EFI_BINARY=$(EDK_TOOLS_OUTPUT)\Bin
+!ENDIF
+
+EFI_PLATFORM_BIN=$(EFI_BINARY)\$(PROJECT_NAME)$(BUILD_TARGET_DIRECTORY)