6.1 Environment Variables
There are two required system level environment variables that must be set, and several optional environment variables.
The first of the two required variables is
WORKSPACE. This variable points to a directory that will contain a Conf directory (containing the text files that are used to control build options) and the typical Build output directory tree. The following two lines are an example of setting this variable, the first in a Microsoft Windows* Command Prompt Window, while the second represents setting the variable in a UNIX terminal bash shell.
The second required environment variable,
EDK_TOOLS_PATH, required points to the directory containing the Conf directory for the BaseTools directory. The EDK II project contains a BaseTools directory,that contains setup scripts, template files and XML Schema files. Only one copy of the
BaseToolsdirectories needs to be installed on a workstation (although multiple copies are permitted, such as having one in each workspace). The
EDK_TOOLS_PATHvariable must point to the directory containing the
BaseTools/Confdirectory. The following lines are an example of setting this variable in a Microsoft Windows* Command Prompt window. The first line sets an absolute path to single location, outside of the workspace, while the second line uses tools located within the workspace.
If assembly code is used by the modules and the NASM assembler is used, the system environment variable,
NASM_PREFIXmust be set as shown below and must include the trailing backslash character:
When EDK II Packages are distributed within different directory trees on a developer's workstation, the
PACKAGES_PATHenvironment variable is used to list directories (prioritized from left to right) that contain EDK II Package directories. The operating system delimiter, such as the semi-colon character for Microsoft operating systems, is used to separate the directory names. If all development is performed under the root of the edk2 source tree, this variable is not required. The edk2 reference build system will look for EDK II packages in the directory specified in the
WORKSPACE, then search for the package directory in the directories listed in the
PACKAGES_PATH; the first occurrence of an EDK II package found will be used.
For Microsoft windows environments, the EDK_TOOLS_BIN environment variable can be used to point to the directory that contains the Win32 BaseTools binaries. If these Win32 binaries are located in edk2 directory tree under the
BaseTools\Bin\Win32directory; this variable is not required. Since developers using *NIX operating systems must build the 'C'-based tools prior to using them and run the Python based tools from source, this environment variable is not required. The edksetup script is used to add the path to the binaries to the system PATH environment variable.
The final optional environment variable,
ECP_SOURCE, is used to define the location of the EDK Compatibility Package content for building EDK modules. If these values are not set, the build system will automatically set the value to the
EdkCompatibilityPkgdirectory in the
If all development will be done within the root of the edk2 directory tree, and the Win32 BaseTools binaries are in the BaseTools\Bin\Win32 directory, then the edksetup script may be used to setup the development workspace by setting system environment variables,
If a more complex development environment is used (multiple directories containing EDK II Packages), then the
EDK_TOOLS_BINenvironment variables must be set before running the edksetup script.
The script must be executed prior to building in a new command prompt window or new terminal shell.
Another feature of the script is that it adds the path of the build system tools into the OS environment variable,