aboutsummaryrefslogtreecommitdiffstats
path: root/Lessons/Lesson_05/README.md
diff options
context:
space:
mode:
authorKonstantin Aladyshev <aladyshev22@gmail.com>2021-07-10 00:04:40 +0300
committerKonstantin Aladyshev <aladyshev22@gmail.com>2021-07-10 00:04:40 +0300
commit6064c1e48b622f53538f4df9bdd402c607a87d51 (patch)
tree93d3c937b9568568307fd2ff7053a30c538ad72a /Lessons/Lesson_05/README.md
parenta9c375c80c3505be794ec2b5d5bb90de27ef0d42 (diff)
downloadUEFI-Lessons-6064c1e48b622f53538f4df9bdd402c607a87d51.tar.gz
UEFI-Lessons-6064c1e48b622f53538f4df9bdd402c607a87d51.tar.bz2
UEFI-Lessons-6064c1e48b622f53538f4df9bdd402c607a87d51.zip
Move lessons to separate folder
Signed-off-by: Konstantin Aladyshev <aladyshev22@gmail.com>
Diffstat (limited to 'Lessons/Lesson_05/README.md')
-rw-r--r--Lessons/Lesson_05/README.md53
1 files changed, 53 insertions, 0 deletions
diff --git a/Lessons/Lesson_05/README.md b/Lessons/Lesson_05/README.md
new file mode 100644
index 0000000..23130f4
--- /dev/null
+++ b/Lessons/Lesson_05/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
+```
+