12.2 Adding Custom Compression Tools

This section covers how to add a customized compress tool, such as TianoCompress tool.

First, one specific GUID is assigned to the added tool, which can be used to specify this tool and its compressed data. Then the tool path and GUID needs to be added into tools_def.txt file, for example TianoCompress tool used for all tool chains, Target and Archs can be added like:

*_*_*_TIANOCOMPRESS_PATH = DEF(TOOL_PATH)\TianoCompress.exe
*_*_*_TIANOCOMPRESS_GUID = A31280AD-481E-41B6-95E8-127F4C984779

Next, "$(TOOLNAME)" can be specified in build_rule.txt file to call this tool. And, its GUID value is supported in FDF file to call this tool, which is used to create the EFI guided section data. For TianoCompress tool, "$(TIANOCOMPRESS)" is used in build_rule.txt file, A31280AD-481E-41B6-95E8-127F4C984779 is used in FDF file.

NT32.fdf file uses TianoCompress tool to create the guided data like:

[Rule.Common.PEIM.TIANOCOMPRESSED]
  FILE PEIM = $(NAMED_GUID) DEBUG_MYTOOLS_IA32 {
    PEI_DEPEX PEI_DEPEX Optional |.depex
    GUIDED A31280AD-481E-41B6-95E8-127F4C984779 {
      PE32     PE32                       |.efi
      UI       STRING="$(MODULE_NAME)"    Optional
      VERSION  STRING = "$(INF_VERSION)"  OptionalBUILD_NUM = $(BUILD_NUMBER)
    }
  }