From 3eb9473ea9a949badfe06ae61d2d3fcfa53651c7 Mon Sep 17 00:00:00 2001 From: qwang12 Date: Thu, 28 Jun 2007 07:00:39 +0000 Subject: Add in the 1st version of ECP. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2832 6f19259b-4bc3-4df7-8a09-765794883524 --- EdkCompatibilityPkg/Sample/CommonTools.env | 672 +++++++++++++++++++++++++++++ 1 file changed, 672 insertions(+) create mode 100644 EdkCompatibilityPkg/Sample/CommonTools.env (limited to 'EdkCompatibilityPkg/Sample/CommonTools.env') 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) -- cgit v1.2.3