From bb0e4662b485cf5a973c7f09de1425ac4897c2db Mon Sep 17 00:00:00 2001 From: Konstantin Aladyshev Date: Mon, 14 Jun 2021 18:22:20 +0300 Subject: Add lesson 5 --- Lesson_5/README.md | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 Lesson_5/README.md (limited to 'Lesson_5/README.md') diff --git a/Lesson_5/README.md b/Lesson_5/README.md new file mode 100644 index 0000000..23130f4 --- /dev/null +++ b/Lesson_5/README.md @@ -0,0 +1,53 @@ +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 +``` + -- cgit v1.2.3-18-g5258