+ <!-- 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
+ <!-- Lack Dependency Check -->\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
+ </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
+ <!--\r
+ DUMMY\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