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 ```