]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Conf/BuildMacro.xml
Add dependency for RealAsm file build rules and Use the module name in place of macro...
[mirror_edk2.git] / Tools / Conf / BuildMacro.xml
index 2e1eec1fa8636062eef9ad6e40940c8e91df7604..a673d00a22c5f98fe49753a2427eabd13568d2d4 100644 (file)
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
+<?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
@@ -709,16 +709,39 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
         </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
-              <argument value="${VFR_FLAGS}"/>\r
-              <!-- Output file of the preprocess -->           \r
-              <argument value="-o ${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.i"/>\r
-              <EXTRA.INC/>\r
-              <fileset casesensitive="on" file="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>\r
-            </command>\r
-          </cc>\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
+          </if>\r
+          \r
+          <if>\r
+            <not>\r
+              <equals arg1="${CC_FAMILY}" arg2="GCC"/>\r
+            </not>\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} ${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>\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
+          </if>\r
+          \r
           \r
           <vfrcompile createIfrBinFile="on" createListFile="on" outPutDir="${DEST_DIR_DEBUG}/@{FILEPATH}" vfrFile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.i">\r
             <EXTRA.INC/>\r
@@ -762,14 +785,24 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     <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
+      <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
@@ -1380,7 +1413,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     <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}/@{FILEPATH}/@{FILENAME}.bin"/>\r
     </sequential>\r