common/build.xml
changeset 698 382728cd25d2
parent 681 eeab5a04dc46
child 721 555e9b4085ea
--- a/common/build.xml	Mon Oct 19 13:21:41 2009 +0100
+++ b/common/build.xml	Mon Oct 19 17:55:16 2009 +0100
@@ -568,6 +568,68 @@
         <!-- And copy the XSL so the output can be transformed by a browser -->
         <copy file="${sf.common.config.dir}/tools/brag/brag.xsl" toDir="${build.log.dir}/summary/"/>
     </target>
-    
+       
+
+    <target name="sf-rombuild">
+      <!-- TODO If ANT gets a better way to do conditions based on value then use it instead! -->
+      <property name="sf.rombuild.dir" value="${build.drive}/sf/os/kernelhwsrv/kernel/eka/rombuild"/>
+      
+      <for list="${sf.spec.sbs.config}" delimiter="," param="sf.spec.sbs.config.variant">
+          <sequential>
+          <propertyregex property="udeb" input="@{sf.spec.sbs.config.variant}" regexp="(armv5$|armv5\.|armv5_udeb)" select="\1"/>
+          <propertyregex property="urel" input="@{sf.spec.sbs.config.variant}" regexp="(armv5$|armv5\.|armv5_urel)" select="\1"/>
+          </sequential>
+      </for> 
+      
+      <condition property="sf.spec.sbs.config.expanded" value="udeb">
+      <and><isset property="udeb"/><not><isset property="urel"/></not></and>
+      </condition>
+      
+      <condition property="sf.spec.sbs.config.expanded" value="urel">
+      <and><isset property="urel"/><not><isset property="udeb"/></not></and>
+      </condition>
+      
+      <condition property="sf.spec.sbs.config.expanded" value="udeb,urel">
+      <and><isset property="udeb"/><isset property="urel"/></and>
+      </condition>
+      
+      <if><isset property="sf.spec.sbs.config.expanded"/>
+      <then>
+          <echo message="INFO Found armv5, building ${sf.spec.sbs.config.expanded}"/>      
+          
+          <for list="${sf.spec.referenceroms.list}" delimiter="," param="sf.spec.referenceroms.variant">
+              <sequential>
+              <for list="${sf.spec.sbs.config.expanded}" delimiter="," param="sf.spec.sbs.config.expanded.i">
+                  <sequential>
+                      <echo message="INFO Building textshell ROM variant @{sf.spec.sbs.config.expanded.i} @{sf.spec.referenceroms.variant}"/>
+                      <exec executable="cmd" dir="${sf.rombuild.dir}" failonerror="false" 
+                      output="${build.log.dir}/ROM_@{sf.spec.referenceroms.variant}_@{sf.spec.sbs.config.expanded.i}_out.log" logError="true">
+                          <arg value="/c"/>
+                          <arg value="rom --variant=@{sf.spec.referenceroms.variant} --inst=armv5 --build=@{sf.spec.sbs.config.expanded.i} --type=tshell"/>
+                      </exec>
+                      
+                      <if><available  file="${sf.rombuild.dir}/ROMBUILD.LOG"/>
+                      <then>
+                          <move file="${sf.rombuild.dir}/ROMBUILD.LOG" tofile="${build.log.dir}/ROMBUILD_@{sf.spec.referenceroms.variant}_@{sf.spec.sbs.config.expanded.i}.log"/>
+                      </then>
+                      <else>
+                          <echo message="ERROR Failed to build @{sf.spec.sbs.config.expanded.i} ROM for @{sf.spec.referenceroms.variant} variant"/>
+                      </else>
+                      </if>
+                  </sequential>
+             </for>
+             </sequential>
+          </for>
+          
+          <move todir="${build.drive}/epoc32/rom/"  verbose="true" failonerror="false">
+            <fileset dir="${sf.rombuild.dir}">
+              <include name="**/*.IMG"/>
+            </fileset>
+          </move>
+      </then>
+      <else><echo message="INFO ROM Build requested but no valid build variants defined by sf.spec.sbs.config. Skipping."/></else>
+      </if>
+    </target>
+
 </project>