]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Conf/BuildMacro.xml
1. Add EBC architecture support
[mirror_edk2.git] / Tools / Conf / BuildMacro.xml
index cd9b8056323d1dd4da41e8256cc5f1046dcf4910..59dc7c2469509dbcc068c92d5424b9ac4743f159 100644 (file)
@@ -10,6 +10,17 @@ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
 -->\r
 <project name="common">\r
+  <!--\r
+    Macro for intialize some properties. This Macro build will be called before source file build.  \r
+    -->\r
+  <macrodef name="Build_Init">\r
+    <sequential>\r
+      <var name="OBJECTS" value="" />\r
+      <var name="SDB_FILES" value="" />\r
+    </sequential>\r
+  </macrodef>\r
+\r
+\r
   <!--\r
     macro definitions for building files with different types\r
     -->\r
@@ -60,6 +71,16 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
           </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
@@ -108,6 +129,16 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
           </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
@@ -252,6 +283,16 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
           </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
@@ -293,6 +334,16 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
           </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
@@ -349,6 +400,16 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
           </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
@@ -396,7 +457,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 \r
       <OnDependency>\r
         <sourcefiles>\r
-          <fileset casesensitive="on" dir="${DEST_DIR_OUTPUT}" includes="**/*.obj"/>\r
+          <fileset dir="${DEST_DIR_OUTPUT}" includes="${OBJECTS}" />\r
         </sourcefiles>\r
         <targetfiles>\r
           <file name="${BIN_DIR}/@{FILENAME}.lib"/>\r
@@ -408,7 +469,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
                 outputFile="${BIN_DIR}/@{FILENAME}.lib">\r
               <argument value="${SLINK_FLAGS}"/>\r
 \r
-              <fileset casesensitive="on" dir="${DEST_DIR_OUTPUT}" includes="**/*.obj"/>\r
+              <fileset dir="${DEST_DIR_OUTPUT}" includes="${OBJECTS}"/>\r
             </command>\r
           </cc>\r
         </sequential>\r
@@ -525,7 +586,16 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
           </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
@@ -579,6 +649,16 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
           <delete file="${PLATFORM_DIR}/@{FILENAME}.i" />\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
@@ -618,7 +698,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
       <OnDependency>\r
         <sourcefiles>\r
           <file list="${LIBS}"/>\r
-          <fileset casesensitive="on" dir="${DEST_DIR_OUTPUT}" includes="**/*.obj"/>\r
+          <fileset dir="${DEST_DIR_OUTPUT}" includes="${OBJECTS}" />\r
         </sourcefiles>\r
         <targetfiles>\r
           <file name="${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}.dll"/>\r
@@ -630,7 +710,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
                 outputFile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}Local.lib">\r
               <argument value="${SLINK_FLAGS}"/>\r
 \r
-              <fileset casesensitive="on" dir="${DEST_DIR_OUTPUT}" includes="**/*.obj"/>\r
+              <fileset dir="${DEST_DIR_OUTPUT}" includes="${OBJECTS}"/>\r
             </command>\r
           </cc>\r
           <cc userdefine="on">\r