Catchup of Shabe's Helium7 work.
authorMattD <mattd@symbian.org>
Fri, 05 Mar 2010 19:30:00 +0000
changeset 919 25854ab85b4e
parent 912 5a63512dfd19 (current diff)
parent 914 e4c5389160b3 (diff)
child 920 3f238c627274
Catchup of Shabe's Helium7 work.
common/build.postbuild.xml
--- a/common/build.postbuild.xml	Fri Mar 05 19:09:57 2010 +0000
+++ b/common/build.postbuild.xml	Fri Mar 05 19:30:00 2010 +0000
@@ -395,6 +395,8 @@
         <exec executable="perl" dir="${build.log.dir}" failonerror="false" output="${build.log.dir}/analysis/${build.id}_scan_ant.log">
             <arg value="${sf.common.config.dir}/tools/analysis/scan_antlogs.pl"/>
             <arg value="*ant*"/>
+            <arg value="*stderr*"/>  <!-- helium 7 splits output into stderr logs, so use them also -->
+            <arg value="*sbs_error*"/> 
         </exec>
     </target>
 
--- a/common/build.xml	Fri Mar 05 19:09:57 2010 +0000
+++ b/common/build.xml	Fri Mar 05 19:30:00 2010 +0000
@@ -81,14 +81,24 @@
     <!-- Import test functionality distributed into other file(s) -->
     <import file="${sf.common.config.dir}/build.test.xml"/>
     
-    <!-- helium 7 compatability. needs to be defined -->
+    <!-- helium 7+ compatability. needs to be defined -->
     <if>
-      <or>
-        <equals arg1="${helium.version}" arg2="7.0"/>
-        <equals arg1="${last.major.helium.version}" arg2="7.0"/>
-      </or>
+      <not><or>
+        <equals arg1="${helium.version}" arg2="5.0"/>
+        <equals arg1="${last.major.helium.version}" arg2="5.0"/>
+      </or></not>
       <then>
           <property name="schema.new" value="true"/>
+          <property name="skip.sbs.parser.exception" value="true"/>
+          
+          <!-- Never fail on sbs compile errors -->
+          <hlm:signalInput id="compileSignalInput" failbuild="never">
+            <hlm:notifierListRef refid="defaultFailNotifier" />
+          </hlm:signalInput>
+          
+          <hlm:signalInput id="raptorErrorSignalInput" failbuild="never">
+            <hlm:notifierListRef refid="defaultFailNotifier" />
+          </hlm:signalInput>
       </then>
     </if>
     
--- a/common/tools/summary/brag_script.pl	Fri Mar 05 19:09:57 2010 +0000
+++ b/common/tools/summary/brag_script.pl	Fri Mar 05 19:30:00 2010 +0000
@@ -608,7 +608,7 @@
 close (RAPTORSUMINDEX);
 }
 
-# Copy html files for raptor summarise to bishare
+# Copy html files for raptor summarise to v800020
 # options used for xcopy
 # /E -> Copies directories and subdirectories, including empty ones.
 # /F -> Displays full source and destination file names while copying.
@@ -638,7 +638,7 @@
 print BUILDSUMMARYHTML "<br/>#********** DATA BREAKDOWN starts here **********#<br/><br/>";
 
 
-# Get tree for the directory where the log files are (bishare probably the best place???)
+# Get tree for the directory where the log files are (v800020 probably the best place???)
 # Should be already exported there, but maybe in a zip file)
 # Extract each file with directory, then create a hyperlink to that file to make sure that user can click on the link and open the file!
 
@@ -664,10 +664,10 @@
 
 
 # *****************************************************************************
-# Final step, copy build_summary.html to \\bishare drive
+# Final step, copy build_summary.html to \\v800020 drive
 # *****************************************************************************
 
-# Copy html file to bishare
+# Copy html file to v800020
 my $copy_cmd = "copy $logdir\\build_summary.html \\\\v800020\\Publish\\sf_builds\\$project\\builds\\$codeline\\$buildid";
 print "Exec: $copy_cmd\n";
 system($copy_cmd);
--- a/sf-package/CompilerCompatibility_props.ant.xml	Fri Mar 05 19:09:57 2010 +0000
+++ b/sf-package/CompilerCompatibility_props.ant.xml	Fri Mar 05 19:30:00 2010 +0000
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
 
 <project name="COMPILERCOMPATIBILITY-PROPS">
-  <property name="sf.spec.baseline.location" value="\\bishare\releases\PDK_3.0.f"/>
+  <property name="sf.spec.baseline.location" value="\\v800020\releases\PDK_3.0.f"/>
 </project>
 
--- a/sf-package/package_props.ant.xml	Fri Mar 05 19:09:57 2010 +0000
+++ b/sf-package/package_props.ant.xml	Fri Mar 05 19:30:00 2010 +0000
@@ -8,7 +8,7 @@
 	
   <property name="sf.spec.baseline.enable" value="true"/>
   <property name="sf.spec.baseline.select" value="location"/>
-  <property name="sf.spec.baseline.location" value="\\bishare\Releases\PDK_2.0.e"/>
+  <property name="sf.spec.baseline.location" value="\\v800020\Releases\PDK_2.0.e"/>
   <property name="sf.spec.baseline.getenv_options" value="-i emu -i rnd -i tools -i info"/>
   
   <property name="sf.spec.toolsbaseline.enable" value="false"/>
--- a/sf-package/symbian2_props.ant.xml	Fri Mar 05 19:09:57 2010 +0000
+++ b/sf-package/symbian2_props.ant.xml	Fri Mar 05 19:30:00 2010 +0000
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
 
 <project name="SYMBIAN2-PROPS">
-  <property name="sf.spec.baseline.location" value="\\bishare\releases\PDK_2.0.2"/>
+  <property name="sf.spec.baseline.location" value="\\v800020\releases\PDK_2.0.2"/>
 </project>
 
--- a/sf-package/symbian3_props.ant.xml	Fri Mar 05 19:09:57 2010 +0000
+++ b/sf-package/symbian3_props.ant.xml	Fri Mar 05 19:30:00 2010 +0000
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
 
 <project name="SYMBIAN3-PROPS">
-  <property name="sf.spec.baseline.location" value="\\bishare\releases\PDK_3.0.f"/>
+  <property name="sf.spec.baseline.location" value="\\v800020\releases\PDK_3.0.f"/>
 </project>
 
--- a/sf-platform/build.xml	Fri Mar 05 19:09:57 2010 +0000
+++ b/sf-platform/build.xml	Fri Mar 05 19:30:00 2010 +0000
@@ -12,9 +12,21 @@
   <!-- import package references -->
   <import file="${sf.platform.config.dir}/platform_refs.ant.xml"  optional="true"/>
   
-  <!--
-  * Property defaults
-   -->
+    <!-- pre helium 7+ should import compile targets from compile-hlm-5.ant.xml -->
+    <if>
+        <or>
+          <equals arg1="${helium.version}" arg2="5.0"/>
+          <equals arg1="${last.major.helium.version}" arg2="5.0"/>
+        </or>
+        <then>
+            <echo>INFO Importing HLM5 compile targets</echo>
+            <import file="${sf.platform.config.dir}/compile-hlm-5.ant.xml"/>          
+        </then>
+        <else>
+             <echo>INFO Importing HLM7 compile targets</echo>
+             <import file="${sf.platform.config.dir}/compile.ant.xml"/>
+        </else>
+    </if>
 
   <!-- MattD - workaround until generating a model from package definitions works-->
   <target name="sf-build-noprep" depends="sf-platform-bootstrap,sf-compile,sf-postbuild">
@@ -128,7 +140,7 @@
     ==       s60 build will be skipped if sf.spec.s60.skipbuild=true
     ==
     -->
-  <target name="sf-compile">
+    <target name="sf-compile">
     <stopwatch name="sf-compile"/>
 
     <!-- TODO clean up to single target once genxml v2.0.0 merge is fixed -->
@@ -163,326 +175,7 @@
     <stopwatch name="sf-compile" action="elapsed"/>
   </target>
 
-  <!--
-    == Name: SF-OS-COMPILE
-    ==
-    == Desc: Compile OS part of build using the spec defined in:
-    ==
-    ==         - job_props.ant.xml
-    ==         - job_refs.ant.xml
-    ==
-    -->
-  <target name="sf-os-compile" depends="sf-compile-options">
-
-    <!-- generate baseline dir list to allow delta creation -->
-    <if><isset property="sf.os.compile.fast"/>
-      <then>
-        <echo message="INFO [FAST COMPILE] Skipping baseline dir list generation"/>
-      </then>
-      <else>
-        <antcall target="sf-list-dir" inheritAll="false">
-          <param name="sf.list.name" value="baseline"/>
-        </antcall>
-      </else>
-    </if>
-    
-    <!-- OS clean main build -->
-    <if><istrue value="${sf.spec.baseline.clean}"/>
-      <then>
-        <hlm:argSet id="sbs.main.clean.sbs.var">
-          <hlm:arg name="config" value="${sf.spec.sbs.config}" />
-          <hlm:arg name="enable-filter" value="${sf.spec.logs.raptorfilter.enable}" />
-          <hlm:arg name="command" value="CLEAN --check" />
-        </hlm:argSet>
-        <antcall target="compile-main" inheritAll="false" inheritRefs="true">
-          <param name="build.system" value="${sf.spec.build.system}" />
-          <param name="compile.sysdef.dtd.stub" value="${sf.spec.os.sysdef.dtd}" />
-          <param name="sysdef.configurations.list" value="${sf.spec.os.sysdef.clean.configurations.list}" />
-          <param name="sf.spec.sysdef.version" value ="${sf.spec.os.sysdef.version}"/>
-          <reference refid="sbs.main.clean.sbs.var" torefid="sbs.var" />
-          <reference refid="sbs.fullbuild.options" torefid="sbs.make.options" />
-          <reference refid="sf.spec.os.system.definition.files" torefid="system.definition.files" />
-        </antcall>
-      </then>
-    </if>
-
-    <if><isset property="sf.os.compile.fast"/>
-      <then>
-        <echo message="INFO [FAST COMPILE] Skipping baseline vs post-clean delta generation"/>
-      </then>
-      <else>
-        <antcall target="sf-list-dir" inheritAll="false">
-          <param name="sf.list.name" value="post-clean"/>
-        </antcall>
-        <!-- what has been cleaned from baseline PDK by sos model -->
-        <antcall target="sf-delta-dir" inheritAll="false">
-          <param name="sf.list_a.name" value="baseline"/>
-          <param name="sf.list_b.name" value="post-clean"/>
-        </antcall>
-      </else>
-    </if>
-    
-    <if><isset property="sf.os.compile.fast"/>
-      <then>
-        <echo message="INFO [FAST COMPILE] Skipping Tools/Tools2 builds"/>
-      </then>
-      <else>
-      
-        <for list="${sf.spec.sbs.tools.config}" delimiter="," param="sf.spec.sbs.tools.splitconfig">
-          <sequential>
-            <echo message="INFO [Iterative tools compile] @{sf.spec.sbs.tools.splitconfig}"/>
-            <propertyregex property="sf.building.tools2" override="true" input="@{sf.spec.sbs.tools.splitconfig}" regexp="^tools2" select="true" defaultValue="false"/>
-
-            <if>
-              <istrue value="${sf.building.tools2}"/>
-              <then>
-                <!-- "tools2" build -->
-                <hlm:argSet id="sbs.tools2.var">
-                  <hlm:arg name="config" value="@{sf.spec.sbs.tools.splitconfig}" />
-                  <hlm:arg name="singlejob" value="false" />
-                  <hlm:arg name="enable-filter" value="${sf.spec.logs.raptorfilter.enable}" />
-                  <hlm:arg name="retry-limit" value="${sf.spec.sbs.retry.limit}" />
-                </hlm:argSet>
-                <antcall target="compile-main" inheritAll="false" inheritRefs="true">
-                  <param name="build.system" value="${sf.spec.build.system}" />
-                  <param name="compile.sysdef.dtd.stub" value="${sf.spec.os.sysdef.dtd}" />
-                  <param name="sysdef.configurations.list" value="${sf.spec.os.sysdef.clean.configurations.list}" />
-                  <param name="sf.spec.sysdef.version" value ="${sf.spec.os.sysdef.version}"/>
-                  <reference refid="sbs.tools2.var" torefid="sbs.var" />
-                  <reference refid="sbs.toolsbuild.options" torefid="sbs.make.options" />
-                  <reference refid="sf.spec.os.system.definition.files" torefid="system.definition.files" />
-                </antcall>
-
-                <antcall target="sf-list-dir" inheritAll="false">
-                  <param name="sf.list.name" value="post-build-tools2"/>
-                </antcall>
-              </then>
-
-              <else>
-                <!-- "tools" build -->
-                <hlm:argSet id="sbs.tools.var">
-                  <hlm:arg name="config" value="@{sf.spec.sbs.tools.splitconfig}" />
-                  <hlm:arg name="singlejob" value="true" />
-                  <hlm:arg name="enable-filter" value="${sf.spec.logs.raptorfilter.enable}" />
-                  <hlm:arg name="retry-limit" value="${sf.spec.sbs.retry.limit}" />
-                </hlm:argSet>
-                <antcall target="compile-main" inheritAll="false" inheritRefs="true">
-                  <param name="build.system" value="${sf.spec.build.system}" />
-                  <param name="compile.sysdef.dtd.stub" value="${sf.spec.os.sysdef.dtd}" />
-                  <param name="sysdef.configurations.list" value="${sf.spec.os.sysdef.clean.configurations.list}" />
-                  <param name="sf.spec.sysdef.version" value ="${sf.spec.os.sysdef.version}"/>
-                  <reference refid="sbs.tools.var" torefid="sbs.var" />
-                  <reference refid="sbs.toolsbuild.options" torefid="sbs.make.options" />
-                  <reference refid="sf.spec.os.system.definition.files" torefid="system.definition.files" />
-                </antcall>
-
-                <antcall target="sf-list-dir" inheritAll="false">
-                  <param name="sf.list.name" value="post-build-tools"/>
-                </antcall>
-              </else>
-	    </if>
-          </sequential>    
-        </for>
-
-      </else>
-    </if>
-
-    <if><istrue value="${sf.os.compile.iterate}"/>
-      <then>
-        <for list="${sf.spec.sbs.config}" delimiter="," param="sf.spec.sbs.splitconfig">
-          <sequential>
-            <echo message="INFO [Iterative compile] @{sf.spec.sbs.splitconfig}"/>
-
-            <hlm:argSet id="sbs.main.iterate.sbs.var">
-              <hlm:arg name="config" value="@{sf.spec.sbs.splitconfig}" />
-              <hlm:arg name="enable-filter" value="${sf.spec.logs.raptorfilter.enable}" />
-              <hlm:arg name="retry-limit" value="${sf.spec.sbs.retry.limit}" />
-            </hlm:argSet>
-            <antcall target="compile-main" inheritAll="false" inheritRefs="true">
-              <param name="build.system" value="${sf.spec.build.system}" />
-              <param name="compile.sysdef.dtd.stub" value="${sf.spec.os.sysdef.dtd}" />
-              <param name="sysdef.configurations.list" value="${sf.spec.os.sysdef.clean.configurations.list}" />
-              <param name="sf.spec.sysdef.version" value ="${sf.spec.os.sysdef.version}"/>
-              <reference refid="sbs.main.iterate.sbs.var" torefid="sbs.var" />
-              <reference refid="sbs.fullbuild.options" torefid="sbs.make.options" />
-              <reference refid="sf.spec.os.system.definition.files" torefid="system.definition.files" />
-            </antcall>
-          </sequential>
-        </for>
-      </then>
-      <else>
-        <!-- OS main build -->
-        <hlm:argSet id="sbs.main.sbs.var">
-          <hlm:arg name="config" value="${sf.spec.sbs.config}" />
-          <hlm:arg name="enable-filter" value="${sf.spec.logs.raptorfilter.enable}" />
-          <hlm:arg name="retry-limit" value="${sf.spec.sbs.retry.limit}" />
-        </hlm:argSet>
-        <antcall target="compile-main" inheritAll="false" inheritRefs="true">
-          <param name="build.system" value="${sf.spec.build.system}" />
-          <param name="compile.sysdef.dtd.stub" value="${sf.spec.os.sysdef.dtd}" />
-          <param name="sysdef.configurations.list" value="${sf.spec.os.sysdef.clean.configurations.list}" />
-          <param name="sf.spec.sysdef.version" value ="${sf.spec.os.sysdef.version}"/>
-          <reference refid="sbs.main.sbs.var" torefid="sbs.var" />
-          <reference refid="sbs.fullbuild.options" torefid="sbs.make.options" />
-          <reference refid="sf.spec.os.system.definition.files" torefid="system.definition.files" />
-        </antcall>
-      </else>
-    </if>
-
-    <if><isset property="sf.os.compile.fast"/>
-      <then>
-        <echo message="INFO [FAST COMPILE] Skipping delta and intersect list generation"/>
-      </then>
-      <else>
-        <antcall target="sf-list-dir" inheritAll="false">
-          <param name="sf.list.name" value="post-build-main"/>
-        </antcall>
-        
-        <!-- what has been built in tools2+tools+main -->
-        <antcall target="sf-delta-dir" inheritAll="false">
-          <param name="sf.list_a.name" value="post-clean"/>
-          <param name="sf.list_b.name" value="post-build-main"/>
-        </antcall>
-        
-        <!-- what has been cleaned and rebuilt -->
-        <antcall target="sf-intersect-dir" inheritAll="false">
-          <param name="sf.list_a.name" value="post-clean_delta"/>       <!-- clean list -->
-          <param name="sf.list_b.name" value="post-build-main_delta"/>  <!-- built list -->
-        </antcall>
-      </else>
-    </if>
-    
-  </target>
-
-  <!--
-    == Name: SF-S60-COMPILE
-    ==
-    == Desc: Compile S60 part of build using the spec defined in:
-    ==
-    ==         - job_props.ant.xml
-    ==         - job_refs.ant.xml
-    ==
-    -->
-  <target name="sf-s60-compile" depends="sf-compile-options">
-
-        <hlm:argSet id="sbs.tools.var">
-          			<hlm:arg name="config" value="${sf.spec.sbs.tools.config}" />
-          			<hlm:arg name="singlejob" value="true" />
-          			<hlm:arg name="enable-filter" value="${sf.spec.logs.raptorfilter.enable}" />
-                                <hlm:arg name="retry-limit" value="${sf.spec.sbs.retry.limit}" />
-    		</hlm:argSet>
-
-			<hlm:argSet id="sbs.tools.clean.var">
-          			<hlm:arg name="config" value="${sf.spec.sbs.tools.config}" />
-          			<hlm:arg name="singlejob" value="true" />
-          			<hlm:arg name="enable-filter" value="${sf.spec.logs.raptorfilter.enable}" />
-    		</hlm:argSet>
-
-    		<hlm:argSet id="sbs.main.sbs.var">
-          			<hlm:arg name="config" value="${sf.spec.sbs.config}" />
-          			<hlm:arg name="enable-filter" value="${sf.spec.logs.raptorfilter.enable}" />
-                                <hlm:arg name="retry-limit" value="${sf.spec.sbs.retry.limit}" />
-    		</hlm:argSet>
-
-			<hlm:argSet id="sbs.main.clean.sbs.var">
-          			<hlm:arg name="config" value="${sf.spec.sbs.config}" />
-          			<hlm:arg name="enable-filter" value="${sf.spec.logs.raptorfilter.enable}" />
-				<hlm:arg name="command" value="CLEAN --check" />
-    		</hlm:argSet>
-			
-          			<hlm:argSet id="sbs.main.what.sbs.var">
-          			<hlm:arg name="config" value="${sf.spec.sbs.config}" />
-          			<hlm:arg name="enable-filter" value="${sf.spec.logs.raptorfilter.enable}" />
-				<hlm:arg name="command" value="WHAT" />
-    		</hlm:argSet>
-
-    		<hlm:sbsMakeOptions engine="gmake" id="sbs.toolsbuild.options" />
-    		<hlm:sbsMakeOptions engine="gmake" id="sbs.fullbuild.options" />
-
-		<antcall target="sf-list-dir" inheritAll="false">
-			<param name="sf.list.name" value="s60-baseline"/>
-		</antcall>
-		
-			<!-- s60 what  -->
-			<!--
-    		<antcall target="compile-main" inheritAll="false" inheritRefs="true">
-          			<param name="build.system" value="${sf.spec.build.system}" />
-          			<param name="sysdef.configurations.list" value="${sf.spec.s60.sysdef.clean.configurations.list}" />
-                    <param name="sf.spec.sysdef.version" value="${sf.spec.s60.sysdef.version}"/>
-          			<reference refid="sbs.main.what.sbs.var" torefid="sbs.var" />
-          			<reference refid="sbs.fullbuild.options" torefid="sbs.make.options" />
-          			<reference refid="sf.spec.s60.system.definition.files" torefid="system.definition.files" />
-    		</antcall>
-			-->
-			<!-- s60 clean main build -->
-			<if><istrue value="${sf.spec.baseline.clean}"/>
-				<then>
-					<antcall target="compile-main" inheritAll="false" inheritRefs="true">
-							<param name="build.system" value="${sf.spec.build.system}" />
-							<param name="sysdef.configurations.list" value="${sf.spec.s60.sysdef.clean.configurations.list}" />
-							<param name="sf.spec.sysdef.version" value="${sf.spec.s60.sysdef.version}"/>
-							<reference refid="sbs.main.clean.sbs.var" torefid="sbs.var" />
-							<reference refid="sbs.fullbuild.options" torefid="sbs.make.options" />
-							<reference refid="sf.spec.s60.system.definition.files" torefid="system.definition.files" />
-					</antcall>
-				</then>
-			</if>
-
-			<antcall target="sf-list-dir" inheritAll="false">
-				<param name="sf.list.name" value="post-s60-clean"/>
-			</antcall>
-			
-			<!-- what has been cleaned from baseline PDK by s60 model -->
-			<antcall target="sf-delta-dir" inheritAll="false">
-				<param name="sf.list_a.name" value="s60-baseline"/>
-				<param name="sf.list_b.name" value="post-s60-clean"/>
-			</antcall>		
-			
-
-            <!-- s60  tools build -->
-    		<antcall target="compile-main" inheritAll="false" inheritRefs="true">
-          			<param name="build.system" value="${sf.spec.build.system}" />
-          			<param name="sysdef.configurations.list" value="${sf.spec.s60.sysdef.clean.configurations.list}" />
-					<param name="sf.spec.sysdef.version" value ="${sf.spec.s60.sysdef.version}"/>
-          			<reference refid="sbs.tools.var" torefid="sbs.var" />
-          			<reference refid="sbs.toolsbuild.options" torefid="sbs.make.options" />
-          			<reference refid="sf.spec.s60.system.definition.files" torefid="system.definition.files" />
-    		</antcall>
-
-			<antcall target="sf-list-dir" inheritAll="false">
-				<param name="sf.list.name" value="post-s60-build-tools"/>
-			</antcall>
-
-    		<!-- s60 main build -->
-    		<antcall target="compile-main" inheritAll="false" inheritRefs="true">
-          			<param name="build.system" value="${sf.spec.build.system}" />
-          			<param name="sysdef.configurations.list" value="${sf.spec.s60.sysdef.clean.configurations.list}" />
-                                <param name="sf.spec.sysdef.version" value="${sf.spec.s60.sysdef.version}"/>
-          			<reference refid="sbs.main.sbs.var" torefid="sbs.var" />
-          			<reference refid="sbs.fullbuild.options" torefid="sbs.make.options" />
-          			<reference refid="sf.spec.s60.system.definition.files" torefid="system.definition.files" />
-    		</antcall>
-			
-			
-			<antcall target="sf-list-dir" inheritAll="false">
-				<param name="sf.list.name" value="post-s60-build-main"/>
-			</antcall>
-
-			<!-- what has been built by tools+2+main -->
-			<antcall target="sf-delta-dir" inheritAll="false">
-				<param name="sf.list_a.name" value="s60-baseline"/>
-				<param name="sf.list_b.name" value="post-s60-build-main"/>
-			</antcall>		
-			
-			<!-- what has been cleaned and rebuilt -->
-			<antcall target="sf-intersect-dir" inheritAll="false">
-				<param name="sf.list_a.name" value="post-s60-clean_delta"/>       <!-- clean list -->
-				<param name="sf.list_b.name" value="post-s60-build-main_delta"/>  <!-- built list -->
-			</antcall>
-		
-	</target>
-
-	<target name="sf-s60-create-cenrep">
+    <target name="sf-s60-create-cenrep">
     <echo message="INFO Generating CenRep"/>
     <echo message="Move 'sf.spec.s60.cenrep.export.location' out of the build..."/>
     <property name="sf.spec.s60.cenrep.export.location.1" value="/epoc32/rom/config/confml_data/s60"/>
@@ -518,13 +211,13 @@
     
     <target name="sf-s60-cone-cenrep">
         <!-- TODO: Make this better, as multiple exec calls are a bit clunky -->
-        <if><available file="${helium.dir}/../ConE/" type="dir"/>
+        <if><available file="${env.PDT_HOME}/ConE/" type="dir"/>
         <then>
         <echo message="INFO Generating ConE CenRep"/>
 
             <exec executable="cmd" dir="${build.drive}/epoc32/rom/config" failonerror="false" output="${build.log.dir}/${build.id}_cenrep.log">
               <arg value="/c"/>
-              <arg value="cone"/>
+              <arg value="${env.PDT_HOME}/ConE/cone.cmd"/>
               <arg value="generate"/>
               <arg value="-c"/>
               <arg value="convert.confml"/>
@@ -534,7 +227,7 @@
 
             <exec executable="cmd" dir="${build.drive}/epoc32/tools" failonerror="false" append="true" output="${build.log.dir}/${build.id}_cenrep.log">
               <arg value="/c"/>
-              <arg value="cone"/>
+              <arg value="${env.PDT_HOME}/ConE/cone.cmd"/>
               <arg value="generate"/>
               <arg value="-p"/>
               <arg value="\epoc32\rom\config"/>
@@ -548,7 +241,7 @@
             
             <exec executable="cmd" dir="${build.drive}/epoc32/tools" failonerror="false" append="true" output="${build.log.dir}/${build.id}_cenrep.log">
               <arg value="/c"/>
-              <arg value="cone"/>
+              <arg value="${env.PDT_HOME}/ConE/cone.cmd"/>
               <arg value="generate"/>
               <arg value="-p"/>
               <arg value="\epoc32\rom\config"/>
@@ -562,7 +255,7 @@
 
             <exec executable="cmd" dir="${build.drive}/epoc32/tools" failonerror="false" append="true" output="${build.log.dir}/${build.id}_cenrep.log">
               <arg value="/c"/>
-              <arg value="cone"/>
+              <arg value="${env.PDT_HOME}/ConE/cone.cmd"/>
               <arg value="generate"/>
               <arg value="-p"/>
               <arg value="\epoc32\rom\config"/>
@@ -576,7 +269,7 @@
             
             <exec executable="cmd" dir="${build.drive}/epoc32/tools" failonerror="false" append="true" output="${build.log.dir}/${build.id}_cenrep.log">
               <arg value="/c"/>
-              <arg value="cone"/>
+              <arg value="${env.PDT_HOME}/ConE/cone.cmd"/>
               <arg value="generate"/>
               <arg value="-p"/>
               <arg value="\epoc32\rom\config"/>
@@ -590,7 +283,7 @@
             
             <exec executable="cmd" dir="${build.drive}/epoc32/tools" failonerror="false" append="true" output="${build.log.dir}/${build.id}_cenrep.log">
               <arg value="/c"/>
-              <arg value="cone"/>
+              <arg value="${env.PDT_HOME}/ConE/cone.cmd"/>
               <arg value="generate"/>
               <arg value="-p"/>
               <arg value="\epoc32\rom\config"/>
@@ -604,7 +297,7 @@
             
             <exec executable="cmd" dir="${build.drive}/epoc32/tools" failonerror="false" append="true" output="${build.log.dir}/${build.id}_cenrep.log">
               <arg value="/c"/>
-              <arg value="cone"/>
+              <arg value="${env.PDT_HOME}/ConE/cone.cmd"/>
               <arg value="generate"/>
               <arg value="-p"/>
               <arg value="\epoc32\rom\config"/>
@@ -618,7 +311,7 @@
         
         </then>
         <else>
-            <echo message="WARNING ConE is required to run this target. ConE not found, please update your PDT."/>
+            <echo message="WARNING ConE is required to run this target. ConE not found in ${env.PDT_HOME}/ConE/, please update your PDT."/>
         </else>
         </if>
     </target>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sf-platform/compile-hlm-5.ant.xml	Fri Mar 05 19:30:00 2010 +0000
@@ -0,0 +1,324 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="SF-COMPILE-HLM-5" xmlns:hlm="http://www.nokia.com/helium">
+  <!--
+    == Name: SF-OS-COMPILE
+    ==
+    == Desc: Compile OS part of build using the spec defined in:
+    ==
+    ==         - job_props.ant.xml
+    ==         - job_refs.ant.xml
+    ==
+    -->
+  <target name="sf-os-compile" depends="sf-compile-options">
+
+    <echo message="INFO Using Helium 5 for sf-os-compile"/>
+    <!-- generate baseline dir list to allow delta creation -->
+    <if><isset property="sf.os.compile.fast"/>
+      <then>
+        <echo message="INFO [FAST COMPILE] Skipping baseline dir list generation"/>
+      </then>
+      <else>
+        <antcall target="sf-list-dir" inheritAll="false">
+          <param name="sf.list.name" value="baseline"/>
+        </antcall>
+      </else>
+    </if>
+    
+    <!-- OS clean main build -->
+    <if><istrue value="${sf.spec.baseline.clean}"/>
+      <then>
+        <hlm:argSet id="sbs.main.clean.sbs.var">
+          <hlm:arg name="config" value="${sf.spec.sbs.config}" />
+          <hlm:arg name="enable-filter" value="${sf.spec.logs.raptorfilter.enable}" />
+          <hlm:arg name="command" value="CLEAN --check" />
+        </hlm:argSet>
+        <antcall target="compile-main" inheritAll="false" inheritRefs="true">
+          <param name="build.system" value="${sf.spec.build.system}" />
+          <param name="compile.sysdef.dtd.stub" value="${sf.spec.os.sysdef.dtd}" />
+          <param name="sysdef.configurations.list" value="${sf.spec.os.sysdef.clean.configurations.list}" />
+          <param name="sf.spec.sysdef.version" value ="${sf.spec.os.sysdef.version}"/>
+          <reference refid="sbs.main.clean.sbs.var" torefid="sbs.var" />
+          <reference refid="sbs.fullbuild.options" torefid="sbs.make.options" />
+          <reference refid="sf.spec.os.system.definition.files" torefid="system.definition.files" />
+        </antcall>
+      </then>
+    </if>
+
+    <if><isset property="sf.os.compile.fast"/>
+      <then>
+        <echo message="INFO [FAST COMPILE] Skipping baseline vs post-clean delta generation"/>
+      </then>
+      <else>
+        <antcall target="sf-list-dir" inheritAll="false">
+          <param name="sf.list.name" value="post-clean"/>
+        </antcall>
+        <!-- what has been cleaned from baseline PDK by sos model -->
+        <antcall target="sf-delta-dir" inheritAll="false">
+          <param name="sf.list_a.name" value="baseline"/>
+          <param name="sf.list_b.name" value="post-clean"/>
+        </antcall>
+      </else>
+    </if>
+    
+    <if><isset property="sf.os.compile.fast"/>
+      <then>
+        <echo message="INFO [FAST COMPILE] Skipping Tools/Tools2 builds"/>
+      </then>
+      <else>
+      
+        <for list="${sf.spec.sbs.tools.config}" delimiter="," param="sf.spec.sbs.tools.splitconfig">
+          <sequential>
+            <echo message="INFO [Iterative tools compile] @{sf.spec.sbs.tools.splitconfig}"/>
+            <propertyregex property="sf.building.tools2" override="true" input="@{sf.spec.sbs.tools.splitconfig}" regexp="^tools2" select="true" defaultValue="false"/>
+
+            <if>
+              <istrue value="${sf.building.tools2}"/>
+              <then>
+                <!-- "tools2" build -->
+                <hlm:argSet id="sbs.tools2.var">
+                  <hlm:arg name="config" value="@{sf.spec.sbs.tools.splitconfig}" />
+                  <hlm:arg name="singlejob" value="false" />
+                  <hlm:arg name="enable-filter" value="${sf.spec.logs.raptorfilter.enable}" />
+                  <hlm:arg name="retry-limit" value="${sf.spec.sbs.retry.limit}" />
+                </hlm:argSet>
+                <antcall target="compile-main" inheritAll="false" inheritRefs="true">
+                  <param name="build.system" value="${sf.spec.build.system}" />
+                  <param name="compile.sysdef.dtd.stub" value="${sf.spec.os.sysdef.dtd}" />
+                  <param name="sysdef.configurations.list" value="${sf.spec.os.sysdef.clean.configurations.list}" />
+                  <param name="sf.spec.sysdef.version" value ="${sf.spec.os.sysdef.version}"/>
+                  <reference refid="sbs.tools2.var" torefid="sbs.var" />
+                  <reference refid="sbs.toolsbuild.options" torefid="sbs.make.options" />
+                  <reference refid="sf.spec.os.system.definition.files" torefid="system.definition.files" />
+                </antcall>
+
+                <antcall target="sf-list-dir" inheritAll="false">
+                  <param name="sf.list.name" value="post-build-tools2"/>
+                </antcall>
+              </then>
+
+              <else>
+                <!-- "tools" build -->
+                <hlm:argSet id="sbs.tools.var">
+                  <hlm:arg name="config" value="@{sf.spec.sbs.tools.splitconfig}" />
+                  <hlm:arg name="singlejob" value="true" />
+                  <hlm:arg name="enable-filter" value="${sf.spec.logs.raptorfilter.enable}" />
+                  <hlm:arg name="retry-limit" value="${sf.spec.sbs.retry.limit}" />
+                </hlm:argSet>
+                <antcall target="compile-main" inheritAll="false" inheritRefs="true">
+                  <param name="build.system" value="${sf.spec.build.system}" />
+                  <param name="compile.sysdef.dtd.stub" value="${sf.spec.os.sysdef.dtd}" />
+                  <param name="sysdef.configurations.list" value="${sf.spec.os.sysdef.clean.configurations.list}" />
+                  <param name="sf.spec.sysdef.version" value ="${sf.spec.os.sysdef.version}"/>
+                  <reference refid="sbs.tools.var" torefid="sbs.var" />
+                  <reference refid="sbs.toolsbuild.options" torefid="sbs.make.options" />
+                  <reference refid="sf.spec.os.system.definition.files" torefid="system.definition.files" />
+                </antcall>
+
+                <antcall target="sf-list-dir" inheritAll="false">
+                  <param name="sf.list.name" value="post-build-tools"/>
+                </antcall>
+              </else>
+	    </if>
+          </sequential>    
+        </for>
+
+      </else>
+    </if>
+
+    <if><istrue value="${sf.os.compile.iterate}"/>
+      <then>
+        <for list="${sf.spec.sbs.config}" delimiter="," param="sf.spec.sbs.splitconfig">
+          <sequential>
+            <echo message="INFO [Iterative compile] @{sf.spec.sbs.splitconfig}"/>
+
+            <hlm:argSet id="sbs.main.iterate.sbs.var">
+              <hlm:arg name="config" value="@{sf.spec.sbs.splitconfig}" />
+              <hlm:arg name="enable-filter" value="${sf.spec.logs.raptorfilter.enable}" />
+              <hlm:arg name="retry-limit" value="${sf.spec.sbs.retry.limit}" />
+            </hlm:argSet>
+            <antcall target="compile-main" inheritAll="false" inheritRefs="true">
+              <param name="build.system" value="${sf.spec.build.system}" />
+              <param name="compile.sysdef.dtd.stub" value="${sf.spec.os.sysdef.dtd}" />
+              <param name="sysdef.configurations.list" value="${sf.spec.os.sysdef.clean.configurations.list}" />
+              <param name="sf.spec.sysdef.version" value ="${sf.spec.os.sysdef.version}"/>
+              <reference refid="sbs.main.iterate.sbs.var" torefid="sbs.var" />
+              <reference refid="sbs.fullbuild.options" torefid="sbs.make.options" />
+              <reference refid="sf.spec.os.system.definition.files" torefid="system.definition.files" />
+            </antcall>
+          </sequential>
+        </for>
+      </then>
+      <else>
+        <!-- OS main build -->
+        <hlm:argSet id="sbs.main.sbs.var">
+          <hlm:arg name="config" value="${sf.spec.sbs.config}" />
+          <hlm:arg name="enable-filter" value="${sf.spec.logs.raptorfilter.enable}" />
+          <hlm:arg name="retry-limit" value="${sf.spec.sbs.retry.limit}" />
+        </hlm:argSet>
+        <antcall target="compile-main" inheritAll="false" inheritRefs="true">
+          <param name="build.system" value="${sf.spec.build.system}" />
+          <param name="compile.sysdef.dtd.stub" value="${sf.spec.os.sysdef.dtd}" />
+          <param name="sysdef.configurations.list" value="${sf.spec.os.sysdef.clean.configurations.list}" />
+          <param name="sf.spec.sysdef.version" value ="${sf.spec.os.sysdef.version}"/>
+          <reference refid="sbs.main.sbs.var" torefid="sbs.var" />
+          <reference refid="sbs.fullbuild.options" torefid="sbs.make.options" />
+          <reference refid="sf.spec.os.system.definition.files" torefid="system.definition.files" />
+        </antcall>
+      </else>
+    </if>
+
+    <if><isset property="sf.os.compile.fast"/>
+      <then>
+        <echo message="INFO [FAST COMPILE] Skipping delta and intersect list generation"/>
+      </then>
+      <else>
+        <antcall target="sf-list-dir" inheritAll="false">
+          <param name="sf.list.name" value="post-build-main"/>
+        </antcall>
+        
+        <!-- what has been built in tools2+tools+main -->
+        <antcall target="sf-delta-dir" inheritAll="false">
+          <param name="sf.list_a.name" value="post-clean"/>
+          <param name="sf.list_b.name" value="post-build-main"/>
+        </antcall>
+        
+        <!-- what has been cleaned and rebuilt -->
+        <antcall target="sf-intersect-dir" inheritAll="false">
+          <param name="sf.list_a.name" value="post-clean_delta"/>       <!-- clean list -->
+          <param name="sf.list_b.name" value="post-build-main_delta"/>  <!-- built list -->
+        </antcall>
+      </else>
+    </if>
+    
+  </target>
+
+  <!--
+    == Name: SF-S60-COMPILE
+    ==
+    == Desc: Compile S60 part of build using the spec defined in:
+    ==
+    ==         - job_props.ant.xml
+    ==         - job_refs.ant.xml
+    ==
+    -->
+  <target name="sf-s60-compile" depends="sf-compile-options">
+
+        <hlm:argSet id="sbs.tools.var">
+          			<hlm:arg name="config" value="${sf.spec.sbs.tools.config}" />
+          			<hlm:arg name="singlejob" value="true" />
+          			<hlm:arg name="enable-filter" value="${sf.spec.logs.raptorfilter.enable}" />
+                                <hlm:arg name="retry-limit" value="${sf.spec.sbs.retry.limit}" />
+    		</hlm:argSet>
+
+			<hlm:argSet id="sbs.tools.clean.var">
+          			<hlm:arg name="config" value="${sf.spec.sbs.tools.config}" />
+          			<hlm:arg name="singlejob" value="true" />
+          			<hlm:arg name="enable-filter" value="${sf.spec.logs.raptorfilter.enable}" />
+    		</hlm:argSet>
+
+    		<hlm:argSet id="sbs.main.sbs.var">
+          			<hlm:arg name="config" value="${sf.spec.sbs.config}" />
+          			<hlm:arg name="enable-filter" value="${sf.spec.logs.raptorfilter.enable}" />
+                                <hlm:arg name="retry-limit" value="${sf.spec.sbs.retry.limit}" />
+    		</hlm:argSet>
+
+			<hlm:argSet id="sbs.main.clean.sbs.var">
+          			<hlm:arg name="config" value="${sf.spec.sbs.config}" />
+          			<hlm:arg name="enable-filter" value="${sf.spec.logs.raptorfilter.enable}" />
+				<hlm:arg name="command" value="CLEAN --check" />
+    		</hlm:argSet>
+			
+          			<hlm:argSet id="sbs.main.what.sbs.var">
+          			<hlm:arg name="config" value="${sf.spec.sbs.config}" />
+          			<hlm:arg name="enable-filter" value="${sf.spec.logs.raptorfilter.enable}" />
+				<hlm:arg name="command" value="WHAT" />
+    		</hlm:argSet>
+
+    		<hlm:sbsMakeOptions engine="gmake" id="sbs.toolsbuild.options" />
+    		<hlm:sbsMakeOptions engine="gmake" id="sbs.fullbuild.options" />
+
+		<antcall target="sf-list-dir" inheritAll="false">
+			<param name="sf.list.name" value="s60-baseline"/>
+		</antcall>
+		
+			<!-- s60 what  -->
+			<!--
+    		<antcall target="compile-main" inheritAll="false" inheritRefs="true">
+          			<param name="build.system" value="${sf.spec.build.system}" />
+          			<param name="sysdef.configurations.list" value="${sf.spec.s60.sysdef.clean.configurations.list}" />
+                    <param name="sf.spec.sysdef.version" value="${sf.spec.s60.sysdef.version}"/>
+          			<reference refid="sbs.main.what.sbs.var" torefid="sbs.var" />
+          			<reference refid="sbs.fullbuild.options" torefid="sbs.make.options" />
+          			<reference refid="sf.spec.s60.system.definition.files" torefid="system.definition.files" />
+    		</antcall>
+			-->
+			<!-- s60 clean main build -->
+			<if><istrue value="${sf.spec.baseline.clean}"/>
+				<then>
+					<antcall target="compile-main" inheritAll="false" inheritRefs="true">
+							<param name="build.system" value="${sf.spec.build.system}" />
+							<param name="sysdef.configurations.list" value="${sf.spec.s60.sysdef.clean.configurations.list}" />
+							<param name="sf.spec.sysdef.version" value="${sf.spec.s60.sysdef.version}"/>
+							<reference refid="sbs.main.clean.sbs.var" torefid="sbs.var" />
+							<reference refid="sbs.fullbuild.options" torefid="sbs.make.options" />
+							<reference refid="sf.spec.s60.system.definition.files" torefid="system.definition.files" />
+					</antcall>
+				</then>
+			</if>
+
+			<antcall target="sf-list-dir" inheritAll="false">
+				<param name="sf.list.name" value="post-s60-clean"/>
+			</antcall>
+			
+			<!-- what has been cleaned from baseline PDK by s60 model -->
+			<antcall target="sf-delta-dir" inheritAll="false">
+				<param name="sf.list_a.name" value="s60-baseline"/>
+				<param name="sf.list_b.name" value="post-s60-clean"/>
+			</antcall>		
+			
+
+            <!-- s60  tools build -->
+    		<antcall target="compile-main" inheritAll="false" inheritRefs="true">
+          			<param name="build.system" value="${sf.spec.build.system}" />
+          			<param name="sysdef.configurations.list" value="${sf.spec.s60.sysdef.clean.configurations.list}" />
+					<param name="sf.spec.sysdef.version" value ="${sf.spec.s60.sysdef.version}"/>
+          			<reference refid="sbs.tools.var" torefid="sbs.var" />
+          			<reference refid="sbs.toolsbuild.options" torefid="sbs.make.options" />
+          			<reference refid="sf.spec.s60.system.definition.files" torefid="system.definition.files" />
+    		</antcall>
+
+			<antcall target="sf-list-dir" inheritAll="false">
+				<param name="sf.list.name" value="post-s60-build-tools"/>
+			</antcall>
+
+    		<!-- s60 main build -->
+    		<antcall target="compile-main" inheritAll="false" inheritRefs="true">
+          			<param name="build.system" value="${sf.spec.build.system}" />
+          			<param name="sysdef.configurations.list" value="${sf.spec.s60.sysdef.clean.configurations.list}" />
+                                <param name="sf.spec.sysdef.version" value="${sf.spec.s60.sysdef.version}"/>
+          			<reference refid="sbs.main.sbs.var" torefid="sbs.var" />
+          			<reference refid="sbs.fullbuild.options" torefid="sbs.make.options" />
+          			<reference refid="sf.spec.s60.system.definition.files" torefid="system.definition.files" />
+    		</antcall>
+			
+			
+			<antcall target="sf-list-dir" inheritAll="false">
+				<param name="sf.list.name" value="post-s60-build-main"/>
+			</antcall>
+
+			<!-- what has been built by tools+2+main -->
+			<antcall target="sf-delta-dir" inheritAll="false">
+				<param name="sf.list_a.name" value="s60-baseline"/>
+				<param name="sf.list_b.name" value="post-s60-build-main"/>
+			</antcall>		
+			
+			<!-- what has been cleaned and rebuilt -->
+			<antcall target="sf-intersect-dir" inheritAll="false">
+				<param name="sf.list_a.name" value="post-s60-clean_delta"/>       <!-- clean list -->
+				<param name="sf.list_b.name" value="post-s60-build-main_delta"/>  <!-- built list -->
+			</antcall>
+		
+	</target>
+    
+</project>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sf-platform/compile.ant.xml	Fri Mar 05 19:30:00 2010 +0000
@@ -0,0 +1,122 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="SF-COMPILE" xmlns:hlm="http://www.nokia.com/helium">
+
+ <math result="sf.spec.sbs.numberofjobs" operand1="${env.NUMBER_OF_PROCESSORS}" operation="*" operand2="2" datatype="int"/>
+ 
+  <!-- compile specified sysdef file. called from sf-compile target in sf-platform/build.xml -->
+  <target name="sf-os-compile">
+    
+    <antcall target="sf-do-compile" inheritAll="false" inheritRefs="true">
+        <param name="sysdef.configurations.list" value="${sf.spec.os.sysdef.clean.configurations.list}" />
+        <reference refid="sf.spec.os.system.definition.files" torefid="system.definition.files" />
+    </antcall>
+  </target>
+  
+  <!-- compile specified sysdef file. called from sf-compile target in sf-platform/build.xml -->
+  <target name="sf-s60-compile">
+    <antcall target="sf-do-compile" inheritAll="false" inheritRefs="true">
+        <param name="sysdef.configurations.list" value="${sf.spec.s60.sysdef.clean.configurations.list}" />
+        <reference refid="sf.spec.s60.system.definition.files" torefid="system.definition.files" />
+    </antcall>
+  </target>
+  
+  <!-- compile sbs.tools.config and sbs.config. tools built only if its not being unpacked first.
+       note: must be called from sf-os/s60-compile targets, as sys model input needed -->
+  <target name="sf-do-compile">
+    <echo message="INFO Using Helium 7+ for sf-do-compile"/>
+    <propertyregex property="sf.unpack.tools" override="true" input="${sf.spec.baseline.getenv_options}" regexp="-i tools" select="true" defaultValue="false" casesensitive="false"/>
+  
+    <if> <!-- If tools baseline unpack has not been specified, or its not a "fast" build then try to build them -->
+      <or>
+        <isfalse value="${sf.unpack.tools}"/>
+        <isfalse value="${sf.spec.baseline.enable}"/>
+        <isfalse value="${sf.os.compile.fast}"/>
+      </or>
+      <then>
+        <echo message="INFO Building tools, unpack is not specified"/>        
+        
+        <!-- sf.spec.sbs.tools.config param used. do-target-build will decide to build sequentially/together -->
+        <antcall target="sf-do-target-compile" inheritAll="false" inheritRefs="true">
+            <param name="i.sf.spec.sbs.config" value="${sf.spec.sbs.tools.config}" />           
+        </antcall>
+      </then>
+      <else>
+        <echo message="INFO Skipping tools build, tools were unpacked from ${sf.spec.baseline.location}"/>        
+      </else>
+      </if>
+      
+      <!-- sf.spec.sbs.config param used. do-target-build will decide to build sequentially/together -->
+      <antcall target="sf-do-target-compile" inheritAll="false" inheritRefs="true">
+          <param name="i.sf.spec.sbs.config" value="${sf.spec.sbs.config}" />
+      </antcall>
+  </target>
+
+
+  <!-- compile sbs.config list of targets either sequentially or together -->
+  <target name="sf-do-target-compile">
+
+    <if>
+      <istrue value="${sf.os.compile.iterate}"/>
+      <then>
+        <for list="${i.sf.spec.sbs.config}" delimiter="," param="item.sbs.splitconfig">
+        <sequential>
+            <!-- define sbs args, log name etc -->
+            <hlm:sbsinput id="sf.build">
+                <sbsOptions>
+                    <arg line="-c @{item.sbs.splitconfig}"/>
+                    <arg line="-k" />
+                    <arg line="-j ${sf.spec.sbs.numberofjobs}"/>
+                    <arg line="-t ${sf.spec.sbs.retry.limit}"/>
+                    <arg line="${sf.spec.sbs.options}"/>
+                    <arg name="--filters" value="&quot;${sf.spec.sbs.filter.list}&quot;"/>
+                    <arg name="--logfile" value="${compile.log.dir}/${build.id}_@{item.sbs.splitconfig}_${sf.spec.os.sysdef.clean.configurations.list}_compile.log" />
+                    <arg name="--makefile" value="${compile.log.dir}/${build.id}_@{item.sbs.splitconfig}_${sf.spec.os.sysdef.clean.configurations.list}_Makefile" />
+                </sbsOptions>
+            </hlm:sbsinput>
+            
+            <!-- call helium's compile-main target using the sbsInput args defined above -->
+            <echo message="INFO Iterative compile building target: @{item.sbs.splitconfig}"/>
+            <antcall target="compile-main" inheritAll="false" inheritRefs="true">
+              <param name="build.system" value="${sf.spec.build.system}" />
+              <param name="sbs.inputs.list" value="sf.build"/>
+            </antcall> 
+            
+        </sequential>
+        </for>
+      </then>
+      <else>
+           <!-- turn comma separated list into sbs friendly -c list, and _ separated list for friendly log names -->
+           <propertyregex property="i.sf.spec.sbs.config.expanded"         override="true" input="${i.sf.spec.sbs.config}" regexp="(,)" replace=" -c " defaultValue="${i.sf.spec.sbs.config}" global="true"  casesensitive="false"/>
+           <propertyregex property="i.sf.spec.sbs.config.expanded.logname" override="true" input="${i.sf.spec.sbs.config}" regexp="(,)" replace="_"    defaultValue="${i.sf.spec.sbs.config}" global="true"  casesensitive="false"/>
+           <echo message="INFO Target : ${i.sf.spec.sbs.config.expanded}"/>
+           <echo message="INFO Logname: ${i.sf.spec.sbs.config.expanded.logname} + Config: ${sf.spec.os.sysdef.clean.configurations.list}"/>
+           
+           <!-- TODO: Make this use above compile-main call? -->
+           
+           <!-- define sbs args, log name etc -->
+           <hlm:sbsinput id="sf.build">
+                <sbsOptions>
+                    <arg line="-c ${i.sf.spec.sbs.config.expanded}"/>
+                    <arg line="-k" />
+                    <arg line="-j ${sf.spec.sbs.numberofjobs}"/>
+                    <arg line="-t ${sf.spec.sbs.retry.limit}"/>
+                    <arg line="${sf.spec.sbs.options}"/>
+                    <arg name="--filters" value="&quot;${sf.spec.sbs.filter.list}&quot;"/>
+                    <arg name="--logfile" value="${compile.log.dir}/${build.id}_${i.sf.spec.sbs.config.expanded.logname}_${sf.spec.os.sysdef.clean.configurations.list}_compile.log" />
+                    <arg name="--makefile" value="${compile.log.dir}/${build.id}_${i.sf.spec.sbs.config.expanded.logname}_${sf.spec.os.sysdef.clean.configurations.list}_Makefile" />
+                </sbsOptions>
+           </hlm:sbsinput>
+            
+            <!-- call helium's compile-main target using the sbsInput args defined above -->
+            <echo message="INFO Building target(s): ${i.sf.spec.sbs.config.expanded}"/>
+            <antcall target="compile-main" inheritAll="false" inheritRefs="true">
+              <param name="build.system" value="${sf.spec.build.system}" />
+              <param name="sbs.inputs.list" value="sf.build"/>
+            </antcall> 
+           
+      </else>
+    </if>
+  </target>
+  
+</project>
+