]> git.proxmox.com Git - mirror_edk2.git/blob - BaseTools/UserManuals/Build_Utility_Man_Page.rtf
Sync EDKII BaseTools to BaseTools project r1903.
[mirror_edk2.git] / BaseTools / UserManuals / Build_Utility_Man_Page.rtf
1 {\rtf1\ansi\ansicpg936\deff0\deflang1033\deflangfe2052{\fonttbl{\f0\fswiss\fprq2\fcharset0 Verdana;}{\f1\froman\fprq2\fcharset0 Times New Roman;}}
2 {\colortbl ;\red8\green96\blue168;\red0\green0\blue0;}
3 {\stylesheet{ Normal;}{\s1 heading 1;}{\s2 heading 2;}}
4 {\*\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
5 \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
6 \pard\keep\keepn\nowidctlpar\s2\li-1440\sb400\sa60\sl-340\slmult0\tx360\cf1\b\fs28 Synopsis\par
7 \pard\nowidctlpar\li360\sb200\cf2\fs18 Build.exe [options] [target]\par
8 \pard\keep\keepn\nowidctlpar\s2\li-1440\sb400\sa60\sl-340\slmult0\cf1\fs28 Description\par
9 \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
10 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
11 \pard\keep\keepn\nowidctlpar\s2\li-1440\sb400\sa60\sl-340\slmult0\tx360\tx1440\cf1\b\fs28 Options\par
12 \pard\nowidctlpar\li360\sb200\cf2\b0\fs18 There are no required options. \par
13 \b -a, --arch <ARCH>\par
14 \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
15 \pard\nowidctlpar\li360\sb200\b -p, --platform PlatformName.dsc\par
16 \pard\nowidctlpar\li720\sb200\b0 Build the platform specified by the DSC file name argument, overrides target.txt's ACTIVE_PLATFORM definition.\par
17 \pard\nowidctlpar\li360\sb200\b -m, --module ModuleName.inf\par
18 \pard\nowidctlpar\li720\sb200\b0 Build the module specified by the INF file name argument.\par
19 \pard\nowidctlpar\li360\sb200\b -b, --buildtarget <TARGET>\par
20 \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
21 \pard\nowidctlpar\li360\sb200\b -t, --tagname Tagname\par
22 \pard\nowidctlpar\li720\sb200\b0 Using the Tool Chain Tagname to build the platform, overrides target.txt's TOOL_CHAIN_TAG definition.\par
23 \pard\nowidctlpar\li360\sb200\b -f --fdf Filename.fdf\par
24 \pard\nowidctlpar\li720\sb200\b0 The name of the FDF file to use, which overrides the setting in the DSC file.\par
25 \pard\nowidctlpar\li360\sb200\b -r --rom-image ROM_IMAGE_NAME\par
26 \pard\nowidctlpar\li720\sb200\b0 The name of FD to be generated. The name must be from [FD] section in FDF file.\par
27 \pard\nowidctlpar\li360\sb200\b -i --fv-image FV_IMAGE_NAME\par
28 \pard\nowidctlpar\li720\sb200\b0 The name of FV to be generated. The name must be from [FV] section in FDF file.\par
29 \pard\nowidctlpar\li360\sb200\b -n NUM\par
30 \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
31 \pard\nowidctlpar\li360\sb200\b -x --sku-id SKU_ID\f1\par
32 \pard\nowidctlpar\li720\sb200\b0\f0 Using this name of SKU ID to build the platform, overriding SKUID_IDENTIFIER in DSC file.\par
33 \pard\nowidctlpar\li360\sb200\b -u --skip-autogen\f1\par
34 \pard\nowidctlpar\li720\sb200\b0\f0 Skip AutoGen step. Note the build may fail if there\rquote s no AutoGen-ed files before.\par
35 \pard\nowidctlpar\li360\sb200\b -e --re-parse\f1\par
36 \pard\nowidctlpar\li720\sb200\b0\f0 Re-parse all meta-data files. Use this option if you encounter inconsistency issue.\f1\par
37 \pard\nowidctlpar\li360\sb200\b\f0 -w --warning-as-error\f1\par
38 \pard\nowidctlpar\li720\sb200\b0\f0 Treat warning in tools as error.\par
39 \pard\nowidctlpar\li360\sb200\b -j --log LOGFILE\f1\par
40 \pard\nowidctlpar\li720\sb200\b0\f0 Put screen output in specified file.\par
41 \pard\nowidctlpar\li360\sb200\b -s \endash silent\par
42 \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
43 \pard\nowidctlpar\li360\sb200\b -d, --debug [#]\par
44 \pard\nowidctlpar\li720\sb200\b0 Enable debug messages at specified level. It is used by Tool itself.\par
45 \pard\nowidctlpar\li360\sb200\b -q, --quiet\par
46 \pard\nowidctlpar\li720\sb200\b0 Disable all messages except FATAL ERRORS.\par
47 \pard\nowidctlpar\li360\sb200\b -v, --verbose\par
48 \pard\nowidctlpar\li720\sb200\b0 Turn on verbose output with informational messages printed.\par
49 \pard\nowidctlpar\li360\sb200\b -D, --define MACROS\par
50 \pard\nowidctlpar\li720\sb200\b0 Macro: "Name [= Value]".\par
51 \pard\nowidctlpar\li360\sb200\b -y, --report-file REPORTFILE\f1\par
52 \pard\nowidctlpar\li720\sb200\b0\f0 Create/overwrite the report to the specified filename.\par
53 \pard\nowidctlpar\li360\sb200\b -Y, --report-type REPORTTYPE\par
54 \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
55 \pard\nowidctlpar\li360\sb200\b --version\par
56 \pard\nowidctlpar\li720\sb200\b0 Show program's copyright and version number then exit.\par
57 \pard\nowidctlpar\li360\sb200\b -h, --help\par
58 \pard\nowidctlpar\li720\sb200\b0 Print the copyright, version and usage of this program then exit.\par
59 \pard\keep\keepn\nowidctlpar\s2\li-1440\sb400\sa60\sl-340\slmult0\tx360\tx1440\cf1\b\fs28 Target\par
60 \pard\nowidctlpar\li360\sb200\cf2\b0\fs18 If no target is given, then default target is ALL.\par
61 \b ALL\b0 Build everything for either the platform or module.\par
62 \b GenC\b0 Auto-generate all C files for either the platform or module.\par
63 \b GenMake\b0 Generate the Makefiles \endash if auto-generated files are missing,\par
64 \pard\nowidctlpar\li360 then auto-generate all C files first for either the platform or module.\par
65 \pard\nowidctlpar\li360\sb200\b Fds\b0 Create the FD Image files.\par
66 \b Libraries\b0 Build all EDK Libraries and EDK II Library Instances which are specified.\par
67 \b Modules\b0 Build all EDK components and EDK II modules which are specified.\par
68 \b Clean\b0 Remove intermediate files generated by the NMAKE command (leaving\par
69 \pard\nowidctlpar\li360 the auto-generated C format, FD image files, PE32 output files, PCH \par
70 files and LIB files).\par
71 \pard\nowidctlpar\li360\sb200\b CleanAll\b0 Remove all intermmediate, auto-generated, FV and FD image files \endash \par
72 \pard\nowidctlpar\li360 state of the tree should be exactly as if a fresh checkout or install has \par
73 occurred.\par
74 \pard\nowidctlpar\li360\sb200\b CleanLib\b0 Remove intermediate files generated by the NMAKE command AND LIB \par
75 \pard\nowidctlpar\li360 files (leaving the auto-generated, FV and FD image files, PE32 output \par
76 files and PCH files)\par
77 \pard\nowidctlpar\li360\sb200\b run\b0 Run platform (for emulator platform only)\par
78 \pard\nowidctlpar\li360\f1\par
79 \par
80 \pard\keep\keepn\nowidctlpar\s2\li-1440\sb400\sa60\sl-340\slmult0\tx360\tx1440\cf1\b\f0\fs28 Examples\par
81 \pard\nowidctlpar\li360\sb200\cf2\b0\fs18 Assume that $(WORKSPACE) is C:\\MyWorkspace\par
82 \pard\nowidctlpar\li180\sb200 Build platform: Nt32Pkg.dsc\par
83 \pard\nowidctlpar\li360\sb200 Specify the platform description file on the command line.\par
84 \pard\nowidctlpar\li720\sb200\b C:\\MyWorkspace>build -p Nt32Pkg\\Nt32Pkg.dsc \endash a IA32\par
85 \pard\nowidctlpar\li360\sb200\b0 Build the platform in the current working directory if it contains a platform description file.\par
86 \pard\nowidctlpar\li720\sb200\b C:\\MyWorkspace\\Nt32Pkg>build \endash a IA32\par
87 \pard\nowidctlpar\li360\sb200\b0 Build the active platform specified in the target.txt file.\par
88 \pard\nowidctlpar\li720\sb200\b C:\\ MyWorkspace>build \endash a Ia32\par
89 \pard\nowidctlpar\li360\sb200\b0\f1\par
90 \pard\nowidctlpar\li180\sb200\f0 Build Module: HelloWorld.inf\par
91 \pard\nowidctlpar\li360\sb200 Specify the platform and Module on the command line.\par
92 \pard\nowidctlpar\li720\sb200\b C:\\MyWorkspace>build -p Nt32Pkg\\Nt32Pkg.dsc \endash a IA32 \\\par
93 \pard\nowidctlpar\li720 \endash m MdeModulePkg/Application/HelloWorld/HelloWorld.inf\par
94 \pard\nowidctlpar\li360\sb200\b0 Specify the Module on the command line and use the active platform specified in the target.txt file.\par
95 \pard\nowidctlpar\li720\sb200\b C:\\MyWorkspace>build \endash a IA32 \\\par
96 \pard\nowidctlpar\li720\endash m MdeModulePkg/Application/HelloWorld/HelloWorld.inf\par
97 \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
98 \pard\nowidctlpar\li720\sb200\b C:\\ MyWorkspace\\MdeModulePkg\\Application\\HelloWorld>build \endash a Ia32 \\\par
99 \pard\nowidctlpar\li720\endash p Nt32Pkg\\Nt32Pkg.dsc\par
100 \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
101 \pard\nowidctlpar\li720\sb200\b C:\\ MyWorkspace\\MdeModulePkg\\Application\\HelloWorld>build \endash a Ia32 \par
102 \pard\keep\keepn\nowidctlpar\s2\li-1440\sb400\sa60\sl-340\slmult0\tx360\tx1440\cf1\fs28 Bugs \par
103 \pard\nowidctlpar\li360\sb200\cf2\b0\fs18 No known bugs.\par
104 Report bugs to issues@buildtools.tianocore.org\par
105 \pard\keep\keepn\nowidctlpar\s2\li-1440\sb400\sa60\sl-340\slmult0\tx360\tx1440\cf1\b\fs28 Files \par
106 \pard\nowidctlpar\li360\sb200\cf2\b0\fs18 target.txt, tools_def.txt, platform.dsc, flashmap.fdf, package.dec and module.inf.\par
107 \pard\keep\keepn\nowidctlpar\s2\li-1440\sb400\sa60\sl-340\slmult0\tx360\tx1440\cf1\b\fs28 See also\par
108 \pard\nowidctlpar\li360\sb200\cf2\b0\fs18 GenFds.exe\par
109 \pard\keep\keepn\nowidctlpar\s2\li-1440\sb400\sa60\sl-340\slmult0\tx360\tx1440\cf1\b\fs28 License\par
110 \pard\nowidctlpar\li360\cf2\b0\fs18 Copyright (c) 1999-2010 Intel Corporation. All rights reserved.\par
111 \par
112 This program and the accompanying materials are licensed and made available under the terms and\par
113 conditions of the BSD License which accompanies this distribution. The full text of the license may be\par
114 found at:\par
115 http://opensource.org/licenses/bsd-license.php\par
116 \par
117 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES\par
118 OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\par
119 }
120