3.1 Building multiple architectures
The build tools use EDK II meta-data files (INF, DEC, DSC and, optionally, the
FDF) to create Makefiles that are then processed by third party tools. The
third party utility that is called after all pre-work has been completed is
define in the Conf/tools_def.txt
file using the tool code of MAKE. On Windows
systems, this will typically point to the (with the fully qualified path)
utility "nmake.exe
", while on *NIX systems, the utility is typically just
"make
". The build system will also generate a single master makefile, one
Makefile per architecture specified on the command-line or listed in the
Conf/target.txt
file and one Makefile for each for each module or library
instance within the architectural tree. Therefore, the build system must be
capable of processing and keeping track of common items and architecturally
specific content. Common content (not architecturally dependent) will be
processed for each architecture. For example, if -a IA32 -a X64 appear on the
command line, all modules that do not specify an architecture modifier in the
[Components]
, [Libraries]
or [LibraryClasses]
sections will be processed
so that makefiles for the module entries appear under IA32 and under X64
sub-directories in the build output tree. Where architectural modifiers are
used, the build tools will process content such that the modules (and their
makefiles) are only under the corresponding architecture trees.