Skip to content

Latest commit

 

History

History

Lesson_05

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

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