30.5 Building a UEFI driver
Building a UEFI Driver involves the use of the build.exe command provided
with the
EDK II tools. If the pre-requisites were followed at the beginning of this
chapter, then the only flag that need to be passed into build.exe is the DSC
file that is to be used for the build.
build -p MyDriverPkg/MyDriverPkg.dsc
If the build competes successfully, then the UEFI Driver generated can be found
in the build output directory that is specified in the DSC file. In the example
above, OUTPUT_DIRECTORY is set to Build/MyDriverPkg. The following
example shows where MyDriver.efi is located. This specific example shows
that a DEBUG build was used with a Microsoft family compiler to generate
MyDriver.efi for IA32.
Example 264-Build Output Directory
Build\
MyDriverPkg\
DEBUG_VS2005x86\
IA32\
MyDriver.efi
If a UEFI Driver needs to be built as a DEBUG build or a RELEASE build,
this can be specified on the command line. The following two examples show how
to build for DEBUG and RELEASE. If the -b flag is not specified, then the
build type is retrieved from Conf/target.txt.
build -b DEBUG -p MyDriverPkg/MyDriverPkg.dscbuild -b RELEASE -p MyDriverPkg/MyDriverPkg.dsc
If a UEFI Driver needs to be built for other CPU architectures, then those can also be specified on the command line. The following 4 examples show how to build for IA32, X64, IPF, and EBC if the compiler and linkers installed support all these architectures.
build -a IA32 -p MyDriverPkg/MyDriverPkg.dscbuild -a X64 -p MyDriverPkg/MyDriverPkg.dscbuild -a IPF -p MyDriverPkg/MyDriverPkg.dscbuild -a EBC -p MyDriverPkg/MyDriverPkg.dsc
The 4 separate commands above can also be combined into a single command:
build -a IA32 -a X64 -a IPF -a EBC -p MyDriverPkg/MyDriverPkg.dsc
The EDK II also supports a configuration file for builds in the file path
Conf/target.txt.
This file may be updated with the specific configuration that is most commonly
used. For example, the ACTIVE_PLATFORM can be set to
MyDriverPkg/MyDriverPkg.dsc, and the build command can then be invoked with
no parameters at all:
build
Please see the EDK II User's Manual and other EDK II documents for more details on how to use the build command and for details on INF files, DEC files, and DSC files.