Fixed EDKT419.
authorqouyang <qouyang@6f19259b-4bc3-4df7-8a09-765794883524>
Thu, 16 Nov 2006 10:19:07 +0000 (10:19 +0000)
committerqouyang <qouyang@6f19259b-4bc3-4df7-8a09-765794883524>
Thu, 16 Nov 2006 10:19:07 +0000 (10:19 +0000)
Removing C Pre-Processing from VfrCompile Tool.
Now the input file for VfrCompile tool should be *.i file which was preprocessed by compiler.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@1964 6f19259b-4bc3-4df7-8a09-765794883524

EdkNt32Pkg/Dxe/PlatformBds/PlatformBds.msa
Tools/CCode/Source/VfrCompile/VfrCompile.g
Tools/CCode/Source/VfrCompile/VfrServices.cpp
Tools/Conf/BuildMacro.xml
Tools/Conf/tools_def.template

index bca2117..3508095 100644 (file)
@@ -88,7 +88,7 @@
     <Filename>Generic\FrontPage.h</Filename>\r
     <Filename>Generic\FrontPage.c</Filename>\r
     <Filename>Generic\FrontPageStrings.uni</Filename>\r
-    <Filename>Generic\FrontPageVfr.vfr</Filename>\r
+    <Filename>Generic\FrontPageVfr.Vfr</Filename>\r
     <Filename>Generic\Language.h</Filename>\r
     <Filename>Generic\Language.c</Filename>\r
     <Filename>Generic\String.h</Filename>\r
     <Filename>Generic\BootMngr\BootManager.h</Filename>\r
     <Filename>Generic\BootMngr\BootManager.c</Filename>\r
     <Filename>Generic\BootMngr\BootManagerStrings.uni</Filename>\r
-    <Filename>Generic\BootMngr\BootManagerVfr.vfr</Filename>\r
+    <Filename>Generic\BootMngr\BootManagerVfr.Vfr</Filename>\r
     <Filename>Generic\DeviceMngr\DeviceManager.h</Filename>\r
     <Filename>Generic\DeviceMngr\DeviceManager.c</Filename>\r
     <Filename>Generic\DeviceMngr\DeviceManagerStrings.uni</Filename>\r
-    <Filename>Generic\DeviceMngr\DeviceManagerVfr.vfr</Filename>\r
+    <Filename>Generic\DeviceMngr\DeviceManagerVfr.Vfr</Filename>\r
     <Filename>Generic\Bds.dxs</Filename>\r
   </SourceFiles>\r
   <PackageDependencies>\r
index 44820bc..9fdd7ca 100644 (file)
@@ -172,69 +172,69 @@ Returns:
   // on it.\r
   //\r
   fclose (VfrFptr);\r
-  Len = strlen (PREPROCESSOR_OPTIONS) + strlen (gOptions.VfrFileName) + 10;\r
-  if (gOptions.CPreprocessorOptions != NULL) {\r
-    Len += strlen (gOptions.CPreprocessorOptions) + 1;\r
-  }\r
-  if (gOptions.IncludePaths != NULL) {\r
-    Len += strlen (gOptions.IncludePaths) + 1;\r
-  }\r
-  Cmd = (char *)malloc (Len);\r
-  if (Cmd == NULL) {\r
-    Error (PROGRAM_NAME, 0, 0, NULL, "could not allocate memory");\r
-    Cleanup();\r
-    return STATUS_ERROR;\r
-  }  \r
-  strcpy (Cmd, PREPROCESSOR_OPTIONS);\r
-  if (gOptions.IncludePaths != NULL) {\r
-    strcat (Cmd, gOptions.IncludePaths);\r
-    strcat (Cmd, " ");\r
-  }\r
-  if (gOptions.CPreprocessorOptions != NULL) {\r
-    strcat (Cmd, gOptions.CPreprocessorOptions);\r
-    strcat (Cmd, " ");\r
-  }\r
-  strcat (Cmd, gOptions.VfrFileName);\r
-#ifndef __GNUC__\r
-  Status = _spawnlp (_P_WAIT, PREPROCESSOR_COMMAND, Cmd, NULL);\r
-#else\r
-  {\r
-    char CommandLine[1000];\r
-    char *p;\r
-\r
-    //\r
-    // Lean the slashes forward.\r
-    //\r
-    for (p = gOptions.PreprocessorOutputFileName; *p; p++) {\r
-      if (*p=='\\') {\r
-        *p=FILE_SEP_CHAR;\r
-      }\r
-    }\r
\r
-    //\r
-    // Lean the slashes forward.\r
-    //\r
-    for (p = Cmd; *p; p++) {\r
-      if (*p=='\\') {\r
-        *p=FILE_SEP_CHAR;\r
-      }\r
-    }\r
\r
-    sprintf(CommandLine, "%s %s > %s", PREPROCESSOR_COMMAND, Cmd, gOptions.PreprocessorOutputFileName);\r
-    Status = system (CommandLine);\r
-  }\r
-#endif\r
-  if (Status != 0) {\r
-    Error (PROGRAM_NAME, 0, 0, gOptions.VfrFileName, "failed to spawn C preprocessor on VFR file");\r
-    printf ("Command: '%s %s'\n", PREPROCESSOR_COMMAND, Cmd);\r
-    Cleanup();\r
-    return STATUS_ERROR;\r
-  }\r
-  free (Cmd);\r
+//  Len = strlen (PREPROCESSOR_OPTIONS) + strlen (gOptions.VfrFileName) + 10;\r
+//  if (gOptions.CPreprocessorOptions != NULL) {\r
+//    Len += strlen (gOptions.CPreprocessorOptions) + 1;\r
+//  }\r
+//  if (gOptions.IncludePaths != NULL) {\r
+//    Len += strlen (gOptions.IncludePaths) + 1;\r
+//  }\r
+//  Cmd = (char *)malloc (Len);\r
+//  if (Cmd == NULL) {\r
+//    Error (PROGRAM_NAME, 0, 0, NULL, "could not allocate memory");\r
+//    Cleanup();\r
+//    return STATUS_ERROR;\r
+//  }  \r
+//  strcpy (Cmd, PREPROCESSOR_OPTIONS);\r
+//  if (gOptions.IncludePaths != NULL) {\r
+//    strcat (Cmd, gOptions.IncludePaths);\r
+//    strcat (Cmd, " ");\r
+//  }\r
+//  if (gOptions.CPreprocessorOptions != NULL) {\r
+//    strcat (Cmd, gOptions.CPreprocessorOptions);\r
+//    strcat (Cmd, " ");\r
+//  }\r
+//  strcat (Cmd, gOptions.VfrFileName);\r
+//#ifndef __GNUC__\r
+//  Status = _spawnlp (_P_WAIT, PREPROCESSOR_COMMAND, Cmd, NULL);\r
+//#else\r
+//  {\r
+//    char CommandLine[1000];\r
+//    char *p;\r
+// \r
+//    //\r
+//    // Lean the slashes forward.\r
+//    //\r
+//    for (p = gOptions.PreprocessorOutputFileName; *p; p++) {\r
+//      if (*p=='\\') {\r
+//        *p=FILE_SEP_CHAR;\r
+//      }\r
+//    }\r
+// \r
+//    //\r
+//    // Lean the slashes forward.\r
+//    //\r
+//    for (p = Cmd; *p; p++) {\r
+//      if (*p=='\\') {\r
+//        *p=FILE_SEP_CHAR;\r
+//      }\r
+//      }\r
+// \r
+//    sprintf(CommandLine, "%s %s > %s", PREPROCESSOR_COMMAND, Cmd, gOptions.PreprocessorOutputFileName);\r
+//    Status = system (CommandLine);\r
+//  }\r
+//#endif\r
+//  if (Status != 0) {\r
+//    Error (PROGRAM_NAME, 0, 0, gOptions.VfrFileName, "failed to spawn C preprocessor on VFR file");\r
+//    printf ("Command: '%s %s'\n", PREPROCESSOR_COMMAND, Cmd);\r
+//    Cleanup();\r
+//    return STATUS_ERROR;\r
+//  }\r
+//  free (Cmd);\r
   //\r
   // Open the preprocessor output file\r
   //\r
-  if ((VfrFptr = fopen (gOptions.PreprocessorOutputFileName, "r")) == NULL) {\r
+  if ((VfrFptr = fopen (gOptions.VfrFileName, "r")) == NULL) {\r
     Error (PROGRAM_NAME, 0, 0, "failed to open input VFR preprocessor output file", \r
       gOptions.PreprocessorOutputFileName);\r
     Cleanup();\r
index 359256a..d338672 100644 (file)
@@ -332,8 +332,8 @@ Returns:
     //\r
     // Open the input VFR file and the output list file\r
     //\r
-    if ((InFptr = fopen (gOptions.PreprocessorOutputFileName, "r")) == NULL) {\r
-      Warning (PROGRAM_NAME, 0, 0, gOptions.PreprocessorOutputFileName, "could not open file for creating a list file");\r
+    if ((InFptr = fopen (gOptions.VfrFileName, "r")) == NULL) {\r
+      Warning (PROGRAM_NAME, 0, 0, gOptions.VfrFileName, "could not open file for creating a list file");\r
     } else {\r
       if ((OutFptr = fopen (gOptions.VfrListFileName, "w")) == NULL) {\r
         Warning (PROGRAM_NAME, 0, 0, gOptions.VfrListFileName, "could not open output list file for writing");\r
index 679a577..2e1eec1 100644 (file)
@@ -709,7 +709,18 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
         </targetfiles>\r
 \r
         <sequential>\r
-          <vfrcompile createIfrBinFile="on" createListFile="on" outPutDir="${DEST_DIR_DEBUG}/@{FILEPATH}" vfrFile="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}">\r
+          <cc userdefine="on">\r
+            <command type="PP" cmd="${PP}" workdir="${DEST_DIR_OUTPUT}/@{FILEPATH}" family="${PP_FAMILY}" \r
+                dpath="${PP_DPATH}" libpath="${PP_LIBPATH}" include="${PP_INCLUDEPATH}">\r
+              <argument value="${VFR_FLAGS}"/>\r
+              <!-- Output file of the preprocess -->           \r
+              <argument value="-o ${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.i"/>\r
+              <EXTRA.INC/>\r
+              <fileset casesensitive="on" file="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>\r
+            </command>\r
+          </cc>\r
+          \r
+          <vfrcompile createIfrBinFile="on" createListFile="on" outPutDir="${DEST_DIR_DEBUG}/@{FILEPATH}" vfrFile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.i">\r
             <EXTRA.INC/>\r
           </vfrcompile>\r
     \r
index 98898d4..99d9a7b 100644 (file)
@@ -59,6 +59,7 @@ 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_SLINK_NAME        = lib.exe\r
 *_VS2003_IA32_DLINK_NAME        = link.exe\r
 *_VS2003_IA32_ASMLINK_NAME      = link.exe\r
@@ -74,6 +75,7 @@ IDENTIFIER = Default TOOL_CHAIN_CONF
 *_VS2003_IA32_*_DPATH           = C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\IDE\r
 \r
 *_VS2003_IA32_PP_FLAGS          = /nologo /P /TC /FI${DEST_DIR_DEBUG}/AutoGen.h \r
+*_VS2003_IA32_VFR_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
@@ -93,6 +95,7 @@ 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_*_SLINK_NAME      = lib.exe\r
 *_WINDDK3790x1830_*_DLINK_NAME      = link.exe\r
 *_WINDDK3790x1830_*_ASMLINK_NAME    = link.exe\r
@@ -100,7 +103,7 @@ RELEASE_VS2003_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /O
 *_WINDDK3790x1830_*_PCH_NAME        = cl.exe\r
 \r
 *_WINDDK3790x1830_*_SLINK_FLAGS     = /nologo /LTCG\r
-\r
+*_WINDDK3790x1830_*_VFR_FLAGS       = /nologo /P /TC /DVFRCOMPILE\r
 ##################\r
 # IA32 definitions\r
 ##################\r
@@ -202,10 +205,12 @@ 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_*_PCH_NAME       = cl.exe\r
 \r
 *_VS2005PRO_*_SLINK_FLAGS       = /NOLOGO /LTCG\r
 *_VS2005PRO_*_PP_FLAGS          = /nologo /P /TC /FI${DEST_DIR_DEBUG}/AutoGen.h \r
+*_VS2005PRO_*_VFR_FLAGS         = /nologo /P /TC /DVFRCOMPILE\r
 \r
 ##################\r
 # IA32 definitions\r
@@ -287,11 +292,13 @@ 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_VFR_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_*_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
 \r
 *_UNIXGCC_IA32_ASM_EXT      = .S\r
 *_UNIXGCC_IA32_*_PATH       = /opt/tiano/i386-tiano-pe/i386-tiano-pe/bin\r
@@ -343,6 +350,7 @@ 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
 \r
 *_CYGWINGCC_X64_CC_NAME       = gcc\r
 *_CYGWINGCC_X64_SLINK_NAME    = ar\r
@@ -355,6 +363,7 @@ RELEASE_VS2005PRO_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF
 *_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_*_PP_FLAGS        = -E -x assembler-with-cpp -include ${DEST_DIR_DEBUG}/AutoGen.h\r
+*_CYGWINGCC_*_VFR_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
@@ -452,9 +461,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_*_APP_NAME             = cl.exe\r
 *_MYTOOLS_*_ASM_NAME             = ml.exe\r
 \r
+*_MYTOOLS_*_VFR_FLAGS            = /nologo /P /TC /DVFRCOMPILE\r
 ##################\r
 # IA32 definitions\r
 ##################\r