8.1 Overview
This chapter describes in detail the steps that are accomplished by the AutoGen stage, which is the first step of building a platform or a module.
Figure 19 EDK II AutoGen Process
The first file the build tool is looking for in AutoGen stage is target.txt
in directory $(WORKSPACE)/Conf
. All the configurations in target.txt
can be
overridden by command line options of build tool. If no platform description
file is specified in either target.txt
and command line, the build tool will
try to find one in current directory. And if build tool finds a description
file of a module (INF file) in current directory, it will try to build just
that module only rather than building a whole platform.
Once the build tool gets what to build and how to build, it starts to parse the platform description file (DSC). From the DSC file, the build tools will locate the INF files for all modules and libraries, as well as other settings of the platform (including DEC specified default values for PCDs used by modules and libraries that do not have values specified in the DSC file).
From module description files, the build tool will find out what package description files the module depends on. In this way, the build tool will find out and parse all modules and packages that make up a platform.
The next thing to do in the AutoGen stage is to generate files required to
build a module. The files include: AutoGen.h
, AutoGen.c
, $(BASENAME).depex
and Makefile
.
AutoGen.c
and $(BASENAME).depex
files will not be generated for library
modules, and $(BASENAME).depex
file is generated only if there's [Depex]
section found in the module's INF file.
Each module found in DSC file will have a makefile generated for it. Once all
of the makefiles have been generated, the build tool will call nmake (or
make) for each module's Makefile
.
Note: When building a module, only the module's makefile will be called.