#/*++
#  
#  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)
