mirror of
				https://git.proxmox.com/git/mirror_edk2
				synced 2025-11-04 14:48:56 +00:00 
			
		
		
		
	git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11094 6f19259b-4bc3-4df7-8a09-765794883524
		
			
				
	
	
		
			732 lines
		
	
	
		
			25 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			732 lines
		
	
	
		
			25 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
#/*++
 | 
						|
#  
 | 
						|
#  Copyright (c) 2004 - 2010, Intel Corporation. All rights reserved.<BR>
 | 
						|
#  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
 | 
						|
EXE2BIN         = $(EDK_TOOLS_OUTPUT)\Strip
 | 
						|
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
 | 
						|
GENTEIMAGE      = $(EDK_TOOLS_OUTPUT)\GenTEImage
 | 
						|
GUIDCHK         = $(EDK_TOOLS_OUTPUT)\GuidChk
 | 
						|
HIIPACK         = $(EDK_TOOLS_OUTPUT)\HiiPack
 | 
						|
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 /EHs-c- /GR- /Gy /GS- /D USE_VC8 /c /Fa$* /FAsc /Fo$@ /FR$(@R).SBR $(INC)
 | 
						|
!ELSE
 | 
						|
C_STD_FLAGS         = /nologo /W4 /WX /GX- /GR- /Gy /c /Fa$* /FAsc /Fo$@ /FR$(@R).SBR $(INC)
 | 
						|
!ENDIF
 | 
						|
ASM_STD_FLAGS       = /nologo /Fl$*.lst $(INC)
 | 
						|
 | 
						|
!ELSE
 | 
						|
 | 
						|
!IF "$(USE_VC8)" == "YES"
 | 
						|
C_STD_FLAGS         = /nologo /W4 /WX /EHs-c- /GR- /Gy /GS- /D USE_VC8 /c /Fo$@ $(INC)
 | 
						|
!ELSE
 | 
						|
C_STD_FLAGS         = /nologo /W4 /WX /GX- /GR- /Gy /c /Fo$@ $(INC)
 | 
						|
!ENDIF
 | 
						|
ASM_STD_FLAGS       = /nologo $(INC) 
 | 
						|
 | 
						|
!ENDIF
 | 
						|
 | 
						|
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
 | 
						|
RC                = rc
 | 
						|
 | 
						|
!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 /EHs-c- /GR- /Gy /c /GS- /Fa$* /FAsc /Fo$@ /FR$(@R).SBR $(INC) 
 | 
						|
ASM_STD_FLAGS       = /nologo /Fl$*.lst $(INC)
 | 
						|
!ELSE
 | 
						|
C_STD_FLAGS         = /nologo /W4 /WX /EHs-c- /GR- /Gy /c /GS- /Fo$@ $(INC) 
 | 
						|
ASM_STD_FLAGS       = /nologo $(INC)
 | 
						|
!ENDIF
 | 
						|
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
 | 
						|
RC                = rc
 | 
						|
 | 
						|
!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 /EHs-c- /GR- /Gy /GS- /c /Fa$* /FAsc /Fo$@ /FR$(@R).SBR $(INC)
 | 
						|
!ELSE
 | 
						|
!IF "$(USE_NEWDDK)" == "YES"
 | 
						|
C_STD_FLAGS         = /nologo /W4 /WX /EHs-c- /GR- /Gy /GS- /c /Fa$* /FAsc /Fo$@ /FR$(@R).SBR $(INC)
 | 
						|
!ELSE
 | 
						|
C_STD_FLAGS         = /nologo /W4 /WX /GX- /GR- /Gy /c /Fa$* /FAsc /Fo$@ /FR$(@R).SBR $(INC)
 | 
						|
!ENDIF
 | 
						|
!ENDIF
 | 
						|
 | 
						|
!ELSE
 | 
						|
 | 
						|
!IF "$(USE_VC8_IPF)" == "YES"
 | 
						|
C_STD_FLAGS         = /nologo /W4 /WX /EHs-c- /GR- /Gy /GS- /c /Fo$@ $(INC)
 | 
						|
!ELSE
 | 
						|
!IF "$(USE_NEWDDK)" == "YES"
 | 
						|
C_STD_FLAGS         = /nologo /W4 /WX /EHs-c- /GR- /Gy /GS- /c /Fo$@ $(INC)
 | 
						|
!ELSE
 | 
						|
C_STD_FLAGS         = /nologo /W4 /WX /GX- /GR- /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
 | 
						|
RC                = rc
 | 
						|
 | 
						|
!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
 | 
						|
ASM_STD_FLAGS       = /nologo /Fl$*.lst $(INC)
 | 
						|
 | 
						|
!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
 | 
						|
ASM_STD_FLAGS       = /nologo $(INC)
 | 
						|
 | 
						|
!ENDIF
 | 
						|
 | 
						|
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
 | 
						|
 | 
						|
RC                = rc
 | 
						|
 | 
						|
!IF "$(EFI_SYMBOLIC_DEBUG)" == "YES"
 | 
						|
EBC_C_STD_FLAGS     = $(EBC_C_STD_FLAGS) /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)
 | 
						|
C_FLAGS_ASL         = $(C_FLAGS_ASL) $(VERSION_FLAGS)
 | 
						|
VFRCOMPILE_FLAGS    = $(VFRCOMPILE_FLAGS) -ppflag "$(VERSION_FLAGS)"
 | 
						|
!IF "$(TOOLCHAIN)" != "TOOLCHAIN_IPF"
 | 
						|
ASM_STD_FLAGS       = $(ASM_STD_FLAGS) $(VERSION_FLAGS)
 | 
						|
!ENDIF
 | 
						|
 | 
						|
!IF "$(TOOLCHAIN)" != "TOOLCHAIN_MSVC"
 | 
						|
BUILD_STRING_FLAGS       = /D EFI_BUILD_VERSION="L\"$(EDK_BUILD_VERSION)\"" /D EFI_FIRMWARE_VENDOR="L\"TianoCore.org\""
 | 
						|
!ELSE
 | 
						|
BUILD_STRING_FLAGS       = /D UTILITY_BUILD="\"$(EDK_BUILD_VERSION)\"" /D UTILITY_VENDOR="\"TianoCore.org\""
 | 
						|
!ENDIF
 | 
						|
 | 
						|
C_STD_FLAGS         = $(C_STD_FLAGS) $(BUILD_STRING_FLAGS)
 | 
						|
EBC_C_STD_FLAGS     = $(EBC_C_STD_FLAGS) $(BUILD_STRING_FLAGS)
 | 
						|
 | 
						|
!IF "$(EFI_DEBUG)" == "YES"
 | 
						|
FEATURE_FLAGS   = $(FEATURE_FLAGS) /D EFI_DEBUG
 | 
						|
!ENDIF
 | 
						|
 | 
						|
!IF "$(EFI_DEBUG_CLEAR_MEMORY)" == "YES"
 | 
						|
FEATURE_FLAGS   = $(FEATURE_FLAGS) /D EFI_DEBUG_CLEAR_MEMORY
 | 
						|
!ENDIF
 | 
						|
 | 
						|
!IF "$(EFI_PEI_PERFORMANCE)" == "YES"
 | 
						|
FEATURE_FLAGS   = $(FEATURE_FLAGS) /D EFI_PEI_PERFORMANCE /D EFI_DXE_PERFORMANCE
 | 
						|
!ENDIF
 | 
						|
 | 
						|
!IF "$(EFI_ADDTIONAL_DRIVERS)" == "YES"
 | 
						|
FEATURE_FLAGS   = $(FEATURE_FLAGS) /D EFI_ADDTIONAL_DRIVERS
 | 
						|
!ENDIF
 | 
						|
 | 
						|
!IF "$(EFI_USE_CUSTOM_COMPRESS)" == "YES"
 | 
						|
FEATURE_FLAGS   = $(FEATURE_FLAGS) /D EFI_USE_CUSTOM_COMPRESS
 | 
						|
!ENDIF
 | 
						|
 | 
						|
!IF "$(EFI_UNLOCK_FWH)" == "YES"
 | 
						|
FEATURE_FLAGS   = $(FEATURE_FLAGS) /D EFI_UNLOCK_FWH
 | 
						|
!ENDIF
 | 
						|
 | 
						|
!IF "$(EFI_DXE_PERFORMANCE)" == "YES"
 | 
						|
FEATURE_FLAGS   = $(FEATURE_FLAGS) /D EFI_DXE_PERFORMANCE
 | 
						|
!ENDIF
 | 
						|
 | 
						|
!IF "$(EFI_S3_RESUME)" == "YES"
 | 
						|
FEATURE_FLAGS   = $(FEATURE_FLAGS) /D EFI_S3_RESUME
 | 
						|
!ENDIF
 | 
						|
 | 
						|
!IF "$(EFI_NO_CSM_SUPPORT)" == "YES"
 | 
						|
FEATURE_FLAGS   = $(FEATURE_FLAGS) /D EFI_NO_CSM_SUPPORT
 | 
						|
!ENDIF
 | 
						|
 | 
						|
!IF "$(EFI_SIZE_REDUCTION_APPLIED)" == "YES"
 | 
						|
FEATURE_FLAGS   = $(FEATURE_FLAGS) /D EFI_SIZE_REDUCTION_APPLIED
 | 
						|
!ENDIF
 | 
						|
 | 
						|
!IF "$(EFI_PEI_REPORT_STATUS_CODE)" == "YES"
 | 
						|
FEATURE_FLAGS   = $(FEATURE_FLAGS) /D EFI_PEI_REPORT_STATUS_CODE_ON
 | 
						|
!ENDIF
 | 
						|
 | 
						|
!IF "$(SIZE_REDUCTION_ISA_COMBINED)" == "YES"
 | 
						|
FEATURE_FLAGS   = $(FEATURE_FLAGS) /D SIZE_REDUCTION_ISA_COMBINED
 | 
						|
!ENDIF
 | 
						|
 | 
						|
C_STD_FLAGS       = $(C_STD_FLAGS) $(FEATURE_FLAGS)
 | 
						|
EBC_C_STD_FLAGS   = $(EBC_C_STD_FLAGS) $(FEATURE_FLAGS)
 | 
						|
C_FLAGS_ASL       = $(C_FLAGS_ASL) $(FEATURE_FLAGS)
 | 
						|
VFRCOMPILE_FLAGS  = $(VFRCOMPILE_FLAGS) -ppflag "$(FEATURE_FLAGS)"
 | 
						|
!IF "$(TOOLCHAIN)" != "TOOLCHAIN_IPF"
 | 
						|
ASM_STD_FLAGS     = $(ASM_STD_FLAGS) $(FEATURE_FLAGS)
 | 
						|
!ENDIF
 | 
						|
 | 
						|
#
 | 
						|
# This is used for preprocessing dependency files
 | 
						|
#
 | 
						|
C_FLAGS_DPX       = /nologo /EP $(INC) $(VERSION_FLAGS) $(FEATURE_FLAGS)
 | 
						|
 | 
						|
###############################################################################
 | 
						|
 | 
						|
###############################################################################
 | 
						|
#
 | 
						|
# 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_SOURCE)\Bin
 | 
						|
!ENDIF
 | 
						|
 | 
						|
EFI_PLATFORM_BIN=$(EFI_BINARY)\$(PROJECT_NAME)$(BUILD_TARGET_DIRECTORY)
 |