4.2 Build Process Overview
Prior to executing a build command, specific system environment variables must
be initialized: WORKSPACE
, EDK_TOOLS_PATH
are required for all builds. Additionally,
the provided EDK II tool set must be present in a directory that is in the
system environment variable: PATH. The edksetup scripts provided in the root
directory of the EDK II development tree will set the WORKSPACE
and
EDK_TOOLS_PATH
, as well as modify the system environment variable, PATH to
ensure that the tools can execute. Refer to "Build Environment" for more
information.
Command-line options to the build command will override values defined in meta-data files.
The EDK II Build Process is handled in three major stages:
Pre-build or AutoGen stage: parse meta-data files, UCS-2LE encoded files and VFR files to generate some C source code files and the Makefiles.
Build or $(MAKE) stage: process source code files to create PE32/PE32+/COFF images that are processed to EFI format using
NMAKE
(Microsoft operating system development platforms) orMAKE
(for UNIX style operating system development platforms).Post-build or ImageGen stage: takes the binary, EFI format files and creates EFI "FLASH" images, EFI update capsules, UEFI applications or PCI Option ROMs.
Figure 18 shows the relationship of these three stages.
Figure 18 EDK II Platform Build Process Flow
Note: In Figure 18, Meta-Data Files indicates build tool meta-data files:
buildrule.txt
, tools_def.txt
, target.txt
and the like.
The Build process is organized so that if a FLASH image file is not required, such as in generating a Binary Module that will be distributed to other end-users, stage three can be skipped. Drivers, Option ROM and/or UEFI applications can also be distributed in this fashion.
Note: The Nt32Pkg
(Nt32Pkg/Nt32Pkg.dsc
) emulation platform requires
Windows header files. In order to include Windows header files, execute the
edk2setup.bat
utility with the --nt32 option. This option will detect the
Microsoft Visual Studio installation and will execute it's setup command, for
example, vsvars32.bat
.