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