+++ /dev/null
-<?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}").+\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