--- 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>