]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Conf/tools_def.template
Add link Map option for GCC tool to generate map file.
[mirror_edk2.git] / Tools / Conf / tools_def.template
index 99d9a7b941691f1461f63730db21c9bb3334c1a5..f89884cb6d220fef66dc919b25d25b56272c93ff 100644 (file)
@@ -1,5 +1,5 @@
 #\r
-#  Copyright (c) 2006, Intel Corporation\r
+#  Copyright (c) 2006 - 2007 Intel Corporation. <BR>\r
 #\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
@@ -44,8 +44,11 @@ IDENTIFIER = Default TOOL_CHAIN_CONF
 #   VS2005PRO        - Microsoft Visual Studio 2005 Professional Edition \r
 #   VS2005TEAMSUITE  - Microsoft Visual Studio 2005 Team Suite Edition\r
 #   WINDDK3790x1830  - Microsoft Windows DDK 3790.1830\r
-#   UINIXGCC         - UINIX GCC\r
+#   UNIXGCC          - UNIX GCC\r
+#   ELFGCC           - GCC for Unix Package to produce elf binary.\r
 #   CYGWINGCC        - CygWin GCC\r
+#   UNIXPKGCYGWINGCC - CygWin GCC for Unix Package.\r
+#   ICC              - Intel C Compiler V9.1\r
 #   MYTOOLS          - Settings compatible with previous versions of tools_def.template\r
 #\r
 ####################################################################################\r
@@ -59,10 +62,11 @@ IDENTIFIER = Default TOOL_CHAIN_CONF
 *_VS2003_IA32_*_FAMILY          = MSFT\r
 \r
 *_VS2003_IA32_CC_NAME           = cl.exe  \r
-*_VS2003_IA32_VFR_NAME          = cl.exe\r
+*_VS2003_IA32_VFRPP_NAME        = cl.exe\r
 *_VS2003_IA32_SLINK_NAME        = lib.exe\r
 *_VS2003_IA32_DLINK_NAME        = link.exe\r
 *_VS2003_IA32_ASMLINK_NAME      = link.exe\r
+*_VS2003_IA32_APP_NAME          = cl.exe \r
 *_VS2003_IA32_PP_NAME           = cl.exe \r
 *_VS2003_IA32_ASM_NAME          = ml.exe\r
 *_VS2003_IA32_ASM_EXT           = .asm\r
@@ -74,8 +78,9 @@ IDENTIFIER = Default TOOL_CHAIN_CONF
 *_VS2003_IA32_*_PATH            = C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin\r
 *_VS2003_IA32_*_DPATH           = C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\IDE\r
 \r
+*_VS2003_IA32_APP_FLAGS         = /nologo /P /TC \r
 *_VS2003_IA32_PP_FLAGS          = /nologo /P /TC /FI${DEST_DIR_DEBUG}/AutoGen.h \r
-*_VS2003_IA32_VFR_FLAGS         = /nologo /P /TC /DVFRCOMPILE\r
+*_VS2003_IA32_VFRPP_FLAGS       = /nologo /P /TC /DVFRCOMPILE\r
 DEBUG_VS2003_IA32_CC_FLAGS      = /nologo /W4 /WX /Gy /c /D UNICODE /D EFI32 /O1ib2 /GL /DSTRING_ARRAY_NAME=${BASE_NAME}Strings /FI${DEST_DIR_DEBUG}/AutoGen.h /EHs-c- /GF /Gs8192 /Fp${DEST_DIR_OUTPUT}/AutoGen.h.gch /Yu${DEST_DIR_DEBUG}/AutoGen.h /Zi /Gm\r
 RELEASE_VS2003_IA32_CC_FLAGS    = /nologo /W4 /WX /Gy /c /D UNICODE /D EFI32 /O1ib2 /GL /DSTRING_ARRAY_NAME=${BASE_NAME}Strings /FI${DEST_DIR_DEBUG}/AutoGen.h /EHs-c- /GF /Gs8192 /Fp${DEST_DIR_OUTPUT}/AutoGen.h.gch /Yu${DEST_DIR_DEBUG}/AutoGen.h\r
 DEBUG_VS2003_IA32_PCH_FLAGS     = /nologo /W4 /WX /Gy /c /D UNICODE /D EFI32 /O1ib2 /GL /DSTRING_ARRAY_NAME=${BASE_NAME}Strings /FI${DEST_DIR_DEBUG}/AutoGen.h /EHs-c- /GF /Gs8192 /Fp${DEST_DIR_OUTPUT}/AutoGen.h.gch /Yc /TC /Zi /Gm\r
@@ -95,15 +100,17 @@ RELEASE_VS2003_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /O
 *_WINDDK3790x1830_*_*_FAMILY        = MSFT\r
 \r
 *_WINDDK3790x1830_*_CC_NAME         = cl.exe\r
-*_WINDDK3790x1830_*_VFR_NAME        = cl.exe\r
+*_WINDDK3790x1830_*_VFRPP_NAME      = cl.exe\r
 *_WINDDK3790x1830_*_SLINK_NAME      = lib.exe\r
 *_WINDDK3790x1830_*_DLINK_NAME      = link.exe\r
 *_WINDDK3790x1830_*_ASMLINK_NAME    = link.exe\r
 *_WINDDK3790x1830_*_PP_NAME         = cl.exe\r
+*_WINDDK3790x1830_*_APP_NAME        = cl.exe\r
 *_WINDDK3790x1830_*_PCH_NAME        = cl.exe\r
 \r
+*_WINDDK3790x1830_*_APP_FLAGS       = /nologo /P /TC\r
 *_WINDDK3790x1830_*_SLINK_FLAGS     = /nologo /LTCG\r
-*_WINDDK3790x1830_*_VFR_FLAGS       = /nologo /P /TC /DVFRCOMPILE\r
+*_WINDDK3790x1830_*_VFRPP_FLAGS     = /nologo /P /TC /DVFRCOMPILE\r
 ##################\r
 # IA32 definitions\r
 ##################\r
@@ -145,17 +152,19 @@ RELEASE_WINDDK3790x1830_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OP
 ##################\r
 # IPF definitions\r
 ##################\r
-*_WINDDK3790x1830_IPF_APP_NAME      = cl.exe\r
-*_WINDDK3790x1830_IPF_ASM_NAME      = ias.exe\r
-*_WINDDK3790x1830_IPF_ASM_EXT       = .s\r
-*_WINDDK3790x1830_IPF_*_PATH        = C:\WINDDK\3790.1830\bin\win64\x86\r
-\r
-*_WINDDK3790x1830_IPF_APP_FLAGS     = /nologo /P /TC\r
-*_WINDDK3790x1830_IPF_PP_FLAGS      = /nologo /P /TC /FI${DEST_DIR_DEBUG}/AutoGen.h\r
-*_WINDDK3790x1830_IPF_CC_FLAGS      = /GS- /nologo /W4 /WX /EHs-c- /Gy /c /D EFI64 /O1i /DSTRING_ARRAY_NAME=${BASE_NAME}Strings /FI${DEST_DIR_DEBUG}/AutoGen.h /Fp${DEST_DIR_OUTPUT}/AutoGen.h.gch /Yu${DEST_DIR_DEBUG}/AutoGen.h\r
-*_WINDDK3790x1830_IPF_PCH_FLAGS     = /GS- /nologo /W4 /WX /EHs-c- /Gy /c /D EFI64 /O1i /DSTRING_ARRAY_NAME=${BASE_NAME}Strings /FI${DEST_DIR_DEBUG}/AutoGen.h /Fp${DEST_DIR_OUTPUT}/AutoGen.h.gch /Yc /TC\r
-*_WINDDK3790x1830_IPF_ASM_FLAGS     = -N us -X explicit -M ilp64 -N so -W4\r
-*_WINDDK3790x1830_IPF_DLINK_FLAGS   = /NOLOGO /NODEFAULTLIB /LTCG /OPT:REF /IGNORE:4086 /MAP /MACHINE:IA64 /ENTRY:${ENTRYPOINT} /SUBSYSTEM:CONSOLE /MAP:${DEST_DIR_DEBUG}/${BASE_NAME}.map /PDB:${DEST_DIR_DEBUG}/${BASE_NAME}.pdb \r
+*_WINDDK3790x1830_IPF_ASM_NAME          = ias.exe\r
+*_WINDDK3790x1830_IPF_ASM_EXT           = .s\r
+*_WINDDK3790x1830_IPF_*_PATH            = C:\WINDDK\3790.1830\bin\win64\x86\r
+\r
+*_WINDDK3790x1830_IPF_PP_FLAGS          = /nologo /P /TC /FI${DEST_DIR_DEBUG}/AutoGen.h\r
+DEBUG_WINDDK3790x1830_IPF_CC_FLAGS      = /GS- /nologo /QIPF_fr32 /W4 /WX /EHs-c- /Gy /c /Os /GL /X /D EFI64 /DSTRING_ARRAY_NAME=${BASE_NAME}Strings /FI${DEST_DIR_DEBUG}/AutoGen.h /Fp${DEST_DIR_OUTPUT}/AutoGen.h.gch /Yu${DEST_DIR_DEBUG}/AutoGen.h /Zi\r
+RELEASE_WINDDK3790x1830_IPF_CC_FLAGS    = /GS- /nologo /QIPF_fr32 /W4 /WX /EHs-c- /Gy /c /Os /GL /X /D EFI64 /DSTRING_ARRAY_NAME=${BASE_NAME}Strings /FI${DEST_DIR_DEBUG}/AutoGen.h /Fp${DEST_DIR_OUTPUT}/AutoGen.h.gch /Yu${DEST_DIR_DEBUG}/AutoGen.h\r
+DEBUG_WINDDK3790x1830_IPF_PCH_FLAGS     = /GS- /nologo /QIPF_fr32 /W4 /WX /EHs-c- /Gy /c /Os /GL /X /D EFI64 /DSTRING_ARRAY_NAME=${BASE_NAME}Strings /FI${DEST_DIR_DEBUG}/AutoGen.h /Fp${DEST_DIR_OUTPUT}/AutoGen.h.gch /Yc /TC /Zi\r
+RELEASE_WINDDK3790x1830_IPF_PCH_FLAGS   = /GS- /nologo /QIPF_fr32 /W4 /WX /EHs-c- /Gy /c /Os /GL /X /D EFI64 /DSTRING_ARRAY_NAME=${BASE_NAME}Strings /FI${DEST_DIR_DEBUG}/AutoGen.h /Fp${DEST_DIR_OUTPUT}/AutoGen.h.gch /Yc /TC\r
+DEBUG_WINDDK3790x1830_IPF_ASM_FLAGS     = -N us -X explicit -M ilp64 -N so -W4 -d debug\r
+RELEASE_WINDDK3790x1830_IPF_ASM_FLAGS   = -N us -X explicit -M ilp64 -N so -W4\r
+DEBUG_WINDDK3790x1830_IPF_DLINK_FLAGS   = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:32 /MACHINE:IA64 /ENTRY:${ENTRYPOINT} /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:${DEST_DIR_DEBUG}/${BASE_NAME}.map /PDB:${DEST_DIR_DEBUG}/${BASE_NAME}.pdb /DEBUG\r
+RELEASE_WINDDK3790x1830_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF.ICF /IGNORE:4086 /MAP /ALIGN:32 /MACHINE:IA64 /ENTRY:${ENTRYPOINT} /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:${DEST_DIR_DEBUG}/${BASE_NAME}.map /PDB:${DEST_DIR_DEBUG}/${BASE_NAME}.pdb \r
 \r
 ##################\r
 # EBC definitions\r
@@ -205,12 +214,14 @@ RELEASE_WINDDK3790x1830_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OP
 *_VS2005PRO_*_DLINK_NAME     = link.exe\r
 *_VS2005PRO_*_ASMLINK_NAME   = link.exe\r
 *_VS2005PRO_*_PP_NAME        = cl.exe\r
-*_VS2005PRO_*_VFR_NAME       = cl.exe\r
+*_VS2005PRO_*_APP_NAME       = cl.exe\r
+*_VS2005PRO_*_VFRPP_NAME     = cl.exe\r
 *_VS2005PRO_*_PCH_NAME       = cl.exe\r
 \r
 *_VS2005PRO_*_SLINK_FLAGS       = /NOLOGO /LTCG\r
+*_VS2005PRO_*_APP_FLAGS         = /nologo /P /TC\r
 *_VS2005PRO_*_PP_FLAGS          = /nologo /P /TC /FI${DEST_DIR_DEBUG}/AutoGen.h \r
-*_VS2005PRO_*_VFR_FLAGS         = /nologo /P /TC /DVFRCOMPILE\r
+*_VS2005PRO_*_VFRPP_FLAGS       = /nologo /P /TC /DVFRCOMPILE\r
 \r
 ##################\r
 # IA32 definitions\r
@@ -279,30 +290,34 @@ RELEASE_VS2005PRO_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF
 #\r
 ####################################################################################\r
 \r
+\r
 ####################################################################################\r
 #\r
-# UNIX GCC\r
+# MINGW32\r
+#\r
+# You can build a mingw32 toolchain by downloading the script package called\r
+# x86-mingw32-build.sh from the mingw project home page. It will walk you through\r
+# some options and explain what to do.\r
 #\r
 ####################################################################################\r
 \r
-*_UNIXGCC_IA32_*_FAMILY     = GCC\r
-\r
-*_UNIXGCC_IA32_CC_NAME      = gcc\r
-*_UNIXGCC_IA32_SLINK_NAME   = ar\r
-*_UNIXGCC_IA32_DLINK_NAME   = ld\r
-*_UNIXGCC_IA32_ASM_NAME     = gcc\r
-*_UNIXGCC_IA32_PP_NAME      = gcc\r
-*_UNIXGCC_IA32_VFR_NAME     = gcc\r
+*_MINGW_*_*_FAMILY        = GCC\r
 \r
-*_UNIXGCC_IA32_CC_FLAGS     = -Os -fshort-wchar -fno-strict-aliasing -Wall -Werror -c -include ${DEST_DIR_DEBUG}/AutoGen.h\r
-*_UNIXGCC_*_DLINK_FLAGS     = -nostdlib -O2 --gc-sections --dll --export-all-symbols --entry _${ENTRYPOINT}\r
-*_UNIXGCC_IA32_ASM_FLAGS    = -c -imacros ${DEST_DIR_DEBUG}/AutoGen.h\r
-*_UNIXGCC_*_PP_FLAGS        = -E -x assembler-with-cpp -include ${DEST_DIR_DEBUG}/AutoGen.h\r
-*_UNIXGCC_*_VFR_FLAGS        = -x c -E -P -DVFRCOMPILE\r
+*_MINGW_IA32_CC_NAME      = gcc\r
+*_MINGW_IA32_SLINK_NAME   = ar\r
+*_MINGW_IA32_DLINK_NAME   = ld\r
+*_MINGW_IA32_ASM_NAME     = gcc\r
+*_MINGW_IA32_PP_NAME      = gcc\r
+*_MINGW_IA32_VFRPP_NAME   = gcc\r
 \r
-*_UNIXGCC_IA32_ASM_EXT      = .S\r
-*_UNIXGCC_IA32_*_PATH       = /opt/tiano/i386-tiano-pe/i386-tiano-pe/bin\r
+*_MINGW_*_CC_FLAGS        = -Os -fshort-wchar -fno-strict-aliasing -Wall -Werror -c -include ${DEST_DIR_DEBUG}/AutoGen.h\r
+*_MINGW_*_DLINK_FLAGS     = -nostdlib -O2 --gc-sections --dll --export-all-symbols --entry _${ENTRYPOINT} --file-alignment 0x20 --section-alignment 0x20 \r
+*_MINGW_*_ASM_FLAGS       = -c -imacros ${DEST_DIR_DEBUG}/AutoGen.h  -DASM_PFX(name)=_##name\r
+*_MINGW_*_PP_FLAGS        = -E -x assembler-with-cpp -include ${DEST_DIR_DEBUG}/AutoGen.h\r
+*_MINGW_*_VFRPP_FLAGS     = -x c -E -P -DVFRCOMPILE\r
+*_MINGW_*_ASM_EXT         = .S\r
 \r
+*_MINGW_IA32_*_PATH       = /opt/mingw/i386-mingw32/bin/\r
 \r
 ####################################################################################\r
 #\r
@@ -318,18 +333,21 @@ RELEASE_VS2005PRO_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF
 *_UNIXGCC_IA32_DLINK_NAME   = ld\r
 *_UNIXGCC_IA32_ASM_NAME     = gcc\r
 *_UNIXGCC_IA32_PP_NAME      = gcc\r
+*_UNIXGCC_IA32_VFRPP_NAME   = gcc\r
 \r
 *_UNIXGCC_X64_CC_NAME       = gcc\r
 *_UNIXGCC_X64_SLINK_NAME    = ar\r
 *_UNIXGCC_X64_DLINK_NAME    = ld\r
 *_UNIXGCC_X64_ASM_NAME      = gcc\r
 *_UNIXGCC_X64_PP_NAME       = gcc\r
+*_UNIXGCC_X64_VFRPP_NAME    = gcc\r
 \r
-*_UNIXGCC_IA32_CC_FLAGS     = -Os -fshort-wchar -fno-strict-aliasing -Wall -Werror -c -include ${DEST_DIR_DEBUG}/AutoGen.h\r
-*_UNIXGCC_X64_CC_FLAGS      = -Os -fshort-wchar -fno-strict-aliasing -Wall -Werror -c -include ${DEST_DIR_DEBUG}/AutoGen.h -D_EFI_P64\r
-*_UNIXGCC_*_DLINK_FLAGS     = -nostdlib -O2 --gc-sections --dll --export-all-symbols --entry _${ENTRYPOINT}\r
-*_UNIXGCC_*_ASM_FLAGS       = -c -imacros ${DEST_DIR_DEBUG}/AutoGen.h\r
+*_UNIXGCC_IA32_CC_FLAGS     = -Os -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-missing-braces -c -include ${DEST_DIR_DEBUG}/AutoGen.h\r
+*_UNIXGCC_X64_CC_FLAGS      = -Os -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-missing-braces -c -include ${DEST_DIR_DEBUG}/AutoGen.h -D_EFI_P64\r
+*_UNIXGCC_*_DLINK_FLAGS     = -nostdlib -O2 --gc-sections --dll --export-all-symbols --entry _${ENTRYPOINT} --file-alignment 0x20 --section-alignment 0x20 -Map ${DEST_DIR_DEBUG}/${BASE_NAME}.map\r
+*_UNIXGCC_*_ASM_FLAGS       = -c -imacros ${DEST_DIR_DEBUG}/AutoGen.h -DASM_PFX(name)=_##name\r
 *_UNIXGCC_*_PP_FLAGS        = -E -x assembler-with-cpp -include ${DEST_DIR_DEBUG}/AutoGen.h\r
+*_UNIXGCC_*_VFRPP_FLAGS     = -x c -E -P -DVFRCOMPILE\r
 *_UNIXGCC_*_ASM_EXT         = .S\r
 \r
 *_UNIXGCC_IA32_*_PATH       = /opt/tiano/i386-tiano-pe/i386-tiano-pe/bin\r
@@ -350,26 +368,81 @@ RELEASE_VS2005PRO_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF
 *_CYGWINGCC_IA32_DLINK_NAME   = ld\r
 *_CYGWINGCC_IA32_ASM_NAME     = gcc\r
 *_CYGWINGCC_IA32_PP_NAME      = gcc\r
-*_CYGWINGCC_IA32_VFR_NAME     = gcc\r
+*_CYGWINGCC_IA32_VFRPP_NAME   = gcc\r
 \r
 *_CYGWINGCC_X64_CC_NAME       = gcc\r
 *_CYGWINGCC_X64_SLINK_NAME    = ar\r
 *_CYGWINGCC_X64_DLINK_NAME    = ld\r
 *_CYGWINGCC_X64_ASM_NAME      = gcc\r
 *_CYGWINGCC_X64_PP_NAME       = gcc\r
+*_CYGWINGCC_X64_VFRPP_NAME    = gcc\r
 \r
 *_CYGWINGCC_IA32_CC_FLAGS     = -Os -fshort-wchar -fno-strict-aliasing -Wall -Werror -c -include ${DEST_DIR_DEBUG}/AutoGen.h\r
 *_CYGWINGCC_X64_CC_FLAGS      = -Os -fshort-wchar -fno-strict-aliasing -Wall -Werror -c -include ${DEST_DIR_DEBUG}/AutoGen.h -D_EFI_P64\r
-*_CYGWINGCC_*_DLINK_FLAGS     = -nostdlib -O2 --gc-sections --dll --export-all-symbols --entry _${ENTRYPOINT}\r
-*_CYGWINGCC_*_ASM_FLAGS       = -c -imacros ${DEST_DIR_DEBUG}/AutoGen.h\r
+*_CYGWINGCC_*_DLINK_FLAGS     = -nostdlib -O2 --gc-sections --dll --export-all-symbols --entry _${ENTRYPOINT} --file-alignment 0x20 --section-alignment 0x20 -Map ${DEST_DIR_DEBUG}/${BASE_NAME}.map\r
+*_CYGWINGCC_*_ASM_FLAGS       = -c -imacros ${DEST_DIR_DEBUG}/AutoGen.h -DASM_PFX(name)=_##name\r
 *_CYGWINGCC_*_PP_FLAGS        = -E -x assembler-with-cpp -include ${DEST_DIR_DEBUG}/AutoGen.h\r
-*_CYGWINGCC_*_VFR_FLAGS       = -x c -E -P -DVFRCOMPILE\r
+*_CYGWINGCC_*_VFRPP_FLAGS     = -x c -E -P -DVFRCOMPILE\r
 *_CYGWINGCC_*_ASM_EXT         = .S\r
 \r
 *_CYGWINGCC_IA32_*_PATH       = c:/Cygwin/opt/tiano/i386-tiano-pe/i386-tiano-pe/bin\r
 *_CYGWINGCC_X64_*_PATH        = c:/Cygwin/opt/tiano/x86_64-pc-mingw64/x86_64-pc-mingw64/bin\r
 *_CYGWINGCC_*_*_DPATH         = c:/Cygwin/bin\r
 \r
+####################################################################################\r
+#\r
+# Elf GCC - This configuration is used to compile on Linux boxes to produce elf\r
+#           binaries.\r
+#\r
+####################################################################################\r
+\r
+\r
+*_ELFGCC_*_*_FAMILY        = GCC\r
+\r
+*_ELFGCC_IA32_CC_NAME      = gcc\r
+*_ELFGCC_IA32_SLINK_NAME   = ar\r
+*_ELFGCC_IA32_DLINK_NAME   = ld\r
+*_ELFGCC_IA32_ASM_NAME     = gcc\r
+*_ELFGCC_IA32_PP_NAME      = gcc\r
+*_ELFGCC_IA32_VFRPP_NAME   = gcc\r
+\r
+*_ELFGCC_IA32_CC_FLAGS     = -m32 -g -fshort-wchar -Wall -Werror -c -include ${DEST_DIR_DEBUG}/AutoGen.h -DSTRING_ARRAY_NAME=${BASE_NAME}Strings\r
+*_ELFGCC_IA32_DLINK_FLAGS  = -melf_i386 -nostdlib -n -q -Ttext 0x220 --entry ${ENTRYPOINT} -u ${ENTRYPOINT}\r
+*_ELFGCC_IA32_ASM_FLAGS    = -m32 -c -imacros ${DEST_DIR_DEBUG}/AutoGen.h -DASM_PFX(name)=name\r
+*_ELFGCC_IA32_PP_FLAGS     = -m32 -E -x assembler-with-cpp -include ${DEST_DIR_DEBUG}/AutoGen.h\r
+\r
+*_ELFGCC_*_DLINK_FLAGS     = -nostdlib -n -q -Ttext 0x220 --entry ${ENTRYPOINT} -u ${ENTRYPOINT} -Map ${DEST_DIR_DEBUG}/${BASE_NAME}.map\r
+*_ELFGCC_*_ASM_FLAGS       = -c -imacros ${DEST_DIR_DEBUG}/AutoGen.h -DASM_PFX(name)=name\r
+*_ELFGCC_*_PP_FLAGS        = -E -x assembler-with-cpp -include ${DEST_DIR_DEBUG}/AutoGen.h\r
+*_ELFGCC_*_VFRPP_FLAGS     = -x c -E -P -DVFRCOMPILE\r
+*_ELFGCC_*_ASM_EXT         = .S\r
+\r
+*_ELFGCC_IA32_*_PATH       = /usr/bin\r
+\r
+####################################################################################\r
+#\r
+# UnixPkg CYGWIN GCC - This configuration is used to compile on CYGWIN environment for UnixPkg.\r
+#\r
+####################################################################################\r
+\r
+\r
+*_UNIXPKGCYGWINGCC_*_*_FAMILY        = GCC\r
+\r
+*_UNIXPKGCYGWINGCC_IA32_CC_NAME      = gcc\r
+*_UNIXPKGCYGWINGCC_IA32_SLINK_NAME   = ar\r
+*_UNIXPKGCYGWINGCC_IA32_DLINK_NAME   = ld\r
+*_UNIXPKGCYGWINGCC_IA32_ASM_NAME     = gcc\r
+*_UNIXPKGCYGWINGCC_IA32_PP_NAME      = gcc\r
+*_UNIXPKGCYGWINGCC_IA32_VFRPP_NAME   = gcc\r
+\r
+*_UNIXPKGCYGWINGCC_IA32_CC_FLAGS     = -g -fshort-wchar -fno-strict-aliasing -Wall -malign-double -c -include ${DEST_DIR_DEBUG}/AutoGen.h -DSTRING_ARRAY_NAME=${BASE_NAME}Strings -IC:/cygwin/usr/X11R6/include\r
+*_UNIXPKGCYGWINGCC_*_DLINK_FLAGS     = -nostdlib -n -q -Ttext 0x220 --entry ${ENTRYPOINT} -u ${ENTRYPOINT} -Map ${DEST_DIR_DEBUG}/${BASE_NAME}.map\r
+*_UNIXPKGCYGWINGCC_*_ASM_FLAGS       = -c -imacros ${DEST_DIR_DEBUG}/AutoGen.h -DASM_PFX(name)=_##name\r
+*_UNIXPKGCYGWINGCC_*_PP_FLAGS        = -E -x assembler-with-cpp -include ${DEST_DIR_DEBUG}/AutoGen.h\r
+*_UNIXPKGCYGWINGCC_*_VFRPP_FLAGS     = -x c -E -P -DVFRCOMPILE\r
+*_UNIXPKGCYGWINGCC_*_ASM_EXT         = .S\r
+\r
+*_UNIXPKGCYGWINGCC_IA32_*_PATH       = C:/cygwin/bin\r
 \r
 ####################################################################################\r
 #\r
@@ -391,7 +464,7 @@ RELEASE_VS2005PRO_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF
 *_MIXED_X64_PP_NAME      = cl.exe\r
 \r
 *_MIXED_X64_CC_FLAGS     = -Os -fshort-wchar -fno-strict-aliasing -Wall -Werror -c -include ${DEST_DIR_DEBUG}/AutoGen.h -D_EFI_P64\r
-*_MIXED_*_DLINK_FLAGS    = -nostdlib -O2 --gc-sections --dll --export-all-symbols --entry _${ENTRYPOINT}\r
+*_MIXED_*_DLINK_FLAGS    = -nostdlib -O2 --gc-sections --dll --export-all-symbols --entry _${ENTRYPOINT} --file-alignment 0x20 --section-alignment 0x20 \r
 *_MIXED_X64_PP_FLAGS     = /nologo /P /TC /FI${DEST_DIR_DEBUG}/AutoGen.h \r
 \r
 *_MIXED_X64_ASM_NAME     = ml64.exe\r
@@ -444,6 +517,91 @@ RELEASE_MIXED_X64_ASM_FLAGS   = /nologo /W3 /WX /c /Cx /Zd
 # *_*_*_ASL_PATH    = C:\ASL\r
 # \r
 \r
+\r
+####################################################################################\r
+#\r
+# Intel(R) C++ Compiler Version 9.1\r
+#\r
+#   IPF  - Intel(R) C++ Compiler for Itanium(R)Version 9.1  Build 20060928 Package ID: W_CC_C_9.1.032\r
+#   ASL  - Intel ACPI Source Language COmpiler\r
+#\r
+####################################################################################\r
+*_ICC_*_*_FAMILY             = MSFT\r
+\r
+*_ICC_*_CC_NAME              = cl.exe\r
+*_ICC_*_SLINK_NAME           = lib.exe\r
+*_ICC_*_DLINK_NAME           = link.exe\r
+*_ICC_*_ASMLINK_NAME         = link.exe\r
+*_ICC_*_PP_NAME              = cl.exe\r
+*_ICC_*_VFRPP_NAME           = cl.exe\r
+*_ICC_*_APP_NAME             = cl.exe\r
+*_ICC_*_ASM_NAME             = ml.exe\r
+\r
+*_ICC_*_VFRPP_FLAGS            = /nologo /P /TC /DVFRCOMPILE\r
+##################\r
+# IA32 definitions\r
+##################\r
+*_ICC_IA32_PCH_NAME          = cl.exe\r
+*_ICC_IA32_ASM_EXT           = .asm\r
+\r
+*_ICC_IA32_*_PATH            = C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin\r
+*_ICC_IA32_*_DPATH           = C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\IDE\r
+*_ICC_IA32_ASMLINK_PATH      = C:\WINDDK\3790.1830\bin\bin16\\r
+\r
+*_ICC_IA32_APP_FLAGS         = /nologo /P /TC\r
+*_ICC_IA32_PP_FLAGS          = /nologo /P /TC /FI${DEST_DIR_DEBUG}/AutoGen.h\r
+DEBUG_ICC_IA32_CC_FLAGS      = /nologo /W4 /WX /Gy /c /D UNICODE /D EFI32 /O1ib2 /GL /DEFI_FIRMWARE_VENDOR=L\"INTEL\" /DSTRING_ARRAY_NAME=${BASE_NAME}Strings /FI${DEST_DIR_DEBUG}/AutoGen.h /EHs-c- /GF /Gs8192 /Fp${DEST_DIR_OUTPUT}/AutoGen.h.gch /Yu${DEST_DIR_DEBUG}/AutoGen.h /Zi /Gm\r
+RELEASE_ICC_IA32_CC_FLAGS    = /nologo /W4 /WX /Gy /c /D UNICODE /D EFI32 /O1ib2 /GL /DEFI_FIRMWARE_VENDOR=L\"INTEL\" /DSTRING_ARRAY_NAME=${BASE_NAME}Strings /FI${DEST_DIR_DEBUG}/AutoGen.h /EHs-c- /GF /Gs8192 /Fp${DEST_DIR_OUTPUT}/AutoGen.h.gch /Yu${DEST_DIR_DEBUG}/AutoGen.h\r
+DEBUG_ICC_IA32_PCH_FLAGS     = /nologo /W4 /WX /Gy /c /D UNICODE /D EFI32 /O1ib2 /GL /DEFI_FIRMWARE_VENDOR=L\"INTEL\" /DSTRING_ARRAY_NAME=${BASE_NAME}Strings /FI${DEST_DIR_DEBUG}/AutoGen.h /EHs-c- /GF /Gs8192 /Fp${DEST_DIR_OUTPUT}/AutoGen.h.gch /Yc /TC /Zi /Gm\r
+RELEASE_ICC_IA32_PCH_FLAGS   = /nologo /W4 /WX /Gy /c /D UNICODE /D EFI32 /O1ib2 /GL /DEFI_FIRMWARE_VENDOR=L\"INTEL\" /DSTRING_ARRAY_NAME=${BASE_NAME}Strings /FI${DEST_DIR_DEBUG}/AutoGen.h /EHs-c- /GF /Gs8192 /Fp${DEST_DIR_OUTPUT}/AutoGen.h.gch /Yc /TC\r
+DEBUG_ICC_IA32_ASM_FLAGS     = /nologo /W3 /WX /c /coff /Cx /Zd /W0 /Zi\r
+RELEASE_ICC_IA32_ASM_FLAGS   = /nologo /W3 /WX /c /coff /Cx /Zd /W0\r
+*_ICC_IA32_SLINK_FLAGS       = /nologo /LTCG\r
+DEBUG_ICC_IA32_DLINK_FLAGS   = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /MACHINE:I386 /LTCG /DLL /ENTRY:${ENTRYPOINT} /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
+RELEASE_ICC_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /MACHINE:I386 /LTCG /DLL /ENTRY:${ENTRYPOINT} /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
+\r
+\r
+##################\r
+# IPF definitions\r
+##################\r
+*_ICC_IPF_*_FAMILY  = INTEL\r
+\r
+*_ICC_IPF_CC_NAME           = icl.exe\r
+*_ICC_IPF_SLINK_NAME        = xilib.exe\r
+*_ICC_IPF_DLINK_NAME        = xilink.exe\r
+*_ICC_IPF_ASMLINK_NAME      = xilink.exe\r
+*_ICC_IPF_PP_NAME           = icl.exe\r
+*_ICC_IPF_VFRPP_NAME        = icl.exe\r
+\r
+#*_ICC_IPF_PCH_NAME          = icl.exe\r
+*_ICC_IPF_APP_NAME          = icl.exe\r
+*_ICC_IPF_ASM_NAME          = ias.exe\r
+*_ICC_IPF_ASM_EXT           = .s\r
+\r
+\r
+\r
+*_ICC_IPF_*_PATH            = C:\Program Files\Intel\Compiler\C++\9.1\Itanium\Bin\r
+\r
+*_ICC_IPF_APP_FLAGS         = /nologo /P /TC\r
+*_ICC_IPF_PP_FLAGS          = /nologo /P /TC /FI${DEST_DIR_DEBUG}/AutoGen.h\r
+DEBUG_ICC_IPF_CC_FLAGS      = /nologo /QIA64_fr32 /W4 /WX /GX /Gy /c /Od /D EFI64 /DSTRING_ARRAY_NAME=${BASE_NAME}Strings /FI${DEST_DIR_DEBUG}/AutoGen.h /Zi\r
+RELEASE_ICC_IPF_CC_FLAGS    = /nologo /QIA64_fr32 /W4 /WX /GX /Gy /c /Od /D EFI64 /DSTRING_ARRAY_NAME=${BASE_NAME}Strings /FI${DEST_DIR_DEBUG}/AutoGen.h\r
+#DEBUG_ICC_IPF_PCH_FLAGS     = /nologo /QIA64_fr32 /W4 /WX /GX /Gy /c /Od /D EFI64 /DSTRING_ARRAY_NAME=${BASE_NAME}Strings /FI${DEST_DIR_DEBUG}/AutoGen.h /Yc /TC /Zi\r
+#RELEASE_ICC_IPF_PCH_FLAGS   = /nologo /QIA64_fr32 /W4 /WX /GX /Gy /c /Od /D EFI64 /DSTRING_ARRAY_NAME=${BASE_NAME}Strings /FI${DEST_DIR_DEBUG}/AutoGen.h /Yc /TC\r
+DEBUG_ICC_IPF_ASM_FLAGS     = -N us -X explicit -M ilp64 -N so -W3 -d debug -F COFF32\r
+RELEASE_ICC_IPF_ASM_FLAGS   = -N us -X explicit -M ilp64 -N so -W3 -F COFF32\r
+DEBUG_ICC_IPF_DLINK_FLAGS   = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:64 /MACHINE:IA64 /ENTRY:${ENTRYPOINT} /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:${DEST_DIR_DEBUG}/${BASE_NAME}.map /PDB:${DEST_DIR_DEBUG}/${BASE_NAME}.pdb /DEBUG\r
+RELEASE_ICC_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:64 /MACHINE:IA64 /ENTRY:${ENTRYPOINT} /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:${DEST_DIR_DEBUG}/${BASE_NAME}.map /PDB:${DEST_DIR_DEBUG}/${BASE_NAME}.pdb\r
+*_ICC_IPF_SLINK_FLAGS       = /nologo /LTCG\r
+\r
+\r
+##################\r
+# ASL definitions\r
+##################\r
+*_ICC_*_ASL_FAMILY  = INTEL\r
+*_ICC_*_ASL_NAME    = iasl.exe\r
+*_ICC_*_ASL_PATH    = C:\ASL\r
+\r
 ####################################################################################\r
 #\r
 # MYTOOLS\r
@@ -461,11 +619,11 @@ RELEASE_MIXED_X64_ASM_FLAGS   = /nologo /W3 /WX /c /Cx /Zd
 *_MYTOOLS_*_DLINK_NAME           = link.exe\r
 *_MYTOOLS_*_ASMLINK_NAME         = link.exe\r
 *_MYTOOLS_*_PP_NAME              = cl.exe \r
-*_MYTOOLS_*_VFR_NAME             = cl.exe \r
+*_MYTOOLS_*_VFRPP_NAME           = cl.exe \r
 *_MYTOOLS_*_APP_NAME             = cl.exe\r
 *_MYTOOLS_*_ASM_NAME             = ml.exe\r
 \r
-*_MYTOOLS_*_VFR_FLAGS            = /nologo /P /TC /DVFRCOMPILE\r
+*_MYTOOLS_*_VFRPP_FLAGS          = /nologo /P /TC /DVFRCOMPILE\r
 ##################\r
 # IA32 definitions\r
 ##################\r
@@ -514,19 +672,23 @@ RELEASE_MYTOOLS_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /O
 ##################\r
 # IPF definitions\r
 ##################\r
-*_MYTOOLS_IPF_PCH_NAME      = cl.exe\r
-*_MYTOOLS_IPF_ASM_NAME      = ias.exe\r
-*_MYTOOLS_IPF_ASM_EXT       = .s\r
-\r
-*_MYTOOLS_IPF_*_PATH        = C:\WINDDK\3790.1830\bin\win64\x86\r
-\r
-*_MYTOOLS_IPF_APP_FLAGS     = /nologo /P /TC\r
-*_MYTOOLS_IPF_PP_FLAGS      = /nologo /P /TC /FI${DEST_DIR_DEBUG}/AutoGen.h\r
-*_MYTOOLS_IPF_CC_FLAGS      = /GS- /nologo /W4 /WX /EHs-c- /Gy /c /D EFI64 /O1i /DSTRING_ARRAY_NAME=${BASE_NAME}Strings /FI${DEST_DIR_DEBUG}/AutoGen.h /Fp${DEST_DIR_OUTPUT}/AutoGen.h.gch /Yu${DEST_DIR_DEBUG}/AutoGen.h\r
-*_MYTOOLS_IPF_PCH_FLAGS     = /GS- /nologo /W4 /WX /EHs-c- /Gy /c /D EFI64 /O1i /DSTRING_ARRAY_NAME=${BASE_NAME}Strings /FI${DEST_DIR_DEBUG}/AutoGen.h /Fp${DEST_DIR_OUTPUT}/AutoGen.h.gch /Yc /TC\r
-*_MYTOOLS_IPF_ASM_FLAGS     = -N us -X explicit -M ilp64 -N so -W4\r
-*_MYTOOLS_IPF_DLINK_FLAGS   = /NOLOGO /NODEFAULTLIB /LTCG /OPT:REF /IGNORE:4086 /MAP /MACHINE:IA64 /ENTRY:${ENTRYPOINT} /SUBSYSTEM:CONSOLE /MAP:${DEST_DIR_DEBUG}/${BASE_NAME}.map /PDB:${DEST_DIR_DEBUG}/${BASE_NAME}.pdb \r
-*_MYTOOLS_IPF_SLINK_FLAGS   = /nologo /LTCG\r
+*_MYTOOLS_IPF_PCH_NAME          = cl.exe\r
+*_MYTOOLS_IPF_ASM_NAME          = ias.exe\r
+*_MYTOOLS_IPF_ASM_EXT           = .s\r
+\r
+*_MYTOOLS_IPF_*_PATH            = C:\WINDDK\3790.1830\bin\win64\x86\r
+\r
+*_MYTOOLS_IPF_APP_FLAGS         = /nologo /P /TC\r
+*_MYTOOLS_IPF_PP_FLAGS          = /nologo /P /TC /FI${DEST_DIR_DEBUG}/AutoGen.h\r
+DEBUG_MYTOOLS_IPF_CC_FLAGS      = /GS- /nologo /QIPF_fr32 /W4 /WX /EHs-c- /Gy /c /Os /GL /X /D EFI64 /DSTRING_ARRAY_NAME=${BASE_NAME}Strings /FI${DEST_DIR_DEBUG}/AutoGen.h /Fp${DEST_DIR_OUTPUT}/AutoGen.h.gch /Yu${DEST_DIR_DEBUG}/AutoGen.h /Zi\r
+RELEASE_MYTOOLS_IPF_CC_FLAGS    = /GS- /nologo /QIPF_fr32 /W4 /WX /EHs-c- /Gy /c /Os /GL /X /D EFI64 /DSTRING_ARRAY_NAME=${BASE_NAME}Strings /FI${DEST_DIR_DEBUG}/AutoGen.h /Fp${DEST_DIR_OUTPUT}/AutoGen.h.gch /Yu${DEST_DIR_DEBUG}/AutoGen.h\r
+DEBUG_MYTOOLS_IPF_PCH_FLAGS     = /GS- /nologo /QIPF_fr32 /W4 /WX /EHs-c- /Gy /c /Os /GL /X /D EFI64 /DSTRING_ARRAY_NAME=${BASE_NAME}Strings /FI${DEST_DIR_DEBUG}/AutoGen.h /Fp${DEST_DIR_OUTPUT}/AutoGen.h.gch /Yc /TC /Zi\r
+RELEASE_MYTOOLS_IPF_PCH_FLAGS   = /GS- /nologo /QIPF_fr32 /W4 /WX /EHs-c- /Gy /c /Os /GL /X /D EFI64 /DSTRING_ARRAY_NAME=${BASE_NAME}Strings /FI${DEST_DIR_DEBUG}/AutoGen.h /Fp${DEST_DIR_OUTPUT}/AutoGen.h.gch /Yc /TC\r
+DEBUG_MYTOOLS_IPF_ASM_FLAGS     = -N us -X explicit -M ilp64 -N so -W4 -d debug\r
+RELEASE_MYTOOLS_IPF_ASM_FLAGS   = -N us -X explicit -M ilp64 -N so -W4\r
+DEBUG_MYTOOLS_IPF_DLINK_FLAGS   = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:32 /MACHINE:IA64 /ENTRY:${ENTRYPOINT} /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:${DEST_DIR_DEBUG}/${BASE_NAME}.map /PDB:${DEST_DIR_DEBUG}/${BASE_NAME}.pdb /DEBUG\r
+RELEASE_MYTOOLS_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:32 /MACHINE:IA64 /ENTRY:${ENTRYPOINT} /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:${DEST_DIR_DEBUG}/${BASE_NAME}.map /PDB:${DEST_DIR_DEBUG}/${BASE_NAME}.pdb\r
+*_MYTOOLS_IPF_SLINK_FLAGS       = /nologo /LTCG\r
 \r
 ##################\r
 # EBC definitions\r