1. Add RC tool path for the different tool chain, which is used to create PE resource...
authorlgao4 <lgao4@7335b38e-4728-0410-8992-fb3ffe349368>
Mon, 19 Oct 2009 10:12:11 +0000 (10:12 +0000)
committerlgao4 <lgao4@7335b38e-4728-0410-8992-fb3ffe349368>
Mon, 19 Oct 2009 10:12:11 +0000 (10:12 +0000)
2. Add the build rule to create HII resource section.

git-svn-id: https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools@1722 7335b38e-4728-0410-8992-fb3ffe349368

Conf/build_rule.template
Conf/tools_def.template

index f036fb3..9454ac4 100644 (file)
@@ -69,6 +69,7 @@
 #   $(<tool>_FLAGS)     Tools flags of current module\r
 #   $(MODULE_NAME)      Current module name\r
 #   $(MODULE_TYPE)      Current module type\r
+#   $(MODULE_GUID)      Current module guid\r
 #   $(ARCH)             Architecture of current module\r
 #   $(TOOLCHAIN)        Toolchain used to build current module\r
 #   $(TARGET)           Target of current module (DEBUG/RELEASE)\r
     <Command>\r
         $(OPTROM) -i $(PCI_DEVICE_ID) -f $(PCI_VENDOR_ID) -l $(PCI_CLASS_CODE) -r $(PCI_REVISION) -o $dst $(OPTROM_FLAGS) $src\r
 \r
+[Unicode-Text-File.UEFI_HII]\r
+    <InputFile>\r
+        *.uni, *.Uni, *.UNI\r
+\r
+    <OutputFile>\r
+        $(OUTPUT_DIR)(+)$(MODULE_NAME)StrDefs.hpk\r
+        $(DEBUG_DIR)(+)$(MODULE_NAME)StrDefs.h\r
+\r
+    <Command>\r
+\r
+[Visual-Form-Representation-File.UEFI_HII]\r
+    <InputFile>\r
+        ?.vfr\r
+        ?.Vfr\r
+        ?.VFR\r
+\r
+    <ExtraDependency>\r
+        $(MAKE_FILE)\r
+\r
+    <OutputFile>\r
+        $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.hpk\r
+\r
+    <Command>\r
+        -$(MD) $(OUTPUT_DIR)(+)${s_dir} > NUL 2>&1\r
+        "$(VFRPP)" $(VFRPP_FLAGS) $(INC) ${src} > $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.i\r
+        -$(MD) $(OUTPUT_DIR)(+)${s_dir} > NUL 2>&1\r
+        "$(VFR)" $(VFR_FLAGS) --create-ifr-package --output-directory $(OUTPUT_DIR)(+)${s_dir} $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.i\r
+\r
+[Hii-Binary-Package.UEFI_HII]\r
+    <InputFile>\r
+        *.hpk\r
+\r
+    <OutputFile>\r
+        $(OUTPUT_DIR)(+)$(MODULE_NAME)hii.lib\r
+\r
+    <Command.MSFT, Command.INTEL>\r
+        GenFw -o $(OUTPUT_DIR)(+)$(MODULE_NAME)hii.rc -g $(MODULE_GUID) --hiipackage $(HII_BINARY_PACKAGES)\r
+        "$(RC)" /Fo${dst} $(OUTPUT_DIR)(+)$(MODULE_NAME)hii.rc\r
+\r
+    <Command.GCC>\r
+        GenFw -o $(OUTPUT_DIR)(+)$(MODULE_NAME)hii.rc -g $(MODULE_GUID) --hiipackage $(HII_BINARY_PACKAGES)\r
+        "$(RC)" (RC_FLAGS) $(OUTPUT_DIR)(+)$(MODULE_NAME)hii.rc ${dst}\r
index 07ae1a9..61e3de0 100644 (file)
@@ -237,7 +237,7 @@ DEFINE ARMGCC_BIN              = /
 *_VS2003_IA32_ASLCC_PATH            = DEF(VS2003_BIN)\cl.exe\r
 *_VS2003_IA32_ASLPP_PATH            = DEF(VS2003_BIN)\cl.exe\r
 *_VS2003_IA32_ASLDLINK_PATH         = DEF(VS2003_BIN)\link.exe\r
-\r
+*_VS2003_IA32_RC_PATH               = DEF(VS2003_BIN)\rc.exe\r
 \r
       *_VS2003_IA32_MAKE_FLAGS      = /nologo\r
       *_VS2003_IA32_APP_FLAGS       = /nologo /E /TC\r
@@ -263,6 +263,7 @@ RELEASE_VS2003_IA32_DLINK_FLAGS     = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:RE
 *_VS2003_EBC_CC_PATH                = DEF(EBC_BIN)\iec.exe\r
 *_VS2003_EBC_SLINK_PATH             = DEF(EBC_BIN)\link.exe\r
 *_VS2003_EBC_DLINK_PATH             = DEF(EBC_BIN)\link.exe\r
+*_VS2003_EBC_RC_PATH                = DEF(VS2003_BIN)\rc.exe\r
 \r
 *_VS2003_EBC_MAKE_FLAGS             = /nologo\r
 *_VS2003_EBC_PP_FLAGS               = /nologo /E /TC /FIAutoGen.h\r
@@ -306,6 +307,7 @@ RELEASE_VS2003_IA32_DLINK_FLAGS     = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:RE
 *_VS2003xASL_IA32_ASLCC_PATH            = DEF(VS2003_BIN)\cl.exe\r
 *_VS2003xASL_IA32_ASLPP_PATH            = DEF(VS2003_BIN)\cl.exe\r
 *_VS2003xASL_IA32_ASLDLINK_PATH         = DEF(VS2003_BIN)\link.exe\r
+*_VS2003xASL_IA32_RC_PATH               = DEF(VS2003_BIN)\rc.exe\r
 \r
 \r
       *_VS2003xASL_IA32_MAKE_FLAGS      = /nologo\r
@@ -332,6 +334,7 @@ RELEASE_VS2003xASL_IA32_DLINK_FLAGS     = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OP
 *_VS2003xASL_EBC_CC_PATH                = DEF(EBC_BIN)\iec.exe\r
 *_VS2003xASL_EBC_SLINK_PATH             = DEF(EBC_BIN)\link.exe\r
 *_VS2003xASL_EBC_DLINK_PATH             = DEF(EBC_BIN)\link.exe\r
+*_VS2003xASL_EBC_RC_PATH                = DEF(VS2003_BIN)\rc.exe\r
 \r
 *_VS2003xASL_EBC_MAKE_FLAGS             = /nologo\r
 *_VS2003xASL_EBC_PP_FLAGS               = /nologo /E /TC /FIAutoGen.h\r
@@ -352,6 +355,7 @@ RELEASE_VS2003xASL_IA32_DLINK_FLAGS     = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OP
 \r
 *_VS2005_*_MAKE_PATH              = DEF(VS2005_BIN)\nmake.exe\r
 *_VS2005_*_MAKE_FLAGS             = /nologo\r
+*_VS2005_*_RC_PATH                = DEF(VS2005_BIN)\rc.exe\r
 \r
 *_VS2005_*_SLINK_FLAGS            = /NOLOGO /LTCG\r
 *_VS2005_*_APP_FLAGS              = /nologo /E /TC\r
@@ -473,6 +477,7 @@ RELEASE_VS2005_IPF_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF.ICF
 \r
 *_VS2005xASL_*_MAKE_PATH       = DEF(VS2005_BIN)\nmake.exe\r
 *_VS2005xASL_*_MAKE_FLAG       = /nologo\r
+*_VS2005xASL_*_RC_PATH         = DEF(VS2005_BIN)\rc.exe\r
 \r
 *_VS2005xASL_*_SLINK_FLAGS     = /NOLOGO /LTCG\r
 *_VS2005xASL_*_APP_FLAGS       = /nologo /E /TC\r
@@ -594,6 +599,7 @@ RELEASE_VS2005xASL_IPF_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF.
 \r
 *_VS2005x86_*_MAKE_PATH       = DEF(VS2005x86_BIN)\nmake.exe\r
 *_VS2005x86_*_MAKE_FLAGS      = /nologo\r
+*_VS2005x86_*_RC_PATH         = DEF(VS2005x86_BIN)\rc.exe\r
 \r
 *_VS2005x86_*_SLINK_FLAGS     = /NOLOGO /LTCG\r
 *_VS2005x86_*_APP_FLAGS       = /nologo /E /TC\r
@@ -715,6 +721,7 @@ RELEASE_VS2005x86_IPF_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF.I
 \r
 *_VS2005x86xASL_*_MAKE_PATH       = DEF(VS2005x86_BIN)\nmake.exe\r
 *_VS2005x86xASL_*_MAKE_FLAGS      = /nologo\r
+*_VS2005x86xASL_*_RC_PATH         = DEF(VS2005x86_BIN)\rc.exe\r
 \r
 *_VS2005x86xASL_*_SLINK_FLAGS     = /NOLOGO /LTCG\r
 *_VS2005x86xASL_*_APP_FLAGS       = /nologo /E /TC\r
@@ -836,6 +843,7 @@ RELEASE_VS2005x86xASL_IPF_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:R
 \r
 *_DDK3790_*_MAKE_PATH       = DEF(WINDDK_BIN32)\nmake.exe\r
 *_DDK3790_*_MAKE_FLAGS           = /nologo\r
+*_DDK3790_*_RC_PATH         = DEF(WINDDK_BIN32)\rc.exe\r
 \r
 *_DDK3790_*_PP_FLAGS             = /nologo /E /TC /FIAutoGen.h\r
 *_DDK3790_*_APP_FLAGS            = /nologo /E /TC\r
@@ -945,6 +953,7 @@ RELEASE_DDK3790_IPF_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF.ICF
 \r
 *_DDK3790xASL_*_MAKE_PATH       = DEF(WINDDK_BIN32)\nmake.exe\r
 *_DDK3790xASL_*_MAKE_FLAGS           = /nologo\r
+*_DDK3790xASL_*_RC_PATH         = DEF(WINDDK_BIN32)\rc.exe\r
 \r
 *_DDK3790xASL_*_PP_FLAGS             = /nologo /E /TC /FIAutoGen.h\r
 *_DDK3790xASL_*_APP_FLAGS            = /nologo /E /TC\r
@@ -1104,8 +1113,10 @@ DEFINE UNIXGCC_DLINK_FLAGS_COMMON        = -nostdlib -s --pie
 *_UNIXGCC_IA32_ASLDLINK_PATH        = DEF(UNIXGCC_IA32_PETOOLS_PREFIX)ld\r
 *_UNIXGCC_IA32_ASM_PATH             = DEF(UNIXGCC_IA32_PETOOLS_PREFIX)gcc\r
 *_UNIXGCC_IA32_VFRPP_PATH           = DEF(UNIXGCC_IA32_PETOOLS_PREFIX)gcc\r
+*_UNIXGCC_IA32_RC_PATH              = DEF(UNIXGCC_IA32_PETOOLS_PREFIX)windres\r
 \r
 *_UNIXGCC_IA32_CC_FLAGS             = -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-missing-braces -Wno-array-bounds -c -include AutoGen.h -m32 -malign-double -freorder-blocks -freorder-blocks-and-partition \r
+*_UNIXGCC_IA32_RC_FLAGS             = -J rc -O coff\r
 \r
 ##################\r
 # X64 definitions\r
@@ -1119,8 +1130,10 @@ DEFINE UNIXGCC_DLINK_FLAGS_COMMON        = -nostdlib -s --pie
 *_UNIXGCC_X64_PP_PATH               = DEF(UNIXGCC_X64_PETOOLS_PREFIX)gcc\r
 *_UNIXGCC_X64_ASLPP_PATH            = DEF(UNIXGCC_X64_PETOOLS_PREFIX)gcc\r
 *_UNIXGCC_X64_VFRPP_PATH            = DEF(UNIXGCC_X64_PETOOLS_PREFIX)gcc\r
+*_UNIXGCC_X64_RC_PATH               = DEF(UNIXGCC_X64_PETOOLS_PREFIX)windres\r
 \r
 *_UNIXGCC_X64_CC_FLAGS              = -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-missing-braces -Wno-array-bounds -c -include AutoGen.h -mno-red-zone -Wno-address\r
+*_UNIXGCC_X64_RC_FLAGS              = -J rc -O coff\r
 \r
 ##################\r
 # IPF definitions\r
@@ -1136,11 +1149,13 @@ DEFINE UNIXGCC_DLINK_FLAGS_COMMON        = -nostdlib -s --pie
 *_UNIXGCC_IPF_VFRPP_PATH           = DEF(UNIXGCC_IPF_PETOOLS_PREFIX)gcc\r
 *_UNIXGCC_IPF_OBJCOPY_PATH         = DEF(UNIXGCC_IPF_PETOOLS_PREFIX)objcopy\r
 *_UNIXGCC_IPF_SYMRENAME_PATH       = DEF(UNIXGCC_IPF_PETOOLS_PREFIX)objcopy\r
+*_UNIXGCC_IPF_RC_PATH              = DEF(UNIXGCC_IPF_PETOOLS_PREFIX)objcopy\r
 \r
 *_UNIXGCC_IPF_CC_FLAGS             = -Os -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-missing-braces -Wno-array-bounds -c -include AutoGen.h -minline-int-divide-min-latency\r
 *_UNIXGCC_IPF_DLINK_FLAGS          = -nostdlib -O2 --gc-sections --dll -static --entry $(IMAGE_ENTRY_POINT) --undefined $(IMAGE_ENTRY_POINT) -Map $(DEST_DIR_DEBUG)/$(BASE_NAME).map\r
 *_UNIXGCC_IPF_OBJCOPY_FLAGS        = -I elf64-ia64-little -O efi-bsdrv-ia64\r
 *_UNIXGCC_IPF_SYMRENAME_FLAGS      = --redefine-sym memcpy=CopyMem\r
+*_UNIXGCC_IPF_RC_FLAGS             = -I binary -O elf64-ia64 --rename-section .data=.hii\r
 \r
 ####################################################################################\r
 #\r
@@ -1184,8 +1199,10 @@ DEFINE UNIXGCC_DLINK_FLAGS_COMMON        = -nostdlib -s --pie
 *_CYGGCC_IA32_ASLCC_PATH         = DEF(CYGWIN_BIN32)gcc\r
 *_CYGGCC_IA32_ASLPP_PATH         = DEF(CYGWIN_BIN32)gcc\r
 *_CYGGCC_IA32_ASLDLINK_PATH      = DEF(CYGWIN_BIN32)ld\r
+*_CYGGCC_IA32_RC_PATH            = DEF(CYGWIN_BIN32)windres\r
 \r
 *_CYGGCC_IA32_CC_FLAGS           = -Os -fshort-wchar -fno-strict-aliasing -Wall -Werror -c -include AutoGen.h\r
+*_CYGGCC_IA32_RC_FLAGS           = -J rc -O coff\r
 \r
 ##################\r
 # X64 definitions\r
@@ -1200,8 +1217,10 @@ DEFINE UNIXGCC_DLINK_FLAGS_COMMON        = -nostdlib -s --pie
 *_CYGGCC_X64_ASLCC_PATH          = DEF(CYGWIN_BINX64)gcc\r
 *_CYGGCC_X64_ASLPP_PATH          = DEF(CYGWIN_BINX64)gcc\r
 *_CYGGCC_X64_ASLDLINK_PATH       = DEF(CYGWIN_BINX64)ld\r
+*_CYGGCC_X64_RC_PATH             = DEF(CYGWIN_BINX64)windres\r
 \r
 *_CYGGCC_X64_CC_FLAGS            = -Os -fshort-wchar -fno-strict-aliasing -mno-red-zone -Wall -Werror -c -include AutoGen.h -D_EFI_P64\r
+*_CYGGCC_X64_RC_FLAGS            = -J rc -O coff\r
 \r
 ##################\r
 # IPF definitions\r
@@ -1217,11 +1236,13 @@ DEFINE UNIXGCC_DLINK_FLAGS_COMMON        = -nostdlib -s --pie
 *_CYGGCC_IPF_ASLPP_PATH          = DEF(CYGWIN_BINIPF)gcc\r
 *_CYGGCC_IPF_OBJCOPY_PATH        = DEF(CYGWIN_BINIPF)objcopy\r
 *_CYGGCC_IPF_SYMRENAME_PATH      = DEF(CYGWIN_BINIPF)objcopy\r
+*_CYGGCC_IPF_RC_PATH             = DEF(CYGWIN_BINIPF)objcopy\r
 \r
 *_CYGGCC_IPF_CC_FLAGS             = -Os -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-missing-braces -Wno-array-bounds -c -include AutoGen.h -minline-int-divide-min-latency\r
 *_CYGGCC_IPF_DLINK_FLAGS          = -nostdlib -O2 --gc-sections --dll -static --entry $(IMAGE_ENTRY_POINT) --undefined $(IMAGE_ENTRY_POINT) -Map $(DEST_DIR_DEBUG)/$(BASE_NAME).map\r
 *_CYGGCC_IPF_OBJCOPY_FLAGS        = -I elf64-ia64-little -O efi-bsdrv-ia64\r
 *_CYGGCC_IPF_SYMRENAME_FLAGS      = --redefine-sym memcpy=CopyMem\r
+*_CYGGCC_IPF_RC_FLAGS             = -I binary -O elf64-ia64 --rename-section .data=.hii\r
 \r
 ##################\r
 # EBC definitions\r
@@ -1233,6 +1254,7 @@ DEFINE UNIXGCC_DLINK_FLAGS_COMMON        = -nostdlib -s --pie
 *_CYGGCC_EBC_DLINK_PATH    = DEF(EBC_BIN)\link.exe\r
 *_CYGGCC_EBC_SLINK_PATH    = DEF(EBC_BIN)\link.exe\r
 *_CYGGCC_EBC_VFRPP_PATH    = DEF(EBC_BIN)\iec.exe\r
+*_CYGGCC_EBC_RC_PATH       = DEF(VS2003_BIN)\rc.exe\r
 \r
 *_CYGGCC_EBC_CC_FLAGS           = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)\r
 *_CYGGCC_EBC_SLINK_FLAGS        = /lib /NOLOGO /MACHINE:EBC\r
@@ -1280,8 +1302,10 @@ DEFINE UNIXGCC_DLINK_FLAGS_COMMON        = -nostdlib -s --pie
 *_CYGGCCxASL_IA32_ASLCC_PATH         = DEF(CYGWIN_BIN32)gcc\r
 *_CYGGCCxASL_IA32_ASLPP_PATH         = DEF(CYGWIN_BIN32)gcc\r
 *_CYGGCCxASL_IA32_ASLDLINK_PATH      = DEF(CYGWIN_BIN32)ld\r
+*_CYGGCCxASL_IA32_RC_PATH            = DEF(CYGWIN_BIN32)windres\r
 \r
 *_CYGGCCxASL_IA32_CC_FLAGS           = -Os -fshort-wchar -fno-strict-aliasing -Wall -Werror -c -include AutoGen.h\r
+*_CYGGCCxASL_IA32_RC_FLAGS           = -J rc -O coff\r
 \r
 ##################\r
 # X64 definitions\r
@@ -1296,8 +1320,10 @@ DEFINE UNIXGCC_DLINK_FLAGS_COMMON        = -nostdlib -s --pie
 *_CYGGCCxASL_X64_ASLCC_PATH          = DEF(CYGWIN_BINX64)gcc\r
 *_CYGGCCxASL_X64_ASLPP_PATH          = DEF(CYGWIN_BINX64)gcc\r
 *_CYGGCCxASL_X64_ASLDLINK_PATH       = DEF(CYGWIN_BINX64)ld\r
+*_CYGGCCxASL_X64_RC_PATH             = DEF(CYGWIN_BINX64)windres\r
 \r
 *_CYGGCCxASL_X64_CC_FLAGS            = -Os -fshort-wchar -fno-strict-aliasing -mno-red-zone -Wall -Werror -c -include AutoGen.h -D_EFI_P64\r
+*_CYGGCCxASL_X64_RC_FLAGS            = -J rc -O coff\r
 \r
 ##################\r
 # IPF definitions\r
@@ -1313,11 +1339,13 @@ DEFINE UNIXGCC_DLINK_FLAGS_COMMON        = -nostdlib -s --pie
 *_CYGGCCxASL_IPF_ASLPP_PATH          = DEF(CYGWIN_BINIPF)gcc\r
 *_CYGGCCxASL_IPF_OBJCOPY_PATH        = DEF(CYGWIN_BINIPF)objcopy\r
 *_CYGGCCxASL_IPF_SYMRENAME_PATH      = DEF(CYGWIN_BINIPF)objcopy\r
+*_CYGGCCxASL_IPF_RC_PATH             = DEF(CYGWIN_BINIPF)objcopy\r
 \r
 *_CYGGCCxASL_IPF_CC_FLAGS             = -Os -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-missing-braces -Wno-array-bounds -c -include AutoGen.h -minline-int-divide-min-latency\r
 *_CYGGCCxASL_IPF_DLINK_FLAGS          = -nostdlib -O2 --gc-sections --dll -static --entry $(IMAGE_ENTRY_POINT) --undefined $(IMAGE_ENTRY_POINT) -Map $(DEST_DIR_DEBUG)/$(BASE_NAME).map\r
 *_CYGGCCxASL_IPF_OBJCOPY_FLAGS        = -I elf64-ia64-little -O efi-bsdrv-ia64\r
 *_CYGGCCxASL_IPF_SYMRENAME_FLAGS      = --redefine-sym memcpy=CopyMem\r
+*_CYGGCCxASL_IPF_RC_FLAGS             = -I binary -O elf64-ia64 --rename-section .data=.hii\r
 \r
 ##################\r
 # EBC definitions\r
@@ -1329,6 +1357,7 @@ DEFINE UNIXGCC_DLINK_FLAGS_COMMON        = -nostdlib -s --pie
 *_CYGGCCxASL_EBC_DLINK_PATH    = DEF(EBC_BIN)\link.exe\r
 *_CYGGCCxASL_EBC_SLINK_PATH    = DEF(EBC_BIN)\link.exe\r
 *_CYGGCCxASL_EBC_VFRPP_PATH    = DEF(EBC_BIN)\iec.exe\r
+*_CYGGCCxASL_EBC_RC_PATH       = DEF(VS2003_BIN)\rc.exe\r
 \r
 *_CYGGCCxASL_EBC_CC_FLAGS           = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)\r
 *_CYGGCCxASL_EBC_SLINK_FLAGS        = /lib /NOLOGO /MACHINE:EBC\r
@@ -1369,6 +1398,7 @@ DEFINE UNIXGCC_DLINK_FLAGS_COMMON        = -nostdlib -s --pie
 *_ELFGCC32_IA32_ASLCC_PATH          = DEF(ELFGCC_BIN)/gcc\r
 *_ELFGCC32_IA32_ASLPP_PATH          = DEF(ELFGCC_BIN)/gcc\r
 *_ELFGCC32_IA32_ASLDLINK_PATH       = DEF(ELFGCC_BIN)/ld\r
+*_ELFGCC_IA32_RC_PATH               = DEF(ELFGCC_BIN)/objcopy\r
 \r
 *_ELFGCC_IA32_CC_FLAGS              = -m32 -g -fshort-wchar -fno-strict-aliasing -Wall -malign-double -c -include $(DEST_DIR_DEBUG)/AutoGen.h -DSTRING_ARRAY_NAME=$(BASE_NAME)Strings\r
 *_ELFGCC_IA32_SLINK_FLAGS           =\r
@@ -1377,6 +1407,7 @@ DEFINE UNIXGCC_DLINK_FLAGS_COMMON        = -nostdlib -s --pie
 *_ELFGCC_IA32_ASM_FLAGS             = -c -x assembler -imacros $(DEST_DIR_DEBUG)/AutoGen.h\r
 *_ELFGCC_IA32_PP_FLAGS              = -m32 -E -x assembler-with-cpp -include $(DEST_DIR_DEBUG)/AutoGen.h\r
 *_ELFGCC_IA32_VFRPP_FLAGS           = -x c -E -P -DVFRCOMPILE --include $(DEST_DIR_DEBUG)/$(MODULE_NAME)StrDefs.h\r
+*_ELFGCC_IA32_RC_FLAGS              = -I binary -O elf32-i386 -B i386 --rename-section .data=.hii\r
 \r
 ##################\r
 # X64 definitions\r
@@ -1390,6 +1421,7 @@ DEFINE UNIXGCC_DLINK_FLAGS_COMMON        = -nostdlib -s --pie
 *_ELFGCC_X64_PP_PATH               = DEF(ELFGCC_BIN)/gcc\r
 *_ELFGCC_X64_ASLPP_PATH            = DEF(ELFGCC_BIN)/gcc\r
 *_ELFGCC_X64_VFRPP_PATH            = DEF(ELFGCC_BIN)/gcc\r
+*_ELFGCC_X64_RC_PATH               = DEF(ELFGCC_BIN)/objcopy\r
 \r
 *_ELFGCC_X64_CC_FLAGS              = -Os -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-missing-braces -Wno-address -Wno-array-bounds -c -include AutoGen.h -D_EFI_P64\r
 *_ELFGCC_X64_DLINK_FLAGS           = -nostdlib --shared --entry $(IMAGE_ENTRY_POINT) -u $(IMAGE_ENTRY_POINT)\r
@@ -1397,6 +1429,7 @@ DEFINE UNIXGCC_DLINK_FLAGS_COMMON        = -nostdlib -s --pie
 *_ELFGCC_X64_ASM_FLAGS             = -c -x assembler -imacros $(DEST_DIR_DEBUG)/AutoGen.h\r
 *_ELFGCC_X64_PP_FLAGS              = -E -x assembler-with-cpp -include $(DEST_DIR_DEBUG)/AutoGen.h\r
 *_ELFGCC_X64_VFRPP_FLAGS           = -x c -E -P -DVFRCOMPILE --include $(DEST_DIR_DEBUG)/$(MODULE_NAME)StrDefs.h\r
+*_ELFGCC_X64_RC_FLAGS              = -I binary -O elf64-x86-64 -B i386 --rename-section .data=.hii\r
 \r
 ##################\r
 # IPF definitions\r
@@ -1410,6 +1443,7 @@ DEFINE UNIXGCC_DLINK_FLAGS_COMMON        = -nostdlib -s --pie
 *_ELFGCC_IPF_PP_PATH              = DEF(ELFGCC_BIN)/gcc\r
 *_ELFGCC_IPF_ASLPP_PATH           = DEF(ELFGCC_BIN)/gcc\r
 *_ELFGCC_IPF_VFRPP_PATH           = DEF(ELFGCC_BIN)/gcc\r
+*_ELFGCC_IPF_RC_PATH              = DEF(ELFGCC_BIN)/objcopy\r
 \r
 *_ELFGCC_IPF_CC_FLAGS             = -Os -fshort-wchar -Wall -Werror -c -include AutoGen.h -D_EFI_P64\r
 *_ELFGCC_IPF_DLINK_FLAGS          = -nostdlib --shared --entry $(IMAGE_ENTRY_POINT) -u $(IMAGE_ENTRY_POINT)\r
@@ -1417,6 +1451,7 @@ DEFINE UNIXGCC_DLINK_FLAGS_COMMON        = -nostdlib -s --pie
 *_ELFGCC_IPF_ASM_FLAGS            = -c -x assembler -imacros $(DEST_DIR_DEBUG)/AutoGen.h\r
 *_ELFGCC_IPF_PP_FLAGS             = -E -x assembler-with-cpp -include $(DEST_DIR_DEBUG)/AutoGen.h\r
 *_ELFGCC_IPF_VFRPP_FLAGS          = -x c -E -P -DVFRCOMPILE --include $(DEST_DIR_DEBUG)/$(MODULE_NAME)StrDefs.h\r
+*_ELFGCC_IPF_RC_FLAGS             = -I binary -O elf64-ia64-little -B ia64 --rename-section .data=.hii\r
 \r
 ####################################################################################\r
 #\r
@@ -1430,6 +1465,7 @@ DEFINE UNIXGCC_DLINK_FLAGS_COMMON        = -nostdlib -s --pie
 *_ICC_*_*_FAMILY                    = INTEL\r
 \r
 *_ICC_*_MAKE_PATH                   = DEF(VS2005_BIN)\nmake.exe\r
+*_ICC_*_RC_PATH                     = DEF(VS2005_BIN)\rc.exe\r
 \r
 *_ICC_*_MAKE_FLAGS                       = /nologo\r
 *_ICC_*_VFRPP_FLAGS                      = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h\r
@@ -1556,6 +1592,7 @@ RELEASE_ICC_IPF_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT
 *_ICCxASL_*_*_FAMILY                    = INTEL\r
 \r
 *_ICCxASL_*_MAKE_PATH                   = DEF(VS2005_BIN)\nmake.exe\r
+*_ICCxASL_*_RC_PATH                     = DEF(VS2005_BIN)\rc.exe\r
 \r
 *_ICCxASL_*_MAKE_FLAGS                       = /nologo\r
 *_ICCxASL_*_VFRPP_FLAGS                      = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h\r
@@ -1683,6 +1720,7 @@ RELEASE_ICCxASL_IPF_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /LTCG /DLL
 *_ICCx86_*_*_FAMILY                    = INTEL\r
 \r
 *_ICCx86_*_MAKE_PATH                   = DEF(VS2005x86_BIN)\nmake.exe\r
+*_ICCx86_*_RC_PATH                     = DEF(VS2005x86_BIN)\rc.exe\r
 \r
 *_ICCx86_*_MAKE_FLAGS                       = /nologo\r
 *_ICCx86_*_VFRPP_FLAGS                      = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h\r
@@ -1810,6 +1848,7 @@ RELEASE_ICCx86_IPF_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /LTCG /DLL /
 *_ICCx86xASL_*_*_FAMILY                    = INTEL\r
 \r
 *_ICCx86xASL_*_MAKE_PATH                   = DEF(VS2005x86_BIN)\nmake.exe\r
+*_ICCx86xASL_*_RC_PATH                     = DEF(VS2005x86_BIN)\rc.exe\r
 \r
 *_ICCx86xASL_*_MAKE_FLAGS                       = /nologo\r
 *_ICCx86xASL_*_VFRPP_FLAGS                      = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h\r
@@ -1971,6 +2010,7 @@ RELEASE_ICCx86xASL_IPF_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /LTCG /D
 *_MYTOOLS_IA32_ASLCC_PATH           = DEF(VS2005_BIN)\cl.exe\r
 *_MYTOOLS_IA32_ASLPP_PATH           = DEF(VS2005_BIN)\cl.exe\r
 *_MYTOOLS_IA32_ASLDLINK_PATH        = DEF(VS2005_BIN)\link.exe\r
+*_MYTOOLS_IA32_RC_PATH              = DEF(VS2005_BIN)\rc.exe\r
 \r
   DEBUG_MYTOOLS_IA32_CC_FLAGS            = /nologo /c /WX /GS- /W4 /Gs8192 /Gy /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm\r
 RELEASE_MYTOOLS_IA32_CC_FLAGS            = /nologo /c /WX /GS- /W4 /Gs8192 /Gy /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF\r
@@ -1996,6 +2036,7 @@ RELEASE_MYTOOLS_IA32_DLINK_FLAGS         = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /O
 *_MYTOOLS_X64_ASLCC_PATH            = DEF(VS2005_BINX64)\cl.exe\r
 *_MYTOOLS_X64_ASLPP_PATH            = DEF(VS2005_BINX64)\cl.exe\r
 *_MYTOOLS_X64_ASLDLINK_PATH         = DEF(VS2005_BINX64)\link.exe\r
+*_MYTOOLS_X64_RC_PATH               = DEF(VS2005_BIN)\rc.exe\r
 \r
   DEBUG_MYTOOLS_X64_CC_FLAGS             = /nologo /c /WX /GS- /W4 /Gs8192 /Gy /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm\r
 RELEASE_MYTOOLS_X64_CC_FLAGS             = /nologo /c /WX /GS- /W4 /Gs8192 /Gy /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF\r
@@ -2018,8 +2059,9 @@ RELEASE_MYTOOLS_X64_DLINK_FLAGS          = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /O
 *_MYTOOLS_IPF_ASLCC_PATH            = DEF(WINDDK_BIN64)\cl.exe\r
 *_MYTOOLS_IPF_ASLPP_PATH            = DEF(WINDDK_BIN64)\cl.exe\r
 *_MYTOOLS_IPF_ASLDLINK_PATH         = DEF(WINDDK_BIN64)\link.exe\r
-      *_MYTOOLS_IPF_ASM_OUTPUT           = "-o "\r
+*_MYTOOLS_IPF_RC_PATH               = DEF(WINDDK_BIN32)\rc.exe\r
 \r
+      *_MYTOOLS_IPF_ASM_OUTPUT           = "-o "\r
   DEBUG_MYTOOLS_IPF_CC_FLAGS             = /nologo /c /WX /GS- /X /W4 /Gy /Ox /GL /FIAutoGen.h /EHs-c- /GR- /GF /Zx /QIPF_fr32 /Zi\r
 RELEASE_MYTOOLS_IPF_CC_FLAGS             = /nologo /c /WX /GS- /X /W4 /Gy /Ox /GL /FIAutoGen.h /EHs-c- /GR- /GF /Zx /QIPF_fr32\r
   DEBUG_MYTOOLS_IPF_ASM_FLAGS            = -N us -X explicit -M ilp64 -N so -W4 -d debug\r
@@ -2039,6 +2081,7 @@ RELEASE_MYTOOLS_IPF_DLINK_FLAGS          = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT
 *_MYTOOLS_EBC_CC_PATH               = DEF(EBC_BIN)\iec.exe\r
 *_MYTOOLS_EBC_SLINK_PATH            = DEF(EBC_BIN)\link.exe\r
 *_MYTOOLS_EBC_DLINK_PATH            = DEF(EBC_BIN)\link.exe\r
+*_MYTOOLS_EBC_RC_PATH               = DEF(VS2005_BIN)\rc.exe\r
 \r
 *_MYTOOLS_EBC_MAKE_FLAGS                 = /nologo\r
 *_MYTOOLS_EBC_PP_FLAGS                   = /nologo /E /TC /FIAutoGen.h\r