]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Conf/BuildMacro.xml
Retiring the ANT/JAVA build and removing the older EDK II packages that required...
[mirror_edk2.git] / Tools / Conf / BuildMacro.xml
diff --git a/Tools/Conf/BuildMacro.xml b/Tools/Conf/BuildMacro.xml
deleted file mode 100644 (file)
index 2e1d6ad..0000000
+++ /dev/null
@@ -1,1466 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
-<!--\r
-Copyright (c) 2006, Intel Corporation\r
-All rights reserved. This program and the accompanying materials\r
-are licensed and made available under the terms and conditions of the BSD License\r
-which accompanies this distribution.  The full text of the license may be found at\r
-http://opensource.org/licenses/bsd-license.php\r
-\r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
--->\r
-<project name="common">\r
-  <!-- for user extended tasks or macros -->\r
-  <import file="UserExtension.xml" optional="true"/>\r
-\r
-  <!--\r
-    Macro for intialize some properties. This Macro build will be called before source file build.\r
-    -->\r
-  <macrodef name="Build_Init">\r
-    <element name="EXTRA.INC" optional="yes"/>\r
-    <element name="EXTRA.ARG" optional="yes"/>\r
-\r
-    <sequential>\r
-      <var name="OBJECTS" value="" />\r
-      <var name="SDB_FILES" value="" />\r
-\r
-      <mkdir dir="${DEST_DIR_DEBUG}"/>\r
-      <mkdir dir="${DEST_DIR_OUTPUT}"/>\r
-\r
-      <if>\r
-        <and>\r
-          <isset property="PCH"/>\r
-          <not>\r
-            <equals arg1="${PCH}" arg2=""/>\r
-          </not>\r
-        </and>\r
-        <then>\r
-          <makedeps DepsFile="${DEST_DIR_OUTPUT}/AutoGen.h.dep"\r
-                    TargetFile="${DEST_DIR_OUTPUT}/AutoGen.h.gch">\r
-            <input file="${DEST_DIR_DEBUG}/AutoGen.h"/>\r
-            <EXTRA.INC/>\r
-          </makedeps>\r
-\r
-          <OnDependency>\r
-            <sourcefiles>\r
-              <file ListFile="${DEST_DIR_OUTPUT}/AutoGen.h.dep"/>\r
-            </sourcefiles>\r
-            <targetfiles>\r
-              <file Name="${DEST_DIR_OUTPUT}/AutoGen.h.gch"/>\r
-            </targetfiles>\r
-\r
-            <sequential>\r
-              <!-- Generate pre-compiled header -->\r
-              <cc userdefine="on">\r
-                <command type="CC" cmd="${PCH}" workdir="${DEST_DIR_OUTPUT}" family="${CC_FAMILY}"\r
-                    outputFile="${DEST_DIR_OUTPUT}/AutoGen.h.obj" dpath="${CC_DPATH}" libpath="${CC_LIBPATH}"\r
-                    include="${CC_INCLUDEPATH}">\r
-                  <EXTRA.INC/>\r
-                  <argument value="${PCH_FLAGS}"/>\r
-                  <EXTRA.ARG/>\r
-                  <fileset casesensitive="on" file="${DEST_DIR_DEBUG}/AutoGen.h"/>\r
-                </command>\r
-              </cc>\r
-\r
-              <if>\r
-                <equals arg1="${CC_FAMILY}" arg2="GCC"/>\r
-                <then>\r
-                  <move file="${DEST_DIR_OUTPUT}/AutoGen.h.obj" tofile="${DEST_DIR_DEBUG}/AutoGen.h.gch" overwrite="true"/>\r
-                </then>\r
-              </if>\r
-            </sequential>\r
-          </OnDependency>\r
-\r
-          <if>\r
-            <not>\r
-              <equals arg1="${CC_FAMILY}" arg2="GCC"/>\r
-            </not>\r
-            <then>\r
-              <var name="OBJECTS" value="${OBJECTS} AutoGen.h.obj"/>\r
-            </then>\r
-          </if>\r
-        </then>\r
-        <else>\r
-          <makedeps DepsFile="${DEST_DIR_OUTPUT}/AutoGen.h.dep">\r
-            <input file="${DEST_DIR_DEBUG}/AutoGen.h"/>\r
-            <EXTRA.INC/>\r
-          </makedeps>\r
-        </else>\r
-      </if>\r
-    </sequential>\r
-  </macrodef>\r
-\r
-\r
-  <!--\r
-    macro definitions for building files with different types\r
-    -->\r
-  <!--\r
-    C Code\r
-    -->\r
-  <macrodef name="Build_CCode">\r
-    <attribute name="FILEPATH"/>\r
-    <attribute name="FILENAME"/>\r
-    <attribute name="FILEEXT" default="c"/>\r
-\r
-    <element name="EXTRA.INC" optional="yes"/>\r
-    <element name="EXTRA.ARG" optional="yes"/>\r
-\r
-    <sequential>\r
-      <var name="FILE_BASENAME" value="@{FILENAME}" />\r
-      <var name="FILE_PATH" value="@{FILEPATH}" />\r
-      <mkdir dir="${DEST_DIR_OUTPUT}/@{FILEPATH}"/>\r
-\r
-      <makedeps DepsFile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.dep"\r
-                TargetFile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj">\r
-        <input file="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>\r
-        <EXTRA.INC/>\r
-      </makedeps>\r
-\r
-      <OnDependency>\r
-        <sourcefiles>\r
-          <file ListFile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.dep"/>\r
-          <file ListFile="${DEST_DIR_OUTPUT}/AutoGen.h.dep"/>\r
-        </sourcefiles>\r
-        <targetfiles>\r
-          <file Name="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>\r
-        </targetfiles>\r
-\r
-        <sequential>\r
-          <cc userdefine="on">\r
-            <command type="CC" cmd="${CC}" workdir="${DEST_DIR_OUTPUT}" family="${CC_FAMILY}"\r
-                outputFile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj" dpath="${CC_DPATH}"\r
-                libpath="${CC_LIBPATH}" include="${CC_INCLUDEPATH}">\r
-              <EXTRA.INC/>\r
-              <argument value="${CC_FLAGS}"/>\r
-              <EXTRA.ARG/>\r
-              <fileset casesensitive="on" file="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>\r
-            </command>\r
-          </cc>\r
-        </sequential>\r
-      </OnDependency>\r
-      <!-- Since fileset can't scan file start with ./, remove ./ in previous. -->\r
-      <if>\r
-        <equals arg1="@{FILEPATH}" arg2="." />\r
-        <then>\r
-          <var name="OBJECTS" value="${OBJECTS} @{FILENAME}.obj" />\r
-        </then>\r
-        <else>\r
-          <var name="OBJECTS" value="${OBJECTS} @{FILEPATH}/@{FILENAME}.obj" />\r
-        </else>\r
-      </if>\r
-    </sequential>\r
-  </macrodef>\r
-\r
-\r
-  <macrodef name="Build_AUTOGEN">\r
-    <attribute name="FILEPATH"/>\r
-    <attribute name="FILENAME"/>\r
-    <attribute name="FILEEXT" default="c"/>\r
-\r
-    <element name="EXTRA.INC" optional="yes"/>\r
-    <element name="EXTRA.ARG" optional="yes"/>\r
-\r
-    <sequential>\r
-      <var name="FILE_BASENAME" value="@{FILENAME}" />\r
-      <var name="FILE_PATH" value="@{FILEPATH}" />\r
-      <mkdir dir="${DEST_DIR_OUTPUT}/@{FILEPATH}"/>\r
-\r
-      <makedeps DepsFile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.dep"\r
-                TargetFile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj">\r
-        <input file="${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>\r
-        <EXTRA.INC/>\r
-      </makedeps>\r
-\r
-      <OnDependency>\r
-        <sourcefiles>\r
-          <file ListFile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.dep"/>\r
-          <file ListFile="${DEST_DIR_OUTPUT}/AutoGen.h.dep"/>\r
-        </sourcefiles>\r
-        <targetfiles>\r
-          <file Name="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>\r
-        </targetfiles>\r
-\r
-        <sequential>\r
-          <cc userdefine="on">\r
-            <command type="CC" cmd="${CC}" workdir="${DEST_DIR_OUTPUT}" family="${CC_FAMILY}"\r
-                outputFile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj" dpath="${CC_DPATH}"\r
-                libpath="${CC_LIBPATH}" include="${CC_INCLUDEPATH}">\r
-              <EXTRA.INC/>\r
-              <argument value="${CC_FLAGS}"/>\r
-              <EXTRA.ARG/>\r
-              <fileset casesensitive="on" file="${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>\r
-            </command>\r
-          </cc>\r
-        </sequential>\r
-      </OnDependency>\r
-      <!-- Since fileset can't scan file start with ./, remove ./ in previous. -->\r
-      <if>\r
-        <equals arg1="@{FILEPATH}" arg2="." />\r
-        <then>\r
-          <var name="OBJECTS" value="${OBJECTS} @{FILENAME}.obj" />\r
-        </then>\r
-        <else>\r
-          <var name="OBJECTS" value="${OBJECTS} @{FILEPATH}/@{FILENAME}.obj" />\r
-        </else>\r
-      </if>\r
-    </sequential>\r
-  </macrodef>\r
-\r
-  <macrodef name="Build_DPX">\r
-    <attribute name="FILEPATH"/>\r
-    <attribute name="FILENAME"/>\r
-    <attribute name="FILEEXT" default="dxs"/>\r
-\r
-    <element name="EXTRA.INC" optional="yes"/>\r
-    <element name="EXTRA.ARG" optional="yes"/>\r
-\r
-\r
-    <sequential>\r
-      <var name="FILE_BASENAME" value="@{FILENAME}" />\r
-      <var name="FILE_PATH" value="@{FILEPATH}" />\r
-      <mkdir dir="${DEST_DIR_OUTPUT}/@{FILEPATH}"/>\r
-\r
-      <makedeps DepsFile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.dep"\r
-                TargetFile="${DEST_DIR_OUTPUT}/${BASE_NAME}.depex">\r
-        <input file="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>\r
-        <EXTRA.INC/>\r
-      </makedeps>\r
-\r
-      <OnDependency>\r
-        <sourcefiles>\r
-          <!--file name="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/-->\r
-          <file ListFile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.dep"/>\r
-          <file ListFile="${DEST_DIR_OUTPUT}/AutoGen.h.dep"/>\r
-        </sourcefiles>\r
-        <targetfiles>\r
-          <file name="${DEST_DIR_OUTPUT}/${BASE_NAME}.depex"/>\r
-        </targetfiles>\r
-\r
-        <sequential>\r
-          <cc userdefine="on">\r
-            <command type="CC" cmd="${CC}" workdir="${DEST_DIR_OUTPUT}/@{FILEPATH}" family="${CC_FAMILY}"\r
-                     outputFile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.i" dpath="${CC_DPATH}"\r
-                     libpath="${CC_LIBPATH}" include="${CC_INCLUDEPATH}">\r
-              <EXTRA.INC/>\r
-              <argument value="${PP_FLAGS}"/>\r
-              <fileset casesensitive="on" file="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>\r
-            </command>\r
-          </cc>\r
-\r
-          <gendepex inputFile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.i" outputFile="${DEST_DIR_OUTPUT}/${BASE_NAME}.depex"/>\r
-        </sequential>\r
-      </OnDependency>\r
-    </sequential>\r
-  </macrodef>\r
-\r
-  <macrodef name="Build_ASM">\r
-    <attribute name="FILEPATH"/>\r
-    <attribute name="FILENAME"/>\r
-    <attribute name="FILEEXT" default="asm"/>\r
-\r
-    <element name="EXTRA.INC" optional="yes"/>\r
-    <element name="EXTRA.ARG" optional="yes"/>\r
-\r
-    <!-- Dispath ASM file, there are three type.\r
-         asm     -   Build_Assembly\r
-         S       -   Build_Gcc_Assembly\r
-         s       -   Build_Ipf_Assembly -->\r
-    <sequential>\r
-           <if>\r
-        <equals arg1="@{FILEEXT}" arg2="asm" />\r
-             <then>\r
-               <Build_Assembly FILEPATH="@{FILEPATH}" FILENAME="@{FILENAME}" FILEEXT="@{FILEEXT}">\r
-            <EXTRA.INC.1><EXTRA.INC /></EXTRA.INC.1>\r
-            <EXTRA.ARG.1><EXTRA.ARG /></EXTRA.ARG.1>\r
-          </Build_Assembly>\r
-             </then>\r
-        <elseif>\r
-          <equals arg1="@{FILEEXT}" arg2="S" />\r
-          <then>\r
-            <Build_Gcc_Assembly FILEPATH="@{FILEPATH}" FILENAME="@{FILENAME}" FILEEXT="@{FILEEXT}">\r
-              <EXTRA.INC.1><EXTRA.INC /></EXTRA.INC.1>\r
-              <EXTRA.ARG.1><EXTRA.ARG /></EXTRA.ARG.1>\r
-            </Build_Gcc_Assembly>\r
-          </then>\r
-        </elseif>\r
-             <elseif>\r
-               <equals arg1="@{FILEEXT}" arg2="s" />\r
-               <then>\r
-                 <Build_IPF_Assembly_Code FILEPATH="@{FILEPATH}" FILENAME="@{FILENAME}" FILEEXT="@{FILEEXT}">\r
-                   <EXTRA.INC.1><EXTRA.INC /></EXTRA.INC.1>\r
-              <EXTRA.ARG.1><EXTRA.ARG /></EXTRA.ARG.1>\r
-            </Build_IPF_Assembly_Code>\r
-               </then>\r
-             </elseif>\r
-           </if>\r
-    </sequential>\r
-  </macrodef>\r
-\r
-  <!--\r
-    IA32/x64 Assembly\r
-    -->\r
-  <macrodef name="Build_Assembly">\r
-    <attribute name="FILEPATH"/>\r
-    <attribute name="FILENAME"/>\r
-    <attribute name="FILEEXT" default="asm"/>\r
-\r
-    <element name="EXTRA.INC.1" optional="yes"/>\r
-    <element name="EXTRA.ARG.1" optional="yes"/>\r
-\r
-    <sequential>\r
-      <var name="FILE_BASENAME" value="@{FILENAME}" />\r
-      <var name="FILE_PATH" value="@{FILEPATH}" />\r
-      <mkdir dir="${DEST_DIR_OUTPUT}/@{FILEPATH}"/>\r
-\r
-      <makedeps DepsFile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.dep"\r
-                TargetFile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj">\r
-        <input file="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>\r
-        <EXTRA.INC.1/>\r
-      </makedeps>\r
-\r
-      <OnDependency>\r
-        <sourcefiles>\r
-          <file Listfile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.dep"/>\r
-          <file ListFile="${DEST_DIR_OUTPUT}/AutoGen.h.dep"/>\r
-        </sourcefiles>\r
-        <targetfiles>\r
-          <file Name="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>\r
-        </targetfiles>\r
-\r
-        <sequential>\r
-          <cc userdefine="on">\r
-            <command type="PP" cmd="${PP}" workdir="${DEST_DIR_OUTPUT}/@{FILEPATH}" family="${PP_FAMILY}"\r
-                dpath="${PP_DPATH}" libpath="${PP_LIBPATH}" include="${PP_INCLUDEPATH}">\r
-              <EXTRA.INC.1/>\r
-              <argument value="${PP_FLAGS}"/>\r
-              <fileset casesensitive="on" file="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>\r
-            </command>\r
-          </cc>\r
-\r
-          <replaceregexp file="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.i"\r
-                         match="^(#line +1 +.*@{FILEPATH}/@{FILENAME}\.@{FILEEXT}&quot;).+\1"\r
-                         replace=";"\r
-                         flags="gs"/>\r
-          <replaceregexp file="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.i"\r
-                         match="^(#line .*)$"\r
-                         replace="; \1"\r
-                         byline="true"/>\r
-          <replaceregexp file="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.i"\r
-                         match="([^_a-zA-Z])0x([0-9a-fA-F]+)"\r
-                         replace="\10\2h"\r
-                         flags="g"\r
-                         byline="true"/>\r
-\r
-          <cc userdefine="on">\r
-            <command type="ASM" cmd="${ASM}" workdir="${DEST_DIR_OUTPUT}" family="${ASM_FAMILY}"\r
-                outputFile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj" dpath="${ASM_DPATH}"\r
-                libpath="${ASM_LIBPATH}" include="${ASM_INCLUDEPATH}">\r
-              <EXTRA.INC.1/>\r
-\r
-              <argument value="${ASM_FLAGS}"/>\r
-              <EXTRA.ARG.1/>\r
-\r
-              <fileset casesensitive="on" file="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.i"/>\r
-            </command>\r
-          </cc>\r
-        </sequential>\r
-      </OnDependency>\r
-      <!-- Since fileset can't scan file start with ./, remove ./ in previous. -->\r
-      <if>\r
-        <equals arg1="@{FILEPATH}" arg2="." />\r
-        <then>\r
-          <var name="OBJECTS" value="${OBJECTS} @{FILENAME}.obj" />\r
-        </then>\r
-        <else>\r
-          <var name="OBJECTS" value="${OBJECTS} @{FILEPATH}/@{FILENAME}.obj" />\r
-        </else>\r
-      </if>\r
-    </sequential>\r
-  </macrodef>\r
-\r
-  <!--\r
-    Build GCC assembly code\r
-    -->\r
-  <macrodef name="Build_Gcc_Assembly">\r
-    <attribute name="FILEPATH"/>\r
-    <attribute name="FILENAME"/>\r
-    <attribute name="FILEEXT" default="asm"/>\r
-\r
-    <element name="EXTRA.INC.1" optional="yes"/>\r
-    <element name="EXTRA.ARG.1" optional="yes"/>\r
-\r
-    <sequential>\r
-      <var name="FILE_BASENAME" value="@{FILENAME}" />\r
-      <var name="FILE_PATH" value="@{FILEPATH}" />\r
-      <mkdir dir="${DEST_DIR_OUTPUT}/@{FILEPATH}"/>\r
-\r
-      <makedeps DepsFile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.dep"\r
-                TargetFile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj">\r
-        <input file="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>\r
-        <EXTRA.INC.1/>\r
-      </makedeps>\r
-\r
-      <OnDependency>\r
-        <sourcefiles>\r
-          <file Listfile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.dep"/>\r
-          <file ListFile="${DEST_DIR_OUTPUT}/AutoGen.h.dep"/>\r
-        </sourcefiles>\r
-        <targetfiles>\r
-          <file Name="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>\r
-        </targetfiles>\r
-\r
-        <sequential>\r
-          <cc userdefine="on">\r
-            <command type="ASM" cmd="${ASM}" workdir="${DEST_DIR_OUTPUT}" family="${ASM_FAMILY}"\r
-                outputFile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj" dpath="${ASM_DPATH}"\r
-                libpath="${ASM_LIBPATH}" include="${ASM_INCLUDEPATH}">\r
-              <EXTRA.INC.1/>\r
-\r
-              <argument value="${ASM_FLAGS}"/>\r
-              <EXTRA.ARG.1/>\r
-\r
-              <fileset casesensitive="on" file="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>\r
-            </command>\r
-          </cc>\r
-        </sequential>\r
-      </OnDependency>\r
-      <!-- Since fileset can't scan file start with ./, remove ./ in previous. -->\r
-      <if>\r
-        <equals arg1="@{FILEPATH}" arg2="." />\r
-        <then>\r
-          <var name="OBJECTS" value="${OBJECTS} @{FILENAME}.obj" />\r
-        </then>\r
-        <else>\r
-          <var name="OBJECTS" value="${OBJECTS} @{FILEPATH}/@{FILENAME}.obj" />\r
-        </else>\r
-      </if>\r
-    </sequential>\r
-  </macrodef>\r
-\r
-  <!--\r
-    IPF Assembly\r
-    -->\r
-  <macrodef name="Build_IPF_Assembly_Code">\r
-    <attribute name="FILEPATH"/>\r
-    <attribute name="FILENAME"/>\r
-    <attribute name="FILEEXT" default="s"/>\r
-\r
-    <element name="EXTRA.INC.1" optional="yes"/>\r
-    <element name="EXTRA.ARG.1" optional="yes"/>\r
-\r
-    <sequential>\r
-      <mkdir dir="${DEST_DIR_OUTPUT}/@{FILEPATH}"/>\r
-\r
-      <makedeps DepsFile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.dep"\r
-                TargetFile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj">\r
-        <input file="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>\r
-        <EXTRA.INC.1/>\r
-      </makedeps>\r
-\r
-      <OnDependency>\r
-        <sourcefiles>\r
-          <file listfile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.dep"/>\r
-          <file ListFile="${DEST_DIR_OUTPUT}/AutoGen.h.dep"/>\r
-        </sourcefiles>\r
-        <targetfiles>\r
-          <file name="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>\r
-        </targetfiles>\r
-\r
-        <sequential>\r
-          <cc userdefine="on">\r
-            <command type="PP" cmd="${APP}" workdir="${DEST_DIR_OUTPUT}/@{FILEPATH}" family="${APP_FAMILY}"\r
-                dpath="${APP_DPATH}" libpath="${APP_LIBPATH}" include="${APP_INCLUDEPATH}">\r
-              <EXTRA.INC.1/>\r
-              <argument value="${APP_FLAGS}"/>\r
-              <fileset casesensitive="on" file="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>\r
-            </command>\r
-          </cc>\r
-\r
-          <cc userdefine="on">\r
-            <command type="ASM" cmd="${ASM}" workdir="${DEST_DIR_OUTPUT}" family="${ASM_FAMILY}"\r
-                includepathDelimiter="-I" outputDelimiter="-o" dpath="${ASM_DPATH}"\r
-                libpath="${ASM_LIBPATH}" include="${ASM_INCLUDEPATH}"\r
-                outputFile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj">\r
-              <EXTRA.INC.1/>\r
-              <argument value="${ASM_FLAGS}"/>\r
-              <EXTRA.ARG.1/>\r
-              <fileset casesensitive="on" file="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.i"/>\r
-            </command>\r
-          </cc>\r
-        </sequential>\r
-      </OnDependency>\r
-      <!-- Since fileset can't scan file start with ./, remove ./ in previous. -->\r
-      <if>\r
-        <equals arg1="@{FILEPATH}" arg2="." />\r
-        <then>\r
-          <var name="OBJECTS" value="${OBJECTS} @{FILENAME}.obj" />\r
-        </then>\r
-        <else>\r
-          <var name="OBJECTS" value="${OBJECTS} @{FILEPATH}/@{FILENAME}.obj" />\r
-        </else>\r
-      </if>\r
-    </sequential>\r
-  </macrodef>\r
-\r
-\r
-  <!--\r
-    Assembly the preprocessed IPF assembly code\r
-  -->\r
-  <macrodef name="Build_IPF_PP_Code">\r
-    <attribute name="FILEPATH"/>\r
-    <attribute name="FILENAME"/>\r
-    <attribute name="FILEEXT" default="i"/>\r
-\r
-    <element name="EXTRA.INC" optional="yes"/>\r
-    <element name="EXTRA.ARG" optional="yes"/>\r
-\r
-    <sequential>\r
-      <mkdir dir="${DEST_DIR_OUTPUT}/@{FILEPATH}"/>\r
-\r
-      <cc userdefine="on">\r
-        <command type="ASM" includepathDelimiter="-I" dpath="${ASM_DPATH}"\r
-             libpath="${ASM_LIBPATH}" include="${ASM_INCLUDEPATH}">\r
-          <includepath path="${WORKSPACE_DIR}"/>\r
-          <includepath path="${MODULE_DIR}"/>\r
-          <includepath path="${MODULE_DIR}/${ARCH}"/>\r
-          <EXTRA.INC/>\r
-\r
-          <argument value="${ASM_FLAGS}"/>\r
-          <EXTRA.ARG/>\r
-          <OutputFile File="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>\r
-\r
-          <fileset casesensitive="on" file="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>\r
-        </command>\r
-      </cc>\r
-    </sequential>\r
-  </macrodef>\r
-\r
-\r
-  <!--\r
-    Library\r
-  -->\r
-  <macrodef name="Build_Library">\r
-    <attribute name="FILENAME" />\r
-    <attribute name="FILEEXT" default="obj"/>\r
-\r
-    <sequential>\r
-      <var name="FILE_BASENAME" value="@{FILENAME}" />\r
-      <var name="FILE_PATH" value="." />\r
-      <mkdir dir="${BIN_DIR}"/>\r
-\r
-      <if>\r
-        <equals arg1="${OBJECTS}" arg2="" trim="true"/>\r
-        <then>\r
-          <fail message="No object files"/>\r
-        </then>\r
-      </if>\r
-\r
-      <OnDependency>\r
-        <sourcefiles>\r
-          <fileset dir="${DEST_DIR_OUTPUT}" includes="${OBJECTS}" />\r
-        </sourcefiles>\r
-        <targetfiles>\r
-          <file name="${BIN_DIR}/@{FILENAME}.lib"/>\r
-        </targetfiles>\r
-\r
-        <sequential>\r
-          <cc userdefine="on">\r
-            <command type="SLINK" cmd="${SLINK}" family="${SLINK_FAMILY}"\r
-                outputFile="${BIN_DIR}/@{FILENAME}.lib" dpath="${SLINK_DPATH}"\r
-                libpath="${SLINK_LIBPATH}" include="${SLINK_INCLUDEPATH}">\r
-              <argument value="${SLINK_FLAGS}"/>\r
-\r
-              <fileset dir="${DEST_DIR_OUTPUT}" includes="${OBJECTS}"/>\r
-            </command>\r
-          </cc>\r
-        </sequential>\r
-      </OnDependency>\r
-    </sequential>\r
-  </macrodef>\r
-\r
-  <!--\r
-    Unicode -> .sdb\r
-    -->\r
-  <macrodef name="Build_UNI">\r
-    <attribute name="FILEPATH"/>\r
-    <attribute name="FILENAME"/>\r
-    <attribute name="FILEEXT" default="uni"/>\r
-\r
-    <element name="EXTRA.INC" optional="yes"/>\r
-    <element name="EXTRA.ARG" optional="yes"/>\r
-\r
-    <sequential>\r
-      <mkdir dir="${DEST_DIR_OUTPUT}/@{FILEPATH}"/>\r
-      <makedeps DepsFile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.dep"\r
-                TargetFile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.sdb">\r
-        <input file="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>\r
-        <EXTRA.INC/>\r
-      </makedeps>\r
-\r
-      <OnDependency>\r
-        <sourcefiles>\r
-          <file listfile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.dep"/>\r
-        </sourcefiles>\r
-        <targetfiles>\r
-          <file name="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.sdb"/>\r
-        </targetfiles>\r
-\r
-        <sequential>\r
-          <strgather commandtype="parse" newdatabase="true">\r
-            <database name="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.sdb"/>\r
-            <EXTRA.INC/>\r
-            <EXTRA.ARG/>\r
-            <inputfile name="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>\r
-          </strgather>\r
-        </sequential>\r
-      </OnDependency>\r
-\r
-      <var name="SDB_FILES" value="${SDB_FILES}, ${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.sdb"/>\r
-    </sequential>\r
-  </macrodef>\r
-\r
-  <!--\r
-    .sdb(s) -> .c, .h -> .obj\r
-    -->\r
-  <macrodef name="Build_Unicode_Database">\r
-    <attribute name="FILEPATH"/>\r
-    <attribute name="FILENAME"/>\r
-    <attribute name="FILEEXT" default="sdb"/>\r
-\r
-    <element name="EXTRA.INC" optional="yes"/>\r
-    <element name="EXTRA.ARG" optional="yes"/>\r
-\r
-    <sequential>\r
-      <var name="FILE_BASENAME" value="@{FILENAME}" />\r
-      <var name="FILE_PATH" value="@{FILEPATH}" />\r
-      <OnDependency>\r
-        <sourcefiles>\r
-          <file list="${SDB_FILES}"/>\r
-          <file list="${SOURCE_FILES}"/>\r
-        </sourcefiles>\r
-        <targetfiles>\r
-          <file name="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.sdb"/>\r
-        </targetfiles>\r
-\r
-        <sequential>\r
-          <strgather commandtype="scan" outputdatabase="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.sdb" verbose="read">\r
-            <skipext name=".uni"/>\r
-            <skipext name=".h"/>\r
-            <database list="${SDB_FILES}"/>\r
-            <inputfile name="${SOURCE_FILES}"/>\r
-          </strgather>\r
-        </sequential>\r
-      </OnDependency>\r
-\r
-      <OnDependency>\r
-        <sourcefiles>\r
-          <file name="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.sdb"/>\r
-        </sourcefiles>\r
-        <targetfiles>\r
-          <file name="${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}StrDefs.h"/>\r
-          <file name="${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}Strings.hpk"/>\r
-          <file name="${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}Strings.c"/>\r
-        </targetfiles>\r
-\r
-        <sequential>\r
-          <strgather basename="@{FILENAME}Strings" commandtype="dump"\r
-                     outputdefines="${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}StrDefs.h"\r
-                     outputhpk="${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}Strings.hpk"\r
-                     outputstring="${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}Strings.c">\r
-            <database name="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.sdb"/>\r
-          </strgather>\r
-        </sequential>\r
-      </OnDependency>\r
-\r
-      <OnDependency>\r
-        <sourcefiles>\r
-          <file name="${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}Strings.c"/>\r
-          <file ListFile="${DEST_DIR_OUTPUT}/AutoGen.h.dep"/>\r
-        </sourcefiles>\r
-        <targetfiles>\r
-          <file name="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}Strings.obj"/>\r
-        </targetfiles>\r
-\r
-        <sequential>\r
-          <cc userdefine="on">\r
-            <command type="CC" cmd="${CC}" workdir="${DEST_DIR_OUTPUT}" family="${CC_FAMILY}"\r
-                     includepathDelimiter="-I" dpath="${CC_DPATH}"\r
-                     libpath="${CC_LIBPATH}" include="${CC_INCLUDEPATH}"\r
-                     outputFile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}Strings.obj">\r
-              <argument value="${CC_FLAGS}"/>\r
-              <EXTRA.INC />\r
-              <fileset casesensitive="on" file="${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}Strings.c"/>\r
-            </command>\r
-          </cc>\r
-        </sequential>\r
-      </OnDependency>\r
-\r
-      <!-- Since fileset can't scan file start with ./, remove ./ in previous. -->\r
-      <if>\r
-        <equals arg1="@{FILEPATH}" arg2="." />\r
-        <then>\r
-          <var name="OBJECTS" value="${OBJECTS} @{FILENAME}Strings.obj" />\r
-        </then>\r
-        <else>\r
-          <var name="OBJECTS" value="${OBJECTS} @{FILEPATH}/@{FILENAME}Strings.obj" />\r
-        </else>\r
-      </if>\r
-    </sequential>\r
-  </macrodef>\r
-\r
-  <!--\r
-    Vfr\r
-    -->\r
-  <macrodef name="Build_VFR">\r
-    <attribute name="FILEPATH"/>\r
-    <attribute name="FILENAME"/>\r
-    <attribute name="FILEEXT" default="vfr"/>\r
-\r
-    <element name="EXTRA.INC" optional="yes"/>\r
-    <element name="EXTRA.ARG" optional="yes"/>\r
-\r
-    <sequential>\r
-      <mkdir dir="${DEST_DIR_DEBUG}/@{FILEPATH}"/>\r
-\r
-      <makedeps DepsFile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.dep"\r
-                TargetFile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj">\r
-        <input file="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>\r
-        <EXTRA.INC/>\r
-      </makedeps>\r
-\r
-      <OnDependency>\r
-        <sourcefiles>\r
-          <file listfile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.dep"/>\r
-          <file ListFile="${DEST_DIR_OUTPUT}/AutoGen.h.dep"/>\r
-        </sourcefiles>\r
-        <targetfiles>\r
-          <file name="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>\r
-        </targetfiles>\r
-\r
-        <sequential>\r
-          <!-- if "TOOLCHIAN FAMILY" is "GCC", it should point the ouput file for preprocess compiler -->\r
-          <if>\r
-            <equals arg1="${CC_FAMILY}" arg2="GCC"/>\r
-            <then>\r
-              <cc userdefine="on">\r
-                <command type="PP" cmd="${PP}" workdir="${DEST_DIR_OUTPUT}/@{FILEPATH}" family="${PP_FAMILY}"\r
-                         dpath="${PP_DPATH}" libpath="${PP_LIBPATH}" include="${PP_INCLUDEPATH}">\r
-                  <argument value="${VFRPP_FLAGS} -o ${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.i"/>\r
-                  <!-- Output file of the preprocess -->\r
-                  <EXTRA.INC/>\r
-                  <fileset casesensitive="on" file="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>\r
-                </command>\r
-              </cc>\r
-            </then>\r
-            <else>\r
-              <cc userdefine="on">\r
-                <command type="PP" cmd="${PP}" workdir="${DEST_DIR_OUTPUT}/@{FILEPATH}" family="${PP_FAMILY}"\r
-                         dpath="${PP_DPATH}" libpath="${PP_LIBPATH}" include="${PP_INCLUDEPATH}">\r
-                  <argument value="${VFRPP_FLAGS}"/>\r
-                  <!-- Output file of the preprocess -->\r
-                  <EXTRA.INC/>\r
-                  <fileset casesensitive="on" file="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>\r
-                </command>\r
-              </cc>\r
-            </else>\r
-          </if>\r
-\r
-          <vfrcompile createIfrBinFile="on" createListFile="on" outPutDir="${DEST_DIR_DEBUG}/@{FILEPATH}" vfrFile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.i">\r
-            <EXTRA.INC/>\r
-          </vfrcompile>\r
-\r
-          <cc userdefine="on">\r
-            <command type="CC" cmd="${CC}" workdir="${DEST_DIR_OUTPUT}"\r
-                     includepathDelimiter="-I" family="${CC_FAMILY}" dpath="${CC_DPATH}"\r
-                     libpath="${CC_LIBPATH}" include="${CC_INCLUDEPATH}"\r
-                     outputFile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj" >\r
-              <argument value="${CC_FLAGS}"/>\r
-              <EXTRA.INC/>\r
-              <EXTRA.ARG/>\r
-              <fileset casesensitive="on" file="${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}.c"/>\r
-            </command>\r
-          </cc>\r
-        </sequential>\r
-      </OnDependency>\r
-      <!-- Since fileset can't scan file start with ./, remove ./ in previous. -->\r
-      <if>\r
-        <equals arg1="@{FILEPATH}" arg2="." />\r
-        <then>\r
-          <var name="OBJECTS" value="${OBJECTS} @{FILENAME}.obj" />\r
-        </then>\r
-        <else>\r
-          <var name="OBJECTS" value="${OBJECTS} @{FILEPATH}/@{FILENAME}.obj" />\r
-        </else>\r
-      </if>\r
-    </sequential>\r
-  </macrodef>\r
-\r
-  <!--\r
-      Build the real mode ASM file\r
-    -->\r
-  <macrodef name="Build_RealAsm">\r
-    <attribute name="FILEPATH"/>\r
-    <attribute name="FILENAME"/>\r
-    <attribute name="FILEEXT" default="asm"/>\r
-\r
-    <element name="EXTRA.INC" optional="yes"/>\r
-    <element name="EXTRA.ARG" optional="yes"/>\r
-\r
-    <sequential>\r
-      <OnDependency>\r
-        <sourcefiles>\r
-          <file name="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>\r
-        </sourcefiles>\r
-        <targetfiles>\r
-          <file name="${DEST_DIR_OUTPUT}/@{FILENAME}.cat"/>\r
-        </targetfiles>\r
-\r
-        <sequential>\r
-          <exec dir="${DEST_DIR_OUTPUT}" executable="${ASM}" failonerror="true">\r
-            <arg line="/nologo /omf ${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT} /Bl${ASMLINK} ${ASMLINK_FLAGS}"/>\r
-          </exec>\r
-          <concat destfile="${DEST_DIR_OUTPUT}/@{FILENAME}.cat" binary="yes">\r
-            <filelist dir="${MODULE_DIR}" files="Blank2.pad"/>\r
-            <filelist dir="${DEST_DIR_OUTPUT}" files="@{FILENAME}.com"/>\r
-          </concat>\r
-        </sequential>\r
-      </OnDependency>\r
-    </sequential>\r
-  </macrodef>\r
-\r
-  <!--\r
-      Build Asl table file\r
-    -->\r
-  <macrodef name="Build_ASL">\r
-    <attribute name="FILEPATH"/>\r
-    <attribute name="FILENAME"/>\r
-    <attribute name="FILEEXT" default="asl"/>\r
-\r
-    <element name="EXTRA.INC" optional="yes"/>\r
-    <element name="EXTRA.ARG" optional="yes"/>\r
-\r
-    <sequential>\r
-      <mkdir dir="${DEST_DIR_OUTPUT}"/>\r
-\r
-      <OnDependency>\r
-        <sourcefiles>\r
-          <file name="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>\r
-        </sourcefiles>\r
-        <targetfiles>\r
-          <file name="${DEST_DIR_OUTPUT}/@{FILENAME}.sec"/>\r
-        </targetfiles>\r
-\r
-        <sequential>\r
-          <cc userdefine="on">\r
-            <command type="PP" cmd="${PP}" workdir="${DEST_DIR_OUTPUT}" family="${PP_FAMILY}"\r
-                dpath="${PP_DPATH}" libpath="${PP_LIBPATH}" include="${PP_INCLUDEPATH}">\r
-              <argument value="${APP_FLAGS}"/>\r
-              <EXTRA.INC/>\r
-              <fileset casesensitive="on" file="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>\r
-            </command>\r
-          </cc>\r
-\r
-          <exec dir="${DEST_DIR_OUTPUT}" executable="${ASL}" failonerror="true" outputproperty="ASL_OUTPUT">\r
-            <arg line="${DEST_DIR_OUTPUT}/@{FILENAME}.i"/>\r
-          </exec>\r
-\r
-          <if>\r
-            <or>\r
-              <contains string="${ASL_OUTPUT}" substring="Supports ACPI Specification Revision 2.0"/>\r
-              <contains string="${ASL_OUTPUT}" substring="Supports ACPI Specification Revision 1.0"/>\r
-            </or>\r
-            <then>\r
-              <fail message="Current Asl tool not support Acpi Spec 3.0. Pls update your Asl compiler."/>\r
-            </then>\r
-          </if>\r
-\r
-          <EFI_SECTION_RAW FILEPATH="." FILENAME="@{FILENAME}" FILEEXT="aml"/>\r
-\r
-        </sequential>\r
-      </OnDependency>\r
-    </sequential>\r
-  </macrodef>\r
-\r
-  <!--\r
-      Build Asl table c file\r
-    -->\r
-  <macrodef name="Build_CCASL">\r
-    <attribute name="FILEPATH"/>\r
-    <attribute name="FILENAME"/>\r
-    <attribute name="FILEEXT" default="c"/>\r
-\r
-    <element name="EXTRA.INC" optional="yes"/>\r
-    <element name="EXTRA.ARG" optional="yes"/>\r
-\r
-    <sequential>\r
-      <mkdir dir="${DEST_DIR_OUTPUT}"/>\r
-\r
-      <OnDependency>\r
-        <sourcefiles>\r
-          <file name="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>\r
-        </sourcefiles>\r
-        <targetfiles>\r
-          <file name="${DEST_DIR_OUTPUT}/@{FILENAME}.sec"/>\r
-        </targetfiles>\r
-\r
-        <sequential>\r
-\r
-          <cc userdefine="on">\r
-            <command type="CC" cmd="${CC}" workdir="${DEST_DIR_OUTPUT}" family="${CC_FAMILY}"\r
-                outputFile="${DEST_DIR_OUTPUT}/@{FILENAME}.obj" dpath="${CC_DPATH}"\r
-                libpath="${CC_LIBPATH}" include="${CC_INCLUDEPATH}">\r
-              <EXTRA.INC/>\r
-              <argument value="${CC_FLAGS}"/>\r
-              <EXTRA.ARG/>\r
-              <fileset casesensitive="on" file="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>\r
-            </command>\r
-          </cc>\r
-\r
-          <cc userdefine="on">\r
-            <command type="DLINK" cmd="${DLINK}" family="${DLINK_FAMILY}"\r
-                     outputFile="${DEST_DIR_OUTPUT}/@{FILENAME}.exe" dpath="${DLINK_DPATH}" >\r
-              <argument value="${SLINK_FLAGS}"/>\r
-              <fileset casesensitive="on" file="${DEST_DIR_OUTPUT}/@{FILENAME}.obj"/>\r
-            </command>\r
-          </cc>\r
-\r
-          <genacpitable inputfile="${DEST_DIR_OUTPUT}/@{FILENAME}.exe" outputfile="${DEST_DIR_OUTPUT}/@{FILENAME}.acpi" />\r
-\r
-          <EFI_SECTION_RAW FILEPATH="." FILENAME="@{FILENAME}" FILEEXT="acpi"/>\r
-        </sequential>\r
-      </OnDependency>\r
-    </sequential>\r
-  </macrodef>\r
- <!--\r
-      Build ACPI Bin File\r
-    -->\r
-  <macrodef name="Build_ACPIBIN">\r
-    <attribute name="FILEPATH"/>\r
-    <attribute name="FILENAME"/>\r
-    <attribute name="FILEEXT" default="bin"/>\r
-\r
-    <element name="EXTRA.INC" optional="yes"/>\r
-    <element name="EXTRA.ARG" optional="yes"/>\r
-\r
-    <sequential>\r
-      <mkdir dir="${DEST_DIR_OUTPUT}"/>\r
-\r
-      <OnDependency>\r
-        <sourcefiles>\r
-          <file name="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>\r
-        </sourcefiles>\r
-        <targetfiles>\r
-          <file name="${DEST_DIR_OUTPUT}/@{FILENAME}.sec"/>\r
-        </targetfiles>\r
-\r
-        <sequential>\r
-          <copy file="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}" tofile="${DEST_DIR_OUTPUT}/@{FILENAME}.acpi" />\r
-\r
-          <exec executable="attrib">\r
-            <arg line="-r ${DEST_DIR_OUTPUT}/@{FILENAME}.acpi"/>\r
-          </exec>\r
-\r
-          <EFI_SECTION_RAW FILEPATH="." FILENAME="@{FILENAME}" FILEEXT="acpi"/>\r
-        </sequential>\r
-      </OnDependency>\r
-    </sequential>\r
-  </macrodef>\r
-\r
-  <!--\r
-    DUMMY - for skipping the source file which should not be built\r
-    -->\r
-  <macrodef name="Build_DUMMY">\r
-    <attribute name="FILEPATH"/>\r
-    <attribute name="FILENAME"/>\r
-    <attribute name="FILEEXT"/>\r
-\r
-    <element name="EXTRA.INC" optional="yes"/>\r
-    <element name="EXTRA.ARG" optional="yes"/>\r
-\r
-    <sequential>\r
-      <!--echo message="Ignoring ${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}" level="info" /-->\r
-    </sequential>\r
-  </macrodef>\r
-\r
-  <!--\r
-    Generate efi file\r
-    -->\r
-  <macrodef name="GenEfi">\r
-    <attribute name="FILEPATH"/>\r
-    <attribute name="FILENAME"/>\r
-    <attribute name="FILEEXT" default="efi"/>\r
-\r
-    <element name="LIB.ARG" optional="yes"/>\r
-    <element name="LINK.ARG" optional="yes"/>\r
-\r
-    <sequential>\r
-      <var name="FILE_BASENAME" value="@{FILENAME}" />\r
-      <var name="FILE_PATH" value="@{FILEPATH}" />\r
-      <OnDependency>\r
-        <sourcefiles>\r
-          <file list="${LIBS}"/>\r
-          <fileset dir="${DEST_DIR_OUTPUT}" includes="${OBJECTS}" />\r
-        </sourcefiles>\r
-        <targetfiles>\r
-          <file name="${DEST_DIR_DEBUG}/@{FILENAME}.efi"/>\r
-        </targetfiles>\r
-\r
-        <sequential>\r
-          <!-- Generate a temporary lib file for object files -->\r
-          <cc userdefine="on">\r
-            <command type="SLINK" cmd="${SLINK}" family="${SLINK_FAMILY}" dpath="${SLINK_DPATH}"\r
-                outputFile="${DEST_DIR_OUTPUT}/@{FILENAME}Local.lib"\r
-                libpath="${SLINKLIBPATH}" include="${SLINK_INCLUDEPATH}">\r
-              <argument value="${SLINK_FLAGS}"/>\r
-\r
-              <fileset dir="${DEST_DIR_OUTPUT}" includes="${OBJECTS}"/>\r
-            </command>\r
-          </cc>\r
-\r
-          <!-- Link the temporary lib file with dependent libraries -->\r
-          <cc userdefine="on">\r
-            <command type="DLINK" cmd="${DLINK}" family="${DLINK_FAMILY}"\r
-                     outputFile="${DEST_DIR_DEBUG}/@{FILENAME}.dll" dpath="${DLINK_DPATH}"\r
-                     libpath="${DLINK_LIBPATH}" include="${DLINK_INCLUDEPATH}">\r
-              <argument value="${DLINK_FLAGS}"/>\r
-              <libset libs="${DEST_DIR_OUTPUT}/@{FILENAME}Local.lib ${LIBS} ${DLINK_SPATH}"/>\r
-              <LINK.ARG/>\r
-            </command>\r
-          </cc>\r
-\r
-          <!-- Convert the dll file to efi file -->\r
-          <fwimage componentType="${MODULE_TYPE}" outImage="${DEST_DIR_OUTPUT}/@{FILENAME}.efi"\r
-                   peImage="${DEST_DIR_DEBUG}/@{FILENAME}.dll" time="0"/>\r
-\r
-          <!-- Copy the efi file to BIN and OUTPUT directory -->\r
-          <copy file="${DEST_DIR_OUTPUT}/@{FILENAME}.efi" tofile="${BIN_DIR}/@{FILENAME}.efi" />\r
-          <copy file="${DEST_DIR_OUTPUT}/@{FILENAME}.efi" tofile="${DEST_DIR_DEBUG}/@{FILENAME}.efi" />\r
-          <if>\r
-            <available file="${DEST_DIR_DEBUG}/@{FILENAME}.map" />\r
-            <then>\r
-              <copy file="${DEST_DIR_DEBUG}/@{FILENAME}.map" tofile="${BIN_DIR}/@{FILENAME}.map" />\r
-            </then>\r
-          </if>\r
-        </sequential>\r
-      </OnDependency>\r
-    </sequential>\r
-  </macrodef>\r
-\r
-  <!--\r
-    Binary\r
-    -->\r
-  <macrodef name="Build_Binary">\r
-    <attribute name="FILEPATH"/>\r
-    <attribute name="FILENAME"/>\r
-    <attribute name="FILEEXT" default="bin"/>\r
-\r
-    <element name="EXTRA.INC" optional="yes"/>\r
-    <element name="EXTRA.ARG" optional="yes"/>\r
-\r
-    <sequential>\r
-      <copy file="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"\r
-            tofile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.bin"/>\r
-    </sequential>\r
-  </macrodef>\r
-\r
-  <!--\r
-    Microcode\r
-   -->\r
-  <macrodef name="Build_MICROCODE">\r
-    <attribute name="FILEPATH"/>\r
-    <attribute name="FILENAME"/>\r
-    <attribute name="FILEEXT" default="TXT"/>\r
-\r
-    <element name="EXTRA.INC" optional="yes"/>\r
-    <element name="EXTRA.ARG" optional="yes"/>\r
-\r
-    <sequential>\r
-      <mkdir dir="${TARGET_DIR}/Microcode"/>\r
-      <flashmap MCIFile="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}" MCOFILE="${TARGET_DIR}/Microcode/@{FILENAME}.bin"/>\r
-    </sequential>\r
-  </macrodef>\r
-\r
-  <!--\r
-    Graphics (bmp, ...)\r
-    -->\r
-  <macrodef name="Build_BMP">\r
-    <attribute name="FILEPATH"/>\r
-    <attribute name="FILENAME"/>\r
-    <attribute name="FILEEXT" default="bmp"/>\r
-\r
-    <element name="EXTRA.INC" optional="yes"/>\r
-    <element name="EXTRA.ARG" optional="yes"/>\r
-\r
-    <sequential>\r
-      <copy file="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"\r
-            tofile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.bin"/>\r
-    </sequential>\r
-  </macrodef>\r
-\r
-  <!--\r
-    build EFI file\r
-  -->\r
-  <macrodef name="Build_EFI">\r
-    <attribute name="FILEPATH"/>\r
-    <attribute name="FILENAME"/>\r
-    <attribute name="FILEEXT" default="efi"/>\r
-\r
-    <element name="EXTRA.INC" optional="yes"/>\r
-    <element name="EXTRA.ARG" optional="yes"/>\r
-\r
-    <sequential>\r
-      <mkdir dir="${MODULE_DIR}/@{FILEPATH}" />\r
-      <copy file="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"\r
-        tofile="${DEST_DIR_OUTPUT}/${BASE_NAME}.efi"/>\r
-    </sequential>\r
-  </macrodef>\r
-\r
-  <!--\r
-    Build macro for Apriori\r
-  -->\r
-  <macrodef name="Build_Apriori">\r
-    <attribute name="FILEPATH" default="."/>\r
-    <attribute name="FILENAME"/>\r
-    <attribute name="FILEEXT" default="apr"/>\r
-    <attribute name="GUID"/>\r
-\r
-    <sequential>\r
-      <mkdir dir="${FV_DIR}/Apriori" />\r
-      <gensection inputfile="${FV_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"\r
-                  outputfile="${FV_DIR}/Apriori/@{FILENAME}.sec"\r
-                  sectiontype="EFI_SECTION_RAW"/>\r
-\r
-      <genffsfile BaseName="@{FILENAME}" ffsATTRIBCHECKSUM="TRUE" ffsFILETYPE="EFI_FV_FILETYPE_FREEFORM"\r
-                  fileGuid="@{GUID}" moduleType="BASE" outputDir="${FV_DIR}">\r
-        <sectFile fileName="${FV_DIR}/Apriori/@{FILENAME}.sec"/>\r
-      </genffsfile>\r
-\r
-    </sequential>\r
-  </macrodef>\r
-\r
-<!--############################################################################\r
-  Build Sections\r
-#############################################################################-->\r
-  <!--\r
-    EFI_SECTION_TE\r
-    -->\r
-\r
-  <macrodef name="EFI_SECTION_TE">\r
-    <attribute name="FILEPATH"/>\r
-    <attribute name="FILENAME"/>\r
-    <attribute name="FILEEXT" default="efi" />\r
-\r
-    <element name="PRE.PROCESS" optional="yes"/>\r
-    <element name="POST.PROCESS" optional="yes"/>\r
-\r
-    <sequential>\r
-      <OnDependency>\r
-        <sourcefiles>\r
-          <file name="${DEST_DIR_OUTPUT}/@{FILENAME}.efi"/>\r
-        </sourcefiles>\r
-        <targetfiles>\r
-          <file name="${DEST_DIR_OUTPUT}/@{FILENAME}.tes"/>\r
-        </targetfiles>\r
-\r
-        <sequential>\r
-          <PRE.PROCESS/>\r
-\r
-          <genteimage Dump="false" Verbose="false" OutputDir="" OutputFile="${DEST_DIR_OUTPUT}/@{FILENAME}.te" InputFile="${DEST_DIR_OUTPUT}/@{FILENAME}.efi"/>\r
-          <gensection inputfile="${DEST_DIR_OUTPUT}/@{FILENAME}.te"\r
-                      outputfile="${DEST_DIR_OUTPUT}/@{FILENAME}.tes"\r
-                      sectiontype="EFI_SECTION_TE"/>\r
-\r
-          <POST.PROCESS/>\r
-        </sequential>\r
-      </OnDependency>\r
-    </sequential>\r
-  </macrodef>\r
-\r
-  <!--\r
-    EFI_SECTION_PE32\r
-    -->\r
-  <macrodef name="EFI_SECTION_PE32">\r
-    <attribute name="FILEPATH"/>\r
-    <attribute name="FILENAME"/>\r
-    <attribute name="FILEEXT" default="efi"/>\r
-\r
-    <element name="PRE.PROCESS" optional="yes"/>\r
-    <element name="POST.PROCESS" optional="yes"/>\r
-\r
-    <sequential>\r
-      <OnDependency>\r
-        <sourcefiles>\r
-          <file name="${DEST_DIR_OUTPUT}/@{FILENAME}.efi"/>\r
-        </sourcefiles>\r
-        <targetfiles>\r
-          <file name="${DEST_DIR_OUTPUT}/@{FILENAME}.pe32"/>\r
-        </targetfiles>\r
-\r
-        <sequential>\r
-          <PRE.PROCESS/>\r
-\r
-          <gensection inputfile="${DEST_DIR_OUTPUT}/@{FILENAME}.efi"\r
-                      outputfile="${DEST_DIR_OUTPUT}/@{FILENAME}.pe32"\r
-                      sectiontype="EFI_SECTION_PE32"/>\r
-\r
-          <POST.PROCESS/>\r
-        </sequential>\r
-      </OnDependency>\r
-    </sequential>\r
-  </macrodef>\r
-\r
-  <!--\r
-    EFI_SECTION_VERSION\r
-    -->\r
-  <macrodef name="EFI_SECTION_VERSION">\r
-    <attribute name="FILEPATH"/>\r
-    <attribute name="FILENAME"/>\r
-    <attribute name="FILEEXT" default="" />\r
-    <attribute name="VERSION" default="0000"/>\r
-\r
-    <element name="PRE.PROCESS" optional="yes"/>\r
-    <element name="POST.PROCESS" optional="yes"/>\r
-\r
-    <sequential>\r
-      <if>\r
-        <not>\r
-          <available type="file" file="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.ver"/>\r
-        </not>\r
-\r
-        <then>\r
-          <PRE.PROCESS/>\r
-          <gensection outputfile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.ver"\r
-                      versionnum="@{VERSION}"\r
-                      sectiontype="EFI_SECTION_VERSION"/>\r
-          <POST.PROCESS/>\r
-        </then>\r
-      </if>\r
-    </sequential>\r
-  </macrodef>\r
-\r
-  <!--\r
-    EFI_SECTION_USER_INTERFACE\r
-    -->\r
-  <macrodef name="EFI_SECTION_USER_INTERFACE">\r
-    <attribute name="FILEPATH"/>\r
-    <attribute name="FILENAME"/>\r
-    <attribute name="FILEEXT" default="" />\r
-    <attribute name="UI" default="${BASE_NAME}"/>\r
-\r
-    <element name="PRE.PROCESS" optional="yes"/>\r
-    <element name="POST.PROCESS" optional="yes"/>\r
-\r
-    <sequential>\r
-      <if>\r
-        <not>\r
-          <available type="file" file="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.ui"/>\r
-        </not>\r
-\r
-        <then>\r
-          <PRE.PROCESS/>\r
-          <gensection interfacestring="@{UI}"\r
-                      outputfile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.ui"\r
-                      sectiontype="EFI_SECTION_USER_INTERFACE"/>\r
-          <POST.PROCESS/>\r
-        </then>\r
-      </if>\r
-    </sequential>\r
-  </macrodef>\r
-\r
-  <!--\r
-    EFI_SECTION_DXE_DEPEX\r
-    -->\r
-  <macrodef name="EFI_SECTION_DXE_DEPEX">\r
-    <attribute name="FILEPATH"/>\r
-    <attribute name="FILENAME"/>\r
-    <attribute name="FILEEXT" default="dxs"/>\r
-\r
-    <element name="PRE.PROCESS" optional="yes"/>\r
-    <element name="POST.PROCESS" optional="yes"/>\r
-\r
-    <sequential>\r
-      <PRE.PROCESS/>\r
-\r
-      <if>\r
-        <available type="file" file="${DEST_DIR_OUTPUT}/@{FILENAME}.depex"/>\r
-        <then>\r
-          <OnDependency>\r
-            <sourcefiles>\r
-              <file name="${DEST_DIR_OUTPUT}/@{FILENAME}.depex"/>\r
-            </sourcefiles>\r
-            <targetfiles>\r
-              <file name="${DEST_DIR_OUTPUT}/@{FILENAME}.dpx"/>\r
-            </targetfiles>\r
-            <sequential>\r
-              <gensection inputfile="${DEST_DIR_OUTPUT}/@{FILENAME}.depex"\r
-                          outputfile="${DEST_DIR_OUTPUT}/@{FILENAME}.dpx"\r
-                          sectiontype="EFI_SECTION_DXE_DEPEX"/>\r
-            </sequential>\r
-          </OnDependency>\r
-        </then>\r
-        <else>\r
-          <if>\r
-            <not>\r
-              <available type="file" file="${DEST_DIR_OUTPUT}/@{FILENAME}.dpx"/>\r
-            </not>\r
-            <then>\r
-              <touch file="${DEST_DIR_OUTPUT}/@{FILENAME}.dpx"/>\r
-            </then>\r
-          </if>\r
-        </else>\r
-      </if>\r
-\r
-      <POST.PROCESS/>\r
-    </sequential>\r
-  </macrodef>\r
-\r
-  <!--\r
-    EFI_SECTION_PEI_DEPEX\r
-    -->\r
-  <macrodef name="EFI_SECTION_PEI_DEPEX">\r
-    <attribute name="FILEPATH"/>\r
-    <attribute name="FILENAME"/>\r
-    <attribute name="FILEEXT" default="dxs"/>\r
-\r
-    <element name="PRE.PROCESS" optional="yes"/>\r
-    <element name="POST.PROCESS" optional="yes"/>\r
-    <sequential>\r
-      <PRE.PROCESS/>\r
-      <if>\r
-        <available type="file" file="${DEST_DIR_OUTPUT}/@{FILENAME}.depex"/>\r
-        <then>\r
-          <OnDependency>\r
-            <sourcefiles>\r
-              <file name="${DEST_DIR_OUTPUT}/@{FILENAME}.depex"/>\r
-            </sourcefiles>\r
-            <targetfiles>\r
-              <file name="${DEST_DIR_OUTPUT}/@{FILENAME}.dpx"/>\r
-            </targetfiles>\r
-\r
-            <sequential>\r
-              <gensection inputfile="${DEST_DIR_OUTPUT}/@{FILENAME}.depex"\r
-                          outputfile="${DEST_DIR_OUTPUT}/@{FILENAME}.dpx"\r
-                          sectiontype="EFI_SECTION_PEI_DEPEX"/>\r
-            </sequential>\r
-          </OnDependency>\r
-\r
-        </then>\r
-        <else>\r
-          <if>\r
-            <not>\r
-              <available type="file" file="${DEST_DIR_OUTPUT}/@{FILENAME}.dpx"/>\r
-            </not>\r
-            <then>\r
-              <touch file="${DEST_DIR_OUTPUT}/@{FILENAME}.dpx"/>\r
-            </then>\r
-          </if>\r
-        </else>\r
-      </if>\r
-      <POST.PROCESS/>\r
-    </sequential>\r
-  </macrodef>\r
-\r
-\r
-  <!--\r
-    EFI_SECTION_RAW\r
-    -->\r
-  <macrodef name="EFI_SECTION_RAW">\r
-    <attribute name="FILEPATH"/>\r
-    <attribute name="FILENAME"/>\r
-    <attribute name="FILEEXT" default="bin"/>\r
-\r
-    <element name="PRE.PROCESS" optional="yes"/>\r
-    <element name="POST.PROCESS" optional="yes"/>\r
-\r
-    <sequential>\r
-      <OnDependency>\r
-        <sourcefiles>\r
-          <file name="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>\r
-        </sourcefiles>\r
-        <targetfiles>\r
-          <file name="${DEST_DIR_OUTPUT}/@{FILENAME}.sec"/>\r
-        </targetfiles>\r
-\r
-        <sequential>\r
-          <PRE.PROCESS/>\r
-          <gensection inputfile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"\r
-                      outputfile="${DEST_DIR_OUTPUT}/@{FILENAME}.sec"\r
-                      sectiontype="EFI_SECTION_RAW"/>\r
-          <POST.PROCESS/>\r
-        </sequential>\r
-      </OnDependency>\r
-    </sequential>\r
-  </macrodef>\r
-\r
-  <!--\r
-    EFI_SECTION_RAW_SEC\r
-    -->\r
-  <macrodef name="EFI_SECTION_RAW_SEC">\r
-    <attribute name="FILEPATH"/>\r
-    <attribute name="FILENAME"/>\r
-    <attribute name="FILEEXT" default="cat"/>\r
-\r
-    <element name="PRE.PROCESS" optional="yes"/>\r
-    <element name="POST.PROCESS" optional="yes"/>\r
-\r
-    <sequential>\r
-      <OnDependency>\r
-        <sourcefiles>\r
-          <file name="${DEST_DIR_OUTPUT}/ResetVec.@{FILEEXT}"/>\r
-          <file name="${DEST_DIR_OUTPUT}/@{FILENAME}.te"/>\r
-        </sourcefiles>\r
-        <targetfiles>\r
-          <file name="${DEST_DIR_OUTPUT}/@{FILENAME}.sec"/>\r
-        </targetfiles>\r
-\r
-        <sequential>\r
-          <PRE.PROCESS/>\r
-          <secfixup secexefile="${DEST_DIR_OUTPUT}/@{FILENAME}.te" resetvectorDatafile="${DEST_DIR_OUTPUT}/ResetVec.@{FILEEXT}"\r
-                   outputfile="${DEST_DIR_OUTPUT}/@{FILENAME}.bin"/>\r
-\r
-          <gensection inputfile="${DEST_DIR_OUTPUT}/@{FILENAME}.bin"\r
-                      outputfile="${DEST_DIR_OUTPUT}/@{FILENAME}.sec"\r
-                      sectiontype="EFI_SECTION_RAW"/>\r
-          <POST.PROCESS/>\r
-        </sequential>\r
-      </OnDependency>\r
-    </sequential>\r
-  </macrodef>\r
-\r
-  <!--\r
-    EFI_SECTION_FIRMWARE_VOLUME_IMAGE\r
-    -->\r
-  <macrodef name="EFI_SECTION_FIRMWARE_VOLUME_IMAGE">\r
-    <attribute name="FILEPATH"/>\r
-    <attribute name="FILENAME"/>\r
-    <attribute name="FILEEXT" default="fv"/>\r
-\r
-    <element name="PRE.PROCESS" optional="yes"/>\r
-    <element name="POST.PROCESS" optional="yes"/>\r
-\r
-    <sequential>\r
-      <OnDependency>\r
-        <sourcefiles>\r
-          <file name="${FV_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>\r
-        </sourcefiles>\r
-        <targetfiles>\r
-          <file name="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}fv.sec"/>\r
-        </targetfiles>\r
-\r
-        <sequential>\r
-          <PRE.PROCESS/>\r
-\r
-          <copy file="${FV_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"\r
-                tofile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"\r
-                overwrite="true"/>\r
-          <gensection inputfile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"\r
-                      outputfile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}fv.sec"\r
-                      sectiontype="EFI_SECTION_FIRMWARE_VOLUME_IMAGE"/>\r
-\r
-          <POST.PROCESS/>\r
-        </sequential>\r
-      </OnDependency>\r
-    </sequential>\r
-  </macrodef>\r
-\r
-</project>\r