Fixed EDKT419.

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
This commit is contained in:
qouyang 2006-11-16 10:19:07 +00:00
parent 888f61aa99
commit b609c89b77
5 changed files with 89 additions and 67 deletions

View File

@ -88,7 +88,7 @@
<Filename>Generic\FrontPage.h</Filename>
<Filename>Generic\FrontPage.c</Filename>
<Filename>Generic\FrontPageStrings.uni</Filename>
<Filename>Generic\FrontPageVfr.vfr</Filename>
<Filename>Generic\FrontPageVfr.Vfr</Filename>
<Filename>Generic\Language.h</Filename>
<Filename>Generic\Language.c</Filename>
<Filename>Generic\String.h</Filename>
@ -114,11 +114,11 @@
<Filename>Generic\BootMngr\BootManager.h</Filename>
<Filename>Generic\BootMngr\BootManager.c</Filename>
<Filename>Generic\BootMngr\BootManagerStrings.uni</Filename>
<Filename>Generic\BootMngr\BootManagerVfr.vfr</Filename>
<Filename>Generic\BootMngr\BootManagerVfr.Vfr</Filename>
<Filename>Generic\DeviceMngr\DeviceManager.h</Filename>
<Filename>Generic\DeviceMngr\DeviceManager.c</Filename>
<Filename>Generic\DeviceMngr\DeviceManagerStrings.uni</Filename>
<Filename>Generic\DeviceMngr\DeviceManagerVfr.vfr</Filename>
<Filename>Generic\DeviceMngr\DeviceManagerVfr.Vfr</Filename>
<Filename>Generic\Bds.dxs</Filename>
</SourceFiles>
<PackageDependencies>

View File

@ -172,69 +172,69 @@ Returns:
// on it.
//
fclose (VfrFptr);
Len = strlen (PREPROCESSOR_OPTIONS) + strlen (gOptions.VfrFileName) + 10;
if (gOptions.CPreprocessorOptions != NULL) {
Len += strlen (gOptions.CPreprocessorOptions) + 1;
}
if (gOptions.IncludePaths != NULL) {
Len += strlen (gOptions.IncludePaths) + 1;
}
Cmd = (char *)malloc (Len);
if (Cmd == NULL) {
Error (PROGRAM_NAME, 0, 0, NULL, "could not allocate memory");
Cleanup();
return STATUS_ERROR;
}
strcpy (Cmd, PREPROCESSOR_OPTIONS);
if (gOptions.IncludePaths != NULL) {
strcat (Cmd, gOptions.IncludePaths);
strcat (Cmd, " ");
}
if (gOptions.CPreprocessorOptions != NULL) {
strcat (Cmd, gOptions.CPreprocessorOptions);
strcat (Cmd, " ");
}
strcat (Cmd, gOptions.VfrFileName);
#ifndef __GNUC__
Status = _spawnlp (_P_WAIT, PREPROCESSOR_COMMAND, Cmd, NULL);
#else
{
char CommandLine[1000];
char *p;
//
// Lean the slashes forward.
//
for (p = gOptions.PreprocessorOutputFileName; *p; p++) {
if (*p=='\\') {
*p=FILE_SEP_CHAR;
}
}
//
// Lean the slashes forward.
//
for (p = Cmd; *p; p++) {
if (*p=='\\') {
*p=FILE_SEP_CHAR;
}
}
sprintf(CommandLine, "%s %s > %s", PREPROCESSOR_COMMAND, Cmd, gOptions.PreprocessorOutputFileName);
Status = system (CommandLine);
}
#endif
if (Status != 0) {
Error (PROGRAM_NAME, 0, 0, gOptions.VfrFileName, "failed to spawn C preprocessor on VFR file");
printf ("Command: '%s %s'\n", PREPROCESSOR_COMMAND, Cmd);
Cleanup();
return STATUS_ERROR;
}
free (Cmd);
// Len = strlen (PREPROCESSOR_OPTIONS) + strlen (gOptions.VfrFileName) + 10;
// if (gOptions.CPreprocessorOptions != NULL) {
// Len += strlen (gOptions.CPreprocessorOptions) + 1;
// }
// if (gOptions.IncludePaths != NULL) {
// Len += strlen (gOptions.IncludePaths) + 1;
// }
// Cmd = (char *)malloc (Len);
// if (Cmd == NULL) {
// Error (PROGRAM_NAME, 0, 0, NULL, "could not allocate memory");
// Cleanup();
// return STATUS_ERROR;
// }
// strcpy (Cmd, PREPROCESSOR_OPTIONS);
// if (gOptions.IncludePaths != NULL) {
// strcat (Cmd, gOptions.IncludePaths);
// strcat (Cmd, " ");
// }
// if (gOptions.CPreprocessorOptions != NULL) {
// strcat (Cmd, gOptions.CPreprocessorOptions);
// strcat (Cmd, " ");
// }
// strcat (Cmd, gOptions.VfrFileName);
//#ifndef __GNUC__
// Status = _spawnlp (_P_WAIT, PREPROCESSOR_COMMAND, Cmd, NULL);
//#else
// {
// char CommandLine[1000];
// char *p;
//
// //
// // Lean the slashes forward.
// //
// for (p = gOptions.PreprocessorOutputFileName; *p; p++) {
// if (*p=='\\') {
// *p=FILE_SEP_CHAR;
// }
// }
//
// //
// // Lean the slashes forward.
// //
// for (p = Cmd; *p; p++) {
// if (*p=='\\') {
// *p=FILE_SEP_CHAR;
// }
// }
//
// sprintf(CommandLine, "%s %s > %s", PREPROCESSOR_COMMAND, Cmd, gOptions.PreprocessorOutputFileName);
// Status = system (CommandLine);
// }
//#endif
// if (Status != 0) {
// Error (PROGRAM_NAME, 0, 0, gOptions.VfrFileName, "failed to spawn C preprocessor on VFR file");
// printf ("Command: '%s %s'\n", PREPROCESSOR_COMMAND, Cmd);
// Cleanup();
// return STATUS_ERROR;
// }
// free (Cmd);
//
// Open the preprocessor output file
//
if ((VfrFptr = fopen (gOptions.PreprocessorOutputFileName, "r")) == NULL) {
if ((VfrFptr = fopen (gOptions.VfrFileName, "r")) == NULL) {
Error (PROGRAM_NAME, 0, 0, "failed to open input VFR preprocessor output file",
gOptions.PreprocessorOutputFileName);
Cleanup();

View File

@ -332,8 +332,8 @@ Returns:
//
// Open the input VFR file and the output list file
//
if ((InFptr = fopen (gOptions.PreprocessorOutputFileName, "r")) == NULL) {
Warning (PROGRAM_NAME, 0, 0, gOptions.PreprocessorOutputFileName, "could not open file for creating a list file");
if ((InFptr = fopen (gOptions.VfrFileName, "r")) == NULL) {
Warning (PROGRAM_NAME, 0, 0, gOptions.VfrFileName, "could not open file for creating a list file");
} else {
if ((OutFptr = fopen (gOptions.VfrListFileName, "w")) == NULL) {
Warning (PROGRAM_NAME, 0, 0, gOptions.VfrListFileName, "could not open output list file for writing");

View File

@ -709,7 +709,18 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
</targetfiles>
<sequential>
<vfrcompile createIfrBinFile="on" createListFile="on" outPutDir="${DEST_DIR_DEBUG}/@{FILEPATH}" vfrFile="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}">
<cc userdefine="on">
<command type="PP" cmd="${PP}" workdir="${DEST_DIR_OUTPUT}/@{FILEPATH}" family="${PP_FAMILY}"
dpath="${PP_DPATH}" libpath="${PP_LIBPATH}" include="${PP_INCLUDEPATH}">
<argument value="${VFR_FLAGS}"/>
<!-- Output file of the preprocess -->
<argument value="-o ${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.i"/>
<EXTRA.INC/>
<fileset casesensitive="on" file="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>
</command>
</cc>
<vfrcompile createIfrBinFile="on" createListFile="on" outPutDir="${DEST_DIR_DEBUG}/@{FILEPATH}" vfrFile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.i">
<EXTRA.INC/>
</vfrcompile>

View File

@ -59,6 +59,7 @@ IDENTIFIER = Default TOOL_CHAIN_CONF
*_VS2003_IA32_*_FAMILY = MSFT
*_VS2003_IA32_CC_NAME = cl.exe
*_VS2003_IA32_VFR_NAME = cl.exe
*_VS2003_IA32_SLINK_NAME = lib.exe
*_VS2003_IA32_DLINK_NAME = link.exe
*_VS2003_IA32_ASMLINK_NAME = link.exe
@ -74,6 +75,7 @@ IDENTIFIER = Default TOOL_CHAIN_CONF
*_VS2003_IA32_*_DPATH = C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\IDE
*_VS2003_IA32_PP_FLAGS = /nologo /P /TC /FI${DEST_DIR_DEBUG}/AutoGen.h
*_VS2003_IA32_VFR_FLAGS = /nologo /P /TC /DVFRCOMPILE
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
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
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
@ -93,6 +95,7 @@ RELEASE_VS2003_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /O
*_WINDDK3790x1830_*_*_FAMILY = MSFT
*_WINDDK3790x1830_*_CC_NAME = cl.exe
*_WINDDK3790x1830_*_VFR_NAME = cl.exe
*_WINDDK3790x1830_*_SLINK_NAME = lib.exe
*_WINDDK3790x1830_*_DLINK_NAME = link.exe
*_WINDDK3790x1830_*_ASMLINK_NAME = link.exe
@ -100,7 +103,7 @@ RELEASE_VS2003_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /O
*_WINDDK3790x1830_*_PCH_NAME = cl.exe
*_WINDDK3790x1830_*_SLINK_FLAGS = /nologo /LTCG
*_WINDDK3790x1830_*_VFR_FLAGS = /nologo /P /TC /DVFRCOMPILE
##################
# IA32 definitions
##################
@ -202,10 +205,12 @@ RELEASE_WINDDK3790x1830_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OP
*_VS2005PRO_*_DLINK_NAME = link.exe
*_VS2005PRO_*_ASMLINK_NAME = link.exe
*_VS2005PRO_*_PP_NAME = cl.exe
*_VS2005PRO_*_VFR_NAME = cl.exe
*_VS2005PRO_*_PCH_NAME = cl.exe
*_VS2005PRO_*_SLINK_FLAGS = /NOLOGO /LTCG
*_VS2005PRO_*_PP_FLAGS = /nologo /P /TC /FI${DEST_DIR_DEBUG}/AutoGen.h
*_VS2005PRO_*_VFR_FLAGS = /nologo /P /TC /DVFRCOMPILE
##################
# IA32 definitions
@ -287,11 +292,13 @@ RELEASE_VS2005PRO_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF
*_UNIXGCC_IA32_DLINK_NAME = ld
*_UNIXGCC_IA32_ASM_NAME = gcc
*_UNIXGCC_IA32_PP_NAME = gcc
*_UNIXGCC_IA32_VFR_NAME = gcc
*_UNIXGCC_IA32_CC_FLAGS = -Os -fshort-wchar -fno-strict-aliasing -Wall -Werror -c -include ${DEST_DIR_DEBUG}/AutoGen.h
*_UNIXGCC_*_DLINK_FLAGS = -nostdlib -O2 --gc-sections --dll --export-all-symbols --entry _${ENTRYPOINT}
*_UNIXGCC_IA32_ASM_FLAGS = -c -imacros ${DEST_DIR_DEBUG}/AutoGen.h
*_UNIXGCC_*_PP_FLAGS = -E -x assembler-with-cpp -include ${DEST_DIR_DEBUG}/AutoGen.h
*_UNIXGCC_*_VFR_FLAGS = -x c -E -P -DVFRCOMPILE
*_UNIXGCC_IA32_ASM_EXT = .S
*_UNIXGCC_IA32_*_PATH = /opt/tiano/i386-tiano-pe/i386-tiano-pe/bin
@ -343,6 +350,7 @@ RELEASE_VS2005PRO_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF
*_CYGWINGCC_IA32_DLINK_NAME = ld
*_CYGWINGCC_IA32_ASM_NAME = gcc
*_CYGWINGCC_IA32_PP_NAME = gcc
*_CYGWINGCC_IA32_VFR_NAME = gcc
*_CYGWINGCC_X64_CC_NAME = gcc
*_CYGWINGCC_X64_SLINK_NAME = ar
@ -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}
*_CYGWINGCC_*_ASM_FLAGS = -c -imacros ${DEST_DIR_DEBUG}/AutoGen.h
*_CYGWINGCC_*_PP_FLAGS = -E -x assembler-with-cpp -include ${DEST_DIR_DEBUG}/AutoGen.h
*_CYGWINGCC_*_VFR_FLAGS = -x c -E -P -DVFRCOMPILE
*_CYGWINGCC_*_ASM_EXT = .S
*_CYGWINGCC_IA32_*_PATH = c:/Cygwin/opt/tiano/i386-tiano-pe/i386-tiano-pe/bin
@ -452,9 +461,11 @@ RELEASE_MIXED_X64_ASM_FLAGS = /nologo /W3 /WX /c /Cx /Zd
*_MYTOOLS_*_DLINK_NAME = link.exe
*_MYTOOLS_*_ASMLINK_NAME = link.exe
*_MYTOOLS_*_PP_NAME = cl.exe
*_MYTOOLS_*_VFR_NAME = cl.exe
*_MYTOOLS_*_APP_NAME = cl.exe
*_MYTOOLS_*_ASM_NAME = ml.exe
*_MYTOOLS_*_VFR_FLAGS = /nologo /P /TC /DVFRCOMPILE
##################
# IA32 definitions
##################