]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Conf/BuildMacro.xml
Corrected the dependency check issue for Build_Library and GenDll macros.
[mirror_edk2.git] / Tools / Conf / BuildMacro.xml
index 42ec67117af29dd3948b07f9ba14334a7da3a532..4f2cf8d3b412ced4a9db496c2e32dbec92d23f5c 100644 (file)
@@ -134,16 +134,16 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
         </targetfiles>\r
 \r
         <sequential>\r
-\r
           <cc userdefine="on">\r
-            <command type="CC" cmd="${CC}" workdir="${DEST_DIR_OUTPUT}" family="${CC_FAMILY}">\r
+            <command type="CC" cmd="${CC}" workdir="${DEST_DIR_OUTPUT}/@{FILEPATH}" family="${CC_FAMILY}"\r
+                     outputFile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.i">\r
               <EXTRA.INC/>\r
               <argument value="${PP_FLAGS}"/>\r
               <fileset casesensitive="off" file="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>\r
             </command>\r
           </cc>\r
     \r
-          <gendepex inputFile="${DEST_DIR_OUTPUT}/@{FILENAME}.i" outputFile="${DEST_DIR_OUTPUT}/${BASE_NAME}.depex"/>\r
+          <gendepex inputFile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.i" outputFile="${DEST_DIR_OUTPUT}/${BASE_NAME}.depex"/>\r
         </sequential>\r
       </OnDependency>\r
     </sequential>\r
@@ -158,20 +158,27 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     <element name="EXTRA.ARG" optional="yes"/>\r
     \r
     <!-- Dispath ASM file, there are three type. \r
-         asm,s   -   Build_Assembly\r
-         S       -   Build_Ipf_Assembly -->\r
+         asm     -   Build_Assembly\r
+         S       -   Build_Gcc_Assembly\r
+         s       -   Build_Ipf_Assembly -->\r
     <sequential>\r
            <if>\r
-             <or>\r
-               <equals arg1="@{FILEEXT}" arg2="asm" />\r
-               <equals arg1="@{FILEEXT}" arg2="S" />\r
-             </or>\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
@@ -210,9 +217,8 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
         </targetfiles>\r
 \r
         <sequential>\r
-          <!--\r
           <cc userdefine="on">\r
-            <command type="CC" cmd="${CC}" workdir="${DEST_DIR_OUTPUT}/@{FILEPATH}" family="${CC_FAMILY}">\r
+            <command type="PP" cmd="${PP}" workdir="${DEST_DIR_OUTPUT}/@{FILEPATH}" family="${PP_FAMILY}">\r
               <EXTRA.INC.1/>\r
               <argument value="${PP_FLAGS}"/>\r
               <fileset casesensitive="off" file="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>\r
@@ -232,7 +238,48 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
                          replace="\10\2h"\r
                          flags="g"\r
                          byline="true"/>\r
-          -->\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">\r
+              <EXTRA.INC.1/>\r
+      \r
+              <argument value="${ASM_FLAGS}"/>\r
+              <EXTRA.ARG.1/>\r
+      \r
+              <fileset casesensitive="off" file="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.i"/>\r
+            </command>\r
+          </cc>\r
+        </sequential>\r
+      </OnDependency>\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
+      <OnDependency>\r
+        <sourcefiles>\r
+          <file Name="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>\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">\r
@@ -242,7 +289,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
               <EXTRA.ARG.1/>\r
       \r
               <fileset casesensitive="off" file="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>\r
-              <!-- fileset casesensitive="off" file="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.i"/ -->\r
             </command>\r
           </cc>\r
         </sequential>\r
@@ -284,7 +330,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 \r
         <sequential>\r
           <cc userdefine="on">\r
-            <command type="CC" cmd="${CC}" workdir="${DEST_DIR_OUTPUT}/@{FILEPATH}" family="${CC_FAMILY}">\r
+            <command type="PP" cmd="${PP}" workdir="${DEST_DIR_OUTPUT}/@{FILEPATH}" family="${PP_FAMILY}">\r
               <EXTRA.INC.1/>\r
               <argument value="${PP_FLAGS}"/>\r
               <fileset casesensitive="off" file="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>\r
@@ -327,7 +373,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
   \r
           <argument value="${ASM_FLAGS}"/>\r
           <EXTRA.ARG/>\r
-          <!-- <argument value="-o ${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/> -->\r
           <OutputFile File="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>\r
   \r
           <fileset casesensitive="off" file="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>\r
@@ -351,7 +396,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 \r
       <OnDependency>\r
         <sourcefiles>\r
-          <file list="${OBJECTS}"/>\r
+          <fileset casesensitive="off" dir="${DEST_DIR_OUTPUT}" includes="**/*.obj"/>\r
         </sourcefiles>\r
         <targetfiles>\r
           <file name="${BIN_DIR}/@{FILENAME}.lib"/>\r
@@ -523,7 +568,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     \r
           <cc userdefine="on">\r
             <command type="CC" cmd="${CC}" workdir="${DEST_DIR_OUTPUT}" \r
-                     includepathDelimiter="-I"\r
+                     includepathDelimiter="-I" family="${CC_FAMILY}"\r
                      outputFile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj" >\r
               <argument value="${CC_FLAGS}"/>\r
               <EXTRA.INC/>\r
@@ -537,6 +582,22 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     </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="Ignore DUMMY file ${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>\r
+    </sequential>\r
+  </macrodef>\r
+\r
 <!--############################################################################\r
   Build Sections\r
 #############################################################################-->\r
@@ -556,8 +617,8 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
       <var name="FILE_PATH" value="@{FILEPATH}" />\r
       <OnDependency>\r
         <sourcefiles>\r
-          <!--fileset casesensitive="off" dir="${DEST_DIR_OUTPUT}" includes="**/*.obj" /-->\r
           <file list="${LIBS}"/>\r
+          <fileset casesensitive="off" dir="${DEST_DIR_OUTPUT}" includes="**/*.obj"/>\r
         </sourcefiles>\r
         <targetfiles>\r
           <file name="${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}.dll"/>\r
@@ -605,7 +666,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
         </targetfiles>\r
 \r
         <sequential>\r
-          <!-- -->\r
           <fwimage componentType="${MODULE_TYPE}" outImage="${DEST_DIR_OUTPUT}/@{FILENAME}.efi" \r
                    peImage="${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}" time="0"/>\r
         </sequential>\r
@@ -669,11 +729,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
           <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
           <genteimage Dump="false" Verbose="false" OutputDir="" OutputFile="${DEST_DIR_OUTPUT}/@{FILENAME}.te" InputFile="${DEST_DIR_OUTPUT}/@{FILENAME}.efi"/>\r
-          <!-- \r
-          <exec executable="${GENTEIMAGE}">\r
-            <arg line="-o ${DEST_DIR_OUTPUT}/@{FILENAME}.te ${DEST_DIR_OUTPUT}/@{FILENAME}.efi" />\r
-          </exec>\r
-          -->\r
           <copy file="${DEST_DIR_OUTPUT}/@{FILENAME}.te" tofile="${BIN_DIR}/@{FILENAME}.te" />\r
           <gensection inputfile="${DEST_DIR_OUTPUT}/@{FILENAME}.te" \r
                       outputfile="${DEST_DIR_OUTPUT}/@{FILENAME}.tes" \r
@@ -790,24 +845,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     </sequential>\r
   </macrodef>\r
 \r
-  <!--\r
-    EFI_SECTION_FREEFORM_SUBTYPE_GUID\r
-    <macrodef name="EFI_SECTION_FREEFORM_SUBTYPE_GUID">\r
-      <attribute name="FILEPATH"/>\r
-      <attribute name="FILENAME"/>\r
-      <attribute name="FILEEXT" default=""/>\r
-  \r
-      <element name="EXTRA.INC" optional="yes"/>\r
-      <element name="EXTRA.ARG" optional="yes"/>\r
-  \r
-      <sequential>\r
-        <gensection inputfile="" \r
-                    outputfile="" \r
-                    sectiontype="EFI_SECTION_FREEFORM_SUBTYPE_GUID"/>\r
-      </sequential>\r
-    </macrodef>\r
-    -->\r
-\r
   <!--\r
     EFI_SECTION_DXE_DEPEX\r
     -->\r
@@ -901,28 +938,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     </sequential>\r
   </macrodef>\r
 \r
-  <!--\r
-    EFI_SECTION_PIC\r
-    <macrodef name="EFI_SECTION_PIC">\r
-      <attribute name="FILEPATH"/>\r
-      <attribute name="FILENAME"/>\r
-      <attribute name="FILEEXT" default=""/>\r
-  \r
-      <element name="EXTRA.INC" optional="yes"/>\r
-      <element name="EXTRA.ARG" optional="yes"/>\r
-  \r
-      <sequential>\r
-        <gensection inputfile="${BIN_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}" \r
-                    outputfile="${BIN_DIR}/@{FILENAME}.pe32" \r
-                    sectiontype="EFI_SECTION_PIC"/>\r
-      </sequential>\r
-    </macrodef>\r
-    -->\r
-\r
-  <!-- \r
-    EFI_SECTION_TE\r
-  -->\r
-\r
 \r
   <!--\r
     EFI_SECTION_RAW\r