mirror of https://github.com/acidanthera/audk.git
Sync EDKII BaseTools to BaseTools project r1937.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10287 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
aa91de055c
commit
f3decdc362
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -3213,8 +3213,6 @@ Returns:
|
|||
|
||||
if (PeHdr->Pe32.OptionalHeader.Magic == EFI_IMAGE_NT_OPTIONAL_HDR32_MAGIC) {
|
||||
Optional32 = (EFI_IMAGE_OPTIONAL_HEADER32 *)&PeHdr->Pe32.OptionalHeader;
|
||||
Optional32->MajorLinkerVersion = 0;
|
||||
Optional32->MinorLinkerVersion = 0;
|
||||
Optional32->MajorOperatingSystemVersion = 0;
|
||||
Optional32->MinorOperatingSystemVersion = 0;
|
||||
Optional32->MajorImageVersion = 0;
|
||||
|
@ -3307,8 +3305,6 @@ Returns:
|
|||
}
|
||||
} else if (PeHdr->Pe32.OptionalHeader.Magic == EFI_IMAGE_NT_OPTIONAL_HDR64_MAGIC) {
|
||||
Optional64 = (EFI_IMAGE_OPTIONAL_HEADER64 *)&PeHdr->Pe32.OptionalHeader;
|
||||
Optional64->MajorLinkerVersion = 0;
|
||||
Optional64->MinorLinkerVersion = 0;
|
||||
Optional64->MajorOperatingSystemVersion = 0;
|
||||
Optional64->MinorOperatingSystemVersion = 0;
|
||||
Optional64->MajorImageVersion = 0;
|
||||
|
|
|
@ -138,7 +138,7 @@ class WorkspaceAutoGen(AutoGen):
|
|||
# @param SkuId SKU id from command line
|
||||
#
|
||||
def _Init(self, WorkspaceDir, ActivePlatform, Target, Toolchain, ArchList, MetaFileDb,
|
||||
BuildConfig, ToolDefinition, FlashDefinitionFile='', Fds=[], Fvs=[], SkuId=''):
|
||||
BuildConfig, ToolDefinition, FlashDefinitionFile='', Fds=[], Fvs=[], SkuId='', UniFlag=None):
|
||||
self.MetaFile = ActivePlatform.MetaFile
|
||||
self.WorkspaceDir = WorkspaceDir
|
||||
self.Platform = ActivePlatform
|
||||
|
@ -146,6 +146,7 @@ class WorkspaceAutoGen(AutoGen):
|
|||
self.ToolChain = Toolchain
|
||||
self.ArchList = ArchList
|
||||
self.SkuId = SkuId
|
||||
self.UniFlag = UniFlag
|
||||
|
||||
self.BuildDatabase = MetaFileDb
|
||||
self.TargetTxt = BuildConfig
|
||||
|
@ -1191,6 +1192,13 @@ class PlatformAutoGen(AutoGen):
|
|||
BuildOptions[Tool][Attr] = Value[1:]
|
||||
else:
|
||||
BuildOptions[Tool][Attr] += " " + Value
|
||||
if Module.AutoGenVersion < 0x00010005 and self.Workspace.UniFlag != None:
|
||||
#
|
||||
# Override UNI flag only for EDK module.
|
||||
#
|
||||
if 'BUILD' not in BuildOptions:
|
||||
BuildOptions['BUILD'] = {}
|
||||
BuildOptions['BUILD']['FLAGS'] = self.Workspace.UniFlag
|
||||
return BuildOptions
|
||||
|
||||
Platform = property(_GetPlatform)
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Copyright (c) 2007, Intel Corporation
|
||||
# Copyright (c) 2007 - 2010, Intel Corporation
|
||||
# All rights reserved. This program and the accompanying materials
|
||||
# are licensed and made available under the terms and conditions of the BSD License
|
||||
# which accompanies this distribution. The full text of the license may be found at
|
||||
|
@ -193,7 +193,7 @@ class UniFileClassObject(object):
|
|||
# Get Language definition
|
||||
#
|
||||
def GetLangDef(self, File, Line):
|
||||
Lang = Line.split()
|
||||
Lang = Line.split(u"//")[0].split()
|
||||
if len(Lang) != 3:
|
||||
try:
|
||||
FileIn = codecs.open(File, mode='rb', encoding='utf-16').read()
|
||||
|
|
|
@ -263,7 +263,7 @@ def main():
|
|||
"\nPython",
|
||||
CODE_ERROR,
|
||||
"Tools code failure",
|
||||
ExtraData="Please submit bug report in www.TianoCore.org, attaching following call stack trace!\n",
|
||||
ExtraData="Please send email to edk2-buildtools-devel@lists.sourceforge.net for help, attaching following call stack trace!\n",
|
||||
RaiseError=False
|
||||
)
|
||||
EdkLogger.quiet(traceback.format_exc())
|
||||
|
|
|
@ -398,6 +398,9 @@ class InfParser(MetaFileParser):
|
|||
-1,
|
||||
0
|
||||
)
|
||||
if IsFindBlockComment:
|
||||
EdkLogger.error("Parser", FORMAT_INVALID, "Open block comments (starting with /*) are expected to end with */",
|
||||
File=self.MetaFile)
|
||||
self._Done()
|
||||
|
||||
## Data parser for the format in which there's path
|
||||
|
|
|
@ -656,14 +656,16 @@ class PeImageInfo():
|
|||
# @param BaseName The full file path of image.
|
||||
# @param Guid The GUID for image.
|
||||
# @param Arch Arch of this image.
|
||||
# @param OutpuDir The output directory for image.
|
||||
# @param OutputDir The output directory for image.
|
||||
# @param DebugDir The debug directory for image.
|
||||
# @param ImageClass PeImage Information
|
||||
#
|
||||
def __init__(self, BaseName, Guid, Arch, OutpuDir, ImageClass):
|
||||
def __init__(self, BaseName, Guid, Arch, OutputDir, DebugDir, ImageClass):
|
||||
self.BaseName = BaseName
|
||||
self.Guid = Guid
|
||||
self.Arch = Arch
|
||||
self.OutpuDir = OutpuDir
|
||||
self.OutputDir = OutputDir
|
||||
self.DebugDir = DebugDir
|
||||
self.Image = ImageClass
|
||||
self.Image.Size = (self.Image.Size / 0x1000 + 1) * 0x1000
|
||||
|
||||
|
@ -704,7 +706,7 @@ class Build():
|
|||
BuildTarget, FlashDefinition, FdList=[], FvList=[],
|
||||
MakefileType="nmake", SilentMode=False, ThreadNumber=2,
|
||||
SkipAutoGen=False, Reparse=False, SkuId=None,
|
||||
ReportFile=None, ReportType=None):
|
||||
ReportFile=None, ReportType=None, UniFlag=None):
|
||||
|
||||
self.WorkspaceDir = WorkspaceDir
|
||||
self.Target = Target
|
||||
|
@ -731,6 +733,7 @@ class Build():
|
|||
self.BuildDatabase = self.Db.BuildObject
|
||||
self.Platform = None
|
||||
self.LoadFixAddress = 0
|
||||
self.UniFlag = UniFlag
|
||||
|
||||
# print dot charater during doing some time-consuming work
|
||||
self.Progress = Utils.Progressor()
|
||||
|
@ -1007,22 +1010,26 @@ class Build():
|
|||
sys.stdout.flush()
|
||||
ModuleInfo = ModuleList[InfFile]
|
||||
ModuleName = ModuleInfo.BaseName
|
||||
ModuleOutputImage = ModuleInfo.Image.FileName
|
||||
ModuleDebugImage = os.path.join(ModuleInfo.DebugDir, ModuleInfo.BaseName + '.efi')
|
||||
## for SMM module in SMRAM, the SMRAM will be allocated from base to top.
|
||||
if not ModeIsSmm:
|
||||
BaseAddress = BaseAddress - ModuleInfo.Image.Size
|
||||
#
|
||||
# Update Image to new BaseAddress by GenFw tool
|
||||
#
|
||||
LaunchCommand(["GenFw", "--rebase", str(BaseAddress), "-r", ModuleInfo.Image.FileName], ModuleInfo.OutpuDir)
|
||||
LaunchCommand(["GenFw", "--rebase", str(BaseAddress), "-r", ModuleOutputImage], ModuleInfo.OutputDir)
|
||||
LaunchCommand(["GenFw", "--rebase", str(BaseAddress), "-r", ModuleDebugImage], ModuleInfo.DebugDir)
|
||||
else:
|
||||
#
|
||||
# Set new address to the section header only for SMM driver.
|
||||
#
|
||||
LaunchCommand(["GenFw", "--address", str(BaseAddress), "-r", ModuleInfo.Image.FileName], ModuleInfo.OutpuDir)
|
||||
LaunchCommand(["GenFw", "--address", str(BaseAddress), "-r", ModuleOutputImage], ModuleInfo.OutputDir)
|
||||
LaunchCommand(["GenFw", "--address", str(BaseAddress), "-r", ModuleDebugImage], ModuleInfo.DebugDir)
|
||||
#
|
||||
# Collect funtion address from Map file
|
||||
#
|
||||
ImageMapTable = ModuleInfo.Image.FileName.replace('.efi', '.map')
|
||||
ImageMapTable = ModuleOutputImage.replace('.efi', '.map')
|
||||
FunctionList = []
|
||||
if os.path.exists(ImageMapTable):
|
||||
OrigImageBaseAddress = 0
|
||||
|
@ -1069,9 +1076,13 @@ class Build():
|
|||
elif SectionHeader[0] in ['.data', '.sdata']:
|
||||
DataSectionAddress = SectionHeader[1]
|
||||
if AddrIsOffset:
|
||||
MapBuffer.write('(GUID=%s, .textbaseaddress=-0x%010X, .databaseaddress=-0x%010X)\n\n' % (ModuleInfo.Guid, 0 - (BaseAddress + TextSectionAddress), 0 - (BaseAddress + DataSectionAddress)))
|
||||
MapBuffer.write('(GUID=%s, .textbaseaddress=-0x%010X, .databaseaddress=-0x%010X)\n' % (ModuleInfo.Guid, 0 - (BaseAddress + TextSectionAddress), 0 - (BaseAddress + DataSectionAddress)))
|
||||
else:
|
||||
MapBuffer.write('(GUID=%s, .textbaseaddress=0x%010X, .databaseaddress=0x%010X)\n\n' % (ModuleInfo.Guid, BaseAddress + TextSectionAddress, BaseAddress + DataSectionAddress))
|
||||
MapBuffer.write('(GUID=%s, .textbaseaddress=0x%010X, .databaseaddress=0x%010X)\n' % (ModuleInfo.Guid, BaseAddress + TextSectionAddress, BaseAddress + DataSectionAddress))
|
||||
#
|
||||
# Add debug image full path.
|
||||
#
|
||||
MapBuffer.write('(IMAGE=%s)\n\n' % (ModuleDebugImage))
|
||||
#
|
||||
# Add funtion address
|
||||
#
|
||||
|
@ -1094,6 +1105,7 @@ class Build():
|
|||
if self.Fdf != '':
|
||||
# First get the XIP base address for FV map file.
|
||||
GuidPattern = re.compile("[-a-fA-F0-9]+")
|
||||
GuidName = re.compile("\(GUID=[-a-fA-F0-9]+")
|
||||
for FvName in Wa.FdfProfile.FvDict.keys():
|
||||
FvMapBuffer = os.path.join(Wa.FvDir, FvName + '.Fv.map')
|
||||
if not os.path.exists(FvMapBuffer):
|
||||
|
@ -1114,6 +1126,15 @@ class Build():
|
|||
if GuidString.upper() in ModuleList:
|
||||
Line = Line.replace(GuidString, ModuleList[GuidString.upper()].Name)
|
||||
MapBuffer.write('%s' % (Line))
|
||||
#
|
||||
# Add the debug image full path.
|
||||
#
|
||||
MatchGuid = GuidName.match(Line)
|
||||
if MatchGuid != None:
|
||||
GuidString = MatchGuid.group().split("=")[1]
|
||||
if GuidString.upper() in ModuleList:
|
||||
MapBuffer.write('(IMAGE=%s)\n' % (os.path.join(ModuleList[GuidString.upper()].DebugDir, ModuleList[GuidString.upper()].Name + '.efi')))
|
||||
|
||||
FvMap.close()
|
||||
|
||||
## Collect MAP information of all modules
|
||||
|
@ -1148,7 +1169,7 @@ class Build():
|
|||
ImageClass = PeImageClass (OutputImageFile)
|
||||
if not ImageClass.IsValid:
|
||||
EdkLogger.error("build", FILE_PARSE_FAILURE, ExtraData=ImageClass.ErrorInfo)
|
||||
ImageInfo = PeImageInfo(Module.Name, Module.Guid, Module.Arch, Module.OutputDir, ImageClass)
|
||||
ImageInfo = PeImageInfo(Module.Name, Module.Guid, Module.Arch, Module.OutputDir, Module.DebugDir, ImageClass)
|
||||
if Module.ModuleType in ['PEI_CORE', 'PEIM', 'COMBINED_PEIM_DRIVER','PIC_PEIM', 'RELOCATABLE_PEIM', 'DXE_CORE']:
|
||||
PeiModuleList[Module.MetaFile] = ImageInfo
|
||||
PeiSize += ImageInfo.Image.Size
|
||||
|
@ -1268,7 +1289,9 @@ class Build():
|
|||
#
|
||||
# Save address map into MAP file.
|
||||
#
|
||||
SaveFileOnChange(MapFilePath, MapBuffer.getvalue(), False)
|
||||
MapFile = open(MapFilePath, "wb")
|
||||
MapFile.write(MapBuffer.getvalue())
|
||||
MapFile.close()
|
||||
MapBuffer.close()
|
||||
if self.LoadFixAddress != 0:
|
||||
sys.stdout.write ("\nLoad Module At Fix Address Map file saved to %s\n" %(MapFilePath))
|
||||
|
@ -1291,7 +1314,8 @@ class Build():
|
|||
self.Fdf,
|
||||
self.FdList,
|
||||
self.FvList,
|
||||
self.SkuId
|
||||
self.SkuId,
|
||||
self.UniFlag
|
||||
)
|
||||
self.BuildReport.AddPlatformReport(Wa)
|
||||
self.Progress.Stop("done!")
|
||||
|
@ -1322,11 +1346,12 @@ class Build():
|
|||
# Rebase module to the preferred memory address before GenFds
|
||||
#
|
||||
self._CollectModuleMapBuffer(MapBuffer, ModuleList)
|
||||
if self.Fdf != '':
|
||||
#
|
||||
# create FDS again for the updated EFI image
|
||||
#
|
||||
self._Build("fds", Wa)
|
||||
if self.Fdf != '':
|
||||
#
|
||||
# create FDS again for the updated EFI image
|
||||
#
|
||||
self._Build("fds", Wa)
|
||||
#
|
||||
# Create MAP file for all platform FVs after GenFds.
|
||||
#
|
||||
|
@ -1357,7 +1382,8 @@ class Build():
|
|||
self.Fdf,
|
||||
self.FdList,
|
||||
self.FvList,
|
||||
self.SkuId
|
||||
self.SkuId,
|
||||
self.UniFlag
|
||||
)
|
||||
Wa.CreateMakeFile(False)
|
||||
self.Progress.Stop("done!")
|
||||
|
@ -1434,7 +1460,8 @@ class Build():
|
|||
self.Fdf,
|
||||
self.FdList,
|
||||
self.FvList,
|
||||
self.SkuId
|
||||
self.SkuId,
|
||||
self.UniFlag
|
||||
)
|
||||
self.BuildReport.AddPlatformReport(Wa)
|
||||
Wa.CreateMakeFile(False)
|
||||
|
@ -1521,13 +1548,11 @@ class Build():
|
|||
if self.LoadFixAddress != 0:
|
||||
self._CollectModuleMapBuffer(MapBuffer, ModuleList)
|
||||
|
||||
# Generate FD image if there's a FDF file found
|
||||
if self.Fdf != '' and self.Target in ["", "all", "fds"]:
|
||||
LaunchCommand(Wa.BuildCommand + ["fds"], Wa.MakeFileDir)
|
||||
|
||||
# Create MAP file for all platform FV after GenFds
|
||||
if self.Target in ["", "all", "fds"]:
|
||||
if self.Fdf != '':
|
||||
#
|
||||
# Generate FD image if there's a FDF file found
|
||||
#
|
||||
LaunchCommand(Wa.BuildCommand + ["fds"], Wa.MakeFileDir)
|
||||
#
|
||||
# Create MAP file for all platform FVs after GenFds.
|
||||
#
|
||||
|
@ -1711,6 +1736,10 @@ def MyOptionParser():
|
|||
Parser.add_option("-Y", "--report-type", action="append", type="choice", choices=['PCD','LIBRARY','FLASH','DEPEX','BUILD_FLAGS','FIXED_ADDRESS', 'EXECUTION_ORDER'], dest="ReportType", default=[],
|
||||
help="Flags that control the type of build report to generate. Must be one of: [PCD, LIBRARY, FLASH, DEPEX, BUILD_FLAGS, FIXED_ADDRESS, EXECUTION_ORDER]. "\
|
||||
"To specify more than one flag, repeat this option on the command line and the default flag set is [PCD, LIBRARY, FLASH, DEPEX, BUILD_FLAGS, FIXED_ADDRESS]")
|
||||
Parser.add_option("-F", "--flag", action="store", type="string", dest="Flag",
|
||||
help="Specify the specific option to parse EDK UNI file. Must be one of: [-c, -s]. -c is for EDK framework UNI file, and -s is for EDK UEFI UNI file. "\
|
||||
"This option can also be specified by setting *_*_*_BUILD_FLAGS in [BuildOptions] section of platform DSC. If they are both specified, this value "\
|
||||
"will override the setting in [BuildOptions] section of platform DSC.")
|
||||
|
||||
(Opt, Args)=Parser.parse_args()
|
||||
return (Opt, Args)
|
||||
|
@ -1822,12 +1851,15 @@ def Main():
|
|||
if ErrorCode != 0:
|
||||
EdkLogger.error("build", ErrorCode, ExtraData=ErrorInfo)
|
||||
|
||||
if Option.Flag != None and Option.Flag not in ['-c', '-s']:
|
||||
EdkLogger.error("build", OPTION_VALUE_INVALID, "UNI flag must be one of -c or -s")
|
||||
|
||||
MyBuild = Build(Target, Workspace, Option.PlatformFile, Option.ModuleFile,
|
||||
Option.TargetArch, Option.ToolChain, Option.BuildTarget,
|
||||
Option.FdfFile, Option.RomImage, Option.FvImage,
|
||||
None, Option.SilentMode, Option.ThreadNumber,
|
||||
Option.SkipAutoGen, Option.Reparse, Option.SkuId,
|
||||
Option.ReportFile, Option.ReportType)
|
||||
Option.ReportFile, Option.ReportType, Option.Flag)
|
||||
MyBuild.Launch()
|
||||
#MyBuild.DumpBuildData()
|
||||
except FatalError, X:
|
||||
|
|
|
@ -1,120 +1,210 @@
|
|||
{\rtf1\ansi\ansicpg936\deff0\deflang1033\deflangfe2052{\fonttbl{\f0\fswiss\fprq2\fcharset0 Verdana;}{\f1\froman\fprq2\fcharset0 Times New Roman;}}
|
||||
{\colortbl ;\red8\green96\blue168;\red0\green0\blue0;}
|
||||
{\stylesheet{ Normal;}{\s1 heading 1;}{\s2 heading 2;}}
|
||||
{\*\generator Msftedit 5.41.15.1515;}\viewkind4\uc1\pard\keep\keepn\nowidctlpar\s2\li-1440\sb400\sa60\sl-340\slmult0\tx360\cf1\b\f0\fs28 Name\par
|
||||
\pard\nowidctlpar\li360\sb200\cf2\b0\fs18 Build.exe \endash the master command that provides the developer with a single command for selecting various options of a build\par
|
||||
\pard\keep\keepn\nowidctlpar\s2\li-1440\sb400\sa60\sl-340\slmult0\tx360\cf1\b\fs28 Synopsis\par
|
||||
\pard\nowidctlpar\li360\sb200\cf2\fs18 Build.exe [options] [target]\par
|
||||
\pard\keep\keepn\nowidctlpar\s2\li-1440\sb400\sa60\sl-340\slmult0\cf1\fs28 Description\par
|
||||
\pard\nowidctlpar\li360\sb200\cf2\b0\fs18 Build.exe is the master command line (CLI) tool that provides the developer with a single command for selecting various options of a build. In general, it checks the environment variables, gets the user\rquote s configuration from either the CLI or target.txt, parses the dsc, dec, inf, target.txt, tools_def.txt, generates .C, .H files and the Makefiles for one or more modules and/or the active platform, calls a make (NMake or make) program to process these Makefiles, then optionally calls GenFds to generate an fd file.\par
|
||||
The build tool supports two kinds of path specifications on command line - an absolutely path or a relative (to the WORKSPACE environment variable) path \endash in command line.\par
|
||||
\pard\keep\keepn\nowidctlpar\s2\li-1440\sb400\sa60\sl-340\slmult0\tx360\tx1440\cf1\b\fs28 Options\par
|
||||
\pard\nowidctlpar\li360\sb200\cf2\b0\fs18 There are no required options. \par
|
||||
\b -a, --arch <ARCH>\par
|
||||
\pard\nowidctlpar\li720\sb200\b0 ARCH is one of list: IA32, X64, IPF or EBC, which overrides target.txt's TARGET_ARCH definition. To specify more ARCH, please repeat this option.\par
|
||||
\pard\nowidctlpar\li360\sb200\b -p, --platform PlatformName.dsc\par
|
||||
\pard\nowidctlpar\li720\sb200\b0 Build the platform specified by the DSC file name argument, overrides target.txt's ACTIVE_PLATFORM definition.\par
|
||||
\pard\nowidctlpar\li360\sb200\b -m, --module ModuleName.inf\par
|
||||
\pard\nowidctlpar\li720\sb200\b0 Build the module specified by the INF file name argument.\par
|
||||
\pard\nowidctlpar\li360\sb200\b -b, --buildtarget <TARGET>\par
|
||||
\pard\nowidctlpar\li720\sb200\b0 TARGET is one of list: DEBUG, RELEASE, which overrides target.txt's TARGET definition. To specify more TARGET, please repeat this option.\par
|
||||
\pard\nowidctlpar\li360\sb200\b -t, --tagname Tagname\par
|
||||
\pard\nowidctlpar\li720\sb200\b0 Using the Tool Chain Tagname to build the platform, overrides target.txt's TOOL_CHAIN_TAG definition.\par
|
||||
\pard\nowidctlpar\li360\sb200\b -f --fdf Filename.fdf\par
|
||||
\pard\nowidctlpar\li720\sb200\b0 The name of the FDF file to use, which overrides the setting in the DSC file.\par
|
||||
\pard\nowidctlpar\li360\sb200\b -r --rom-image ROM_IMAGE_NAME\par
|
||||
\pard\nowidctlpar\li720\sb200\b0 The name of FD to be generated. The name must be from [FD] section in FDF file.\par
|
||||
\pard\nowidctlpar\li360\sb200\b -i --fv-image FV_IMAGE_NAME\par
|
||||
\pard\nowidctlpar\li720\sb200\b0 The name of FV to be generated. The name must be from [FV] section in FDF file.\par
|
||||
\pard\nowidctlpar\li360\sb200\b -n NUM\par
|
||||
\pard\nowidctlpar\li720\sb200\b0 Build the platform using multi-threaded compiler. The value overrides target.txt's MULTIPLE_THREAD and MAX_CONCURRENT_THREAD_NUMBER. Less than 2 will disable multi-thread builds.\par
|
||||
\pard\nowidctlpar\li360\sb200\b -x --sku-id SKU_ID\f1\par
|
||||
\pard\nowidctlpar\li720\sb200\b0\f0 Using this name of SKU ID to build the platform, overriding SKUID_IDENTIFIER in DSC file.\par
|
||||
\pard\nowidctlpar\li360\sb200\b -u --skip-autogen\f1\par
|
||||
\pard\nowidctlpar\li720\sb200\b0\f0 Skip AutoGen step. Note the build may fail if there\rquote s no AutoGen-ed files before.\par
|
||||
\pard\nowidctlpar\li360\sb200\b -e --re-parse\f1\par
|
||||
\pard\nowidctlpar\li720\sb200\b0\f0 Re-parse all meta-data files. Use this option if you encounter inconsistency issue.\f1\par
|
||||
\pard\nowidctlpar\li360\sb200\b\f0 -w --warning-as-error\f1\par
|
||||
\pard\nowidctlpar\li720\sb200\b0\f0 Treat warning in tools as error.\par
|
||||
\pard\nowidctlpar\li360\sb200\b -j --log LOGFILE\f1\par
|
||||
\pard\nowidctlpar\li720\sb200\b0\f0 Put screen output in specified file.\par
|
||||
\pard\nowidctlpar\li360\sb200\b -s \endash silent\par
|
||||
\pard\nowidctlpar\li720\sb200\b0 Tell \ldblquote make\rdblquote tool to run \ldblquote silently\rdblquote . Internally, a \lquote -s\rquote switch will be passed to \ldblquote make\rdblquote tool. Don\rquote t use this option if your \ldblquote make\rdblquote tool doesn\rquote t support \lquote -s\rquote . Instead, if your \ldblquote make\rdblquote tool uses other option to do the same, you could add it to the XX_XX_XX_MAKE_FLAGS in tools_def.txt.\par
|
||||
\pard\nowidctlpar\li360\sb200\b -d, --debug [#]\par
|
||||
\pard\nowidctlpar\li720\sb200\b0 Enable debug messages at specified level. It is used by Tool itself.\par
|
||||
\pard\nowidctlpar\li360\sb200\b -q, --quiet\par
|
||||
\pard\nowidctlpar\li720\sb200\b0 Disable all messages except FATAL ERRORS.\par
|
||||
\pard\nowidctlpar\li360\sb200\b -v, --verbose\par
|
||||
\pard\nowidctlpar\li720\sb200\b0 Turn on verbose output with informational messages printed.\par
|
||||
\pard\nowidctlpar\li360\sb200\b -D, --define MACROS\par
|
||||
\pard\nowidctlpar\li720\sb200\b0 Macro: "Name [= Value]".\par
|
||||
\pard\nowidctlpar\li360\sb200\b -y, --report-file REPORTFILE\f1\par
|
||||
\pard\nowidctlpar\li720\sb200\b0\f0 Create/overwrite the report to the specified filename.\par
|
||||
\pard\nowidctlpar\li360\sb200\b -Y, --report-type REPORTTYPE\par
|
||||
\pard\nowidctlpar\li720\sb200\b0 Flags that control the type of build report to generate. Must be one of: [PCD, LIBRARY, FLASH, DEPEX, BUILD_FLAGS, FIXED_ADDRESS, EXECUTION_ORDER]. To specify more than one flag, repeat this option on the command line and the default flag set is [PCD, LIBRARY, FLASH, DEPEX, BUILD_FLAGS, FIXED_ADDRESS]\par
|
||||
\pard\nowidctlpar\li360\sb200\b --version\par
|
||||
\pard\nowidctlpar\li720\sb200\b0 Show program's copyright and version number then exit.\par
|
||||
\pard\nowidctlpar\li360\sb200\b -h, --help\par
|
||||
\pard\nowidctlpar\li720\sb200\b0 Print the copyright, version and usage of this program then exit.\par
|
||||
\pard\keep\keepn\nowidctlpar\s2\li-1440\sb400\sa60\sl-340\slmult0\tx360\tx1440\cf1\b\fs28 Target\par
|
||||
\pard\nowidctlpar\li360\sb200\cf2\b0\fs18 If no target is given, then default target is ALL.\par
|
||||
\b ALL\b0 Build everything for either the platform or module.\par
|
||||
\b GenC\b0 Auto-generate all C files for either the platform or module.\par
|
||||
\b GenMake\b0 Generate the Makefiles \endash if auto-generated files are missing,\par
|
||||
\pard\nowidctlpar\li360 then auto-generate all C files first for either the platform or module.\par
|
||||
\pard\nowidctlpar\li360\sb200\b Fds\b0 Create the FD Image files.\par
|
||||
\b Libraries\b0 Build all EDK Libraries and EDK II Library Instances which are specified.\par
|
||||
\b Modules\b0 Build all EDK components and EDK II modules which are specified.\par
|
||||
\b Clean\b0 Remove intermediate files generated by the NMAKE command (leaving\par
|
||||
\pard\nowidctlpar\li360 the auto-generated C format, FD image files, PE32 output files, PCH \par
|
||||
files and LIB files).\par
|
||||
\pard\nowidctlpar\li360\sb200\b CleanAll\b0 Remove all intermmediate, auto-generated, FV and FD image files \endash \par
|
||||
\pard\nowidctlpar\li360 state of the tree should be exactly as if a fresh checkout or install has \par
|
||||
occurred.\par
|
||||
\pard\nowidctlpar\li360\sb200\b CleanLib\b0 Remove intermediate files generated by the NMAKE command AND LIB \par
|
||||
\pard\nowidctlpar\li360 files (leaving the auto-generated, FV and FD image files, PE32 output \par
|
||||
files and PCH files)\par
|
||||
\pard\nowidctlpar\li360\sb200\b run\b0 Run platform (for emulator platform only)\par
|
||||
\pard\nowidctlpar\li360\f1\par
|
||||
\par
|
||||
\pard\keep\keepn\nowidctlpar\s2\li-1440\sb400\sa60\sl-340\slmult0\tx360\tx1440\cf1\b\f0\fs28 Examples\par
|
||||
\pard\nowidctlpar\li360\sb200\cf2\b0\fs18 Assume that $(WORKSPACE) is C:\\MyWorkspace\par
|
||||
\pard\nowidctlpar\li180\sb200 Build platform: Nt32Pkg.dsc\par
|
||||
\pard\nowidctlpar\li360\sb200 Specify the platform description file on the command line.\par
|
||||
\pard\nowidctlpar\li720\sb200\b C:\\MyWorkspace>build -p Nt32Pkg\\Nt32Pkg.dsc \endash a IA32\par
|
||||
\pard\nowidctlpar\li360\sb200\b0 Build the platform in the current working directory if it contains a platform description file.\par
|
||||
\pard\nowidctlpar\li720\sb200\b C:\\MyWorkspace\\Nt32Pkg>build \endash a IA32\par
|
||||
\pard\nowidctlpar\li360\sb200\b0 Build the active platform specified in the target.txt file.\par
|
||||
\pard\nowidctlpar\li720\sb200\b C:\\ MyWorkspace>build \endash a Ia32\par
|
||||
\pard\nowidctlpar\li360\sb200\b0\f1\par
|
||||
\pard\nowidctlpar\li180\sb200\f0 Build Module: HelloWorld.inf\par
|
||||
\pard\nowidctlpar\li360\sb200 Specify the platform and Module on the command line.\par
|
||||
\pard\nowidctlpar\li720\sb200\b C:\\MyWorkspace>build -p Nt32Pkg\\Nt32Pkg.dsc \endash a IA32 \\\par
|
||||
\pard\nowidctlpar\li720 \endash m MdeModulePkg/Application/HelloWorld/HelloWorld.inf\par
|
||||
\pard\nowidctlpar\li360\sb200\b0 Specify the Module on the command line and use the active platform specified in the target.txt file.\par
|
||||
\pard\nowidctlpar\li720\sb200\b C:\\MyWorkspace>build \endash a IA32 \\\par
|
||||
\pard\nowidctlpar\li720\endash m MdeModulePkg/Application/HelloWorld/HelloWorld.inf\par
|
||||
\pard\nowidctlpar\li360\sb200\b0 Build the module in the current working directory if it contains a module description file and specify the platform on the command line.\par
|
||||
\pard\nowidctlpar\li720\sb200\b C:\\ MyWorkspace\\MdeModulePkg\\Application\\HelloWorld>build \endash a Ia32 \\\par
|
||||
\pard\nowidctlpar\li720\endash p Nt32Pkg\\Nt32Pkg.dsc\par
|
||||
\pard\nowidctlpar\li360\sb200\b0 Build the module in the current working directory and use the active platform specified in the target.txt file.\par
|
||||
\pard\nowidctlpar\li720\sb200\b C:\\ MyWorkspace\\MdeModulePkg\\Application\\HelloWorld>build \endash a Ia32 \par
|
||||
\pard\keep\keepn\nowidctlpar\s2\li-1440\sb400\sa60\sl-340\slmult0\tx360\tx1440\cf1\fs28 Bugs \par
|
||||
\pard\nowidctlpar\li360\sb200\cf2\b0\fs18 No known bugs.\par
|
||||
Report bugs to issues@buildtools.tianocore.org\par
|
||||
\pard\keep\keepn\nowidctlpar\s2\li-1440\sb400\sa60\sl-340\slmult0\tx360\tx1440\cf1\b\fs28 Files \par
|
||||
\pard\nowidctlpar\li360\sb200\cf2\b0\fs18 target.txt, tools_def.txt, platform.dsc, flashmap.fdf, package.dec and module.inf.\par
|
||||
\pard\keep\keepn\nowidctlpar\s2\li-1440\sb400\sa60\sl-340\slmult0\tx360\tx1440\cf1\b\fs28 See also\par
|
||||
\pard\nowidctlpar\li360\sb200\cf2\b0\fs18 GenFds.exe\par
|
||||
\pard\keep\keepn\nowidctlpar\s2\li-1440\sb400\sa60\sl-340\slmult0\tx360\tx1440\cf1\b\fs28 License\par
|
||||
\pard\nowidctlpar\li360\cf2\b0\fs18 Copyright (c) 1999-2010 Intel Corporation. All rights reserved.\par
|
||||
\par
|
||||
This program and the accompanying materials are licensed and made available under the terms and\par
|
||||
conditions of the BSD License which accompanies this distribution. The full text of the license may be\par
|
||||
found at:\par
|
||||
http://opensource.org/licenses/bsd-license.php\par
|
||||
\par
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES\par
|
||||
OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\par
|
||||
}
|
||||
|