+Copy the target.template file in the Tools/Conf directory to target.txt, which\r
+must also be in the Tools/Conf directory.\r
+\r
+Edit the text file, target.txt, located in the Tools/Conf directory. This \r
+file contains options for setting the active platform and restricting the build. \r
+The restictions are used to limit the build output by specifying build target(s), \r
+tagname(s) and architecture(s) to less than the full set of possible options. \r
+\r
+The ACTIVE_PLATFORM MUST BE SET. All other options need not be set, however by \r
+unsetting these options (by removing the line from the file, or leaving the Value \r
+empty) will result in all available build possibilites when typing build. By\r
+default EDK II can build a matrix of binaries, using different target types, tool\r
+chain tags and architectures. Options to target.txt file are as follows:\r
+\r
+ACTIVE_PLATFORM = Value REQUIRED\r
+ Where Value is the WORKSPACE relative path and filename of a Framework Platform \r
+ Definition (FPD) File. Example:\r
+\r
+ACTIVE_PLATFORM = MdePkg/MdePkg.fpd\r
+\r
+TARGET = Value OPTIONAL\r
+ Where Value is a list of one or more of the following: DEBUG, RELEASE or a User\r
+ Defined Target type, such as PERF. Example: \r
+\r
+TARGET = DEBUG RELEASE\r
+\r
+TARGET_ARCH = Value OPTIONAL\r
+ Where Value is a list of one or more supported Architectures: IA32, X64, IPF or\r
+ EBC. Example: \r
+\r
+TARGET_ARCH = IA32 X64 EBC\r
+\r
+TOOL_CHAIN_CONF = Value OPTIONAL\r
+ Where Value is the Filename of an alternate tools_def.txt file created by the\r
+ user. The alternate tools_def.txt files must be in the Tools/Conf directory.\r
+ These tool definitions are scoped to the WORKSPACE (location of the EDK \r
+ installation) and cannot be shared between WORKSPACES. (You can copy the files\r
+ from one workspace to another.) Example: \r
+\r
+TOOL_CHAIN_CONF = alfred.txt\r
+\r
+TOOL_CHAIN_TAG = Value OPTIONAL\r
+ Where Value is a list of TagName entries as defined in the tools_def.txt file.\r
+ The TagName can be used to specify different versions of a compiler, i.e., \r
+ gcc 4.0 and gcc 4.1 which will allow you to build binaries with both tool chains \r
+ during the same build - useful during testing of a new compiler tool chain, or \r
+ for changing compiler flags to check out performance with a different set of \r
+ flags than flags used for production. Example:\r
+\r
+TOOL_CHAIN_TAG = GCC40 GCC41\r
+\r
+To clear a restriction, just remove any data after the equal sign. To clear\r
+the TARGET_ARCH limitation that was set above, enter: \r
+\r
+TARGET_ARCH =\r
+\r
+-----------\r
+Copy the tools_def.template file in Tools/Conf to tools_def.txt in the same\r
+directory.\r
+\r
+Edit the tools definition file, tools_def.txt, also located in the Tools/Conf \r
+directory. This file contains the names of the compiler tool chains and the \r
+location of the compiler binaries. It has been pre-populated with the standard \r
+location for the Microsoft tool chains and includes the standard location of \r
+the Intel C Compiler for EFI Byte Code (EBC.) In addition, EDK II provides\r
+support for Cygwin, Linux and OS X GCC compiler tool chains. A script has been\r
+provided in the Tools/gcc directory as well as instructions in obtaining and\r
+building a version of GCC that has been tested. The tools_def.txt file has\r
+the GCC binary locations that are created using this script.\r
+\r
+Both target.txt and tools_def.txt files are formatted as Property = Value, \r
+which must appear on a single line. Spanning a Value entry over multiple\r
+lines is not supported at this time. In the target.txt file, the Property is\r
+a single, uppercase word with underscore characters. These Property names are\r
+fixed by the build system. The tools_def.txt file's Property is an underscore\r
+delimited coding, which supports some user defined values. The coding for\r
+the Property is: TARGET_TAGNAME_ARCH_COMMAND_ATTR The Value, is either a \r
+full path, full path and filename or a reserved word.\r
+\r
+TARGET - DEBUG and RELEASE are predefined, however the user may define one or\r
+ more of their own TARGET types in this file.\r
+\r
+TAGNAME - HOST, MSFT, GCC, INTC are predefined, however the user may define \r
+ one or more of their own TAGNAME keywords in this file.\r
+\r
+ARCH - EDK II supports IA32, X64, IPF and EBC at this time.\r
+\r
+COMMAND - Predefined command codes are listed in the tools_def.txt file, however\r
+ the user can specify additional command codes for their one, non-\r
+ standard tools.\r
+\r
+ATTR - Predefined Attributes are listed in the tools_def.txt file.\r
+\r
+NOTE: The TAGNAME: HOST is reserved and MUST be defined in order to build the\r
+ included Tiano tools from their C source files. These tools have been\r
+ built and tested using both Microsoft and GCC tool chains.\r
+NOTE: The "*" symbol may be used as a wildcard character in most of these\r
+ fields, refer to the tools_def.txt and the "EDK II Build and Packaging\r
+ Architecture Specification" for more details.\r
+\r
+\r
+-----------\r