Skip to content

Files

Latest commit

43a5428 · Oct 29, 2021

History

History

Lesson_05

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
Jul 9, 2021
Oct 29, 2021
Jul 9, 2021

To build modules in our package we've used something like this:

$ build --platform=UefiLessonsPkg/UefiLessonsPkg.dsc \
        --module=UefiLessonsPkg/HelloWorld/HelloWorld.inf \
        --arch=X64 \
        --buildtarget=RELEASE \
        --tagname=GCC5

This is kinda long string. Let's simplify it.

First we can omit module option from the command and always compile our package entirely with all its modules:

$ build --platform=UefiLessonsPkg/UefiLessonsPkg.dsc \
        --arch=X64 \
        --buildtarget=RELEASE \
        --tagname=GCC5

When we initiate our environment with:

. edk2setup.sh

Conf directory is created in the edk2 folder. This directory is populated with a bunch of files. Also the CONF_PATH environment variable is created which points to the newly created Conf folder.

Right now we are interested in the Conf/target.txt file. By default it has many comments (lines that start with # symbol) and is prepopulated with these values:

ACTIVE_PLATFORM       = EmulatorPkg/EmulatorPkg.dsc
TARGET                = DEBUG
TARGET_ARCH           = IA32
TOOL_CHAIN_CONF       = Conf/tools_def.txt
TOOL_CHAIN_TAG        = VS2015x86
BUILD_RULE_CONF = Conf/build_rule.txt

We can put all our build command options in this file to simplify our everyday life.

ACTIVE_PLATFORM       = UefiLessonsPkg/UefiLessonsPkg.dsc
TARGET                = RELEASE
TARGET_ARCH           = X64
TOOL_CHAIN_CONF       = Conf/tools_def.txt
TOOL_CHAIN_TAG        = GCC5
BUILD_RULE_CONF = Conf/build_rule.txt

After that we could build our package with all its modules with the one single command:

build