Fixed the GCC assembler issue. Now we can use full GCC tools to build our package.
authorjwang36 <jwang36@6f19259b-4bc3-4df7-8a09-765794883524>
Thu, 6 Jul 2006 10:31:48 +0000 (10:31 +0000)
committerjwang36 <jwang36@6f19259b-4bc3-4df7-8a09-765794883524>
Thu, 6 Jul 2006 10:31:48 +0000 (10:31 +0000)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@795 6f19259b-4bc3-4df7-8a09-765794883524

EdkModulePkg/EdkModulePkg-All-Archs.fpd
EdkModulePkg/EdkModulePkg.fpd
MdePkg/Library/BaseLib/BaseLib.msa
MdePkg/Library/BaseMemoryLibMmx/BaseMemoryLibMmx.msa
MdePkg/Library/BaseMemoryLibRepStr/BaseMemoryLibRepStr.msa
MdePkg/Library/BaseMemoryLibSse2/BaseMemoryLibSse2.msa
MdePkg/MdePkg-All-Archs.fpd
MdePkg/MdePkg.fpd
Tools/Conf/BuildMacro.xml
Tools/Conf/target.template
Tools/Conf/tools_def.template

index ce55691..e6d3333 100644 (file)
           <TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>
           <DatumType>UINT32</DatumType>
           <MaxDatumSize>4</MaxDatumSize>
-          <Value>0x10000</Value>
+          <Value>0x1000Value>
         </PcdData>
         <PcdData ItemType="FIXED_AT_BUILD">
           <C_Name>PcdMaximumUnicodeStringLength</C_Name>
         "-nostdlib", "-O2", "--gc-sections", "--dll", "--export-all-symbols", "--entry ${ENTRYPOINT}"
       </Option>
       <Option ToolChainFamily="GCC" SupArchList="IA32" ToolCode="ASMLINK"/>
-      <Option ToolChainFamily="GCC" SupArchList="IA32" ToolCode="PP"> "-E", "-include ${DEST_DIR_DEBUG}/AutoGen.h" </Option>
+      <Option ToolChainFamily="GCC" SupArchList="IA32" ToolCode="PP"> "-E", "-x assembler-with-cpp", "-include ${DEST_DIR_DEBUG}/AutoGen.h" </Option>
 
       <!-- BOB tool chain options definition : IA32 -->
       <Option TagName="BOB" SupArchList="IA32" ToolCode="CC">
index 9827482..6510d4f 100644 (file)
         "-nostdlib", "-O2", "--gc-sections", "--dll", "--export-all-symbols", "--entry ${ENTRYPOINT}"\r
       </Option>\r
       <Option ToolChainFamily="GCC" SupArchList="IA32" ToolCode="ASMLINK"/>\r
-      <Option ToolChainFamily="GCC" SupArchList="IA32" ToolCode="PP"> "-E", "-include ${DEST_DIR_DEBUG}/AutoGen.h" </Option>\r
+      <Option ToolChainFamily="GCC" SupArchList="IA32" ToolCode="PP"> "-E", "-x assembler-with-cpp", "-include ${DEST_DIR_DEBUG}/AutoGen.h" </Option>\r
 \r
     </Options>\r
     \r
index 8d7af00..ae3cae7 100644 (file)
     <Filename SupArchList="IA32">Ia32/CpuBreakpoint.asm</Filename>\r
     <Filename SupArchList="IA32">Ia32/CpuFlushTlb.asm</Filename>\r
     <Filename SupArchList="IA32">Ia32/Thunk16.asm</Filename>\r
+    <!-- GCC assembly code is with .S extension -->\r
+    <Filename SupArchList="IA32">Ia32/LShiftU64.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/RShiftU64.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/ARShiftU64.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/LRotU64.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/RRotU64.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/MultU64x32.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/MultU64x64.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/DivU64x32.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/ModU64x32.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/DivU64x32Remainder.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/DivU64x64Remainder.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/SwapBytes64.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/SetJump.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/LongJump.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/CpuId.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/CpuIdEx.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/ReadEflags.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/ReadMsr64.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/WriteMsr32.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/WriteMsr64.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/ReadCr0.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/ReadCr2.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/ReadCr3.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/ReadCr4.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/WriteCr0.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/WriteCr2.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/WriteCr3.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/WriteCr4.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/ReadDr0.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/ReadDr1.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/ReadDr2.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/ReadDr3.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/ReadDr4.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/ReadDr5.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/ReadDr6.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/ReadDr7.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/WriteDr0.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/WriteDr1.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/WriteDr2.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/WriteDr3.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/WriteDr4.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/WriteDr5.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/WriteDr6.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/WriteDr7.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/ReadCs.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/ReadDs.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/ReadEs.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/ReadFs.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/ReadGs.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/ReadSs.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/ReadTr.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/ReadGdtr.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/WriteGdtr.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/ReadIdtr.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/WriteIdtr.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/ReadLdtr.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/WriteLdtr.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/FxSave.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/FxRestore.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/ReadMm0.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/ReadMm1.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/ReadMm2.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/ReadMm3.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/ReadMm4.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/ReadMm5.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/ReadMm6.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/ReadMm7.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/WriteMm0.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/WriteMm1.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/WriteMm2.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/WriteMm3.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/WriteMm4.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/WriteMm5.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/WriteMm6.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/WriteMm7.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/ReadTsc.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/ReadPmc.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/Monitor.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/Mwait.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/EnablePaging32.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/DisablePaging32.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/EnablePaging64.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/Wbinvd.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/Invd.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/FlushCacheLine.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/InterlockedIncrement.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/InterlockedDecrement.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/InterlockedCompareExchange32.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/InterlockedCompareExchange64.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/EnableInterrupts.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/DisableInterrupts.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/EnableDisableInterrupts.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/CpuSleep.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/CpuPause.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/CpuBreakpoint.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/CpuFlushTlb.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/Thunk16.S</Filename>\r
     <Filename SupArchList="X64">X86LowLevel.c</Filename>\r
     <Filename SupArchList="X64">X86Thunk.c</Filename>\r
     <Filename SupArchList="X64">Unaligned.c</Filename>\r
index 1c8c6b0..99d6dba 100644 (file)
     <Filename SupArchList="IA32">Ia32/ScanMem16.asm</Filename>\r
     <Filename SupArchList="IA32">Ia32/ScanMem32.asm</Filename>\r
     <Filename SupArchList="IA32">Ia32/ScanMem64.asm</Filename>\r
+    <Filename SupArchList="IA32">Ia32/CopyMem.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/SetMem.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/ZeroMem.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/SetMem16.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/SetMem32.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/SetMem64.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/CompareMem.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/ScanMem8.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/ScanMem16.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/ScanMem32.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/ScanMem64.S</Filename>\r
     <Filename SupArchList="X64">X64/CopyMem.asm</Filename>\r
     <Filename SupArchList="X64">X64/SetMem.asm</Filename>\r
     <Filename SupArchList="X64">X64/SetMem16.asm</Filename>\r
index 1aad519..d3fa91d 100644 (file)
     <Filename SupArchList="IA32">Ia32/ScanMem16.asm</Filename>\r
     <Filename SupArchList="IA32">Ia32/ScanMem32.asm</Filename>\r
     <Filename SupArchList="IA32">Ia32/ScanMem64.asm</Filename>\r
+    <Filename SupArchList="IA32">Ia32/CopyMem.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/SetMem.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/SetMem16.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/SetMem32.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/SetMem64.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/ZeroMem.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/CompareMem.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/ScanMem8.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/ScanMem16.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/ScanMem32.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/ScanMem64.S</Filename>\r
     <Filename SupArchList="X64">MemLibGuid.c</Filename>\r
     <Filename SupArchList="X64">CopyMemWrapper.c</Filename>\r
     <Filename SupArchList="X64">SetMemWrapper.c</Filename>\r
index 7c8798d..bfbfdf8 100644 (file)
     <Filename SupArchList="IA32">Ia32/ScanMem16.asm</Filename>\r
     <Filename SupArchList="IA32">Ia32/ScanMem32.asm</Filename>\r
     <Filename SupArchList="IA32">Ia32/ScanMem64.asm</Filename>\r
+    <Filename SupArchList="IA32">Ia32/CopyMem.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/SetMem.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/SetMem16.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/SetMem32.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/SetMem64.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/ZeroMem.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/CompareMem.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/ScanMem8.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/ScanMem16.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/ScanMem32.S</Filename>\r
+    <Filename SupArchList="IA32">Ia32/ScanMem64.S</Filename>\r
     <Filename SupArchList="X64">MemLibGuid.c</Filename>\r
     <Filename SupArchList="X64">CopyMemWrapper.c</Filename>\r
     <Filename SupArchList="X64">SetMemWrapper.c</Filename>\r
index 837771b..bf2ddb0 100644 (file)
         "-nostdlib", "-O2", "--gc-sections", "--dll", "--export-all-symbols", "--entry ${ENTRYPOINT}"\r
       </Option>\r
       <Option ToolChainFamily="GCC" SupArchList="IA32" ToolCode="ASMLINK"/>\r
-      <Option ToolChainFamily="GCC" SupArchList="IA32" ToolCode="PP"> "-E", "-include ${DEST_DIR_DEBUG}/AutoGen.h" </Option>\r
+      <Option ToolChainFamily="GCC" SupArchList="IA32" ToolCode="PP"> "-E", "-x assembler-with-cpp", "-include ${DEST_DIR_DEBUG}/AutoGen.h" </Option>\r
 \r
       <!-- BOB tool chain options definition : IA32 -->\r
       <Option TagName="BOB" SupArchList="IA32" ToolCode="CC">\r
index 0635b31..5147b6c 100644 (file)
         "-nostdlib", "-O2", "--gc-sections", "--dll", "--export-all-symbols", "--entry ${ENTRYPOINT}"\r
       </Option>\r\r
       <Option ToolChainFamily="GCC" SupArchList="IA32" ToolCode="ASMLINK"/>\r\r
-      <Option ToolChainFamily="GCC" SupArchList="IA32" ToolCode="PP"> "-E", "-include ${DEST_DIR_DEBUG}/AutoGen.h" </Option>\r\r
+      <Option ToolChainFamily="GCC" SupArchList="IA32" ToolCode="PP"> "-E", "-x assembler-with-cpp", "-include ${DEST_DIR_DEBUG}/AutoGen.h" </Option>\r\r
 \r\r
     </Options>\r\r
     \r\r
index 28d6f0c..3b315d4 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="PP" cmd="${PP}" workdir="${DEST_DIR_OUTPUT}" family="${PP_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
@@ -249,6 +256,67 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     </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="PP" cmd="${PP}" workdir="${DEST_DIR_OUTPUT}/@{FILEPATH}" family="${PP_FAMILY}"\r
+                     outputDelimiter="-o"\r
+                     outputFile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.i">\r
+              <EXTRA.INC.1/>\r
+              <argument value="${PP_FLAGS}"/>\r
+              <fileset casesensitive="off" file="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>\r
+            </command>\r
+          </cc>\r
+\r
+          <replaceregexp file="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.i"\r
+                         match="^(#[^ ]* +1 +.*@{FILEPATH}/@{FILENAME}\.@{FILEEXT}&quot;).+\1"\r
+                         replace="#"\r
+                         flags="gs"/>\r
+          <replaceregexp file="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.i"\r
+                         match="^(#[^ ]* .*)$"\r
+                         replace="# \1"\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">\r
+              <EXTRA.INC.1/>\r
+      \r
+              <argument value="${ASM_FLAGS}"/>\r
+              <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
+      </OnDependency>\r
+    </sequential>\r
+  </macrodef>\r
+\r
   <!--\r
     IPF Assembly\r
     -->\r
index fde5df2..0644b39 100644 (file)
@@ -6,6 +6,6 @@ TOOLS_DEFINITION_FILE = Tools/Conf/tools_def.txt
 
 # Separate multiple targets with space, not not use comma 
 TARGET                = 
-TARGET_ARCH           = 
-TAGNAME               = 
+TARGET_ARCH           = IA32
+TAGNAME               = MSFT
 
index 8026b46..c4e601f 100644 (file)
@@ -23,7 +23,7 @@
 *_MSFT_IA32_ASMLINK_PATH = C:\WINDDK\3790.1830\Bin\Bin16\\r
 *_MSFT_IA32_ASL_PATH     = C:\TianoTools\Bin\r
 *_MSFT_IA32_*_DPATH      = C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\IDE\r
-#*_MSFT_IA32_ASM_EXT     = .asm\r
+*_MSFT_IA32_ASM_EXT      = .asm\r
 \r
 # x64 definitions\r
 *_MSFT_X64_*_PATH       = C:\WINDDK\3790.1830\bin\win64\x86\amd64\r
@@ -35,6 +35,7 @@
 # IPF definitions\r
 *_MSFT_IPF_*_PATH       = C:\WINDDK\3790.1830\bin\win64\x86\r
 *_MSFT_IPF_ASM_NAME     = ias.exe\r
+*_MSFT_IPF_ASM_EXT      = .s\r
 \r
 # EBC definitions\r
 *_MSFT_EBC_*_FAMILY     = INTEL\r
 *_MSFT_EBC_PP_NAME      = iec.exe\r
 \r
 # GCC definitions\r
-#*_GCC_*_*_FAMILY       = GCC\r
-#*_GCC_*_CC_NAME        = gcc\r
-#*_GCC_*_SLINK_NAME     = ar\r
-#*_GCC_*_DLINK_NAME     = ld\r
+*_GCC_IA32_*_FAMILY     = GCC\r
+*_GCC_IA32_CC_NAME      = gcc\r
+*_GCC_IA32_SLINK_NAME   = ar\r
+*_GCC_IA32_DLINK_NAME   = ld\r
+*_GCC_IA32_ASM_NAME     = as\r
+*_GCC_IA32_PP_NAME      = gcc\r
 \r
 # GCC, IA32\r
-#*_GCC_IA32_*_PATH      = C:\cygwin\opt\tiano\i386-tiano-pe\i386-tiano-pe\bin\r
-#*_GCC_IA32_ASM_FAMILY  = MSFT\r
-#*_GCC_IA32_ASM_NAME    = ml.exe\r
-#*_GCC_IA32_ASM_PATH    = C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin\r
-#*_GCC_IA32_ASM_DPATH   = C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\IDE\r
-#*_GCC_IA32_PP_FAMILY   = MSFT\r
-#*_GCC_IA32_PP_NAME     = cl.exe\r
-#*_GCC_IA32_PP_PATH     = C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin\r
-#*_GCC_IA32_PP_DPATH    = C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\IDE\r
+*_GCC_IA32_*_PATH       = C:\cygwin\opt\tiano\i386-tiano-pe\i386-tiano-pe\bin\r
+*_GCC_IA32_ASM_EXT      = .S\r