#/*++
#  
#  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
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
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

!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

!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

!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

!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)
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 "$(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_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)
