diff options
Diffstat (limited to 'BaseTools/Conf')
-rw-r--r-- | BaseTools/Conf/FrameworkDatabase.template | 28 | ||||
-rw-r--r-- | BaseTools/Conf/ReadMe.txt | 9 | ||||
-rw-r--r-- | BaseTools/Conf/XMLSchema/DistributionPackage.xsd | 2818 | ||||
-rw-r--r-- | BaseTools/Conf/XMLSchema/FarManifest.xsd | 174 | ||||
-rw-r--r-- | BaseTools/Conf/XMLSchema/FrameworkDataAttributes.xsd | 180 | ||||
-rw-r--r-- | BaseTools/Conf/XMLSchema/FrameworkDataElements.xsd | 728 | ||||
-rw-r--r-- | BaseTools/Conf/XMLSchema/FrameworkDataTypes.xsd | 581 | ||||
-rw-r--r-- | BaseTools/Conf/XMLSchema/FrameworkHeaders.xsd | 93 | ||||
-rw-r--r-- | BaseTools/Conf/XMLSchema/NamingConvention.xsd | 186 | ||||
-rw-r--r-- | BaseTools/Conf/XMLSchema/SurfaceArea.xsd | 82 | ||||
-rw-r--r-- | BaseTools/Conf/XMLSchema/SurfaceArea.xsdconfig | 16 | ||||
-rw-r--r-- | BaseTools/Conf/XMLSchema/WorkspaceContent.xsd | 409 | ||||
-rw-r--r-- | BaseTools/Conf/build_rule.template | 533 | ||||
-rw-r--r-- | BaseTools/Conf/target.template | 69 | ||||
-rw-r--r-- | BaseTools/Conf/tools_def.template | 3587 |
15 files changed, 9493 insertions, 0 deletions
diff --git a/BaseTools/Conf/FrameworkDatabase.template b/BaseTools/Conf/FrameworkDatabase.template new file mode 100644 index 0000000000..6d88349d26 --- /dev/null +++ b/BaseTools/Conf/FrameworkDatabase.template @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<FrameworkDatabase xmlns="http://www.TianoCore.org/2006/Edk2.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <FdbHeader>
+ <DatabaseName>FrameworkDatabase</DatabaseName>
+ <GuidValue>DD6913E0-3E4E-4B83-8838-57EE7FB71DD1</GuidValue>
+ <Version>0.3</Version>
+ <Abstract>The Framework Module Development Packaging System Database</Abstract>
+ <Description>
+ This Database tracks all packages and archives installed in this workspace.
+ </Description>
+ <Copyright>Copyright (c) 2007 - 2009, Intel Corporation. All rights reserved.</Copyright>
+ <License>
+ This program and the accompanying materials are licensed and made available
+ under the terms and conditions of the BSD License which accompanies this
+ distribution. The full text of the license may be found at:
+ http://opensource.org/licenses/bsd-license.php
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT
+ WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+ </License>
+ <Specification>FRAMEWORK_PACKAGING_SPECIFICATION 0x00090000</Specification>
+ </FdbHeader>
+ <PackageList>
+ <Filename>MdePkg/MdePkg.dec</Filename>
+ <Filename>MdeModulePkg/MdeModulePkg.dec</Filename>
+ <Filename>IntelFrameworkPkg/IntelFrameworkPkg.dec</Filename>
+ <Filename>IntelFrameworkModulePkg/IntelFrameworkModulePkg.dec</Filename>
+ </PackageList>
+</FrameworkDatabase>
diff --git a/BaseTools/Conf/ReadMe.txt b/BaseTools/Conf/ReadMe.txt new file mode 100644 index 0000000000..0e5e39d36b --- /dev/null +++ b/BaseTools/Conf/ReadMe.txt @@ -0,0 +1,9 @@ +This directory contains the template files for the next generation of the
+EDK II Build infrastructure. These files will be copied into the WORKSPACE's
+Conf directory if and only if the target files do not exist.
+
+These files may be updated frequently.
+
+The XMLSchema directory contains the EDK II Packaging XML definitions. The
+schema may change in the future. It differs somewhat from the early versions
+of the XML Schema.
\ No newline at end of file diff --git a/BaseTools/Conf/XMLSchema/DistributionPackage.xsd b/BaseTools/Conf/XMLSchema/DistributionPackage.xsd new file mode 100644 index 0000000000..b7cda67cda --- /dev/null +++ b/BaseTools/Conf/XMLSchema/DistributionPackage.xsd @@ -0,0 +1,2818 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +Filename: DistributionPackage.xsd + +Copyright (c) 2008, Intel Corporation. All rights reserved. + +This program and the accompanying materials are licensed and made available +under the terms and conditions of the BSD License which may be found at + http://opensource.org/licenses/bsd-license.php + +THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + +--> +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" + elementFormDefault="qualified" targetNamespace="http://www.uefi.org/2008/1.0" + xmlns="http://www.uefi.org/2008/1.0"> + <xs:element name="DistributionPackage"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This schema defines the UEFI/PI + Distribution Package description (PKG) file. It describes the content + of:</xs:documentation> + <xs:documentation xml:lang="en-us"> 1) Package descriptions with + definitions and headers.</xs:documentation> + <xs:documentation xml:lang="en-us"> 2) Modules in either source or binary + format. (Note that Binary format is for FFS leaf section file types + only, complete FFS files cannot be distributed using this distribution + format.) </xs:documentation> + <xs:documentation xml:lang="en-us"> 3) The distribution of custom tools + used to modify the binary images to create UEFI/PI compliant images. </xs:documentation> + <xs:documentation xml:lang="en-us"> 4) Finally, it can be used to + distribute other miscellaneous content that is not specific to UEFI/PI + images. </xs:documentation> + <xs:documentation xml:lang="en-us"> The Package Surface Area describes the + content of packages, while the Module Surface Area provides information + relevant to source and/or binary distributions. </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element ref="DistributionHeader" minOccurs="1" maxOccurs="1"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This header contains (legal) + information usually required for distributing both binary and/or + source code. </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element ref="PackageSurfaceArea" minOccurs="0" maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> The list of packages in this + distribution. </xs:documentation> + <xs:documentation xml:lang="en-us"> Packages are groups of files + and/or modules that are similar in nature.</xs:documentation> + <xs:documentation xml:lang="en-us"> Packages are uniquely identified + by a package GUID and a package version. </xs:documentation> + <xs:documentation xml:lang="en-us"> A package can declare public + mappings of C names to GUID values. </xs:documentation> + <xs:documentation xml:lang="en-us"> A package can provide header + files for library classes and/or other industry standard + definitions. </xs:documentation> + <xs:documentation xml:lang="en-us"> A package can also declare + public mappings of platform configuration database (PCD) + "knobs" to control features and operation of + modules within a platform. </xs:documentation> + <xs:documentation xml:lang="en-us"> Finally, a package lists the + library instances and/or modules that are provided in a + distribution package. </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element ref="ModuleSurfaceArea" minOccurs="0" maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> The listing of UEFI/PI compliant + modules in this distribution that are NOT part of a Package. Every + module that is provided as part of a package needs to be described + in a PackageSurfaceArea.Modules section. </xs:documentation> + <xs:documentation xml:lang="en-us"> The ModuleSurfaceArea section + describes how each module in a distribution is coded, or, in the + case of a binary module distribution, how it was built. </xs:documentation> + <xs:documentation xml:lang="en-us"> UEFI/PI compliant libraries and + modules are uniquely identified by the Module's GUID and version + number. </xs:documentation> + <xs:documentation xml:lang="en-us"> This section will typically be + used for modules that don't require any additional files that + would be included in a package. For example, the Enhanced FAT + driver binary does not need to have a package description, as no + additional files are provided. </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element ref="Tools" minOccurs="0" maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This section is for distributing + vendor specific executable tools, tool source code and/or + configuration files. These tools are primarily for manipulating + code and/or binary images. </xs:documentation> + <xs:documentation xml:lang="en-us"> Tools in this section + can:</xs:documentation> + <xs:documentation xml:lang="en-us"> 1) Parse build meta-data files + to create source code files and build scripts. </xs:documentation> + <xs:documentation xml:lang="en-us"> 2) Modify image files to conform + to UEFI/PI specifications. </xs:documentation> + <xs:documentation xml:lang="en-us"> 3) Generate binary files from + certain types of text/unicode files. </xs:documentation> + <xs:documentation xml:lang="en-us"> 4) Generate PCI Option Roms or + Firmware Device images. </xs:documentation> + <xs:documentation xml:lang="en-us"> 5) Implement external + encoding/decoding/signature/GUIDed tools. </xs:documentation> + <xs:documentation xml:lang="en-us"> 6) Distribution Package + create/install/remove tools. </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element ref="MiscellaneousFiles" minOccurs="0" maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> The list of miscellaneous files + in this distribution. Any files that are not listed in either the + Package, Module or Tools sections can be listed here. This section + can be used to distribute specifications for packages and modules + that are not "industry standards" such as a + specification for a chipset or a video device. </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element ref="UserExtensions" minOccurs="0" maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> The UserExtensions section is + used to disseminate processing instructions that may be custom to + the content provided by the distribution. This section contains + information that is common to all aspects of this disribution. + </xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + + </xs:complexType> + </xs:element> + <!-- End of the DistributionPackage Description --> + + <xs:element name="DistributionHeader"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This section defines the content of + the UEIF/PI compliant Distribution Package Header. This is the only + required element of a UEFI/PI compliant distribution package. + </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="1" maxOccurs="1" name="Name"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This is the User Interface Name + for this Distribution Package. </xs:documentation> + <xs:documentation xml:lang="en-us"> Each Distribution Package is + uniquely identified by it's GUID and Version number. + </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:normalizedString"> + <xs:attribute name="BaseName" type="xs:NCName" use="optional"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> The reference name of + the Distribution Package file. This single word name can + be used by tools as a keyword or for directory and/or file + creation. </xs:documentation> + <xs:documentation xml:lang="en-us"> White space and special + characters (dash and underscore characters may be used) + are not permitted in this name. </xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element minOccurs="1" maxOccurs="1" name="GUID"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This 128-bit GUID and the + Version attribute uniquely identify this Distribution Package. </xs:documentation> + <xs:documentation xml:lang="en-us"> Backward compatible releases of + a distribution package need only change the version number, while + non-backward compatible changes require the GUID to change + (resetting the version number to 1.0 is optional.) + </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="RegistryFormatGuid"> + <xs:attribute name="Version" type="xs:decimal" use="required"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This value, along with + the GUID, is used to uniquely identify this object. The + higher the number, the more recent the content. + </xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element minOccurs="1" maxOccurs="1" name="Vendor" + type="xs:normalizedString"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> A string identifying who created + this distribution package. </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="1" maxOccurs="1" name="Date" type="xs:dateTime"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> The date and time this + distribution was created. The format is: YYYY-MM-DDThh:mm:ss, for + example: 2001-01-31T13:30:00 (note the T character separator + between the calendar date and the time. </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="1" maxOccurs="1" name="Copyright" + type="xs:string"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> The copyright for this file that + is generated by the creator of the distribution. If a derivative + work is generated from an existing distribution, then the existing + copyright must be maintained, and additional copyrights may be + appended to the end of this element. It may also be the primary + copyright for all code provided in the Distribution Package. + </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="1" maxOccurs="1" name="License" type="xs:string"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> A license that describes any + restrictions on the use of this distribution. If a derivative work + is allowed by the original license and a derivative work is + generated from an existing distribution, then the existing license + must be maintained, and additional licenses may be appended to the + end of this element. It may also be the primary license for all + code provided in the distribution file. Alternatively, this may + point to a filename that contains the License. The file (included + in the content zip file) will be stored in the same location as + the distribution package's .pkg file. </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="1" maxOccurs="1" name="Abstract" + type="xs:normalizedString"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> A one line description of the + Distribution Package. </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" maxOccurs="1" name="Description" + type="xs:string"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> A complete description of the + Distribution Package. This description may include the release + name of the file, the version of the file, and a complete + description of the file contents and/or features including a + description of the updates since the previous file release. + </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" maxOccurs="1" name="Signature" type="Md5Sum"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> The packaging utilities will use + this MD5 sum value of the included ZIP file containing files + and/or code. If this element is not present, then installation + tools should assume that the content is correct, or that other + methods may be needed to verify content. </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="1" maxOccurs="1" name="XmlSpecification" + type="xs:decimal" default="1.0"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This version of this XML Schema + is 1.0 </xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + <xs:attribute name="ReadOnly" type="xs:boolean" default="false" + use="optional"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> If set to true, all content within + this Distribution Package should NOT be modified. The default + permits modification of all content. </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="RePackage" type="xs:boolean" default="false" + use="optional"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> If set to true, then the content + can be repackaged into another distribution package. The default + prohibits repackaging the Distribution content. </xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:complexType> + </xs:element> + <!-- End of the DistributionHeader element. --> + + <xs:element name="PackageSurfaceArea"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> A package is a collection of related + objects - Includes, Libraries and Modules. </xs:documentation> + <xs:documentation xml:lang="en-us"> Each package is uniquely identified by + it's GUID and Version number. Backward compatible releases of a package + need only change the version number, while non-backward compatible + changes require the GUID to change (resetting the version number to 1.0 + is optional.) </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + + <xs:element minOccurs="1" maxOccurs="1" name="Header"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="1" maxOccurs="1" name="Name"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This is the User Interface + Name for this package. </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:normalizedString"> + <xs:attribute name="BaseName" type="xs:NCName" + use="required"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This is a single + word BaseName of the package. This BaseName can be + used by tools as a keyword and for directory/file + creation. </xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element minOccurs="1" maxOccurs="1" name="GUID"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This GUID and the Version + attribute uniquely identify a given package. + </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="RegistryFormatGuid"> + <xs:attribute name="Version" type="xs:decimal" + use="required"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This value, along + with the GUID, is used to uniquely identify this + object. </xs:documentation> + <xs:documentation xml:lang="en-us"> Backward + compatible changes must make sure this number is + incremented from the most recent version. + Non-backward compatible changes require a new GUID, + and the version can be reset. </xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element minOccurs="0" maxOccurs="1" name="Copyright" + type="xs:string"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> If the package requires a + different copyright than the distribution package, this + element can list one or more copyright lines. + </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" maxOccurs="1" name="License" + type="xs:string"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> If the package requires + licenses that are different from the distribution package + license, this element can contain one or more license text + paragraphs (or license filenames.) </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" maxOccurs="1" name="Abstract" + type="xs:normalizedString"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> A one line description of + this package. </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" maxOccurs="1" name="Description" + type="xs:string"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> A complete description of + a package. This description may include the release name of + the package, the version of the package, and a complete + description of the package contents and/or features + including a description of the updates since the previous + package’s release. </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="1" maxOccurs="1" name="PackagePath" + type="xs:anyURI"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This element is the + location (in the ZIP file) for the root directory of a + package. </xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + <!-- End of PackageSurfaceArea Header element. --> + + <xs:element minOccurs="0" maxOccurs="1" name="ClonedFrom"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> The term cloned is used here to + indicate that this package as been copied and modified to a + completely different package. An example might be for a new + generation of chipsets that have few or no elements in common with + the original. </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="1" maxOccurs="1" name="GUID"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This GUID and the Version + attribute uniquely identify the Package that this Package + was copied from. </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="RegistryFormatGuid"> + <xs:attribute name="Version" type="xs:decimal" + use="required"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This value, along + with the GUID, is used to uniquely identify the + package that this package was cloned from. + </xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + <!-- End of PackageSurfaceArea ClonedFrom element. --> + + <xs:element minOccurs="0" maxOccurs="1" name="LibraryClassDeclarations"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> Library Classes are public + interfaces that can be used by modules. One or more library + instances can implement a library class, however only one library + instance can be linked to an individual module. This provides the + platform integrator with the flexibility of choosing one library + instance's implementation over a different library instance. + </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="1" maxOccurs="unbounded" + name="LibraryClass"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="1" maxOccurs="1" name="HeaderFile" + type="xs:anyURI"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> The header file + provides definitions and function prototypes for a + library class. Modules can be coded against these + functions, using the definitions in this header, + without concerning themselves about the libraries' + implementation details. This is a PackagePath relative + path and filename for the include file. + </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" maxOccurs="1" + name="RecommendedInstance"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="1" maxOccurs="1" name="GUID"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This GUID and + the Version attribute uniquely identify the + Recommended Library Instance. + </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="RegistryFormatGuid"> + <xs:attribute name="Version" type="xs:decimal" + use="optional"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This + value, along with the GUID, is used to + uniquely identify this object. If this + value is not specified, then any version + of the library instance is recommended. + </xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element ref="HelpText" minOccurs="0" + maxOccurs="unbounded" /> + </xs:sequence> + <xs:attribute name="Keyword" type="xs:NCName" use="required"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> The single word name + of the Library Class that module developers will use to + identify a library class dependency. </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attributeGroup ref="SupportedArchMod" /> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + <!-- End of PackageSurfaceArea LibraryClassDeclarations element. --> + + <xs:element minOccurs="0" maxOccurs="1" name="IndustryStandardIncludes"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This section is used to list + header files for industry standards not under the auspices of + UEFI.org. For example, headers that contain definitions and data + structures for the USB specifications. </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="1" maxOccurs="unbounded" + name="IndustryStandardHeader"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="1" maxOccurs="1" name="HeaderFile" + type="xs:anyURI"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> The package relative + path and filename (in the content zip file) of the + industry standard include file. </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element ref="HelpText" minOccurs="0" + maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + <!-- End of PackageSurfaceArea IndustryStdIncludes element. --> + + <xs:element minOccurs="0" maxOccurs="1" name="PackageIncludes"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> All top level header files that + are included by a package that are not listed above. They cannot + be:</xs:documentation> + <xs:documentation xml:lang="en-us"> 1) Local to a module (module + specific.) </xs:documentation> + <xs:documentation xml:lang="en-us"> 2) An industry standard header. </xs:documentation> + <xs:documentation xml:lang="en-us"> 3) A library class header. + </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="1" maxOccurs="unbounded" + name="PackageHeader"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="1" maxOccurs="1" name="HeaderFile"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This is the Package + relative path and filename location within the content + ZIP file. </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:anyURI"> + <xs:attributeGroup ref="SupportedArchMod" /> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element ref="HelpText" minOccurs="0" + maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + <!-- End of PackageSurfaceArea PackageIncluces element. --> + + <xs:element minOccurs="0" maxOccurs="1" name="Modules"> + <xs:complexType> + <xs:sequence> + <xs:element ref="ModuleSurfaceArea" minOccurs="1" + maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This section lists the + Module Surface Area for all modules provided with this + package. </xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + <!-- End of PackageSurfaceArea Modules element. --> + + <xs:element minOccurs="0" maxOccurs="1" name="GuidDeclarations"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This section defines the mapping + of GUID C names to GUID values as a Registry Format GUID. </xs:documentation> + <xs:documentation xml:lang="en-us"> Modules that use these GUIDs + must specify their dependency on this package. </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="1" maxOccurs="unbounded" name="Entry"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> Individual GUID + Declarations </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="1" maxOccurs="1" name="CName" + type="xs:NCName" /> + <xs:element minOccurs="1" maxOccurs="1" name="GuidValue" + type="RegistryFormatGuid" /> + <xs:element ref="HelpText" minOccurs="0" + maxOccurs="unbounded" /> + </xs:sequence> + <xs:attribute name="UiName" type="xs:normalizedString" use="optional" /> + <xs:attribute name="GuidTypes" type="GuidListType" + use="optional" /> + <xs:attributeGroup ref="SupportedArchMod" /> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + <!-- End of PackageSurfaceArea GuidDeclarations element. --> + + <xs:element minOccurs="0" maxOccurs="1" name="ProtocolDeclarations"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This section defines the mapping + of Protocol C names to GUID values as a Registry Format GUID. </xs:documentation> + <xs:documentation xml:lang="en-us"> Modules that use these Protocols + must specify their dependency on this package. </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="1" maxOccurs="unbounded" name="Entry"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> Individual Protocol + Declarations </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="1" maxOccurs="1" name="CName" + type="xs:NCName" /> + <xs:element minOccurs="1" maxOccurs="1" name="GuidValue" + type="RegistryFormatGuid" /> + <xs:element ref="HelpText" minOccurs="0" + maxOccurs="unbounded" /> + </xs:sequence> + <xs:attribute name="UiName" type="xs:normalizedString" use="optional" /> + <xs:attributeGroup ref="SupportedArchMod" /> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + <!-- End of PackageSurfaceArea ProtocolDeclarations element. --> + + <xs:element minOccurs="0" maxOccurs="1" name="PpiDeclarations"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This section defines the mapping + of Ppi C names to GUID values as a Registry Format GUID. </xs:documentation> + <xs:documentation xml:lang="en-us"> Modules that use these Ppis must + specify their dependency on this package. </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="1" maxOccurs="unbounded" name="Entry"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> Individual PPI + Declarations </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="1" maxOccurs="1" name="CName" + type="xs:NCName" /> + <xs:element minOccurs="1" maxOccurs="1" name="GuidValue" + type="RegistryFormatGuid" /> + <xs:element ref="HelpText" minOccurs="0" + maxOccurs="unbounded" /> + </xs:sequence> + <xs:attribute name="UiName" type="xs:normalizedString" use="optional" /> + <xs:attributeGroup ref="SupportedArchMod" /> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + <!-- End of PackageSurfaceArea PpiDeclarations element. --> + + <xs:element minOccurs="0" maxOccurs="1" name="PcdDeclarations"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This section is used to declare + platform configuration knobs that are defined by this package. </xs:documentation> + <xs:documentation xml:lang="en-us"> Modules that use these PCD + values must specify their dependency on this package. + </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="1" maxOccurs="unbounded" name="PcdEntry"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="1" maxOccurs="1" + name="TokenSpaceGuidCname" type="xs:NCName"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> Specifies the C name + of the Token Space GUID of which this PCD Entry is a + member. This C name should also be listed in the GUIDs + section, (specified above,) where the C name is + assigned to a GUID value. </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="1" maxOccurs="1" name="Token"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> Specifies the 32-bit + token value for this PCD Entry. The Token number must + be unique to the Token Space that declares the PCD. </xs:documentation> + <xs:documentation xml:lang="en-us"> The minLength of 3 + is required to handle the "0x" prefix to the hex + number. </xs:documentation> + </xs:annotation> + <xs:simpleType> + <xs:restriction base="HexNumber"> + <xs:minLength value="3" /> + <xs:maxLength value="10" /> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element minOccurs="1" maxOccurs="1" name="CName" + type="xs:NCName" /> + <xs:element minOccurs="1" maxOccurs="1" name="DatumType" + type="PcdDatumTypes"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> A string that + contains the data type of this PCD Entry. PCD data + types are restricted to the following set:UINT8, + UINT16, UINT32, UINT64, VOID*, BOOLEAN. + </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="1" maxOccurs="1" name="ValidUsage" + type="PcdItemListType"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> A string that + contains one or more PCD Item types separated by + spaces. The PCD Item types are restricted to + FeaturePcd, FixedPcd, PatchPcd, Pcd and/or PcdEx. + </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="1" maxOccurs="1" name="DefaultValue" + type="xs:normalizedString" /> + <xs:element minOccurs="0" maxOccurs="1" name="MaxDatumSize"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This is a + recommended maximum data size for VOID* data types, + the actual value should be defined by the Platform + Integrator. It is not required for the other data + types. </xs:documentation> + <xs:documentation xml:lang="en-us"> The minLength of 3 + is required to handle the "0x" prefix to the hex + number. </xs:documentation> + + </xs:annotation> + <xs:simpleType> + <xs:restriction base="HexNumber"> + <xs:minLength value="3" /> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element ref="HelpText" minOccurs="0" + maxOccurs="unbounded" /> + + <xs:element minOccurs="0" maxOccurs="unbounded" + name="PcdError"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> Valid Error messages + that may be implemented in a module for the PCD Entry. + Only One Error Number per PcdError, (multiple + ErrorMessage entries are permitted) and multiple + PcdError elements are permitted. </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:choice minOccurs="1" maxOccurs="1"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> One of the + following types of comparisons, which must be + able to evaluate to either true or false. + </xs:documentation> + </xs:annotation> + <xs:element minOccurs="0" maxOccurs="1" + name="ValidValueList"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> The PCD + Value must be space separated list of values. + Values are restricted to the data type of this + PCD. </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:normalizedString"> + <xs:attribute name="Lang" type="xs:language" + use="optional" /> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element minOccurs="0" maxOccurs="1" + name="ValidValueRange" type="xs:normalizedString"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> The PCD must + be within a specifed range of numeric values. + Restricted to C style Relational, Equality and + Logicial Operators and parenthesis are valid. + Only the CName for this PCD is permitted in + the ValidValueRange expression. All other + values must be numeric.</xs:documentation> + <xs:documentation xml:lang="en-us"> LValue (op + RValue)+ </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" maxOccurs="1" + name="Expression" type="xs:normalizedString"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> A in-fix + logical expression using C style logical + operators. </xs:documentation> + </xs:annotation> + </xs:element> + </xs:choice> + <xs:element minOccurs="1" maxOccurs="1" + name="ErrorNumber"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> A hexadecimal + value for the error message as defined by + specifications. </xs:documentation> + <xs:documentation xml:lang="en-us"> The minLength + of 3 is required to handle the "0x" prefix to + the hex number. </xs:documentation> + + </xs:annotation> + <xs:simpleType> + <xs:restriction base="HexNumber"> + <xs:minLength value="3" /> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element minOccurs="1" maxOccurs="unbounded" + name="ErrorMessage"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This string + should be defined by specifications. There are + pre-defined error number ranges in the UEFI/PI + specificaiton. </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:attribute name="Lang" type="xs:language" + default="en-us" use="optional" /> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attributeGroup ref="SupportedArchMod" /> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + <!-- End of PackageSurfaceArea PcdDeclarations element. --> + + <xs:element minOccurs="0" maxOccurs="1" name="PcdRelationshipChecks"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This section is used to describe + any PCD interdependencies or relationships. </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="1" maxOccurs="unbounded" name="PcdCheck" + type="xs:normalizedString"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This entry must used + TokenSpaceGuidCName.PcdCname for every named PCD. Restricted + to Relational, Equality and Logical Operators (NOT, AND, OR, + GT, GE, EQ, LE, LT and XOR) and parenthesis are valid. Only + the TokenSpaceGuidCName.PcdCname us permitted to name PCDs + in the expression. All other values must be numeric. </xs:documentation> + <xs:documentation xml:lang="en-us"> LValue (op RValue)+ + </xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + + <xs:element minOccurs="0" maxOccurs="unbounded" + name="MiscellaneousFiles"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This section contains files that + are not part of the code distributed with this package. + </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" maxOccurs="1" name="Copyright" + type="xs:string"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> Only required if different + from the Package Copyright. </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" maxOccurs="1" name="License" + type="xs:string"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> Only required if different + from the Package License. </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" maxOccurs="1" name="Abstract" + type="xs:string"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> A one line description of + this section's content. </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" maxOccurs="unbounded" name="Description" + type="xs:string"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> A complete description of + the files in this section. </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="1" maxOccurs="unbounded" name="Filename"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This is the PackagePath + relative path and filename location within the ZIP file. + </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:anyURI"> + <xs:attribute name="Executable" type="xs:boolean" + default="false" use="optional"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> If true, used by + installation tools to ensure that a file that must + be executable has the correct properties to permit + execution. </xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + + </xs:sequence> + </xs:complexType> + </xs:element> + <!-- End of PackageSurfaceArea Misc element. --> + + <xs:element minOccurs="0" maxOccurs="unbounded" name="UserExtensions"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This section is used for any + processing instructions that may be custom to the content provided + by this package that are common to this package. + </xs:documentation> + </xs:annotation> + <xs:complexType mixed="true"> + <xs:sequence> + <xs:any processContents="lax" minOccurs="0" maxOccurs="1" /> + </xs:sequence> + <xs:attribute name="UserId" type="xs:NCName" use="required"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This is a single word + identifier for grouping similar content that does not fit into + previously defined sections or other sections of the + Distribution. </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="Identifier" type="xs:string" use="optional"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This can be used to + differentiate multiple sections with a grouping. </xs:documentation> + <xs:documentation xml:lang="en-us"> For example, a PRE_PROCESS + Identifier might indicate specific steps and tools required + before processing module content, while a different + UserExtensions section with a POST_PROCESS Identifier might + describe steps that need to be executed after operations on + the modules in this package. </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:anyAttribute processContents="lax" /> + </xs:complexType> + </xs:element> + <!-- End of PackageSurfaceArea UserExtensions element. --> + + </xs:sequence> + </xs:complexType> + </xs:element> + <!-- End of the PackageSurfaceArea element. --> + + <xs:element name="ModuleSurfaceArea"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> Each module is uniquely identified by + it's GUID and Version number. Backward compatible releases of a module + need only change the version number, while non-backward compatible + changes require the GUID to change (resetting the version number to 1.0 + is optional.) </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + + <xs:element minOccurs="1" maxOccurs="1" name="Header"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="1" maxOccurs="1" name="Name"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This is the User Interface + Name for this Module. </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:normalizedString"> + <xs:attribute name="BaseName" type="xs:NCName" + use="required"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This is a single + word BaseName that will be used to create a module + meta-data file. </xs:documentation> + <xs:documentation xml:lang="en-us"> This name should + also be used to create output file names and + directories. </xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element minOccurs="1" maxOccurs="1" name="GUID"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This GUID and the Version + attribute uniquely identify a given Module. + </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="RegistryFormatGuid"> + <xs:attribute name="Version" type="xs:decimal" + use="required"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This value, along + with the GUID, is used to uniquely identify this + object. </xs:documentation> + <xs:documentation xml:lang="en-us"> Backward + compatible changes must make sure this number is + incremented from the most recent version. + Non-backward compatible changes require a new GUID, + and the version can be reset. </xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element minOccurs="0" maxOccurs="1" name="Copyright" + type="xs:string"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This is only required if + the Copyright is different from either the Package or + Distribution copyright. </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" maxOccurs="1" name="License" + type="xs:string"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This is only required if + the license is different from either the Package or + Distribution license. </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" maxOccurs="1" name="Abstract" + type="xs:normalizedString"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> A brief text description + of the module. </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" maxOccurs="1" name="Description" + type="xs:string"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> A complete description of + the module contents and/or features including a description + of the updates since the previous module release. + </xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + <!-- End of Module Surface Area Header Section --> + + <xs:element minOccurs="0" maxOccurs="1" name="ModuleProperties"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> List general information about a + module, including the Supported Architectures, this module's type, + specifications the module is coded against, and other + informational content. </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="1" maxOccurs="1" name="ModuleType" + type="ModuleTypes"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> One of the Enumerated + module types that limit the use of a module. + </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="1" maxOccurs="1" name="Path" + type="xs:anyURI"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> For stand-alone modules + that are NOT part of any package, this is the path to the + root of the module as listed in the ZIP file. For modules + included in a package, this is the location, relative to the + root of the package (PackagePath) this module belongs to. + </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" maxOccurs="1" name="PcdIsDriver"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This element is only + required for the PEIM that produces the PCD PPI or the DXE + Driver that produces the PCD Protocol. </xs:documentation> + </xs:annotation> + <xs:simpleType> + <xs:restriction base="xs:NCName"> + <xs:enumeration value="PEI_PCD_DRIVER" /> + <xs:enumeration value="DXE_PCD_DRIVER" /> + </xs:restriction> + </xs:simpleType> + </xs:element> + + <xs:element minOccurs="0" maxOccurs="1" + name="UefiSpecificationVersion" type="xs:decimal" /> + + <xs:element minOccurs="0" maxOccurs="1" + name="PiSpecificationVersion" type="xs:decimal" /> + + <xs:element minOccurs="0" maxOccurs="unbounded" + name="Specification"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This is a list of other + specifications that this module is written against. These + entries can be used in #define statements (depending on the + build system implementation, they may be autogenerated.) + </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:NCName"> + <xs:attribute name="Version" type="xs:decimal" + use="required" /> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + + <xs:element minOccurs="0" maxOccurs="unbounded" name="BootMode"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> Different firmware + execution paths may be taken based on a given state of the + hardware, firmware, or through feature settings. A BootMode + may be declared (PRODUCES) or discovered (CONSUMES) based on + these states and feature settings. The supported boot modes + map to the PI specification Boot Modes. The boot modes + listed with Recovery are to indicate that the BootMode is + valid during a recovery boot. </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence minOccurs="0"> + <xs:element minOccurs="1" maxOccurs="1" + name="SupportedBootModes"> + <xs:simpleType> + <xs:list> + <xs:simpleType> + <xs:restriction base="xs:NCName"> + <xs:enumeration value="FULL" /> + <xs:enumeration value="MINIMAL" /> + <xs:enumeration value="NO_CHANGE" /> + <xs:enumeration value="DIAGNOSTICS" /> + <xs:enumeration value="DEFAULT" /> + <xs:enumeration value="S2_RESUME" /> + <xs:enumeration value="S3_RESUME" /> + <xs:enumeration value="S4_RESUME" /> + <xs:enumeration value="S5_RESUME" /> + <xs:enumeration value="FLASH_UPDATE" /> + <xs:enumeration value="RECOVERY_FULL" /> + <xs:enumeration value="RECOVERY_MINIMAL" /> + <xs:enumeration value="RECOVERY_NO_CHANGE" /> + <xs:enumeration value="RECOVERY_DIAGNOSTICS" /> + <xs:enumeration value="RECOVERY_DEFAULT" /> + <xs:enumeration value="RECOVERY_S2_RESUME" /> + <xs:enumeration value="RECOVERY_S3_RESUME" /> + <xs:enumeration value="RECOVERY_S4_RESUME" /> + <xs:enumeration value="RECOVERY_S5_RESUME" /> + <xs:enumeration value="RECOVERY_FLASH_UPDATE" /> + </xs:restriction> + </xs:simpleType> + </xs:list> + </xs:simpleType> + </xs:element> + + <xs:element ref="HelpText" minOccurs="0" + maxOccurs="unbounded" /> + </xs:sequence> + <xs:attribute name="Usage" use="required"> + <xs:simpleType> + <xs:restriction base="xs:NCName"> + <xs:enumeration value="CONSUMES"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> The module + always supports the given boot modes. + </xs:documentation> + </xs:annotation> + </xs:enumeration> + <xs:enumeration value="SOMETIMES_CONSUMES"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> The module may + support a given mode on some execution paths. + </xs:documentation> + </xs:annotation> + </xs:enumeration> + <xs:enumeration value="PRODUCES"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> The module will + change the boot mode. </xs:documentation> + </xs:annotation> + </xs:enumeration> + <xs:enumeration value="SOMETIME_PRODUCES"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> The module will + change the boot mode on some exection paths. + </xs:documentation> + </xs:annotation> + </xs:enumeration> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + <xs:attribute name="SupArchList" type="ArchListType" + use="optional" /> + <xs:attribute name="FeatureFlag" type="xs:normalizedString" + use="optional" /> + </xs:complexType> + </xs:element> + + <xs:element minOccurs="0" maxOccurs="unbounded" name="Event" + nillable="true"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> The functions that make up + the Event, Timer, and Task Priority Services are used during + preboot to create, close, signal, and wait for events; to + set timers; and to raise and restore task priority levels as + defined in the UEFI specification. GUIDed events should be + listed in the Guids section. </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element ref="HelpText" minOccurs="0" + maxOccurs="unbounded" /> + </xs:sequence> + <xs:attribute name="Usage" use="required"> + <xs:simpleType> + <xs:restriction base="xs:NCName"> + <xs:enumeration value="CONSUMES"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> The module will + register a notification function and calls the + function when it is signaled. </xs:documentation> + </xs:annotation> + </xs:enumeration> + <xs:enumeration value="SOMETIMES_CONSUMES"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> The module will + register a notification function and calls the + function when it is signaled on some execution + paths. </xs:documentation> + </xs:annotation> + </xs:enumeration> + <xs:enumeration value="PRODUCES"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> The module will + signal all events in an event group. + </xs:documentation> + </xs:annotation> + </xs:enumeration> + <xs:enumeration value="SOMETIMES_PRODUCES"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> The module will + signal all events in an event group under some + execution paths. </xs:documentation> + </xs:annotation> + </xs:enumeration> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + <xs:attribute name="EventType" use="required"> + <xs:simpleType> + <xs:restriction base="xs:NCName"> + <xs:enumeration value="EVENT_TYPE_PERIODIC_TIMER" /> + <xs:enumeration value="EVENT_TYPE_RELATIVE_TIMER" /> + </xs:restriction> + </xs:simpleType> + + + </xs:attribute> + <xs:attribute name="SupArchList" type="ArchListType" + use="optional" /> + <xs:attribute name="FeatureFlag" type="xs:normalizedString" + use="optional" /> + </xs:complexType> + </xs:element> + + <xs:element minOccurs="0" maxOccurs="unbounded" name="HOB" + nillable="false"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This is a list of + non-GUIDed Hand Off Blocks (HOBs) produced or consumed by + this module. </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element ref="HelpText" minOccurs="0" + maxOccurs="unbounded" /> + </xs:sequence> + <xs:attribute name="HobType" use="required"> + <xs:simpleType> + <xs:restriction base="xs:NCName"> + <xs:enumeration value="PHIT" /> + <xs:enumeration value="MEMORY_ALLOCATION" /> + <xs:enumeration value="RESOURCE_DESCRIPTOR" /> + <xs:enumeration value="FIRMWARE_VOLUME" /> + <xs:enumeration value="LOAD_PEIM" /> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + <xs:attribute name="Usage" use="required"> + <xs:simpleType> + <xs:restriction base="xs:NCName"> + <xs:enumeration value="CONSUMES"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> A HOB must be + present in the system. </xs:documentation> + </xs:annotation> + </xs:enumeration> + <xs:enumeration value="SOMETIMES_CONSUMES"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> If present, the + HOB will be used. </xs:documentation> + </xs:annotation> + </xs:enumeration> + <xs:enumeration value="PRODUCES"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> The HOB is + always produced by the module. </xs:documentation> + </xs:annotation> + </xs:enumeration> + <xs:enumeration value="SOMETIMES_PRODUCES"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> The HOB may be + produced by the module under some execution paths. + </xs:documentation> + </xs:annotation> + </xs:enumeration> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + <xs:attribute name="SupArchList" type="ArchListType" + use="optional" /> + <xs:attribute name="FeatureFlag" type="xs:normalizedString" + use="optional" /> + </xs:complexType> + </xs:element> + + </xs:sequence> + <xs:attributeGroup ref="SupportedArchMod" /> + </xs:complexType> + </xs:element> + <!-- End of ModuleProperties Section --> + + <xs:element minOccurs="0" maxOccurs="1" name="ClonedFrom"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This section may be included for + Modules that are copied from a different module. + </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="1" maxOccurs="1" name="GUID"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This GUID and the Version + attribute uniquely identify the Module that this Module was + copied from. </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="RegistryFormatGuid"> + <xs:attribute name="Version" type="xs:decimal" + use="required"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This value, along + with the GUID, is used to uniquely identify this + object. </xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + <!-- End of ClonedFrom Section. --> + + <xs:element minOccurs="0" maxOccurs="1" name="LibraryClassDefinitions"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> A list of the different Library + Classes consumed by a driver, core and/or application module, or + produced by a Library module. </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="1" maxOccurs="unbounded" + name="LibraryClass"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="1" maxOccurs="1" name="Keyword" + type="xs:NCName"> + <xs:annotation> + <xs:documentation xml:lang="en-us "> Used by tools to + identify different instances of libraries that provide + the library class. This keyword identifies the library + class this module needs to be linked against. + </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" maxOccurs="1" + name="RecommendedInstance"> + <xs:complexType> + <xs:all> + <xs:element minOccurs="1" maxOccurs="1" name="GUID"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This GUID and + the Version attribute uniquely identify the + recommended Library Instance for this module . + </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="RegistryFormatGuid"> + <xs:attribute name="Version" type="xs:decimal" + use="optional"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This + value, along with the GUID, is used to + uniquely identify this object. + </xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + </xs:all> + </xs:complexType> + </xs:element> + <xs:element ref="HelpText" minOccurs="0" + maxOccurs="unbounded" /> + </xs:sequence> + <xs:attribute name="Usage" use="required"> + <xs:simpleType> + <xs:annotation> + <xs:documentation xml:lang="en-us"> Library instances + can provide code for a library class, or may require + other library instances themselves. Since different + execution paths in a library (or module) may need + different library classes based on some setting, + library classes may not alway be required. + </xs:documentation> + </xs:annotation> + <xs:restriction base="xs:NCName"> + <xs:enumeration value="PRODUCES" /> + <xs:enumeration value="CONSUMES" /> + <xs:enumeration value="SOMETIMES_CONSUMES" /> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + + <xs:attributeGroup ref="SupportedArchMod" /> + <xs:attribute name="FeatureFlag" type="xs:normalizedString" + use="optional"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> A FeatureFlag + attribute must evaluate to either true or false - it may + be a fixed value of true or false, a C name or an in-fix + expression. </xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + <!-- End of LibraryClassDefinitions Section --> + + <xs:element minOccurs="0" maxOccurs="1" name="SourceFiles"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="1" maxOccurs="unbounded" name="Filename"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This is the module + relative (ModuleProperties.Path) path and filename location + within the ZIP file. </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:anyURI"> + <xs:attribute name="Family" type="FamilyTypes" + use="optional"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> The Family + attribute is used to restrict usage to a given + family of compilers, such as GCC or MSFT. Since not + all code processing tools use the same syntax, + especially for assembly, this field can be used to + identify different syntax. </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="SupArchList" type="ArchListType" + use="optional" /> + <xs:attribute name="FeatureFlag" + type="xs:normalizedString" use="optional" /> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + <!-- End of SourceFiles Section --> + + <xs:element minOccurs="0" maxOccurs="1" name="BinaryFiles"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="1" maxOccurs="unbounded" name="BinaryFile"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="1" maxOccurs="unbounded" + name="Filename"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This is the module + relative (ModuleProperties.Path) path and filename + location within the ZIP file. </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:anyURI"> + <xs:attribute name="FileType" use="optional"> + <xs:simpleType> + <xs:restriction base="xs:NCName"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> Binary + file distribution is limited to UEFI/PI + FFS leaf section file types. + </xs:documentation> + </xs:annotation> + <xs:enumeration value="GUID" /> + <xs:enumeration value="FREEFORM" /> + <xs:enumeration value="UEFI_IMAGE" /> + <xs:enumeration value="PE32"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> A + UEFI/PI FFS Leaf section file type, not + a raw PE32 file. </xs:documentation> + </xs:annotation> + </xs:enumeration> + <xs:enumeration value="PIC" /> + <xs:enumeration value="PEI_DEPEX" /> + <xs:enumeration value="DXE_DEPEX" /> + <xs:enumeration value="TE" /> + <xs:enumeration value="VER" /> + <xs:enumeration value="UI" /> + <xs:enumeration value="BIN" /> + <xs:enumeration value="FV" /> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + <xs:attribute name="SupArchList" type="ArchListType" + use="optional" /> + <xs:attribute name="FeatureFlag" + type="xs:normalizedString" use="optional" /> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element minOccurs="0" maxOccurs="unbounded" + name="AsBuilt"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This section + contains information about how the module was coded, + such as Compiler Tools, Flags, PCDs (only PatchPcd + and/or PcdEx) and Library Class Instances used to + build the binary. </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + + <xs:element minOccurs="0" maxOccurs="unbounded" + name="PatchPcdValue"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> The element is + the Patchable PCD Value that was used during the + build. </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="1" maxOccurs="1" + name="TokenSpaceGuidValue" + type="RegistryFormatGuid" /> + <xs:element minOccurs="1" maxOccurs="1" + name="PcdCName" type="xs:NCName" /> + <xs:element minOccurs="1" maxOccurs="1" + name="Token"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> The + minLength of 3 is required to handle the + "0x" prefix to the hex number. + </xs:documentation> + </xs:annotation> + <xs:simpleType> + <xs:restriction base="HexNumber"> + <xs:minLength value="3" /> + <xs:maxLength value="10" /> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element minOccurs="1" maxOccurs="1" + name="DatumType" type="PcdDatumTypes" /> + <xs:element minOccurs="0" maxOccurs="1" + name="MaxDatumSize"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This + field is required if the Pcd Datum Type is + VOID* </xs:documentation> + <xs:documentation xml:lang="en-us"> The + minLength of 3 is required to handle the + "0x" prefix to the hex number. + </xs:documentation> + </xs:annotation> + <xs:simpleType> + <xs:restriction base="HexNumber"> + <xs:minLength value="3" /> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element minOccurs="1" maxOccurs="1" + name="Value" type="xs:normalizedString" /> + <xs:element minOccurs="1" maxOccurs="1" + name="Offset"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> The + minLength of 3 is required to handle the + "0x" prefix to the hex number. + </xs:documentation> + </xs:annotation> + <xs:simpleType> + <xs:restriction base="HexNumber"> + <xs:minLength value="3" /> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element ref="HelpText" minOccurs="0" + maxOccurs="unbounded" /> + <xs:element minOccurs="0" maxOccurs="unbounded" + name="PcdError"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> Error + information implemented by the module. + </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="1" maxOccurs="1" + name="ErrorNumber"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> The + minLength of 3 is required to handle the + "0x" prefix to the hex number. + </xs:documentation> + </xs:annotation> + <xs:simpleType> + <xs:restriction base="HexNumber"> + <xs:minLength value="3" /> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element minOccurs="0" + maxOccurs="unbounded" + name="ErrorMessage"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:attribute name="Lang" + type="xs:language" default="en-us" + use="optional" /> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + + <xs:element minOccurs="0" maxOccurs="unbounded" + name="PcdExValue"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> The element is + the DynamicEx PCD Value that was used during the + build. </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="1" maxOccurs="1" + name="TokenSpaceGuidValue" + type="RegistryFormatGuid" /> + <xs:element minOccurs="1" maxOccurs="1" + name="Token"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> The + minLength of 3 is required to handle the + "0x" prefix to the hex number. + </xs:documentation> + </xs:annotation> + <xs:simpleType> + <xs:restriction base="HexNumber"> + <xs:minLength value="3" /> + <xs:maxLength value="10" /> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element minOccurs="1" maxOccurs="1" + name="DatumType" type="PcdDatumTypes" /> + <xs:element minOccurs="0" maxOccurs="1" + name="MaxDatumSize"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This + field is required if the Pcd Datum Type is + VOID* </xs:documentation> + </xs:annotation> + <xs:simpleType> + <xs:restriction base="HexNumber"> + <xs:minLength value="3" /> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element minOccurs="1" maxOccurs="1" + name="Value" type="xs:normalizedString" /> + <xs:element ref="HelpText" minOccurs="0" + maxOccurs="unbounded" /> + <xs:element minOccurs="0" maxOccurs="unbounded" + name="PcdError"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> Error + information implemented by the module. + </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="1" maxOccurs="1" + name="ErrorNumber"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> The + minLength of 3 is required to handle the + "0x" prefix to the hex number. + </xs:documentation> + </xs:annotation> + <xs:simpleType> + <xs:restriction base="HexNumber"> + <xs:minLength value="3" /> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element minOccurs="0" + maxOccurs="unbounded" + name="ErrorMessage"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:attribute name="Lang" + type="xs:language" default="en-us" + use="optional" /> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + + <xs:element minOccurs="0" maxOccurs="1" + name="LibraryInstances"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This is the + actual library instance that was used to link + against the module. </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="1" maxOccurs="unbounded" + name="GUID"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This + GUID and the Version attribute uniquely + identify the actual Library Instance + linked in this module. </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="RegistryFormatGuid"> + <xs:attribute name="Version" + type="xs:decimal" use="required"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This + value, along with the GUID, is used to + uniquely identify this object. + </xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + + <xs:element minOccurs="0" maxOccurs="unbounded" + name="BuildFlags"> + <xs:complexType mixed="true"> + <xs:simpleContent> + <xs:annotation> + <xs:documentation xml:lang="en-us"> Any + description of OS, Tool, and flags for the + individual tool can go in this section. + </xs:documentation> + </xs:annotation> + <xs:extension base="xs:string"> + <xs:anyAttribute processContents="lax" /> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + <!-- End of AsBuilt --> + </xs:sequence> + </xs:complexType> + </xs:element> + + </xs:sequence> + </xs:complexType> + </xs:element> + <!-- End of BinaryFiles Section --> + + <xs:element minOccurs="0" maxOccurs="1" name="PackageDependencies"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="1" maxOccurs="unbounded" name="Package"> + <xs:complexType> + <xs:all> + <xs:element minOccurs="0" maxOccurs="1" name="Description" + type="xs:string" /> + <xs:element minOccurs="1" maxOccurs="1" name="GUID"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This GUID and the + Version attribute uniquely identify Package that this + Module depends on. </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="RegistryFormatGuid"> + <xs:attribute name="Version" type="xs:decimal" + use="optional"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This value, + along with the GUID, is used to uniquely + identify this object. If the version attribute + is not specified, the most recent version of + the package can be used. </xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + </xs:all> + <xs:attribute name="SupArchList" type="ArchListType" + use="optional" /> + <xs:attribute name="FeatureFlag" type="xs:normalizedString" + use="optional" /> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + <!-- End of PackageDependencies --> + + <xs:element minOccurs="0" maxOccurs="1" name="Guids"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="1" maxOccurs="unbounded" name="GuidCName"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="1" maxOccurs="1" name="CName" + type="xs:NCName" /> + <xs:element minOccurs="0" maxOccurs="1" name="VariableName" + type="xs:normalizedString"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> Only valid for + Variable GUID types. </xs:documentation> + <xs:documentation> This can be either a Hex Array or + Unicode Data. </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element ref="HelpText" minOccurs="0" + maxOccurs="unbounded" /> + </xs:sequence> + <xs:attribute name="Usage" use="required"> + <xs:simpleType> + <xs:restriction base="xs:NCName"> + <xs:enumeration value="CONSUMES"> + <xs:annotation> + <xs:documentation xml:lang="en-us">The module does + not install the GUID, and the GUID must be present + for the module to execute. </xs:documentation> + </xs:annotation> + </xs:enumeration> + <xs:enumeration value="SOMETIMES_CONSUMES"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> The module does + not install the GUID, however, the GUID will be + used if it is present. </xs:documentation> + </xs:annotation> + </xs:enumeration> + <xs:enumeration value="PRODUCES"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> The module + always installs the GUID. </xs:documentation> + </xs:annotation> + </xs:enumeration> + <xs:enumeration value="SOMETIMES_PRODUCES"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> The Module will + install the GUID under certain execution paths. + </xs:documentation> + </xs:annotation> + </xs:enumeration> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + <xs:attribute name="GuidType" type="GuidListType" + use="required" /> + <xs:attribute name="SupArchList" type="ArchListType" + use="optional" /> + <xs:attribute name="FeatureFlag" type="xs:normalizedString" + use="optional" /> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + <!-- End of Guids Section --> + + <xs:element minOccurs="0" maxOccurs="1" name="Protocols"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> A listing of protocols required + or produced by this module. </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="1" maxOccurs="unbounded" name="Protocol" + nillable="true"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="1" maxOccurs="1" name="CName" + type="xs:NCName" /> + <xs:element ref="HelpText" minOccurs="0" + maxOccurs="unbounded" /> + </xs:sequence> + <xs:attribute name="Usage" use="required"> + <xs:simpleType> + <xs:restriction base="xs:NCName"> + <xs:enumeration value="PRODUCES" /> + <xs:enumeration value="SOMETIMES_PRODUCES" /> + <xs:enumeration value="CONSUMES" /> + <xs:enumeration value="SOMETIMES_CONSUMES" /> + <xs:enumeration value="TO_START" /> + <xs:enumeration value="BY_START" /> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + <xs:attribute name="Notify" type="xs:boolean" use="optional" /> + <xs:attribute name="SupArchList" type="ArchListType" + use="optional" /> + <xs:attribute name="FeatureFlag" type="xs:normalizedString" + use="optional" /> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + <!-- End of Protocols Section --> + + <xs:element minOccurs="0" maxOccurs="1" name="PPIs"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> A listing of PPIs required or + produced by this module. </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="1" maxOccurs="unbounded" name="Ppi" + nillable="true"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="1" maxOccurs="1" name="CName" + type="xs:NCName" /> + <xs:element ref="HelpText" minOccurs="0" + maxOccurs="unbounded" /> + </xs:sequence> + <xs:attribute name="Usage" use="required"> + <xs:simpleType> + <xs:restriction base="xs:NCName"> + <xs:enumeration value="PRODUCES" /> + <xs:enumeration value="SOMETIMES_PRODUCES" /> + <xs:enumeration value="CONSUMES" /> + <xs:enumeration value="SOMETIMES_CONSUMES" /> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + <xs:attribute name="Notify" type="xs:boolean" use="optional" /> + <xs:attribute name="SupArchList" type="ArchListType" + use="optional" /> + <xs:attribute name="FeatureFlag" type="xs:normalizedString" + use="optional" /> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + <!-- End of PPIs Section --> + + <xs:element minOccurs="0" maxOccurs="1" name="Externs"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> These elements specify + additional information about the module. This area may be used by + tools to generate code. </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="1" maxOccurs="unbounded" name="Extern"> + <xs:complexType> + <xs:sequence> + <xs:choice minOccurs="1"> + <xs:sequence> + <xs:element minOccurs="0" maxOccurs="1" + name="EntryPoint" type="xs:NCName" /> + <xs:element minOccurs="0" maxOccurs="1" + name="UnloadImage" type="xs:NCName" /> + </xs:sequence> + <xs:sequence> + <xs:element minOccurs="0" maxOccurs="1" + name="Constructor" type="xs:NCName" /> + <xs:element minOccurs="0" maxOccurs="1" + name="Destructor" type="xs:NCName" /> + </xs:sequence> + </xs:choice> + <xs:element ref="HelpText" minOccurs="0" maxOccurs="1" /> + </xs:sequence> + <xs:attribute name="SupArchList" type="ArchListType" + use="optional" /> + <xs:attribute name="FeatureFlag" type="xs:normalizedString" + use="optional" /> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + <!-- End of Externs Section --> + + <xs:element minOccurs="0" maxOccurs="1" name="PcdCoded"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This section describes how a + platform is coded with respect to the platform configuration + knobs. </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="1" maxOccurs="unbounded" name="PcdEntry"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="1" maxOccurs="1" name="CName" + type="xs:NCName" /> + <xs:element minOccurs="1" maxOccurs="1" + name="TokenSpaceGuidCName" type="xs:NCName" /> + <xs:element minOccurs="0" maxOccurs="1" name="DefaultValue" + type="xs:normalizedString" /> + <xs:element ref="HelpText" minOccurs="0" + maxOccurs="unbounded" /> + </xs:sequence> + <xs:attribute name="PcdItemType" type="PcdItemTypes" + use="required" /> + <xs:attribute name="PcdUsage" use="required"> + <xs:simpleType> + <xs:restriction base="xs:NCName"> + <xs:enumeration value="PRODUCES" /> + <xs:enumeration value="SOMETIMES_PRODUCES" /> + <xs:enumeration value="CONSUMES" /> + <xs:enumeration value="SOMETIMES_CONSUMES" /> + </xs:restriction> + </xs:simpleType> + + + </xs:attribute> + <xs:attribute name="SupArchList" type="ArchListType" + use="optional" /> + <xs:attribute name="FeatureFlag" type="xs:normalizedString" + use="optional" /> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + <!-- End of PcdCoded Section --> + + <xs:element minOccurs="0" maxOccurs="1" name="PeiDepex"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This is the PEI dependency + expression for a Dependency Section. </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element name="Expression" type="xs:string" minOccurs="1" + maxOccurs="1"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> An in-fix expression, of C + identifiers and TRUE, FALSE, AND, OR, NOT, BEFORE, and AFTER + as well as parenthesis () in the in-fix notation. The + operators are restricted to grammar defined in the PI + specification. </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element ref="HelpText" minOccurs="0" maxOccurs="1" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <!-- End of PeiDepex Section --> + + <xs:element minOccurs="0" maxOccurs="1" name="DxeDepex"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This is the DXE dependency + expression for a Dependency Section. </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element name="Expression" type=" xs:string " minOccurs="1" + maxOccurs="1"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> An in-fix expression, of C + identifiers and TRUE, FALSE, AND, OR, NOT, BEFORE, and AFTER + as well as parenthesis () in the in-fix notation. The + operators are restricted to grammar defined in the PI + specification. </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element ref="HelpText" minOccurs="0" maxOccurs="1" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <!-- End of DxeDepex Section --> + + <xs:element minOccurs="0" maxOccurs="1" name="SmmDepex"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This is the SMM dependency + expression for a Dependency Section. </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element name="Expression" type=" xs:string " minOccurs="1" + maxOccurs="1"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> An in-fix expression, of C + identifiers and TRUE, FALSE, AND, OR, NOT, BEFORE, and AFTER + as well as parenthesis () in the in-fix notation. The + operators are restricted to grammar defined in the PI + specification. </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element ref="HelpText" minOccurs="0" maxOccurs="1" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <!-- End of SmmDepex Section --> + + + <xs:element minOccurs="0" maxOccurs="1" name="MiscellaneousFiles"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This section is used to provide + comments and/or list auxiliary files, such as pdb or map files. + </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" maxOccurs="1" name="Description" + type="xs:string" /> + <xs:element minOccurs="1" maxOccurs="unbounded" name="Filename"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This is the path and + filename location within the ZIP file. </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:anyURI"> + <xs:attribute name="Executable" type="xs:boolean" + default="false" use="optional"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> If true, used by + installation tools to ensure that a file that must + be executable has the correct properties to permit + execution. </xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + <!-- End of Module Surface Area Misc Section --> + + <xs:element minOccurs="0" maxOccurs="unbounded" name="UserExtensions"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This section is used for any + processing instructions that may be custom to the content provided + by the distribution that are common to module. </xs:documentation> + <xs:documentation xml:lang="en-us"> The content is vendor specific. </xs:documentation> + <xs:documentation xml:lang="en-us"> The content can be plain text as + well as any user-defined, properly formatted XML structure. + </xs:documentation> + </xs:annotation> + <xs:complexType mixed="true"> + <xs:attribute name="UserId" type="xs:NCName" use="required"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This is a single word + identifier for grouping similar content. For example, + ReferenceBuild might be used to identify non-PI compliant + build steps, with two different UserExtensions sections, one + with an Identifier of Prebuild, and another of PostBuild. Both + UserExtensions sections would use the same UserId. + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="Identifier" type="xs:string" use="optional"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This can be any string used + to differentiate or identify this section from other + UserExtensions sections. </xs:documentation> + <xs:documentation xml:lang="en-us"> For example, a PRE_PROCESS + Identifier might indicate specific steps and tools required + before processing module content, while a different + UserExtensions section with a POST_PROCESS Identifier might + describe steps that need to be executed after operations on + this module. </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:anyAttribute processContents="lax" /> + </xs:complexType> + </xs:element> + <!-- End of Module Surface Area UserExtensions Section --> + + </xs:sequence> + <xs:attribute name="BinaryModule" type="xs:boolean" default="false" + use="optional"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This attribute is used when the + binaries are distributed for this module and no code generation from + source files is required. If set, then the BinaryFiles section + should be used, and any files listed in the SourceFiles section do + not have to be built. Additionally, the AsBuilt section for each + binary file must be included. </xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:complexType> + + </xs:element> + <!-- End of the ModuleSurfaceArea element. --> + + <xs:element name="Tools"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" maxOccurs="1" name="Header"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="1" maxOccurs="1" name="Name" + type="xs:normalizedString"> + <xs:annotation> + <xs:documentation xml:lang="en-us">This is the User Interface + Name for this Tools Distribution.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" maxOccurs="1" name="Copyright" + type="xs:string"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This is only required if + the Copyright is different from the Distribution Package + copyright. </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" maxOccurs="1" name="License" + type="xs:string"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This is only required if + the License is different from the Distribution Package + license. </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" maxOccurs="1" name="Abstract" + type="xs:normalizedString"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This is only required if + the Abstract is different from the Distribution Package + Abstract. </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" maxOccurs="1" name="Description" + type="xs:string"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This is only required if + the Description is different from the Distribution Package + Description. </xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element minOccurs="1" maxOccurs="unbounded" name="Filename"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This is the path and filename + location within the ZIP file. </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:anyURI"> + <xs:attribute name="OS" type="SupportedOs" use="optional"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This is required for + tools that execute; it should not be used for + configuration files. </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="Executable" type="xs:boolean" + default="false" use="optional"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> If true, used by + installation tools to ensure that a file that must be + executable has the correct properties to permit execution. + </xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + <!-- End of the Tools element. --> + + <xs:element name="MiscellaneousFiles"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This section contains a list of files + that are not part of the code distributed with modules, packages or + tools. </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" maxOccurs="1" name="Header"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" maxOccurs="1" name="Name" + type="xs:normalizedString"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> The User interface name + for this content. </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" maxOccurs="1" name="Copyright" + type="xs:string"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This is only required if + the Copyright is different from the Distribution Package + Copyright. </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" maxOccurs="1" name="License" + type="xs:string"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This is only required if + the License is different from the Distribution Package + License. </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" maxOccurs="1" name="Abstract" + type="xs:normalizedString" /> + <xs:element minOccurs="0" maxOccurs="unbounded" name="Description" + type="xs:string" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element minOccurs="0" maxOccurs="unbounded" name="Filename"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This is the path and filename + location within the ZIP file. </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:anyURI"> + <xs:attribute name="Executable" type="xs:boolean" + default="false" use="optional"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> If true, used by + installation tools to ensure that a file that must be + executable has the correct properties to permit execution. + </xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + <!-- End of the Misc element. --> + + <xs:element name="UserExtensions"> + <xs:complexType mixed="true"> + <xs:sequence> + <xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded" /> + </xs:sequence> + <xs:attribute name="UserId" type="xs:NCName" use="required"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This is a single word identifier + for grouping similar content. For example, ReferenceBuild might be + used to identify non-PI compliant build steps, with two different + UserExtensions sections, one with an Identifier of Prebuild, and + another of PostBuild. Both UserExtensions sections would use the + same UserId. </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="Identifier" type="xs:string" use="optional"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This can be any string used to + differentiate or identify this section from other UserExtensions + sections. </xs:documentation> + <xs:documentation xml:lang="en-us"> For example, a PRE_PROCESS + Identifier might indicate specific steps and tools required before + processing distribution package content, while a different + UserExtensions section with a POST_PROCESS Identifier might describe + steps that need to be executed after operations on this content. + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:anyAttribute processContents="lax" /> + </xs:complexType> + </xs:element> + <!-- The following elsements are common definitions used with the ref attribute for elements. --> + + <xs:element name="HelpText"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:attribute name="Lang" type="xs:language" default="en-us" + use="optional" /> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + + <!-- The following attribute groups are used in various elements above. --> + + <xs:attributeGroup name="SupportedArchMod"> + <xs:attribute name="SupArchList" type="ArchListType" use="optional" /> + <xs:attribute name="SupModList" type="ModuleListType" use="optional" /> + </xs:attributeGroup> + + <!-- The following data types are used to restrict content. --> + + <xs:simpleType name="ArchListType"> + <xs:list itemType="ArchTypes" /> + </xs:simpleType> + + <xs:simpleType name="ArchTypes"> + <xs:restriction base="xs:NCName"> + <xs:enumeration value="IA32" /> + <xs:enumeration value="X64" /> + <xs:enumeration value="IPF" /> + <xs:enumeration value="EBC" /> + <xs:pattern value="([A-Z])([a-zA-Z0-9])*"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> Any processor architecture not + listed above. The Architecture must be a target architecture of one + or more compiler tool chains. </xs:documentation> + </xs:annotation> + </xs:pattern> + </xs:restriction> + </xs:simpleType> + + + <xs:simpleType name="FamilyTypes"> + <xs:restriction base="xs:NCName"> + <xs:enumeration value="MSFT" /> + <xs:enumeration value="GCC" /> + <xs:pattern value="[A-Z][a-zA-Z0-9]*"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> Any other family of build + utilities for which compiler tools exist. </xs:documentation> + </xs:annotation> + </xs:pattern> + </xs:restriction> + </xs:simpleType> + + <xs:simpleType name="GuidListType"> + <xs:list itemType="GuidTypes" /> + </xs:simpleType> + + <xs:simpleType name="GuidTypes"> + <xs:restriction base="xs:NCName"> + <xs:enumeration value="Event" /> + <xs:enumeration value="File" /> + <xs:enumeration value="FV" /> + <xs:enumeration value="GUID" /> + <xs:enumeration value="Hii" /> + <xs:enumeration value="HOB" /> + <xs:enumeration value="SystemTable" /> + <xs:enumeration value="TokenSpaceGuid" /> + <xs:enumeration value="Variable" /> + </xs:restriction> + </xs:simpleType> + + <xs:simpleType name="HexNumber"> + <xs:restriction base="xs:hexBinary"> + <xs:pattern value="0x([a-fA-F0-9])+" /> + </xs:restriction> + </xs:simpleType> + + <xs:simpleType name="Md5Sum"> + <xs:restriction base="xs:normalizedString"> + <xs:pattern value="[a-zA-Z0-9]{32}" /> + </xs:restriction> + </xs:simpleType> + + <xs:simpleType name="ModuleListType"> + <xs:list itemType="ModuleTypes" /> + </xs:simpleType> + + <xs:simpleType name="ModuleTypes"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> The following module types are defined + by specifications. </xs:documentation> + <xs:documentation xml:lang="en-us"> Module types for components and + libraries defined for this distribution mechanism. </xs:documentation> + </xs:annotation> + <xs:restriction base="xs:NCName"> + <xs:enumeration value="BASE "> + <xs:annotation> + <xs:documentation xml:lang="en-us"> Use of this module is not + restricted. </xs:documentation> + </xs:annotation> + </xs:enumeration> + <xs:enumeration value="DXE_CORE"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This module is only applicable to + the DXE core. </xs:documentation> + </xs:annotation> + </xs:enumeration> + <xs:enumeration value="DXE_DRIVER"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This module is only applicable to + a DXE driver. </xs:documentation> + </xs:annotation> + </xs:enumeration> + <xs:enumeration value="DXE_RUNTIME_DRIVER"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This module is only applicable to + a DXE runtime driver. </xs:documentation> + </xs:annotation> + </xs:enumeration> + <xs:enumeration value="DXE_SAL_DRIVER"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This module is only applicable to + an IPF DXE runtime driver. </xs:documentation> + </xs:annotation> + </xs:enumeration> + <xs:enumeration value="DXE_SMM_DRIVER"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This module is only applicable to + a DXE SMM driver. </xs:documentation> + </xs:annotation> + </xs:enumeration> + <xs:enumeration value="PEI_CORE"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This module is only applicable to + the PEI core. </xs:documentation> + </xs:annotation> + </xs:enumeration> + <xs:enumeration value="PEIM"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This module is only valid for PEI + modules. </xs:documentation> + </xs:annotation> + </xs:enumeration> + <xs:enumeration value="SEC"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This module is only applicable to + Security phase. </xs:documentation> + </xs:annotation> + </xs:enumeration> + <xs:enumeration value="UEFI_DRIVER"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This module is only valid for UEFI + drivers. </xs:documentation> + </xs:annotation> + </xs:enumeration> + <xs:enumeration value="UEFI_RUNTIME_DRIVER"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This module is only valid for UEFI + runtime drivers.</xs:documentation> + </xs:annotation> + </xs:enumeration> + <xs:enumeration value="UEFI_APPLICATION"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This module is only valid for UEFI + applications. </xs:documentation> + </xs:annotation> + </xs:enumeration> + <xs:enumeration value="USER_DEFINED"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This content is restricted to a + specific implementation. </xs:documentation> + </xs:annotation> + </xs:enumeration> + </xs:restriction> + </xs:simpleType> + + <xs:simpleType name="PcdDatumTypes"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> The following data types are defined + by the PCD specification (or PCD section of the UEFI/PI specifications.) + </xs:documentation> + </xs:annotation> + <xs:restriction base="xs:normalizedString"> + <xs:enumeration value="UINT8" /> + <xs:enumeration value="UINT16" /> + <xs:enumeration value="UINT32" /> + <xs:enumeration value="UINT64" /> + <xs:enumeration value="BOOLEAN" /> + <xs:enumeration value="VOID*" /> + </xs:restriction> + </xs:simpleType> + + <xs:simpleType name="PcdItemListType"> + <xs:list itemType="PcdItemTypes" /> + </xs:simpleType> + + <xs:simpleType name="PcdItemTypes"> + <xs:restriction base="xs:NCName"> + <xs:enumeration value="FeaturePcd"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> The Feature PCD is a binary, + evaluating to either true or false. This is used during build to + include/exclude content. It can also be used during execution to + force execution paths within drivers, or to enable/disable features + within a driver for a given platform. </xs:documentation> + </xs:annotation> + </xs:enumeration> + <xs:enumeration value="FixedPcd"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> The Fixed PCD is a #define value + that is set at build time. </xs:documentation> + </xs:annotation> + </xs:enumeration> + <xs:enumeration value="PatchPcd"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> The Patch PCD is a #define that is + set at build time, and that can be modified within a binary file. + Additional information, such as the offset location of the value, + along with it's length may need to be provided.</xs:documentation> + </xs:annotation> + </xs:enumeration> + <xs:enumeration value="Pcd"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> This PCD type has an overloaded + definition. Prior to build, the platform integrator may choose to + implement a PCD as Fixed, Patchable or a Dynamic PCD. If the + platform integrator choose to use the PCD as dynamic, then a PCD + driver is required in the platform (PEI/DXE/both) to track the PCD + in some sort of 'database' of these items. For Dynamic PCDs, the + PcdGet* must pass in the token space guid and the token number to + retrieve data (PcdSet* also needs these values.) </xs:documentation> + </xs:annotation> + </xs:enumeration> + <xs:enumeration value="PcdEx"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> The PCD can only be used as + Dynamic, and the platform firmware must contain a driver to maintain + a 'database' of these items. For Dynamic PCDs, the PcdGet* must pass + in the token space guid and the token number to retrieve data + (PcdSet* also needs these values.) </xs:documentation> + </xs:annotation> + </xs:enumeration> + </xs:restriction> + </xs:simpleType> + + + + <xs:simpleType name="RegistryFormatGuid"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> A GUID must contain five different + Hexadecimal character sets that are separated by a dash (-) character. + </xs:documentation> + </xs:annotation> + <xs:restriction base="xs:string"> + <xs:pattern + value="\s*[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}\s*" + /> + </xs:restriction> + </xs:simpleType> + + <xs:simpleType name="SupportedOs"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> The EDK II build system supports + workstations running one of the following supported operating systems. + This is the OS for the developer's workstation, not the target platform. + </xs:documentation> + </xs:annotation> + <xs:restriction base="xs:string"> + <xs:enumeration value="Win32"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> For Windows 2003, Windows XP and + Windows Vista. </xs:documentation> + </xs:annotation> + </xs:enumeration> + <xs:enumeration value="Win64"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> For Windows 2003, Windows XP and + Windows Vista. </xs:documentation> + </xs:annotation> + </xs:enumeration> + <xs:enumeration value="Linux32" /> + <xs:enumeration value="Linux64" /> + <xs:enumeration value="OS/X32" /> + <xs:enumeration value="OS/X64" /> + <xs:enumeration value="GenericWin"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> Typically, this is used for + Windows Batch files. </xs:documentation> + </xs:annotation> + </xs:enumeration> + <xs:enumeration value="GenericNix"> + <xs:annotation> + <xs:documentation xml:lang="en-us"> Typically use for shell scripts - + valid for any Linux and Mac OS/X. </xs:documentation> + </xs:annotation> + </xs:enumeration> + <xs:pattern value="[a-zA-Z]([a-zA-Z0-9])*" /> + </xs:restriction> + </xs:simpleType> + +</xs:schema> diff --git a/BaseTools/Conf/XMLSchema/FarManifest.xsd b/BaseTools/Conf/XMLSchema/FarManifest.xsd new file mode 100644 index 0000000000..6e8c34ae9a --- /dev/null +++ b/BaseTools/Conf/XMLSchema/FarManifest.xsd @@ -0,0 +1,174 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Filename: FarManifest.xsd
+
+Copyright (c) 2007, Intel Corporation. All rights reserved.
+This program and the accompanying materials
+are licensed and made available under the terms and conditions of the BSD License
+which may be found at http://opensource.org/licenses/bsd-license.php
+
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+-->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://www.TianoCore.org/2007/Edk2.1" xmlns="http://www.TianoCore.org/2007/Edk2.1">
+ <xs:include schemaLocation="FrameworkHeaders.xsd"/>
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+ The Framework Archive File Format is defined as a Java Archive file, with a special xml file called FrameworkArchiveManifest.xml at the top of the archive. The FrameworkArchiveManifest.xml must be an instance of this schema.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:element name="FrameworkArchiveManifest">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+ This schema defines the Framework Archive Manifest.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" ref="FarHeader"/>
+ <xs:element minOccurs="0" maxOccurs="1" ref="FarPackageList">
+ <xs:annotation>
+ <xs:documentation>
+ The list of packages in this FAR.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" maxOccurs="1" ref="Contents">
+ <xs:annotation>
+ <xs:documentation>
+ Extra contents that are not part of any Package. These file paths are WORKSPACE relative. If a file exists in the workspace at this location, then the user should be asked whether to overwrite. When the user removes the far, these should be removed also, unless they have been modified (per md5sum).
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="UserExtensions"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="FarPackageList">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="unbounded" ref="FarPackage"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="FarPackage">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="FarFilename">
+ <xs:annotation>
+ <xs:documentation>
+ This is the name of the .spd or file that describes the package. It must exist in the directory identified by DefaultPath.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="GuidValue"></xs:element>
+ <xs:element ref="Version"></xs:element>
+ <xs:element ref="DefaultPath">
+ <xs:annotation>
+ <xs:documentation>
+ This is the default installation location within the workspace. This also serves as the location within the far itself of the package root. The Contents of the pacakage will be found there. The user may choose some other location within the workspace to install the package, as long as it does not overlap a package that is already installed.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="Contents">
+ <xs:annotation>
+ <xs:documentation>
+ This is the list of files that belong to the package. They are specified by relative path from the root of the pacakge.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="UserExtensions"></xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="DefaultPath" type="PathAndFilename"/>
+ <xs:element name="FarFilename" type="DbPathAndFilename">
+ <xs:annotation>
+ <xs:documentation>
+ The FarFilename is used to build up the Contents list. It has an md5sum attribute for keeping track of whether the file is changed after it is installed. The Md5sum can also be used to check the integrity of a far before it is installed into the workspace.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="GuidValue" type="GuidType">
+ <xs:annotation>
+ <xs:documentation>
+ The purpose of this element is to allow Guids to be assigned to or used by other elements in the schema.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="Contents">
+ <xs:annotation>
+ <xs:documentation>
+ This tag allows us to specify a tree of files all having a common root. All the files specified are relative to that common root.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="FarFilename"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+ Definitions and rules for creating, installing, updating and removing fars within the workspace.
+ </xs:documentation>
+ <xs:documentation>
+ 1. A module m is said to depend upon a package p, iff there exists a tuple (PackageGuid, PackageVerion) in the set m->PackageDependencies for which p->Guid==PackageGuid, and if PackageVersion is not empty, then p->Version== PackageVersion.
+ </xs:documentation>
+ <xs:documentation>
+ 2. A far f is said to depend on a far g, iff there is a module in a package in f that depends on a package in g.
+ </xs:documentation>
+ <xs:documentation>
+ 3. A far f is said to depend on a package p, iff there is a module m contained in f that depends on p.
+ </xs:documentation>
+ <xs:documentation>
+ 4. A far f may be installed into the workspace w, iff for each module m in f, m's dependencies are met by the packages in w or f.
+ </xs:documentation>
+ <xs:documentation>
+ a. It is supported to "partially" install a far. A partial installation of a far means that 1 or more packages are installed into the workspace from the far. For each package p in f, p's dependencies must be satisfied by a package in the workspace.
+ </xs:documentation>
+ <xs:documentation>
+ 5. A far f may be removed from the workspace w, iff for each module m in w, and for each package p in f, m does not depend on p.
+ </xs:documentation>
+ <xs:documentation>
+ a. It is supported to "partially" remove a far. In this case, one or more of the packages in the far can be removed, provided that for each package p in the workspace w, there does not exist a module m such that m depends on p.
+ </xs:documentation>
+ <xs:documentation>
+ 6. When installing a far f into workspace w, for each package p in f, allow the user to install in p's default location, or choose a new location l (which must be unoccupied) within the workspace. Record this location l in the database. Each package p in f will be recorded in the database, associated with the GUID of f, as well as the actual install location l. (So we will know which far each package belongs to.)
+ </xs:documentation>
+ <xs:documentation>
+ 7. When installing a far f into workspace w, if there exists a package p in w, and p is in f, then the user must be prompted to choose a location that does not collide with the location of p in workspace w. We will end up with two instances of p in w at two distinct locations. Alternately, the user may elect to partially install the far, leaving out the redundant package.
+ </xs:documentation>
+ <xs:documentation>
+ 8. A far f may replace a far g in the workspace w, iff for each module m contained in w, if m depends on a package p, and p is only contained in g, then there must exist a package q in f, such that m depends on q. The net effect is that g is removed and f is installed, in one operation. The normal rules for installing f still apply--the dependencies of the modules of f must be satisfied. After the replacement, it must be the case that all the modules dependencies in the workspace are satisfied. Note that it is possible to backrev a package in this way.
+ </xs:documentation>
+ <xs:documentation>
+ (If we find that the replace is not permitted, then the user may install f and keep g. Next, he could _port_ every module m in w that depends on g, to f and eventually remove g.)
+ </xs:documentation>
+ <xs:documentation>
+ 9. A special case of the above rule is that a far f may be reinstalled into the workspace. (This would allow the user to get a fresh copy, or change the location in the workspace where one or more of the packages of f are installed.)
+ </xs:documentation>
+ <xs:documentation>
+ 10. When a far f is removed from the workspace w, for each package p in f, we will remove p from w.
+ </xs:documentation>
+ <xs:documentation>
+ 11. If a package p belongs to a far f, then it is legal to remove p from the workspace w iff, there does not exist a module m in w such that m depends on p.
+ </xs:documentation>
+ <xs:documentation>
+ 12. When a far f is removed from the workspace, the we will remove all the files in f from the workspace tree. If a file has been modified from the original as installed from the far (per md5sum) then the user should be asked if he is "sure" he wants to remove it.
+ </xs:documentation>
+ <xs:documentation>
+ 13. When a far is created, a GUID is generated and assigned to the far. If a far is created from the same components at a later time, it would have a different GUID.
+ </xs:documentation>
+ <xs:documentation>
+ 14. If a package p is marked with p->RePackage==false, then p may not be added to a far.
+ </xs:documentation>
+ <xs:documentation>
+ 15. A far f is identical to a far g, iff f->Guid == g->Guid.
+ </xs:documentation>
+ <xs:documentation>
+ 17. A far f may be installed into the workspace w, iff there is no far g in w such that f->Guid==g->Guid. In that case, it is called "updating" the far in the workspace. The user may select some subset of packages to reinstall or update, to ensure that the files in the workspace are correct.
+ </xs:documentation>
+ </xs:annotation>
+</xs:schema>
diff --git a/BaseTools/Conf/XMLSchema/FrameworkDataAttributes.xsd b/BaseTools/Conf/XMLSchema/FrameworkDataAttributes.xsd new file mode 100644 index 0000000000..eeb48d9a8a --- /dev/null +++ b/BaseTools/Conf/XMLSchema/FrameworkDataAttributes.xsd @@ -0,0 +1,180 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns="http://www.TianoCore.org/2007/Edk2.1" targetNamespace="http://www.TianoCore.org/2007/Edk2.1">
+ <!--
+ Filename: FrameworkDataAttributes.xsd
+
+ Copyright (c) 2007, Intel Corporation. All rights reserved.
+ This program and the accompanying materials
+ are licensed and made available under the terms and conditions of the BSD License
+ which may be found at http://opensource.org/licenses/bsd-license.php
+
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+ -->
+ <xs:annotation>
+ <xs:documentation xml:lang="en">This schema defines EFI and Framework Attribute. Only attributeGroups are specified in this file. </xs:documentation>
+ </xs:annotation>
+ <xs:include schemaLocation="NamingConvention.xsd"/>
+ <xs:include schemaLocation="FrameworkDataTypes.xsd"/>
+ <!-- Fix Name data type from xs:string -->
+ <xs:attributeGroup name="BinaryFileAttributes">
+ <xs:attribute name="FileType" type="BinFileType" use="required"/>
+ <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
+ <xs:attribute name="Target" type="ToolsNameConvention" use="optional"/>
+ <xs:attribute name="TagName" type="ToolsNameConvention" use="optional"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="BootModeAttributes">
+ <xs:attribute name="BootModeName" type="BootModeNames" use="required"/>
+ <xs:attribute name="Usage" type="BootModeUsage" use="required"/>
+ <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
+ <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="DataHubAttributes">
+ <xs:attribute name="Usage" type="DataHubUsage" use="required"/>
+ <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
+ <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="EventAttributes">
+ <xs:attribute name="Usage" type="EventUsage" use="required"/>
+ <xs:attribute name="EventGuidCName" type="C_NameType" use="optional"/>
+ <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
+ <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="ExternAttributes">
+ <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
+ <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="FilenameAttributes">
+ <xs:attribute name="TagName" type="ToolsNameConvention" use="optional"/>
+ <xs:attribute name="ToolCode" type="ToolsNameConvention" use="optional"/>
+ <xs:attribute name="ToolChainFamily" type="ToolsNameConvention" use="optional"/>
+ <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
+ <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="GuidAttributes">
+ <xs:attribute name="Usage" type="GuidUsage" use="required"/>
+ <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
+ <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="GuidDeclarationAttributes">
+ <xs:attribute name="Name" type="UiNameType" use="required"/>
+ <xs:attribute name="GuidTypeList" type="GuidListType" use="optional"/>
+ <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
+ <xs:attribute name="SupModuleList" type="ModuleListType" use="optional"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="HiiPackageAttributes">
+ <xs:attribute name="Usage" type="HiiPackageUsage" use="required"/>
+ <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
+ <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="HobAttributes">
+ <xs:attribute name="Usage" type="HobUsage" use="required"/>
+ <xs:attribute name="HobGuidCName" type="C_NameType" use="optional"/>
+ <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
+ <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="IncludeHeaderAttributes">
+ <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
+ <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
+ <xs:attribute name="SupModuleList" type="ModuleListType" use="optional"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="IndustryStdHeaderAttributes">
+ <xs:attribute name="Name" type="KeywordType" use="required"/>
+ <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
+ <xs:attribute name="SupModuleList" type="ModuleListType" use="optional"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="LibraryClassAttributes">
+ <xs:attribute name="Usage" type="LibraryUsage" use="required"/>
+ <xs:attribute name="RecommendedInstanceVersion" type="VersionDataType" use="optional"/>
+ <xs:attribute name="RecommendedInstanceGuid" type="GuidType" use="optional"/>
+ <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
+ <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
+ <xs:attribute name="SupModuleList" type="ModuleListType" use="optional"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="LibraryClassDeclarationAttributes">
+ <xs:attribute name="Name" type="KeywordType" use="required"/>
+ <xs:attribute name="RecommendedInstanceVersion" type="VersionDataType" use="optional"/>
+ <xs:attribute name="RecommendedInstanceGuid" type="GuidType" use="optional"/>
+ <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
+ <xs:attribute name="SupModuleList" type="ModuleListType" use="optional"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="OptionAttributes">
+ <xs:attribute name="BuildTargets" type="BuildTargetList" use="optional"/>
+ <xs:attribute name="ToolChainFamily" type="ToolsNameConvention" use="optional"/>
+ <xs:attribute name="TagName" type="ToolsNameConvention" use="optional"/>
+ <xs:attribute name="ToolCode" type="ToolsNameConvention" use="optional"/>
+ <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="PackageHeaderAttributes">
+ <xs:attribute name="ModuleType" type="ModuleTypeDef" use="required"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="PackageAttributes">
+ <!-- Used with the MSA File, PackageDependencies.Package -->
+ <xs:attribute name="PackageGuid" type="GuidType" use="required"/>
+ <xs:attribute name="PackageVersion" type="VersionDataType" use="optional"/>
+ <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
+ <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="PackageNameAttributes">
+ <!--Used with the FrameworkDatabase PackageList.Packagename -->
+ <xs:attribute name="PackageGuid" type="GuidType" use="optional"/>
+ <xs:attribute name="PackageVersion" type="VersionDataType" use="optional"/>
+ <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="PcdCodedAttributes">
+ <!-- We need to modify ALL the MSA files that have PcdCoded sections to
+ set the PcdUsage. Once we modify all the MSA files and we modify the
+ wizard and the build tools, we need to make this required. -->
+ <xs:attribute name="Usage" type="PcdUsage" use="optional"/>
+ <xs:attribute name="PcdItemType" type="PcdItemTypes" use="required"/>
+ <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
+ <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="PcdDeclarationAttributes">
+ <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
+ <xs:attribute name="SupModuleList" type="ModuleListType" use="optional"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="PpiDeclarationAttributes">
+ <xs:attribute name="Name" type="UiNameType" use="required"/>
+ <xs:attribute name="GuidTypeList" type="GuidListType" use="optional"/>
+ <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
+ <xs:attribute name="SupModuleList" type="ModuleListType" use="optional"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="PpiAttributes">
+ <xs:attribute name="Usage" type="PpiUsage" use="required"/>
+ <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
+ <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="PpiNotifyAttributes">
+ <xs:attribute name="Usage" type="PpiNotifyUsage" use="required"/>
+ <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
+ <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="ProtocolAttributes">
+ <xs:attribute name="Usage" type="ProtocolUsage" use="required"/>
+ <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
+ <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="ProtocolDeclarationAttributes">
+ <xs:attribute name="Name" type="UiNameType" use="required"/>
+ <xs:attribute name="GuidTypeList" type="GuidListType" use="optional"/>
+ <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
+ <xs:attribute name="SupModuleList" type="ModuleListType" use="optional"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="ProtocolNotifyAttributes">
+ <xs:attribute name="Usage" type="ProtocolNotifyUsage" use="required"/>
+ <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
+ <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="SystemTableAttributes">
+ <xs:attribute name="Usage" type="SystemTableUsage" use="required"/>
+ <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
+ <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="VariableAttributes">
+ <xs:attribute name="Usage" type="VariableUsage" use="required"/>
+ <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
+ <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
+ </xs:attributeGroup>
+</xs:schema>
diff --git a/BaseTools/Conf/XMLSchema/FrameworkDataElements.xsd b/BaseTools/Conf/XMLSchema/FrameworkDataElements.xsd new file mode 100644 index 0000000000..e094c1b626 --- /dev/null +++ b/BaseTools/Conf/XMLSchema/FrameworkDataElements.xsd @@ -0,0 +1,728 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns="http://www.TianoCore.org/2007/Edk2.1" targetNamespace="http://www.TianoCore.org/2007/Edk2.1">
+ <!--
+ Filename: FrameworkDataElements.xsd
+
+ Copyright (c) 2007, Intel Corporation. All rights reserved.
+ This program and the accompanying materials
+ are licensed and made available under the terms and conditions of the BSD License
+ which may be found at http://opensource.org/licenses/bsd-license.php
+
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+ -->
+ <xs:annotation>
+ <xs:documentation xml:lang="en"> This schema defines EFI and Framework Data Elements </xs:documentation>
+ </xs:annotation>
+ <xs:include schemaLocation="NamingConvention.xsd"/>
+ <xs:include schemaLocation="FrameworkDataTypes.xsd"/>
+ <xs:include schemaLocation="FrameworkDataAttributes.xsd"/>
+ <xs:element name="Abstract" type="Sentence">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Abstract is valid for all Description Files</xs:documentation>
+ <xs:documentation xml:lang="en">This section is required. This is a single sentence to describe the module and will be used in sample files as the abstract data in the header comment section.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="BootModes">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">BootModes is valid for all Description Files</xs:documentation>
+ <xs:documentation xml:lang="en">This is a list of BootModes Supported by the Module</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="BootMode">
+ <xs:complexType>
+ <xs:sequence minOccurs="0">
+ <xs:element name="HelpText" type="Paragraph"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="BootModeAttributes"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="Copyright" type="Paragraph"/>
+ <xs:element name="DataHubs">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">This is a list of DataHubRecord elements.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="DataHubRecord">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" name="DataHubCName" type="C_NameType"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="DataHubAttributes"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="DefaultValue">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">The default setting of a PCD entry.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="xs:normalizedString"/>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="Depex">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">This section is used to describe the DXE or PEI Dependency code</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="Define" type="xs:normalizedString"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="Expression" type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="Description" type="Paragraph">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">This section is required for new modules and libraries and must contain more information than the Abstract.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="BinaryFiles">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Multiple Filenames may be specified, and they may also be scoped to a specific Architecture.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="Filename">
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="PathAndFilename">
+ <xs:attributeGroup ref="BinaryFileAttributes"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="Events">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">This is a list of MSA Events</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="1" name="CreateEvents">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="EventTypes">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" name="EventType" type="EventTypes"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="EventAttributes"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element minOccurs="0" maxOccurs="1" name="SignalEvents">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Module has an event that is waiting to be signaled. Event is named by GUID.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="EventTypes">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" name="EventType" type="EventTypes"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="EventAttributes"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="Externs">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">This is a child of MSA files.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence minOccurs="1">
+ <xs:element minOccurs="0" maxOccurs="1" name="PcdIsDriver" type="PcdDriverTypes"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="TianoR8FlashMap_h" type="xs:boolean" default="false"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="Specification" type="Sentence"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="Extern">
+ <xs:complexType>
+ <xs:choice minOccurs="1" maxOccurs="1">
+ <xs:sequence minOccurs="0" maxOccurs="1">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Driver Module</xs:documentation>
+ </xs:annotation>
+ <xs:element minOccurs="0" maxOccurs="1" name="ModuleEntryPoint" type="C_NameType"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="ModuleUnloadImage" type="C_NameType"/>
+ </xs:sequence>
+ <xs:sequence minOccurs="0" maxOccurs="1">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Library Module</xs:documentation>
+ </xs:annotation>
+ <xs:element minOccurs="0" maxOccurs="1" name="Constructor" type="C_NameType"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="Destructor" type="C_NameType"/>
+ </xs:sequence>
+ <xs:sequence minOccurs="0" maxOccurs="1">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Allow multiple entries for DriverBinding, ComponentName, DriverConfig and DriverDiag elements. For ComponentName, DriverConfig and/or DriverDiag - you must have a 1:1 mapping to DriverBinding if the element is defined.</xs:documentation>
+ <xs:documentation xml:lang="en">Permit User Defined Extern Tags</xs:documentation>
+ </xs:annotation>
+ <xs:element minOccurs="1" maxOccurs="1" name="DriverBinding" type="C_NameType"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="ComponentName" type="C_NameType"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="DriverConfig" type="C_NameType"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="DriverDiag" type="C_NameType"/>
+ </xs:sequence>
+ <xs:sequence minOccurs="0" maxOccurs="1">
+ <xs:annotation>
+ <xs:documentation xml:lang="en"> Module Call Backs</xs:documentation>
+ </xs:annotation>
+ <xs:element minOccurs="0" maxOccurs="1" name="SetVirtualAddressMapCallBack" type="C_NameType"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="ExitBootServicesCallBack" type="C_NameType"/>
+ </xs:sequence>
+ </xs:choice>
+ <xs:attributeGroup ref="ExternAttributes"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="Filename">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Describe the valid content of a filename This should extend PathAndFilename - Variable names not allowed here!</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="PathAndFilename">
+ <xs:attributeGroup ref="FilenameAttributes"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="Filenames">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">This is a list of Filenames</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence minOccurs="1">
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="Filename"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="GuidDeclarations">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">This is a child of PackageSurfaceArea (SPD) </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="Entry">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" name="C_Name" type="C_NameType"/>
+ <xs:element minOccurs="1" maxOccurs="1" name="GuidValue" type="GuidType"/>
+ <xs:element minOccurs="1" maxOccurs="1" name="HelpText" type="Paragraph"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="GuidDeclarationAttributes"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="Guids">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="GuidCNames">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Describe the valid content of a GUID element in and MSA file.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" name="GuidCName" type="C_NameType"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="GuidAttributes"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="HiiPackages">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Describe the list of a HiiPackage elements</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="HiiPackage">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" name="HiiCName" type="C_NameType"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="HiiPackageAttributes"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="Hobs">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="HobTypes">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" name="HobType" type="HobTypes"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="HobAttributes"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="IncludeHeader">
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="PathAndFilename">
+ <xs:attributeGroup ref="IncludeHeaderAttributes"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="IndustryStdIncludes">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="unbounded" ref="IndustryStdHeader"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="IndustryStdHeader">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" name="IncludeHeader" type="PathAndFilename"/>
+ <xs:element minOccurs="1" maxOccurs="1" name="HelpText" type="Paragraph"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="IndustryStdHeaderAttributes"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="LibraryClass">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Used in MSA files. This defines what class of library is being supported = produced (library module) or consumed by a module.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" name="Keyword" type="KeywordType"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="LibraryClassAttributes"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- LAH This is SPD LibraryClassDeclarations FINAL version -->
+ <xs:element name="LibraryClassDeclarations">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="LibraryClass">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" name="IncludeHeader" type="PathAndFilename"/>
+ <xs:element minOccurs="1" maxOccurs="1" name="HelpText" type="Paragraph"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="LibraryClassDeclarationAttributes"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="LibraryClassDefinitions">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">This section defines what Classes of Library that this library supports. A Library may belong to multiple different library classes.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="unbounded" ref="LibraryClass"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="License">
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="Paragraph">
+ <xs:attribute name="URL" type="xs:anyURI" use="optional"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="ModuleBuildOptions">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="1" ref="Options"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="UserExtensions"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="ModuleDefinitions">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" name="SupportedArchitectures" type="ArchListType"/>
+ <xs:element minOccurs="1" maxOccurs="1" name="BinaryModule" type="xs:boolean" default="false"/>
+ <xs:element minOccurs="1" maxOccurs="1" name="OutputFileBasename" type="FileNameConvention"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="ClonedFrom">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="Cloned">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" name="PackageGuid" type="GuidType"/>
+ <xs:element minOccurs="1" maxOccurs="1" name="PackageVersion" type="VersionDataType"/>
+ <xs:element minOccurs="1" maxOccurs="1" name="ModuleGuid" type="GuidType"/>
+ <xs:element minOccurs="1" maxOccurs="1" name="ModuleVersion" type="VersionDataType"/>
+ </xs:sequence>
+ <!-- The Id is a number used to track heritage the first entry will be 0 and increment from then on. -->
+ <xs:attribute name="Id" type="xs:nonNegativeInteger" use="required"/>
+ <!-- If the original module was installed from a FAR, track the FAR it came from. -->
+ <xs:attribute name="FarGuid" type="GuidType" use="optional"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="ModuleType" type="ModuleTypeDef">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Describe the valid EFI Phase that the Module is designed to execute under.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <!-- Use in Final -->
+ <xs:element name="MsaFiles">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">MsaFiles is a child of Surface Area Package Description (SPD) files</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="Filename" type="PathAndFilename"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="Options">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="unbounded" ref="Option"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="NonProcessedFiles">
+ <xs:complexType>
+ <xs:sequence minOccurs="1" maxOccurs="unbounded">
+ <xs:element name="Filename" type="PathAndFilename"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="Option">
+ <!-- This element is used to store flags from the Tools -->
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="xs:normalizedString">
+ <xs:attributeGroup ref="OptionAttributes"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="PackageDefinitions">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" name="ReadOnly" type="xs:boolean" default="false"/>
+ <xs:element minOccurs="1" maxOccurs="1" name="RePackage" type="xs:boolean" default="false"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="ClonedFrom">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="Cloned">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" name="PackageGuid" type="GuidType"/>
+ <xs:element minOccurs="1" maxOccurs="1" name="PackageVersion" type="VersionDataType"/>
+ </xs:sequence>
+ <!-- The Id is a number used to track heritage the first entry will be 0 and increment from then on. -->
+ <xs:attribute name="Id" type="xs:nonNegativeInteger" use="required"/>
+ <!-- If the original Package was installed from a FAR, track the FAR it came from. -->
+ <xs:attribute name="FarGuid" type="GuidType" use="optional"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="PackageDependencies">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">This tag is used in the Module Surface Area Description File (MSA) to track package dependencies for a module.</xs:documentation>
+ <xs:documentation xml:lang="en">Attributes to PackageName include Required: Usage PackageGuid PackageVesion, Optional: FeatureFlag</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="Package">
+ <xs:complexType>
+ <xs:attributeGroup ref="PackageAttributes"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="PackageHeaders">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">PackageHeaders is a child of PackageSurfaceArea (SPD) </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="IncludePkgHeader">
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="PathAndFilename">
+ <xs:attributeGroup ref="PackageHeaderAttributes"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="PackageList">
+ <!-- Valid for DB usage only! -->
+ <xs:annotation>
+ <xs:documentation xml:lang="en">This tag is used in the Framework Package Database File to track all packages (SPD files) installed in a workspace. (Database)</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="Filename">
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="PathAndFilename">
+ <xs:attributeGroup ref="PackageNameAttributes"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="PcdCoded">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Child of Module Surface Area Description (MSA)</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="PcdEntry">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" name="C_Name" type="C_NameType"/>
+ <xs:element minOccurs="1" maxOccurs="1" name="TokenSpaceGuidCName" type="C_NameType"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="DefaultValue" type="DefaultValueType"/>
+ <xs:element minOccurs="1" maxOccurs="1" name="HelpText" type="Paragraph"/>
+ </xs:sequence>
+ <!-- MSA file declares a single usage, and must match one of the entries in what the SPD file declares as the set of possible Item Types. -->
+ <xs:attributeGroup ref="PcdCodedAttributes"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <!-- LAH This is PcdDeclarations FINAL version -->
+ <xs:element name="PcdDeclarations">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">PcdDeclaratins is a child of Package Surface Area Description (SPD)</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence minOccurs="1">
+ <xs:element maxOccurs="unbounded" name="PcdEntry">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" name="C_Name" type="C_NameType"/>
+ <xs:element minOccurs="1" maxOccurs="1" name="Token" type="TokenDataType"/>
+ <xs:element minOccurs="1" maxOccurs="1" name="TokenSpaceGuidCName" type="C_NameType"/>
+ <xs:element minOccurs="1" maxOccurs="1" name="DatumType" type="PcdDataTypes"/>
+ <xs:element minOccurs="1" maxOccurs="1" name="ValidUsage" type="PcdListType"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="DefaultValue" type="DefaultValueType"/>
+ <xs:element minOccurs="1" maxOccurs="1" name="HelpText" type="Paragraph"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="PcdDeclarationAttributes"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="FarList">
+ <!-- Valid for DB usage only! -->
+ <xs:annotation>
+ <xs:documentation xml:lang="en">This tag is used in the Framework Package Database File to track all DISTRIBUTION packages (FAR files) installed in a workspace. (Database)</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="Filename" type="DbPathAndFilename"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="PpiDeclarations">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">PpiDeclarations is a child of PackageSurfaceArea (SPD) </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="Entry">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" name="C_Name" type="C_NameType"/>
+ <xs:element minOccurs="1" maxOccurs="1" name="GuidValue" type="GuidType"/>
+ <xs:element minOccurs="1" maxOccurs="1" name="HelpText" type="Paragraph"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="PpiDeclarationAttributes"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="PPIs">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Provide for one or more Ppi or PpiNotify sections. </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence minOccurs="1">
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="Ppi">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" name="PpiCName" type="C_NameType"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="PpiAttributes"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="PpiNotify">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" name="PpiNotifyCName" type="C_NameType"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="PpiNotifyAttributes"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="ProtocolDeclarations">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">ProtocolDeclarations is a child of PackageSurfaceArea (SPD) </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="Entry">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" name="C_Name" type="C_NameType"/>
+ <xs:element minOccurs="1" maxOccurs="1" name="GuidValue" type="GuidType"/>
+ <xs:element minOccurs="1" maxOccurs="1" name="HelpText" type="Paragraph"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="ProtocolDeclarationAttributes"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="Protocols">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">If either Protocol or ProtocolNotify sections are needed, one or more of them should be specified within this section</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="Protocol">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" name="ProtocolCName" type="C_NameType"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="ProtocolAttributes"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="ProtocolNotify">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" name="ProtocolNotifyCName" type="C_NameType"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="ProtocolNotifyAttributes"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="SourceFiles">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Multiple Filenames may be specified, and they may also be scoped to a specific Architecture.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="unbounded" ref="Filename"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="SystemTables">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">This is list of System Table elements.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="SystemTableCNames">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" name="SystemTableCName" type="C_NameType"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="SystemTableAttributes"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="UserExtensions">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
+ </xs:sequence>
+ <xs:attribute name="UserID" type="xs:NCName" use="required"/>
+ <xs:attribute name="Identifier" type="xs:string" use="required"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="Variables">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">An MSA FILE list of EFI Variables described by string pair.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="Variable">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">This is an EFI Variable Entry</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" name="VariableName" type="HexWordArrayType"/>
+ <xs:element minOccurs="1" maxOccurs="1" name="GuidC_Name" type="C_NameType"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="VariableAttributes"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="Version" type="VersionDataType"/>
+</xs:schema>
diff --git a/BaseTools/Conf/XMLSchema/FrameworkDataTypes.xsd b/BaseTools/Conf/XMLSchema/FrameworkDataTypes.xsd new file mode 100644 index 0000000000..9a46a02a2e --- /dev/null +++ b/BaseTools/Conf/XMLSchema/FrameworkDataTypes.xsd @@ -0,0 +1,581 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns="http://www.TianoCore.org/2007/Edk2.1" targetNamespace="http://www.TianoCore.org/2007/Edk2.1">
+ <!--
+ Filename: FrameworkDataTypes.xsd
+
+ Copyright (c) 2007, Intel Corporation. All rights reserved.
+ This program and the accompanying materials
+ are licensed and made available under the terms and conditions of the BSD License
+ which may be found at http://opensource.org/licenses/bsd-license.php
+
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+ -->
+ <xs:annotation>
+ <xs:documentation xml:lang="en">This schema defines EFI and Framework Data Types. Only simpleType are specified in this file. </xs:documentation>
+ </xs:annotation>
+ <xs:include schemaLocation="NamingConvention.xsd"/>
+ <xs:simpleType name="PrimaryArchListType">
+ <xs:list itemType="SupportedArchitectures"/>
+ </xs:simpleType>
+ <xs:simpleType name="ArchListType">
+ <xs:restriction base="PrimaryArchListType">
+ <xs:minLength value="1"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="BinFileType">
+ <xs:restriction base="xs:NCName">
+ <xs:enumeration value="LIB"/>
+ <xs:enumeration value="UNI_UI"/>
+ <xs:enumeration value="UNI_VER"/>
+ <xs:enumeration value="PE32"/>
+ <xs:enumeration value="FW"/>
+ <xs:enumeration value="GUID"/>
+ <xs:enumeration value="FREEFORM"/>
+ <xs:enumeration value="UEFI_APP"/>
+ <xs:enumeration value="PIC"/>
+ <xs:enumeration value="PEI_DEPEX"/>
+ <xs:enumeration value="DXE_DEPEX"/>
+ <xs:enumeration value="TE"/>
+ <xs:enumeration value="VER"/>
+ <xs:enumeration value="UI"/>
+ <xs:enumeration value="BIN"/>
+ <xs:enumeration value="FV"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="BlockNameType">
+ <xs:restriction base="UCNameType">
+ <xs:pattern value="\s*BLOCK[A-F0-9]{2}\s*"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="BootModeNames">
+ <xs:restriction base="UCNameType">
+ <xs:enumeration value="FULL"/>
+ <xs:enumeration value="MINIMAL"/>
+ <xs:enumeration value="NO_CHANGE"/>
+ <xs:enumeration value="DIAGNOSTICS"/>
+ <xs:enumeration value="DEFAULT"/>
+ <xs:enumeration value="S2_RESUME"/>
+ <xs:enumeration value="S3_RESUME"/>
+ <xs:enumeration value="S4_RESUME"/>
+ <xs:enumeration value="S5_RESUME"/>
+ <xs:enumeration value="FLASH_UPDATE"/>
+ <xs:enumeration value="RECOVERY_FULL"/>
+ <xs:enumeration value="RECOVERY_MINIMAL"/>
+ <xs:enumeration value="RECOVERY_NO_CHANGE"/>
+ <xs:enumeration value="RECOVERY_DIAGNOSTICS"/>
+ <xs:enumeration value="RECOVERY_DEFAULT"/>
+ <xs:enumeration value="RECOVERY_S2_RESUME"/>
+ <xs:enumeration value="RECOVERY_S3_RESUME"/>
+ <xs:enumeration value="RECOVERY_S4_RESUME"/>
+ <xs:enumeration value="RECOVERY_S5_RESUME"/>
+ <xs:enumeration value="RECOVERY_FLASH_UPDATE"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="BootModeUsage">
+ <xs:restriction base="UsageTypes">
+ <xs:enumeration value="ALWAYS_CONSUMED"/>
+ <xs:enumeration value="SOMETIMES_CONSUMED"/>
+ <xs:enumeration value="ALWAYS_PRODUCED"/>
+ <xs:enumeration value="SOMETIMES_PRODUCED"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="BuildTargetList">
+ <xs:restriction base="BuildTargetUList">
+ <xs:minLength value="1"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="BuildTargetUList">
+ <xs:list itemType="BrUType"/>
+ </xs:simpleType>
+ <xs:simpleType name="BrUType">
+ <xs:union memberTypes="BrType UCNameType"/>
+ </xs:simpleType>
+ <xs:simpleType name="BrType">
+ <xs:restriction base="UCNameType">
+ <xs:enumeration value="DEBUG"/>
+ <xs:enumeration value="RELEASE"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ComponentExecutionPhase">
+ <xs:restriction base="UCNameType">
+ <xs:enumeration value="MDE"/>
+ <xs:enumeration value="SEC"/>
+ <xs:enumeration value="PEI_CORE"/>
+ <xs:enumeration value="PEIM"/>
+ <xs:enumeration value="DXE_CORE"/>
+ <xs:enumeration value="DXE_DRIVER"/>
+ <xs:enumeration value="DXE_RUNTIME_DRIVER"/>
+ <xs:enumeration value="DXE_SAL_DRIVER"/>
+ <xs:enumeration value="DXE_SMM_DRIVER"/>
+ <xs:enumeration value="UEFI"/>
+ <xs:enumeration value="UEFI_APPLICATION"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="DataHubUsage">
+ <xs:restriction base="UsageTypes">
+ <xs:enumeration value="ALWAYS_CONSUMED"/>
+ <xs:enumeration value="SOMETIMES_CONSUMED"/>
+ <xs:enumeration value="ALWAYS_PRODUCED"/>
+ <xs:enumeration value="SOMETIMES_PRODUCED"/>
+ <xs:enumeration value="PRIVATE"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="DatumSizeLimitation">
+ <xs:restriction base="xs:nonNegativeInteger">
+ <xs:maxExclusive value="13777216"/>
+ <xs:pattern value="(\s)*[1-9][0-9]*(\s)*"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="DefaultValueType">
+ <xs:union memberTypes="xs:normalizedString Hex64BitDataType UnicodeString HexByteArrayType"/>
+ </xs:simpleType>
+ <xs:simpleType name="EfiSectionType">
+ <xs:restriction base="UCNameType">
+ <xs:enumeration value="EFI_SECTION_FREEFORM_SUBTYPE_GUID"/>
+ <xs:enumeration value="EFI_SECTION_VERSION"/>
+ <xs:enumeration value="EFI_SECTION_USER_INTERFACE"/>
+ <xs:enumeration value="EFI_SECTION_DXE_DEPEX"/>
+ <xs:enumeration value="EFI_SECTION_PEI_DEPEX"/>
+ <xs:enumeration value="EFI_SECTION_PE32"/>
+ <xs:enumeration value="EFI_SECTION_PIC"/>
+ <xs:enumeration value="EFI_SECTION_TE"/>
+ <xs:enumeration value="EFI_SECTION_RAW"/>
+ <xs:enumeration value="EFI_SECTION_COMPRESSION"/>
+ <xs:enumeration value="EFI_SECTION_GUID_DEFINED"/>
+ <xs:enumeration value="EFI_SECTION_COMPATIBILITY16"/>
+ <xs:enumeration value="EFI_SECTION_FIRMWARE_VOLUME_IMAGE"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="EventTypes">
+ <xs:restriction base="UCNameType">
+ <xs:enumeration value="EVENT_GROUP_GUID"/>
+ <xs:enumeration value="EVENT_TYPE_PERIODIC_TIMER"/>
+ <xs:enumeration value="EVENT_TYPE_RELATIVE_TIMER"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="EventUsage">
+ <xs:restriction base="UsageTypes">
+ <xs:enumeration value="ALWAYS_CONSUMED"/>
+ <xs:enumeration value="SOMETIMES_CONSUMED"/>
+ <xs:enumeration value="ALWAYS_PRODUCED"/>
+ <xs:enumeration value="SOMETIMES_PRODUCED"/>
+ <xs:enumeration value="PRIVATE"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ExecutionType">
+ <xs:restriction base="UCNameType">
+ <xs:enumeration value="REL" id="Relocatable"/>
+ <xs:enumeration value="NREL" id="Non-Relocatable"/>
+ <xs:enumeration value="XIP" id="Execute_In_Place"/>
+ <xs:enumeration value="PIC" id="Position_Independent_Code"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ExternType">
+ <xs:restriction base="xs:normalizedString">
+ <xs:minLength value="1"/>
+ <!--<xs:pattern value="((\w)+(\W)*(\s)*)+"/>-->
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ExternUsage">
+ <xs:restriction base="UsageTypes">
+ <xs:enumeration value="ALWAYS_CONSUMED"/>
+ <xs:enumeration value="ALWAYS_PRODUCED"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="FileNameUsage">
+ <xs:restriction base="UsageTypes">
+ <xs:enumeration value="ALWAYS_CONSUMED"/>
+ <xs:enumeration value="SOMETIMES_CONSUMED"/>
+ <xs:enumeration value="ALWAYS_PRODUCED"/>
+ <xs:enumeration value="SOMETIMES_PRODUCED"/>
+ <xs:enumeration value="PRIVATE"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="FeatureFlagExpressionType">
+ <xs:restriction base="xs:normalizedString">
+ <xs:minLength value="1"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="FrameworkComponentListType">
+ <xs:list itemType="FrameworkComponentTypes"/>
+ </xs:simpleType>
+ <xs:simpleType name="FrameworkComponentTypes">
+ <xs:restriction base="UCNameType">
+ <xs:enumeration value="APRIORI"/>
+ <xs:enumeration value="SEC"/>
+ <xs:enumeration value="LIBRARY"/>
+ <xs:enumeration value="FV_IMAGE_FILE"/>
+ <xs:enumeration value="BS_DRIVER"/>
+ <xs:enumeration value="RT_DRIVER"/>
+ <xs:enumeration value="SAL_RT_DRIVER"/>
+ <xs:enumeration value="PE32_PEIM"/>
+ <xs:enumeration value="PIC_PEIM"/>
+ <xs:enumeration value="COMBINED_PEIM_DRIVER"/>
+ <xs:enumeration value="PEI_CORE"/>
+ <xs:enumeration value="DXE_CORE"/>
+ <xs:enumeration value="BS_DRIVER_EFI"/>
+ <xs:enumeration value="SHELLAPP"/>
+ <xs:enumeration value="BINARY"/>
+ <xs:enumeration value="LOGO"/>
+ <xs:enumeration value="USER_DEFINED"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="FrameworkModuleTypes">
+ <xs:restriction base="ModuleTypeDef">
+ <xs:enumeration value="BASE"/>
+ <xs:enumeration value="SEC"/>
+ <xs:enumeration value="PEI_CORE"/>
+ <xs:enumeration value="PEIM"/>
+ <xs:enumeration value="DXE_CORE"/>
+ <xs:enumeration value="DXE_DRIVER"/>
+ <xs:enumeration value="DXE_RUNTIME_DRIVER"/>
+ <xs:enumeration value="DXE_SAL_DRIVER"/>
+ <xs:enumeration value="DXE_SMM_DRIVER"/>
+ <xs:enumeration value="UEFI_DRIVER"/>
+ <xs:enumeration value="UEFI_APPLICATION"/>
+ <xs:enumeration value="USER_DEFINED"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="FvRegionTypes">
+ <xs:restriction base="UCNameType">
+ <xs:enumeration value="FV_MAIN"/>
+ <xs:enumeration value="FV_MAIN_COMPACT"/>
+ <xs:enumeration value="NV_STORAGE"/>
+ <xs:enumeration value="FV_RECOVERY"/>
+ <xs:enumeration value="FV_RECOVERY_FLOPPY"/>
+ <xs:enumeration value="FV_FILE"/>
+ <xs:enumeration value="CAPSULE_CARGO"/>
+ <xs:enumeration value="NULL"/>
+ <xs:enumeration value="USER_DEFINED"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="PrimaryGuidListType">
+ <xs:list itemType="GuidTypes"/>
+ </xs:simpleType>
+ <xs:simpleType name="GuidListType">
+ <xs:restriction base="PrimaryGuidListType">
+ <xs:minLength value="1"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="GuidTypes">
+ <xs:restriction base="UCNameType">
+ <xs:enumeration value="DATA_HUB_RECORD"/>
+ <xs:enumeration value="EFI_EVENT"/>
+ <xs:enumeration value="EFI_SYSTEM_CONFIGURATION_TABLE"/>
+ <xs:enumeration value="EFI_VARIABLE"/>
+ <xs:enumeration value="GUID"/>
+ <xs:enumeration value="HII_PACKAGE_LIST"/>
+ <xs:enumeration value="HOB"/>
+ <xs:enumeration value="TOKEN_SPACE_GUID"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="GuidUsage">
+ <xs:restriction base="UsageTypes">
+ <xs:enumeration value="ALWAYS_CONSUMED"/>
+ <xs:enumeration value="SOMETIMES_CONSUMED"/>
+ <xs:enumeration value="ALWAYS_PRODUCED"/>
+ <xs:enumeration value="SOMETIMES_PRODUCED"/>
+ <xs:enumeration value="PRIVATE"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="HexByteArrayListType">
+ <xs:restriction base="xs:normalizedString">
+ <xs:minLength value="4"/>
+ <xs:pattern value="\s*((( )?0x[a-fA-F0-9]{2})(,)?)+( )?"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="HexByteArrayType">
+ <xs:restriction base="xs:normalizedString">
+ <xs:minLength value="4"/>
+ <xs:pattern value="((\s)*0x([a-fA-F0-9]){2}(,)?(\s)*)+"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="HexWordArrayType">
+ <xs:restriction base="xs:normalizedString">
+ <xs:minLength value="6"/>
+ <xs:pattern value="((\s)*0x([a-fA-F0-9]){4}(,)?(\s)*)+"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="HiiPackageUsage">
+ <xs:restriction base="UsageTypes">
+ <xs:enumeration value="ALWAYS_PRODUCED"/>
+ <xs:enumeration value="SOMETIMES_PRODUCED"/>
+ <xs:enumeration value="PRIVATE"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="HobTypes">
+ <xs:restriction base="UCNameType">
+ <xs:enumeration value="PHIT"/>
+ <xs:enumeration value="MEMORY_ALLOCATION"/>
+ <xs:enumeration value="RESOURCE_DESCRIPTOR"/>
+ <xs:enumeration value="GUID_EXTENSION"/>
+ <xs:enumeration value="FIRMWARE_VOLUME"/>
+ <xs:enumeration value="CPU"/>
+ <xs:enumeration value="POOL"/>
+ <xs:enumeration value="CAPSULE_VOLUME"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="HobUsage">
+ <xs:restriction base="UsageTypes">
+ <xs:enumeration value="ALWAYS_CONSUMED"/>
+ <xs:enumeration value="SOMETIMES_CONSUMED"/>
+ <xs:enumeration value="ALWAYS_PRODUCED"/>
+ <xs:enumeration value="SOMETIMES_PRODUCED"/>
+ <xs:enumeration value="PRIVATE"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="IntermediateOutputType">
+ <xs:restriction base="UCNameType">
+ <xs:enumeration value="MODULE"/>
+ <xs:enumeration value="UNIFIED"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="LibraryUsage">
+ <xs:restriction base="UsageTypes">
+ <xs:enumeration value="ALWAYS_CONSUMED"/>
+ <xs:enumeration value="SOMETIMES_CONSUMED"/>
+ <xs:enumeration value="ALWAYS_PRODUCED"/>
+ <xs:enumeration value="SOMETIMES_PRODUCED"/>
+ <xs:enumeration value="PRIVATE"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ModuleTypeDef">
+ <xs:restriction base="UCNameType">
+ <xs:enumeration value="BASE"/>
+ <xs:enumeration value="SEC"/>
+ <xs:enumeration value="PEI_CORE"/>
+ <xs:enumeration value="PEIM"/>
+ <xs:enumeration value="DXE_CORE"/>
+ <xs:enumeration value="DXE_DRIVER"/>
+ <xs:enumeration value="DXE_RUNTIME_DRIVER"/>
+ <xs:enumeration value="DXE_SAL_DRIVER"/>
+ <xs:enumeration value="DXE_SMM_DRIVER"/>
+ <xs:enumeration value="TOOL"/>
+ <xs:enumeration value="UEFI_DRIVER"/>
+ <xs:enumeration value="UEFI_APPLICATION"/>
+ <xs:enumeration value="USER_DEFINED"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Md5sumType">
+ <xs:restriction base="xs:normalizedString">
+ <xs:pattern value="\s*[a-fA-F0-9]{32}\s*"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="PrimaryModuleListType">
+ <xs:list itemType="FrameworkModuleTypes"/>
+ </xs:simpleType>
+ <xs:simpleType name="ModuleListType">
+ <xs:restriction base="PrimaryModuleListType">
+ <xs:minLength value="1"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="PackageType">
+ <xs:restriction base="UCNameType">
+ <xs:enumeration value="SOURCE"/>
+ <xs:enumeration value="BINARY"/>
+ <xs:enumeration value="MIXED"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="PackageUsage">
+ <xs:restriction base="UsageTypes">
+ <xs:enumeration value="ALWAYS_CONSUMED"/>
+ <xs:enumeration value="SOMETIMES_CONSUMED"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="PcdListType">
+ <xs:restriction base="PrimaryPcdListType">
+ <xs:minLength value="1"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="PrimaryPcdListType">
+ <xs:list itemType="PcdItemTypes"/>
+ </xs:simpleType>
+ <xs:simpleType name="PcdTypes">
+ <xs:restriction base="UCNameType">
+ <xs:enumeration value="FIXED_AT_BUILD"/>
+ <xs:enumeration value="FEATURE_FLAG"/>
+ <xs:enumeration value="PATCHABLE_IN_MODULE"/>
+ <xs:enumeration value="DYNAMIC"/>
+ <xs:enumeration value="DYNAMIC_EX"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="PcdDriverTypes">
+ <xs:restriction base="UCNameType">
+ <xs:enumeration value="PEI_PCD_DRIVER"/>
+ <xs:enumeration value="DXE_PCD_DRIVER"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="PcdDataTypes">
+ <xs:restriction base="xs:normalizedString">
+ <xs:enumeration value="UINT8"/>
+ <xs:enumeration value="UINT16"/>
+ <xs:enumeration value="UINT32"/>
+ <xs:enumeration value="UINT64"/>
+ <xs:enumeration value="VOID*"/>
+ <xs:enumeration value="BOOLEAN"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="PcdFeatureFlagUsage">
+ <xs:restriction base="UsageTypes">
+ <xs:enumeration value="ALWAYS_PRODUCED"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="PcdItemTypes">
+ <xs:restriction base="UCNameType">
+ <xs:enumeration value="FEATURE_FLAG"/>
+ <xs:enumeration value="FIXED_AT_BUILD"/>
+ <xs:enumeration value="PATCHABLE_IN_MODULE"/>
+ <xs:enumeration value="DYNAMIC"/>
+ <xs:enumeration value="DYNAMIC_EX"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="PcdUsage">
+ <xs:restriction base="UsageTypes">
+ <xs:enumeration value="ALWAYS_CONSUMED"/>
+ <xs:enumeration value="SOMETIMES_CONSUMED"/>
+ <xs:enumeration value="ALWAYS_PRODUCED"/>
+ <xs:enumeration value="SOMETIMES_PRODUCED"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="PpiNotifyUsage">
+ <xs:restriction base="UsageTypes">
+ <xs:enumeration value="SOMETIMES_CONSUMED"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="PpiUsage">
+ <xs:restriction base="UsageTypes">
+ <xs:enumeration value="ALWAYS_CONSUMED"/>
+ <xs:enumeration value="SOMETIMES_CONSUMED"/>
+ <xs:enumeration value="ALWAYS_PRODUCED"/>
+ <xs:enumeration value="SOMETIMES_PRODUCED"/>
+ <xs:enumeration value="PRIVATE"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ProtocolNotifyUsage">
+ <xs:restriction base="UsageTypes">
+ <xs:enumeration value="SOMETIMES_CONSUMED"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ProtocolUsage">
+ <xs:restriction base="UsageTypes">
+ <xs:enumeration value="ALWAYS_CONSUMED"/>
+ <xs:enumeration value="SOMETIMES_CONSUMED"/>
+ <xs:enumeration value="ALWAYS_PRODUCED"/>
+ <xs:enumeration value="SOMETIMES_PRODUCED"/>
+ <xs:enumeration value="TO_START"/>
+ <xs:enumeration value="BY_START"/>
+ <xs:enumeration value="PRIVATE"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="SkuListType">
+ <xs:restriction base="xs:normalizedString">
+ <xs:minLength value="1"/>
+ <xs:pattern value="\s*(\d)+((,)?(\s)*(\d)+)*"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="SupportedArchitectures">
+ <xs:restriction base="UCNameType">
+ <xs:enumeration value="EBC"/>
+ <xs:enumeration value="IA32"/>
+ <xs:enumeration value="X64"/>
+ <xs:enumeration value="IPF"/>
+ <xs:enumeration value="ARM"/>
+ <xs:enumeration value="PPC"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="SystemTableUsage">
+ <xs:restriction base="UsageTypes">
+ <xs:enumeration value="ALWAYS_CONSUMED"/>
+ <xs:enumeration value="SOMETIMES_CONSUMED"/>
+ <xs:enumeration value="ALWAYS_PRODUCED"/>
+ <xs:enumeration value="SOMETIMES_PRODUCED"/>
+ <xs:enumeration value="PRIVATE"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="TokenDataType">
+ <xs:union memberTypes="HexDoubleWordDataType xs:nonNegativeInteger"/>
+ </xs:simpleType>
+ <xs:simpleType name="ToolChains">
+ <xs:restriction base="UCNameType">
+ <xs:minLength value="2"/>
+ <xs:enumeration value="MSFT"/>
+ <xs:enumeration value="INTEL"/>
+ <xs:enumeration value="GCC"/>
+ <xs:enumeration value="CYGWIN"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="UiNameType">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:pattern value="[^ ].*"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="UnicodeString">
+ <xs:restriction base="xs:normalizedString">
+ <xs:minLength value="3"/>
+ <xs:pattern value="(\s)*L(\:)?"[^"]*"(\s)*"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="UsageListType">
+ <xs:restriction base="PrimaryUsageList">
+ <xs:minLength value="1"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="PrimaryUsageList">
+ <xs:list itemType="UsageTypes"/>
+ </xs:simpleType>
+ <!-- UsageTypes describes all of the Usage Attributes that are defined in the Module Surface Area Specification -->
+ <xs:simpleType name="UsageTypes">
+ <xs:restriction base="UCNameType">
+ <xs:enumeration value="ALWAYS_CONSUMED"/>
+ <xs:enumeration value="SOMETIMES_CONSUMED"/>
+ <xs:enumeration value="ALWAYS_PRODUCED"/>
+ <xs:enumeration value="SOMETIMES_PRODUCED"/>
+ <xs:enumeration value="TO_START"/>
+ <xs:enumeration value="BY_START"/>
+ <xs:enumeration value="PRIVATE"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="VariableOffsetValues">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:pattern value="\s*\d+(:)?\d*\s*"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="VariableUsage">
+ <xs:restriction base="UsageTypes">
+ <!-- Module requires the variable entry to be set -->
+ <xs:enumeration value="ALWAYS_CONSUMED"/>
+ <!-- Module will use the variable entry if it's set -->
+ <xs:enumeration value="SOMETIMES_CONSUMED"/>
+ <!-- Module Always will write the variable -->
+ <xs:enumeration value="ALWAYS_PRODUCED"/>
+ <!-- Module sometimes writes the variable -->
+ <xs:enumeration value="SOMETIMES_PRODUCED"/>
+ <!-- Variable is produced and consumed only by this module -->
+ <xs:enumeration value="PRIVATE"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <!-- Complex Data Types -->
+ <xs:complexType name="DbPathAndFilename">
+ <xs:simpleContent>
+ <xs:extension base="PathAndFilename">
+ <xs:attribute name="FarGuid" type="GuidType" use="optional"/>
+ <xs:attribute name="Md5sum" type="Md5sumType"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ <xs:complexType name="ArgsType">
+ <xs:sequence minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="Arg" type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ToolType">
+ <xs:sequence>
+ <xs:element name="ToolName" type="xs:string"/>
+ <xs:element name="ToolArgs" type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
+</xs:schema>
diff --git a/BaseTools/Conf/XMLSchema/FrameworkHeaders.xsd b/BaseTools/Conf/XMLSchema/FrameworkHeaders.xsd new file mode 100644 index 0000000000..e2745af378 --- /dev/null +++ b/BaseTools/Conf/XMLSchema/FrameworkHeaders.xsd @@ -0,0 +1,93 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://www.TianoCore.org/2007/Edk2.1" xmlns="http://www.TianoCore.org/2007/Edk2.1">
+ <!--
+ Filename: FrameworkHeaders.xsd
+
+ Copyright (c) 2007, Intel Corporation. All rights reserved.
+
+ This program and the accompanying materials
+ are licensed and made available under the terms and conditions of the BSD License
+ which may be found at http://opensource.org/licenses/bsd-license.php
+
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+ APPROVED: 05-Jun-2007
+ -->
+ <xs:include schemaLocation="FrameworkDataElements.xsd"/>
+ <xs:element name="FdbHeader">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">This is the header for the Framework Package Database (DB) file.</xs:documentation>
+ <xs:documentation xml:lang="en">The Guid MUST change if backward compatibility breaks caused by a new release of XML Schema.</xs:documentation>
+ <xs:documentation xml:lang="en">The Version will change if a minor change to XML Schema has been made, but backward compatiblity is maintained.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" name="DatabaseName" type="UiNameType" fixed="FrameworkDatabase"/>
+ <xs:element minOccurs="1" maxOccurs="1" name="GuidValue" type="GuidType" default="DD6913E0-3E4E-4B83-8838-57EE7FB71DD1"/>
+ <xs:element minOccurs="1" maxOccurs="1" ref="Version"/>
+ <xs:element minOccurs="1" maxOccurs="1" ref="Abstract"/>
+ <xs:element minOccurs="1" maxOccurs="1" ref="Description"/>
+ <xs:element minOccurs="1" maxOccurs="1" ref="Copyright"/>
+ <xs:element minOccurs="1" maxOccurs="1" ref="License"/>
+ <xs:element minOccurs="1" maxOccurs="1" name="Specification" type="Sentence" default="FRAMEWORK_PACKAGING_SPECIFICATION 0x00090000"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="FarHeader">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">This is the header for the Framework Archive Manifest file.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" name="FarName" type="UiNameType"/>
+ <xs:element minOccurs="1" maxOccurs="1" name="GuidValue" type="GuidType"/>
+ <xs:element minOccurs="1" maxOccurs="1" ref="Version"/>
+ <xs:element minOccurs="1" maxOccurs="1" ref="Abstract"/>
+ <xs:element minOccurs="1" maxOccurs="1" ref="Description"/>
+ <xs:element minOccurs="1" maxOccurs="1" ref="Copyright"/>
+ <xs:element minOccurs="1" maxOccurs="1" ref="License"/>
+ <xs:element minOccurs="1" maxOccurs="1" name="Specification" type="Sentence" default="FRAMEWORK_PACKAGING_SPECIFICATION 0x00090000"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="MsaHeader">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">This header is for the Module Surface Area Description (MSA) files</xs:documentation>
+ <xs:documentation xml:lang="en">The Guid MUST change if the Module changes break backward compatibility.</xs:documentation>
+ <xs:documentation xml:lang="en">The Version MUST change if the Module changes, however, backward compatiblity is maintained.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" name="ModuleName" type="UiNameType"/>
+ <xs:element minOccurs="1" maxOccurs="1" ref="ModuleType"/>
+ <xs:element minOccurs="1" maxOccurs="1" name="GuidValue" type="GuidType"/>
+ <xs:element minOccurs="1" maxOccurs="1" ref="Version"/>
+ <xs:element minOccurs="1" maxOccurs="1" ref="Abstract"/>
+ <xs:element minOccurs="1" maxOccurs="1" ref="Description"/>
+ <xs:element minOccurs="1" maxOccurs="1" ref="Copyright"/>
+ <xs:element minOccurs="1" maxOccurs="1" ref="License"/>
+ <xs:element minOccurs="1" maxOccurs="1" name="Specification" type="Sentence" default="FRAMEWORK_PACKAGING_SPECIFICATION 0x00090000"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="SpdHeader">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">This head is for the Surface Area Package Description file (SPD)</xs:documentation>
+ <xs:documentation xml:lang="en">The Guid MUST change when the contents of the file undergo MAJOR FUNCTIONALITY changes.</xs:documentation>
+ <xs:documentation xml:lang="en">The Version MUST change when the contents of the file undergo MINOR FUNCTIONALITY changes.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" name="PackageName" type="UiNameType"/>
+ <xs:element minOccurs="1" maxOccurs="1" name="GuidValue" type="GuidType"/>
+ <xs:element minOccurs="1" maxOccurs="1" ref="Version"/>
+ <xs:element minOccurs="1" maxOccurs="1" ref="Abstract"/>
+ <xs:element minOccurs="1" maxOccurs="1" ref="Description"/>
+ <xs:element minOccurs="1" maxOccurs="1" ref="Copyright"/>
+ <xs:element minOccurs="1" maxOccurs="1" ref="License"/>
+ <xs:element minOccurs="1" maxOccurs="1" name="Specification" type="Sentence" default="FRAMEWORK_PACKAGING_SPECIFICATION 0x00090000"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+</xs:schema>
diff --git a/BaseTools/Conf/XMLSchema/NamingConvention.xsd b/BaseTools/Conf/XMLSchema/NamingConvention.xsd new file mode 100644 index 0000000000..8a76639777 --- /dev/null +++ b/BaseTools/Conf/XMLSchema/NamingConvention.xsd @@ -0,0 +1,186 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://www.TianoCore.org/2007/Edk2.1" xmlns="http://www.TianoCore.org/2007/Edk2.1">
+ <!--
+ Filename: NamingConvention.xsd
+
+ Copyright (c) 2007, Intel Corporation. All rights reserved.
+ This program and the accompanying materials
+ are licensed and made available under the terms and conditions of the BSD License
+ which may be found at http://opensource.org/licenses/bsd-license.php
+
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+ -->
+ <xs:annotation>
+ <xs:documentation xml:lang="en"> This schema defines various data types and naming conventions including: base name, filename and directory naming conventions. These are all simple data types.</xs:documentation>
+ </xs:annotation>
+ <xs:simpleType name="C_NameType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en"> C_Names must start with either an underscore (_) character followed by one or more alpha characters, followed by any combination of underscore or alphanumeric characters.</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:pattern value="\s*(_)*[a-zA-Z]+((_)*[a-zA-Z0-9]*)*\s*"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="FileNameConvention">
+ <xs:annotation>
+ <xs:documentation xml:lang="en"> This defines what a Filename is: Alphanumeric characters and optional underscore (_) or dash (-) characters, followed by a optional dot and more alphanumeric characters. </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:pattern value="\s*[a-zA-Z](\.?[\-_a-zA-Z0-9]+)*\s*"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="GuidType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en"> The GUID data was a union of GuidType1 and GuidType2; standardizing on GuidType2. </xs:documentation>
+ </xs:annotation>
+ <xs:union memberTypes="GuidType2"/>
+ </xs:simpleType>
+ <xs:simpleType name="GuidType1">
+ <xs:annotation>
+ <xs:documentation xml:lang="en"> This defines the minimum specification for a GUID Array which is 8 Hex Digits - 4 Hex Digits - 4 Hex Digits - 8 Hex Bytes, the last 16 Hex Digits can be enclosed in sqiggle {} brackets.</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:pattern value="\s*0x[a-fA-F0-9]{1,8},( )*0x[a-fA-F0-9]{1,4},( )*0x[a-fA-F0-9]{1,4}(,( )*\{)?(,?( )*0x[a-fA-F0-9]{1,2}){8}( )*(\})?\s*"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="GuidType2">
+ <xs:annotation>
+ <xs:documentation xml:lang="en"> A GUID must contain five different Hexadecimal character sets that are separated by a dash (-) character. </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:pattern value="\s*[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}\s*"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Hex64BitDataType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Define a Hex 64 Bit Value to be 0x[a-f0-9]{16}</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:pattern value="\s*(0x)?[a-fA-F0-9]{1,16}\s*"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="HexAddressType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Define a Hex Address, 0x[a-fA-F0-9]{1,16}</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:pattern value="\s*0x[a-fA-F0-9]{1,16}\s*"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="HexByteDataType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Define a Hex Byte Value to be 0x[a-f0-9]{2}</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:pattern value="\s*(0x)?[a-fA-F0-9]{1,2}\s*"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="HexDataType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Define a Hex Value to be 0x[a-f0-9]+</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:pattern value="\s*0x[a-fA-F0-9]+\s*"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="HexDigitType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Define a Hex Diget to be 0x[a-f0-9]</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:pattern value="\s*[a-fA-F0-9]{1}\s*"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="HexDoubleWordDataType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Define a Hex Double Word Value to be 0x[a-f0-9]{8}</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:pattern value="\s*0x[a-fA-F0-9]{1,8}\s*"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="HexWordDataType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Define a Hex Word Value to be 0x[a-f0-9]{4}</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:pattern value="\s*0x[a-fA-F0-9]{1,4}\s*"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="KeywordList">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:pattern value="\s*[a-zA-Z]+(\ *_*[a-zA-Z0-9]*)*\s*"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="KeywordType">
+ <xs:restriction base="xs:normalizedString">
+ <xs:pattern value="\s*[a-zA-Z]+(_*[a-zA-Z0-9]*)*\s*"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Paragraph">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">This describes the normal text of a paragraph that can be used in a license or description tag.</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string"/>
+ </xs:simpleType>
+ <xs:simpleType name="PathAndFilename">
+ <xs:annotation>
+ <xs:documentation xml:lang="en"> Naming convention for a path and file name</xs:documentation>
+ </xs:annotation>
+ <xs:union memberTypes="xs:normalizedString xs:anyURI"/>
+ </xs:simpleType>
+ <xs:simpleType name="Polarity">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Limit Polarity vaild values to 0 and 1</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:int">
+ <xs:pattern value="\s*0|1\s*"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Sentence">
+ <xs:annotation>
+ <xs:documentation xml:lang="en"> This data type requires two or more words </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:normalizedString">
+ <xs:pattern value="\s*(\w+\W*)+( )+(\W*\w*\W*\s*)*"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ToolsNameConvention">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">This data type is used for ToolCommand, ToolChainFamily and TagName.</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:NCName">
+ <xs:pattern value="\s*[a-zA-Z][a-zA-Z0-9]*\s*"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="UCNameType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en"> Definition of a UpperCase Name, which can be any combination of upper case characters followed by zero or more underscore and/or uppercase alphanumeric characters </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:pattern value="\s*[A-Z]+(_*[A-Z0-9]*)*\s*"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="VersionDataType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en"> Definition of a Version Number, which is one or more strings of decimal digits separated by dots. </xs:documentation>
+ <xs:documentation>
+ The algorithm to compare two versions A and B is as follows. if A==B, then A is the same version as B. Otherwise, say A is a1.a2.a3...an and B is b1.b2.b3...bn. For the first pair (ai, bi), for i less than n and i less than m, where ai is not equal to bi, if ai is less than bi, then A is less than B. If ai is greater than bi, then A is greater than B.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:pattern value="\s*\d+(\.\d+)*\s*"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Zero">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Define Zero as a vaild value</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:int">
+ <xs:pattern value="\s*0\s*"/>
+ </xs:restriction>
+ </xs:simpleType>
+</xs:schema>
diff --git a/BaseTools/Conf/XMLSchema/SurfaceArea.xsd b/BaseTools/Conf/XMLSchema/SurfaceArea.xsd new file mode 100644 index 0000000000..c941be81e7 --- /dev/null +++ b/BaseTools/Conf/XMLSchema/SurfaceArea.xsd @@ -0,0 +1,82 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://www.TianoCore.org/2007/Edk2.1" xmlns="http://www.TianoCore.org/2007/Edk2.1">
+ <!--
+ Filename: SurfaceArea.xsd
+
+ Copyright (c) 2007, Intel Corporation. All rights reserved.
+ This program and the accompanying materials
+ are licensed and made available under the terms and conditions of the BSD License
+ which may be found at http://opensource.org/licenses/bsd-license.php
+
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+ APPROVED: 05-Jun-2007
+ -->
+ <xs:include schemaLocation="FrameworkHeaders.xsd"/>
+ <xs:include schemaLocation="FrameworkDataElements.xsd"/>
+ <xs:annotation>
+ <xs:documentation xml:lang="en">This describes the valid content of a FrameworkDatabase (DB) File.</xs:documentation>
+ </xs:annotation>
+ <xs:element name="FrameworkDatabase">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" ref="FdbHeader"/>
+ <xs:element minOccurs="1" maxOccurs="1" ref="PackageList"/>
+ <xs:element minOccurs="0" maxOccurs="1" ref="FarList"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="UserExtensions"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:annotation>
+ <xs:documentation xml:lang="en">This describes the valid content for a Module Surface Area Description (MSA) file.</xs:documentation>
+ </xs:annotation>
+ <xs:element name="ModuleSurfaceArea">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" ref="MsaHeader"/>
+ <xs:element minOccurs="1" maxOccurs="1" ref="ModuleDefinitions"/>
+ <xs:element minOccurs="0" maxOccurs="1" ref="LibraryClassDefinitions"/>
+ <xs:element minOccurs="0" maxOccurs="1" ref="SourceFiles"/>
+ <xs:element minOccurs="0" maxOccurs="1" ref="BinaryFiles"/>
+ <xs:element minOccurs="0" maxOccurs="1" ref="NonProcessedFiles"/>
+ <xs:element minOccurs="0" maxOccurs="1" ref="PackageDependencies"/>
+ <xs:element minOccurs="0" maxOccurs="1" ref="Protocols"/>
+ <xs:element minOccurs="0" maxOccurs="1" ref="Events"/>
+ <xs:element minOccurs="0" maxOccurs="1" ref="Hobs"/>
+ <xs:element minOccurs="0" maxOccurs="1" ref="PPIs"/>
+ <xs:element minOccurs="0" maxOccurs="1" ref="Variables"/>
+ <xs:element minOccurs="0" maxOccurs="1" ref="BootModes"/>
+ <xs:element minOccurs="0" maxOccurs="1" ref="SystemTables"/>
+ <xs:element minOccurs="0" maxOccurs="1" ref="DataHubs"/>
+ <xs:element minOccurs="0" maxOccurs="1" ref="HiiPackages"/>
+ <xs:element minOccurs="0" maxOccurs="1" ref="Guids"/>
+ <xs:element minOccurs="0" maxOccurs="1" ref="Externs"/>
+ <xs:element minOccurs="0" maxOccurs="1" ref="PcdCoded"/>
+ <xs:element minOccurs="0" maxOccurs="1" ref="Depex"/>
+ <xs:element minOccurs="0" maxOccurs="1" ref="ModuleBuildOptions"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="UserExtensions"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:annotation>
+ <xs:documentation xml:lang="en">This describes the valid content for a Package Surface Area Description (SPD) file.</xs:documentation>
+ </xs:annotation>
+ <xs:element name="PackageSurfaceArea">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" ref="SpdHeader"/>
+ <xs:element minOccurs="1" maxOccurs="1" ref="PackageDefinitions"/>
+ <xs:element minOccurs="0" maxOccurs="1" ref="LibraryClassDeclarations"/>
+ <xs:element minOccurs="0" maxOccurs="1" ref="IndustryStdIncludes"/>
+ <xs:element minOccurs="0" maxOccurs="1" ref="MsaFiles"/>
+ <xs:element minOccurs="0" maxOccurs="1" ref="PackageHeaders"/>
+ <xs:element minOccurs="0" maxOccurs="1" ref="GuidDeclarations"/>
+ <xs:element minOccurs="0" maxOccurs="1" ref="ProtocolDeclarations"/>
+ <xs:element minOccurs="0" maxOccurs="1" ref="PpiDeclarations"/>
+ <xs:element minOccurs="0" maxOccurs="1" ref="PcdDeclarations"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="UserExtensions"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+</xs:schema>
diff --git a/BaseTools/Conf/XMLSchema/SurfaceArea.xsdconfig b/BaseTools/Conf/XMLSchema/SurfaceArea.xsdconfig new file mode 100644 index 0000000000..5d86b98fe7 --- /dev/null +++ b/BaseTools/Conf/XMLSchema/SurfaceArea.xsdconfig @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Copyright (c) 2007, Intel Corporation. All rights reserved.
+This program and the accompanying materials
+are licensed and made available under the terms and conditions of the BSD License
+which may be found at http://opensource.org/licenses/bsd-license.php
+
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+-->
+<xb:config xmlns:xb="http://xml.apache.org/xmlbeans/2004/02/xbean/config">
+ <xb:namespace uri="http://www.TianoCore.org/2007/Edk2.1">
+ <xb:package>org.tianocore</xb:package>
+ </xb:namespace>
+</xb:config>
+
diff --git a/BaseTools/Conf/XMLSchema/WorkspaceContent.xsd b/BaseTools/Conf/XMLSchema/WorkspaceContent.xsd new file mode 100644 index 0000000000..1c9491a5e6 --- /dev/null +++ b/BaseTools/Conf/XMLSchema/WorkspaceContent.xsd @@ -0,0 +1,409 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Filename: WorkspaceContent.xsd
+
+ Copyright (c) 2008, Intel Corporation. All rights reserved.
+
+ This program and the accompanying materials are licensed and made available
+ under the terms and conditions of the BSD License which may be found at
+ http://opensource.org/licenses/bsd-license.php
+
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+-->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ elementFormDefault="qualified"
+ targetNamespace="http://edk2.TianoCore.org/2008/1.0"
+ xmlns="http://edk2.TianoCore.org/2008/1.0">
+ <xs:annotation>
+ <xs:documentation xml:lang="en-us">This document covers the
+ WorkspaceContent.xml file that tracks what has been installed into an EDK
+ II development WORKSPACE.</xs:documentation>
+ </xs:annotation>
+ <xs:element name="WorkspaceContent">
+ <xs:annotation>
+ <xs:documentation xml:lang="en-us"> This file describes the distributions,
+ packages, stand-alone (non-package) modules and miscellaneous files that
+ have been installed in THIS WORKSPACE. Additionally, any tools that are
+ installed as part of a distribution are tracked (tools are not required
+ to be installed within a WORKSPACE.) </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="Header" minOccurs="1" maxOccurs="1">
+ <xs:annotation>
+ <xs:documentation xml:lang="en-us"> This section tracks required
+ information about this WORKSPACE. </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="DistributionPackage" minOccurs="1"
+ maxOccurs="unbounded">
+ <xs:annotation>
+ <xs:documentation xml:lang="en-us"> The list of UEFI/PI distribution
+ packages that have been installed in this WORKSPACE.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="Header">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="1" name="Name"
+ type="xs:normalizedString">
+ <xs:annotation>
+ <xs:documentation xml:lang="en-us"> This User Interface Name can be
+ entered during initialization of a WORKSPACE to permit a developer
+ to uniquely identify a WORKSPACE. </xs:documentation>
+ <xs:documentation xml:lang="en-us"> This value can be used by report
+ generators. </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="1" maxOccurs="1" name="AbsolutePath"
+ type="xs:anyURI">
+ <xs:annotation>
+ <xs:documentation xml:lang="en-us"> When the WORKSPACE is first
+ initialized, this is the absolute path to the WORKSPACE. If the
+ user moves or re-names the directory, the RmPkg tool will need to
+ verify the content of this WORKSPACE before removing any content.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="1" maxOccurs="1" name="LastModifiedDate"
+ type="xs:dateTime">
+ <xs:annotation>
+ <xs:documentation xml:lang="en-us"> The date and time of the last
+ Package Installation or Removal. The format is:
+ YYYY-MM-DDThh:mm:ss, for example: 2001-01-31T13:30:00 (note the T
+ character separator between the calendar date and the time.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="1" maxOccurs="1"
+ name="WorkspaceContentSpecification" default="1.0" type="xs:decimal"
+ />
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+
+
+
+ <xs:element name="ModuleList">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="Module">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="Name" minOccurs="1" maxOccurs="1">
+ <xs:annotation>
+ <xs:documentation xml:lang="en-us"> The User Interface Name of
+ the module. </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="xs:normalizedString">
+ <xs:attribute name="BaseName" type="xs:NCName"
+ use="required">
+ <xs:annotation>
+ <xs:documentation xml:lang="en-us"> The BaseName is
+ used to create files and folders during a build, and
+ is used by packaging tools as a keyword to create
+ the INF file. </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element ref="GUID" minOccurs="1" maxOccurs="1">
+ <xs:annotation>
+ <xs:documentation xml:lang="en-us"> This is the GUID of the
+ module. Backward compatible versions of a module can use the
+ same GUID, however the version attribute must be changed
+ (incrementally.) Non-backward compatible versions of a
+ module must also provide a new GUID, while resetting the
+ version attribute is optional. </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="InstalledFolder" minOccurs="1" maxOccurs="1"
+ type="xs:anyURI">
+ <xs:annotation>
+ <xs:documentation xml:lang="en-us"> This is the WORKSPACE
+ relative path that the Module was installed in.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="InfFilename" minOccurs="1" maxOccurs="1"
+ type="xs:anyURI">
+ <xs:annotation>
+ <xs:documentation xml:lang="en-us"> This is filename of the
+ INF file created in the InstalledFolder (listed above)
+ during installation. </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="DistributionPackage">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" name="Name">
+ <xs:annotation>
+ <xs:documentation xml:lang="en-us"> The User Interface Name of the
+ distribution. </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="xs:normalizedString">
+ <xs:attribute name="BaseName" type="xs:NCName" use="required">
+ <xs:annotation>
+ <xs:documentation xml:lang="en-us"> This is the actual
+ BaseName used during the installation. Since users may
+ change the Distribution Package's default BaseName (used
+ to create the PKG and MANIFEST files) this is the real
+ name used to create the files. </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element ref="GUID" minOccurs="1" maxOccurs="1">
+ <xs:annotation>
+ <xs:documentation xml:lang="en-us"> This is the GUID of the
+ distribution, backward compatible versions of a distribution can
+ use the same GUID, however the version attribute must be changed
+ (incrementally.) Non-backward compatible versions of a
+ distribution must also provide a new GUID, while resetting the
+ version attribute is optional. </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="1" maxOccurs="1" name="PkgFilename"
+ type="xs:anyURI">
+ <xs:annotation>
+ <xs:documentation xml:lang="en-us"> This is the filename of the XML
+ distribution package surface area (PKG) file that was stored in
+ the Conf/Pkgs folder of the WORKSPACE for this distribution
+ package. </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="1" maxOccurs="1" name="ManifestFilename"
+ type="xs:anyURI">
+ <xs:annotation>
+ <xs:documentation xml:lang="en-us"> This is the filename of the
+ distribution package manifest (.manifest) file that was created
+ and stored in the Conf/Pkgs folder of the WORKSPACE for this
+ distribution package. The InstallPkg tool must create this file
+ using the extracted locations of the content zip file (or,
+ alternatively, the user can create the file by redirecting the
+ output of the zip -Tv Contents.zip.) </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="1" maxOccurs="1" name="InstalledDate"
+ type="xs:dateTime" />
+ <xs:element name="DistributionProperties" minOccurs="0" maxOccurs="1"
+ nillable="true">
+ <xs:annotation>
+ <xs:documentation xml:lang="en-us"> This section tracks information
+ and content that is not associated with either packages or
+ modules, or is not required for building packages or modules.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:attribute name="ReadOnly" type="xs:boolean" default="false"
+ use="optional">
+ <xs:annotation>
+ <xs:documentation xml:lang="en-us">If set to true, all content
+ within this distribution package should NOT be
+ modified.</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="RePackage" type="xs:boolean" default="false"
+ use="optional">
+ <xs:annotation>
+ <xs:documentation xml:lang="en-us">If set to true, then the
+ content can be repackaged into another distribution
+ package.</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="ModifiedToolsDef" type="xs:boolean"
+ default="false" use="optional">
+ <xs:annotation>
+ <xs:documentation xml:lang="en-us">If set to true, then either
+ the distribution or one of its packages has a user extensions
+ section that modified the tools_def.txt file.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="ProvidesTools" type="xs:boolean" default="false"
+ use="optional">
+ <xs:annotation>
+ <xs:documentation xml:lang="en-us"> This is used to identify a
+ distribution that provides tools that may or may not be
+ installed in a WORKSPACE. </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="ProvidesMiscellaneousFiles" type="xs:boolean"
+ default="false" use="optional">
+ <xs:annotation>
+ <xs:documentation xml:lang="en-us"> This is used to identify a
+ distribution that provides miscellaneous files that must be
+ installed in a WORKSPACE. </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="UnknownUserExtensions" type="xs:boolean"
+ default="false" use="optional">
+ <xs:annotation>
+ <xs:documentation xml:lang="en-us"> This is used to identify a
+ distribution that has a UserExtensions section at the
+ Distribution, Package or Module level that uses an Identifier
+ other than BuildOptions, ToolsDef or DistributionPackage.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="PackageList" minOccurs="0" maxOccurs="1">
+ <xs:annotation>
+ <xs:documentation xml:lang="en-us"> This section tracks individual
+ packages (collections of related items.) Each package listed in
+ this section must have a DEC file associated with it.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="Package" minOccurs="1" maxOccurs="unbounded">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="Name" minOccurs="1" maxOccurs="1">
+ <xs:annotation>
+ <xs:documentation xml:lang="en-us"> The User Interface
+ Name of the package. </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="xs:normalizedString">
+ <xs:attribute name="BaseName" type="xs:NCName"
+ use="required">
+ <xs:annotation>
+ <xs:documentation xml:lang="en-us"> The BaseName
+ is used to create files and folders during a
+ build, and is used by packaging tools as a
+ keyword to create the DEC file.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element ref="GUID" minOccurs="1" maxOccurs="1">
+ <xs:annotation>
+ <xs:documentation xml:lang="en-us"> This is the GUID of
+ the package, backward compatible versions of a package
+ can use the same GUID, however the version attribute
+ must be changed (incrementally.) Non-backward
+ compatible versions of a package must also provide a
+ new GUID, while resetting the version attribute is
+ optional. </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="InstalledFolder" type="xs:anyURI"
+ minOccurs="1" maxOccurs="1">
+ <xs:annotation>
+ <xs:documentation xml:lang="en-us"> This is used to
+ track the actual installation location, relative to
+ the WORKSPACE. During an installation, the user may be
+ presented with an option to relocate package content
+ from the ZIP portion of the archive into a different
+ location. </xs:documentation>
+ <xs:documentation> Any installation tools must modify
+ this value if the location is different from the
+ default location. </xs:documentation>
+ <xs:documentation> Any removal tools must check this
+ value to locate correctly, the items that will be
+ removed. </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="DecFilename" minOccurs="1" maxOccurs="1"
+ type="xs:anyURI">
+ <xs:annotation>
+ <xs:documentation xml:lang="en-us"> This is the filename
+ of the package declaration (DEC) filename created
+ during installation in the InstalledFolder listed
+ above. </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="ModuleList" minOccurs="0" maxOccurs="1">
+ <xs:annotation>
+ <xs:documentation xml:lang="en-us"> This section is used
+ to track the actual installation location, relative to
+ the WORKSPACE. Every module that is part of this
+ package must be listed here. During an installation,
+ the user may be presented with an option to relocate
+ module content from the ZIP portion of the archive
+ into a different location, the installation tools must
+ modify this value if the location is different from
+ the default location. Any removal tools must check
+ this value to locate correctly, the items that will be
+ removed. </xs:documentation>
+ <xs:documentation xml:lang="en-us"> The name of any INF
+ files that were created during the installation of a
+ distribution must also be listed in this section.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element ref="ModuleList" minOccurs="0" maxOccurs="1">
+ <xs:annotation>
+ <xs:documentation xml:lang="en-us"> This section is used to record
+ distribution packages that contain modules that are not part of a
+ package. Modules that are part of packages are listed under the
+ Package element of the PackageList section. </xs:documentation>
+ <xs:documentation xml:lang="en-us"> Module only distribution will
+ typically be for binary only modules, like the enhanced FAT
+ driver. </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="GUID">
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="RegistryFormatGuid">
+ <xs:attribute name="Version" type="xs:decimal" use="required" />
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+
+ <!-- Simple Types that further restrict allowed content. -->
+
+ <xs:simpleType name="RegistryFormatGuid">
+ <xs:annotation>
+ <xs:documentation xml:lang="en-us"> A Registry format GUID must contain
+ five different Hexadecimal character sets that are separated by a dash
+ (-) character. </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:normalizedString">
+ <xs:pattern
+ value="\s*[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}\s*"
+ />
+ </xs:restriction>
+ </xs:simpleType>
+
+</xs:schema>
diff --git a/BaseTools/Conf/build_rule.template b/BaseTools/Conf/build_rule.template new file mode 100644 index 0000000000..7c765d46b0 --- /dev/null +++ b/BaseTools/Conf/build_rule.template @@ -0,0 +1,533 @@ +#
+# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
+# Portions copyright (c) 2008 - 2010, Apple Inc. All rights reserved.<BR>
+# This program and the accompanying materials
+# are licensed and made available under the terms and conditions of the BSD License
+# which accompanies this distribution. The full text of the license may be found at
+# http://opensource.org/licenses/bsd-license.php
+
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+#
+
+## Syntax
+#
+# "*" is used to indicate that the source files will be processed at the same time.
+# "?" is used to indicate that the source files will be processed one by one.
+#
+# "[" <File-Type>[.<Build-Type>][.<Arch>][, <File-Type>[.<Build-Type>][.<Arch>]] "]" <EOL>
+# <InputFile[.<ToolChainFamily>]> <EOL>
+# (?|*).<File-Extension> [(\n|,) (?|*).<File-Extension>]
+#
+# <OutputFile[.<ToolChainFamily>]> <EOL>
+# <FileFullPath>
+#
+# <ExtraDependency>
+# <FileFullPath>
+#
+# <Command[.<ToolChainFamily>]> <EOL>
+# <Command1>
+# [<Command2>]
+#
+# <Build-Type> is the MODULE_TYPE in EDK2 or COMPONENT_TYPE in EDK.
+# Missing <InputFile> will cause an exception and break build.
+# Missing <Command> will cause that related build target won't be generated but
+# won't break build.
+#
+
+## Placeholders for string substitution
+#
+# ${src} Source file(s) to be built (full path)
+# ${s_path} Source file directory (absolute path)
+# ${s_dir} Source file relative directory within a module
+# (Note: ${s_dir} is always equals to "." if source file is given in absolute path.)
+# ${s_name} Source file name without path
+# ${s_base} Source file name without extension and path
+# ${s_ext} Source file extension
+#
+# ${dst} Destination file(s) built from ${src} (full path)
+# ${d_path} Destination file directory (absolute path)
+# ${d_name} Destination file name without path
+# ${d_base} Destination file name without extension and path
+# ${d_ext} Destination file extension
+#
+# (+) Directory separator
+#
+
+## Macro
+# $(WORKSPACE) Workspace directory
+# $(OUTPUT_DIR) Directory for intermediate files for building a module
+# $(DEBUG_DIR) Directory for files used to debug a module
+# $(BUILD_DIR) All files for building a platform will be put in this directory
+# $(BIN_DIR) Common directory for executable files
+# $(FV_DIR) Directory to store flash image files
+# $(INC) Search path of current module
+# $(INC_LIST) A file containing search pathes of current module
+# $(LIBS) Static library files of current module
+# $(<tool>_FLAGS) Tools flags of current module
+# $(MODULE_NAME) Current module name
+# $(MODULE_TYPE) Current module type
+# $(MODULE_GUID) Current module guid
+# $(ARCH) Architecture of current module
+# $(TOOLCHAIN) Toolchain used to build current module
+# $(TARGET) Target of current module (DEBUG/RELEASE)
+# $(<tool>) Path of tool
+# $(EDK_TOOLS_PATH) Path of build tools
+# $(<FILE_TYPES>) File list of each file type
+# (Note: The macro name is derived from file type name. For example,
+# C-Code-File will have C_CODE_FILES macro.)
+# $(<FILE_TYPES_LIST>) Macro point to a file containing list of files of a file type
+# (
+# Note: The macro and file name are derived from file type name.
+# For example, C-Code-File will have C_CODE_FILES_LIST macro pointing
+# to $(OUTPUT_DIR)/c_code_files.lst. The list file and macro name
+# will be generated only when this macro is used in command line.
+# This is intended to get over the long command line limitation.
+# )
+#
+# $(CP) copy command
+# $(MV) move command
+# $(RM) delete command
+# $(MD) create dir command
+# $(RD) remove dir command
+#
+
+## Reserved File-Type
+#
+# Don't change following names of file types and their associated files,
+# which are also used in tools' code
+#
+# C-Code-File
+# C-Header-File
+# Dynamic-Library-File
+# Static-Library-File
+# Visual-Form-Representation-File
+# Unicode-Text-File
+#
+
+[C-Code-File]
+ <InputFile>
+ ?.c
+ ?.C
+ ?.cc
+ ?.CC
+ ?.cpp
+ ?.Cpp
+ ?.CPP
+
+ <ExtraDependency>
+ $(MAKE_FILE)
+
+ <OutputFile>
+ $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj
+
+ <Command.MSFT, Command.INTEL>
+ "$(CC)" /Fo${dst} $(CC_FLAGS) $(INC) ${src}
+
+ <Command.GCC, Command.RVCT>
+ # For RVCTCYGWIN CC_FLAGS must be first to work around pathing issues
+ "$(CC)" $(CC_FLAGS) -o ${dst} $(INC) ${src}
+ "$(SYMRENAME)" $(SYMRENAME_FLAGS) ${dst}
+
+ <Command.ARMGCC>
+ "$(CC)" $(CC_FLAGS) -o ${dst} $(INC) ${src}
+
+
+[C-Header-File]
+ <InputFile>
+ *.h, *.H
+
+ <OutputFile>
+
+ <Command>
+
+
+[Assembly-Code-File.COMMON.COMMON]
+ <InputFile.MSFT, InputFile.INTEL, InputFile.RVCT>
+ ?.asm, ?.Asm, ?.ASM
+
+ <InputFile.GCC>
+ ?.S, ?.s
+
+ <ExtraDependency>
+ $(MAKE_FILE)
+
+ <OutputFile>
+ $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj
+
+ <Command.MSFT, Command.INTEL>
+ "$(PP)" $(PP_FLAGS) $(INC) ${src} > ${d_path}(+)${s_base}.i
+ Trim --source-code --convert-hex -o ${d_path}(+)${s_base}.iii ${d_path}(+)${s_base}.i
+ "$(ASM)" /Fo${dst} $(ASM_FLAGS) /I${s_path} $(INC) ${d_path}(+)${s_base}.iii
+
+ <Command.GCC, Command.RVCT>
+ "$(PP)" $(PP_FLAGS) $(INC) ${src} > ${d_path}(+)${s_base}.i
+ Trim --source-code -o ${d_path}(+)${s_base}.iii ${d_path}(+)${s_base}.i
+ # For RVCTCYGWIN ASM_FLAGS must be first to work around pathing issues
+ "$(ASM)" $(ASM_FLAGS) -o ${dst} $(INC) ${d_path}(+)${s_base}.iii
+
+[Assembly-Code-File.COMMON.IPF]
+ <InputFile>
+ ?.s
+
+ <ExtraDependency>
+ $(MAKE_FILE)
+
+ <OutputFile>
+ $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj
+
+ <Command.MSFT, Command.INTEL>
+ "$(PP)" $(PP_FLAGS) $(INC) ${src} > ${d_path}(+)${s_base}.i
+ Trim --source-code -o ${d_path}(+)${s_base}.iii ${d_path}(+)${s_base}.i
+ # For RVCTCYGWIN ASM_FLAGS must be first to work around pathing issues
+ "$(ASM)" $(ASM_FLAGS) -o ${dst} ${d_path}(+)${s_base}.iii
+
+[Visual-Form-Representation-File]
+ <InputFile>
+ ?.vfr
+ ?.Vfr
+ ?.VFR
+
+ <ExtraDependency>
+ $(MAKE_FILE)
+
+ <OutputFile>
+ $(DEBUG_DIR)(+)${s_dir}(+)${s_base}.c
+
+ <Command>
+ -$(MD) $(OUTPUT_DIR)(+)${s_dir} > NUL 2>&1
+ "$(VFRPP)" $(VFRPP_FLAGS) $(INC) ${src} > $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.i
+ -$(MD) ${d_path} > NUL 2>&1
+ "$(VFR)" $(VFR_FLAGS) --output-directory ${d_path} $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.i
+
+[Object-File]
+ <InputFile>
+ *.obj
+ *.o
+
+ <OutputFile>
+ $(OUTPUT_DIR)(+)$(MODULE_NAME).lib
+
+ <Command.MSFT, Command.INTEL>
+ "$(SLINK)" $(SLINK_FLAGS) /OUT:${dst} @$(OBJECT_FILES_LIST)
+
+ <Command.GCC>
+ "$(SLINK)" -cr ${dst} $(SLINK_FLAGS) @$(OBJECT_FILES_LIST)
+
+ <Command.RVCT>
+ "$(SLINK)" $(SLINK_FLAGS) ${dst} --via $(OBJECT_FILES_LIST)
+
+ <Command.RVCTCYGWIN, Command.ARMGCC>
+ # $(OBJECT_FILES_LIST) has wrong paths for cygwin
+ "$(SLINK)" $(SLINK_FLAGS) ${dst} $(OBJECT_FILES)
+
+ <Command.XCODE>
+ "$(SLINK)" $(SLINK_FLAGS) ${dst} -filelist $(OBJECT_FILES_LIST)
+
+[Static-Library-File]
+ <InputFile>
+ *.lib
+
+ <ExtraDependency>
+ $(MAKE_FILE)
+
+ <OutputFile>
+ $(DEBUG_DIR)(+)$(MODULE_NAME).dll
+
+ <Command.MSFT, Command.INTEL>
+ "$(DLINK)" /OUT:${dst} $(DLINK_FLAGS) $(DLINK_SPATH) @$(STATIC_LIBRARY_FILES_LIST)
+
+ <Command.GCC>
+ "$(DLINK)" -o ${dst} $(DLINK_FLAGS) -\( $(DLINK_SPATH) @$(STATIC_LIBRARY_FILES_LIST) -\) $(DLINK2_FLAGS)
+ "$(OBJCOPY)" $(OBJCOPY_FLAGS) ${dst}
+
+ <Command.ARMGCC>
+ "$(DLINK)" -o ${dst} $(DLINK_FLAGS) -( $(DLINK_SPATH) $(STATIC_LIBRARY_FILES) -) $(DLINK2_FLAGS)
+
+ <Command.RVCT>
+ "$(DLINK)" $(DLINK_FLAGS) -o ${dst} $(DLINK_SPATH) --via $(STATIC_LIBRARY_FILES_LIST) $(DLINK2_FLAGS)
+
+ <Command.RVCTCYGWIN>
+ #$(STATIC_LIBRARY_FILES_LIST) has wrong paths for cygwin
+ "$(DLINK)" $(DLINK_FLAGS) -o ${dst} $(DLINK_SPATH) $(STATIC_LIBRARY_FILES) $(DLINK2_FLAGS)
+
+ <Command.XCODE>
+ "$(DLINK)" $(DLINK_FLAGS) -o ${dst} $(DLINK_SPATH) -filelist $(STATIC_LIBRARY_FILES_LIST) $(DLINK2_FLAGS)
+
+
+[Static-Library-File.USER_DEFINED]
+ <InputFile>
+ *.lib
+
+ <ExtraDependency>
+ $(MAKE_FILE)
+
+ <OutputFile>
+ $(DEBUG_DIR)(+)$(MODULE_NAME)
+
+ <Command.MSFT, Command.INTEL>
+ "$(DLINK)" $(DLINK_FLAGS) $(DLINK_SPATH) @$(STATIC_LIBRARY_FILES_LIST)
+
+ <Command.GCC>
+ "$(DLINK)" $(DLINK_FLAGS) -\( $(DLINK_SPATH) @$(STATIC_LIBRARY_FILES_LIST) -\) $(DLINK2_FLAGS)
+
+ <Command.ARMGCC>
+ "$(DLINK)" $(DLINK_FLAGS) -( $(DLINK_SPATH) $(STATIC_LIBRARY_FILES) -) $(DLINK2_FLAGS)
+
+ <Command.RVCT>
+ "$(DLINK)" $(DLINK_FLAGS) -o ${dst} $(DLINK_SPATH) --via $(STATIC_LIBRARY_FILES_LIST) $(DLINK2_FLAGS)
+
+ <Command.RVCTCYGWIN>
+ #$(STATIC_LIBRARY_FILES_LIST) has the wrong paths for cygwin
+ "$(DLINK)" $(DLINK_FLAGS) -o ${dst} $(DLINK_SPATH) $(STATIC_LIBRARY_FILES) $(DLINK2_FLAGS)
+
+ <Command.XCODE>
+ "$(DLINK)" -o ${dst} $(DLINK_FLAGS) $(DLINK_SPATH) -filelist $(STATIC_LIBRARY_FILES_LIST) $(DLINK2_FLAGS)
+
+
+[Dynamic-Library-File]
+ <InputFile>
+ ?.dll
+
+ <OutputFile>
+ $(DEBUG_DIR)(+)$(MODULE_NAME).efi
+
+ <Command.MSFT, Command.INTEL, Command.RVCT, Command.ARMGCC>
+ "$(GENFW)" -e $(MODULE_TYPE) -o ${dst} ${src} $(GENFW_FLAGS)
+ $(CP) ${dst} $(OUTPUT_DIR)
+ $(CP) ${dst} $(BIN_DIR)
+ -$(CP) $(DEBUG_DIR)(+)*.map $(OUTPUT_DIR)
+
+ <Command.GCC>
+ $(OBJCOPY) --only-keep-debug ${src} $(BIN_DIR)(+)$(MODULE_NAME).debug
+ $(OBJCOPY) --strip-unneeded ${src}
+ $(OBJCOPY) --add-gnu-debuglink=$(BIN_DIR)(+)$(MODULE_NAME).debug ${src}
+ "$(GENFW)" -e $(MODULE_TYPE) -o ${dst} ${src} $(GENFW_FLAGS)
+ $(CP) ${dst} $(OUTPUT_DIR)
+ $(CP) ${dst} $(BIN_DIR)
+ -$(CP) $(DEBUG_DIR)(+)*.map $(OUTPUT_DIR)
+
+ <Command.XCODE>
+ # tool to convert Mach-O to PE/COFF
+ "$(MTOC)" -subsystem $(MODULE_TYPE) $(MTOC_FLAGS) ${src} $(DEBUG_DIR)(+)$(MODULE_NAME).pecoff
+ # create symbol file for GDB debug
+ -$(DSYMUTIL) ${src}
+ "$(GENFW)" -e $(MODULE_TYPE) -o ${dst} $(DEBUG_DIR)(+)$(MODULE_NAME).pecoff $(GENFW_FLAGS)
+ $(CP) ${dst} $(OUTPUT_DIR)
+ $(CP) ${dst} $(BIN_DIR)
+ -$(CP) $(DEBUG_DIR)(+)*.map $(OUTPUT_DIR)
+
+[Dependency-Expression-File]
+ <InputFile>
+ ?.dxs, ?.Dxs, ?.DXS
+
+ <OutputFile>
+ $(OUTPUT_DIR)(+)$(MODULE_NAME).depex
+
+ <ExtraDependency>
+ $(MAKE_FILE)
+
+ <Command>
+ "$(PP)" $(APP_FLAGS) $(INC) ${src} > $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.i
+ Trim --source-code -o $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.iii $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.i
+ GenDepex -t $(MODULE_TYPE) -o ${dst} $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.iii
+
+[Acpi-Source-Language-File]
+ <InputFile>
+ ?.asl, ?.Asl, ?.ASL
+
+ <OutputFile>
+ $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.aml
+
+ <ExtraDependency>
+ $(MAKE_FILE)
+
+ <Command.MSFT, Command.INTEL>
+ Trim --asl-file -o $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.i -i $(INC_LIST) ${src}
+ "$(ASLPP)" $(ASLPP_FLAGS) $(INC) /I${s_path} $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.i > $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.iii
+ Trim --source-code -l -o $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.iiii $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.iii
+ "$(ASL)" $(ASL_FLAGS) $(ASL_OUTFLAGS)${dst} $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.iiii
+
+ <Command.GCC>
+ Trim --asl-file -o $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.i -i $(INC_LIST) ${src}
+ "$(ASLPP)" $(ASLPP_FLAGS) $(INC) -I${s_path} $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.i > $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.iii
+ "$(ASL)" $(ASL_FLAGS) $(ASL_OUTFLAGS)${dst} $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.iii
+
+[C-Code-File.AcpiTable]
+ <InputFile>
+ ?.c
+
+ <OutputFile>
+ $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.acpi
+
+ <ExtraDependency>
+ $(MAKE_FILE)
+
+ <Command.MSFT, Command.INTEL>
+ "$(ASLCC)" /Fo$(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj $(ASLCC_FLAGS) $(INC) ${src}
+ "$(ASLDLINK)" /OUT:$(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.dll $(ASLDLINK_FLAGS) $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj
+ "$(GENFW)" -o ${dst} -c $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.dll $(GENFW_FLAGS)
+
+ <Command.GCC>
+ "$(ASLCC)" -o $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj $(CC_FLAGS) $(ASLCC_FLAGS) $(INC) ${src}
+ "$(ASLDLINK)" -o $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.dll $(ASLDLINK_FLAGS) $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj
+ "$(GENFW)" -o ${dst} -c $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.dll $(GENFW_FLAGS)
+
+[Acpi-Table-Code-File]
+ <InputFile>
+ ?.aslc, ?.act
+
+ <OutputFile>
+ $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.acpi
+
+ <ExtraDependency>
+ $(MAKE_FILE)
+
+ <Command.MSFT, Command.INTEL>
+ "$(ASLCC)" /Fo$(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj $(ASLCC_FLAGS) $(INC) ${src}
+ "$(ASLDLINK)" /OUT:$(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.dll $(ASLDLINK_FLAGS) $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj
+ "$(GENFW)" -o ${dst} -c $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.dll $(GENFW_FLAGS)
+
+ <Command.GCC>
+ "$(ASLCC)" -o $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj $(CC_FLAGS) $(ASLCC_FLAGS) $(INC) ${src}
+ "$(ASLDLINK)" -o $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.dll $(ASLDLINK_FLAGS) $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj
+ "$(GENFW)" -o ${dst} -c $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.dll $(GENFW_FLAGS)
+
+ <Command.XCODE>
+ "$(ASLCC)" -o $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj $(ASLCC_FLAGS) $(INC) ${src}
+ "$(ASLDLINK)" -o $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.dll $(ASLDLINK_FLAGS) $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj
+ "$(MTOC)" -subsystem $(MODULE_TYPE) $(MTOC_FLAGS) $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.dll $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.efi
+ "$(GENFW)" -o ${dst} -c $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.efi $(GENFW_FLAGS)
+
+
+[Masm16-Code-File]
+ <InputFile>
+ ?.asm16, ?.Asm16, ?.ASM16
+
+ <ExtraDependency>
+ $(MAKE_FILE)
+
+ <OutputFile>
+ $(OUTPUT_DIR)(+)${s_base}.com
+
+ <Command.MSFT, Command.INTEL>
+ cd $(OUTPUT_DIR)(+)${s_dir}
+ "$(ASM16)" /nologo /c /omf $(INC) /Fo$(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj ${src}
+ "$(ASMLINK)" $(ASMLINK_FLAGS) $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj,${dst},,,,
+
+ <Command.GCC>
+ "$(PP)" $(PP_FLAGS) $(INC) ${src} > ${d_path}(+)${s_base}.i
+ Trim --source-code -o ${d_path}(+)${s_base}.iii ${d_path}(+)${s_base}.i
+ "$(ASM)" -o $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj $(ASM_FLAGS) $(INC) ${d_path}(+)${s_base}.iii
+ "$(DLINK)" -o ${dst} $(DLINK_FLAGS) -( $(DLINK_SPATH) $(LIBS) $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj -)
+
+ <Command.XCODE>
+ "$(PP)" $(PP_FLAGS) $(INC) ${src} > ${d_path}(+)${s_base}.i
+ Trim --source-code -o ${d_path}(+)${s_base}.iii ${d_path}(+)${s_base}.i
+ "$(ASM)" -o $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj $(ASM_FLAGS) $(INC) ${d_path}(+)${s_base}.iii
+ "$(SLINK)" $(SLINK_FLAGS) $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.slib $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj
+ otool -t $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.slib | hex2bin.py ${dst}
+
+
+[Microcode-File.USER_DEFINED, Microcode-File.Microcode]
+ <InputFile>
+ ?.txt, ?.TXT, ?.Txt, ?.mut, ?.inc
+
+ <OutputFile>
+ $(OUTPUT_DIR)(+)${s_base}.mcb
+
+ <Command>
+ "$(GENFW)" -o ${dst} -m ${src} $(GENFW_FLAGS)
+
+[Microcode-Binary-File]
+ <InputFile>
+ *.mcb
+
+ <ExtraDependency>
+ $(MAKE_FILE)
+
+ <OutputFile>
+ $(OUTPUT_DIR)(+)$(MODULE_NAME).bin
+
+ <Command>
+ "$(GENFW)" -o ${dst} -j $(MICROCODE_BINARY_FILES) $(GENFW_FLAGS)
+ -$(CP) ${dst} $(BIN_DIR)
+
+[EFI-Image-File]
+ <InputFile>
+ ?.efi, ?.Efi, ?.EFI
+
+ <OutputFile>
+
+ <Command>
+
+[Unicode-Text-File]
+ <InputFile>
+ *.uni, *.Uni, *.UNI
+
+ <OutputFile>
+ $(DEBUG_DIR)(+)AutoGen.c
+ $(DEBUG_DIR)(+)$(MODULE_NAME)StrDefs.h
+
+ <Command>
+
+[Efi-Image.UEFI_OPTIONROM]
+ <InputFile>
+ ?.efi, ?.EFI, ?.Efi
+
+ <OutputFile>
+ $(BIN_DIR)(+)$(MODULE_NAME).rom
+
+ <Command>
+ $(OPTROM) -i $(PCI_DEVICE_ID) -f $(PCI_VENDOR_ID) -l $(PCI_CLASS_CODE) -r $(PCI_REVISION) -o $dst $(OPTROM_FLAGS) $src
+
+[Unicode-Text-File.UEFI_HII]
+ <InputFile>
+ *.uni, *.Uni, *.UNI
+
+ <OutputFile>
+ $(OUTPUT_DIR)(+)$(MODULE_NAME)StrDefs.hpk
+ $(DEBUG_DIR)(+)$(MODULE_NAME)StrDefs.h
+
+ <Command>
+
+[Visual-Form-Representation-File.UEFI_HII]
+ <InputFile>
+ ?.vfr
+ ?.Vfr
+ ?.VFR
+
+ <ExtraDependency>
+ $(MAKE_FILE)
+
+ <OutputFile>
+ $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.hpk
+
+ <Command>
+ -$(MD) $(OUTPUT_DIR)(+)${s_dir} > NUL 2>&1
+ "$(VFRPP)" $(VFRPP_FLAGS) $(INC) ${src} > $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.i
+ -$(MD) $(OUTPUT_DIR)(+)${s_dir} > NUL 2>&1
+ "$(VFR)" $(VFR_FLAGS) --create-ifr-package --output-directory $(OUTPUT_DIR)(+)${s_dir} $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.i
+
+[Hii-Binary-Package.UEFI_HII]
+ <InputFile>
+ *.hpk
+
+ <OutputFile.MSFT, OutputFile.INTEL, OutputFile.GCC>
+ $(OUTPUT_DIR)(+)$(MODULE_NAME)hii.lib
+
+ <OutputFile.XCODE, OutputFile.RVCT, OutputFile.ARMGCC>
+ $(OUTPUT_DIR)(+)$(MODULE_NAME)hii.rc
+
+ <Command.MSFT, Command.INTEL>
+ "$(GENFW)" -o $(OUTPUT_DIR)(+)$(MODULE_NAME)hii.rc -g $(MODULE_GUID) --hiipackage $(HII_BINARY_PACKAGES) $(GENFW_FLAGS)
+ "$(RC)" /Fo${dst} $(OUTPUT_DIR)(+)$(MODULE_NAME)hii.rc
+
+ <Command.GCC>
+ "$(GENFW)" -o $(OUTPUT_DIR)(+)$(MODULE_NAME)hii.rc -g $(MODULE_GUID) --hiibinpackage $(HII_BINARY_PACKAGES) $(GENFW_FLAGS)
+ "$(RC)" $(RC_FLAGS) $(OUTPUT_DIR)(+)$(MODULE_NAME)hii.rc ${dst}
+
+ <Command.XCODE, Command.RVCT, Command.ARMGCC>
+ GenFw -o $(OUTPUT_DIR)(+)$(MODULE_NAME)hii.rc -g $(MODULE_GUID) --hiibinpackage $(HII_BINARY_PACKAGES)
+
+
diff --git a/BaseTools/Conf/target.template b/BaseTools/Conf/target.template new file mode 100644 index 0000000000..3c4c50ff1e --- /dev/null +++ b/BaseTools/Conf/target.template @@ -0,0 +1,69 @@ +#
+# Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
+#
+# This program and the accompanying materials
+# are licensed and made available under the terms and conditions of the BSD License
+# which accompanies this distribution. The full text of the license may be found at
+# http://opensource.org/licenses/bsd-license.php
+
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+#
+#
+# ALL Paths are Relative to WORKSPACE
+
+# Separate multiple LIST entries with a SINGLE SPACE character, do not use comma characters.
+# Un-set an option by either commenting out the line, or not setting a value.
+
+#
+# PROPERTY Type Use Description
+# ---------------- -------- -------- -----------------------------------------------------------
+# ACTIVE_PLATFORM Filename Recommended Specify the WORKSPACE relative Path and Filename
+# of the platform description file that will be used for the
+# build. This line is required if and only if the current
+# working directory does not contain one or more description
+# files.
+ACTIVE_PLATFORM = Nt32Pkg/Nt32Pkg.dsc
+
+# TARGET List Optional Zero or more of the following: DEBUG, RELEASE,
+# UserDefined; separated by a space character.
+# If the line is missing or no value is specified, all
+# valid targets specified in the platform description file
+# will attempt to be built. The following line will build all
+# platform targets.
+TARGET = DEBUG
+
+# TARGET_ARCH List Optional What kind of architecture is the binary being target for.
+# One, or more, of the following, IA32, IPF, X64, EBC or ARM.
+# Multiple values can be specified on a single line, using
+# space charaters to separate the values. These are used
+# during the parsing of an platform description file,
+# restricting the build output target(s.)
+# The Build Target ARCH is determined by a logical AND of:
+# platform BuildOptions: <SupportedArchitectures> tag
+# If not specified, then all valid architectures specified
+# in the platform file, for which tools are available, will be
+# built.
+TARGET_ARCH = IA32
+
+# TOOL_DEFINITION_FILE Filename Optional Specify the name of the filename to use for specifying
+# the tools to use for the build. If not specified,
+# tools_def.txt will be used for the build. This file
+# MUST be located in the WORKSPACE/Conf directory.
+TOOL_CHAIN_CONF = Conf/tools_def.txt
+
+# TAGNAME List Optional Specify the name(s) of the tools_def.txt TagName to use.
+# If not specified, all applicable TagName tools will be
+# used for the build. The list uses space character separation.
+TOOL_CHAIN_TAG = MYTOOLS
+
+# MAX_CONCURRENT_THREAD_NUMBER NUMBER Optional The number of concurrent threads. Recommend to set this
+# value to one more than the number of your compurter
+# cores or CPUs. Less than 2 means disable multithread build.
+MAX_CONCURRENT_THREAD_NUMBER = 1
+
+# Build rules definition
+#
+#
+BUILD_RULE_CONF = Conf/build_rule.txt
+
diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template new file mode 100644 index 0000000000..f54d507783 --- /dev/null +++ b/BaseTools/Conf/tools_def.template @@ -0,0 +1,3587 @@ +#
+# Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
+# Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
+#
+# This program and the accompanying materials
+# are licensed and made available under the terms and conditions of the BSD License
+# which accompanies this distribution. The full text of the license may be found at
+# http://opensource.org/licenses/bsd-license.php
+#
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+#
+
+IDENTIFIER = Default TOOL_CHAIN_CONF
+
+# common path macros
+DEFINE VS2003_BIN = C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin
+DEFINE VS2003_DLL = C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\IDE
+
+DEFINE VS2005_BIN = C:\Program Files\Microsoft Visual Studio 8\Vc\bin
+DEFINE VS2005_DLL = C:\Program Files\Microsoft Visual Studio 8\Common7\IDE;DEF(VS2005_BIN)
+DEFINE VS2005_BINX64 = C:\Program Files\Microsoft Visual Studio 8\Vc\bin\x86_amd64
+DEFINE VS2005_BIN64 = C:\Program Files\Microsoft Visual Studio 8\Vc\bin\x86_ia64
+
+DEFINE VS2005x86_BIN = C:\Program Files (x86)\Microsoft Visual Studio 8\Vc\bin
+DEFINE VS2005x86_DLL = C:\Program Files (x86)\Microsoft Visual Studio 8\Common7\IDE;DEF(VS2005x86_BIN)
+DEFINE VS2005x86_BINX64 = DEF(VS2005x86_BIN)\x86_amd64
+DEFINE VS2005x86_BIN64 = DEF(VS2005x86_BIN)\x86_ia64
+
+DEFINE VS2008_BIN = C:\Program Files\Microsoft Visual Studio 9.0\Vc\bin
+DEFINE VS2008_DLL = C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE;DEF(VS2008_BIN)
+DEFINE VS2008_BINX64 = DEF(VS2008_BIN)\x86_amd64
+DEFINE VS2008_BIN64 = DEF(VS2008_BIN)\x86_ia64
+
+DEFINE VS2008x86_BIN = C:\Program Files (x86)\Microsoft Visual Studio 9.0\Vc\bin
+DEFINE VS2008x86_DLL = C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE;DEF(VS2008x86_BIN)
+DEFINE VS2008x86_BINX64 = DEF(VS2008x86_BIN)\x86_amd64
+DEFINE VS2008x86_BIN64 = DEF(VS2008x86_BIN)\x86_ia64
+
+DEFINE WINSDK_VERSION = v6.0A
+DEFINE WINSDK_BIN = c:\Program Files\Microsoft SDKs\Windows\DEF(WINSDK_VERSION)\bin
+DEFINE WINSDKx86_BIN = c:\Program Files (x86)\Microsoft SDKs\Windows\DEF(WINSDK_VERSION)\bin
+
+# These defines are needed for certain Microsoft Visual Studio tools that
+# are used by other toolchains. An example is that ICC on Windows normally
+# uses Microsoft's nmake.exe.
+
+# Some MS_VS_BIN options: DEF(VS2003_BIN), DEF(VS2005_BIN), DEF(VS2005x86_BIN)
+DEFINE MS_VS_BIN = DEF(VS2005_BIN)
+# Some MS_VS_DLL options: DEF(VS2003_DLL), DEF(VS2005_DLL), DEF(VS2005x86_DLL)
+DEFINE MS_VS_DLL = DEF(VS2005_DLL)
+
+DEFINE WINDDK_BIN16 = C:\WINDDK\3790.1830\bin\bin16
+DEFINE WINDDK_BIN32 = C:\WINDDK\3790.1830\bin\x86
+DEFINE WINDDK_BINX64 = C:\WINDDK\3790.1830\bin\win64\x86\amd64
+DEFINE WINDDK_BIN64 = C:\WINDDK\3790.1830\bin\win64\x86
+
+# NOTE: The Intel C++ Compiler for Windows requires one of the Microsoft C compiler
+# tool chains for the linker and nmake commands.
+# This configuration assumes a Windows 2003 Server DDK installation.
+DEFINE ICC_VERSION = 9.1
+#DEFINE ICC_VERSION = 10.1.021
+DEFINE ICC_BIN32 = C:\Program Files\Intel\Compiler\C++\DEF(ICC_VERSION)\IA32\Bin
+DEFINE ICC_ASM32 = C:\Program Files\Intel\Compiler\C++\DEF(ICC_VERSION)\IA32\Bin
+DEFINE ICC_BIN32x86 = C:\Program Files (x86)\Intel\Compiler\C++\DEF(ICC_VERSION)\IA32\Bin
+DEFINE ICC_ASM32x86 = C:\Program Files (x86)\Intel\Compiler\C++\DEF(ICC_VERSION)\IA32\Bin
+
+DEFINE ICC_BINX64 = C:\Program Files\Intel\Compiler\C++\DEF(ICC_VERSION)\EM64T\Bin
+DEFINE ICC_ASMX64 = C:\Program Files\Intel\Compiler\C++\DEF(ICC_VERSION)\EM64T\Bin
+DEFINE ICC_BINX64x86 = C:\Program Files (x86)\Intel\Compiler\C++\DEF(ICC_VERSION)\EM64T\Bin
+DEFINE ICC_ASMX64x86 = C:\Program Files (x86)\Intel\Compiler\C++\DEF(ICC_VERSION)\EM64T\Bin
+
+DEFINE ICC_BIN64 = C:\Program Files\Intel\Compiler\C++\DEF(ICC_VERSION)\Itanium\Bin
+DEFINE ICC_BIN64x86 = C:\Program Files (x86)\Intel\Compiler\C++\DEF(ICC_VERSION)\Itanium\Bin
+
+
+# Note: The Intel C++ Compiler 11.1 uses different installation path from previous versions
+# We use "ICC11" tag for ICC 11.1 while "ICC" tag is dedicated for eariler versions
+#
+DEFINE ICC11_VERSION = 11.1
+DEFINE ICC11_BUILD = 067
+DEFINE ICC11_BIN32 = C:\Program Files\Intel\Compiler\DEF(ICC11_VERSION)\DEF(ICC11_BUILD)\bin\ia32
+DEFINE ICC11_ASM32 = C:\Program Files\Intel\Compiler\DEF(ICC11_VERSION)\DEF(ICC11_BUILD)\bin\ia32
+DEFINE ICC11_BIN32x86 = C:\Program Files (x86)\Intel\Compiler\DEF(ICC11_VERSION)\DEF(ICC11_BUILD)\bin\ia32
+DEFINE ICC11_ASM32x86 = C:\Program Files (x86)\Intel\Compiler\DEF(ICC11_VERSION)\DEF(ICC11_BUILD)\bin\ia32
+
+DEFINE ICC11_BINX64 = C:\Program Files\Intel\Compiler\DEF(ICC11_VERSION)\DEF(ICC11_BUILD)\bin\ia32_intel64
+DEFINE ICC11_ASMX64 = C:\Program Files\Intel\Compiler\DEF(ICC11_VERSION)\DEF(ICC11_BUILD)\bin\ia32_intel64
+DEFINE ICC11_BINX64x86 = C:\Program Files (x86)\Intel\Compiler\DEF(ICC11_VERSION)\DEF(ICC11_BUILD)\bin\intel64
+DEFINE ICC11_ASMX64x86 = C:\Program Files (x86)\Intel\Compiler\DEF(ICC11_VERSION)\DEF(ICC11_BUILD)\bin\intel64
+
+DEFINE ICC11_BIN64 = C:\Program Files\Intel\Compiler\DEF(ICC11_VERSION)\DEF(ICC11_BUILD)\bin\ia32_ia64
+DEFINE ICC11_BIN64x86 = C:\Program Files (x86)\Intel\Compiler\DEF(ICC11_VERSION)\DEF(ICC11_BUILD)\bin\ia32_ia64
+
+DEFINE EBC_BIN = C:\Program Files\Intel\EBC\Bin
+DEFINE EBC_BINx86 = C:\Program Files (x86)\Intel\EBC\Bin
+
+DEFINE ELFGCC_BIN = /usr/bin
+
+#
+# Option 1: Hard coded full path to compiler suite
+DEFINE UNIXGCC_IA32_PETOOLS_PREFIX = /opt/tiano/i386-tiano-pe/i386-tiano-pe/bin/
+DEFINE UNIXGCC_X64_PETOOLS_PREFIX = /opt/tiano/x86_64-pc-mingw64/x86_64-pc-mingw64/bin/
+DEFINE UNIXGCC_IPF_PETOOLS_PREFIX = /opt/tiano/ia64-pc-elf/ia64-pc-elf/bin/
+#
+# Option 2: Use an environment variable
+#DEFINE UNIXGCC_IA32_PETOOLS_PREFIX = ENV(IA32_PETOOLS_PREFIX)
+#DEFINE UNIXGCC_X64_PETOOLS_PREFIX = ENV(X64_PETOOLS_PREFIX)
+#
+# Option 3: Install the compiler suite into your default paths
+#DEFINE UNIXGCC_IA32_PETOOLS_PREFIX = i386-pc-mingw32-
+#DEFINE UNIXGCC_X64_PETOOLS_PREFIX = x86_64-pc-mingw32-
+#
+# Option 4: Create links under the BaseTools/Bin/gcc/ARCH directory
+# Links needed: gcc, ar & ld
+#DEFINE UNIXGCC_IA32_PETOOLS_PREFIX = ENV(WORKSPACE)/BaseTools/Bin/gcc/Ia32/
+#DEFINE UNIXGCC_X64_PETOOLS_PREFIX = ENV(WORKSPACE)/BaseTools/Bin/gcc/X64/
+#
+# Option 5: Install programs under user's home directory
+#DEFINE UNIXGCC_IA32_PETOOLS_PREFIX = ENV(HOME)/programs/gcc/ia32/bin/i686-pc-mingw32-
+#DEFINE UNIXGCC_X64_PETOOLS_PREFIX = ENV(HOME)/programs/gcc/x64/bin/x86_64-pc-mingw32-
+#
+
+DEFINE CYGWIN_BIN = c:/cygwin/bin
+DEFINE CYGWIN_BINIA32 = c:/cygwin/opt/tiano/i386-tiano-pe/i386-tiano-pe/bin/
+DEFINE CYGWIN_BINX64 = c:/cygwin/opt/tiano/x86_64-pc-mingw64/x86_64-pc-mingw64/bin/
+DEFINE CYGWIN_BINIPF = c:/cygwin/opt/tiano/gcc/ipf/bin/ia64-pc-elf-
+
+DEFINE GCC44_IA32_PREFIX = /usr/bin/
+#DEFINE GCC44_IA32_PREFIX = ENV(HOME)/programs/gcc/4.4/ia32/
+DEFINE GCC44_X64_PREFIX = /usr/bin/
+#DEFINE GCC44_X64_PREFIX = ENV(HOME)/programs/gcc/4.4/x64/
+
+DEFINE GCC45_IA32_PREFIX = /usr/bin/
+DEFINE GCC45_X64_PREFIX = /usr/bin/
+
+DEFINE UNIX_IASL_BIN = /usr/bin/iasl
+#DEFINE UNIX_IASL_BIN = $(HOME)/programs/iasl
+DEFINE WIN_ASL_BIN_DIR = C:\ASL
+DEFINE WIN_IASL_BIN = DEF(WIN_ASL_BIN_DIR)\iasl.exe
+DEFINE WIN_ASL_BIN = DEF(WIN_ASL_BIN_DIR)\asl.exe
+
+DEFINE IASL_FLAGS =
+DEFINE IASL_OUTFLAGS = -p
+DEFINE MS_ASL_OUTFLAGS = /Fo=
+DEFINE MS_ASL_FLAGS =
+
+DEFINE DEFAULT_WIN_ASL_BIN = DEF(WIN_IASL_BIN)
+DEFINE DEFAULT_WIN_ASL_FLAGS = DEF(IASL_FLAGS)
+DEFINE DEFAULT_WIN_ASL_OUTFLAGS = DEF(IASL_OUTFLAGS)
+#DEFINE DEFAULT_WIN_ASL_BIN = DEF(WIN_ASL_BIN)
+#DEFINE DEFAULT_WIN_ASL_FLAGS = DEF(MS_ASL_FLAGS)
+#DEFINE DEFAULT_WIN_ASL_OUTFLAGS = DEF(MS_ASL_OUTFLAGS)
+
+DEFINE MSFT_ASLPP_FLAGS = /nologo /E /C /FIAutoGen.h
+DEFINE MSFT_ASLCC_FLAGS = /nologo /c /FIAutoGen.h /TC /Dmain=ReferenceAcpiTable
+DEFINE MSFT_ASLDLINK_FLAGS = /NODEFAULTLIB /ENTRY:ReferenceAcpiTable /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER
+
+DEFINE ICC_WIN_ASLPP_FLAGS = /nologo /E /C /FIAutoGen.h
+DEFINE ICC_WIN_ASLCC_FLAGS = /nologo /c /FIAutoGen.h /TC /Dmain=ReferenceAcpiTable
+DEFINE ICC_WIN_ASLDLINK_FLAGS = /NODEFAULTLIB /ENTRY:ReferenceAcpiTable /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /NODEFAULTLIB:libmmt /NODEFAULTLIB:libirc
+
+DEFINE IPHONE_TOOLS = /Developer/Platforms/iPhoneOS.platform/Developer
+DEFINE RVCT31_TOOLS_PATH = c:/Program Files/ARM/RVCT/Programs/3.1/569/win_32-pentium
+DEFINE RVCT31CYGWIN_TOOLS_PATH = /cygdrive/c/Program Files/ARM/RVCT/Programs/3.1/569/win_32-pentium
+
+DEFINE SOURCERY_TOOLS = c:/Program Files/CodeSourcery/Sourcery G++ Lite/bin
+DEFINE SOURCERY_CYGWIN_TOOLS = /cygdrive/c/Program Files/CodeSourcery/Sourcery G++ Lite/bin
+
+####################################################################################
+#
+# format: TARGET_TOOLCHAIN_ARCH_COMMANDTYPE_ATTRIBUTE = <string>
+# priority:
+# TARGET_TOOLCHAIN_ARCH_COMMANDTYPE_ATTRIBUTE (Highest)
+# ******_TOOLCHAIN_ARCH_COMMANDTYPE_ATTRIBUTE
+# TARGET_*********_ARCH_COMMANDTYPE_ATTRIBUTE
+# ******_*********_ARCH_COMMANDTYPE_ATTRIBUTE
+# TARGET_TOOLCHAIN_****_COMMANDTYPE_ATTRIBUTE
+# ******_TOOLCHAIN_****_COMMANDTYPE_ATTRIBUTE
+# TARGET_*********_****_COMMANDTYPE_ATTRIBUTE
+# ******_*********_****_COMMANDTYPE_ATTRIBUTE
+# TARGET_TOOLCHAIN_ARCH_***********_ATTRIBUTE
+# ******_TOOLCHAIN_ARCH_***********_ATTRIBUTE
+# TARGET_*********_ARCH_***********_ATTRIBUTE
+# ******_*********_ARCH_***********_ATTRIBUTE
+# TARGET_TOOLCHAIN_****_***********_ATTRIBUTE
+# ******_TOOLCHAIN_****_***********_ATTRIBUTE
+# TARGET_*********_****_***********_ATTRIBUTE
+# ******_*********_****_***********_ATTRIBUTE (Lowest)
+#
+####################################################################################
+####################################################################################
+#
+# Supported Tool Chains
+# =====================
+# VS2003 - win32 - Microsoft Visual Studio .NET 2003, Intel EBC, Intel ASL
+# VS2005 - win32 - Microsoft Visual Studio 2005 Team Suite Edition, Intel EBC, Intel ASL (also compatible with VS 2005 Express, Standard, and Pro)
+# VS2008 - win32 - Microsoft Visual Studio 2008 Team Suite with Intel ASL
+# DDK3790 - win32 - Microsoft Windows DDK 3790.1830, Intel EBC, Intel ASL
+# UNIXGCC - UNIX GCC, No EBC, Intel ASL
+# GCC44 - Linux - GCC 4.4 (Native), No EBC, Intel ASL
+# ELFGCC - Linux ELF GCC, No EBC, Intel ASL
+# CYGGCC - win32 - CygWin GCC, Intel EBC, Intel ASL
+# ICC - win32 - Intel C Compiler V9.1, Intel EBC, Intel ASL
+# ICC11 - win32 - Intel C Compiler V11.1, Intel EBC, Intel ASL
+# MYTOOLS - win32 - VS2008 for IA32/X64, WINDDK 3790.1830 for IPF, Intel EBC, Intel ASL
+# VS2003xASL - win32 - Microsoft Visual Studio .NET 2003, Intel EBC, Microsoft ASL
+# VS2005xASL - win32 - Microsoft Visual Studio 2005 Team Suite Edition, Intel EBC, Microsoft ASL
+# VS2008xASL - win32 - Microsoft Visual Studio 2008 Team Suite with Microsoft ASL
+# DDK3790xASL - win32 - Microsoft Windows DDK 3790.1830, Intel EBC, Microsoft ASL
+# CYGGCCxASL - win32 - CygWin GCC, Intel EBC, Microsoft ASL
+# ICCxASL - win32 - Intel C Compiler V9.1, Intel EBC, Microsoft ASL
+# ICC11xASL - win32 - Intel C Compiler V11.1, Intel EBC, Microsoft ASL
+# VS2005x86 - win64 - Microsoft Visual Studio 2005 Team Suite Edition (x86), Intel EBC, Intel ASL (also compatible with VS 2005 Express, Standard, and Pro)
+# VS2008x86 - win64 - Microsoft Visual Studio 2008 (x86) w/ Intel ASL
+# ICCx86 - win64 - Intel C Compiler V9.1 (x86), Intel EBC, Intel ASL
+# ICC11x86 - win64 - Intel C Compiler V11.1 (x86), Intel EBC, Intel ASL
+# VS2005x86xASL - win64 - Microsoft Visual Studio 2005 Team Suite Edition (x86), Intel EBC, Microsoft ASL (also compatible with VS 2005 Express, Standard, and Pro)
+# VS2008x86xASL - win64 - Microsoft Visual Studio 2008 (x86) w/ Microsoft ASL
+# ICCx86xASL - win64 - Intel C Compiler V9.1 (x86), Intel EBC, Microsoft ASL
+# ICC11x86xASL - win64 - Intel C Compiler V11.1 (x86), Intel EBC, Microsoft ASL
+# CYGGCCx86 - win64 - CygWin GCC (x86), Intel EBC (x86), Intel ASL
+# CYGGCCx86xASL - win64 - CygWin GCC (x86), Intel EBC (x86), Microsoft ASL
+# * Commented out - All versions of VS2005 use the same standard install directory
+#
+####################################################################################
+####################################################################################
+#
+# Supported Tool Chain Family
+# ===========================
+# MSFT - Microsoft
+# GCC - GNU GCC
+# INTEL - INTEL
+####################################################################################
+####################################################################################
+#
+# Intel EFI Byte Code Compiler (Template)
+#
+####################################################################################
+# *_*_EBC_*_FAMILY = INTEL
+#
+# *_*_EBC_PP_PATH = C:\Program Files\Intel\EBC\Bin\iec.exe
+# *_*_EBC_CC_PATH = C:\Program Files\Intel\EBC\Bin\iec.exe
+# *_*_EBC_SLINK_PATH = C:\Program Files\Intel\EBC\Bin\link.exe
+#
+# *_*_EBC_SLINK_FLAGS = /lib /NOLOGO /MACHINE:EBC
+# *_*_EBC_PP_FLAGS = /nologo /E /TC /FI$(DEST_DIR_DEBUG)/AutoGen.h
+# *_*_EBC_CC_FLAGS = /nologo /FAcs /c /W3 /WX /FI$(DEST_DIR_DEBUG)/AutoGen.h
+# *_*_EBC_DLINK_FLAGS = "C:\Program Files\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /MACHINE:EBC /OPT:REF /NODEFAULTLIB /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER
+#
+####################################################################################
+#
+# Intel ACPI Source Language Compiler (Template)
+#
+####################################################################################
+# *_*_*_ASL_FAMILY = INTEL
+#
+# *_*_*_ASL_PATH = C:\ASL\iasl.exe
+#
+####################################################################################
+#
+# Microsoft ACPI Source Language Compiler (Template)
+#
+####################################################################################
+# *_*_*_ASL_FAMILY = MSFT
+#
+# *_*_*_ASL_PATH = C:\ASL\asl.exe
+#
+####################################################################################
+
+
+####################################################################################
+#
+# Microsoft Visual Studio .NET 2003 (IA-32 only, with Link Time Code Generation)
+# And Intel ACPI Compiler
+#
+####################################################################################
+# VS2003 - Microsoft Visual Studio .NET 2003 and Intel ACPI Source Language Compiler (iasl.exe)
+*_VS2003_*_*_FAMILY = MSFT
+
+##################
+# ASL definitions
+##################
+*_VS2003_*_ASL_PATH = DEF(DEFAULT_WIN_ASL_BIN)
+*_VS2003_*_ASL_FLAGS = DEF(DEFAULT_WIN_ASL_FLAGS)
+*_VS2003_*_ASL_OUTFLAGS = DEF(DEFAULT_WIN_ASL_OUTFLAGS)
+*_VS2003_*_ASLCC_FLAGS = DEF(MSFT_ASLCC_FLAGS)
+*_VS2003_*_ASLPP_FLAGS = DEF(MSFT_ASLPP_FLAGS)
+*_VS2003_*_ASLDLINK_FLAGS = DEF(MSFT_ASLDLINK_FLAGS)
+
+##################
+# IA32 definitions
+##################
+*_VS2003_IA32_*_DLL = DEF(VS2003_DLL)
+
+*_VS2003_IA32_MAKE_PATH = DEF(VS2003_BIN)\nmake.exe
+*_VS2003_IA32_CC_PATH = DEF(VS2003_BIN)\cl.exe
+*_VS2003_IA32_VFRPP_PATH = DEF(VS2003_BIN)\cl.exe
+*_VS2003_IA32_SLINK_PATH = DEF(VS2003_BIN)\lib.exe
+*_VS2003_IA32_DLINK_PATH = DEF(VS2003_BIN)\link.exe
+*_VS2003_IA32_APP_PATH = DEF(VS2003_BIN)\cl.exe
+*_VS2003_IA32_PP_PATH = DEF(VS2003_BIN)\cl.exe
+*_VS2003_IA32_ASM_PATH = DEF(VS2003_BIN)\ml.exe
+*_VS2003_IA32_ASM16_PATH = DEF(VS2003_BIN)\ml.exe
+*_VS2003_IA32_ASLCC_PATH = DEF(VS2003_BIN)\cl.exe
+*_VS2003_IA32_ASLPP_PATH = DEF(VS2003_BIN)\cl.exe
+*_VS2003_IA32_ASLDLINK_PATH = DEF(VS2003_BIN)\link.exe
+*_VS2003_IA32_RC_PATH = DEF(VS2003_BIN)\rc.exe
+
+ *_VS2003_IA32_MAKE_FLAGS = /nologo
+ *_VS2003_IA32_APP_FLAGS = /nologo /E /TC
+ *_VS2003_IA32_PP_FLAGS = /nologo /E /TC /FIAutoGen.h
+ *_VS2003_IA32_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
+ DEBUG_VS2003_IA32_CC_FLAGS = /nologo /c /WX /W4 /Gs32768 /Gy /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /GX- /Zi /Gm
+RELEASE_VS2003_IA32_CC_FLAGS = /nologo /c /WX /W4 /Gs32768 /Gy /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /GX-
+ DEBUG_VS2003_IA32_ASM_FLAGS = /nologo /c /WX /W3 /coff /Cx /Zd /Zi
+RELEASE_VS2003_IA32_ASM_FLAGS = /nologo /c /WX /W3 /coff /Cx /Zd
+ *_VS2003_IA32_SLINK_FLAGS = /nologo /LTCG
+ DEBUG_VS2003_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+RELEASE_VS2003_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4078 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
+
+##################
+# EBC definitions
+##################
+*_VS2003_EBC_*_FAMILY = INTEL
+
+*_VS2003_EBC_MAKE_PATH = DEF(VS2003_BIN)\nmake.exe
+*_VS2003_EBC_PP_PATH = DEF(EBC_BIN)\iec.exe
+*_VS2003_EBC_VFRPP_PATH = DEF(EBC_BIN)\iec.exe
+*_VS2003_EBC_CC_PATH = DEF(EBC_BIN)\iec.exe
+*_VS2003_EBC_SLINK_PATH = DEF(EBC_BIN)\link.exe
+*_VS2003_EBC_DLINK_PATH = DEF(EBC_BIN)\link.exe
+*_VS2003_EBC_RC_PATH = DEF(VS2003_BIN)\rc.exe
+
+*_VS2003_EBC_MAKE_FLAGS = /nologo
+*_VS2003_EBC_PP_FLAGS = /nologo /E /TC /FIAutoGen.h
+*_VS2003_EBC_CC_FLAGS = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)
+*_VS2003_EBC_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
+*_VS2003_EBC_SLINK_FLAGS = /lib /NOLOGO /MACHINE:EBC
+*_VS2003_EBC_DLINK_FLAGS = "C:\Program Files\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP
+
+####################################################################################
+#
+# Microsoft Visual Studio .NET 2003 and Microsoft ACPI compiler
+#
+####################################################################################
+# VS2003xASL - Microsoft Visual Studio .NET 2003 and Microsoft ACPI Source Language Compiler (asl.exe)
+*_VS2003xASL_*_*_FAMILY = MSFT
+
+##################
+# ASL definitions
+##################
+*_VS2003xASL_*_ASL_PATH = DEF(WIN_ASL_BIN)
+*_VS2003xASL_*_ASL_FLAGS =
+*_VS2003xASL_*_ASL_OUTFLAGS = DEF(MS_ASL_OUTFLAGS)
+*_VS2003xASL_*_ASLCC_FLAGS = DEF(MSFT_ASLCC_FLAGS)
+*_VS2003xASL_*_ASLPP_FLAGS = DEF(MSFT_ASLPP_FLAGS)
+*_VS2003xASL_*_ASLDLINK_FLAGS = DEF(MSFT_ASLDLINK_FLAGS)
+
+##################
+# IA32 definitions
+##################
+*_VS2003xASL_IA32_*_DLL = DEF(VS2003_DLL)
+
+*_VS2003xASL_IA32_MAKE_PATH = DEF(VS2003_BIN)\nmake.exe
+*_VS2003xASL_IA32_CC_PATH = DEF(VS2003_BIN)\cl.exe
+*_VS2003xASL_IA32_VFRPP_PATH = DEF(VS2003_BIN)\cl.exe
+*_VS2003xASL_IA32_SLINK_PATH = DEF(VS2003_BIN)\lib.exe
+*_VS2003xASL_IA32_DLINK_PATH = DEF(VS2003_BIN)\link.exe
+*_VS2003xASL_IA32_APP_PATH = DEF(VS2003_BIN)\cl.exe
+*_VS2003xASL_IA32_PP_PATH = DEF(VS2003_BIN)\cl.exe
+*_VS2003xASL_IA32_ASM_PATH = DEF(VS2003_BIN)\ml.exe
+*_VS2003xASL_IA32_ASLCC_PATH = DEF(VS2003_BIN)\cl.exe
+*_VS2003xASL_IA32_ASLPP_PATH = DEF(VS2003_BIN)\cl.exe
+*_VS2003xASL_IA32_ASLDLINK_PATH = DEF(VS2003_BIN)\link.exe
+*_VS2003xASL_IA32_RC_PATH = DEF(VS2003_BIN)\rc.exe
+
+
+ *_VS2003xASL_IA32_MAKE_FLAGS = /nologo
+ *_VS2003xASL_IA32_APP_FLAGS = /nologo /E /TC
+ *_VS2003xASL_IA32_PP_FLAGS = /nologo /E /TC /FIAutoGen.h
+ *_VS2003xASL_IA32_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
+ DEBUG_VS2003xASL_IA32_CC_FLAGS = /nologo /c /WX /W4 /Gs32768 /Gy /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /GX- /Zi /Gm
+RELEASE_VS2003xASL_IA32_CC_FLAGS = /nologo /c /WX /W4 /Gs32768 /Gy /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /GX-
+ DEBUG_VS2003xASL_IA32_ASM_FLAGS = /nologo /c /WX /W3 /coff /Cx /Zd /Zi
+RELEASE_VS2003xASL_IA32_ASM_FLAGS = /nologo /c /WX /W3 /coff /Cx /Zd
+ *_VS2003xASL_IA32_SLINK_FLAGS = /nologo /LTCG
+ DEBUG_VS2003xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+RELEASE_VS2003xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4078 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
+
+##################
+# EBC definitions
+##################
+*_VS2003xASL_EBC_*_FAMILY = INTEL
+
+*_VS2003xASL_EBC_MAKE_PATH = DEF(VS2003_BIN)\nmake.exe
+*_VS2003xASL_EBC_PP_PATH = DEF(EBC_BIN)\iec.exe
+*_VS2003xASL_EBC_VFRPP_PATH = DEF(EBC_BIN)\iec.exe
+*_VS2003xASL_EBC_CC_PATH = DEF(EBC_BIN)\iec.exe
+*_VS2003xASL_EBC_SLINK_PATH = DEF(EBC_BIN)\link.exe
+*_VS2003xASL_EBC_DLINK_PATH = DEF(EBC_BIN)\link.exe
+*_VS2003xASL_EBC_RC_PATH = DEF(VS2003_BIN)\rc.exe
+
+*_VS2003xASL_EBC_MAKE_FLAGS = /nologo
+*_VS2003xASL_EBC_PP_FLAGS = /nologo /E /TC /FIAutoGen.h
+*_VS2003xASL_EBC_CC_FLAGS = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)
+*_VS2003xASL_EBC_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
+*_VS2003xASL_EBC_SLINK_FLAGS = /lib /NOLOGO /MACHINE:EBC
+*_VS2003xASL_EBC_DLINK_FLAGS = "C:\Program Files\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP
+
+####################################################################################
+#
+# Microsoft Visual Studio 2005
+#
+# VS2005 - Microsoft Visual Studio 2005 All Edition, including Standard, Professional, Express, TeamSuite
+# ASL - Intel ACPI Source Language Compiler
+####################################################################################
+# VS2005 - Microsoft Visual Studio 2005 ALL Edition, including Standard, Professional, Express, TeamSuite
+*_VS2005_*_*_FAMILY = MSFT
+
+*_VS2005_*_MAKE_PATH = DEF(VS2005_BIN)\nmake.exe
+*_VS2005_*_MAKE_FLAGS = /nologo
+*_VS2005_*_RC_PATH = DEF(VS2005_BIN)\rc.exe
+
+*_VS2005_*_SLINK_FLAGS = /NOLOGO /LTCG
+*_VS2005_*_APP_FLAGS = /nologo /E /TC
+*_VS2005_*_PP_FLAGS = /nologo /E /TC /FIAutoGen.h
+*_VS2005_*_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
+
+*_VS2005_*_ASM16_PATH = DEF(VS2005_BIN)\ml.exe
+
+##################
+# ASL definitions
+##################
+*_VS2005_*_ASL_PATH = DEF(DEFAULT_WIN_ASL_BIN)
+*_VS2005_*_ASL_FLAGS = DEF(DEFAULT_WIN_ASL_FLAGS)
+*_VS2005_*_ASL_OUTFLAGS = DEF(DEFAULT_WIN_ASL_OUTFLAGS)
+*_VS2005_*_ASLCC_FLAGS = DEF(MSFT_ASLCC_FLAGS)
+*_VS2005_*_ASLPP_FLAGS = DEF(MSFT_ASLPP_FLAGS)
+*_VS2005_*_ASLDLINK_FLAGS = DEF(MSFT_ASLDLINK_FLAGS)
+
+##################
+# IA32 definitions
+##################
+*_VS2005_IA32_*_DLL = DEF(VS2005_DLL)
+
+*_VS2005_IA32_MAKE_PATH = DEF(VS2005_BIN)\nmake.exe
+*_VS2005_IA32_CC_PATH = DEF(VS2005_BIN)\cl.exe
+*_VS2005_IA32_VFRPP_PATH = DEF(VS2005_BIN)\cl.exe
+*_VS2005_IA32_SLINK_PATH = DEF(VS2005_BIN)\lib.exe
+*_VS2005_IA32_DLINK_PATH = DEF(VS2005_BIN)\link.exe
+*_VS2005_IA32_APP_PATH = DEF(VS2005_BIN)\cl.exe
+*_VS2005_IA32_PP_PATH = DEF(VS2005_BIN)\cl.exe
+*_VS2005_IA32_ASM_PATH = DEF(VS2005_BIN)\ml.exe
+*_VS2005_IA32_ASLCC_PATH = DEF(VS2005_BIN)\cl.exe
+*_VS2005_IA32_ASLPP_PATH = DEF(VS2005_BIN)\cl.exe
+*_VS2005_IA32_ASLDLINK_PATH = DEF(VS2005_BIN)\link.exe
+
+ *_VS2005_IA32_MAKE_FLAGS = /nologo
+ DEBUG_VS2005_IA32_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm
+RELEASE_VS2005_IA32_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF
+ DEBUG_VS2005_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
+RELEASE_VS2005_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd
+ DEBUG_VS2005_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+RELEASE_VS2005_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
+
+##################
+# X64 definitions
+##################
+*_VS2005_X64_*_DLL = DEF(VS2005_DLL)
+
+*_VS2005_X64_CC_PATH = DEF(VS2005_BINX64)\cl.exe
+*_VS2005_X64_PP_PATH = DEF(VS2005_BINX64)\cl.exe
+*_VS2005_X64_APP_PATH = DEF(VS2005_BINX64)\cl.exe
+*_VS2005_X64_VFRPP_PATH = DEF(VS2005_BINX64)\cl.exe
+*_VS2005_X64_ASM_PATH = DEF(VS2005_BINX64)\ml64.exe
+*_VS2005_X64_SLINK_PATH = DEF(VS2005_BINX64)\lib.exe
+*_VS2005_X64_DLINK_PATH = DEF(VS2005_BINX64)\link.exe
+*_VS2005_X64_ASLCC_PATH = DEF(VS2005_BINX64)\cl.exe
+*_VS2005_X64_ASLPP_PATH = DEF(VS2005_BINX64)\cl.exe
+*_VS2005_X64_ASLDLINK_PATH = DEF(VS2005_BINX64)\link.exe
+
+
+ DEBUG_VS2005_X64_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm
+RELEASE_VS2005_X64_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF
+ DEBUG_VS2005_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi
+RELEASE_VS2005_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd
+ DEBUG_VS2005_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+RELEASE_VS2005_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
+
+##################
+# IPF definitions
+##################
+*_VS2005_IPF_*_DLL = DEF(VS2005_DLL)
+
+*_VS2005_IPF_PP_PATH = DEF(VS2005_BIN64)\cl.exe
+*_VS2005_IPF_APP_PATH = DEF(VS2005_BIN64)\cl.exe
+*_VS2005_IPF_VFRPP_PATH = DEF(VS2005_BIN64)\cl.exe
+*_VS2005_IPF_CC_PATH = DEF(VS2005_BIN64)\cl.exe
+*_VS2005_IPF_ASM_PATH = DEF(VS2005_BIN64)\ias.exe
+*_VS2005_IPF_SLINK_PATH = DEF(VS2005_BIN64)\lib.exe
+*_VS2005_IPF_DLINK_PATH = DEF(VS2005_BIN64)\link.exe
+*_VS2005_IPF_ASLCC_PATH = DEF(VS2005_BIN64)\cl.exe
+*_VS2005_IPF_ASLPP_PATH = DEF(VS2005_BIN64)\cl.exe
+*_VS2005_IPF_ASLDLINK_PATH = DEF(VS2005_BIN64)\link.exe
+
+ DEBUG_VS2005_IPF_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /EHs-c- /GR- /Gy /Os /GL /FIAutoGen.h /QIPF_fr32 /Zi
+RELEASE_VS2005_IPF_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /EHs-c- /GR- /Gy /Os /GL /FIAutoGen.h /QIPF_fr32
+ DEBUG_VS2005_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W4 -d debug
+RELEASE_VS2005_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W4
+ DEBUG_VS2005_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb /DEBUG
+RELEASE_VS2005_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb
+
+##################
+# EBC definitions
+##################
+*_VS2005_EBC_*_FAMILY = INTEL
+
+*_VS2005_EBC_MAKE_PATH = DEF(VS2005_BIN)\nmake.exe
+*_VS2005_EBC_PP_PATH = DEF(EBC_BIN)\iec.exe
+*_VS2005_EBC_VFRPP_PATH = DEF(EBC_BIN)\iec.exe
+*_VS2005_EBC_CC_PATH = DEF(EBC_BIN)\iec.exe
+*_VS2005_EBC_SLINK_PATH = DEF(EBC_BIN)\link.exe
+*_VS2005_EBC_DLINK_PATH = DEF(EBC_BIN)\link.exe
+
+*_VS2005_EBC_MAKE_FLAGS = /nologo
+*_VS2005_EBC_PP_FLAGS = /nologo /E /TC /FIAutoGen.h
+*_VS2005_EBC_CC_FLAGS = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)
+*_VS2005_EBC_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
+*_VS2005_EBC_SLINK_FLAGS = /lib /NOLOGO /MACHINE:EBC
+*_VS2005_EBC_DLINK_FLAGS = "C:\Program Files\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP
+
+####################################################################################
+#
+# Microsoft Visual Studio 2005
+#
+# VS2005 - Microsoft Visual Studio 2005 All Edition, including Standard, Professional, Express, TeamSuite
+# ASL - Microsoft ACPI Source Language Compiler (asl.exe)
+####################################################################################
+# VS2005xASL - Microsoft Visual Studio 2005 ALL Edition, including Standard, Professional, Express, TeamSuite
+*_VS2005xASL_*_*_FAMILY = MSFT
+
+*_VS2005xASL_*_MAKE_PATH = DEF(VS2005_BIN)\nmake.exe
+*_VS2005xASL_*_MAKE_FLAG = /nologo
+*_VS2005xASL_*_RC_PATH = DEF(VS2005_BIN)\rc.exe
+
+*_VS2005xASL_*_SLINK_FLAGS = /NOLOGO /LTCG
+*_VS2005xASL_*_APP_FLAGS = /nologo /E /TC
+*_VS2005xASL_*_PP_FLAGS = /nologo /E /TC /FIAutoGen.h
+*_VS2005xASL_*_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
+
+*_VS2005xASL_*_ASM16_PATH = DEF(VS2005_BIN)\ml.exe
+
+##################
+# ASL definitions
+##################
+*_VS2005xASL_*_ASL_PATH = DEF(WIN_ASL_BIN)
+*_VS2005xASL_*_ASL_FLAGS =
+*_VS2005xASL_*_ASL_OUTFLAGS = DEF(MS_ASL_OUTFLAGS)
+*_VS2005xASL_*_ASLCC_FLAGS = DEF(MSFT_ASLCC_FLAGS)
+*_VS2005xASL_*_ASLPP_FLAGS = DEF(MSFT_ASLPP_FLAGS)
+*_VS2005xASL_*_ASLDLINK_FLAGS = DEF(MSFT_ASLDLINK_FLAGS)
+
+##################
+# IA32 definitions
+##################
+*_VS2005xASL_IA32_*_DLL = DEF(VS2005_DLL)
+
+*_VS2005xASL_IA32_MAKE_PATH = DEF(VS2005_BIN)\nmake.exe
+*_VS2005xASL_IA32_CC_PATH = DEF(VS2005_BIN)\cl.exe
+*_VS2005xASL_IA32_VFRPP_PATH = DEF(VS2005_BIN)\cl.exe
+*_VS2005xASL_IA32_SLINK_PATH = DEF(VS2005_BIN)\lib.exe
+*_VS2005xASL_IA32_DLINK_PATH = DEF(VS2005_BIN)\link.exe
+*_VS2005xASL_IA32_APP_PATH = DEF(VS2005_BIN)\cl.exe
+*_VS2005xASL_IA32_PP_PATH = DEF(VS2005_BIN)\cl.exe
+*_VS2005xASL_IA32_ASM_PATH = DEF(VS2005_BIN)\ml.exe
+*_VS2005xASL_IA32_ASLCC_PATH = DEF(VS2005_BIN)\cl.exe
+*_VS2005xASL_IA32_ASLPP_PATH = DEF(VS2005_BIN)\cl.exe
+*_VS2005xASL_IA32_ASLDLINK_PATH = DEF(VS2005_BIN)\link.exe
+
+ *_VS2005xASL_IA32_MAKE_FLAGS = /nologo
+ DEBUG_VS2005xASL_IA32_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm
+RELEASE_VS2005xASL_IA32_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF
+ DEBUG_VS2005xASL_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
+RELEASE_VS2005xASL_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd
+ DEBUG_VS2005xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+RELEASE_VS2005xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
+
+##################
+# X64 definitions
+##################
+*_VS2005xASL_X64_*_DLL = DEF(VS2005_DLL)
+
+*_VS2005xASL_X64_CC_PATH = DEF(VS2005_BINX64)\cl.exe
+*_VS2005xASL_X64_PP_PATH = DEF(VS2005_BINX64)\cl.exe
+*_VS2005xASL_X64_APP_PATH = DEF(VS2005_BINX64)\cl.exe
+*_VS2005xASL_X64_VFRPP_PATH = DEF(VS2005_BINX64)\cl.exe
+*_VS2005xASL_X64_ASM_PATH = DEF(VS2005_BINX64)\ml64.exe
+*_VS2005xASL_X64_SLINK_PATH = DEF(VS2005_BINX64)\lib.exe
+*_VS2005xASL_X64_DLINK_PATH = DEF(VS2005_BINX64)\link.exe
+*_VS2005xASL_X64_ASLCC_PATH = DEF(VS2005_BINX64)\cl.exe
+*_VS2005xASL_X64_ASLPP_PATH = DEF(VS2005_BINX64)\cl.exe
+*_VS2005xASL_X64_ASLDLINK_PATH = DEF(VS2005_BINX64)\link.exe
+
+
+ DEBUG_VS2005xASL_X64_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm
+RELEASE_VS2005xASL_X64_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF
+ DEBUG_VS2005xASL_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi
+RELEASE_VS2005xASL_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd
+ DEBUG_VS2005xASL_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+RELEASE_VS2005xASL_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
+
+##################
+# IPF definitions
+##################
+*_VS2005xASL_IPF_*_DLL = DEF(VS2005_DLL)
+
+*_VS2005xASL_IPF_PP_PATH = DEF(VS2005_BIN64)\cl.exe
+*_VS2005xASL_IPF_APP_PATH = DEF(VS2005_BIN64)\cl.exe
+*_VS2005xASL_IPF_VFRPP_PATH = DEF(VS2005_BIN64)\cl.exe
+*_VS2005xASL_IPF_CC_PATH = DEF(VS2005_BIN64)\cl.exe
+*_VS2005xASL_IPF_ASM_PATH = DEF(VS2005_BIN64)\ias.exe
+*_VS2005xASL_IPF_SLINK_PATH = DEF(VS2005_BIN64)\lib.exe
+*_VS2005xASL_IPF_DLINK_PATH = DEF(VS2005_BIN64)\link.exe
+*_VS2005xASL_IPF_ASLCC_PATH = DEF(VS2005_BIN64)\cl.exe
+*_VS2005xASL_IPF_ASLPP_PATH = DEF(VS2005_BIN64)\cl.exe
+*_VS2005xASL_IPF_ASLDLINK_PATH = DEF(VS2005_BIN64)\link.exe
+
+ DEBUG_VS2005xASL_IPF_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /EHs-c- /GR- /Gy /Os /GL /FIAutoGen.h /QIPF_fr32 /Zi
+RELEASE_VS2005xASL_IPF_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /EHs-c- /GR- /Gy /Os /GL /FIAutoGen.h /QIPF_fr32
+ DEBUG_VS2005xASL_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W4 -d debug
+RELEASE_VS2005xASL_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W4
+ DEBUG_VS2005xASL_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb /DEBUG
+RELEASE_VS2005xASL_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb
+
+##################
+# EBC definitions
+##################
+*_VS2005xASL_EBC_*_FAMILY = INTEL
+
+*_VS2005xASL_EBC_MAKE_PATH = DEF(VS2005_BIN)\nmake.exe
+*_VS2005xASL_EBC_PP_PATH = DEF(EBC_BIN)\iec.exe
+*_VS2005xASL_EBC_VFRPP_PATH = DEF(EBC_BIN)\iec.exe
+*_VS2005xASL_EBC_CC_PATH = DEF(EBC_BIN)\iec.exe
+*_VS2005xASL_EBC_SLINK_PATH = DEF(EBC_BIN)\link.exe
+*_VS2005xASL_EBC_DLINK_PATH = DEF(EBC_BIN)\link.exe
+
+*_VS2005xASL_EBC_MAKE_FLAGS = /nologo
+*_VS2005xASL_EBC_PP_FLAGS = /nologo /E /TC /FIAutoGen.h
+*_VS2005xASL_EBC_CC_FLAGS = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)
+*_VS2005xASL_EBC_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
+*_VS2005xASL_EBC_SLINK_FLAGS = /lib /NOLOGO /MACHINE:EBC
+*_VS2005xASL_EBC_DLINK_FLAGS = "C:\Program Files\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP
+
+####################################################################################
+#
+# Microsoft Visual Studio 2005 (x86)
+#
+# VS2005 - Microsoft Visual Studio 2005 All Edition, including Standard, Professional, Express, TeamSuite
+# ASL - Intel ACPI Source Language Compiler
+####################################################################################
+# VS2005x86 - Microsoft Visual Studio 2005 ALL Edition, including Standard, Professional, Express, TeamSuite
+*_VS2005x86_*_*_FAMILY = MSFT
+
+*_VS2005x86_*_MAKE_PATH = DEF(VS2005x86_BIN)\nmake.exe
+*_VS2005x86_*_MAKE_FLAGS = /nologo
+*_VS2005x86_*_RC_PATH = DEF(VS2005x86_BIN)\rc.exe
+
+*_VS2005x86_*_SLINK_FLAGS = /NOLOGO /LTCG
+*_VS2005x86_*_APP_FLAGS = /nologo /E /TC
+*_VS2005x86_*_PP_FLAGS = /nologo /E /TC /FIAutoGen.h
+*_VS2005x86_*_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
+
+*_VS2005x86_*_ASM16_PATH = DEF(VS2005x86_BIN)\ml.exe
+
+##################
+# ASL definitions
+##################
+*_VS2005x86_*_ASL_PATH = DEF(DEFAULT_WIN_ASL_BIN)
+*_VS2005x86_*_ASL_FLAGS = DEF(DEFAULT_WIN_ASL_FLAGS)
+*_VS2005x86_*_ASL_OUTFLAGS = DEF(DEFAULT_WIN_ASL_OUTFLAGS)
+*_VS2005x86_*_ASLCC_FLAGS = DEF(MSFT_ASLCC_FLAGS)
+*_VS2005x86_*_ASLPP_FLAGS = DEF(MSFT_ASLPP_FLAGS)
+*_VS2005x86_*_ASLDLINK_FLAGS = DEF(MSFT_ASLDLINK_FLAGS)
+
+##################
+# IA32 definitions
+##################
+*_VS2005x86_IA32_*_DLL = DEF(VS2005x86_DLL)
+
+*_VS2005x86_IA32_MAKE_PATH = DEF(VS2005x86_BIN)\nmake.exe
+*_VS2005x86_IA32_CC_PATH = DEF(VS2005x86_BIN)\cl.exe
+*_VS2005x86_IA32_VFRPP_PATH = DEF(VS2005x86_BIN)\cl.exe
+*_VS2005x86_IA32_SLINK_PATH = DEF(VS2005x86_BIN)\lib.exe
+*_VS2005x86_IA32_DLINK_PATH = DEF(VS2005x86_BIN)\link.exe
+*_VS2005x86_IA32_APP_PATH = DEF(VS2005x86_BIN)\cl.exe
+*_VS2005x86_IA32_PP_PATH = DEF(VS2005x86_BIN)\cl.exe
+*_VS2005x86_IA32_ASM_PATH = DEF(VS2005x86_BIN)\ml.exe
+*_VS2005x86_IA32_ASLCC_PATH = DEF(VS2005x86_BIN)\cl.exe
+*_VS2005x86_IA32_ASLPP_PATH = DEF(VS2005x86_BIN)\cl.exe
+*_VS2005x86_IA32_ASLDLINK_PATH = DEF(VS2005x86_BIN)\link.exe
+
+ *_VS2005x86_IA32_MAKE_FLAGS = /nologo
+ DEBUG_VS2005x86_IA32_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm
+RELEASE_VS2005x86_IA32_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF
+ DEBUG_VS2005x86_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
+RELEASE_VS2005x86_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd
+ DEBUG_VS2005x86_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+RELEASE_VS2005x86_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
+
+##################
+# X64 definitions
+##################
+*_VS2005x86_X64_*_DLL = DEF(VS2005x86_DLL)
+
+*_VS2005x86_X64_CC_PATH = DEF(VS2005x86_BINX64)\cl.exe
+*_VS2005x86_X64_PP_PATH = DEF(VS2005x86_BINX64)\cl.exe
+*_VS2005x86_X64_APP_PATH = DEF(VS2005x86_BINX64)\cl.exe
+*_VS2005x86_X64_VFRPP_PATH = DEF(VS2005x86_BINX64)\cl.exe
+*_VS2005x86_X64_ASM_PATH = DEF(VS2005x86_BINX64)\ml64.exe
+*_VS2005x86_X64_SLINK_PATH = DEF(VS2005x86_BINX64)\lib.exe
+*_VS2005x86_X64_DLINK_PATH = DEF(VS2005x86_BINX64)\link.exe
+*_VS2005x86_X64_ASLCC_PATH = DEF(VS2005x86_BINX64)\cl.exe
+*_VS2005x86_X64_ASLPP_PATH = DEF(VS2005x86_BINX64)\cl.exe
+*_VS2005x86_X64_ASLDLINK_PATH = DEF(VS2005x86_BINX64)\link.exe
+
+
+ DEBUG_VS2005x86_X64_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm
+RELEASE_VS2005x86_X64_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF
+ DEBUG_VS2005x86_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi
+RELEASE_VS2005x86_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd
+ DEBUG_VS2005x86_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+RELEASE_VS2005x86_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
+
+##################
+# IPF definitions
+##################
+*_VS2005x86_IPF_*_DLL = DEF(VS2005x86_DLL)
+
+*_VS2005x86_IPF_PP_PATH = DEF(VS2005x86_BIN64)\cl.exe
+*_VS2005x86_IPF_APP_PATH = DEF(VS2005x86_BIN64)\cl.exe
+*_VS2005x86_IPF_VFRPP_PATH = DEF(VS2005x86_BIN64)\cl.exe
+*_VS2005x86_IPF_CC_PATH = DEF(VS2005x86_BIN64)\cl.exe
+*_VS2005x86_IPF_ASM_PATH = DEF(VS2005x86_BIN64)\ias.exe
+*_VS2005x86_IPF_SLINK_PATH = DEF(VS2005x86_BIN64)\lib.exe
+*_VS2005x86_IPF_DLINK_PATH = DEF(VS2005x86_BIN64)\link.exe
+*_VS2005x86_IPF_ASLCC_PATH = DEF(VS2005x86_BIN64)\cl.exe
+*_VS2005x86_IPF_ASLPP_PATH = DEF(VS2005x86_BIN64)\cl.exe
+*_VS2005x86_IPF_ASLDLINK_PATH = DEF(VS2005x86_BIN64)\link.exe
+
+ DEBUG_VS2005x86_IPF_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /EHs-c- /GR- /Gy /Os /GL /FIAutoGen.h /QIPF_fr32 /Zi
+RELEASE_VS2005x86_IPF_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /EHs-c- /GR- /Gy /Os /GL /FIAutoGen.h /QIPF_fr32
+ DEBUG_VS2005x86_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W4 -d debug
+RELEASE_VS2005x86_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W4
+ DEBUG_VS2005x86_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb /DEBUG
+RELEASE_VS2005x86_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb
+
+##################
+# EBC definitions
+##################
+*_VS2005x86_EBC_*_FAMILY = INTEL
+
+*_VS2005x86_EBC_MAKE_PATH = DEF(VS2005x86_BIN)\nmake.exe
+*_VS2005x86_EBC_PP_PATH = DEF(EBC_BINx86)\iec.exe
+*_VS2005x86_EBC_VFRPP_PATH = DEF(EBC_BINx86)\iec.exe
+*_VS2005x86_EBC_CC_PATH = DEF(EBC_BINx86)\iec.exe
+*_VS2005x86_EBC_SLINK_PATH = DEF(EBC_BINx86)\link.exe
+*_VS2005x86_EBC_DLINK_PATH = DEF(EBC_BINx86)\link.exe
+
+*_VS2005x86_EBC_MAKE_FLAGS = /nologo
+*_VS2005x86_EBC_PP_FLAGS = /nologo /E /TC /FIAutoGen.h
+*_VS2005x86_EBC_CC_FLAGS = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)
+*_VS2005x86_EBC_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
+*_VS2005x86_EBC_SLINK_FLAGS = /lib /NOLOGO /MACHINE:EBC
+*_VS2005x86_EBC_DLINK_FLAGS = "C:\Program Files (x86)\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP
+
+####################################################################################
+#
+# Microsoft Visual Studio 2005 (x86)
+#
+# VS2005 - Microsoft Visual Studio 2005 All Edition, including Standard, Professional, Express, TeamSuite
+# ASL - Microsoft ACPI Source Language Compiler
+####################################################################################
+# VS2005x86xASL - Microsoft Visual Studio 2005 ALL Edition, including Standard, Professional, Express, TeamSuite
+*_VS2005x86xASL_*_*_FAMILY = MSFT
+
+*_VS2005x86xASL_*_MAKE_PATH = DEF(VS2005x86_BIN)\nmake.exe
+*_VS2005x86xASL_*_MAKE_FLAGS = /nologo
+*_VS2005x86xASL_*_RC_PATH = DEF(VS2005x86_BIN)\rc.exe
+
+*_VS2005x86xASL_*_SLINK_FLAGS = /NOLOGO /LTCG
+*_VS2005x86xASL_*_APP_FLAGS = /nologo /E /TC
+*_VS2005x86xASL_*_PP_FLAGS = /nologo /E /TC /FIAutoGen.h
+*_VS2005x86xASL_*_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
+
+*_VS2005x86xASL_*_ASM16_PATH = DEF(VS2005x86_BIN)\ml.exe
+
+##################
+# ASL definitions
+##################
+*_VS2005x86xASL_*_ASL_PATH = DEF(WIN_ASL_BIN)
+*_VS2005x86xASL_*_ASL_FLAGS =
+*_VS2005x86xASL_*_ASL_OUTFLAGS = DEF(MS_ASL_OUTFLAGS)
+*_VS2005x86xASL_*_ASLCC_FLAGS = DEF(MSFT_ASLCC_FLAGS)
+*_VS2005x86xASL_*_ASLPP_FLAGS = DEF(MSFT_ASLPP_FLAGS)
+*_VS2005x86xASL_*_ASLDLINK_FLAGS = DEF(MSFT_ASLDLINK_FLAGS)
+
+##################
+# IA32 definitions
+##################
+*_VS2005x86xASL_IA32_*_DLL = DEF(VS2005x86_DLL)
+
+*_VS2005x86xASL_IA32_MAKE_PATH = DEF(VS2005x86_BIN)\nmake.exe
+*_VS2005x86xASL_IA32_CC_PATH = DEF(VS2005x86_BIN)\cl.exe
+*_VS2005x86xASL_IA32_VFRPP_PATH = DEF(VS2005x86_BIN)\cl.exe
+*_VS2005x86xASL_IA32_SLINK_PATH = DEF(VS2005x86_BIN)\lib.exe
+*_VS2005x86xASL_IA32_DLINK_PATH = DEF(VS2005x86_BIN)\link.exe
+*_VS2005x86xASL_IA32_APP_PATH = DEF(VS2005x86_BIN)\cl.exe
+*_VS2005x86xASL_IA32_PP_PATH = DEF(VS2005x86_BIN)\cl.exe
+*_VS2005x86xASL_IA32_ASM_PATH = DEF(VS2005x86_BIN)\ml.exe
+*_VS2005x86xASL_IA32_ASLCC_PATH = DEF(VS2005x86_BIN)\cl.exe
+*_VS2005x86xASL_IA32_ASLPP_PATH = DEF(VS2005x86_BIN)\cl.exe
+*_VS2005x86xASL_IA32_ASLDLINK_PATH = DEF(VS2005x86_BIN)\link.exe
+
+ *_VS2005x86xASL_IA32_MAKE_FLAGS = /nologo
+ DEBUG_VS2005x86xASL_IA32_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm
+RELEASE_VS2005x86xASL_IA32_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF
+ DEBUG_VS2005x86xASL_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
+RELEASE_VS2005x86xASL_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd
+ DEBUG_VS2005x86xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+RELEASE_VS2005x86xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
+
+##################
+# X64 definitions
+##################
+*_VS2005x86xASL_X64_*_DLL = DEF(VS2005x86_DLL)
+
+*_VS2005x86xASL_X64_CC_PATH = DEF(VS2005x86_BINX64)\cl.exe
+*_VS2005x86xASL_X64_PP_PATH = DEF(VS2005x86_BINX64)\cl.exe
+*_VS2005x86xASL_X64_APP_PATH = DEF(VS2005x86_BINX64)\cl.exe
+*_VS2005x86xASL_X64_VFRPP_PATH = DEF(VS2005x86_BINX64)\cl.exe
+*_VS2005x86xASL_X64_ASM_PATH = DEF(VS2005x86_BINX64)\ml64.exe
+*_VS2005x86xASL_X64_SLINK_PATH = DEF(VS2005x86_BINX64)\lib.exe
+*_VS2005x86xASL_X64_DLINK_PATH = DEF(VS2005x86_BINX64)\link.exe
+*_VS2005x86xASL_X64_ASLCC_PATH = DEF(VS2005x86_BINX64)\cl.exe
+*_VS2005x86xASL_X64_ASLPP_PATH = DEF(VS2005x86_BINX64)\cl.exe
+*_VS2005x86xASL_X64_ASLDLINK_PATH = DEF(VS2005x86_BINX64)\link.exe
+
+
+ DEBUG_VS2005x86xASL_X64_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm
+RELEASE_VS2005x86xASL_X64_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF
+ DEBUG_VS2005x86xASL_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi
+RELEASE_VS2005x86xASL_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd
+ DEBUG_VS2005x86xASL_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+RELEASE_VS2005x86xASL_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
+
+##################
+# IPF definitions
+##################
+*_VS2005x86xASL_IPF_*_DLL = DEF(VS2005x86_DLL)
+
+*_VS2005x86xASL_IPF_PP_PATH = DEF(VS2005x86_BIN64)\cl.exe
+*_VS2005x86xASL_IPF_APP_PATH = DEF(VS2005x86_BIN64)\cl.exe
+*_VS2005x86xASL_IPF_VFRPP_PATH = DEF(VS2005x86_BIN64)\cl.exe
+*_VS2005x86xASL_IPF_CC_PATH = DEF(VS2005x86_BIN64)\cl.exe
+*_VS2005x86xASL_IPF_ASM_PATH = DEF(VS2005x86_BIN64)\ias.exe
+*_VS2005x86xASL_IPF_SLINK_PATH = DEF(VS2005x86_BIN64)\lib.exe
+*_VS2005x86xASL_IPF_DLINK_PATH = DEF(VS2005x86_BIN64)\link.exe
+*_VS2005x86xASL_IPF_ASLCC_PATH = DEF(VS2005x86_BIN64)\cl.exe
+*_VS2005x86xASL_IPF_ASLPP_PATH = DEF(VS2005x86_BIN64)\cl.exe
+*_VS2005x86xASL_IPF_ASLDLINK_PATH = DEF(VS2005x86_BIN64)\link.exe
+
+ DEBUG_VS2005x86xASL_IPF_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /EHs-c- /GR- /Gy /Os /GL /FIAutoGen.h /QIPF_fr32 /Zi
+RELEASE_VS2005x86xASL_IPF_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /EHs-c- /GR- /Gy /Os /GL /FIAutoGen.h /QIPF_fr32
+ DEBUG_VS2005x86xASL_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W4 -d debug
+RELEASE_VS2005x86xASL_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W4
+ DEBUG_VS2005x86xASL_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb /DEBUG
+RELEASE_VS2005x86xASL_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb
+
+##################
+# EBC definitions
+##################
+*_VS2005x86xASL_EBC_*_FAMILY = INTEL
+
+*_VS2005x86xASL_EBC_MAKE_PATH = DEF(VS2005x86_BIN)\nmake.exe
+*_VS2005x86xASL_EBC_PP_PATH = DEF(EBC_BINx86)\iec.exe
+*_VS2005x86xASL_EBC_VFRPP_PATH = DEF(EBC_BINx86)\iec.exe
+*_VS2005x86xASL_EBC_CC_PATH = DEF(EBC_BINx86)\iec.exe
+*_VS2005x86xASL_EBC_SLINK_PATH = DEF(EBC_BINx86)\link.exe
+*_VS2005x86xASL_EBC_DLINK_PATH = DEF(EBC_BINx86)\link.exe
+
+*_VS2005x86xASL_EBC_MAKE_FLAGS = /nologo
+*_VS2005x86xASL_EBC_PP_FLAGS = /nologo /E /TC /FIAutoGen.h
+*_VS2005x86xASL_EBC_CC_FLAGS = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)
+*_VS2005x86xASL_EBC_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
+*_VS2005x86xASL_EBC_SLINK_FLAGS = /lib /NOLOGO /MACHINE:EBC
+*_VS2005x86xASL_EBC_DLINK_FLAGS = "C:\Program Files (x86)\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP
+
+
+
+####################################################################################
+#
+# Microsoft Visual Studio 2008
+#
+# VS2008 - Microsoft Visual Studio 2005 All Edition, including Standard, Professional, Express, TeamSuite
+# ASL - Intel ACPI Source Language Compiler
+####################################################################################
+# VS2008 - Microsoft Visual Studio 2008 ALL Edition, including Standard, Professional, Express, TeamSuite
+*_VS2008_*_*_FAMILY = MSFT
+
+*_VS2008_*_MAKE_PATH = DEF(VS2008_BIN)\nmake.exe
+*_VS2008_*_MAKE_FLAGS = /nologo
+*_VS2008_*_RC_PATH = DEF(WINSDK_BIN)\rc.exe
+
+*_VS2008_*_SLINK_FLAGS = /NOLOGO /LTCG
+*_VS2008_*_APP_FLAGS = /nologo /E /TC
+*_VS2008_*_PP_FLAGS = /nologo /E /TC /FIAutoGen.h
+*_VS2008_*_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
+
+*_VS2008_*_ASM16_PATH = DEF(VS2008_BIN)\ml.exe
+
+##################
+# ASL definitions
+##################
+*_VS2008_*_ASL_PATH = DEF(DEFAULT_WIN_ASL_BIN)
+*_VS2008_*_ASL_FLAGS = DEF(DEFAULT_WIN_ASL_FLAGS)
+*_VS2008_*_ASL_OUTFLAGS = DEF(DEFAULT_WIN_ASL_OUTFLAGS)
+*_VS2008_*_ASLCC_FLAGS = DEF(MSFT_ASLCC_FLAGS)
+*_VS2008_*_ASLPP_FLAGS = DEF(MSFT_ASLPP_FLAGS)
+*_VS2008_*_ASLDLINK_FLAGS = DEF(MSFT_ASLDLINK_FLAGS)
+
+##################
+# IA32 definitions
+##################
+*_VS2008_IA32_*_DLL = DEF(VS2008_DLL)
+
+*_VS2008_IA32_MAKE_PATH = DEF(VS2008_BIN)\nmake.exe
+*_VS2008_IA32_CC_PATH = DEF(VS2008_BIN)\cl.exe
+*_VS2008_IA32_VFRPP_PATH = DEF(VS2008_BIN)\cl.exe
+*_VS2008_IA32_SLINK_PATH = DEF(VS2008_BIN)\lib.exe
+*_VS2008_IA32_DLINK_PATH = DEF(VS2008_BIN)\link.exe
+*_VS2008_IA32_APP_PATH = DEF(VS2008_BIN)\cl.exe
+*_VS2008_IA32_PP_PATH = DEF(VS2008_BIN)\cl.exe
+*_VS2008_IA32_ASM_PATH = DEF(VS2008_BIN)\ml.exe
+*_VS2008_IA32_ASLCC_PATH = DEF(VS2008_BIN)\cl.exe
+*_VS2008_IA32_ASLPP_PATH = DEF(VS2008_BIN)\cl.exe
+*_VS2008_IA32_ASLDLINK_PATH = DEF(VS2008_BIN)\link.exe
+
+ *_VS2008_IA32_MAKE_FLAGS = /nologo
+ DEBUG_VS2008_IA32_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm
+RELEASE_VS2008_IA32_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF
+ DEBUG_VS2008_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
+RELEASE_VS2008_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd
+ DEBUG_VS2008_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+RELEASE_VS2008_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
+
+##################
+# X64 definitions
+##################
+*_VS2008_X64_*_DLL = DEF(VS2008_DLL)
+
+*_VS2008_X64_CC_PATH = DEF(VS2008_BINX64)\cl.exe
+*_VS2008_X64_PP_PATH = DEF(VS2008_BINX64)\cl.exe
+*_VS2008_X64_APP_PATH = DEF(VS2008_BINX64)\cl.exe
+*_VS2008_X64_VFRPP_PATH = DEF(VS2008_BINX64)\cl.exe
+*_VS2008_X64_ASM_PATH = DEF(VS2008_BINX64)\ml64.exe
+*_VS2008_X64_SLINK_PATH = DEF(VS2008_BINX64)\lib.exe
+*_VS2008_X64_DLINK_PATH = DEF(VS2008_BINX64)\link.exe
+*_VS2008_X64_ASLCC_PATH = DEF(VS2008_BINX64)\cl.exe
+*_VS2008_X64_ASLPP_PATH = DEF(VS2008_BINX64)\cl.exe
+*_VS2008_X64_ASLDLINK_PATH = DEF(VS2008_BINX64)\link.exe
+
+
+ DEBUG_VS2008_X64_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm
+RELEASE_VS2008_X64_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF
+ DEBUG_VS2008_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi
+RELEASE_VS2008_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd
+ DEBUG_VS2008_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+RELEASE_VS2008_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
+
+##################
+# IPF definitions
+##################
+*_VS2008_IPF_*_DLL = DEF(VS2008_DLL)
+
+*_VS2008_IPF_PP_PATH = DEF(VS2008_BIN64)\cl.exe
+*_VS2008_IPF_APP_PATH = DEF(VS2008_BIN64)\cl.exe
+*_VS2008_IPF_VFRPP_PATH = DEF(VS2008_BIN64)\cl.exe
+*_VS2008_IPF_CC_PATH = DEF(VS2008_BIN64)\cl.exe
+*_VS2008_IPF_ASM_PATH = DEF(VS2008_BIN64)\ias.exe
+*_VS2008_IPF_SLINK_PATH = DEF(VS2008_BIN64)\lib.exe
+*_VS2008_IPF_DLINK_PATH = DEF(VS2008_BIN64)\link.exe
+*_VS2008_IPF_ASLCC_PATH = DEF(VS2008_BIN64)\cl.exe
+*_VS2008_IPF_ASLPP_PATH = DEF(VS2008_BIN64)\cl.exe
+*_VS2008_IPF_ASLDLINK_PATH = DEF(VS2008_BIN64)\link.exe
+
+ DEBUG_VS2008_IPF_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /EHs-c- /GR- /Gy /Os /GL /FIAutoGen.h /QIPF_fr32 /Zi
+RELEASE_VS2008_IPF_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /EHs-c- /GR- /Gy /Os /GL /FIAutoGen.h /QIPF_fr32
+ DEBUG_VS2008_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W4 -d debug
+RELEASE_VS2008_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W4
+ DEBUG_VS2008_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb /DEBUG
+RELEASE_VS2008_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb
+
+##################
+# EBC definitions
+##################
+*_VS2008_EBC_*_FAMILY = INTEL
+
+*_VS2008_EBC_MAKE_PATH = DEF(VS2008_BIN)\nmake.exe
+*_VS2008_EBC_PP_PATH = DEF(EBC_BIN)\iec.exe
+*_VS2008_EBC_VFRPP_PATH = DEF(EBC_BIN)\iec.exe
+*_VS2008_EBC_CC_PATH = DEF(EBC_BIN)\iec.exe
+*_VS2008_EBC_SLINK_PATH = DEF(EBC_BIN)\link.exe
+*_VS2008_EBC_DLINK_PATH = DEF(EBC_BIN)\link.exe
+
+*_VS2008_EBC_MAKE_FLAGS = /nologo
+*_VS2008_EBC_PP_FLAGS = /nologo /E /TC /FIAutoGen.h
+*_VS2008_EBC_CC_FLAGS = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)
+*_VS2008_EBC_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
+*_VS2008_EBC_SLINK_FLAGS = /lib /NOLOGO /MACHINE:EBC
+*_VS2008_EBC_DLINK_FLAGS = "C:\Program Files\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP
+
+####################################################################################
+#
+# Microsoft Visual Studio 2008
+#
+# VS2008 - Microsoft Visual Studio 2008 All Edition, including Standard, Professional, Express, TeamSuite
+# ASL - Microsoft ACPI Source Language Compiler (asl.exe)
+####################################################################################
+# VS2008xASL - Microsoft Visual Studio 2008 ALL Edition, including Standard, Professional, Express, TeamSuite
+*_VS2008xASL_*_*_FAMILY = MSFT
+
+*_VS2008xASL_*_MAKE_PATH = DEF(VS2008_BIN)\nmake.exe
+*_VS2008xASL_*_MAKE_FLAG = /nologo
+*_VS2008xASL_*_RC_PATH = DEF(WINSDK_BIN)\rc.exe
+
+*_VS2008xASL_*_SLINK_FLAGS = /NOLOGO /LTCG
+*_VS2008xASL_*_APP_FLAGS = /nologo /E /TC
+*_VS2008xASL_*_PP_FLAGS = /nologo /E /TC /FIAutoGen.h
+*_VS2008xASL_*_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
+
+*_VS2008xASL_*_ASM16_PATH = DEF(VS2008_BIN)\ml.exe
+
+##################
+# ASL definitions
+##################
+*_VS2008xASL_*_ASL_PATH = DEF(WIN_ASL_BIN)
+*_VS2008xASL_*_ASL_FLAGS =
+*_VS2008xASL_*_ASL_OUTFLAGS = DEF(MS_ASL_OUTFLAGS)
+*_VS2008xASL_*_ASLCC_FLAGS = DEF(MSFT_ASLCC_FLAGS)
+*_VS2008xASL_*_ASLPP_FLAGS = DEF(MSFT_ASLPP_FLAGS)
+*_VS2008xASL_*_ASLDLINK_FLAGS = DEF(MSFT_ASLDLINK_FLAGS)
+
+##################
+# IA32 definitions
+##################
+*_VS2008xASL_IA32_*_DLL = DEF(VS2008_DLL)
+
+*_VS2008xASL_IA32_MAKE_PATH = DEF(VS2008_BIN)\nmake.exe
+*_VS2008xASL_IA32_CC_PATH = DEF(VS2008_BIN)\cl.exe
+*_VS2008xASL_IA32_VFRPP_PATH = DEF(VS2008_BIN)\cl.exe
+*_VS2008xASL_IA32_SLINK_PATH = DEF(VS2008_BIN)\lib.exe
+*_VS2008xASL_IA32_DLINK_PATH = DEF(VS2008_BIN)\link.exe
+*_VS2008xASL_IA32_APP_PATH = DEF(VS2008_BIN)\cl.exe
+*_VS2008xASL_IA32_PP_PATH = DEF(VS2008_BIN)\cl.exe
+*_VS2008xASL_IA32_ASM_PATH = DEF(VS2008_BIN)\ml.exe
+*_VS2008xASL_IA32_ASLCC_PATH = DEF(VS2008_BIN)\cl.exe
+*_VS2008xASL_IA32_ASLPP_PATH = DEF(VS2008_BIN)\cl.exe
+*_VS2008xASL_IA32_ASLDLINK_PATH = DEF(VS2008_BIN)\link.exe
+
+ *_VS2008xASL_IA32_MAKE_FLAGS = /nologo
+ DEBUG_VS2008xASL_IA32_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm
+RELEASE_VS2008xASL_IA32_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF
+ DEBUG_VS2008xASL_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
+RELEASE_VS2008xASL_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd
+ DEBUG_VS2008xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+RELEASE_VS2008xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
+
+##################
+# X64 definitions
+##################
+*_VS2008xASL_X64_*_DLL = DEF(VS2008_DLL)
+
+*_VS2008xASL_X64_CC_PATH = DEF(VS2008_BINX64)\cl.exe
+*_VS2008xASL_X64_PP_PATH = DEF(VS2008_BINX64)\cl.exe
+*_VS2008xASL_X64_APP_PATH = DEF(VS2008_BINX64)\cl.exe
+*_VS2008xASL_X64_VFRPP_PATH = DEF(VS2008_BINX64)\cl.exe
+*_VS2008xASL_X64_ASM_PATH = DEF(VS2008_BINX64)\ml64.exe
+*_VS2008xASL_X64_SLINK_PATH = DEF(VS2008_BINX64)\lib.exe
+*_VS2008xASL_X64_DLINK_PATH = DEF(VS2008_BINX64)\link.exe
+*_VS2008xASL_X64_ASLCC_PATH = DEF(VS2008_BINX64)\cl.exe
+*_VS2008xASL_X64_ASLPP_PATH = DEF(VS2008_BINX64)\cl.exe
+*_VS2008xASL_X64_ASLDLINK_PATH = DEF(VS2008_BINX64)\link.exe
+
+
+ DEBUG_VS2008xASL_X64_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm
+RELEASE_VS2008xASL_X64_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF
+ DEBUG_VS2008xASL_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi
+RELEASE_VS2008xASL_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd
+ DEBUG_VS2008xASL_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+RELEASE_VS2008xASL_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
+
+##################
+# IPF definitions
+##################
+*_VS2008xASL_IPF_*_DLL = DEF(VS2008_DLL)
+
+*_VS2008xASL_IPF_PP_PATH = DEF(VS2008_BIN64)\cl.exe
+*_VS2008xASL_IPF_APP_PATH = DEF(VS2008_BIN64)\cl.exe
+*_VS2008xASL_IPF_VFRPP_PATH = DEF(VS2008_BIN64)\cl.exe
+*_VS2008xASL_IPF_CC_PATH = DEF(VS2008_BIN64)\cl.exe
+*_VS2008xASL_IPF_ASM_PATH = DEF(VS2008_BIN64)\ias.exe
+*_VS2008xASL_IPF_SLINK_PATH = DEF(VS2008_BIN64)\lib.exe
+*_VS2008xASL_IPF_DLINK_PATH = DEF(VS2008_BIN64)\link.exe
+*_VS2008xASL_IPF_ASLCC_PATH = DEF(VS2008_BIN64)\cl.exe
+*_VS2008xASL_IPF_ASLPP_PATH = DEF(VS2008_BIN64)\cl.exe
+*_VS2008xASL_IPF_ASLDLINK_PATH = DEF(VS2008_BIN64)\link.exe
+
+ DEBUG_VS2008xASL_IPF_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /EHs-c- /GR- /Gy /Os /GL /FIAutoGen.h /QIPF_fr32 /Zi
+RELEASE_VS2008xASL_IPF_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /EHs-c- /GR- /Gy /Os /GL /FIAutoGen.h /QIPF_fr32
+ DEBUG_VS2008xASL_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W4 -d debug
+RELEASE_VS2008xASL_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W4
+ DEBUG_VS2008xASL_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb /DEBUG
+RELEASE_VS2008xASL_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb
+
+##################
+# EBC definitions
+##################
+*_VS2008xASL_EBC_*_FAMILY = INTEL
+
+*_VS2008xASL_EBC_MAKE_PATH = DEF(VS2008_BIN)\nmake.exe
+*_VS2008xASL_EBC_PP_PATH = DEF(EBC_BIN)\iec.exe
+*_VS2008xASL_EBC_VFRPP_PATH = DEF(EBC_BIN)\iec.exe
+*_VS2008xASL_EBC_CC_PATH = DEF(EBC_BIN)\iec.exe
+*_VS2008xASL_EBC_SLINK_PATH = DEF(EBC_BIN)\link.exe
+*_VS2008xASL_EBC_DLINK_PATH = DEF(EBC_BIN)\link.exe
+
+*_VS2008xASL_EBC_MAKE_FLAGS = /nologo
+*_VS2008xASL_EBC_PP_FLAGS = /nologo /E /TC /FIAutoGen.h
+*_VS2008xASL_EBC_CC_FLAGS = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)
+*_VS2008xASL_EBC_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
+*_VS2008xASL_EBC_SLINK_FLAGS = /lib /NOLOGO /MACHINE:EBC
+*_VS2008xASL_EBC_DLINK_FLAGS = "C:\Program Files\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP
+
+
+####################################################################################
+# VS2008x86 - Microsoft Visual Studio 2008 (x86) with Intel ASL
+# ASL - Intel ACPI Source Language Compiler (iasl.exe)
+####################################################################################
+# VS2008x86 - Microsoft Visual Studio 2008 (x86) ALL Edition with Intel ASL
+*_VS2008x86_*_*_FAMILY = MSFT
+
+*_VS2008x86_*_MAKE_PATH = DEF(VS2008x86_BIN)\nmake.exe
+*_VS2008x86_*_MAKE_FLAG = /nologo
+*_VS2008x86_*_RC_PATH = DEF(WINSDK_BIN)\rc.exe
+
+*_VS2008x86_*_MAKE_FLAGS = /nologo
+*_VS2008x86_*_SLINK_FLAGS = /NOLOGO /LTCG
+*_VS2008x86_*_APP_FLAGS = /nologo /E /TC
+*_VS2008x86_*_PP_FLAGS = /nologo /E /TC /FIAutoGen.h
+*_VS2008x86_*_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
+
+*_VS2008x86_*_ASM16_PATH = DEF(VS2008x86_BIN)\ml.exe
+
+##################
+# ASL definitions
+##################
+*_VS2008x86_*_ASL_PATH = DEF(WIN_IASL_BIN)
+*_VS2008x86_*_ASL_FLAGS = DEF(DEFAULT_WIN_ASL_FLAGS)
+*_VS2008x86_*_ASL_OUTFLAGS = DEF(DEFAULT_WIN_ASL_OUTFLAGS)
+*_VS2008x86_*_ASLCC_FLAGS = DEF(MSFT_ASLCC_FLAGS)
+*_VS2008x86_*_ASLPP_FLAGS = DEF(MSFT_ASLPP_FLAGS)
+*_VS2008x86_*_ASLDLINK_FLAGS = DEF(MSFT_ASLDLINK_FLAGS)
+
+##################
+# IA32 definitions
+##################
+*_VS2008x86_IA32_*_DLL = DEF(VS2008x86_DLL)
+
+*_VS2008x86_IA32_MAKE_PATH = DEF(VS2008x86_BIN)\nmake.exe
+*_VS2008x86_IA32_CC_PATH = DEF(VS2008x86_BIN)\cl.exe
+*_VS2008x86_IA32_VFRPP_PATH = DEF(VS2008x86_BIN)\cl.exe
+*_VS2008x86_IA32_ASLCC_PATH = DEF(VS2008x86_BIN)\cl.exe
+*_VS2008x86_IA32_ASLPP_PATH = DEF(VS2008x86_BIN)\cl.exe
+*_VS2008x86_IA32_SLINK_PATH = DEF(VS2008x86_BIN)\lib.exe
+*_VS2008x86_IA32_DLINK_PATH = DEF(VS2008x86_BIN)\link.exe
+*_VS2008x86_IA32_ASLDLINK_PATH= DEF(VS2008x86_BIN)\link.exe
+*_VS2008x86_IA32_APP_PATH = DEF(VS2008x86_BIN)\cl.exe
+*_VS2008x86_IA32_PP_PATH = DEF(VS2008x86_BIN)\cl.exe
+*_VS2008x86_IA32_ASM_PATH = DEF(VS2008x86_BIN)\ml.exe
+
+ *_VS2008x86_IA32_MAKE_FLAGS = /nologo
+ DEBUG_VS2008x86_IA32_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm
+RELEASE_VS2008x86_IA32_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF
+ DEBUG_VS2008x86_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
+RELEASE_VS2008x86_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd
+ DEBUG_VS2008x86_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+RELEASE_VS2008x86_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
+
+##################
+# X64 definitions
+##################
+*_VS2008x86_X64_*_DLL = DEF(VS2008x86_DLL)
+
+*_VS2008x86_X64_CC_PATH = DEF(VS2008x86_BINX64)\cl.exe
+*_VS2008x86_X64_PP_PATH = DEF(VS2008x86_BINX64)\cl.exe
+*_VS2008x86_X64_APP_PATH = DEF(VS2008x86_BINX64)\cl.exe
+*_VS2008x86_X64_VFRPP_PATH = DEF(VS2008x86_BINX64)\cl.exe
+*_VS2008x86_X64_ASLCC_PATH = DEF(VS2008x86_BINX64)\cl.exe
+*_VS2008x86_X64_ASLPP_PATH = DEF(VS2008x86_BINX64)\cl.exe
+*_VS2008x86_X64_ASM_PATH = DEF(VS2008x86_BINX64)\ml64.exe
+*_VS2008x86_X64_SLINK_PATH = DEF(VS2008x86_BINX64)\lib.exe
+*_VS2008x86_X64_DLINK_PATH = DEF(VS2008x86_BINX64)\link.exe
+*_VS2008x86_X64_ASLDLINK_PATH = DEF(VS2008x86_BINX64)\link.exe
+
+ DEBUG_VS2008x86_X64_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm
+RELEASE_VS2008x86_X64_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF
+ DEBUG_VS2008x86_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi
+RELEASE_VS2008x86_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd
+ DEBUG_VS2008x86_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+RELEASE_VS2008x86_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
+
+##################
+# IPF definitions
+##################
+*_VS2008x86_IPF_*_DLL = DEF(VS2008x86_DLL)
+
+*_VS2008x86_IPF_PP_PATH = DEF(VS2008x86_BIN64)\cl.exe
+*_VS2008x86_IPF_APP_PATH = DEF(VS2008x86_BIN64)\cl.exe
+*_VS2008x86_IPF_VFRPP_PATH = DEF(VS2008x86_BIN64)\cl.exe
+*_VS2008x86_IPF_ASLCC_PATH = DEF(VS2008x86_BIN64)\cl.exe
+*_VS2008x86_IPF_ASLPP_PATH = DEF(VS2008x86_BIN64)\cl.exe
+*_VS2008x86_IPF_CC_PATH = DEF(VS2008x86_BIN64)\cl.exe
+*_VS2008x86_IPF_ASM_PATH = DEF(VS2008x86_BIN64)\ias.exe
+*_VS2008x86_IPF_SLINK_PATH = DEF(VS2008x86_BIN64)\lib.exe
+*_VS2008x86_IPF_DLINK_PATH = DEF(VS2008x86_BIN64)\link.exe
+*_VS2008x86_IPF_ASLDLINK_PATH = DEF(VS2008x86_BIN64)\link.exe
+
+ DEBUG_VS2008x86_IPF_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /EHs-c- /GR- /Gy /Os /GL /FIAutoGen.h /QIPF_fr32 /Zi
+RELEASE_VS2008x86_IPF_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /EHs-c- /GR- /Gy /Os /GL /FIAutoGen.h /QIPF_fr32
+ DEBUG_VS2008x86_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W4 -d debug
+RELEASE_VS2008x86_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W4
+ DEBUG_VS2008x86_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb /DEBUG
+RELEASE_VS2008x86_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb
+
+
+####################################################################################
+# VS2008x86xASL - Microsoft Visual Studio 2008 with Microsoft ASL
+# ASL - Microsoft ACPI Source Language Compiler (asl.exe)
+####################################################################################
+*_VS2008x86xASL_*_*_FAMILY = MSFT
+
+*_VS2008x86xASL_*_MAKE_PATH = DEF(VS2008x86_BIN)\nmake.exe
+*_VS2008x86xASL_*_MAKE_FLAG = /nologo
+*_VS2008x86xASL_*_RC_PATH = DEF(WINSDK_BIN)\rc.exe
+
+*_VS2008x86xASL_*_MAKE_FLAGS = /nologo
+*_VS2008x86xASL_*_SLINK_FLAGS = /NOLOGO /LTCG
+*_VS2008x86xASL_*_APP_FLAGS = /nologo /E /TC
+*_VS2008x86xASL_*_PP_FLAGS = /nologo /E /TC /FIAutoGen.h
+*_VS2008x86xASL_*_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
+
+*_VS2008x86xASL_*_ASM16_PATH = DEF(VS2008x86_BIN)\ml.exe
+
+##################
+# ASL definitions
+##################
+*_VS2008x86xASL_*_ASL_PATH = DEF(WIN_ASL_BIN)
+*_VS2008x86xASL_*_ASL_FLAGS = DEF(MS_ASL_FLAGS)
+*_VS2008x86xASL_*_ASL_OUTFLAGS = DEF(MS_ASL_OUTFLAGS)
+*_VS2008x86xASL_*_ASLCC_FLAGS = DEF(MSFT_ASLCC_FLAGS)
+*_VS2008x86xASL_*_ASLPP_FLAGS = DEF(MSFT_ASLPP_FLAGS)
+*_VS2008x86xASL_*_ASLDLINK_FLAGS = DEF(MSFT_ASLDLINK_FLAGS)
+
+##################
+# IA32 definitions
+##################
+*_VS2008x86xASL_IA32_*_DLL = DEF(VS2008x86_DLL)
+
+*_VS2008x86xASL_IA32_MAKE_PATH = DEF(VS2008x86_BIN)\nmake.exe
+*_VS2008x86xASL_IA32_CC_PATH = DEF(VS2008x86_BIN)\cl.exe
+*_VS2008x86xASL_IA32_VFRPP_PATH = DEF(VS2008x86_BIN)\cl.exe
+*_VS2008x86xASL_IA32_ASLCC_PATH = DEF(VS2008x86_BIN)\cl.exe
+*_VS2008x86xASL_IA32_ASLPP_PATH = DEF(VS2008x86_BIN)\cl.exe
+*_VS2008x86xASL_IA32_SLINK_PATH = DEF(VS2008x86_BIN)\lib.exe
+*_VS2008x86xASL_IA32_DLINK_PATH = DEF(VS2008x86_BIN)\link.exe
+*_VS2008x86xASL_IA32_ASLDLINK_PATH= DEF(VS2008x86_BIN)\link.exe
+*_VS2008x86xASL_IA32_APP_PATH = DEF(VS2008x86_BIN)\cl.exe
+*_VS2008x86xASL_IA32_PP_PATH = DEF(VS2008x86_BIN)\cl.exe
+*_VS2008x86xASL_IA32_ASM_PATH = DEF(VS2008x86_BIN)\ml.exe
+
+ *_VS2008x86xASL_IA32_MAKE_FLAGS = /nologo
+ DEBUG_VS2008x86xASL_IA32_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm
+RELEASE_VS2008x86xASL_IA32_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF
+ DEBUG_VS2008x86xASL_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
+RELEASE_VS2008x86xASL_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd
+ DEBUG_VS2008x86xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+RELEASE_VS2008x86xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
+
+##################
+# X64 definitions
+##################
+*_VS2008x86xASL_X64_*_DLL = DEF(VS2008x86_DLL)
+
+*_VS2008x86xASL_X64_CC_PATH = DEF(VS2008x86_BINX64)\cl.exe
+*_VS2008x86xASL_X64_PP_PATH = DEF(VS2008x86_BINX64)\cl.exe
+*_VS2008x86xASL_X64_APP_PATH = DEF(VS2008x86_BINX64)\cl.exe
+*_VS2008x86xASL_X64_VFRPP_PATH = DEF(VS2008x86_BINX64)\cl.exe
+*_VS2008x86xASL_X64_ASLCC_PATH = DEF(VS2008x86_BINX64)\cl.exe
+*_VS2008x86xASL_X64_ASLPP_PATH = DEF(VS2008x86_BINX64)\cl.exe
+*_VS2008x86xASL_X64_ASM_PATH = DEF(VS2008x86_BINX64)\ml64.exe
+*_VS2008x86xASL_X64_SLINK_PATH = DEF(VS2008x86_BINX64)\lib.exe
+*_VS2008x86xASL_X64_DLINK_PATH = DEF(VS2008x86_BINX64)\link.exe
+*_VS2008x86xASL_X64_ASLDLINK_PATH = DEF(VS2008x86_BINX64)\link.exe
+
+ DEBUG_VS2008x86xASL_X64_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm
+RELEASE_VS2008x86xASL_X64_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF
+ DEBUG_VS2008x86xASL_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi
+RELEASE_VS2008x86xASL_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd
+ DEBUG_VS2008x86xASL_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+RELEASE_VS2008x86xASL_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
+
+##################
+# IPF definitions
+##################
+*_VS2008x86xASL_IPF_*_DLL = DEF(VS2008x86_DLL)
+
+*_VS2008x86xASL_IPF_PP_PATH = DEF(VS2008x86_BIN64)\cl.exe
+*_VS2008x86xASL_IPF_APP_PATH = DEF(VS2008x86_BIN64)\cl.exe
+*_VS2008x86xASL_IPF_VFRPP_PATH = DEF(VS2008x86_BIN64)\cl.exe
+*_VS2008x86xASL_IPF_ASLCC_PATH = DEF(VS2008x86_BIN64)\cl.exe
+*_VS2008x86xASL_IPF_ASLPP_PATH = DEF(VS2008x86_BIN64)\cl.exe
+*_VS2008x86xASL_IPF_CC_PATH = DEF(VS2008x86_BIN64)\cl.exe
+*_VS2008x86xASL_IPF_ASM_PATH = DEF(VS2008x86_BIN64)\ias.exe
+*_VS2008x86xASL_IPF_SLINK_PATH = DEF(VS2008x86_BIN64)\lib.exe
+*_VS2008x86xASL_IPF_DLINK_PATH = DEF(VS2008x86_BIN64)\link.exe
+*_VS2008x86xASL_IPF_ASLDLINK_PATH = DEF(VS2008x86_BIN64)\link.exe
+
+ DEBUG_VS2008x86xASL_IPF_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /EHs-c- /GR- /Gy /Os /GL /FIAutoGen.h /QIPF_fr32 /Zi
+RELEASE_VS2008x86xASL_IPF_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /EHs-c- /GR- /Gy /Os /GL /FIAutoGen.h /QIPF_fr32
+ DEBUG_VS2008x86xASL_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W4 -d debug
+RELEASE_VS2008x86xASL_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W4
+ DEBUG_VS2008x86xASL_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb /DEBUG
+RELEASE_VS2008x86xASL_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb
+
+
+####################################################################################
+#
+# Microsoft Device Driver Kit 3790.1830 (IA-32, X64, Itanium, with Link Time Code Generation)
+# And Intel ACPI Compiler
+#
+####################################################################################
+# DDK3790 - Microsoft Windows DDK 3790.1830
+# ASL - Intel ACPI Source Language Compiler (iasl.exe)
+*_DDK3790_*_*_FAMILY = MSFT
+
+*_DDK3790_*_MAKE_PATH = DEF(WINDDK_BIN32)\nmake.exe
+*_DDK3790_*_MAKE_FLAGS = /nologo
+*_DDK3790_*_RC_PATH = DEF(WINDDK_BIN32)\rc.exe
+
+*_DDK3790_*_PP_FLAGS = /nologo /E /TC /FIAutoGen.h
+*_DDK3790_*_APP_FLAGS = /nologo /E /TC
+*_DDK3790_*_SLINK_FLAGS = /nologo /LTCG
+*_DDK3790_*_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
+
+*_DDK3790_*_ASM16_PATH = DEF(WINDDK_BIN32)\ml.exe
+
+##################
+# ASL definitions
+##################
+*_DDK3790_*_ASL_PATH = DEF(DEFAULT_WIN_ASL_BIN)
+*_DDK3790_*_ASL_FLAGS = DEF(DEFAULT_WIN_ASL_FLAGS)
+*_DDK3790_*_ASL_OUTFLAGS = DEF(DEFAULT_WIN_ASL_OUTFLAGS)
+*_DDK3790_*_ASLCC_FLAGS = DEF(MSFT_ASLCC_FLAGS)
+*_DDK3790_*_ASLPP_FLAGS = DEF(MSFT_ASLPP_FLAGS)
+*_DDK3790_*_ASLDLINK_FLAGS = DEF(MSFT_ASLDLINK_FLAGS)
+
+##################
+# IA32 definitions
+##################
+*_DDK3790_IA32_CC_PATH = DEF(WINDDK_BIN32)\cl.exe
+*_DDK3790_IA32_SLINK_PATH = DEF(WINDDK_BIN32)\lib.exe
+*_DDK3790_IA32_DLINK_PATH = DEF(WINDDK_BIN32)\link.exe
+*_DDK3790_IA32_PP_PATH = DEF(WINDDK_BIN32)\cl.exe
+*_DDK3790_IA32_VFRPP_PATH = DEF(WINDDK_BIN32)\cl.exe
+*_DDK3790_IA32_APP_PATH = DEF(WINDDK_BIN32)\cl.exe
+*_DDK3790_IA32_ASM_PATH = DEF(WINDDK_BIN32)\ml.exe
+*_DDK3790_IA32_ASLCC_PATH = DEF(WINDDK_BIN32)\cl.exe
+*_DDK3790_IA32_ASLPP_PATH = DEF(WINDDK_BIN32)\cl.exe
+*_DDK3790_IA32_ASLDLINK_PATH = DEF(WINDDK_BIN32)\link.exe
+
+ DEBUG_DDK3790_IA32_CC_FLAGS = /nologo /c /WX /W4 /Gy /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm
+RELEASE_DDK3790_IA32_CC_FLAGS = /nologo /c /WX /W4 /Gy /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF
+ DEBUG_DDK3790_IA32_ASM_FLAGS = /nologo /c /WX /W3 /coff /Cx /Zd /Zi
+RELEASE_DDK3790_IA32_ASM_FLAGS = /nologo /c /WX /W3 /coff /Cx /Zd
+ DEBUG_DDK3790_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+RELEASE_DDK3790_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4078 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
+
+##################
+# x64 definitions
+##################
+*_DDK3790_X64_CC_PATH = DEF(WINDDK_BINX64)\cl.exe
+*_DDK3790_X64_SLINK_PATH = DEF(WINDDK_BINX64)\lib.exe
+*_DDK3790_X64_DLINK_PATH = DEF(WINDDK_BINX64)\link.exe
+*_DDK3790_X64_PP_PATH = DEF(WINDDK_BINX64)\cl.exe
+*_DDK3790_X64_VFRPP_PATH = DEF(WINDDK_BINX64)\cl.exe
+*_DDK3790_X64_APP_PATH = DEF(WINDDK_BINX64)\cl.exe
+*_DDK3790_X64_ASM_PATH = DEF(WINDDK_BINX64)\ml64.exe
+*_DDK3790_X64_ASLCC_PATH = DEF(WINDDK_BINX64)\cl.exe
+*_DDK3790_X64_ASLPP_PATH = DEF(WINDDK_BINX64)\cl.exe
+*_DDK3790_X64_ASLDLINK_PATH = DEF(WINDDK_BINX64)\link.exe
+
+ DEBUG_DDK3790_X64_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm
+RELEASE_DDK3790_X64_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF
+ DEBUG_DDK3790_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi
+RELEASE_DDK3790_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd
+ DEBUG_DDK3790_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+RELEASE_DDK3790_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4078 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
+
+##################
+# IPF definitions
+##################
+*_DDK3790_IPF_CC_PATH = DEF(WINDDK_BIN64)\cl.exe
+*_DDK3790_IPF_SLINK_PATH = DEF(WINDDK_BIN64)\lib.exe
+*_DDK3790_IPF_DLINK_PATH = DEF(WINDDK_BIN64)\link.exe
+*_DDK3790_IPF_PP_PATH = DEF(WINDDK_BIN64)\cl.exe
+*_DDK3790_IPF_VFRPP_PATH = DEF(WINDDK_BIN64)\cl.exe
+*_DDK3790_IPF_APP_PATH = DEF(WINDDK_BIN64)\cl.exe
+*_DDK3790_IPF_ASM_PATH = DEF(WINDDK_BIN64)\ias.exe
+*_DDK3790_IPF_ASLCC_PATH = DEF(WINDDK_BIN64)\cl.exe
+*_DDK3790_IPF_ASLPP_PATH = DEF(WINDDK_BIN64)\cl.exe
+*_DDK3790_IPF_ASLDLINK_PATH = DEF(WINDDK_BIN64)\link.exe
+
+
+ DEBUG_DDK3790_IPF_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /EHs-c- /GR- /Gy /Os /GL /FIAutoGen.h /QIPF_fr32 /Zi
+RELEASE_DDK3790_IPF_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /EHs-c- /GR- /Gy /Os /GL /FIAutoGen.h /QIPF_fr32
+ DEBUG_DDK3790_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W4 -d debug
+RELEASE_DDK3790_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W4
+ DEBUG_DDK3790_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb /DEBUG
+RELEASE_DDK3790_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb
+
+##################
+# EBC definitions
+##################
+*_DDK3790_EBC_*_FAMILY = INTEL
+
+*_DDK3790_EBC_PP_PATH = DEF(EBC_BIN)\iec.exe
+*_DDK3790_EBC_CC_PATH = DEF(EBC_BIN)\iec.exe
+*_DDK3790_EBC_DLINK_PATH = DEF(EBC_BIN)\link.exe
+*_DDK3790_EBC_SLINK_PATH = DEF(EBC_BIN)\link.exe
+*_DDK3790_EBC_VFRPP_PATH = DEF(EBC_BIN)\iec.exe
+
+*_DDK3790_EBC_CC_FLAGS = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)
+*_DDK3790_EBC_SLINK_FLAGS = /lib /NOLOGO /MACHINE:EBC
+*_DDK3790_EBC_DLINK_FLAGS = "C:\Program Files\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER
+
+####################################################################################
+#
+# Microsoft Device Driver Kit 3790.1830 (IA-32, X64, Itanium, with Link Time Code Generation)
+# And Microsoft ACPI Compiler
+#
+####################################################################################
+# DDK3790xASL - Microsoft Windows DDK 3790.1830
+# ASL - Microsoft ACPI Source Language Compiler (asl.exe)
+*_DDK3790xASL_*_*_FAMILY = MSFT
+
+*_DDK3790xASL_*_MAKE_PATH = DEF(WINDDK_BIN32)\nmake.exe
+*_DDK3790xASL_*_MAKE_FLAGS = /nologo
+*_DDK3790xASL_*_RC_PATH = DEF(WINDDK_BIN32)\rc.exe
+
+*_DDK3790xASL_*_PP_FLAGS = /nologo /E /TC /FIAutoGen.h
+*_DDK3790xASL_*_APP_FLAGS = /nologo /E /TC
+*_DDK3790xASL_*_SLINK_FLAGS = /nologo /LTCG
+*_DDK3790xASL_*_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
+
+*_DDK3790xASL_*_ASM16_PATH = DEF(WINDDK_BIN32)\ml.exe
+
+##################
+# ASL definitions
+##################
+*_DDK3790xASL_*_ASL_PATH = DEF(WIN_ASL_BIN)
+*_DDK3790xASL_*_ASL_FLAGS =
+*_DDK3790xASL_*_ASL_OUTFLAGS = DEF(MS_ASL_OUTFLAGS)
+*_DDK3790xASL_*_ASLCC_FLAGS = DEF(MSFT_ASLCC_FLAGS)
+*_DDK3790xASL_*_ASLPP_FLAGS = DEF(MSFT_ASLPP_FLAGS)
+*_DDK3790xASL_*_ASLDLINK_FLAGS = DEF(MSFT_ASLDLINK_FLAGS)
+
+##################
+# IA32 definitions
+##################
+*_DDK3790xASL_IA32_CC_PATH = DEF(WINDDK_BIN32)\cl.exe
+*_DDK3790xASL_IA32_SLINK_PATH = DEF(WINDDK_BIN32)\lib.exe
+*_DDK3790xASL_IA32_DLINK_PATH = DEF(WINDDK_BIN32)\link.exe
+*_DDK3790xASL_IA32_PP_PATH = DEF(WINDDK_BIN32)\cl.exe
+*_DDK3790xASL_IA32_VFRPP_PATH = DEF(WINDDK_BIN32)\cl.exe
+*_DDK3790xASL_IA32_APP_PATH = DEF(WINDDK_BIN32)\cl.exe
+*_DDK3790xASL_IA32_ASM_PATH = DEF(WINDDK_BIN32)\ml.exe
+*_DDK3790xASL_IA32_ASLCC_PATH = DEF(WINDDK_BIN32)\cl.exe
+*_DDK3790xASL_IA32_ASLPP_PATH = DEF(WINDDK_BIN32)\cl.exe
+*_DDK3790xASL_IA32_ASLDLINK_PATH = DEF(WINDDK_BIN32)\link.exe
+
+ DEBUG_DDK3790xASL_IA32_CC_FLAGS = /nologo /c /WX /W4 /Gy /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm
+RELEASE_DDK3790xASL_IA32_CC_FLAGS = /nologo /c /WX /W4 /Gy /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF
+ DEBUG_DDK3790xASL_IA32_ASM_FLAGS = /nologo /c /WX /W3 /coff /Cx /Zd /Zi
+RELEASE_DDK3790xASL_IA32_ASM_FLAGS = /nologo /c /WX /W3 /coff /Cx /Zd
+ DEBUG_DDK3790xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+RELEASE_DDK3790xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4078 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
+
+##################
+# x64 definitions
+##################
+*_DDK3790xASL_X64_CC_PATH = DEF(WINDDK_BINX64)\cl.exe
+*_DDK3790xASL_X64_SLINK_PATH = DEF(WINDDK_BINX64)\lib.exe
+*_DDK3790xASL_X64_DLINK_PATH = DEF(WINDDK_BINX64)\link.exe
+*_DDK3790xASL_X64_PP_PATH = DEF(WINDDK_BINX64)\cl.exe
+*_DDK3790xASL_X64_VFRPP_PATH = DEF(WINDDK_BINX64)\cl.exe
+*_DDK3790xASL_X64_APP_PATH = DEF(WINDDK_BINX64)\cl.exe
+*_DDK3790xASL_X64_ASM_PATH = DEF(WINDDK_BINX64)\ml64.exe
+*_DDK3790xASL_X64_ASLCC_PATH = DEF(WINDDK_BINX64)\cl.exe
+*_DDK3790xASL_X64_ASLPP_PATH = DEF(WINDDK_BINX64)\cl.exe
+*_DDK3790xASL_X64_ASLDLINK_PATH = DEF(WINDDK_BINX64)\link.exe
+
+ DEBUG_DDK3790xASL_X64_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm
+RELEASE_DDK3790xASL_X64_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF
+ DEBUG_DDK3790xASL_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi
+RELEASE_DDK3790xASL_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd
+ DEBUG_DDK3790xASL_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+RELEASE_DDK3790xASL_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4078 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
+
+##################
+# IPF definitions
+##################
+*_DDK3790xASL_IPF_CC_PATH = DEF(WINDDK_BIN64)\cl.exe
+*_DDK3790xASL_IPF_SLINK_PATH = DEF(WINDDK_BIN64)\lib.exe
+*_DDK3790xASL_IPF_DLINK_PATH = DEF(WINDDK_BIN64)\link.exe
+*_DDK3790xASL_IPF_PP_PATH = DEF(WINDDK_BIN64)\cl.exe
+*_DDK3790xASL_IPF_VFRPP_PATH = DEF(WINDDK_BIN64)\cl.exe
+*_DDK3790xASL_IPF_APP_PATH = DEF(WINDDK_BIN64)\cl.exe
+*_DDK3790xASL_IPF_ASM_PATH = DEF(WINDDK_BIN64)\ias.exe
+*_DDK3790xASL_IPF_ASLCC_PATH = DEF(WINDDK_BIN64)\cl.exe
+*_DDK3790xASL_IPF_ASLPP_PATH = DEF(WINDDK_BIN64)\cl.exe
+*_DDK3790xASL_IPF_ASLDLINK_PATH = DEF(WINDDK_BIN64)\link.exe
+
+
+ DEBUG_DDK3790xASL_IPF_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /EHs-c- /GR- /Gy /Os /GL /FIAutoGen.h /QIPF_fr32 /Zi
+RELEASE_DDK3790xASL_IPF_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /EHs-c- /GR- /Gy /Os /GL /FIAutoGen.h /QIPF_fr32
+ DEBUG_DDK3790xASL_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W4 -d debug
+RELEASE_DDK3790xASL_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W4
+ DEBUG_DDK3790xASL_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb /DEBUG
+RELEASE_DDK3790xASL_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb
+
+##################
+# EBC definitions
+##################
+*_DDK3790xASL_EBC_*_FAMILY = INTEL
+
+*_DDK3790xASL_EBC_PP_PATH = DEF(EBC_BIN)\iec.exe
+*_DDK3790xASL_EBC_CC_PATH = DEF(EBC_BIN)\iec.exe
+*_DDK3790xASL_EBC_DLINK_PATH = DEF(EBC_BIN)\link.exe
+*_DDK3790xASL_EBC_SLINK_PATH = DEF(EBC_BIN)\link.exe
+*_DDK3790xASL_EBC_VFRPP_PATH = DEF(EBC_BIN)\iec.exe
+
+*_DDK3790xASL_EBC_CC_FLAGS = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)
+*_DDK3790xASL_EBC_SLINK_FLAGS = /lib /NOLOGO /MACHINE:EBC
+*_DDK3790xASL_EBC_DLINK_FLAGS = "C:\Program Files\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER
+
+
+####################################################################################
+# GCC Common
+####################################################################################
+
+*_*_*_OBJCOPY_PATH = echo
+*_*_*_OBJCOPY_FLAGS = objcopy not needed for
+*_*_*_SYMRENAME_PATH = echo
+*_*_*_SYMRENAME_FLAGS = Symbol renaming not needed for
+
+DEFINE GCC_ALL_CC_FLAGS = -g -Os -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-missing-braces -Wno-array-bounds -c -include AutoGen.h
+DEFINE GCC_IA32_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -m32 -malign-double -freorder-blocks -freorder-blocks-and-partition -O2 -mno-stack-arg-probe
+DEFINE GCC_X64_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -mno-red-zone -Wno-address -mno-stack-arg-probe
+DEFINE GCC_IPF_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -minline-int-divide-min-latency
+DEFINE GCC_DLINK_FLAGS_COMMON = -nostdlib --pie
+DEFINE GCC_IA32_X64_DLINK_COMMON = DEF(GCC_DLINK_FLAGS_COMMON) --gc-sections
+DEFINE GCC_IA32_X64_ASLDLINK_FLAGS = DEF(GCC_IA32_X64_DLINK_COMMON) --entry _ReferenceAcpiTable -u $(IMAGE_ENTRY_POINT)
+DEFINE GCC_IA32_X64_DLINK_FLAGS = DEF(GCC_IA32_X64_DLINK_COMMON) --entry _$(IMAGE_ENTRY_POINT) --file-alignment 0x20 --section-alignment 0x20 -Map $(DEST_DIR_DEBUG)/$(BASE_NAME).map
+DEFINE GCC_IPF_DLINK_FLAGS = -nostdlib -O2 --gc-sections --dll -static --entry $(IMAGE_ENTRY_POINT) --undefined $(IMAGE_ENTRY_POINT) -Map $(DEST_DIR_DEBUG)/$(BASE_NAME).map
+DEFINE GCC_IPF_OBJCOPY_FLAGS = -I elf64-ia64-little -O efi-bsdrv-ia64
+DEFINE GCC_IPF_SYMRENAME_FLAGS = --redefine-sym memcpy=CopyMem
+DEFINE GCC_ASM_FLAGS = -c -x assembler -imacros $(DEST_DIR_DEBUG)/AutoGen.h
+DEFINE GCC_PP_FLAGS = -E -x assembler-with-cpp -include $(DEST_DIR_DEBUG)/AutoGen.h
+DEFINE GCC_VFRPP_FLAGS = -x c -E -P -DVFRCOMPILE --include $(DEST_DIR_DEBUG)/$(MODULE_NAME)StrDefs.h
+DEFINE GCC_ASLPP_FLAGS = -x c -E -P
+DEFINE GCC_ASLCC_FLAGS = -x c
+DEFINE GCC_WINDRES_FLAGS = -J rc -O coff
+DEFINE GCC_IA32_RC_FLAGS = -I binary -O elf32-i386 -B i386 --rename-section .data=.hii
+DEFINE GCC_X64_RC_FLAGS = -I binary -O elf64-x86-64 -B i386 --rename-section .data=.hii
+DEFINE GCC_IPF_RC_FLAGS = -I binary -O elf64-ia64-little -B ia64 --rename-section .data=.hii
+
+DEFINE GCC44_ALL_CC_FLAGS = -g -fshort-wchar -fno-stack-protector -fno-strict-aliasing -Wall -Werror -Wno-missing-braces -Wno-array-bounds -ffunction-sections -fdata-sections -c -include AutoGen.h -DSTRING_ARRAY_NAME=$(BASE_NAME)Strings
+DEFINE GCC44_IA32_CC_FLAGS = DEF(GCC44_ALL_CC_FLAGS) -m32 -malign-double -D EFI32
+DEFINE GCC44_X64_CC_FLAGS = DEF(GCC44_ALL_CC_FLAGS) -m64 "-DEFIAPI=__attribute__((ms_abi))" -DNO_BUILTIN_VA_FUNCS -mno-red-zone -Wno-address -mcmodel=large
+DEFINE GCC44_IA32_X64_DLINK_COMMON = -nostdlib -n -q --gc-sections
+DEFINE GCC44_IA32_X64_ASLDLINK_FLAGS = DEF(GCC44_IA32_X64_DLINK_COMMON) --entry ReferenceAcpiTable -u ReferenceAcpiTable
+DEFINE GCC44_IA32_X64_DLINK_FLAGS = DEF(GCC44_IA32_X64_DLINK_COMMON) --entry $(IMAGE_ENTRY_POINT) -u $(IMAGE_ENTRY_POINT) -Map $(DEST_DIR_DEBUG)/$(BASE_NAME).map
+DEFINE GCC44_X64_DLINK_FLAGS = DEF(GCC44_IA32_X64_DLINK_FLAGS) -melf_x86_64 --oformat=elf64-x86-64 --script=$(EDK_TOOLS_PATH)/Scripts/gcc4.4-ld-script
+DEFINE GCC44_ASM_FLAGS = DEF(GCC_ASM_FLAGS)
+
+DEFINE GCC45_IA32_CC_FLAGS = DEF(GCC44_IA32_CC_FLAGS)
+DEFINE GCC45_X64_CC_FLAGS = DEF(GCC44_X64_CC_FLAGS)
+DEFINE GCC45_IA32_X64_DLINK_COMMON = DEF(GCC44_IA32_X64_DLINK_COMMON)
+DEFINE GCC45_IA32_X64_ASLDLINK_FLAGS = DEF(GCC44_IA32_X64_ASLDLINK_FLAGS)
+DEFINE GCC45_IA32_X64_DLINK_FLAGS = DEF(GCC44_IA32_X64_DLINK_FLAGS)
+DEFINE GCC45_X64_DLINK_FLAGS = DEF(GCC44_X64_DLINK_FLAGS)
+DEFINE GCC45_ASM_FLAGS = DEF(GCC44_ASM_FLAGS)
+
+####################################################################################
+#
+# Unix GCC And Intel Linux ACPI Compiler
+#
+####################################################################################
+# UNIXGCC - UNIX GCC
+# ASL - Intel Linux ACPI Source Language Compiler (iasl)
+*_UNIXGCC_*_*_FAMILY = GCC
+
+*_UNIXGCC_*_MAKE_PATH = make
+*_UNIXGCC_*_ASL_PATH = DEF(UNIX_IASL_BIN)
+
+*_UNIXGCC_IA32_DLINK_FLAGS = DEF(GCC_IA32_X64_DLINK_FLAGS) --image-base=0
+*_UNIXGCC_X64_DLINK_FLAGS = DEF(GCC_IA32_X64_DLINK_FLAGS) --image-base=0
+*_UNIXGCC_IA32_ASLDLINK_FLAGS = DEF(GCC_IA32_X64_ASLDLINK_FLAGS)
+*_UNIXGCC_X64_ASLDLINK_FLAGS = DEF(GCC_IA32_X64_ASLDLINK_FLAGS)
+*_UNIXGCC_*_ASM_FLAGS = DEF(GCC_ASM_FLAGS)
+*_UNIXGCC_*_PP_FLAGS = DEF(GCC_PP_FLAGS)
+*_UNIXGCC_*_ASLPP_FLAGS = DEF(GCC_ASLPP_FLAGS)
+*_UNIXGCC_*_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS)
+*_UNIXGCC_*_VFRPP_FLAGS = DEF(GCC_VFRPP_FLAGS)
+*_UNIXGCC_*_APP_FLAGS =
+*_UNIXGCC_*_ASL_FLAGS = DEF(IASL_FLAGS)
+*_UNIXGCC_*_ASL_OUTFLAGS = DEF(IASL_OUTFLAGS)
+
+##################
+# IA32 definitions
+##################
+*_UNIXGCC_IA32_OBJCOPY_PATH = DEF(UNIXGCC_IA32_PETOOLS_PREFIX)objcopy
+*_UNIXGCC_IA32_PP_PATH = DEF(UNIXGCC_IA32_PETOOLS_PREFIX)gcc
+*_UNIXGCC_IA32_CC_PATH = DEF(UNIXGCC_IA32_PETOOLS_PREFIX)gcc
+*_UNIXGCC_IA32_SLINK_PATH = DEF(UNIXGCC_IA32_PETOOLS_PREFIX)ar
+*_UNIXGCC_IA32_DLINK_PATH = DEF(UNIXGCC_IA32_PETOOLS_PREFIX)ld
+*_UNIXGCC_IA32_ASLPP_PATH = DEF(UNIXGCC_IA32_PETOOLS_PREFIX)gcc
+*_UNIXGCC_IA32_ASLCC_PATH = DEF(UNIXGCC_IA32_PETOOLS_PREFIX)gcc
+*_UNIXGCC_IA32_ASLDLINK_PATH = DEF(UNIXGCC_IA32_PETOOLS_PREFIX)ld
+*_UNIXGCC_IA32_ASM_PATH = DEF(UNIXGCC_IA32_PETOOLS_PREFIX)gcc
+*_UNIXGCC_IA32_VFRPP_PATH = DEF(UNIXGCC_IA32_PETOOLS_PREFIX)gcc
+*_UNIXGCC_IA32_RC_PATH = DEF(UNIXGCC_IA32_PETOOLS_PREFIX)objcopy
+
+*_UNIXGCC_IA32_CC_FLAGS = DEF(GCC_IA32_CC_FLAGS)
+*_UNIXGCC_IA32_RC_FLAGS = DEF(GCC_IA32_RC_FLAGS)
+*_UNIXGCC_IA32_OBJCOPY_FLAGS =
+
+##################
+# X64 definitions
+##################
+*_UNIXGCC_X64_CC_PATH = DEF(UNIXGCC_X64_PETOOLS_PREFIX)gcc
+*_UNIXGCC_X64_ASLCC_PATH = DEF(UNIXGCC_X64_PETOOLS_PREFIX)gcc
+*_UNIXGCC_X64_SLINK_PATH = DEF(UNIXGCC_X64_PETOOLS_PREFIX)ar
+*_UNIXGCC_X64_DLINK_PATH = DEF(UNIXGCC_X64_PETOOLS_PREFIX)ld
+*_UNIXGCC_X64_ASLDLINK_PATH = DEF(UNIXGCC_X64_PETOOLS_PREFIX)ld
+*_UNIXGCC_X64_ASM_PATH = DEF(UNIXGCC_X64_PETOOLS_PREFIX)gcc
+*_UNIXGCC_X64_PP_PATH = DEF(UNIXGCC_X64_PETOOLS_PREFIX)gcc
+*_UNIXGCC_X64_ASLPP_PATH = DEF(UNIXGCC_X64_PETOOLS_PREFIX)gcc
+*_UNIXGCC_X64_VFRPP_PATH = DEF(UNIXGCC_X64_PETOOLS_PREFIX)gcc
+*_UNIXGCC_X64_RC_PATH = DEF(UNIXGCC_X64_PETOOLS_PREFIX)objcopy
+*_UNIXGCC_X64_OBJCOPY_PATH = DEF(UNIXGCC_X64_PETOOLS_PREFIX)objcopy
+
+*_UNIXGCC_X64_CC_FLAGS = DEF(GCC_X64_CC_FLAGS)
+*_UNIXGCC_X64_RC_FLAGS = DEF(GCC_X64_RC_FLAGS)
+*_UNIXGCC_X64_OBJCOPY_FLAGS =
+
+##################
+# IPF definitions
+##################
+*_UNIXGCC_IPF_CC_PATH = DEF(UNIXGCC_IPF_PETOOLS_PREFIX)gcc
+*_UNIXGCC_IPF_ASLCC_PATH = DEF(UNIXGCC_IPF_PETOOLS_PREFIX)gcc
+*_UNIXGCC_IPF_SLINK_PATH = DEF(UNIXGCC_IPF_PETOOLS_PREFIX)ar
+*_UNIXGCC_IPF_DLINK_PATH = DEF(UNIXGCC_IPF_PETOOLS_PREFIX)ld
+*_UNIXGCC_IPF_ASLDLINK_PATH = DEF(UNIXGCC_IPF_PETOOLS_PREFIX)ld
+*_UNIXGCC_IPF_ASM_PATH = DEF(UNIXGCC_IPF_PETOOLS_PREFIX)gcc
+*_UNIXGCC_IPF_PP_PATH = DEF(UNIXGCC_IPF_PETOOLS_PREFIX)gcc
+*_UNIXGCC_IPF_ASLPP_PATH = DEF(UNIXGCC_IPF_PETOOLS_PREFIX)gcc
+*_UNIXGCC_IPF_VFRPP_PATH = DEF(UNIXGCC_IPF_PETOOLS_PREFIX)gcc
+*_UNIXGCC_IPF_OBJCOPY_PATH = DEF(UNIXGCC_IPF_PETOOLS_PREFIX)objcopy
+*_UNIXGCC_IPF_SYMRENAME_PATH = DEF(UNIXGCC_IPF_PETOOLS_PREFIX)objcopy
+*_UNIXGCC_IPF_RC_PATH = DEF(UNIXGCC_IPF_PETOOLS_PREFIX)objcopy
+
+*_UNIXGCC_IPF_CC_FLAGS = DEF(GCC_IPF_CC_FLAGS)
+*_UNIXGCC_IPF_DLINK_FLAGS = DEF(GCC_IPF_DLINK_FLAGS)
+*_UNIXGCC_IPF_OBJCOPY_FLAGS = DEF(GCC_IPF_OBJCOPY_FLAGS)
+*_UNIXGCC_IPF_SYMRENAME_FLAGS = DEF(GCC_IPF_SYMRENAME_FLAGS)
+*_UNIXGCC_IPF_RC_FLAGS = DEF(GCC_IPF_RC_FLAGS)
+
+
+####################################################################################
+#
+# GCC 4.4 - This configuration is used to compile under Linux to produce
+# PE/COFF binaries using GCC 4.4.
+#
+####################################################################################
+*_GCC44_*_*_FAMILY = GCC
+
+*_GCC44_*_MAKE_PATH = make
+*_GCC44_*_ASL_PATH = DEF(UNIX_IASL_BIN)
+
+*_GCC44_*_PP_FLAGS = DEF(GCC_PP_FLAGS)
+*_GCC44_*_ASLPP_FLAGS = DEF(GCC_ASLPP_FLAGS)
+*_GCC44_*_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS)
+*_GCC44_*_VFRPP_FLAGS = DEF(GCC_VFRPP_FLAGS)
+*_GCC44_*_APP_FLAGS =
+*_GCC44_*_ASL_FLAGS = DEF(IASL_FLAGS)
+*_GCC44_*_ASL_OUTFLAGS = DEF(IASL_OUTFLAGS)
+
+##################
+# GCC44 IA32 definitions
+##################
+*_GCC44_IA32_CC_PATH = DEF(GCC44_IA32_PREFIX)gcc
+*_GCC44_IA32_SLINK_PATH = DEF(GCC44_IA32_PREFIX)ar
+*_GCC44_IA32_DLINK_PATH = DEF(GCC44_IA32_PREFIX)ld
+*_GCC44_IA32_ASLDLINK_PATH = DEF(GCC44_IA32_PREFIX)ld
+*_GCC44_IA32_ASM_PATH = DEF(GCC44_IA32_PREFIX)gcc
+*_GCC44_IA32_PP_PATH = DEF(GCC44_IA32_PREFIX)gcc
+*_GCC44_IA32_VFRPP_PATH = DEF(GCC44_IA32_PREFIX)gcc
+*_GCC44_IA32_ASLCC_PATH = DEF(GCC44_IA32_PREFIX)gcc
+*_GCC44_IA32_ASLPP_PATH = DEF(GCC44_IA32_PREFIX)gcc
+*_GCC44_IA32_RC_PATH = DEF(GCC44_IA32_PREFIX)objcopy
+
+*_GCC44_IA32_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS) -m32
+*_GCC44_IA32_ASLDLINK_FLAGS = DEF(GCC44_IA32_X64_ASLDLINK_FLAGS) -m elf_i386
+*_GCC44_IA32_ASM_FLAGS = DEF(GCC44_ASM_FLAGS) -m32 --32 -march=i386
+*_GCC44_IA32_CC_FLAGS = DEF(GCC44_IA32_CC_FLAGS) -Os
+*_GCC44_IA32_DLINK_FLAGS = DEF(GCC44_IA32_X64_DLINK_FLAGS) -m elf_i386 --oformat=elf32-i386
+*_GCC44_IA32_RC_FLAGS = DEF(GCC_IA32_RC_FLAGS)
+
+##################
+# GCC44 X64 definitions
+##################
+*_GCC44_X64_CC_PATH = DEF(GCC44_X64_PREFIX)gcc
+*_GCC44_X64_SLINK_PATH = DEF(GCC44_X64_PREFIX)ar
+*_GCC44_X64_DLINK_PATH = DEF(GCC44_X64_PREFIX)ld
+*_GCC44_X64_ASLDLINK_PATH = DEF(GCC44_X64_PREFIX)ld
+*_GCC44_X64_ASM_PATH = DEF(GCC44_X64_PREFIX)gcc
+*_GCC44_X64_PP_PATH = DEF(GCC44_X64_PREFIX)gcc
+*_GCC44_X64_VFRPP_PATH = DEF(GCC44_X64_PREFIX)gcc
+*_GCC44_X64_ASLCC_PATH = DEF(GCC44_X64_PREFIX)gcc
+*_GCC44_X64_ASLPP_PATH = DEF(GCC44_X64_PREFIX)gcc
+*_GCC44_X64_RC_PATH = DEF(GCC44_X64_PREFIX)objcopy
+
+*_GCC44_X64_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS) -m64
+*_GCC44_X64_ASLDLINK_FLAGS = DEF(GCC44_IA32_X64_ASLDLINK_FLAGS) -m elf_x86_64
+*_GCC44_X64_ASM_FLAGS = DEF(GCC44_ASM_FLAGS) -m64 --64 -melf_x86_64
+*_GCC44_X64_CC_FLAGS = DEF(GCC44_X64_CC_FLAGS)
+*_GCC44_X64_DLINK_FLAGS = DEF(GCC44_X64_DLINK_FLAGS)
+*_GCC44_X64_RC_FLAGS = DEF(GCC_X64_RC_FLAGS)
+
+
+####################################################################################
+#
+# GCC 4.5 - This configuration is used to compile under Linux to produce
+# PE/COFF binaries using GCC 4.5.
+#
+####################################################################################
+*_GCC45_*_*_FAMILY = GCC
+
+*_GCC45_*_MAKE_PATH = make
+*_GCC45_*_ASL_PATH = DEF(UNIX_IASL_BIN)
+
+*_GCC45_*_PP_FLAGS = DEF(GCC_PP_FLAGS)
+*_GCC45_*_ASLPP_FLAGS = DEF(GCC_ASLPP_FLAGS)
+*_GCC45_*_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS)
+*_GCC45_*_VFRPP_FLAGS = DEF(GCC_VFRPP_FLAGS)
+*_GCC45_*_APP_FLAGS =
+*_GCC45_*_ASL_FLAGS = DEF(IASL_FLAGS)
+*_GCC45_*_ASL_OUTFLAGS = DEF(IASL_OUTFLAGS)
+
+##################
+# GCC45 IA32 definitions
+##################
+*_GCC45_IA32_CC_PATH = DEF(GCC45_IA32_PREFIX)gcc
+*_GCC45_IA32_SLINK_PATH = DEF(GCC45_IA32_PREFIX)ar
+*_GCC45_IA32_DLINK_PATH = DEF(GCC45_IA32_PREFIX)ld
+*_GCC45_IA32_ASLDLINK_PATH = DEF(GCC45_IA32_PREFIX)ld
+*_GCC45_IA32_ASM_PATH = DEF(GCC45_IA32_PREFIX)gcc
+*_GCC45_IA32_PP_PATH = DEF(GCC45_IA32_PREFIX)gcc
+*_GCC45_IA32_VFRPP_PATH = DEF(GCC45_IA32_PREFIX)gcc
+*_GCC45_IA32_ASLCC_PATH = DEF(GCC45_IA32_PREFIX)gcc
+*_GCC45_IA32_ASLPP_PATH = DEF(GCC45_IA32_PREFIX)gcc
+*_GCC45_IA32_RC_PATH = DEF(GCC45_IA32_PREFIX)objcopy
+
+*_GCC45_IA32_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS) -m32
+*_GCC45_IA32_ASLDLINK_FLAGS = DEF(GCC45_IA32_X64_ASLDLINK_FLAGS) -m elf_i386
+*_GCC45_IA32_ASM_FLAGS = DEF(GCC45_ASM_FLAGS) -m32 --32 -march=i386
+*_GCC45_IA32_CC_FLAGS = DEF(GCC45_IA32_CC_FLAGS) -Os
+*_GCC45_IA32_DLINK_FLAGS = DEF(GCC45_IA32_X64_DLINK_FLAGS) -m elf_i386 --oformat=elf32-i386
+*_GCC45_IA32_RC_FLAGS = DEF(GCC_IA32_RC_FLAGS)
+
+##################
+# GCC45 X64 definitions
+##################
+*_GCC45_X64_CC_PATH = DEF(GCC45_X64_PREFIX)gcc
+*_GCC45_X64_SLINK_PATH = DEF(GCC45_X64_PREFIX)ar
+*_GCC45_X64_DLINK_PATH = DEF(GCC45_X64_PREFIX)ld
+*_GCC45_X64_ASLDLINK_PATH = DEF(GCC45_X64_PREFIX)ld
+*_GCC45_X64_ASM_PATH = DEF(GCC45_X64_PREFIX)gcc
+*_GCC45_X64_PP_PATH = DEF(GCC45_X64_PREFIX)gcc
+*_GCC45_X64_VFRPP_PATH = DEF(GCC45_X64_PREFIX)gcc
+*_GCC45_X64_ASLCC_PATH = DEF(GCC45_X64_PREFIX)gcc
+*_GCC45_X64_ASLPP_PATH = DEF(GCC45_X64_PREFIX)gcc
+*_GCC45_X64_RC_PATH = DEF(GCC45_X64_PREFIX)objcopy
+
+*_GCC45_X64_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS) -m64
+*_GCC45_X64_ASLDLINK_FLAGS = DEF(GCC45_IA32_X64_ASLDLINK_FLAGS) -m elf_x86_64
+*_GCC45_X64_ASM_FLAGS = DEF(GCC45_ASM_FLAGS) -m64 --64 -melf_x86_64
+*_GCC45_X64_CC_FLAGS = DEF(GCC45_X64_CC_FLAGS)
+*_GCC45_X64_DLINK_FLAGS = DEF(GCC45_X64_DLINK_FLAGS)
+*_GCC45_X64_RC_FLAGS = DEF(GCC_X64_RC_FLAGS)
+
+
+####################################################################################
+#
+# Cygwin GCC And Intel ACPI Compiler
+#
+####################################################################################
+# CYGGCC - CygWin GCC
+# ASL - Intel ACPI Source Language Compiler (iasl.exe)
+*_CYGGCC_*_*_FAMILY = GCC
+
+*_CYGGCC_*_*_DLL = DEF(CYGWIN_BIN)
+*_CYGGCC_*_MAKE_PATH = DEF(MS_VS_BIN)\nmake.exe
+*_CYGGCC_*_ASL_PATH = DEF(DEFAULT_WIN_ASL_BIN)
+
+*_CYGGCC_IA32_DLINK_FLAGS = DEF(GCC_IA32_X64_DLINK_FLAGS) --image-base=0
+*_CYGGCC_X64_DLINK_FLAGS = DEF(GCC_IA32_X64_DLINK_FLAGS) --image-base=0
+*_CYGGCC_IA32_ASLDLINK_FLAGS = DEF(GCC_IA32_X64_ASLDLINK_FLAGS)
+*_CYGGCC_X64_ASLDLINK_FLAGS = DEF(GCC_IA32_X64_ASLDLINK_FLAGS)
+*_CYGGCC_*_MAKE_FLAGS = /nologo
+*_CYGGCC_*_ASM_FLAGS = DEF(GCC_ASM_FLAGS)
+*_CYGGCC_*_PP_FLAGS = DEF(GCC_PP_FLAGS)
+*_CYGGCC_*_ASLPP_FLAGS = DEF(GCC_ASLPP_FLAGS)
+*_CYGGCC_*_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS)
+*_CYGGCC_*_VFRPP_FLAGS = DEF(GCC_VFRPP_FLAGS)
+*_CYGGCC_*_APP_FLAGS =
+*_CYGGCC_*_ASL_FLAGS = DEF(DEFAULT_WIN_ASL_FLAGS)
+*_CYGGCC_*_ASL_OUTFLAGS = DEF(DEFAULT_WIN_ASL_OUTFLAGS)
+
+##################
+# IA32 definitions
+##################
+*_CYGGCC_IA32_CC_PATH = DEF(CYGWIN_BINIA32)gcc
+*_CYGGCC_IA32_SLINK_PATH = DEF(CYGWIN_BINIA32)ar
+*_CYGGCC_IA32_DLINK_PATH = DEF(CYGWIN_BINIA32)ld
+*_CYGGCC_IA32_ASM_PATH = DEF(CYGWIN_BINIA32)gcc
+*_CYGGCC_IA32_PP_PATH = DEF(CYGWIN_BINIA32)gcc
+*_CYGGCC_IA32_APP_PATH = DEF(CYGWIN_BINIA32)gcc
+*_CYGGCC_IA32_VFRPP_PATH = DEF(CYGWIN_BINIA32)gcc
+*_CYGGCC_IA32_ASLCC_PATH = DEF(CYGWIN_BINIA32)gcc
+*_CYGGCC_IA32_ASLPP_PATH = DEF(CYGWIN_BINIA32)gcc
+*_CYGGCC_IA32_ASLDLINK_PATH = DEF(CYGWIN_BINIA32)ld
+*_CYGGCC_IA32_RC_PATH = DEF(CYGWIN_BINIA32)objcopy
+*_CYGGCC_IA32_OBJCOPY_PATH = DEF(CYGWIN_BINIA32)objcopy
+
+*_CYGGCC_IA32_CC_FLAGS = DEF(GCC_IA32_CC_FLAGS)
+*_CYGGCC_IA32_RC_FLAGS = DEF(GCC_IA32_RC_FLAGS)
+*_CYGGCC_IA32_OBJCOPY_FLAGS =
+
+##################
+# X64 definitions
+##################
+*_CYGGCC_X64_CC_PATH = DEF(CYGWIN_BINX64)gcc
+*_CYGGCC_X64_SLINK_PATH = DEF(CYGWIN_BINX64)ar
+*_CYGGCC_X64_DLINK_PATH = DEF(CYGWIN_BINX64)ld
+*_CYGGCC_X64_ASM_PATH = DEF(CYGWIN_BINX64)gcc
+*_CYGGCC_X64_PP_PATH = DEF(CYGWIN_BINX64)gcc
+*_CYGGCC_X64_APP_PATH = DEF(CYGWIN_BINX64)gcc
+*_CYGGCC_X64_VFRPP_PATH = DEF(CYGWIN_BINX64)gcc
+*_CYGGCC_X64_ASLCC_PATH = DEF(CYGWIN_BINX64)gcc
+*_CYGGCC_X64_ASLPP_PATH = DEF(CYGWIN_BINX64)gcc
+*_CYGGCC_X64_ASLDLINK_PATH = DEF(CYGWIN_BINX64)ld
+*_CYGGCC_X64_RC_PATH = DEF(CYGWIN_BINX64)objcopy
+*_CYGGCC_X64_OBJCOPY_PATH = DEF(CYGWIN_BINX64)objcopy
+
+*_CYGGCC_X64_CC_FLAGS = DEF(GCC_X64_CC_FLAGS)
+*_CYGGCC_X64_RC_FLAGS = DEF(GCC_X64_RC_FLAGS)
+*_CYGGCC_X64_OBJCOPY_FLAGS =
+
+##################
+# IPF definitions
+##################
+*_CYGGCC_IPF_CC_PATH = DEF(CYGWIN_BINIPF)gcc
+*_CYGGCC_IPF_SLINK_PATH = DEF(CYGWIN_BINIPF)ar
+*_CYGGCC_IPF_DLINK_PATH = DEF(CYGWIN_BINIPF)ld
+*_CYGGCC_IPF_ASLDLINK_PATH = DEF(CYGWIN_BINIPF)ld
+*_CYGGCC_IPF_ASM_PATH = DEF(CYGWIN_BINIPF)gcc
+*_CYGGCC_IPF_PP_PATH = DEF(CYGWIN_BINIPF)gcc
+*_CYGGCC_IPF_VFRPP_PATH = DEF(CYGWIN_BINIPF)gcc
+*_CYGGCC_IPF_ASLCC_PATH = DEF(CYGWIN_BINIPF)gcc
+*_CYGGCC_IPF_ASLPP_PATH = DEF(CYGWIN_BINIPF)gcc
+*_CYGGCC_IPF_OBJCOPY_PATH = DEF(CYGWIN_BINIPF)objcopy
+*_CYGGCC_IPF_SYMRENAME_PATH = DEF(CYGWIN_BINIPF)objcopy
+*_CYGGCC_IPF_RC_PATH = DEF(CYGWIN_BINIPF)objcopy
+
+*_CYGGCC_IPF_CC_FLAGS = DEF(GCC_IPF_CC_FLAGS)
+*_CYGGCC_IPF_DLINK_FLAGS = DEF(GCC_IPF_DLINK_FLAGS)
+*_CYGGCC_IPF_OBJCOPY_FLAGS = DEF(GCC_IPF_OBJCOPY_FLAGS)
+*_CYGGCC_IPF_SYMRENAME_FLAGS = DEF(GCC_IPF_SYMRENAME_FLAGS)
+*_CYGGCC_IPF_RC_FLAGS = DEF(GCC_IPF_RC_FLAGS)
+
+##################
+# EBC definitions
+##################
+*_CYGGCC_EBC_*_FAMILY = INTEL
+
+*_CYGGCC_EBC_PP_PATH = DEF(EBC_BIN)\iec.exe
+*_CYGGCC_EBC_CC_PATH = DEF(EBC_BIN)\iec.exe
+*_CYGGCC_EBC_DLINK_PATH = DEF(EBC_BIN)\link.exe
+*_CYGGCC_EBC_SLINK_PATH = DEF(EBC_BIN)\link.exe
+*_CYGGCC_EBC_VFRPP_PATH = DEF(EBC_BIN)\iec.exe
+*_CYGGCC_EBC_RC_PATH = DEF(MS_VS_BIN)\rc.exe
+
+*_CYGGCC_EBC_CC_FLAGS = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)
+*_CYGGCC_EBC_SLINK_FLAGS = /lib /NOLOGO /MACHINE:EBC
+*_CYGGCC_EBC_DLINK_FLAGS = "C:\Program Files\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER
+
+####################################################################################
+#
+# Cygwin GCC And Microsoft ACPI Compiler
+#
+####################################################################################
+# CYGGCCxASL - CygWin GCC
+# ASL - Microsoft ACPI Source Language Compiler (asl.exe)
+*_CYGGCCxASL_*_*_FAMILY = GCC
+
+*_CYGGCCxASL_*_*_DLL = DEF(CYGWIN_BIN)
+*_CYGGCCxASL_*_MAKE_PATH = DEF(MS_VS_BIN)\nmake.exe
+
+*_CYGGCCxASL_*_MAKE_FLAGS = /nologo
+*_CYGGCCxASL_*_PP_FLAGS = -E -x assembler-with-cpp -include AutoGen.h
+*_CYGGCCxASL_*_DLINK_FLAGS = -nostdlib -O2 --gc-sections --dll --export-all-symbols --entry _$(IMAGE_ENTRY_POINT) --file-alignment 0x20 --section-alignment 0x20
+*_CYGGCCxASL_*_ASM_FLAGS = -c -x assembler -imacros AutoGen.h
+*_CYGGCCxASL_*_APP_FLAGS = -E -x assembler
+*_CYGGCCxASL_*_VFRPP_FLAGS = -x c -E -P -DVFRCOMPILE --include $(MODULE_NAME)StrDefs.h
+
+##################
+# ASL definitions
+##################
+*_CYGGCCxASL_*_ASL_PATH = DEF(WIN_ASL_BIN)
+*_CYGGCCxASL_*_ASL_FLAGS =
+*_CYGGCCxASL_*_ASL_OUTFLAGS = DEF(MS_ASL_OUTFLAGS)
+*_CYGGCCxASL_*_ASLCC_FLAGS = DEF(MSFT_ASLCC_FLAGS)
+*_CYGGCCxASL_*_ASLPP_FLAGS = DEF(MSFT_ASLPP_FLAGS)
+*_CYGGCCxASL_*_ASLDLINK_FLAGS = DEF(MSFT_ASLDLINK_FLAGS)
+
+##################
+# IA32 definitions
+##################
+*_CYGGCCxASL_IA32_CC_PATH = DEF(CYGWIN_BINIA32)gcc
+*_CYGGCCxASL_IA32_SLINK_PATH = DEF(CYGWIN_BINIA32)ar
+*_CYGGCCxASL_IA32_DLINK_PATH = DEF(CYGWIN_BINIA32)ld
+*_CYGGCCxASL_IA32_ASM_PATH = DEF(CYGWIN_BINIA32)gcc
+*_CYGGCCxASL_IA32_PP_PATH = DEF(CYGWIN_BINIA32)gcc
+*_CYGGCCxASL_IA32_APP_PATH = DEF(CYGWIN_BINIA32)gcc
+*_CYGGCCxASL_IA32_VFRPP_PATH = DEF(CYGWIN_BINIA32)gcc
+*_CYGGCCxASL_IA32_ASLCC_PATH = DEF(CYGWIN_BINIA32)gcc
+*_CYGGCCxASL_IA32_ASLPP_PATH = DEF(CYGWIN_BINIA32)gcc
+*_CYGGCCxASL_IA32_ASLDLINK_PATH = DEF(CYGWIN_BINIA32)ld
+*_CYGGCCxASL_IA32_RC_PATH = DEF(CYGWIN_BINIA32)objcopy
+
+*_CYGGCCxASL_IA32_CC_FLAGS = DEF(GCC_IA32_CC_FLAGS)
+*_CYGGCCxASL_IA32_RC_FLAGS = DEF(GCC_IA32_RC_FLAGS)
+
+##################
+# X64 definitions
+##################
+*_CYGGCCxASL_X64_CC_PATH = DEF(CYGWIN_BINX64)gcc
+*_CYGGCCxASL_X64_SLINK_PATH = DEF(CYGWIN_BINX64)ar
+*_CYGGCCxASL_X64_DLINK_PATH = DEF(CYGWIN_BINX64)ld
+*_CYGGCCxASL_X64_ASM_PATH = DEF(CYGWIN_BINX64)gcc
+*_CYGGCCxASL_X64_PP_PATH = DEF(CYGWIN_BINX64)gcc
+*_CYGGCCxASL_X64_APP_PATH = DEF(CYGWIN_BINX64)gcc
+*_CYGGCCxASL_X64_VFRPP_PATH = DEF(CYGWIN_BINX64)gcc
+*_CYGGCCxASL_X64_ASLCC_PATH = DEF(CYGWIN_BINX64)gcc
+*_CYGGCCxASL_X64_ASLPP_PATH = DEF(CYGWIN_BINX64)gcc
+*_CYGGCCxASL_X64_ASLDLINK_PATH = DEF(CYGWIN_BINX64)ld
+*_CYGGCCxASL_X64_RC_PATH = DEF(CYGWIN_BINX64)objcopy
+
+*_CYGGCCxASL_X64_CC_FLAGS = DEF(GCC_X64_CC_FLAGS)
+*_CYGGCCxASL_X64_RC_FLAGS = DEF(GCC_X64_RC_FLAGS)
+
+##################
+# IPF definitions
+##################
+*_CYGGCCxASL_IPF_CC_PATH = DEF(CYGWIN_BINIPF)gcc
+*_CYGGCCxASL_IPF_SLINK_PATH = DEF(CYGWIN_BINIPF)ar
+*_CYGGCCxASL_IPF_DLINK_PATH = DEF(CYGWIN_BINIPF)ld
+*_CYGGCCxASL_IPF_ASLDLINK_PATH = DEF(CYGWIN_BINIPF)ld
+*_CYGGCCxASL_IPF_ASM_PATH = DEF(CYGWIN_BINIPF)gcc
+*_CYGGCCxASL_IPF_PP_PATH = DEF(CYGWIN_BINIPF)gcc
+*_CYGGCCxASL_IPF_VFRPP_PATH = DEF(CYGWIN_BINIPF)gcc
+*_CYGGCCxASL_IPF_ASLCC_PATH = DEF(CYGWIN_BINIPF)gcc
+*_CYGGCCxASL_IPF_ASLPP_PATH = DEF(CYGWIN_BINIPF)gcc
+*_CYGGCCxASL_IPF_OBJCOPY_PATH = DEF(CYGWIN_BINIPF)objcopy
+*_CYGGCCxASL_IPF_SYMRENAME_PATH = DEF(CYGWIN_BINIPF)objcopy
+*_CYGGCCxASL_IPF_RC_PATH = DEF(CYGWIN_BINIPF)objcopy
+
+*_CYGGCCxASL_IPF_CC_FLAGS = DEF(GCC_IPF_CC_FLAGS)
+*_CYGGCCxASL_IPF_DLINK_FLAGS = DEF(GCC_IPF_DLINK_FLAGS)
+*_CYGGCCxASL_IPF_OBJCOPY_FLAGS = DEF(GCC_IPF_OBJCOPY_FLAGS)
+*_CYGGCCxASL_IPF_SYMRENAME_FLAGS = DEF(GCC_IPF_SYMRENAME_FLAGS)
+*_CYGGCCxASL_IPF_RC_FLAGS = DEF(GCC_IPF_RC_FLAGS)
+
+##################
+# EBC definitions
+##################
+*_CYGGCCxASL_EBC_*_FAMILY = INTEL
+
+*_CYGGCCxASL_EBC_PP_PATH = DEF(EBC_BIN)\iec.exe
+*_CYGGCCxASL_EBC_CC_PATH = DEF(EBC_BIN)\iec.exe
+*_CYGGCCxASL_EBC_DLINK_PATH = DEF(EBC_BIN)\link.exe
+*_CYGGCCxASL_EBC_SLINK_PATH = DEF(EBC_BIN)\link.exe
+*_CYGGCCxASL_EBC_VFRPP_PATH = DEF(EBC_BIN)\iec.exe
+*_CYGGCCxASL_EBC_RC_PATH = DEF(MS_VS_BIN)\rc.exe
+
+*_CYGGCCxASL_EBC_CC_FLAGS = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)
+*_CYGGCCxASL_EBC_SLINK_FLAGS = /lib /NOLOGO /MACHINE:EBC
+*_CYGGCCxASL_EBC_DLINK_FLAGS = "C:\Program Files\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER
+
+####################################################################################
+#
+# Elf GCC - This configuration is used to compile on Linux boxes to produce elf
+# binaries.
+#
+####################################################################################
+# ELFGCC - Linux ELF GCC
+*_ELFGCC_*_*_FAMILY = GCC
+*_ELFGCC_*_MAKE_PATH = make
+
+*_ELFGCC_*_PP_FLAGS = -E -x assembler-with-cpp -include AutoGen.h
+*_ELFGCC_*_VFRPP_FLAGS = -x c -E -P -DVFRCOMPILE --include $(MODULE_NAME)StrDefs.h
+
+##################
+# ASL definitions
+##################
+*_ELFGCC_*_ASL_PATH = DEF(UNIX_IASL_BIN)
+*_ELFGCC_*_ASL_FLAGS = DEF(IASL_FLAGS)
+*_ELFGCC_*_ASL_OUTFLAGS = DEF(IASL_OUTFLAGS)
+*_ELFGCC_*_ASLPP_FLAGS = -x c -E -P
+*_ELFGCC_*_ASLCC_FLAGS = -x c
+*_ELFGCC_*_ASLDLINK_FLAGS = DEF(GCC_DLINK_FLAGS_COMMON) --entry _ReferenceAcpiTable
+
+##################
+# IA32 definitions
+##################
+*_ELFGCC_IA32_OBJCOPY_PATH = DEF(ELFGCC_BIN)/objcopy
+*_ELFGCC_IA32_CC_PATH = DEF(ELFGCC_BIN)/gcc
+*_ELFGCC_IA32_SLINK_PATH = DEF(ELFGCC_BIN)/ar
+*_ELFGCC_IA32_DLINK_PATH = DEF(ELFGCC_BIN)/ld
+*_ELFGCC_IA32_ASM_PATH = DEF(ELFGCC_BIN)/gcc
+*_ELFGCC_IA32_PP_PATH = DEF(ELFGCC_BIN)/gcc
+*_ELFGCC_IA32_VFRPP_PATH = DEF(ELFGCC_BIN)/gcc
+*_ELFGCC32_IA32_ASLCC_PATH = DEF(ELFGCC_BIN)/gcc
+*_ELFGCC32_IA32_ASLPP_PATH = DEF(ELFGCC_BIN)/gcc
+*_ELFGCC32_IA32_ASLDLINK_PATH = DEF(ELFGCC_BIN)/ld
+*_ELFGCC_IA32_RC_PATH = DEF(ELFGCC_BIN)/objcopy
+
+*_ELFGCC_IA32_CC_FLAGS = -m32 -g -fshort-wchar -fno-strict-aliasing -Wall -malign-double -c -include $(DEST_DIR_DEBUG)/AutoGen.h -DSTRING_ARRAY_NAME=$(BASE_NAME)Strings
+*_ELFGCC_IA32_SLINK_FLAGS =
+*_ELFGCC_IA32_DLINK_FLAGS = -melf_i386 -nostdlib --shared --entry $(IMAGE_ENTRY_POINT) -u $(IMAGE_ENTRY_POINT)
+#*_ELFGCC_IA32_DLINK_FLAGS = -melf_i386 -nostdlib -n -q -Ttext 0x220 --entry $(IMAGE_ENTRY_POINT) -u $(IMAGE_ENTRY_POINT)
+*_ELFGCC_IA32_ASM_FLAGS = -m32 -c -x assembler -imacros $(DEST_DIR_DEBUG)/AutoGen.h
+*_ELFGCC_IA32_PP_FLAGS = -m32 -E -x assembler-with-cpp -include $(DEST_DIR_DEBUG)/AutoGen.h
+*_ELFGCC_IA32_VFRPP_FLAGS = -x c -E -P -DVFRCOMPILE --include $(DEST_DIR_DEBUG)/$(MODULE_NAME)StrDefs.h
+*_ELFGCC_IA32_RC_FLAGS = DEF(GCC_IA32_RC_FLAGS)
+*_ELFGCC_IA32_OBJCOPY_FLAGS =
+
+##################
+# X64 definitions
+##################
+*_ELFGCC_X64_CC_PATH = DEF(ELFGCC_BIN)/gcc
+*_ELFGCC_X64_ASLCC_PATH = DEF(ELFGCC_BIN)/gcc
+*_ELFGCC_X64_SLINK_PATH = DEF(ELFGCC_BIN)/ar
+*_ELFGCC_X64_DLINK_PATH = DEF(ELFGCC_BIN)/ld
+*_ELFGCC_X64_ASLDLINK_PATH = DEF(ELFGCC_BIN)/ld
+*_ELFGCC_X64_ASM_PATH = DEF(ELFGCC_BIN)/gcc
+*_ELFGCC_X64_PP_PATH = DEF(ELFGCC_BIN)/gcc
+*_ELFGCC_X64_ASLPP_PATH = DEF(ELFGCC_BIN)/gcc
+*_ELFGCC_X64_VFRPP_PATH = DEF(ELFGCC_BIN)/gcc
+*_ELFGCC_X64_RC_PATH = DEF(ELFGCC_BIN)/objcopy
+
+*_ELFGCC_X64_CC_FLAGS = -Os -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-missing-braces -Wno-address -Wno-array-bounds -c -include AutoGen.h -D_EFI_P64
+*_ELFGCC_X64_DLINK_FLAGS = -nostdlib --shared --entry $(IMAGE_ENTRY_POINT) -u $(IMAGE_ENTRY_POINT)
+*_ELFGCC_X64_SLINK_FLAGS =
+*_ELFGCC_X64_ASM_FLAGS = -c -x assembler -imacros $(DEST_DIR_DEBUG)/AutoGen.h
+*_ELFGCC_X64_PP_FLAGS = -E -x assembler-with-cpp -include $(DEST_DIR_DEBUG)/AutoGen.h
+*_ELFGCC_X64_VFRPP_FLAGS = -x c -E -P -DVFRCOMPILE --include $(DEST_DIR_DEBUG)/$(MODULE_NAME)StrDefs.h
+*_ELFGCC_X64_RC_FLAGS = DEF(GCC_X64_RC_FLAGS)
+
+##################
+# IPF definitions
+##################
+*_ELFGCC_IPF_CC_PATH = DEF(ELFGCC_BIN)/gcc
+*_ELFGCC_IPF_ASLCC_PATH = DEF(ELFGCC_BIN)/gcc
+*_ELFGCC_IPF_SLINK_PATH = DEF(ELFGCC_BIN)/ar
+*_ELFGCC_IPF_DLINK_PATH = DEF(ELFGCC_BIN)/ld
+*_ELFGCC_IPF_ASLDLINK_PATH = DEF(ELFGCC_BIN)/ld
+*_ELFGCC_IPF_ASM_PATH = DEF(ELFGCC_BIN)/gcc
+*_ELFGCC_IPF_PP_PATH = DEF(ELFGCC_BIN)/gcc
+*_ELFGCC_IPF_ASLPP_PATH = DEF(ELFGCC_BIN)/gcc
+*_ELFGCC_IPF_VFRPP_PATH = DEF(ELFGCC_BIN)/gcc
+*_ELFGCC_IPF_RC_PATH = DEF(ELFGCC_BIN)/objcopy
+
+*_ELFGCC_IPF_CC_FLAGS = -Os -fshort-wchar -Wall -Werror -c -include AutoGen.h -D_EFI_P64
+*_ELFGCC_IPF_DLINK_FLAGS = -nostdlib --shared --entry $(IMAGE_ENTRY_POINT) -u $(IMAGE_ENTRY_POINT)
+*_ELFGCC_IPF_SLINK_FLAGS =
+*_ELFGCC_IPF_ASM_FLAGS = -c -x assembler -imacros $(DEST_DIR_DEBUG)/AutoGen.h
+*_ELFGCC_IPF_PP_FLAGS = -E -x assembler-with-cpp -include $(DEST_DIR_DEBUG)/AutoGen.h
+*_ELFGCC_IPF_VFRPP_FLAGS = -x c -E -P -DVFRCOMPILE --include $(DEST_DIR_DEBUG)/$(MODULE_NAME)StrDefs.h
+*_ELFGCC_IPF_RC_FLAGS = DEF(GCC_IPF_RC_FLAGS)
+
+####################################################################################
+#
+# Intel(R) C++ Compiler Version 9.1
+#
+# IPF - Intel(R) C++ Compiler for Itanium(R)Version 9.1 Build 20060928 Package ID: W_CC_C_9.1.032
+# ASL - Intel ACPI Source Language Compiler
+#
+####################################################################################
+# ICC - Intel C Compiler V9.1
+*_ICC_*_*_FAMILY = INTEL
+
+*_ICC_*_MAKE_PATH = DEF(MS_VS_BIN)\nmake.exe
+*_ICC_*_RC_PATH = DEF(MS_VS_BIN)\rc.exe
+
+*_ICC_*_MAKE_FLAGS = /nologo
+*_ICC_*_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
+*_ICC_*_APP_FLAGS = /nologo /E /TC
+*_ICC_*_PP_FLAGS = /nologo /E /TC /FIAutoGen.h
+
+*_ICC_*_ASM16_PATH = DEF(MS_VS_BIN)\ml.exe
+
+##################
+# ASL definitions
+##################
+*_ICC_*_ASL_PATH = DEF(DEFAULT_WIN_ASL_BIN)
+*_ICC_*_ASL_FLAGS = DEF(DEFAULT_WIN_ASL_FLAGS)
+*_ICC_*_ASL_OUTFLAGS = DEF(DEFAULT_WIN_ASL_OUTFLAGS)
+*_ICC_*_ASLCC_FLAGS = DEF(ICC_WIN_ASLCC_FLAGS)
+*_ICC_*_ASLPP_FLAGS = DEF(ICC_WIN_ASLPP_FLAGS)
+*_ICC_*_ASLDLINK_FLAGS = DEF(ICC_WIN_ASLDLINK_FLAGS)
+
+##################
+# IA32 definitions
+##################
+*_ICC_IA32_CC_PATH = DEF(ICC_BIN32)\icl.exe
+*_ICC_IA32_SLINK_PATH = DEF(ICC_BIN32)\xilib.exe
+# xilib.exe needs lib.exe from Visual Studio
+*_ICC_IA32_SLINK_DLL = DEF(MS_VS_BIN)
+*_ICC_IA32_DLINK_PATH = DEF(ICC_BIN32)\xilink.exe
+*_ICC_IA32_PP_PATH = DEF(ICC_BIN32)\icl.exe
+*_ICC_IA32_VFRPP_PATH = DEF(ICC_BIN32)\icl.exe
+*_ICC_IA32_APP_PATH = DEF(ICC_BIN32)\icl.exe
+*_ICC_IA32_ASM_PATH = DEF(MS_VS_BIN)\ml.exe
+*_ICC_IA32_ASM_DLL = DEF(MS_VS_DLL)
+*_ICC_IA32_ASLCC_PATH = DEF(ICC_BIN32)\icl.exe
+*_ICC_IA32_ASLPP_PATH = DEF(ICC_BIN32)\icl.exe
+*_ICC_IA32_ASLDLINK_PATH = DEF(ICC_BIN32)\xilink.exe
+
+ DEBUG_ICC_IA32_CC_FLAGS = /nologo /c /WX /W4 /Gy /Gs32768 /D UNICODE /O1ib2 /GL /DEFI_FIRMWARE_VENDOR=L\"INTEL\" /FIAutoGen.h /EHs-c- /GF /Zi /Gm
+RELEASE_ICC_IA32_CC_FLAGS = /nologo /c /WX /W4 /Gy /Gs32768 /D UNICODE /O1ib2 /GL /DEFI_FIRMWARE_VENDOR=L\"INTEL\" /FIAutoGen.h /EHs-c- /GF
+ DEBUG_ICC_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Zd /Zi
+RELEASE_ICC_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Zd
+ *_ICC_IA32_SLINK_FLAGS = /nologo
+ DEBUG_ICC_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+RELEASE_ICC_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
+
+##################
+# X64 definitions
+##################
+*_ICC_X64_CC_PATH = DEF(ICC_BINX64)\icl.exe
+*_ICC_X64_SLINK_PATH = DEF(ICC_BINX64)\xilib.exe
+# xilib.exe needs lib.exe from Visual Studio
+*_ICC_X64_SLINK_DLL = DEF(MS_VS_BIN)
+*_ICC_X64_DLINK_PATH = DEF(ICC_BINX64)\xilink.exe
+*_ICC_X64_PP_PATH = DEF(ICC_BINX64)\icl.exe
+*_ICC_X64_VFRPP_PATH = DEF(ICC_BINX64)\icl.exe
+*_ICC_X64_APP_PATH = DEF(ICC_BINX64)\icl.exe
+*_ICC_X64_ASM_PATH = DEF(WINDDK_BINX64)\ml64.exe
+*_ICC_X64_ASM_DLL = DEF(MS_VS_DLL)
+*_ICC_X64_ASLCC_PATH = DEF(ICC_BINX64)\icl.exe
+*_ICC_X64_ASLPP_PATH = DEF(ICC_BINX64)\icl.exe
+*_ICC_X64_ASLDLINK_PATH = DEF(ICC_BINX64)\xilink.exe
+
+ DEBUG_ICC_X64_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FI$(DEST_DIR_DEBUG)/AutoGen.h /Zi /Gm /EHs-c- /GF
+RELEASE_ICC_X64_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FI$(DEST_DIR_DEBUG)/AutoGen.h /EHs-c- /GF
+ DEBUG_ICC_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi
+RELEASE_ICC_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd
+ DEBUG_ICC_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+RELEASE_ICC_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
+ *_ICC_X64_SLINK_FLAGS = /nologo /LTCG
+
+
+##################
+# IPF definitions
+##################
+*_ICC_IPF_CC_PATH = DEF(ICC_BIN64)\icl.exe
+# icl.exe needs cl.exe from Visual Studio
+*_ICC_IPF_CC_DLL = DEF(MS_VS_BIN)
+*_ICC_IPF_SLINK_PATH = DEF(ICC_BIN64)\xilib.exe
+# xilib.exe needs lib.exe from Visual Studio
+*_ICC_IPF_SLINK_DLL = DEF(MS_VS_BIN);DEF(MS_VS_DLL)
+*_ICC_IPF_DLINK_PATH = DEF(ICC_BIN64)\xilink.exe
+*_ICC_IPF_PP_PATH = DEF(ICC_BIN64)\icl.exe
+*_ICC_IPF_VFRPP_PATH = DEF(ICC_BIN64)\icl.exe
+*_ICC_IPF_APP_PATH = DEF(ICC_BIN64)\icl.exe
+*_ICC_IPF_ASM_PATH = DEF(ICC_BIN64)\ias.exe
+*_ICC_IPF_ASLCC_PATH = DEF(ICC_BIN64)\icl.exe
+*_ICC_IPF_ASLPP_PATH = DEF(ICC_BIN64)\icl.exe
+*_ICC_IPF_ASLDLINK_PATH = DEF(ICC_BIN64)\xilink.exe
+
+ DEBUG_ICC_IPF_CC_FLAGS = /nologo /c /WX /W4 /GX /Gy /Od /FI$(DEST_DIR_DEBUG)/AutoGen.h /QIA64_fr32 /GF /Zi
+RELEASE_ICC_IPF_CC_FLAGS = /nologo /c /WX /W4 /GX /Gy /Od /FI$(DEST_DIR_DEBUG)/AutoGen.h /QIA64_fr32 /GF
+ DEBUG_ICC_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W3 -d debug -F COFF32
+RELEASE_ICC_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W3 -F COFF32
+ DEBUG_ICC_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb /DEBUG
+RELEASE_ICC_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb
+ *_ICC_IPF_SLINK_FLAGS = /nologo
+
+##################
+# EBC definitions
+##################
+*_ICC_EBC_*_FAMILY = INTEL
+
+*_ICC_EBC_MAKE_PATH = DEF(MS_VS_BIN)\nmake.exe
+*_ICC_EBC_PP_PATH = DEF(EBC_BIN)\iec.exe
+*_ICC_EBC_VFRPP_PATH = DEF(EBC_BIN)\iec.exe
+*_ICC_EBC_CC_PATH = DEF(EBC_BIN)\iec.exe
+*_ICC_EBC_SLINK_PATH = DEF(EBC_BIN)\link.exe
+*_ICC_EBC_DLINK_PATH = DEF(EBC_BIN)\link.exe
+
+*_ICC_EBC_MAKE_FLAGS = /nologo
+*_ICC_EBC_PP_FLAGS = /nologo /E /TC /FIAutoGen.h
+*_ICC_EBC_CC_FLAGS = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)
+*_ICC_EBC_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
+*_ICC_EBC_SLINK_FLAGS = /lib /NOLOGO /MACHINE:EBC
+*_ICC_EBC_DLINK_FLAGS = "C:\Program Files\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP
+
+####################################################################################
+#
+# Intel(R) C++ Compiler Version 9.1
+#
+# IPF - Intel(R) C++ Compiler for Itanium(R)Version 9.1 Build 20060928 Package ID: W_CC_C_9.1.032
+# ASL - Microsoft ACPI Source Language Compiler
+#
+####################################################################################
+# ICCxASL - Intel C Compiler V9.1
+*_ICCxASL_*_*_FAMILY = INTEL
+
+*_ICCxASL_*_MAKE_PATH = DEF(MS_VS_BIN)\nmake.exe
+*_ICCxASL_*_RC_PATH = DEF(MS_VS_BIN)\rc.exe
+
+*_ICCxASL_*_MAKE_FLAGS = /nologo
+*_ICCxASL_*_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
+*_ICCxASL_*_APP_FLAGS = /nologo /E /TC
+*_ICCxASL_*_PP_FLAGS = /nologo /E /TC /FIAutoGen.h
+
+*_ICCxASL_*_ASM16_PATH = DEF(MS_VS_BIN)\ml.exe
+
+##################
+# ASL definitions
+##################
+*_ICCxASL_*_ASL_PATH = DEF(DEFAULT_WIN_ASL_BIN)
+*_ICCxASL_*_ASL_FLAGS = DEF(DEFAULT_WIN_ASL_FLAGS)
+*_ICCxASL_*_ASL_OUTFLAGS = DEF(DEFAULT_WIN_ASL_OUTFLAGS)
+*_ICCxASL_*_ASLCC_FLAGS = DEF(ICC_WIN_ASLCC_FLAGS)
+*_ICCxASL_*_ASLPP_FLAGS = DEF(ICC_WIN_ASLPP_FLAGS)
+*_ICCxASL_*_ASLDLINK_FLAGS = DEF(ICC_WIN_ASLDLINK_FLAGS)
+
+##################
+# IA32 definitions
+##################
+*_ICCxASL_IA32_CC_PATH = DEF(ICC_BIN32)\icl.exe
+*_ICCxASL_IA32_SLINK_PATH = DEF(ICC_BIN32)\xilib.exe
+# xilib.exe needs lib.exe from Visual Studio
+*_ICCxASL_IA32_SLINK_DLL = DEF(MS_VS_BIN)
+*_ICCxASL_IA32_DLINK_PATH = DEF(ICC_BIN32)\xilink.exe
+*_ICCxASL_IA32_PP_PATH = DEF(ICC_BIN32)\icl.exe
+*_ICCxASL_IA32_VFRPP_PATH = DEF(ICC_BIN32)\icl.exe
+*_ICCxASL_IA32_APP_PATH = DEF(ICC_BIN32)\icl.exe
+*_ICCxASL_IA32_ASM_PATH = DEF(MS_VS_BIN)\ml.exe
+*_ICCxASL_IA32_ASM_DLL = DEF(MS_VS_DLL)
+*_ICCxASL_IA32_ASLCC_PATH = DEF(ICC_BIN32)\icl.exe
+*_ICCxASL_IA32_ASLPP_PATH = DEF(ICC_BIN32)\icl.exe
+*_ICCxASL_IA32_ASLDLINK_PATH = DEF(ICC_BIN32)\xilink.exe
+
+ DEBUG_ICCxASL_IA32_CC_FLAGS = /nologo /c /WX /W4 /Gy /Gs32768 /D UNICODE /O1ib2 /GL /DEFI_FIRMWARE_VENDOR=L\"INTEL\" /FIAutoGen.h /EHs-c- /GF /Zi /Gm
+RELEASE_ICCxASL_IA32_CC_FLAGS = /nologo /c /WX /W4 /Gy /Gs32768 /D UNICODE /O1ib2 /GL /DEFI_FIRMWARE_VENDOR=L\"INTEL\" /FIAutoGen.h /EHs-c- /GF
+ DEBUG_ICCxASL_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Zd /Zi
+RELEASE_ICCxASL_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Zd
+ *_ICCxASL_IA32_SLINK_FLAGS = /nologo
+ DEBUG_ICCxASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+RELEASE_ICCxASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
+
+##################
+# X64 definitions
+##################
+*_ICCxASL_X64_CC_PATH = DEF(ICC_BINX64)\icl.exe
+*_ICCxASL_X64_SLINK_PATH = DEF(ICC_BINX64)\xilib.exe
+# xilib.exe needs lib.exe from Visual Studio
+*_ICCxASL_X64_SLINK_DLL = DEF(MS_VS_BIN)
+*_ICCxASL_X64_DLINK_PATH = DEF(ICC_BINX64)\xilink.exe
+*_ICCxASL_X64_PP_PATH = DEF(ICC_BINX64)\icl.exe
+*_ICCxASL_X64_VFRPP_PATH = DEF(ICC_BINX64)\icl.exe
+*_ICCxASL_X64_APP_PATH = DEF(ICC_BINX64)\icl.exe
+*_ICCxASL_X64_ASM_PATH = DEF(WINDDK_BINX64)\ml64.exe
+*_ICCxASL_X64_ASM_DLL = DEF(MS_VS_DLL)
+*_ICCxASL_X64_ASLCC_PATH = DEF(ICC_BINX64)\icl.exe
+*_ICCxASL_X64_ASLPP_PATH = DEF(ICC_BINX64)\icl.exe
+*_ICCxASL_X64_ASLDLINK_PATH = DEF(ICC_BINX64)\xilink.exe
+
+ DEBUG_ICCxASL_X64_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FI$(DEST_DIR_DEBUG)/AutoGen.h /Zi /Gm /EHs-c- /GF
+RELEASE_ICCxASL_X64_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FI$(DEST_DIR_DEBUG)/AutoGen.h /EHs-c- /GF
+ DEBUG_ICCxASL_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi
+RELEASE_ICCxASL_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd
+ DEBUG_ICCxASL_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+RELEASE_ICCxASL_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
+ *_ICCxASL_X64_SLINK_FLAGS = /nologo /LTCG
+
+
+##################
+# IPF definitions
+##################
+*_ICCxASL_IPF_CC_PATH = DEF(ICC_BIN64)\icl.exe
+# icl.exe needs cl.exe from Visual Studio
+*_ICCxASL_IPF_CC_DLL = DEF(MS_VS_BIN)
+*_ICCxASL_IPF_SLINK_PATH = DEF(ICC_BIN64)\xilib.exe
+# xilib.exe needs lib.exe from Visual Studio
+*_ICCxASL_IPF_SLINK_DLL = DEF(MS_VS_BIN);DEF(MS_VS_DLL)
+*_ICCxASL_IPF_DLINK_PATH = DEF(ICC_BIN64)\xilink.exe
+*_ICCxASL_IPF_PP_PATH = DEF(ICC_BIN64)\icl.exe
+*_ICCxASL_IPF_VFRPP_PATH = DEF(ICC_BIN64)\icl.exe
+*_ICCxASL_IPF_APP_PATH = DEF(ICC_BIN64)\icl.exe
+*_ICCxASL_IPF_ASM_PATH = DEF(ICC_BIN64)\ias.exe
+*_ICCxASL_IPF_ASLCC_PATH = DEF(ICC_BIN64)\icl.exe
+*_ICCxASL_IPF_ASLPP_PATH = DEF(ICC_BIN64)\icl.exe
+*_ICCxASL_IPF_ASLDLINK_PATH = DEF(ICC_BIN64)\xilink.exe
+
+ DEBUG_ICCxASL_IPF_CC_FLAGS = /nologo /c /WX /W4 /GX /Gy /Od /FI$(DEST_DIR_DEBUG)/AutoGen.h /QIA64_fr32 /GF /Zi
+RELEASE_ICCxASL_IPF_CC_FLAGS = /nologo /c /WX /W4 /GX /Gy /Od /FI$(DEST_DIR_DEBUG)/AutoGen.h /QIA64_fr32 /GF
+ DEBUG_ICCxASL_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W3 -d debug -F COFF32
+RELEASE_ICCxASL_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W3 -F COFF32
+ DEBUG_ICCxASL_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb /DEBUG
+RELEASE_ICCxASL_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb
+ *_ICCxASL_IPF_SLINK_FLAGS = /nologo
+
+##################
+# EBC definitions
+##################
+*_ICCxASL_EBC_*_FAMILY = INTEL
+
+*_ICCxASL_EBC_MAKE_PATH = DEF(MS_VS_BIN)\nmake.exe
+*_ICCxASL_EBC_PP_PATH = DEF(EBC_BIN)\iec.exe
+*_ICCxASL_EBC_VFRPP_PATH = DEF(EBC_BIN)\iec.exe
+*_ICCxASL_EBC_CC_PATH = DEF(EBC_BIN)\iec.exe
+*_ICCxASL_EBC_SLINK_PATH = DEF(EBC_BIN)\link.exe
+*_ICCxASL_EBC_DLINK_PATH = DEF(EBC_BIN)\link.exe
+
+*_ICCxASL_EBC_MAKE_FLAGS = /nologo
+*_ICCxASL_EBC_PP_FLAGS = /nologo /E /TC /FIAutoGen.h
+*_ICCxASL_EBC_CC_FLAGS = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)
+*_ICCxASL_EBC_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
+*_ICCxASL_EBC_SLINK_FLAGS = /lib /NOLOGO /MACHINE:EBC
+*_ICCxASL_EBC_DLINK_FLAGS = "C:\Program Files\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP
+
+
+####################################################################################
+#
+# Intel(R) C++ Compiler Version 9.1 x86 (32-bit on 64-bit OS)
+#
+# ICCx86 - Intel(R) C++ Compiler for Itanium(R)Version 9.1 Build 20060928 Package ID: W_CC_C_9.1.032
+# ASL - Intel ACPI Source Language Compiler
+#
+####################################################################################
+# ICCx86 - Intel C Compiler V9.1
+*_ICCx86_*_*_FAMILY = INTEL
+
+*_ICCx86_*_MAKE_PATH = DEF(VS2005x86_BIN)\nmake.exe
+*_ICCx86_*_RC_PATH = DEF(VS2005x86_BIN)\rc.exe
+
+*_ICCx86_*_MAKE_FLAGS = /nologo
+*_ICCx86_*_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
+*_ICCx86_*_APP_FLAGS = /nologo /E /TC
+*_ICCx86_*_PP_FLAGS = /nologo /E /TC /FIAutoGen.h
+
+*_ICCx86_*_ASM16_PATH = DEF(VS2005x86_BIN)\ml.exe
+
+##################
+# ASL definitions
+##################
+*_ICCx86_*_ASL_PATH = DEF(DEFAULT_WIN_ASL_BIN)
+*_ICCx86_*_ASL_FLAGS = DEF(DEFAULT_WIN_ASL_FLAGS)
+*_ICCx86_*_ASL_OUTFLAGS = DEF(DEFAULT_WIN_ASL_OUTFLAGS)
+*_ICCx86_*_ASLCC_FLAGS = DEF(ICC_WIN_ASLCC_FLAGS)
+*_ICCx86_*_ASLPP_FLAGS = DEF(ICC_WIN_ASLPP_FLAGS)
+*_ICCx86_*_ASLDLINK_FLAGS = DEF(ICC_WIN_ASLDLINK_FLAGS)
+
+##################
+# IA32 definitions
+##################
+*_ICCx86_IA32_CC_PATH = DEF(ICC_BIN32x86)\icl.exe
+*_ICCx86_IA32_SLINK_PATH = DEF(ICC_BIN32x86)\xilib.exe
+# xilib.exe needs lib.exe from Visual Studio
+*_ICCx86_IA32_SLINK_DLL = DEF(VS2005x86_BIN)
+*_ICCx86_IA32_DLINK_PATH = DEF(ICC_BIN32x86)\xilink.exe
+*_ICCx86_IA32_PP_PATH = DEF(ICC_BIN32x86)\icl.exe
+*_ICCx86_IA32_VFRPP_PATH = DEF(ICC_BIN32x86)\icl.exe
+*_ICCx86_IA32_APP_PATH = DEF(ICC_BIN32x86)\icl.exe
+*_ICCx86_IA32_ASM_PATH = DEF(VS2005x86_BIN)\ml.exe
+*_ICCx86_IA32_ASM_DLL = DEF(VS2005x86_DLL)
+*_ICCx86_IA32_ASLCC_PATH = DEF(ICC_BIN32x86)\icl.exe
+*_ICCx86_IA32_ASLPP_PATH = DEF(ICC_BIN32x86)\icl.exe
+*_ICCx86_IA32_ASLDLINK_PATH = DEF(ICC_BIN32x86)\xilink.exe
+
+ DEBUG_ICCx86_IA32_CC_FLAGS = /nologo /c /WX /W4 /Gy /Gs32768 /D UNICODE /O1ib2 /GL /DEFI_FIRMWARE_VENDOR=L\"INTEL\" /FIAutoGen.h /EHs-c- /GF /Zi /Gm
+RELEASE_ICCx86_IA32_CC_FLAGS = /nologo /c /WX /W4 /Gy /Gs32768 /D UNICODE /O1ib2 /GL /DEFI_FIRMWARE_VENDOR=L\"INTEL\" /FIAutoGen.h /EHs-c- /GF
+ DEBUG_ICCx86_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Zd /Zi
+RELEASE_ICCx86_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Zd
+ *_ICCx86_IA32_SLINK_FLAGS = /nologo
+ DEBUG_ICCx86_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+RELEASE_ICCx86_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
+
+##################
+# X64 definitions
+##################
+*_ICCx86_X64_CC_PATH = DEF(ICC_BINX64x86)\icl.exe
+*_ICCx86_X64_SLINK_PATH = DEF(ICC_BINX64x86)\xilib.exe
+# xilib.exe needs lib.exe from Visual Studio
+*_ICCx86_X64_SLINK_DLL = DEF(VS2005x86_BIN)
+*_ICCx86_X64_DLINK_PATH = DEF(ICC_BINX64x86)\xilink.exe
+*_ICCx86_X64_PP_PATH = DEF(ICC_BINX64x86)\icl.exe
+*_ICCx86_X64_VFRPP_PATH = DEF(ICC_BINX64x86)\icl.exe
+*_ICCx86_X64_APP_PATH = DEF(ICC_BINX64x86)\icl.exe
+*_ICCx86_X64_ASM_PATH = DEF(WINDDK_BINX64)\ml64.exe
+*_ICCx86_X64_ASM_DLL = DEF(VS2005x86_DLL)
+*_ICCx86_X64_ASLCC_PATH = DEF(ICC_BINX64x86)\icl.exe
+*_ICCx86_X64_ASLPP_PATH = DEF(ICC_BINX64x86)\icl.exe
+*_ICCx86_X64_ASLDLINK_PATH = DEF(ICC_BINX64x86)\xilink.exe
+
+ DEBUG_ICCx86_X64_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FI$(DEST_DIR_DEBUG)/AutoGen.h /Zi /Gm /EHs-c- /GF
+RELEASE_ICCx86_X64_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FI$(DEST_DIR_DEBUG)/AutoGen.h /EHs-c- /GF
+ DEBUG_ICCx86_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi
+RELEASE_ICCx86_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd
+ DEBUG_ICCx86_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+RELEASE_ICCx86_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
+ *_ICCx86_X64_SLINK_FLAGS = /nologo /LTCG
+
+
+##################
+# IPF definitions
+##################
+*_ICCx86_IPF_CC_PATH = DEF(ICC_BIN64x86)\icl.exe
+# icl.exe needs cl.exe from Visual Studio
+*_ICCx86_IPF_CC_DLL = DEF(VS2005x86_BIN)
+*_ICCx86_IPF_SLINK_PATH = DEF(ICC_BIN64x86)\xilib.exe
+# xilib.exe needs lib.exe from Visual Studio
+*_ICCx86_IPF_SLINK_DLL = DEF(VS2005x86_BIN);DEF(VS2005x86_DLL)
+*_ICCx86_IPF_DLINK_PATH = DEF(ICC_BIN64x86)\xilink.exe
+*_ICCx86_IPF_PP_PATH = DEF(ICC_BIN64x86)\icl.exe
+*_ICCx86_IPF_VFRPP_PATH = DEF(ICC_BIN64x86)\icl.exe
+*_ICCx86_IPF_APP_PATH = DEF(ICC_BIN64x86)\icl.exe
+*_ICCx86_IPF_ASM_PATH = DEF(ICC_BIN64x86)\ias.exe
+*_ICCx86_IPF_ASLCC_PATH = DEF(ICC_BIN64x86)\icl.exe
+*_ICCx86_IPF_ASLPP_PATH = DEF(ICC_BIN64x86)\icl.exe
+*_ICCx86_IPF_ASLDLINK_PATH = DEF(ICC_BIN64x86)\xilink.exe
+
+ DEBUG_ICCx86_IPF_CC_FLAGS = /nologo /c /WX /W4 /GX /Gy /Od /FI$(DEST_DIR_DEBUG)/AutoGen.h /QIA64_fr32 /GF /Zi
+RELEASE_ICCx86_IPF_CC_FLAGS = /nologo /c /WX /W4 /GX /Gy /Od /FI$(DEST_DIR_DEBUG)/AutoGen.h /QIA64_fr32 /GF
+ DEBUG_ICCx86_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W3 -d debug -F COFF32
+RELEASE_ICCx86_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W3 -F COFF32
+ DEBUG_ICCx86_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb /DEBUG
+RELEASE_ICCx86_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb
+ *_ICCx86_IPF_SLINK_FLAGS = /nologo
+
+##################
+# EBC definitions
+##################
+*_ICCx86_EBC_*_FAMILY = INTEL
+
+*_ICCx86_EBC_MAKE_PATH = DEF(VS2005x86_BIN)\nmake.exe
+*_ICCx86_EBC_PP_PATH = DEF(EBC_BINx86)\iec.exe
+*_ICCx86_EBC_VFRPP_PATH = DEF(EBC_BINx86)\iec.exe
+*_ICCx86_EBC_CC_PATH = DEF(EBC_BINx86)\iec.exe
+*_ICCx86_EBC_SLINK_PATH = DEF(EBC_BINx86)\link.exe
+*_ICCx86_EBC_DLINK_PATH = DEF(EBC_BINx86)\link.exe
+
+*_ICCx86_EBC_MAKE_FLAGS = /nologo
+*_ICCx86_EBC_PP_FLAGS = /nologo /E /TC /FIAutoGen.h
+*_ICCx86_EBC_CC_FLAGS = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)
+*_ICCx86_EBC_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
+*_ICCx86_EBC_SLINK_FLAGS = /lib /NOLOGO /MACHINE:EBC
+*_ICCx86_EBC_DLINK_FLAGS = "C:\Program Files (x86)\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP
+
+
+####################################################################################
+#
+# Intel(R) C++ Compiler Version 9.1 x86 (32-bit on 64-bit OS)
+#
+# ICCx86xASL - Intel(R) C++ Compiler for Itanium(R)Version 9.1 Build 20060928 Package ID: W_CC_C_9.1.032
+# ASL - Microsoft ACPI Source Language Compiler
+#
+####################################################################################
+# ICCx86xASL - Intel C Compiler V9.1
+*_ICCx86xASL_*_*_FAMILY = INTEL
+
+*_ICCx86xASL_*_MAKE_PATH = DEF(VS2005x86_BIN)\nmake.exe
+*_ICCx86xASL_*_RC_PATH = DEF(VS2005x86_BIN)\rc.exe
+
+*_ICCx86xASL_*_MAKE_FLAGS = /nologo
+*_ICCx86xASL_*_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
+*_ICCx86xASL_*_APP_FLAGS = /nologo /E /TC
+*_ICCx86xASL_*_PP_FLAGS = /nologo /E /TC /FIAutoGen.h
+
+*_ICCx86ASL_*_ASM16_PATH = DEF(VS2005x86_BIN)\ml.exe
+
+##################
+# ASL definitions
+##################
+*_ICCx86xASL_*_ASL_PATH = DEF(WIN_ASL_BIN)
+*_ICCx86xASL_*_ASL_FLAGS =
+*_ICCx86xASL_*_ASL_OUTFLAGS = DEF(MS_ASL_OUTFLAGS)
+*_ICCx86xASL_*_ASLCC_FLAGS = DEF(ICC_WIN_ASLCC_FLAGS)
+*_ICCx86xASL_*_ASLPP_FLAGS = DEF(ICC_WIN_ASLPP_FLAGS)
+*_ICCx86xASL_*_ASLDLINK_FLAGS = DEF(ICC_WIN_ASLDLINK_FLAGS)
+
+##################
+# IA32 definitions
+##################
+*_ICCx86xASL_IA32_CC_PATH = DEF(ICC_BIN32x86)\icl.exe
+*_ICCx86xASL_IA32_SLINK_PATH = DEF(ICC_BIN32x86)\xilib.exe
+# xilib.exe needs lib.exe from Visual Studio
+*_ICCx86xASL_IA32_SLINK_DLL = DEF(VS2005x86_BIN)
+*_ICCx86xASL_IA32_DLINK_PATH = DEF(ICC_BIN32x86)\xilink.exe
+*_ICCx86xASL_IA32_PP_PATH = DEF(ICC_BIN32x86)\icl.exe
+*_ICCx86xASL_IA32_VFRPP_PATH = DEF(ICC_BIN32x86)\icl.exe
+*_ICCx86xASL_IA32_APP_PATH = DEF(ICC_BIN32x86)\icl.exe
+*_ICCx86xASL_IA32_ASM_PATH = DEF(VS2005x86_BIN)\ml.exe
+*_ICCx86xASL_IA32_ASM_DLL = DEF(VS2005x86_DLL)
+*_ICCx86xASL_IA32_ASLCC_PATH = DEF(ICC_BIN32x86)\icl.exe
+*_ICCx86xASL_IA32_ASLPP_PATH = DEF(ICC_BIN32x86)\icl.exe
+*_ICCx86xASL_IA32_ASLDLINK_PATH = DEF(ICC_BIN32x86)\xilink.exe
+
+ DEBUG_ICCx86xASL_IA32_CC_FLAGS = /nologo /c /WX /W4 /Gy /Gs32768 /D UNICODE /O1ib2 /GL /DEFI_FIRMWARE_VENDOR=L\"INTEL\" /FIAutoGen.h /EHs-c- /GF /Zi /Gm
+RELEASE_ICCx86xASL_IA32_CC_FLAGS = /nologo /c /WX /W4 /Gy /Gs32768 /D UNICODE /O1ib2 /GL /DEFI_FIRMWARE_VENDOR=L\"INTEL\" /FIAutoGen.h /EHs-c- /GF
+ DEBUG_ICCx86xASL_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Zd /Zi
+RELEASE_ICCx86xASL_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Zd
+ *_ICCx86xASL_IA32_SLINK_FLAGS = /nologo
+ DEBUG_ICCx86xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+RELEASE_ICCx86xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
+
+##################
+# X64 definitions
+##################
+*_ICCx86xASL_X64_CC_PATH = DEF(ICC_BINX64x86)\icl.exe
+*_ICCx86xASL_X64_SLINK_PATH = DEF(ICC_BINX64x86)\xilib.exe
+# xilib.exe needs lib.exe from Visual Studio
+*_ICCx86xASL_X64_SLINK_DLL = DEF(VS2005x86_BIN)
+*_ICCx86xASL_X64_DLINK_PATH = DEF(ICC_BINX64x86)\xilink.exe
+*_ICCx86xASL_X64_PP_PATH = DEF(ICC_BINX64x86)\icl.exe
+*_ICCx86xASL_X64_VFRPP_PATH = DEF(ICC_BINX64x86)\icl.exe
+*_ICCx86xASL_X64_APP_PATH = DEF(ICC_BINX64x86)\icl.exe
+*_ICCx86xASL_X64_ASM_PATH = DEF(WINDDK_BINX64)\ml64.exe
+*_ICCx86xASL_X64_ASM_DLL = DEF(VS2005x86_DLL)
+*_ICCx86xASL_X64_ASLCC_PATH = DEF(ICC_BINX64x86)\icl.exe
+*_ICCx86xASL_X64_ASLPP_PATH = DEF(ICC_BINX64x86)\icl.exe
+*_ICCx86xASL_X64_ASLDLINK_PATH = DEF(ICC_BINX64x86)\xilink.exe
+
+ DEBUG_ICCx86xASL_X64_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FI$(DEST_DIR_DEBUG)/AutoGen.h /Zi /Gm /EHs-c- /GF
+RELEASE_ICCx86xASL_X64_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FI$(DEST_DIR_DEBUG)/AutoGen.h /EHs-c- /GF
+ DEBUG_ICCx86xASL_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi
+RELEASE_ICCx86xASL_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd
+ DEBUG_ICCx86xASL_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+RELEASE_ICCx86xASL_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
+ *_ICCx86xASL_X64_SLINK_FLAGS = /nologo /LTCG
+
+
+##################
+# IPF definitions
+##################
+*_ICCx86xASL_IPF_CC_PATH = DEF(ICC_BIN64x86)\icl.exe
+# icl.exe needs cl.exe from Visual Studio
+*_ICCx86xASL_IPF_CC_DLL = DEF(VS2005x86_BIN)
+*_ICCx86xASL_IPF_SLINK_PATH = DEF(ICC_BIN64x86)\xilib.exe
+# xilib.exe needs lib.exe from Visual Studio
+*_ICCx86xASL_IPF_SLINK_DLL = DEF(VS2005x86_BIN);DEF(VS2005x86_DLL)
+*_ICCx86xASL_IPF_DLINK_PATH = DEF(ICC_BIN64x86)\xilink.exe
+*_ICCx86xASL_IPF_PP_PATH = DEF(ICC_BIN64x86)\icl.exe
+*_ICCx86xASL_IPF_VFRPP_PATH = DEF(ICC_BIN64x86)\icl.exe
+*_ICCx86xASL_IPF_APP_PATH = DEF(ICC_BIN64x86)\icl.exe
+*_ICCx86xASL_IPF_ASM_PATH = DEF(ICC_BIN64x86)\ias.exe
+*_ICCx86xASL_IPF_ASLCC_PATH = DEF(ICC_BIN64x86)\icl.exe
+*_ICCx86xASL_IPF_ASLPP_PATH = DEF(ICC_BIN64x86)\icl.exe
+*_ICCx86xASL_IPF_ASLDLINK_PATH = DEF(ICC_BIN64x86)\xilink.exe
+
+ DEBUG_ICCx86xASL_IPF_CC_FLAGS = /nologo /c /WX /W4 /GX /Gy /Od /FI$(DEST_DIR_DEBUG)/AutoGen.h /QIA64_fr32 /GF /Zi
+RELEASE_ICCx86xASL_IPF_CC_FLAGS = /nologo /c /WX /W4 /GX /Gy /Od /FI$(DEST_DIR_DEBUG)/AutoGen.h /QIA64_fr32 /GF
+ DEBUG_ICCx86xASL_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W3 -d debug -F COFF32
+RELEASE_ICCx86xASL_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W3 -F COFF32
+ DEBUG_ICCx86xASL_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb /DEBUG
+RELEASE_ICCx86xASL_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb
+ *_ICCx86xASL_IPF_SLINK_FLAGS = /nologo
+
+##################
+# EBC definitions
+##################
+*_ICCx86xASL_EBC_*_FAMILY = INTEL
+
+*_ICCx86xASL_EBC_MAKE_PATH = DEF(VS2005x86_BIN)\nmake.exe
+*_ICCx86xASL_EBC_PP_PATH = DEF(EBC_BINx86)\iec.exe
+*_ICCx86xASL_EBC_VFRPP_PATH = DEF(EBC_BINx86)\iec.exe
+*_ICCx86xASL_EBC_CC_PATH = DEF(EBC_BINx86)\iec.exe
+*_ICCx86xASL_EBC_SLINK_PATH = DEF(EBC_BINx86)\link.exe
+*_ICCx86xASL_EBC_DLINK_PATH = DEF(EBC_BINx86)\link.exe
+
+*_ICCx86xASL_EBC_MAKE_FLAGS = /nologo
+*_ICCx86xASL_EBC_PP_FLAGS = /nologo /E /TC /FIAutoGen.h
+*_ICCx86xASL_EBC_CC_FLAGS = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)
+*_ICCx86xASL_EBC_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
+*_ICCx86xASL_EBC_SLINK_FLAGS = /lib /NOLOGO /MACHINE:EBC
+*_ICCx86xASL_EBC_DLINK_FLAGS = "C:\Program Files (x86)\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP
+
+
+####################################################################################
+#
+# Intel(R) C++ Compiler Version 11.1
+# IA32 - Intel(R) C++ Compiler for applications running on IA32 (Version 11.1 Build 065 Package ID: w_cproc_p_11.1.065_ia32)
+# X64 - Intel(R) C++ Compiler for applications running on Intel(R) 64 (Version 11.1 Build 065 Package ID: w_cproc_p_11.1.065_intel64)
+# IPF - Intel(R) C++ Compiler for applications running on IA-64 (Version 11.1 Build 065 Package ID: w_cproc_p_11.1.065_ia64)
+# ASL - Intel ACPI Source Language Compiler
+#
+####################################################################################
+# ICC11 - Intel C Compiler V11.1
+*_ICC11_*_*_FAMILY = INTEL
+
+*_ICC11_*_MAKE_PATH = DEF(MS_VS_BIN)\nmake.exe
+*_ICC11_*_RC_PATH = DEF(MS_VS_BIN)\rc.exe
+
+*_ICC11_*_MAKE_FLAGS = /nologo
+*_ICC11_*_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
+*_ICC11_*_APP_FLAGS = /nologo /E /TC
+*_ICC11_*_PP_FLAGS = /nologo /E /TC /FIAutoGen.h
+
+*_ICC11_*_ASM16_PATH = DEF(MS_VS_BIN)\ml.exe
+
+##################
+# ASL definitions
+##################
+*_ICC11_*_ASL_PATH = DEF(DEFAULT_WIN_ASL_BIN)
+*_ICC11_*_ASL_FLAGS = DEF(DEFAULT_WIN_ASL_FLAGS)
+*_ICC11_*_ASL_OUTFLAGS = DEF(DEFAULT_WIN_ASL_OUTFLAGS)
+*_ICC11_*_ASLCC_FLAGS = DEF(ICC_WIN_ASLCC_FLAGS)
+*_ICC11_*_ASLPP_FLAGS = DEF(ICC_WIN_ASLPP_FLAGS)
+*_ICC11_*_ASLDLINK_FLAGS = DEF(ICC_WIN_ASLDLINK_FLAGS)
+
+##################
+# IA32 definitions
+##################
+*_ICC11_IA32_CC_PATH = DEF(ICC11_BIN32)\icl.exe
+*_ICC11_IA32_SLINK_PATH = DEF(ICC11_BIN32)\xilib.exe
+# xilib.exe needs lib.exe from Visual Studio
+*_ICC11_IA32_SLINK_DLL = DEF(MS_VS_BIN)
+*_ICC11_IA32_DLINK_PATH = DEF(ICC11_BIN32)\xilink.exe
+*_ICC11_IA32_PP_PATH = DEF(ICC11_BIN32)\icl.exe
+*_ICC11_IA32_VFRPP_PATH = DEF(ICC11_BIN32)\icl.exe
+*_ICC11_IA32_APP_PATH = DEF(ICC11_BIN32)\icl.exe
+*_ICC11_IA32_ASM_PATH = DEF(MS_VS_BIN)\ml.exe
+*_ICC11_IA32_ASM_DLL = DEF(MS_VS_DLL)
+*_ICC11_IA32_ASLCC_PATH = DEF(ICC11_BIN32)\icl.exe
+*_ICC11_IA32_ASLPP_PATH = DEF(ICC11_BIN32)\icl.exe
+*_ICC11_IA32_ASLDLINK_PATH = DEF(ICC11_BIN32)\xilink.exe
+
+ DEBUG_ICC11_IA32_CC_FLAGS = /nologo /c /WX /W4 /Gy /Gs32768 /D UNICODE /O1ib2 /GL /DEFI_FIRMWARE_VENDOR=L\"INTEL\" /FIAutoGen.h /EHs-c- /GF /Zi /Gm
+RELEASE_ICC11_IA32_CC_FLAGS = /nologo /c /WX /W4 /Gy /Gs32768 /D UNICODE /O1ib2 /GL /DEFI_FIRMWARE_VENDOR=L\"INTEL\" /FIAutoGen.h /EHs-c- /GF
+ DEBUG_ICC11_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Zd /Zi
+RELEASE_ICC11_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Zd
+ *_ICC11_IA32_SLINK_FLAGS = /nologo
+ DEBUG_ICC11_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+RELEASE_ICC11_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
+
+##################
+# X64 definitions
+##################
+*_ICC11_X64_CC_PATH = DEF(ICC11_BINX64)\icl.exe
+*_ICC11_X64_SLINK_PATH = DEF(ICC11_BINX64)\xilib.exe
+# xilib.exe needs lib.exe from Visual Studio
+*_ICC11_X64_SLINK_DLL = DEF(MS_VS_BIN)
+*_ICC11_X64_DLINK_PATH = DEF(ICC11_BINX64)\xilink.exe
+*_ICC11_X64_PP_PATH = DEF(ICC11_BINX64)\icl.exe
+*_ICC11_X64_VFRPP_PATH = DEF(ICC11_BINX64)\icl.exe
+*_ICC11_X64_APP_PATH = DEF(ICC11_BINX64)\icl.exe
+*_ICC11_X64_ASM_PATH = DEF(WINDDK_BINX64)\ml64.exe
+*_ICC11_X64_ASM_DLL = DEF(MS_VS_DLL)
+*_ICC11_X64_ASLCC_PATH = DEF(ICC11_BINX64)\icl.exe
+*_ICC11_X64_ASLPP_PATH = DEF(ICC11_BINX64)\icl.exe
+*_ICC11_X64_ASLDLINK_PATH = DEF(ICC11_BINX64)\xilink.exe
+
+ DEBUG_ICC11_X64_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FI$(DEST_DIR_DEBUG)/AutoGen.h /Zi /Gm /EHs-c- /GF
+RELEASE_ICC11_X64_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FI$(DEST_DIR_DEBUG)/AutoGen.h /EHs-c- /GF
+ DEBUG_ICC11_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi
+RELEASE_ICC11_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd
+ DEBUG_ICC11_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+RELEASE_ICC11_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
+ *_ICC11_X64_SLINK_FLAGS = /nologo /LTCG
+
+
+##################
+# IPF definitions
+##################
+*_ICC11_IPF_CC_PATH = DEF(ICC11_BIN64)\icl.exe
+# icl.exe needs cl.exe from Visual Studio
+*_ICC11_IPF_CC_DLL = DEF(MS_VS_BIN)
+*_ICC11_IPF_SLINK_PATH = DEF(ICC11_BIN64)\xilib.exe
+# xilib.exe needs lib.exe from Visual Studio
+*_ICC11_IPF_SLINK_DLL = DEF(MS_VS_BIN);DEF(MS_VS_DLL)
+*_ICC11_IPF_DLINK_PATH = DEF(ICC11_BIN64)\xilink.exe
+*_ICC11_IPF_PP_PATH = DEF(ICC11_BIN64)\icl.exe
+*_ICC11_IPF_VFRPP_PATH = DEF(ICC11_BIN64)\icl.exe
+*_ICC11_IPF_APP_PATH = DEF(ICC11_BIN64)\icl.exe
+*_ICC11_IPF_ASM_PATH = DEF(ICC11_BIN64)\ias.exe
+*_ICC11_IPF_ASLCC_PATH = DEF(ICC11_BIN64)\icl.exe
+*_ICC11_IPF_ASLPP_PATH = DEF(ICC11_BIN64)\icl.exe
+*_ICC11_IPF_ASLDLINK_PATH = DEF(ICC11_BIN64)\xilink.exe
+
+ DEBUG_ICC11_IPF_CC_FLAGS = /nologo /c /WX /W4 /GX /Gy /Od /FI$(DEST_DIR_DEBUG)/AutoGen.h /QIA64_fr32 /GF /Qfreestanding /Zi
+RELEASE_ICC11_IPF_CC_FLAGS = /nologo /c /WX /W4 /GX /Gy /Od /FI$(DEST_DIR_DEBUG)/AutoGen.h /QIA64_fr32 /GF /Qfreestanding
+ DEBUG_ICC11_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W3 -d debug -F COFF32
+RELEASE_ICC11_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W3 -F COFF32
+ DEBUG_ICC11_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb /DEBUG
+RELEASE_ICC11_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb
+ *_ICC11_IPF_SLINK_FLAGS = /nologo
+
+##################
+# EBC definitions
+##################
+*_ICC11_EBC_*_FAMILY = INTEL
+
+*_ICC11_EBC_MAKE_PATH = DEF(MS_VS_BIN)\nmake.exe
+*_ICC11_EBC_PP_PATH = DEF(EBC_BIN)\iec.exe
+*_ICC11_EBC_VFRPP_PATH = DEF(EBC_BIN)\iec.exe
+*_ICC11_EBC_CC_PATH = DEF(EBC_BIN)\iec.exe
+*_ICC11_EBC_SLINK_PATH = DEF(EBC_BIN)\link.exe
+*_ICC11_EBC_DLINK_PATH = DEF(EBC_BIN)\link.exe
+
+*_ICC11_EBC_MAKE_FLAGS = /nologo
+*_ICC11_EBC_PP_FLAGS = /nologo /E /TC /FIAutoGen.h
+*_ICC11_EBC_CC_FLAGS = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)
+*_ICC11_EBC_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
+*_ICC11_EBC_SLINK_FLAGS = /lib /NOLOGO /MACHINE:EBC
+*_ICC11_EBC_DLINK_FLAGS = "C:\Program Files\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP
+
+####################################################################################
+#
+# Intel(R) C++ Compiler Version 11.1
+#
+# IA32 - Intel(R) C++ Compiler for applications running on IA32 (Version 11.1 Build 065 Package ID: w_cproc_p_11.1.065_ia32)
+# X64 - Intel(R) C++ Compiler for applications running on Intel(R) 64 (Version 11.1 Build 065 Package ID: w_cproc_p_11.1.065_intel64)
+# IPF - Intel(R) C++ Compiler for applications running on IA-64 (Version 11.1 Build 065 Package ID: w_cproc_p_11.1.065_ia64)
+# ASL - Microsoft ACPI Source Language Compiler
+#
+####################################################################################
+# ICC11xASL - Intel C Compiler V11.1
+*_ICC11xASL_*_*_FAMILY = INTEL
+
+*_ICC11xASL_*_MAKE_PATH = DEF(MS_VS_BIN)\nmake.exe
+*_ICC11xASL_*_RC_PATH = DEF(MS_VS_BIN)\rc.exe
+
+*_ICC11xASL_*_MAKE_FLAGS = /nologo
+*_ICC11xASL_*_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
+*_ICC11xASL_*_APP_FLAGS = /nologo /E /TC
+*_ICC11xASL_*_PP_FLAGS = /nologo /E /TC /FIAutoGen.h
+
+*_ICC11xASL_*_ASM16_PATH = DEF(MS_VS_BIN)\ml.exe
+
+##################
+# ASL definitions
+##################
+*_ICC11xASL_*_ASL_PATH = DEF(DEFAULT_WIN_ASL_BIN)
+*_ICC11xASL_*_ASL_FLAGS = DEF(DEFAULT_WIN_ASL_FLAGS)
+*_ICC11xASL_*_ASL_OUTFLAGS = DEF(DEFAULT_WIN_ASL_OUTFLAGS)
+*_ICC11xASL_*_ASLCC_FLAGS = DEF(ICC_WIN_ASLCC_FLAGS)
+*_ICC11xASL_*_ASLPP_FLAGS = DEF(ICC_WIN_ASLPP_FLAGS)
+*_ICC11xASL_*_ASLDLINK_FLAGS = DEF(ICC_WIN_ASLDLINK_FLAGS)
+
+##################
+# IA32 definitions
+##################
+*_ICC11xASL_IA32_CC_PATH = DEF(ICC11_BIN32)\icl.exe
+*_ICC11xASL_IA32_SLINK_PATH = DEF(ICC11_BIN32)\xilib.exe
+# xilib.exe needs lib.exe from Visual Studio
+*_ICC11xASL_IA32_SLINK_DLL = DEF(MS_VS_BIN)
+*_ICC11xASL_IA32_DLINK_PATH = DEF(ICC11_BIN32)\xilink.exe
+*_ICC11xASL_IA32_PP_PATH = DEF(ICC11_BIN32)\icl.exe
+*_ICC11xASL_IA32_VFRPP_PATH = DEF(ICC11_BIN32)\icl.exe
+*_ICC11xASL_IA32_APP_PATH = DEF(ICC11_BIN32)\icl.exe
+*_ICC11xASL_IA32_ASM_PATH = DEF(MS_VS_BIN)\ml.exe
+*_ICC11xASL_IA32_ASM_DLL = DEF(MS_VS_DLL)
+*_ICC11xASL_IA32_ASLCC_PATH = DEF(ICC11_BIN32)\icl.exe
+*_ICC11xASL_IA32_ASLPP_PATH = DEF(ICC11_BIN32)\icl.exe
+*_ICC11xASL_IA32_ASLDLINK_PATH = DEF(ICC11_BIN32)\xilink.exe
+
+ DEBUG_ICC11xASL_IA32_CC_FLAGS = /nologo /c /WX /W4 /Gy /Gs32768 /D UNICODE /O1ib2 /GL /DEFI_FIRMWARE_VENDOR=L\"INTEL\" /FIAutoGen.h /EHs-c- /GF /Zi /Gm
+RELEASE_ICC11xASL_IA32_CC_FLAGS = /nologo /c /WX /W4 /Gy /Gs32768 /D UNICODE /O1ib2 /GL /DEFI_FIRMWARE_VENDOR=L\"INTEL\" /FIAutoGen.h /EHs-c- /GF
+ DEBUG_ICC11xASL_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Zd /Zi
+RELEASE_ICC11xASL_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Zd
+ *_ICC11xASL_IA32_SLINK_FLAGS = /nologo
+ DEBUG_ICC11xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+RELEASE_ICC11xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
+
+##################
+# X64 definitions
+##################
+*_ICC11xASL_X64_CC_PATH = DEF(ICC11_BINX64)\icl.exe
+*_ICC11xASL_X64_SLINK_PATH = DEF(ICC11_BINX64)\xilib.exe
+# xilib.exe needs lib.exe from Visual Studio
+*_ICC11xASL_X64_SLINK_DLL = DEF(MS_VS_BIN)
+*_ICC11xASL_X64_DLINK_PATH = DEF(ICC11_BINX64)\xilink.exe
+*_ICC11xASL_X64_PP_PATH = DEF(ICC11_BINX64)\icl.exe
+*_ICC11xASL_X64_VFRPP_PATH = DEF(ICC11_BINX64)\icl.exe
+*_ICC11xASL_X64_APP_PATH = DEF(ICC11_BINX64)\icl.exe
+*_ICC11xASL_X64_ASM_PATH = DEF(WINDDK_BINX64)\ml64.exe
+*_ICC11xASL_X64_ASM_DLL = DEF(MS_VS_DLL)
+*_ICC11xASL_X64_ASLCC_PATH = DEF(ICC11_BINX64)\icl.exe
+*_ICC11xASL_X64_ASLPP_PATH = DEF(ICC11_BINX64)\icl.exe
+*_ICC11xASL_X64_ASLDLINK_PATH = DEF(ICC11_BINX64)\xilink.exe
+
+ DEBUG_ICC11xASL_X64_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FI$(DEST_DIR_DEBUG)/AutoGen.h /Zi /Gm /EHs-c- /GF
+RELEASE_ICC11xASL_X64_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FI$(DEST_DIR_DEBUG)/AutoGen.h /EHs-c- /GF
+ DEBUG_ICC11xASL_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi
+RELEASE_ICC11xASL_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd
+ DEBUG_ICC11xASL_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+RELEASE_ICC11xASL_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
+ *_ICC11xASL_X64_SLINK_FLAGS = /nologo /LTCG
+
+
+##################
+# IPF definitions
+##################
+*_ICC11xASL_IPF_CC_PATH = DEF(ICC11_BIN64)\icl.exe
+# icl.exe needs cl.exe from Visual Studio
+*_ICC11xASL_IPF_CC_DLL = DEF(MS_VS_BIN)
+*_ICC11xASL_IPF_SLINK_PATH = DEF(ICC11_BIN64)\xilib.exe
+# xilib.exe needs lib.exe from Visual Studio
+*_ICC11xASL_IPF_SLINK_DLL = DEF(MS_VS_BIN);DEF(MS_VS_DLL)
+*_ICC11xASL_IPF_DLINK_PATH = DEF(ICC11_BIN64)\xilink.exe
+*_ICC11xASL_IPF_PP_PATH = DEF(ICC11_BIN64)\icl.exe
+*_ICC11xASL_IPF_VFRPP_PATH = DEF(ICC11_BIN64)\icl.exe
+*_ICC11xASL_IPF_APP_PATH = DEF(ICC11_BIN64)\icl.exe
+*_ICC11xASL_IPF_ASM_PATH = DEF(ICC11_BIN64)\ias.exe
+*_ICC11xASL_IPF_ASLCC_PATH = DEF(ICC11_BIN64)\icl.exe
+*_ICC11xASL_IPF_ASLPP_PATH = DEF(ICC11_BIN64)\icl.exe
+*_ICC11xASL_IPF_ASLDLINK_PATH = DEF(ICC11_BIN64)\xilink.exe
+
+ DEBUG_ICC11xASL_IPF_CC_FLAGS = /nologo /c /WX /W4 /GX /Gy /Od /FI$(DEST_DIR_DEBUG)/AutoGen.h /QIA64_fr32 /GF /Qfreestanding /Zi
+RELEASE_ICC11xASL_IPF_CC_FLAGS = /nologo /c /WX /W4 /GX /Gy /Od /FI$(DEST_DIR_DEBUG)/AutoGen.h /QIA64_fr32 /GF /Qfreestanding
+ DEBUG_ICC11xASL_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W3 -d debug -F COFF32
+RELEASE_ICC11xASL_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W3 -F COFF32
+ DEBUG_ICC11xASL_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb /DEBUG
+RELEASE_ICC11xASL_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb
+ *_ICC11xASL_IPF_SLINK_FLAGS = /nologo
+
+##################
+# EBC definitions
+##################
+*_ICC11xASL_EBC_*_FAMILY = INTEL
+
+*_ICC11xASL_EBC_MAKE_PATH = DEF(MS_VS_BIN)\nmake.exe
+*_ICC11xASL_EBC_PP_PATH = DEF(EBC_BIN)\iec.exe
+*_ICC11xASL_EBC_VFRPP_PATH = DEF(EBC_BIN)\iec.exe
+*_ICC11xASL_EBC_CC_PATH = DEF(EBC_BIN)\iec.exe
+*_ICC11xASL_EBC_SLINK_PATH = DEF(EBC_BIN)\link.exe
+*_ICC11xASL_EBC_DLINK_PATH = DEF(EBC_BIN)\link.exe
+
+*_ICC11xASL_EBC_MAKE_FLAGS = /nologo
+*_ICC11xASL_EBC_PP_FLAGS = /nologo /E /TC /FIAutoGen.h
+*_ICC11xASL_EBC_CC_FLAGS = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)
+*_ICC11xASL_EBC_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
+*_ICC11xASL_EBC_SLINK_FLAGS = /lib /NOLOGO /MACHINE:EBC
+*_ICC11xASL_EBC_DLINK_FLAGS = "C:\Program Files\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP
+
+
+####################################################################################
+#
+# Intel(R) C++ Compiler Version 11.1 x86 (32-bit on 64-bit OS)
+#
+# IA32 - Intel(R) C++ Compiler for applications running on IA32 (Version 11.1 Build 065 Package ID: w_cproc_p_11.1.065_ia32)
+# X64 - Intel(R) C++ Compiler for applications running on Intel(R) 64 (Version 11.1 Build 065 Package ID: w_cproc_p_11.1.065_intel64)
+# IPF - Intel(R) C++ Compiler for applications running on IA-64 (Version 11.1 Build 065 Package ID: w_cproc_p_11.1.065_ia64)
+# ASL - Intel ACPI Source Language Compiler
+#
+####################################################################################
+# ICC11x86 - Intel C Compiler V11.1
+*_ICC11x86_*_*_FAMILY = INTEL
+
+*_ICC11x86_*_MAKE_PATH = DEF(VS2005x86_BIN)\nmake.exe
+*_ICC11x86_*_RC_PATH = DEF(VS2005x86_BIN)\rc.exe
+
+*_ICC11x86_*_MAKE_FLAGS = /nologo
+*_ICC11x86_*_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
+*_ICC11x86_*_APP_FLAGS = /nologo /E /TC
+*_ICC11x86_*_PP_FLAGS = /nologo /E /TC /FIAutoGen.h
+
+*_ICC11x86_*_ASM16_PATH = DEF(VS2005x86_BIN)\ml.exe
+
+##################
+# ASL definitions
+##################
+*_ICC11x86_*_ASL_PATH = DEF(DEFAULT_WIN_ASL_BIN)
+*_ICC11x86_*_ASL_FLAGS = DEF(DEFAULT_WIN_ASL_FLAGS)
+*_ICC11x86_*_ASL_OUTFLAGS = DEF(DEFAULT_WIN_ASL_OUTFLAGS)
+*_ICC11x86_*_ASLCC_FLAGS = DEF(ICC_WIN_ASLCC_FLAGS)
+*_ICC11x86_*_ASLPP_FLAGS = DEF(ICC_WIN_ASLPP_FLAGS)
+*_ICC11x86_*_ASLDLINK_FLAGS = DEF(ICC_WIN_ASLDLINK_FLAGS)
+
+##################
+# IA32 definitions
+##################
+*_ICC11x86_IA32_CC_PATH = DEF(ICC11_BIN32x86)\icl.exe
+*_ICC11x86_IA32_SLINK_PATH = DEF(ICC11_BIN32x86)\xilib.exe
+# xilib.exe needs lib.exe from Visual Studio
+*_ICC11x86_IA32_SLINK_DLL = DEF(VS2005x86_BIN)
+*_ICC11x86_IA32_DLINK_PATH = DEF(ICC11_BIN32x86)\xilink.exe
+*_ICC11x86_IA32_PP_PATH = DEF(ICC11_BIN32x86)\icl.exe
+*_ICC11x86_IA32_VFRPP_PATH = DEF(ICC11_BIN32x86)\icl.exe
+*_ICC11x86_IA32_APP_PATH = DEF(ICC11_BIN32x86)\icl.exe
+*_ICC11x86_IA32_ASM_PATH = DEF(VS2005x86_BIN)\ml.exe
+*_ICC11x86_IA32_ASM_DLL = DEF(VS2005x86_DLL)
+*_ICC11x86_IA32_ASLCC_PATH = DEF(ICC11_BIN32x86)\icl.exe
+*_ICC11x86_IA32_ASLPP_PATH = DEF(ICC11_BIN32x86)\icl.exe
+*_ICC11x86_IA32_ASLDLINK_PATH = DEF(ICC11_BIN32x86)\xilink.exe
+
+ DEBUG_ICC11x86_IA32_CC_FLAGS = /nologo /c /WX /W4 /Gy /Gs32768 /D UNICODE /O1ib2 /GL /DEFI_FIRMWARE_VENDOR=L\"INTEL\" /FIAutoGen.h /EHs-c- /GF /Zi /Gm
+RELEASE_ICC11x86_IA32_CC_FLAGS = /nologo /c /WX /W4 /Gy /Gs32768 /D UNICODE /O1ib2 /GL /DEFI_FIRMWARE_VENDOR=L\"INTEL\" /FIAutoGen.h /EHs-c- /GF
+ DEBUG_ICC11x86_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Zd /Zi
+RELEASE_ICC11x86_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Zd
+ *_ICC11x86_IA32_SLINK_FLAGS = /nologo
+ DEBUG_ICC11x86_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+RELEASE_ICC11x86_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
+
+##################
+# X64 definitions
+##################
+*_ICC11x86_X64_CC_PATH = DEF(ICC11_BINX64x86)\icl.exe
+*_ICC11x86_X64_SLINK_PATH = DEF(ICC11_BINX64x86)\xilib.exe
+# xilib.exe needs lib.exe from Visual Studio
+*_ICC11x86_X64_SLINK_DLL = DEF(VS2005x86_BIN)
+*_ICC11x86_X64_DLINK_PATH = DEF(ICC11_BINX64x86)\xilink.exe
+*_ICC11x86_X64_PP_PATH = DEF(ICC11_BINX64x86)\icl.exe
+*_ICC11x86_X64_VFRPP_PATH = DEF(ICC11_BINX64x86)\icl.exe
+*_ICC11x86_X64_APP_PATH = DEF(ICC11_BINX64x86)\icl.exe
+*_ICC11x86_X64_ASM_PATH = DEF(WINDDK_BINX64)\ml64.exe
+*_ICC11x86_X64_ASM_DLL = DEF(VS2005x86_DLL)
+*_ICC11x86_X64_ASLCC_PATH = DEF(ICC11_BINX64x86)\icl.exe
+*_ICC11x86_X64_ASLPP_PATH = DEF(ICC11_BINX64x86)\icl.exe
+*_ICC11x86_X64_ASLDLINK_PATH = DEF(ICC11_BINX64x86)\xilink.exe
+
+ DEBUG_ICC11x86_X64_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FI$(DEST_DIR_DEBUG)/AutoGen.h /Zi /Gm /EHs-c- /GF
+RELEASE_ICC11x86_X64_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FI$(DEST_DIR_DEBUG)/AutoGen.h /EHs-c- /GF
+ DEBUG_ICC11x86_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi
+RELEASE_ICC11x86_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd
+ DEBUG_ICC11x86_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+RELEASE_ICC11x86_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
+ *_ICC11x86_X64_SLINK_FLAGS = /nologo /LTCG
+
+
+##################
+# IPF definitions
+##################
+*_ICC11x86_IPF_CC_PATH = DEF(ICC11_BIN64x86)\icl.exe
+# icl.exe needs cl.exe from Visual Studio
+*_ICC11x86_IPF_CC_DLL = DEF(VS2005x86_BIN)
+*_ICC11x86_IPF_SLINK_PATH = DEF(ICC11_BIN64x86)\xilib.exe
+# xilib.exe needs lib.exe from Visual Studio
+*_ICC11x86_IPF_SLINK_DLL = DEF(VS2005x86_BIN);DEF(VS2005x86_DLL)
+*_ICC11x86_IPF_DLINK_PATH = DEF(ICC11_BIN64x86)\xilink.exe
+*_ICC11x86_IPF_PP_PATH = DEF(ICC11_BIN64x86)\icl.exe
+*_ICC11x86_IPF_VFRPP_PATH = DEF(ICC11_BIN64x86)\icl.exe
+*_ICC11x86_IPF_APP_PATH = DEF(ICC11_BIN64x86)\icl.exe
+*_ICC11x86_IPF_ASM_PATH = DEF(ICC11_BIN64x86)\ias.exe
+*_ICC11x86_IPF_ASLCC_PATH = DEF(ICC11_BIN64x86)\icl.exe
+*_ICC11x86_IPF_ASLPP_PATH = DEF(ICC11_BIN64x86)\icl.exe
+*_ICC11x86_IPF_ASLDLINK_PATH = DEF(ICC11_BIN64x86)\xilink.exe
+
+ DEBUG_ICC11x86_IPF_CC_FLAGS = /nologo /c /WX /W4 /GX /Gy /Od /FI$(DEST_DIR_DEBUG)/AutoGen.h /QIA64_fr32 /GF /Qfreestanding /Zi
+RELEASE_ICC11x86_IPF_CC_FLAGS = /nologo /c /WX /W4 /GX /Gy /Od /FI$(DEST_DIR_DEBUG)/AutoGen.h /QIA64_fr32 /GF /Qfreestanding
+ DEBUG_ICC11x86_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W3 -d debug -F COFF32
+RELEASE_ICC11x86_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W3 -F COFF32
+ DEBUG_ICC11x86_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb /DEBUG
+RELEASE_ICC11x86_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb
+ *_ICC11x86_IPF_SLINK_FLAGS = /nologo
+
+##################
+# EBC definitions
+##################
+*_ICC11x86_EBC_*_FAMILY = INTEL
+
+*_ICC11x86_EBC_MAKE_PATH = DEF(VS2005x86_BIN)\nmake.exe
+*_ICC11x86_EBC_PP_PATH = DEF(EBC_BINx86)\iec.exe
+*_ICC11x86_EBC_VFRPP_PATH = DEF(EBC_BINx86)\iec.exe
+*_ICC11x86_EBC_CC_PATH = DEF(EBC_BINx86)\iec.exe
+*_ICC11x86_EBC_SLINK_PATH = DEF(EBC_BINx86)\link.exe
+*_ICC11x86_EBC_DLINK_PATH = DEF(EBC_BINx86)\link.exe
+
+*_ICC11x86_EBC_MAKE_FLAGS = /nologo
+*_ICC11x86_EBC_PP_FLAGS = /nologo /E /TC /FIAutoGen.h
+*_ICC11x86_EBC_CC_FLAGS = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)
+*_ICC11x86_EBC_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
+*_ICC11x86_EBC_SLINK_FLAGS = /lib /NOLOGO /MACHINE:EBC
+*_ICC11x86_EBC_DLINK_FLAGS = "C:\Program Files (x86)\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP
+
+
+####################################################################################
+#
+# Intel(R) C++ Compiler Version 11.1 x86 (32-bit on 64-bit OS)
+#
+# IA32 - Intel(R) C++ Compiler for applications running on IA32 (Version 11.1 Build 065 Package ID: w_cproc_p_11.1.065_ia32)
+# X64 - Intel(R) C++ Compiler for applications running on Intel(R) 64 (Version 11.1 Build 065 Package ID: w_cproc_p_11.1.065_intel64)
+# IPF - Intel(R) C++ Compiler for applications running on IA-64 (Version 11.1 Build 065 Package ID: w_cproc_p_11.1.065_ia64)
+# ASL - Microsoft ACPI Source Language Compiler
+#
+####################################################################################
+# ICC11x86xASL - Intel C Compiler V11.1
+*_ICC11x86xASL_*_*_FAMILY = INTEL
+
+*_ICC11x86xASL_*_MAKE_PATH = DEF(VS2005x86_BIN)\nmake.exe
+*_ICC11x86xASL_*_RC_PATH = DEF(VS2005x86_BIN)\rc.exe
+
+*_ICC11x86xASL_*_MAKE_FLAGS = /nologo
+*_ICC11x86xASL_*_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
+*_ICC11x86xASL_*_APP_FLAGS = /nologo /E /TC
+*_ICC11x86xASL_*_PP_FLAGS = /nologo /E /TC /FIAutoGen.h
+
+*_ICC11x86xASL_*_ASM16_PATH = DEF(VS2005x86_BIN)\ml.exe
+
+##################
+# ASL definitions
+##################
+*_ICC11x86xASL_*_ASL_PATH = DEF(WIN_ASL_BIN)
+*_ICC11x86xASL_*_ASL_FLAGS =
+*_ICC11x86xASL_*_ASL_OUTFLAGS = DEF(MS_ASL_OUTFLAGS)
+*_ICC11x86xASL_*_ASLCC_FLAGS = DEF(ICC_WIN_ASLCC_FLAGS)
+*_ICC11x86xASL_*_ASLPP_FLAGS = DEF(ICC_WIN_ASLPP_FLAGS)
+*_ICC11x86xASL_*_ASLDLINK_FLAGS = DEF(ICC_WIN_ASLDLINK_FLAGS)
+
+##################
+# IA32 definitions
+##################
+*_ICC11x86xASL_IA32_CC_PATH = DEF(ICC11_BIN32x86)\icl.exe
+*_ICC11x86xASL_IA32_SLINK_PATH = DEF(ICC11_BIN32x86)\xilib.exe
+# xilib.exe needs lib.exe from Visual Studio
+*_ICC11x86xASL_IA32_SLINK_DLL = DEF(VS2005x86_BIN)
+*_ICC11x86xASL_IA32_DLINK_PATH = DEF(ICC11_BIN32x86)\xilink.exe
+*_ICC11x86xASL_IA32_PP_PATH = DEF(ICC11_BIN32x86)\icl.exe
+*_ICC11x86xASL_IA32_VFRPP_PATH = DEF(ICC11_BIN32x86)\icl.exe
+*_ICC11x86xASL_IA32_APP_PATH = DEF(ICC11_BIN32x86)\icl.exe
+*_ICC11x86xASL_IA32_ASM_PATH = DEF(VS2005x86_BIN)\ml.exe
+*_ICC11x86xASL_IA32_ASM_DLL = DEF(VS2005x86_DLL)
+*_ICC11x86xASL_IA32_ASLCC_PATH = DEF(ICC11_BIN32x86)\icl.exe
+*_ICC11x86xASL_IA32_ASLPP_PATH = DEF(ICC11_BIN32x86)\icl.exe
+*_ICC11x86xASL_IA32_ASLDLINK_PATH = DEF(ICC11_BIN32x86)\xilink.exe
+
+ DEBUG_ICC11x86xASL_IA32_CC_FLAGS = /nologo /c /WX /W4 /Gy /Gs32768 /D UNICODE /O1ib2 /GL /DEFI_FIRMWARE_VENDOR=L\"INTEL\" /FIAutoGen.h /EHs-c- /GF /Zi /Gm
+RELEASE_ICC11x86xASL_IA32_CC_FLAGS = /nologo /c /WX /W4 /Gy /Gs32768 /D UNICODE /O1ib2 /GL /DEFI_FIRMWARE_VENDOR=L\"INTEL\" /FIAutoGen.h /EHs-c- /GF
+ DEBUG_ICC11x86xASL_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Zd /Zi
+RELEASE_ICC11x86xASL_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Zd
+ *_ICC11x86xASL_IA32_SLINK_FLAGS = /nologo
+ DEBUG_ICC11x86xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+RELEASE_ICC11x86xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
+
+##################
+# X64 definitions
+##################
+*_ICC11x86xASL_X64_CC_PATH = DEF(ICC11_BINX64x86)\icl.exe
+*_ICC11x86xASL_X64_SLINK_PATH = DEF(ICC11_BINX64x86)\xilib.exe
+# xilib.exe needs lib.exe from Visual Studio
+*_ICC11x86xASL_X64_SLINK_DLL = DEF(VS2005x86_BIN)
+*_ICC11x86xASL_X64_DLINK_PATH = DEF(ICC11_BINX64x86)\xilink.exe
+*_ICC11x86xASL_X64_PP_PATH = DEF(ICC11_BINX64x86)\icl.exe
+*_ICC11x86xASL_X64_VFRPP_PATH = DEF(ICC11_BINX64x86)\icl.exe
+*_ICC11x86xASL_X64_APP_PATH = DEF(ICC11_BINX64x86)\icl.exe
+*_ICC11x86xASL_X64_ASM_PATH = DEF(WINDDK_BINX64)\ml64.exe
+*_ICC11x86xASL_X64_ASM_DLL = DEF(VS2005x86_DLL)
+*_ICC11x86xASL_X64_ASLCC_PATH = DEF(ICC11_BINX64x86)\icl.exe
+*_ICC11x86xASL_X64_ASLPP_PATH = DEF(ICC11_BINX64x86)\icl.exe
+*_ICC11x86xASL_X64_ASLDLINK_PATH = DEF(ICC11_BINX64x86)\xilink.exe
+
+ DEBUG_ICC11x86xASL_X64_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FI$(DEST_DIR_DEBUG)/AutoGen.h /Zi /Gm /EHs-c- /GF
+RELEASE_ICC11x86xASL_X64_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FI$(DEST_DIR_DEBUG)/AutoGen.h /EHs-c- /GF
+ DEBUG_ICC11x86xASL_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi
+RELEASE_ICC11x86xASL_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd
+ DEBUG_ICC11x86xASL_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+RELEASE_ICC11x86xASL_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
+ *_ICC11x86xASL_X64_SLINK_FLAGS = /nologo /LTCG
+
+
+##################
+# IPF definitions
+##################
+*_ICC11x86xASL_IPF_CC_PATH = DEF(ICC11_BIN64x86)\icl.exe
+# icl.exe needs cl.exe from Visual Studio
+*_ICC11x86xASL_IPF_CC_DLL = DEF(VS2005x86_BIN)
+*_ICC11x86xASL_IPF_SLINK_PATH = DEF(ICC11_BIN64x86)\xilib.exe
+# xilib.exe needs lib.exe from Visual Studio
+*_ICC11x86xASL_IPF_SLINK_DLL = DEF(VS2005x86_BIN);DEF(VS2005x86_DLL)
+*_ICC11x86xASL_IPF_DLINK_PATH = DEF(ICC11_BIN64x86)\xilink.exe
+*_ICC11x86xASL_IPF_PP_PATH = DEF(ICC11_BIN64x86)\icl.exe
+*_ICC11x86xASL_IPF_VFRPP_PATH = DEF(ICC11_BIN64x86)\icl.exe
+*_ICC11x86xASL_IPF_APP_PATH = DEF(ICC11_BIN64x86)\icl.exe
+*_ICC11x86xASL_IPF_ASM_PATH = DEF(ICC11_BIN64x86)\ias.exe
+*_ICC11x86xASL_IPF_ASLCC_PATH = DEF(ICC11_BIN64x86)\icl.exe
+*_ICC11x86xASL_IPF_ASLPP_PATH = DEF(ICC11_BIN64x86)\icl.exe
+*_ICC11x86xASL_IPF_ASLDLINK_PATH = DEF(ICC11_BIN64x86)\xilink.exe
+
+ DEBUG_ICC11x86xASL_IPF_CC_FLAGS = /nologo /c /WX /W4 /GX /Gy /Od /FI$(DEST_DIR_DEBUG)/AutoGen.h /QIA64_fr32 /GF /Qfreestanding /Zi
+RELEASE_ICC11x86xASL_IPF_CC_FLAGS = /nologo /c /WX /W4 /GX /Gy /Od /FI$(DEST_DIR_DEBUG)/AutoGen.h /QIA64_fr32 /GF /Qfreestanding
+ DEBUG_ICC11x86xASL_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W3 -d debug -F COFF32
+RELEASE_ICC11x86xASL_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W3 -F COFF32
+ DEBUG_ICC11x86xASL_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb /DEBUG
+RELEASE_ICC11x86xASL_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb
+ *_ICC11x86xASL_IPF_SLINK_FLAGS = /nologo
+
+##################
+# EBC definitions
+##################
+*_ICC11x86xASL_EBC_*_FAMILY = INTEL
+
+*_ICC11x86xASL_EBC_MAKE_PATH = DEF(VS2005x86_BIN)\nmake.exe
+*_ICC11x86xASL_EBC_PP_PATH = DEF(EBC_BINx86)\iec.exe
+*_ICC11x86xASL_EBC_VFRPP_PATH = DEF(EBC_BINx86)\iec.exe
+*_ICC11x86xASL_EBC_CC_PATH = DEF(EBC_BINx86)\iec.exe
+*_ICC11x86xASL_EBC_SLINK_PATH = DEF(EBC_BINx86)\link.exe
+*_ICC11x86xASL_EBC_DLINK_PATH = DEF(EBC_BINx86)\link.exe
+
+*_ICC11x86xASL_EBC_MAKE_FLAGS = /nologo
+*_ICC11x86xASL_EBC_PP_FLAGS = /nologo /E /TC /FIAutoGen.h
+*_ICC11x86xASL_EBC_CC_FLAGS = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)
+*_ICC11x86xASL_EBC_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
+*_ICC11x86xASL_EBC_SLINK_FLAGS = /lib /NOLOGO /MACHINE:EBC
+*_ICC11x86xASL_EBC_DLINK_FLAGS = "C:\Program Files (x86)\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP
+
+
+####################################################################################
+#
+# MYTOOLS
+# IA32 - Microsoft Visual Studio 2008 Team Suite
+# X64 - Microsoft Visual Studio 2008 Team Suite
+# IPF - Microsoft Windows DDK 3790.1830
+# EBC - Intel EFI Byte Code Compiler
+#
+####################################################################################
+# MYTOOLS - Settings compatible with previous versions of tools_def.template
+*_MYTOOLS_*_*_FAMILY = MSFT
+
+##################
+# ASL definitions
+##################
+*_MYTOOLS_*_ASL_PATH = DEF(DEFAULT_WIN_ASL_BIN)
+*_MYTOOLS_*_ASL_FLAGS = DEF(DEFAULT_WIN_ASL_FLAGS)
+*_MYTOOLS_*_ASL_OUTFLAGS = DEF(DEFAULT_WIN_ASL_OUTFLAGS)
+*_MYTOOLS_*_ASLCC_FLAGS = DEF(MSFT_ASLCC_FLAGS)
+*_MYTOOLS_*_ASLPP_FLAGS = DEF(MSFT_ASLPP_FLAGS)
+*_MYTOOLS_*_ASLDLINK_FLAGS = DEF(MSFT_ASLDLINK_FLAGS)
+
+
+*_MYTOOLS_*_MAKE_FLAGS = /nologo
+*_MYTOOLS_*_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
+*_MYTOOLS_*_APP_FLAGS = /nologo /E /TC
+*_MYTOOLS_*_PP_FLAGS = /nologo /E /TC /FIAutoGen.h
+*_MYTOOLS_*_SLINK_FLAGS = /nologo /LTCG
+
+*_MYTOOLS_*_ASM16_PATH = DEF(VS2008_BIN)\ml.exe
+
+##################
+# IA32 definitions
+##################
+*_MYTOOLS_IA32_*_DLL = DEF(VS2008_DLL)
+
+*_MYTOOLS_IA32_MAKE_PATH = DEF(VS2008_BIN)\nmake.exe
+*_MYTOOLS_IA32_CC_PATH = DEF(VS2008_BIN)\cl.exe
+*_MYTOOLS_IA32_SLINK_PATH = DEF(VS2008_BIN)\lib.exe
+*_MYTOOLS_IA32_DLINK_PATH = DEF(VS2008_BIN)\link.exe
+*_MYTOOLS_IA32_PP_PATH = DEF(VS2008_BIN)\cl.exe
+*_MYTOOLS_IA32_VFRPP_PATH = DEF(VS2008_BIN)\cl.exe
+*_MYTOOLS_IA32_APP_PATH = DEF(VS2008_BIN)\cl.exe
+*_MYTOOLS_IA32_ASM_PATH = DEF(VS2008_BIN)\ml.exe
+*_MYTOOLS_IA32_ASLCC_PATH = DEF(VS2008_BIN)\cl.exe
+*_MYTOOLS_IA32_ASLPP_PATH = DEF(VS2008_BIN)\cl.exe
+*_MYTOOLS_IA32_ASLDLINK_PATH = DEF(VS2008_BIN)\link.exe
+*_MYTOOLS_IA32_RC_PATH = DEF(WINSDK_BIN)\rc.exe
+
+ DEBUG_MYTOOLS_IA32_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /Gy /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm
+RELEASE_MYTOOLS_IA32_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /Gy /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF
+ DEBUG_MYTOOLS_IA32_ASM_FLAGS = /nologo /c /WX /W3 /coff /Cx /Zd /Zi
+RELEASE_MYTOOLS_IA32_ASM_FLAGS = /nologo /c /WX /W3 /coff /Cx /Zd
+ DEBUG_MYTOOLS_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb
+RELEASE_MYTOOLS_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb
+
+##################
+# x64 definitions
+##################
+*_MYTOOLS_X64_*_DLL = DEF(VS2008_DLL)
+
+*_MYTOOLS_X64_MAKE_PATH = DEF(VS2008_BIN)\nmake.exe
+*_MYTOOLS_X64_CC_PATH = DEF(VS2008_BINX64)\cl.exe
+*_MYTOOLS_X64_SLINK_PATH = DEF(VS2008_BINX64)\lib.exe
+*_MYTOOLS_X64_DLINK_PATH = DEF(VS2008_BINX64)\link.exe
+*_MYTOOLS_X64_PP_PATH = DEF(VS2008_BINX64)\cl.exe
+*_MYTOOLS_X64_VFRPP_PATH = DEF(VS2008_BINX64)\cl.exe
+*_MYTOOLS_X64_APP_PATH = DEF(VS2008_BINX64)\cl.exe
+*_MYTOOLS_X64_ASM_PATH = DEF(VS2008_BINX64)\ml64.exe
+*_MYTOOLS_X64_ASLCC_PATH = DEF(VS2008_BINX64)\cl.exe
+*_MYTOOLS_X64_ASLPP_PATH = DEF(VS2008_BINX64)\cl.exe
+*_MYTOOLS_X64_ASLDLINK_PATH = DEF(VS2008_BINX64)\link.exe
+*_MYTOOLS_X64_RC_PATH = DEF(WINSDK_BIN)\rc.exe
+
+ DEBUG_MYTOOLS_X64_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /Gy /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm
+RELEASE_MYTOOLS_X64_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /Gy /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF
+ DEBUG_MYTOOLS_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi
+RELEASE_MYTOOLS_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd
+ DEBUG_MYTOOLS_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+RELEASE_MYTOOLS_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
+
+##################
+# IPF definitions
+##################
+*_MYTOOLS_IPF_MAKE_PATH = DEF(WINDDK_BIN32)\nmake.exe
+*_MYTOOLS_IPF_CC_PATH = DEF(WINDDK_BIN64)\cl.exe
+*_MYTOOLS_IPF_SLINK_PATH = DEF(WINDDK_BIN64)\lib.exe
+*_MYTOOLS_IPF_DLINK_PATH = DEF(WINDDK_BIN64)\link.exe
+*_MYTOOLS_IPF_PP_PATH = DEF(WINDDK_BIN64)\cl.exe
+*_MYTOOLS_IPF_VFRPP_PATH = DEF(WINDDK_BIN64)\cl.exe
+*_MYTOOLS_IPF_APP_PATH = DEF(WINDDK_BIN64)\cl.exe
+*_MYTOOLS_IPF_ASM_PATH = DEF(WINDDK_BIN64)\ias.exe
+*_MYTOOLS_IPF_ASLCC_PATH = DEF(WINDDK_BIN64)\cl.exe
+*_MYTOOLS_IPF_ASLPP_PATH = DEF(WINDDK_BIN64)\cl.exe
+*_MYTOOLS_IPF_ASLDLINK_PATH = DEF(WINDDK_BIN64)\link.exe
+*_MYTOOLS_IPF_RC_PATH = DEF(WINDDK_BIN32)\rc.exe
+
+ *_MYTOOLS_IPF_ASM_OUTPUT = "-o "
+ DEBUG_MYTOOLS_IPF_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /Gy /Ox /GL /FIAutoGen.h /EHs-c- /GR- /GF /Zx /QIPF_fr32 /Zi
+RELEASE_MYTOOLS_IPF_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /Gy /Ox /GL /FIAutoGen.h /EHs-c- /GR- /GF /Zx /QIPF_fr32
+ DEBUG_MYTOOLS_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W4 -d debug
+RELEASE_MYTOOLS_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W4
+ DEBUG_MYTOOLS_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF /OPT:ICF=10 /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb /DEBUG
+RELEASE_MYTOOLS_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF /OPT:ICF=10 /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb
+ *_MYTOOLS_IPF_SLINK_FLAGS = /nologo /LTCG
+
+##################
+# EBC definitions
+##################
+*_MYTOOLS_EBC_*_FAMILY = INTEL
+
+*_MYTOOLS_EBC_MAKE_PATH = DEF(VS2005_BIN)\nmake.exe
+*_MYTOOLS_EBC_PP_PATH = DEF(EBC_BIN)\iec.exe
+*_MYTOOLS_EBC_VFRPP_PATH = DEF(EBC_BIN)\iec.exe
+*_MYTOOLS_EBC_CC_PATH = DEF(EBC_BIN)\iec.exe
+*_MYTOOLS_EBC_SLINK_PATH = DEF(EBC_BIN)\link.exe
+*_MYTOOLS_EBC_DLINK_PATH = DEF(EBC_BIN)\link.exe
+*_MYTOOLS_EBC_RC_PATH = DEF(VS2005_BIN)\rc.exe
+
+*_MYTOOLS_EBC_MAKE_FLAGS = /nologo
+*_MYTOOLS_EBC_PP_FLAGS = /nologo /E /TC /FIAutoGen.h
+*_MYTOOLS_EBC_CC_FLAGS = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)
+*_MYTOOLS_EBC_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
+*_MYTOOLS_EBC_SLINK_FLAGS = /lib /NOLOGO /MACHINE:EBC
+*_MYTOOLS_EBC_DLINK_FLAGS = "C:\Program Files\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP
+
+
+####################################################################################
+#
+# Xcode Support for building on Mac OS X (Snow Leopard)
+#
+####################################################################################
+# XCODE32 - Xcode 3.2 Tools (Snow Leopard)
+*_XCODE32_*_*_FAMILY = GCC
+*_XCODE32_*_*_BUILDRULEFAMILY = XCODE
+
+
+*_XCODE32_*_ASL_PATH = /usr/bin/iasl
+
+*_XCODE32_*_MAKE_PATH = make
+
+*_XCODE32_*_DSYMUTIL_PATH = /usr/bin/dsymutil
+
+# This tool needs to be installed seperatly from Xcode 3.2
+*_XCODE32_*_MTOC_PATH = /usr/local/bin/mtoc
+
+ DEBUG_XCODE32_*_MTOC_FLAGS = -align 0x20 -d $(DEBUG_DIR)/$(MODULE_NAME).dll
+RELEASE_XCODE32_*_MTOC_FLAGS = -align 0x20
+
+##################
+# IA32 definitions
+##################
+*_XCODE32_IA32_CC_PATH = gcc
+*_XCODE32_IA32_SLINK_PATH = libtool
+*_XCODE32_IA32_DLINK_PATH = ld
+*_XCODE32_IA32_ASM_PATH = as
+*_XCODE32_IA32_PP_PATH = gcc
+*_XCODE32_IA32_VFRPP_PATH = gcc
+*_XCODE32_IA32_ASL_PATH = iasl
+*_XCODE32_IA32_ASLCC_PATH = gcc
+*_XCODE32_IA32_ASLPP_PATH = gcc
+*_XCODE32_IA32_ASLDLINK_PATH = ld
+
+ DEBUG_XCODE32_IA32_DLINK_FLAGS = -arch i386 -u _$(IMAGE_ENTRY_POINT) -e _$(IMAGE_ENTRY_POINT) -preload -segalign 0x20 -pie -all_load -dead_strip -seg1addr 0x240 -read_only_relocs suppress -map $(DEST_DIR_DEBUG)/$(BASE_NAME).map
+RELEASE_XCODE32_IA32_DLINK_FLAGS = -arch i386 -u _$(IMAGE_ENTRY_POINT) -e _$(IMAGE_ENTRY_POINT) -preload -segalign 0x20 -pie -all_load -dead_strip -seg1addr 0x220 -read_only_relocs suppress -map $(DEST_DIR_DEBUG)/$(BASE_NAME).map
+*_XCODE32_IA32_SLINK_FLAGS = -static -o
+ DEBUG_XCODE32_IA32_ASM_FLAGS = -arch i386 -g
+RELEASE_XCODE32_IA32_ASM_FLAGS = -arch i386
+*_XCODE32_IA32_PP_FLAGS = -arch i386 -E -x assembler-with-cpp -include $(DEST_DIR_DEBUG)/AutoGen.h
+*_XCODE32_IA32_VFRPP_FLAGS = -arch i386 -x c -E -P -DVFRCOMPILE --include $(DEST_DIR_DEBUG)/$(MODULE_NAME)StrDefs.h
+ DEBUG_XCODE32_IA32_CC_FLAGS = -arch i386 -save-temps -g -O0 -combine -mms-bitfields -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-missing-braces -c -include AutoGen.h -mdynamic-no-pic -fno-stack-protector
+RELEASE_XCODE32_IA32_CC_FLAGS = -arch i386 -Oz -combine -mms-bitfields -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-missing-braces -fomit-frame-pointer -c -include AutoGen.h -mdynamic-no-pic -fno-stack-protector
+
+*_XCODE32_IA32_ASLCC_FLAGS = -arch i386 -x c -save-temps -g -O0 -mms-bitfields -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-missing-braces -c -include AutoGen.h -mdynamic-no-pic
+*_XCODE32_IA32_ASLDLINK_FLAGS = -arch i386 -e _main -preload -segalign 0x20 -pie -seg1addr 0x220 -read_only_relocs suppress -map $(DEST_DIR_DEBUG)/$(BASE_NAME).map
+*_XCODE32_IA32_ASLPP_FLAGS = -arch i386 -x c -E
+*_XCODE32_IA32_ASL_FLAGS =
+
+##################
+# X64 definitions - still a work in progress. This tool chain does not produce
+# the correct ABI, it is just used to compile the code....
+##################
+*_XCODE32_X64_CC_PATH = gcc-4.2
+*_XCODE32_X64_SLINK_PATH = libtool
+*_XCODE32_X64_DLINK_PATH = ld
+*_XCODE32_X64_ASM_PATH = as
+*_XCODE32_X64_PP_PATH = gcc-4.2
+*_XCODE32_X64_VFRPP_PATH = gcc-4.2
+*_XCODE32_X64_ASL_PATH = iasl
+*_XCODE32_X64_ASLCC_PATH = gcc
+*_XCODE32_X64_ASLPP_PATH = gcc
+*_XCODE32_X64_ASLDLINK_PATH = ld
+
+*_XCODE32_X64_DLINK_FLAGS = -arch x86_64 -u _$(IMAGE_ENTRY_POINT) -e _$(IMAGE_ENTRY_POINT) -preload -segalign 0x20 -pie -seg1addr 0x240 -read_only_relocs suppress -map $(DEST_DIR_DEBUG)/$(BASE_NAME).map
+*_XCODE32_X64_SLINK_FLAGS = -static -o
+
+ DEBUG_XCODE32_X64_ASM_FLAGS = -arch x86_64 -g
+RELEASE_XCODE32_X64_ASM_FLAGS = -arch x86_64
+*_XCODE32_X64_PP_FLAGS = -arch x86_64 -E -x assembler-with-cpp -include $(DEST_DIR_DEBUG)/AutoGen.h
+*_XCODE32_X64_VFRPP_FLAGS = -arch x86_64 -x c -E -P -DVFRCOMPILE --include $(DEST_DIR_DEBUG)/$(MODULE_NAME)StrDefs.h
+
+ DEBUG_XCODE32_X64_CC_FLAGS = -arch x86_64 -save-temps -g -O0 -combine -mms-bitfields -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-missing-braces -Wno-address -fomit-frame-pointer -static -c -include AutoGen.h -fno-stack-protector
+RELEASE_XCODE32_X64_CC_FLAGS = -arch x86_64 -Oz -combine -mms-bitfields -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-missing-braces -Wno-address -fomit-frame-pointer -static -c -include AutoGen.h -fno-stack-protector
+
+##################
+# ARM definitions - (Assumes iPhone SDK installed on Snow Leopard)
+##################
+
+*_XCODE32_ARM_ARCHCC_FLAGS = -arch armv7 -march=armv7 -mthumb
+*_XCODE32_ARM_ARCHASM_FLAGS = -arch armv7
+*_XCODE32_ARM_ARCHDLINK_FLAGS = -arch armv7
+*_XCODE32_ARM_PLATFORM_FLAGS =
+
+*_XCODE32_ARM_CC_PATH = DEF(IPHONE_TOOLS)/usr/bin/gcc
+*_XCODE32_ARM_SLINK_PATH = DEF(IPHONE_TOOLS)/usr/bin/libtool
+*_XCODE32_ARM_DLINK_PATH = ld
+*_XCODE32_ARM_ASM_PATH = DEF(IPHONE_TOOLS)/usr/bin/as
+*_XCODE32_ARM_PP_PATH = DEF(IPHONE_TOOLS)/usr/bin/gcc
+*_XCODE32_ARM_VFRPP_PATH = DEF(IPHONE_TOOLS)/usr/bin/gcc
+
+ DEBUG_XCODE32_ARM_DLINK_FLAGS = $(ARCHDLINK_FLAGS) -u _$(IMAGE_ENTRY_POINT) -e _$(IMAGE_ENTRY_POINT) -preload -segalign 0x20 -pie -all_load -dead_strip -seg1addr 0x220 -read_only_relocs suppress -map $(DEST_DIR_DEBUG)/$(BASE_NAME).map
+RELEASE_XCODE32_ARM_DLINK_FLAGS = $(ARCHDLINK_FLAGS) -u _$(IMAGE_ENTRY_POINT) -e _$(IMAGE_ENTRY_POINT) -preload -segalign 0x20 -pie -all_load -dead_strip -seg1addr 0x220 -read_only_relocs suppress -map $(DEST_DIR_DEBUG)/$(BASE_NAME).map
+
+*_XCODE32_ARM_SLINK_FLAGS = -static -o
+
+ DEBUG_XCODE32_ARM_ASM_FLAGS = $(ARCHASM_FLAGS) -g
+RELEASE_XCODE32_ARM_ASM_FLAGS = $(ARCHASM_FLAGS)
+*_XCODE32_ARM_PP_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -E -x assembler-with-cpp -include $(DEST_DIR_DEBUG)/AutoGen.h
+*_XCODE32_ARM_VFRPP_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -x c -E -P -DVFRCOMPILE --include $(DEST_DIR_DEBUG)/$(MODULE_NAME)StrDefs.h
+
+ DEBUG_XCODE32_ARM_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -mthumb-interwork -g -Oz -mabi=aapcs -mapcs -fno-short-enums -save-temps -combine -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-missing-braces -fomit-frame-pointer -c -include AutoGen.h -fno-stack-protector
+RELEASE_XCODE32_ARM_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -mthumb-interwork -Oz -mabi=aapcs -mapcs -fno-short-enums -save-temps -combine -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-missing-braces -fomit-frame-pointer -c -include AutoGen.h -fno-stack-protector
+
+
+####################################################################################
+#
+# ARM Tools
+#
+####################################################################################
+# RVCT31 - Tools from ARM
+
+*_RVCT31_*_*_FAMILY = RVCT
+
+#
+# Use default values, or override in DSC file
+#
+*_RVCT31_ARM_ARCHCC_FLAGS = --thumb --cpu 7-A
+*_RVCT31_ARM_ARCHASM_FLAGS = --cpu 7-A
+*_RVCT31_ARM_ARCHDLINK_FLAGS =
+*_RVCT31_ARM_PLATFORM_FLAGS =
+
+ DEBUG_RVCT31_ARM_DLINK_FLAGS = $(ARCHDLINK_FLAGS) --entry $(IMAGE_ENTRY_POINT) --ro-base 0 --no_scanlib --reloc --no_exceptions --datacompressor off --strict --symbols --map --list $(DEST_DIR_DEBUG)/$(BASE_NAME).map --diag_style=ide
+RELEASE_RVCT31_ARM_DLINK_FLAGS = $(ARCHDLINK_FLAGS) --entry $(IMAGE_ENTRY_POINT) --ro-base 0 --no_scanlib --reloc --no_exceptions --datacompressor off --strict --symbols --map --list $(DEST_DIR_DEBUG)/$(BASE_NAME).map --diag_style=ide
+
+
+*_RVCT31_ARM_ASM_FLAGS = $(ARCHASM_FLAGS) --apcs /interwork --diag_style=ide
+*_RVCT31_ARM_PP_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -E --diag_style=ide
+*_RVCT31_ARM_VFRPP_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -E -DVFRCOMPILE --preinclude $(DEST_DIR_DEBUG)/$(MODULE_NAME)StrDefs.h
+*_RVCT31_ARM_MAKE_PATH = nmake
+*_RVCT31_ARM_SLINK_FLAGS = --partial --diag_style=ide -o
+ DEBUG_RVCT31_ARM_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) --c90 -g -Ospace -c --no_autoinline --asm --gnu --apcs /interwork --signed_chars --no_unaligned_access --split_sections --enum_is_int --preinclude AutoGen.h --diag_warning 167 --diag_style=ide
+RELEASE_RVCT31_ARM_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) --c90 -Ospace -c --no_autoinline --asm --gnu --apcs /interwork --signed_chars --no_unaligned_access --split_sections --enum_is_int --preinclude AutoGen.h --diag_warning 167 --diag_style=ide
+
+##################
+# ARM definitions
+##################
+*_RVCT31_ARM_CC_PATH = DEF(RVCT31_TOOLS_PATH)/armcc
+*_RVCT31_ARM_SLINK_PATH = DEF(RVCT31_TOOLS_PATH)/armlink
+*_RVCT31_ARM_DLINK_PATH = DEF(RVCT31_TOOLS_PATH)/armlink
+*_RVCT31_ARM_ASM_PATH = DEF(RVCT31_TOOLS_PATH)/armasm
+*_RVCT31_ARM_PP_PATH = DEF(RVCT31_TOOLS_PATH)/armcc
+*_RVCT31_ARM_VFRPP_PATH = DEF(RVCT31_TOOLS_PATH)/armcc
+*_RVCT31_ARM_FROMELF_PATH = DEF(RVCT31_TOOLS_PATH)/fromelf
+
+####################################################################################
+#
+# ARM Tools & Cygwin
+#
+####################################################################################
+# ARMCYGWIN - Tools from ARM in a Cygwin environment
+
+*_RVCT31CYGWIN_*_*_FAMILY = RVCT
+*_RVCT31CYGWIN_*_*_BUILDRULEFAMILY = RVCTCYGWIN
+
+*_RVCT31CYGWIN_ARM_CCPATH_FLAG = DEF(RVCT31CYGWIN_TOOLS_PATH)/armcc
+*_RVCT31CYGWIN_ARM_SLINKPATH_FLAG = DEF(RVCT31CYGWIN_TOOLS_PATH)/armlink
+*_RVCT31CYGWIN_ARM_DLINKPATH_FLAG = DEF(RVCT31CYGWIN_TOOLS_PATH)/armlink
+*_RVCT31CYGWIN_ARM_ASMPATH_FLAG = DEF(RVCT31CYGWIN_TOOLS_PATH)/armasm
+*_RVCT31CYGWIN_ARM_PPPATH_FLAG = DEF(RVCT31CYGWIN_TOOLS_PATH)/armcc
+*_RVCT31CYGWIN_ARM_VFRPPPATH_FLAG = DEF(RVCT31CYGWIN_TOOLS_PATH)/armcc
+*_RVCT31CYGWIN_ARM_FROMELFPATH_FLAG = DEF(RVCT31CYGWIN_TOOLS_PATH)/fromelf
+
+
+#
+# Use default values, or override in DSC file
+#
+*_RVCT31CYGWIN_ARM_ARCHCC_FLAGS = --thumb --cpu 7-A
+*_RVCT31CYGWIN_ARM_ARCHASM_FLAGS = --cpu 7-A
+*_RVCT31CYGWIN_ARM_ARCHDLINK_FLAGS =
+*_RVCT31CYGWIN_ARM_PLATFORM_FLAGS =
+
+ DEBUG_RVCT31CYGWIN_ARM_DLINK_FLAGS = "$(DLINKPATH_FLAG)" $(ARCHDLINK_FLAGS) --entry $(IMAGE_ENTRY_POINT) --ro-base 0 --no_scanlib --reloc --no_exceptions --datacompressor off --strict --symbols --map --list `cygpath -m $(DEST_DIR_DEBUG)/$(BASE_NAME).map` --diag_style=ide
+RELEASE_RVCT31CYGWIN_ARM_DLINK_FLAGS = "$(DLINKPATH_FLAG)" $(ARCHDLINK_FLAGS) --entry $(IMAGE_ENTRY_POINT) --ro-base 0 --no_scanlib --reloc --no_exceptions --datacompressor off --strict --symbols --map --list `cygpath -m $(DEST_DIR_DEBUG)/$(BASE_NAME).map` --diag_style=ide
+
+*_RVCT31CYGWIN_ARM_ASM_FLAGS = "$(ASMPATH_FLAG)" $(ARCHASM_FLAGS) --apcs /interwork --diag_style=ide
+*_RVCT31CYGWIN_ARM_PP_FLAGS = "$(CCPATH_FLAG)" $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -E --diag_style=ide
+*_RVCT31CYGWIN_ARM_VFRPP_FLAGS = "$(CCPATH_FLAG)" $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -E -DVFRCOMPILE --preinclude `cygpath -m $(DEST_DIR_DEBUG)/$(MODULE_NAME)StrDefs.h`
+*_RVCT31CYGWIN_ARM_MAKE_PATH = make
+*_RVCT31CYGWIN_ARM_SLINK_FLAGS = "$(SLINKPATH_FLAG)" --partial --diag_style=ide -o
+ DEBUG_RVCT31CYGWIN_ARM_CC_FLAGS = "$(CCPATH_FLAG)" $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) --c90 -c -g -Ospace --no_autoinline --asm --gnu --apcs /interwork --signed_chars --no_unaligned_access --split_sections --preinclude AutoGen.h --diag_warning 167 --diag_style=ide
+RELEASE_RVCT31CYGWIN_ARM_CC_FLAGS = "$(CCPATH_FLAG)" $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) --c90 -c -Ospace --no_autoinline --asm --gnu --apcs /interwork --signed_chars --no_unaligned_access --split_sections --preinclude AutoGen.h --diag_warning 167 --diag_style=ide
+
+##################
+# ARM definitions
+##################
+*_RVCT31CYGWIN_ARM_CC_PATH = ENV(WORKSPACE)/BaseTools/Bin/CYGWIN_NT-5.1-i686/armcc_wrapper.py
+*_RVCT31CYGWIN_ARM_SLINK_PATH = ENV(WORKSPACE)/BaseTools/Bin/CYGWIN_NT-5.1-i686/armcc_wrapper.py
+*_RVCT31CYGWIN_ARM_DLINK_PATH = ENV(WORKSPACE)/BaseTools/Bin/CYGWIN_NT-5.1-i686/armcc_wrapper.py
+*_RVCT31CYGWIN_ARM_ASM_PATH = ENV(WORKSPACE)/BaseTools/Bin/CYGWIN_NT-5.1-i686/armcc_wrapper.py
+*_RVCT31CYGWIN_ARM_PP_PATH = ENV(WORKSPACE)/BaseTools/Bin/CYGWIN_NT-5.1-i686/armcc_wrapper.py
+*_RVCT31CYGWIN_ARM_VFRPP_PATH = ENV(WORKSPACE)/BaseTools/Bin/CYGWIN_NT-5.1-i686/armcc_wrapper.py
+*_RVCT31CYGWIN_ARM_FROMELF_PATH = ENV(WORKSPACE)/BaseTools/Bin/CYGWIN_NT-5.1-i686/armcc_wrapper.py
+
+####################################################################################
+#
+# ARM GCC (www.codesourcery.com)
+#
+####################################################################################
+# ARMGCC - ARM version of the GCC cross compiler
+
+*_ARMGCC_*_*_FAMILY = GCC
+*_ARMGCC_*_*_BUILDRULEFAMILY = ARMGCC
+
+*_ARMGCC_*_MAKE_PATH = DEF(SOURCERY_TOOLS)/cs-make
+*_ARMGCC_*_MAKE_FLAGS = --no-print-directory
+
+##################
+# ASL definitions
+##################
+*_ARMGCC_*_ASL_PATH = DEF(UNIX_IASL_BIN)
+*_ARMGCC_*_ASL_FLAGS = DEF(IASL_FLAGS)
+*_ARMGCC_*_ASL_OUTFLAGS = DEF(IASL_OUTFLAGS)
+*_ARMGCC_*_ASLPP_FLAGS = -x c -E -P
+*_ARMGCC_*_ASLCC_FLAGS = -x c
+*_ARMGCC_*_ASLDLINK_FLAGS = DEF(GCC_DLINK_FLAGS_COMMON) --entry _ReferenceAcpiTable
+
+##################
+# ARM definitions
+##################
+
+*_ARMGCC_ARM_ASLCC_PATH = DEF(SOURCERY_TOOLS)/arm-none-eabi-gcc
+*_ARMGCC_ARM_ASLDLINK_PATH = DEF(SOURCERY_TOOLS)/arm-none-eabi-ld
+*_ARMGCC_ARM_ASLPP_PATH = DEF(SOURCERY_TOOLS)/arm-none-eabi-gcc
+
+*_ARMGCC_ARM_CC_PATH = DEF(SOURCERY_TOOLS)/arm-none-eabi-gcc
+*_ARMGCC_ARM_SLINK_PATH = DEF(SOURCERY_TOOLS)/arm-none-eabi-ar
+*_ARMGCC_ARM_DLINK_PATH = DEF(SOURCERY_TOOLS)/arm-none-eabi-ld
+*_ARMGCC_ARM_ASM_PATH = DEF(SOURCERY_TOOLS)/arm-none-eabi-as
+*_ARMGCC_ARM_PP_PATH = DEF(SOURCERY_TOOLS)/arm-none-eabi-gcc
+*_ARMGCC_ARM_VFRPP_PATH = DEF(SOURCERY_TOOLS)/arm-none-eabi-gcc
+
+#
+# Use default values, or override in DSC file
+#
+*_ARMGCC_ARM_ARCHCC_FLAGS = -march=armv7-a -mthumb
+*_ARMGCC_ARM_ARCHASM_FLAGS = -march=armv7-a
+*_ARMGCC_ARM_ARCHDLINK_FLAGS =
+*_ARMGCC_ARM_PLATFORM_FLAGS = -march=armv7-a
+
+ DEBUG_ARMGCC_ARM_ASM_FLAGS = $(ARCHASM_FLAGS) -mlittle-endian -g
+RELEASE_ARMGCC_ARM_ASM_FLAGS = $(ARCHASM_FLAGS) -mlittle-endian
+
+*_ARMGCC_ARM_PP_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -E -x assembler-with-cpp -include $(DEST_DIR_DEBUG)/AutoGen.h
+*_ARMGCC_ARM_VFRPP_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -x c -E -P -DVFRCOMPILE --include $(DEST_DIR_DEBUG)/$(MODULE_NAME)StrDefs.h
+
+*_ARMGCC_ARM_SLINK_FLAGS = -rc
+*_ARMGCC_ARM_DLINK_FLAGS = $(ARCHDLINK_FLAGS) --oformat=elf32-littlearm -nostdlib -u $(IMAGE_ENTRY_POINT) -e $(IMAGE_ENTRY_POINT) -Map $(DEST_DIR_DEBUG)/$(BASE_NAME).map
+#
+# Had to remove --emit-relocs to get compile working. Images don't work correctly (linked at 0, no relocations)
+# --emit-relocs
+#
+
+ DEBUG_ARMGCC_ARM_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -mfpu=fpa -mlittle-endian -g -O2 -mabi=aapcs -mapcs -fno-short-enums -save-temps -combine -fsigned-char -fshort-wchar -fno-strict-aliasing -ffunction-sections -fdata-sections -Wall -Werror -Wno-missing-braces -fomit-frame-pointer -c -include AutoGen.h
+RELEASE_ARMGCC_ARM_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -mfpu=fpa -mlittle-endian -O2 -mabi=aapcs -mapcs -fno-short-enums -save-temps -combine -fsigned-char -fshort-wchar -fno-strict-aliasing -ffunction-sections -fdata-sections -Wall -Werror -Wno-missing-braces -fomit-frame-pointer -c -include AutoGen.h
+
+#################
+# ASM 16 linker defintions
+#################
+*_*_*_ASMLINK_PATH = DEF(WINDDK_BIN16)\link16.exe
+*_*_*_ASMLINK_FLAGS = /nologo /tiny
+
+##################
+# VfrCompiler definitions
+##################
+*_*_*_VFR_PATH = VfrCompile
+*_*_*_VFR_FLAGS = -l -n
+
+##################
+# OptionRom tool definitions
+##################
+*_*_*_OPTROM_PATH = EfiRom
+*_*_*_OPTROM_FLAGS = -e
+
+##################
+# GenFw tool definitions
+##################
+*_*_*_GENFW_PATH = GenFw
+*_*_*_GENFW_FLAGS =
+
+##################
+# Asl Compiler definitions
+##################
+*_*_*_ASLCC_FLAGS = /nologo /c /FIAutoGen.h /TC /Dmain=ReferenceAcpiTable
+*_*_*_ASLDLINK_FLAGS = /NODEFAULTLIB /ENTRY:ReferenceAcpiTable /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER
+*_*_*_ASLPP_FLAGS = /nologo /EP /C
+*_*_*_ASL_FLAGS =
+
+##################
+# LzmaCompress tool definitions
+##################
+*_*_*_LZMA_PATH = LzmaCompress
+*_*_*_LZMA_GUID = EE4E5898-3914-4259-9D6E-DC7BD79403CF
+
+##################
+# TianoCompress tool definitions
+##################
+*_*_*_TIANO_PATH = TianoCompress
+*_*_*_TIANO_GUID = A31280AD-481E-41B6-95E8-127F4C984779
+
+##################
+# BPDG tool definitions
+##################
+*_*_*_VPDTOOL_PATH = BPDG
+*_*_*_VPDTOOL_GUID = 8C3D856A-9BE6-468E-850A-24F7A8D38E08
|