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