]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Conf/BuildMacro.xml
Add a macro for GCC Assembly.
[mirror_edk2.git] / Tools / Conf / BuildMacro.xml
index 782b2714d33d88ace7c7110b5308ebb5f08f3b61..b3a6ff1c3a3b4541fea03bbd7fb19f3fe3a03e54 100644 (file)
@@ -25,17 +25,17 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     <element name="EXTRA.ARG" optional="yes"/>\r
 \r
     <sequential>\r
-      <mkdir dir="${DEST_DIR_OUTPUT}\@{FILEPATH}"/>\r
+      <mkdir dir="${DEST_DIR_OUTPUT}/@{FILEPATH}"/>\r
 \r
       <if>\r
-        <available type="file" file="${DEST_DIR_OUTPUT}\@{FILEPATH}\@{FILENAME}.obj"/>\r
+        <available type="file" file="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>\r
         <then>\r
-          <makedeps DepsFile="${DEST_DIR_OUTPUT}\@{FILEPATH}\@{FILENAME}.@{FILEEXT}.dep">\r
-            <input file="${MODULE_DIR}\@{FILEPATH}\@{FILENAME}.@{FILEEXT}"/>\r
-            <input file="${DEST_DIR_DEBUG}\AutoGen.h"/>\r
+          <makedeps DepsFile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.dep">\r
+            <input file="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>\r
+            <input file="${DEST_DIR_DEBUG}/AutoGen.h"/>\r
             <includepath path="${WORKSPACE_DIR}"/>\r
             <includepath path="${MODULE_DIR}"/>\r
-            <includepath path="${MODULE_DIR}\${ARCH}"/>\r
+            <includepath path="${MODULE_DIR}/${ARCH}"/>\r
             <EXTRA.INC/>\r
           </makedeps>\r
         </then>\r
@@ -43,10 +43,10 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 \r
       <OnDependency>\r
         <sourcefiles>\r
-          <file ListFile="${DEST_DIR_OUTPUT}\@{FILEPATH}\@{FILENAME}.@{FILEEXT}.dep"/>\r
+          <file ListFile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.dep"/>\r
         </sourcefiles>\r
         <targetfiles>\r
-          <file Name="${DEST_DIR_OUTPUT}\@{FILEPATH}\@{FILENAME}.obj"/>\r
+          <file Name="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>\r
         </targetfiles>\r
 \r
         <sequential>\r
@@ -54,17 +54,17 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
             <command type="CC" workdir="${DEST_DIR_OUTPUT}">\r
               <includepath path="${WORKSPACE_DIR}"/>\r
               <includepath path="${MODULE_DIR}"/>\r
-              <includepath path="${MODULE_DIR}\${ARCH}"/>\r
+              <includepath path="${MODULE_DIR}/${ARCH}"/>\r
               <EXTRA.INC/>\r
 \r
               <argument value="${CC_FLAGS}"/>\r
               <EXTRA.ARG/>\r
-              <!-- <argument value="/FI${DEST_DIR_DEBUG}\AutoGen.h" /> -->\r
-              <includeFile value="${DEST_DIR_DEBUG}\AutoGen.h"/>\r
-              <!-- <argument value="/Fo${DEST_DIR_OUTPUT}\@{FILEPATH}\@{FILENAME}.obj"/> -->\r
-              <outputFile value="${DEST_DIR_OUTPUT}\@{FILEPATH}\@{FILENAME}.obj"/>\r
+              <!-- <argument value="/FI${DEST_DIR_DEBUG}/AutoGen.h" /> -->\r
+              <includeFile value="${DEST_DIR_DEBUG}/AutoGen.h"/>\r
+              <!-- <argument value="/Fo${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/> -->\r
+              <outputFile value="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>\r
 \r
-              <fileset casesensitive="off" file="${MODULE_DIR}\@{FILEPATH}\@{FILENAME}.@{FILEEXT}"/>\r
+              <fileset casesensitive="off" file="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>\r
             </command>\r
           </cc>\r
         </sequential>\r
@@ -73,7 +73,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
       <!--\r
         for library generation later\r
         -->\r
-      <bl NAME="OBJECTS" VALUE="${OBJECTS} ${DEST_DIR_OUTPUT}\@{FILEPATH}\@{FILENAME}.obj"/> \r
+      <bl NAME="OBJECTS" VALUE="${OBJECTS} ${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/> \r
     </sequential>\r
   </macrodef>\r
 \r
@@ -87,17 +87,17 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     <element name="EXTRA.ARG" optional="yes"/>\r
 \r
     <sequential>\r
-      <mkdir dir="${DEST_DIR_OUTPUT}\@{FILEPATH}"/>\r
+      <mkdir dir="${DEST_DIR_OUTPUT}/@{FILEPATH}"/>\r
 \r
       <if>\r
-        <available type="file" file="${DEST_DIR_OUTPUT}\@{FILEPATH}\@{FILENAME}.obj"/>\r
+        <available type="file" file="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>\r
         <then>\r
-          <makedeps DepsFile="${DEST_DIR_OUTPUT}\@{FILEPATH}\@{FILENAME}.@{FILEEXT}.dep">\r
-            <input file="${DEST_DIR_DEBUG}\@{FILEPATH}\@{FILENAME}.@{FILEEXT}"/>\r
-            <input file="${DEST_DIR_DEBUG}\AutoGen.h"/>\r
+          <makedeps DepsFile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.dep">\r
+            <input file="${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>\r
+            <input file="${DEST_DIR_DEBUG}/AutoGen.h"/>\r
             <includepath path="${WORKSPACE_DIR}"/>\r
             <includepath path="${MODULE_DIR}"/>\r
-            <includepath path="${MODULE_DIR}\${ARCH}"/>\r
+            <includepath path="${MODULE_DIR}/${ARCH}"/>\r
             <EXTRA.INC/>\r
           </makedeps>\r
         </then>\r
@@ -105,10 +105,10 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 \r
       <OnDependency>\r
         <sourcefiles>\r
-          <file ListFile="${DEST_DIR_OUTPUT}\@{FILEPATH}\@{FILENAME}.@{FILEEXT}.dep"/>\r
+          <file ListFile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.dep"/>\r
         </sourcefiles>\r
         <targetfiles>\r
-          <file Name="${DEST_DIR_OUTPUT}\@{FILEPATH}\@{FILENAME}.obj"/>\r
+          <file Name="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>\r
         </targetfiles>\r
 \r
         <sequential>\r
@@ -116,17 +116,17 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
             <command type="CC" workdir="${DEST_DIR_OUTPUT}">\r
               <includepath path="${WORKSPACE_DIR}"/>\r
               <includepath path="${MODULE_DIR}"/>\r
-              <includepath path="${MODULE_DIR}\${ARCH}"/>\r
+              <includepath path="${MODULE_DIR}/${ARCH}"/>\r
               <EXTRA.INC/>\r
     \r
               <argument value="${CC_FLAGS}"/>\r
               <EXTRA.ARG/>\r
-              <!-- <argument value="/FI${DEST_DIR_DEBUG}\AutoGen.h" />  -->\r
-              <includeFile value="${DEST_DIR_DEBUG}\AutoGen.h"/>\r
-              <!-- <argument value="/Fo${DEST_DIR_OUTPUT}\@{FILEPATH}\@{FILENAME}.obj"/> -->\r
-              <outputFile value="${DEST_DIR_OUTPUT}\@{FILEPATH}\@{FILENAME}.obj"/>\r
+              <!-- <argument value="/FI${DEST_DIR_DEBUG}/AutoGen.h" />  -->\r
+              <includeFile value="${DEST_DIR_DEBUG}/AutoGen.h"/>\r
+              <!-- <argument value="/Fo${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/> -->\r
+              <outputFile value="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>\r
     \r
-              <fileset casesensitive="off" file="${DEST_DIR_DEBUG}\@{FILEPATH}\@{FILENAME}.@{FILEEXT}"/>\r
+              <fileset casesensitive="off" file="${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>\r
             </command>\r
           </cc>\r
         </sequential>\r
@@ -134,7 +134,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
       <!--\r
         for library generation later\r
         -->\r
-      <bl NAME="OBJECTS" VALUE="${OBJECTS} ${DEST_DIR_OUTPUT}\@{FILEPATH}\@{FILENAME}.obj"/> \r
+      <bl NAME="OBJECTS" VALUE="${OBJECTS} ${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/> \r
     </sequential>\r
   </macrodef>\r
 \r
@@ -147,36 +147,36 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     <element name="EXTRA.ARG" optional="yes"/>\r
 \r
     <sequential>\r
-      <mkdir dir="${DEST_DIR_OUTPUT}\@{FILEPATH}"/>\r
+      <mkdir dir="${DEST_DIR_OUTPUT}/@{FILEPATH}"/>\r
 \r
       <OnDependency>\r
         <sourcefiles>\r
-          <file name="${MODULE_DIR}\@{FILEPATH}\@{FILENAME}.@{FILEEXT}"/>\r
+          <file name="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>\r
         </sourcefiles>\r
         <targetfiles>\r
-          <file name="${DEST_DIR_OUTPUT}\${BASE_NAME}.@{FILEEXT}.depex"/>\r
+          <file name="${DEST_DIR_OUTPUT}/${BASE_NAME}.@{FILEEXT}.depex"/>\r
         </targetfiles>\r
 \r
         <sequential>\r
-          <copy file="${MODULE_DIR}\@{FILEPATH}\@{FILENAME}.@{FILEEXT}" \r
-                tofile="${MODULE_DIR}\@{FILEPATH}\@{FILENAME}.@{FILEEXT}.c"/>\r
+          <copy file="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}" \r
+                tofile="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.c"/>\r
 \r
           <cc userdefine="on">\r
             <command type="CC" workdir=".">\r
               <includepath path="${DEST_DIR_DEBUG}" /> \r
               <includepath path="${WORKSPACE_DIR}"/>\r
               <includepath path="${MODULE_DIR}"/>\r
-              <includepath path="${MODULE_DIR}\${ARCH}"/>\r
+              <includepath path="${MODULE_DIR}/${ARCH}"/>\r
               <EXTRA.INC/>\r
               <argument value="${PP_FLAGS}"/>\r
-              <fileset casesensitive="off" file="${MODULE_DIR}\@{FILEPATH}\@{FILENAME}.@{FILEEXT}.c"/>\r
+              <fileset casesensitive="off" file="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.c"/>\r
               <outputFile value="@{FILENAME}.@{FILEEXT}.i"/>\r
             </command>\r
           </cc>\r
     \r
-          <gendepex inputFile="@{FILENAME}.@{FILEEXT}.i" outputFile="${DEST_DIR_OUTPUT}\${BASE_NAME}.@{FILEEXT}.depex"/>\r
+          <gendepex inputFile="@{FILENAME}.@{FILEEXT}.i" outputFile="${DEST_DIR_OUTPUT}/${BASE_NAME}.@{FILEEXT}.depex"/>\r
           <delete file="@{FILENAME}.@{FILEEXT}.i" />\r
-          <delete file="${MODULE_DIR}\@{FILEPATH}\@{FILENAME}.@{FILEEXT}.c" /> \r
+          <delete file="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.c" /> \r
         </sequential>\r
       </OnDependency>\r
     </sequential>\r
@@ -188,8 +188,8 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
      FILENAME="${SOURCE_NAME}"\r
      FILEEXT="c">\r
      <EXTRA.INC>\r
-       <includepath path="${PACKAGE_DIR}\Include"/>\r
-       <includepath path="${PACKAGE_DIR}\Include\${ARCH}"/>\r
+       <includepath path="${PACKAGE_DIR}/Include"/>\r
+       <includepath path="${PACKAGE_DIR}/Include/${ARCH}"/>\r
      </EXTRA.INC>\r
 \r
      <EXTRA.ARG>\r
@@ -210,14 +210,14 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     <element name="EXTRA.ARG" optional="yes"/>\r
 \r
     <sequential>\r
-      <mkdir dir="${DEST_DIR_OUTPUT}\@{FILEPATH}"/>\r
+      <mkdir dir="${DEST_DIR_OUTPUT}/@{FILEPATH}"/>\r
 \r
       <OnDependency>\r
         <sourcefiles>\r
-          <file Name="${MODULE_DIR}\@{FILEPATH}\@{FILENAME}.@{FILEEXT}"/>\r
+          <file Name="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>\r
         </sourcefiles>\r
         <targetfiles>\r
-          <file Name="${DEST_DIR_OUTPUT}\@{FILEPATH}\@{FILENAME}.obj"/>\r
+          <file Name="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>\r
         </targetfiles>\r
 \r
         <sequential>\r
@@ -225,15 +225,15 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
             <command type="ASM">\r
               <includepath path="${WORKSPACE_DIR}"/>\r
               <includepath path="${MODULE_DIR}"/>\r
-              <includepath path="${MODULE_DIR}\${ARCH}"/>\r
+              <includepath path="${MODULE_DIR}/${ARCH}"/>\r
               <EXTRA.INC/>\r
       \r
               <argument value="${ASM_FLAGS}"/>\r
               <EXTRA.ARG/>\r
-              <argument value="/Fl${DEST_DIR_OUTPUT}\@{FILEPATH}\@{FILENAME}.lst"/>\r
-              <OutputFile value="${DEST_DIR_OUTPUT}\@{FILEPATH}\@{FILENAME}.obj"/>\r
+              <argument value="/Fl${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.lst"/>\r
+              <OutputFile value="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>\r
       \r
-              <fileset casesensitive="off" file="${MODULE_DIR}\@{FILEPATH}\@{FILENAME}.@{FILEEXT}"/>\r
+              <fileset casesensitive="off" file="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>\r
             </command>\r
           </cc>\r
         </sequential>\r
@@ -241,7 +241,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
       <!--\r
         for library generation later\r
         -->\r
-      <bl NAME="OBJECTS" VALUE="${OBJECTS} ${DEST_DIR_OUTPUT}\@{FILEPATH}\@{FILENAME}.obj"/>\r
+      <bl NAME="OBJECTS" VALUE="${OBJECTS} ${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>\r
     </sequential>\r
   </macrodef>\r
 \r
@@ -263,7 +263,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
           <file list="${OBJECTS}"/>\r
         </sourcefiles>\r
         <targetfiles>\r
-          <file name="${BIN_DIR}\@{FILENAME}.lib"/>\r
+          <file name="${BIN_DIR}/@{FILENAME}.lib"/>\r
         </targetfiles>\r
 \r
         <sequential>\r
@@ -273,8 +273,8 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
               <argument value="${LIB_FLAGS}"/>\r
               <!--<argument value="${OBJECTS}"/>-->\r
               <FileList dir="" files="${OBJECTS}"/>\r
-              <!-- <argument value="/out:${BIN_DIR}\@{FILENAME}.lib"/> -->\r
-              <OutputFile value="${BIN_DIR}\@{FILENAME}.lib"/>\r
+              <!-- <argument value="/out:${BIN_DIR}/@{FILENAME}.lib"/> -->\r
+              <OutputFile value="${BIN_DIR}/@{FILENAME}.lib"/>\r
             </command>\r
           </cc>\r
         </sequential>\r
@@ -282,6 +282,64 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     </sequential>\r
   </macrodef>\r
 \r
+  <!--\r
+    GCC Assembly\r
+    -->\r
+  <macrodef name="Build_GCC_Assembly_Code">\r
+    <attribute name="FILEPATH"/>\r
+    <attribute name="FILENAME"/>\r
+    <attribute name="FILEEXT" default="s"/>\r
+\r
+    <element name="EXTRA.INC" optional="yes"/>\r
+    <element name="EXTRA.ARG" optional="yes"/>\r
+\r
+    <sequential>\r
+      <mkdir dir="${DEST_DIR_OUTPUT}/@{FILEPATH}"/>\r
+\r
+      <if>\r
+        <available type="file" file="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>\r
+        <then>\r
+          <makedeps DepsFile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.dep">\r
+            <input file="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>\r
+            <includepath path="${WORKSPACE_DIR}"/>\r
+            <includepath path="${MODULE_DIR}"/>\r
+            <includepath path="${MODULE_DIR}/${ARCH}"/>\r
+            <EXTRA.INC/>\r
+          </makedeps>\r
+        </then>\r
+      </if>\r
+\r
+      <OnDependency>\r
+        <sourcefiles>\r
+          <file listfile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.dep"/>\r
+        </sourcefiles>\r
+        <targetfiles>\r
+          <file name="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>\r
+        </targetfiles>\r
+\r
+        <sequential>\r
+      \r
+          <cc userdefine="on">\r
+            <command type="ASM" includepathDelimiter="-I">\r
+              <EXTRA.INC/>\r
+      \r
+              <argument value="${ASM_FLAGS}"/>\r
+              <EXTRA.ARG/>\r
+              <!-- <argument value="-o ${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/> -->\r
+              <OutputFile value="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>\r
+      \r
+              <fileset casesensitive="off" file="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>\r
+            </command>\r
+          </cc>\r
+        </sequential>\r
+      </OnDependency>\r
+      <!--\r
+        for library generation later\r
+        -->\r
+      <bl NAME="OBJECTS" VALUE="${OBJECTS} ${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>\r
+    </sequential>\r
+  </macrodef>\r
+\r
   <!--\r
     IPF Assembly\r
     -->\r
@@ -294,16 +352,16 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     <element name="EXTRA.ARG" optional="yes"/>\r
 \r
     <sequential>\r
-      <mkdir dir="${DEST_DIR_OUTPUT}\@{FILEPATH}"/>\r
+      <mkdir dir="${DEST_DIR_OUTPUT}/@{FILEPATH}"/>\r
 \r
       <if>\r
-        <available type="file" file="${DEST_DIR_OUTPUT}\@{FILEPATH}\@{FILENAME}.obj"/>\r
+        <available type="file" file="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>\r
         <then>\r
-          <makedeps DepsFile="${DEST_DIR_OUTPUT}\@{FILEPATH}\@{FILENAME}.@{FILEEXT}.dep">\r
-            <input file="${MODULE_DIR}\@{FILEPATH}\@{FILENAME}.@{FILEEXT}"/>\r
+          <makedeps DepsFile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.dep">\r
+            <input file="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>\r
             <includepath path="${WORKSPACE_DIR}"/>\r
             <includepath path="${MODULE_DIR}"/>\r
-            <includepath path="${MODULE_DIR}\${ARCH}"/>\r
+            <includepath path="${MODULE_DIR}/${ARCH}"/>\r
             <EXTRA.INC/>\r
           </makedeps>\r
         </then>\r
@@ -311,41 +369,41 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 \r
       <OnDependency>\r
         <sourcefiles>\r
-          <file listfile="${DEST_DIR_OUTPUT}\@{FILEPATH}\@{FILENAME}.@{FILEEXT}.dep"/>\r
+          <file listfile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.dep"/>\r
         </sourcefiles>\r
         <targetfiles>\r
-          <file name="${DEST_DIR_OUTPUT}\@{FILEPATH}\@{FILENAME}.obj"/>\r
+          <file name="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>\r
         </targetfiles>\r
 \r
         <sequential>\r
-          <copy file="${MODULE_DIR}\@{FILEPATH}\@{FILENAME}.@{FILEEXT}" \r
-                tofile="${DEST_DIR_DEBUG}\@{FILEPATH}\@{FILENAME}.@{FILEEXT}.c"/>\r
+          <copy file="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}" \r
+                tofile="${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.c"/>\r
           <cc userdefine="on">\r
             <command type="CC" workdir="."> \r
               <includepath path="${WORKSPACE_DIR}"/>\r
               <includepath path="${MODULE_DIR}"/>\r
-              <includepath path="${MODULE_DIR}\${ARCH}"/>\r
+              <includepath path="${MODULE_DIR}/${ARCH}"/>\r
               <EXTRA.INC/>\r
               <argument value="${PP_FLAGS}"/>\r
-              <fileset casesensitive="off" file="${DEST_DIR_DEBUG}\@{FILEPATH}\@{FILENAME}.@{FILEEXT}.c"/>\r
+              <fileset casesensitive="off" file="${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.c"/>\r
             </command>\r
           </cc>\r
           <move file="@{FILENAME}.@{FILEEXT}.i" \r
-                tofile="${DEST_DIR_DEBUG}\@{FILEPATH}\@{FILENAME}.pro"/>\r
+                tofile="${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}.pro"/>\r
       \r
           <cc userdefine="on">\r
             <command type="ASM" includepathDelimiter="-I">\r
               <includepath path="${WORKSPACE_DIR}"/>\r
               <includepath path="${MODULE_DIR}"/>\r
-              <includepath path="${MODULE_DIR}\${ARCH}"/>\r
+              <includepath path="${MODULE_DIR}/${ARCH}"/>\r
               <EXTRA.INC/>\r
       \r
               <argument value="${ASM_FLAGS}"/>\r
               <EXTRA.ARG/>\r
-              <!-- <argument value="-o ${DEST_DIR_OUTPUT}\@{FILEPATH}\@{FILENAME}.obj"/> -->\r
-              <OutputFile value="${DEST_DIR_OUTPUT}\@{FILEPATH}\@{FILENAME}.obj"/>\r
+              <!-- <argument value="-o ${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/> -->\r
+              <OutputFile value="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>\r
       \r
-              <fileset casesensitive="off" file="${DEST_DIR_DEBUG}\@{FILEPATH}\@{FILENAME}.pro"/>\r
+              <fileset casesensitive="off" file="${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}.pro"/>\r
             </command>\r
           </cc>\r
         </sequential>\r
@@ -353,7 +411,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
       <!--\r
         for library generation later\r
         -->\r
-      <bl NAME="OBJECTS" VALUE="${OBJECTS} ${DEST_DIR_OUTPUT}\@{FILEPATH}\@{FILENAME}.obj"/>\r
+      <bl NAME="OBJECTS" VALUE="${OBJECTS} ${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>\r
     </sequential>\r
   </macrodef>\r
 \r
@@ -367,28 +425,28 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     <element name="EXTRA.ARG" optional="yes"/>\r
 \r
     <sequential>\r
-      <mkdir dir="${DEST_DIR_OUTPUT}\@{FILEPATH}"/>\r
+      <mkdir dir="${DEST_DIR_OUTPUT}/@{FILEPATH}"/>\r
   \r
       <cc userdefine="on">\r
         <command type="ASM" includepathDelimiter="-I">\r
           <includepath path="${WORKSPACE_DIR}"/>\r
           <includepath path="${MODULE_DIR}"/>\r
-          <includepath path="${MODULE_DIR}\${ARCH}"/>\r
+          <includepath path="${MODULE_DIR}/${ARCH}"/>\r
           <EXTRA.INC/>\r
   \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
+          <!-- <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
+          <fileset casesensitive="off" file="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>\r
         </command>\r
       </cc>\r
   \r
       <!--\r
         for library generation later\r
         -->\r
-      <bl NAME="OBJECTS" VALUE="${OBJECTS} ${DEST_DIR_OUTPUT}\@{FILEPATH}\@{FILENAME}.obj"/>\r
+      <bl NAME="OBJECTS" VALUE="${OBJECTS} ${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>\r
     </sequential>\r
   </macrodef>\r
   \r
@@ -421,30 +479,30 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     <element name="EXTRA.ARG" optional="yes"/>\r
 \r
     <sequential>\r
-      <mkdir dir="${DEST_DIR_OUTPUT}\@{FILEPATH}"/>\r
+      <mkdir dir="${DEST_DIR_OUTPUT}/@{FILEPATH}"/>\r
 \r
       <OnDependency>\r
         <sourcefiles>\r
-          <file name="${MODULE_DIR}\@{FILEPATH}\@{FILENAME}.@{FILEEXT}"/>\r
+          <file name="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>\r
         </sourcefiles>\r
         <targetfiles>\r
-          <file name="${DEST_DIR_OUTPUT}\@{FILEPATH}\@{FILENAME}.sdb"/>\r
+          <file name="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.sdb"/>\r
         </targetfiles>\r
 \r
         <sequential>\r
           <strgather commandtype="parse" newdatabase="true">\r
-            <database name="${DEST_DIR_OUTPUT}\@{FILEPATH}\@{FILENAME}.sdb"/>\r
+            <database name="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.sdb"/>\r
             <includepath path="${WORKSPACE_DIR}"/>\r
             <includepath path="${MODULE_DIR}"/>\r
-            <includepath path="${MODULE_DIR}\${ARCH}"/>\r
+            <includepath path="${MODULE_DIR}/${ARCH}"/>\r
             <EXTRA.INC/>\r
             <EXTRA.ARG/>\r
-            <inputfile name="${MODULE_DIR}\@{FILEPATH}\@{FILENAME}.@{FILEEXT}"/>\r
+            <inputfile name="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>\r
           </strgather>\r
         </sequential>\r
       </OnDependency>\r
 \r
-      <bl name="SDB_FILES" value="${SDB_FILES}, ${DEST_DIR_OUTPUT}\@{FILEPATH}\@{FILENAME}.sdb"/>\r
+      <bl name="SDB_FILES" value="${SDB_FILES}, ${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.sdb"/>\r
     </sequential>\r
   </macrodef>\r
 \r
@@ -466,11 +524,11 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
           <file list="${SOURCE_FILES}"/>\r
         </sourcefiles>\r
         <targetfiles>\r
-          <file name="${DEST_DIR_OUTPUT}\@{FILEPATH}\@{FILENAME}.sdb"/>\r
+          <file name="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.sdb"/>\r
         </targetfiles>\r
         \r
         <sequential>\r
-          <strgather commandtype="scan" outputdatabase="${DEST_DIR_OUTPUT}\@{FILEPATH}\@{FILENAME}.sdb" verbose="read">\r
+          <strgather commandtype="scan" outputdatabase="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.sdb" verbose="read">\r
             <skipext name=".uni"/>\r
             <skipext name=".h"/>\r
             <database list="${SDB_FILES}"/>\r
@@ -481,30 +539,30 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 \r
       <OnDependency>\r
         <sourcefiles>\r
-          <file name="${DEST_DIR_OUTPUT}\@{FILEPATH}\@{FILENAME}.sdb"/>\r
+          <file name="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.sdb"/>\r
         </sourcefiles>\r
         <targetfiles>\r
-          <file name="${DEST_DIR_DEBUG}\@{FILEPATH}\@{FILENAME}StrDefs.h"/>\r
-          <file name="${DEST_DIR_DEBUG}\@{FILEPATH}\@{FILENAME}Strings.hpk"/>\r
-          <file name="${DEST_DIR_DEBUG}\@{FILEPATH}\@{FILENAME}Strings.c"/>\r
+          <file name="${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}StrDefs.h"/>\r
+          <file name="${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}Strings.hpk"/>\r
+          <file name="${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}Strings.c"/>\r
         </targetfiles>\r
         \r
         <sequential>\r
           <strgather basename="@{FILENAME}Strings" commandtype="dump"\r
-                     outputdefines="${DEST_DIR_DEBUG}\@{FILEPATH}\@{FILENAME}StrDefs.h"\r
-                     outputhpk="${DEST_DIR_DEBUG}\@{FILEPATH}\@{FILENAME}Strings.hpk"\r
-                     outputstring="${DEST_DIR_DEBUG}\@{FILEPATH}\@{FILENAME}Strings.c">\r
-            <database name="${DEST_DIR_OUTPUT}\@{FILEPATH}\@{FILENAME}.sdb"/>\r
+                     outputdefines="${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}StrDefs.h"\r
+                     outputhpk="${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}Strings.hpk"\r
+                     outputstring="${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}Strings.c">\r
+            <database name="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.sdb"/>\r
           </strgather>\r
         </sequential>\r
       </OnDependency>\r
 \r
       <OnDependency>\r
         <sourcefiles>\r
-          <file name="${DEST_DIR_DEBUG}\@{FILEPATH}\@{FILENAME}Strings.c"/>\r
+          <file name="${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}Strings.c"/>\r
         </sourcefiles>\r
         <targetfiles>\r
-          <file name="${DEST_DIR_OUTPUT}\@{FILEPATH}\@{FILENAME}Strings.obj"/>\r
+          <file name="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}Strings.obj"/>\r
         </targetfiles>\r
         \r
         <sequential>\r
@@ -512,18 +570,18 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
             <command type="CC" workdir="${DEST_DIR_OUTPUT}" includepathDelimiter="-I">\r
               <includepath path="${WORKSPACE_DIR}"/>\r
               <includepath path="${MODULE_DIR}"/>\r
-              <includepath path="${MODULE_DIR}\${ARCH}"/>\r
+              <includepath path="${MODULE_DIR}/${ARCH}"/>\r
 \r
               <argument value="${CC_FLAGS}"/>\r
-              <OutputFile value="${DEST_DIR_OUTPUT}\@{FILEPATH}\@{FILENAME}Strings.obj"/>\r
+              <OutputFile value="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}Strings.obj"/>\r
 \r
-              <fileset casesensitive="off" file="${DEST_DIR_DEBUG}\@{FILEPATH}\@{FILENAME}Strings.c"/>\r
+              <fileset casesensitive="off" file="${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}Strings.c"/>\r
             </command>\r
           </cc>\r
         </sequential>\r
       </OnDependency>\r
 \r
-      <bl name="OBJECTS" value="${OBJECTS} ${DEST_DIR_OUTPUT}\@{FILEPATH}\@{FILENAME}Strings.obj"/>\r
+      <bl name="OBJECTS" value="${OBJECTS} ${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}Strings.obj"/>\r
     </sequential>\r
   </macrodef>\r
 \r
@@ -542,14 +600,14 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
       <mkdir dir="${DEST_DIR_DEBUG}/@{FILEPATH}"/>\r
 \r
       <if>\r
-        <available type="file" file="${DEST_DIR_OUTPUT}\@{FILEPATH}\@{FILENAME}.obj"/>\r
+        <available type="file" file="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>\r
         <then>\r
-          <makedeps DepsFile="${DEST_DIR_OUTPUT}\@{FILEPATH}\@{FILENAME}.@{FILEEXT}.dep">\r
-            <input file="${MODULE_DIR}\@{FILEPATH}\@{FILENAME}.@{FILEEXT}"/>\r
-            <!-- <input file="${DEST_DIR_DEBUG}\AutoGen.h"/> -->\r
+          <makedeps DepsFile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.dep">\r
+            <input file="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>\r
+            <!-- <input file="${DEST_DIR_DEBUG}/AutoGen.h"/> -->\r
             <includepath path="${WORKSPACE_DIR}"/>\r
             <includepath path="${MODULE_DIR}"/>\r
-            <includepath path="${MODULE_DIR}\${ARCH}"/>\r
+            <includepath path="${MODULE_DIR}/${ARCH}"/>\r
             <EXTRA.INC/>\r
           </makedeps>\r
         </then>\r
@@ -557,17 +615,17 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 \r
       <OnDependency>\r
         <sourcefiles>\r
-          <file listfile="${DEST_DIR_OUTPUT}\@{FILEPATH}\@{FILENAME}.@{FILEEXT}.dep"/>\r
+          <file listfile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}.dep"/>\r
         </sourcefiles>\r
         <targetfiles>\r
-          <file name="${DEST_DIR_OUTPUT}\@{FILEPATH}\@{FILENAME}.obj"/>\r
+          <file name="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>\r
         </targetfiles>\r
 \r
         <sequential>\r
-          <vfrcompile createIfrBinFile="on" createListFile="on" outPutDir="${DEST_DIR_DEBUG}\@{FILEPATH}" vfrFile="${MODULE_DIR}\@{FILEPATH}\@{FILENAME}.@{FILEEXT}">\r
+          <vfrcompile createIfrBinFile="on" createListFile="on" outPutDir="${DEST_DIR_DEBUG}/@{FILEPATH}" vfrFile="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}">\r
             <includepath path="${WORKSPACE_DIR}"/>\r
             <includepath path="${MODULE_DIR}"/>\r
-            <includepath path="${MODULE_DIR}\${ARCH}"/>\r
+            <includepath path="${MODULE_DIR}/${ARCH}"/>\r
             <EXTRA.INC/>\r
           </vfrcompile>\r
     \r
@@ -575,19 +633,19 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
             <command type="CC" workdir="${DEST_DIR_OUTPUT}" includepathDelimiter="-I">\r
               <includepath path="${WORKSPACE_DIR}"/>\r
               <includepath path="${MODULE_DIR}"/>\r
-              <includepath path="${MODULE_DIR}\${ARCH}"/>\r
+              <includepath path="${MODULE_DIR}/${ARCH}"/>\r
               <argument value="${CC_FLAGS}"/>\r
-              <OutputFile value="${DEST_DIR_OUTPUT}\@{FILEPATH}\@{FILENAME}.obj"/>\r
+              <OutputFile value="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>\r
               <EXTRA.ARG/>\r
     \r
-              <fileset casesensitive="off" file="${DEST_DIR_DEBUG}\@{FILEPATH}\@{FILENAME}.c"/>\r
+              <fileset casesensitive="off" file="${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}.c"/>\r
             </command>\r
           </cc>\r
     \r
           <delete file="@{FILENAME}.i"/>\r
         </sequential>\r
       </OnDependency>\r
-      <bl name="OBJECTS" value="${OBJECTS} ${DEST_DIR_OUTPUT}\@{FILEPATH}\@{FILENAME}.obj"/>\r
+      <bl name="OBJECTS" value="${OBJECTS} ${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj"/>\r
     </sequential>\r
   </macrodef>\r
 \r
@@ -612,36 +670,20 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
           <file list="${LIBS}"/>\r
         </sourcefiles>\r
         <targetfiles>\r
-          <file name="${DEST_DIR_DEBUG}\@{FILEPATH}\@{FILENAME}.dll"/>\r
+          <file name="${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}.dll"/>\r
         </targetfiles>\r
 \r
         <sequential>\r
-          <!-- <echo>re-generate dll</echo> -->\r
-          <cc userdefine="on">\r
-            <command type="LIB">\r
-              <argument value="${LIB_FLAGS}"/>\r
-              <FileList dir="" files="${OBJECTS}"/>\r
-              <LIB.ARG/>\r
-              <!-- <argument value="/OUT:${DEST_DIR_OUTPUT}\@{FILEPATH}\@{FILENAME}Local.lib"/> -->\r
-              <OutputFile value="${DEST_DIR_OUTPUT}\@{FILEPATH}\@{FILENAME}Local.lib"/>\r
-            </command>\r
-          </cc>\r
-    \r
           <cc userdefine="on">\r
             <command type="LINK">\r
               <argument value="${LINK_FLAGS}"/>\r
-              <!-- <argument value="${DEST_DIR_OUTPUT}\@{FILEPATH}\@{FILENAME}Local.lib"/> -->\r
-              <!--<argument value="${LIBS}"/>-->\r
-              <libSet libs="${LIBS} ${DEST_DIR_OUTPUT}\@{FILEPATH}\@{FILENAME}Local.lib"/>\r
+              <libset libs="${LIBS}"/>\r
               <LINK.ARG/>\r
-              <!-- <argument value="/ENTRY:_ModuleEntryPoint"/> -->\r
               <EntryPoint value="_ModuleEntryPoint"/>\r
-              <!-- <argument value="/MAP:${DEST_DIR_OUTPUT}\@{FILEPATH}\@{FILENAME}.map"/> -->\r
-              <map value="${DEST_DIR_OUTPUT}\@{FILEPATH}\@{FILENAME}.map"/>\r
-              <!-- <argument value="/PDB:${DEST_DIR_DEBUG}\@{FILEPATH}\@{FILENAME}.pdb"/> -->\r
-              <pdb value="${DEST_DIR_DEBUG}\@{FILEPATH}\@{FILENAME}.pdb"/>\r
-              <!-- <argument value="/OUT:${DEST_DIR_DEBUG}\@{FILEPATH}\@{FILENAME}.dll"/> -->\r
-              <OutputFile value="${DEST_DIR_DEBUG}\@{FILEPATH}\@{FILENAME}.dll"/>\r
+              <map value="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.map"/>\r
+              <pdb value="${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}.pdb"/>\r
+              <OutputFile value="${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}.dll"/>\r
+              <FileList dir="" files="${OBJECTS}"/>\r
             </command>\r
           </cc>\r
         </sequential>\r
@@ -660,15 +702,15 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     <sequential>\r
       <OnDependency>\r
         <sourcefiles>\r
-          <file name="${DEST_DIR_DEBUG}\@{FILEPATH}\@{FILENAME}.@{FILEEXT}"/>\r
+          <file name="${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>\r
         </sourcefiles>\r
         <targetfiles>\r
-          <file name="${DEST_DIR_OUTPUT}\@{FILENAME}.efi"/>\r
+          <file name="${DEST_DIR_OUTPUT}/@{FILENAME}.efi"/>\r
         </targetfiles>\r
 \r
         <sequential>\r
-          <fwimage componenttype="${COMPONENT_TYPE}" outImage="${DEST_DIR_OUTPUT}\@{FILENAME}.efi" \r
-                   peImage="${DEST_DIR_DEBUG}\@{FILEPATH}\@{FILENAME}.@{FILEEXT}" time="0"/>\r
+          <fwimage componenttype="${COMPONENT_TYPE}" outImage="${DEST_DIR_OUTPUT}/@{FILENAME}.efi" \r
+                   peImage="${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}" time="0"/>\r
         </sequential>\r
       </OnDependency>\r
     </sequential>\r
@@ -720,16 +762,16 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 \r
       <OnDependency>\r
         <sourcefiles>\r
-          <file name="${DEST_DIR_OUTPUT}\@{FILENAME}.efi"/>\r
+          <file name="${DEST_DIR_OUTPUT}/@{FILENAME}.efi"/>\r
         </sourcefiles>\r
         <targetfiles>\r
-          <file name="${DEST_DIR_OUTPUT}\@{FILENAME}.pe32"/>\r
+          <file name="${DEST_DIR_OUTPUT}/@{FILENAME}.pe32"/>\r
         </targetfiles>\r
 \r
         <sequential>\r
-          <copy file="${DEST_DIR_OUTPUT}\@{FILENAME}.efi" tofile="${BIN_DIR}\@{FILENAME}.efi" />\r
-          <gensection inputfile="${DEST_DIR_OUTPUT}\@{FILENAME}.efi" \r
-                      outputfile="${DEST_DIR_OUTPUT}\@{FILENAME}.pe32" \r
+          <copy file="${DEST_DIR_OUTPUT}/@{FILENAME}.efi" tofile="${BIN_DIR}/@{FILENAME}.efi" />\r
+          <gensection inputfile="${DEST_DIR_OUTPUT}/@{FILENAME}.efi" \r
+                      outputfile="${DEST_DIR_OUTPUT}/@{FILENAME}.pe32" \r
                       sectiontype="EFI_SECTION_PE32"/>\r
     \r
           <POST.PROCESS/>\r
@@ -753,12 +795,12 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     <sequential>\r
       <if>\r
         <not>\r
-          <available type="file" file="${DEST_DIR_OUTPUT}\@{FILEPATH}\@{FILENAME}.ver"/>\r
+          <available type="file" file="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.ver"/>\r
         </not>\r
 \r
         <then>\r
           <PRE.PROCESS/>\r
-          <gensection outputfile="${DEST_DIR_OUTPUT}\@{FILEPATH}\@{FILENAME}.ver" \r
+          <gensection outputfile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.ver" \r
                       versionnum="@{VERSION}"\r
                       sectiontype="EFI_SECTION_VERSION"/>\r
           <POST.PROCESS/>\r
@@ -782,13 +824,13 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     <sequential>\r
       <if>\r
         <not>\r
-          <available type="file" file="${DEST_DIR_OUTPUT}\@{FILEPATH}\@{FILENAME}.ui"/>\r
+          <available type="file" file="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.ui"/>\r
         </not>\r
 \r
         <then>\r
           <PRE.PROCESS/>\r
           <gensection interfacestring="@{UI}"\r
-                      outputfile="${DEST_DIR_OUTPUT}\@{FILEPATH}\@{FILENAME}.ui" \r
+                      outputfile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.ui" \r
                       sectiontype="EFI_SECTION_USER_INTERFACE"/>\r
           <POST.PROCESS/>\r
         </then>\r
@@ -829,18 +871,18 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
       <PRE.PROCESS/>\r
 \r
       <if>\r
-        <available type="file" file="${DEST_DIR_OUTPUT}\@{FILENAME}.@{FILEEXT}.depex"/>\r
+        <available type="file" file="${DEST_DIR_OUTPUT}/@{FILENAME}.@{FILEEXT}.depex"/>\r
         <then>\r
           <OnDependency>\r
             <sourcefiles>\r
-              <file name="${DEST_DIR_OUTPUT}\@{FILENAME}.@{FILEEXT}.depex"/>\r
+              <file name="${DEST_DIR_OUTPUT}/@{FILENAME}.@{FILEEXT}.depex"/>\r
             </sourcefiles>\r
             <targetfiles>\r
-              <file name="${DEST_DIR_OUTPUT}\@{FILENAME}.dpx"/>\r
+              <file name="${DEST_DIR_OUTPUT}/@{FILENAME}.dpx"/>\r
             </targetfiles>\r
             <sequential>\r
-              <gensection inputfile="${DEST_DIR_OUTPUT}\@{FILENAME}.@{FILEEXT}.depex" \r
-                          outputfile="${DEST_DIR_OUTPUT}\@{FILENAME}.dpx" \r
+              <gensection inputfile="${DEST_DIR_OUTPUT}/@{FILENAME}.@{FILEEXT}.depex" \r
+                          outputfile="${DEST_DIR_OUTPUT}/@{FILENAME}.dpx" \r
                           sectiontype="EFI_SECTION_DXE_DEPEX"/>\r
             </sequential>\r
           </OnDependency>\r
@@ -848,10 +890,10 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
         <else>\r
           <if>\r
             <not>\r
-              <available type="file" file="${DEST_DIR_OUTPUT}\@{FILENAME}.dpx"/>\r
+              <available type="file" file="${DEST_DIR_OUTPUT}/@{FILENAME}.dpx"/>\r
             </not>\r
             <then>\r
-              <touch file="${DEST_DIR_OUTPUT}\@{FILENAME}.dpx"/>\r
+              <touch file="${DEST_DIR_OUTPUT}/@{FILENAME}.dpx"/>\r
             </then>\r
           </if>\r
         </else>\r
@@ -874,19 +916,19 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     <sequential>\r
       <PRE.PROCESS/>\r
       <if>\r
-        <available type="file" file="${DEST_DIR_OUTPUT}\@{FILENAME}.@{FILEEXT}.depex"/>\r
+        <available type="file" file="${DEST_DIR_OUTPUT}/@{FILENAME}.@{FILEEXT}.depex"/>\r
         <then>\r
           <OnDependency>\r
             <sourcefiles>\r
-              <file name="${DEST_DIR_OUTPUT}\@{FILENAME}.@{FILEEXT}.depex"/>\r
+              <file name="${DEST_DIR_OUTPUT}/@{FILENAME}.@{FILEEXT}.depex"/>\r
             </sourcefiles>\r
             <targetfiles>\r
-              <file name="${DEST_DIR_OUTPUT}\@{FILENAME}.dpx"/>\r
+              <file name="${DEST_DIR_OUTPUT}/@{FILENAME}.dpx"/>\r
             </targetfiles>\r
 \r
             <sequential>\r
-              <gensection inputfile="${DEST_DIR_OUTPUT}\@{FILENAME}.@{FILEEXT}.depex" \r
-                          outputfile="${DEST_DIR_OUTPUT}\@{FILENAME}.dpx" \r
+              <gensection inputfile="${DEST_DIR_OUTPUT}/@{FILENAME}.@{FILEEXT}.depex" \r
+                          outputfile="${DEST_DIR_OUTPUT}/@{FILENAME}.dpx" \r
                           sectiontype="EFI_SECTION_PEI_DEPEX"/>\r
             </sequential>\r
           </OnDependency>\r
@@ -895,10 +937,10 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
         <else>\r
           <if>\r
             <not>\r
-              <available type="file" file="${DEST_DIR_OUTPUT}\@{FILENAME}.dpx"/>\r
+              <available type="file" file="${DEST_DIR_OUTPUT}/@{FILENAME}.dpx"/>\r
             </not>\r
             <then>\r
-              <touch file="${DEST_DIR_OUTPUT}\@{FILENAME}.dpx"/>\r
+              <touch file="${DEST_DIR_OUTPUT}/@{FILENAME}.dpx"/>\r
             </then>\r
           </if>\r
         </else>\r
@@ -918,8 +960,8 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
       <element name="EXTRA.ARG" optional="yes"/>\r
   \r
       <sequential>\r
-        <gensection inputfile="${BIN_DIR}\@{FILEPATH}\@{FILENAME}.@{FILEEXT}" \r
-                    outputfile="${BIN_DIR}\@{FILENAME}.pe32" \r
+        <gensection inputfile="${BIN_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}" \r
+                    outputfile="${BIN_DIR}/@{FILENAME}.pe32" \r
                     sectiontype="EFI_SECTION_PIC"/>\r
       </sequential>\r
     </macrodef>\r
@@ -936,8 +978,8 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
       <element name="EXTRA.ARG" optional="yes"/>\r
   \r
       <sequential>\r
-        <gensection inputfile="${BIN_DIR}\@{FILENAME}.@{FILEEXT}" \r
-                    outputfile="${BIN_DIR}\@{FILENAME}.pe32" \r
+        <gensection inputfile="${BIN_DIR}/@{FILENAME}.@{FILEEXT}" \r
+                    outputfile="${BIN_DIR}/@{FILENAME}.pe32" \r
                     sectiontype="EFI_SECTION_PE32"/>\r
       </sequential>\r
     </macrodef>\r
@@ -957,16 +999,16 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     <sequential>\r
       <OnDependency>\r
         <sourcefiles>\r
-          <file name="${DEST_DIR_OUTPUT}\@{FILENAME}.@{FILEEXT}"/>\r
+          <file name="${DEST_DIR_OUTPUT}/@{FILENAME}.@{FILEEXT}"/>\r
         </sourcefiles>\r
         <targetfiles>\r
-          <file name="${DEST_DIR_OUTPUT}\@{FILENAME}.sec"/>\r
+          <file name="${DEST_DIR_OUTPUT}/@{FILENAME}.sec"/>\r
         </targetfiles>\r
 \r
         <sequential>\r
           <PRE.PROCESS/>\r
-          <gensection inputfile="${DEST_DIR_OUTPUT}\@{FILENAME}.@{FILEEXT}" \r
-                      outputfile="${DEST_DIR_OUTPUT}\@{FILENAME}.sec" \r
+          <gensection inputfile="${DEST_DIR_OUTPUT}/@{FILENAME}.@{FILEEXT}" \r
+                      outputfile="${DEST_DIR_OUTPUT}/@{FILENAME}.sec" \r
                       sectiontype="EFI_SECTION_RAW"/>\r
           <POST.PROCESS/>\r
         </sequential>\r
@@ -985,8 +1027,8 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
       <element name="EXTRA.ARG" optional="yes"/>\r
   \r
       <sequential>\r
-        <gensection inputfile="${BIN_DIR}\@{FILENAME}.@{FILEEXT}" \r
-                    outputfile="${BIN_DIR}\@{FILENAME}.pe32" \r
+        <gensection inputfile="${BIN_DIR}/@{FILENAME}.@{FILEEXT}" \r
+                    outputfile="${BIN_DIR}/@{FILENAME}.pe32" \r
                     sectiontype="EFI_SECTION_PE32"/>\r
       </sequential>\r
     </macrodef>\r
@@ -1003,8 +1045,8 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
       <element name="EXTRA.ARG" optional="yes"/>\r
   \r
       <sequential>\r
-        <gensection inputfile="${BIN_DIR}\@{FILENAME}.@{FILEEXT}" \r
-                    outputfile="${BIN_DIR}\@{FILENAME}.pe32" \r
+        <gensection inputfile="${BIN_DIR}/@{FILENAME}.@{FILEEXT}" \r
+                    outputfile="${BIN_DIR}/@{FILENAME}.pe32" \r
                     sectiontype="EFI_SECTION_PE32"/>\r
       </sequential>\r
     </macrodef>\r
@@ -1021,8 +1063,8 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
       <element name="EXTRA.ARG" optional="yes"/>\r
   \r
       <sequential>\r
-        <gensection inputfile="${BIN_DIR}\@{FILENAME}.@{FILEEXT}" \r
-                    outputfile="${BIN_DIR}\@{FILENAME}.pe32" \r
+        <gensection inputfile="${BIN_DIR}/@{FILENAME}.@{FILEEXT}" \r
+                    outputfile="${BIN_DIR}/@{FILENAME}.pe32" \r
                     sectiontype="EFI_SECTION_PE32"/>\r
       </sequential>\r
     </macrodef>\r
@@ -1042,20 +1084,20 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     <sequential>\r
       <OnDependency>\r
         <sourcefiles>\r
-          <file name="${FV_DIR}\@{FILEPATH}\@{FILENAME}.@{FILEEXT}"/>\r
+          <file name="${FV_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>\r
         </sourcefiles>\r
         <targetfiles>\r
-          <file name="${DEST_DIR_OUTPUT}\@{FILEPATH}\@{FILENAME}fv.sec"/>\r
+          <file name="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}fv.sec"/>\r
         </targetfiles>\r
 \r
         <sequential>\r
           <PRE.PROCESS/>\r
     \r
-          <copy file="${FV_DIR}\@{FILEPATH}\@{FILENAME}.@{FILEEXT}" \r
-                tofile="${DEST_DIR_OUTPUT}\@{FILEPATH}\@{FILENAME}.@{FILEEXT}" \r
+          <copy file="${FV_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}" \r
+                tofile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}" \r
                 overwrite="true"/>\r
-          <gensection inputfile="${DEST_DIR_OUTPUT}\@{FILEPATH}\@{FILENAME}.@{FILEEXT}" \r
-                      outputfile="${DEST_DIR_OUTPUT}\@{FILEPATH}\@{FILENAME}fv.sec" \r
+          <gensection inputfile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}" \r
+                      outputfile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}fv.sec" \r
                       sectiontype="EFI_SECTION_FIRMWARE_VOLUME_IMAGE"/>\r
     \r
           <POST.PROCESS/>\r
@@ -1076,8 +1118,8 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     <element name="EXTRA.ARG" optional="yes"/>\r
 \r
     <sequential>\r
-      <copy file="${MODULE_DIR}\@{FILEPATH}\@{FILENAME}.@{FILEEXT}" \r
-            tofile="${DEST_DIR_OUTPUT}\@{FILEPATH}\@{FILENAME}.bin"/>\r
+      <copy file="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}" \r
+            tofile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.bin"/>\r
     </sequential>\r
   </macrodef>\r
 \r
@@ -1093,9 +1135,9 @@ 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
+      <mkdir dir="${MODULE_DIR}/@{FILEPATH}" /> \r
+      <copy file="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}" \r
+            tofile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.bin"/>\r
     </sequential>\r
   </macrodef>\r
   <macrodef name="Build_EFI">\r
@@ -1107,9 +1149,9 @@ 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}\${BASE_NAME}.efi"/>\r
+      <mkdir dir="${MODULE_DIR}/@{FILEPATH}" /> \r
+      <copy file="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}" \r
+        tofile="${DEST_DIR_OUTPUT}/${BASE_NAME}.efi"/>\r
     </sequential>\r
   </macrodef>\r
 </project>\r