sf-platform/build.xml
changeset 192 d5964b46ccaf
parent 111 5b0bc2f89660
child 207 6d9dd19b6949
--- a/sf-platform/build.xml	Wed May 20 14:26:55 2009 +0100
+++ b/sf-platform/build.xml	Fri May 29 17:20:47 2009 +0100
@@ -17,21 +17,37 @@
   <!-- workaround until GenXML can merge v2.0.0 fragments -->
   <target name="create-canonical-sysdef-file">
 
-       <if>
-          <!-- TODO use scripting to match this -->
-          <equals arg1="${sf.spec.sysdef.version}" arg2="1.4.0" />
-          <then>
-            <echo message="Using System Definition v1.4.0 "/>
-            <runtarget target="compile.create-canonical-sysdef-file"/>
-          </then>
-          <else>
-            <runtarget target="preprocess-sysdef-files"/>
-            <echo message="Exporting preprocessed System Definition"/>
+    <runtarget target="preprocess-sysdef-files"/>
+    <echo message="Exporting preprocessed System Definition"/>
+    <if><istrue value="${sf.spec.splitbuild}"/>
+       <then>
+       <if><istrue value="${sf.spec.os.skipbuild}" />
+            <then><echo message="Skipping OS sysdef creation"/></then>
+       <else>
+            <!-- TODO use better method to export or wait for GenXML fix?-->
+            <copy file="${build.output.dir}\build\input\0000000000000001_system_model_os.xml"
+            tofile="${canonical.sysdef.file}" failonerror="false" verbose="true"/>
+       </else>
+       </if>
 
+       <if><istrue value="${sf.spec.s60.skipbuild}" />
+            <then><echo message="Skipping S60 sysdef creation"/></then>
+       <else>
             <!-- TODO use better method to export or wait for GenXML fix?-->
-            <copy file="${build.output.dir}\build\input\0000000000000001_system_definition.xml"
-                  tofile="${canonical.sysdef.file}" failonerror="true" verbose="true"/>
-          </else>
+            <copy file="${build.output.dir}\build\input\0000000000000001_system_model_s60.xml"
+            tofile="${canonical.sysdef.file}" failonerror="false" verbose="true"/>
+	   </else>
+	   </if>
+	   </then>
+	
+	<else>
+	    <!-- TODO use better method to export or wait for GenXML fix?-->
+        <copy file="${build.output.dir}\build\input\*_system_model_os.xml"
+        tofile="${canonical.sysdef.file}" failonerror="false" verbose="true"/>
+
+	    <!-- TODO targets for single sysdef build -->
+	    <runtarget target="sf-os-compile"/>
+	</else>
         </if>
 
   </target>
@@ -72,32 +88,6 @@
         </for>
     </target>
 
-    <target name="generate-layers">
-       <echo message="canno-file:${canonical.sysdef.file}"/>
-       <echo message="raptor-filters:raptor_${sysdef.configuration}"/>
-
-	   <!-- split builds currently generate layer sysdef from original -->
-	   <if><istrue value="${sf.spec.splitbuild}"/>
-       <then>
-           <hlm:compileGenxmlFilterMacro xmlns:hlm="http://www.nokia.com/helium" input="${canonical.sysdef.file}" filter="raptor_${sysdef.configuration}" output="${build.output.dir}/build/canonical_system_definition_${sysdef.configuration}_temp.xml"/>
-	   </then>
-	   <else>
-	       <!-- but all we want is a sysdef with the config name appended, so just copy it -->
-           <echo message="INFO: skip genxml and copy sysdef to sysdef+config name"/>
-           <copy file="${canonical.sysdef.file}" tofile="${build.drive}/output/build/canonical_system_definition_${sysdef.configuration}_temp.xml"/>
-       </else>
-    </if>
-
-	<copy file="${build.drive}/output/build/canonical_system_definition_${sysdef.configuration}_temp.xml" tofile="${build.drive}/output/build/canonical_system_definition_${sysdef.configuration}.xml">
-		<filterchain>
-			<linecontainsregexp negate="true">
-			  <regexp pattern="^\s*$"/>
-			</linecontainsregexp>
-		</filterchain>
-	</copy>
-	<delete file="${build.drive}/output/build/canonical_system_definition_${sysdef.configuration}_temp.xml"/>
-	</target>
-
   <!--
     == Name: SF-COMPILE
     ==
@@ -140,29 +130,29 @@
   <target name="sf-os-compile">
 
         <hlm:argSet id="sbs.tools2.var">
-                <hlm:arg name="config" value="tools2_rel" />
+                <hlm:arg name="config" value="tools2_rel.whatlog" />
                 <hlm:arg name="singlejob" value="false" />
                 <hlm:arg name="enable-filter" value="${sf.spec.logs.raptorfilter.enable}" />
         </hlm:argSet>
 
 		<hlm:argSet id="sbs.tools2.clean.var">
-                <hlm:arg name="config" value="tools2_rel" />
+                <hlm:arg name="config" value="tools2_rel.whatlog" />
                 <hlm:arg name="singlejob" value="false" />
                 <hlm:arg name="enable-filter" value="${sf.spec.logs.raptorfilter.enable}" />
-				<hlm:arg name="command" value="CLEAN" />
+		<hlm:arg name="command" value="CLEAN --check" />
         </hlm:argSet>
 
         <hlm:argSet id="sbs.tools.var">
-                <hlm:arg name="config" value="tools_rel" />
+                <hlm:arg name="config" value="tools_rel.whatlog" />
                 <hlm:arg name="singlejob" value="true" />
                 <hlm:arg name="enable-filter" value="${sf.spec.logs.raptorfilter.enable}" />
         </hlm:argSet>
 
 		<hlm:argSet id="sbs.tools.clean.var">
-                <hlm:arg name="config" value="tools_rel" />
+                <hlm:arg name="config" value="tools_rel.whatlog" />
                 <hlm:arg name="singlejob" value="true" />
                 <hlm:arg name="enable-filter" value="${sf.spec.logs.raptorfilter.enable}" />
-				<hlm:arg name="command" value="CLEAN" />
+		<hlm:arg name="command" value="CLEAN --check" />
         </hlm:argSet>
 
         <hlm:argSet id="sbs.main.sbs.var">
@@ -173,13 +163,13 @@
 		<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" />
+		<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:arg name="command" value="WHAT" />
         </hlm:argSet>
 
         <hlm:sbsMakeOptions engine="gmake" id="sbs.toolsbuild.options" />
@@ -202,15 +192,19 @@
         </antcall>
 		
 		<!-- OS clean main build -->
-        <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>
+		<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="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>
 		
 		<antcall target="sf-list-dir" inheritAll="false">
 			<param name="sf.list.name" value="post-clean"/>
@@ -273,6 +267,15 @@
 			<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>
+		
+		<!-- what has been cleaned and not rebuilt -->
+		
   </target>
 
   <!--
@@ -306,13 +309,13 @@
 			<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" />
+				<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:arg name="command" value="WHAT" />
     		</hlm:argSet>
 
     		<hlm:sbsMakeOptions engine="gmake" id="sbs.toolsbuild.options" />
@@ -333,14 +336,18 @@
     		</antcall>
 			
 			<!-- s60 clean 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.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>
+			<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"/>
@@ -371,32 +378,51 @@
     		<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}"/>
+                                <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>
 			
+			<runtarget target="sf-s60-create-cenrep"/>
+			
 			<antcall target="sf-list-dir" inheritAll="false">
 				<param name="sf.list.name" value="post-s60-build-main"/>
 			</antcall>
 
-    		<!-- s60 postbuild bldmelast using ebs -->
-    		<antcall target="compile-main" inheritAll="false">
-          			<param name="build.system" value="ebs" />
-          			<param name="sysdef.configurations.list" value="S60_bldmelast" />
-          			<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-bldmelast"/>
-			</antcall>
-
-			<!-- what has been built by tools+2+main+bldmelast -->
+			<!-- 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-bldmelast"/>
+				<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">
+        <echo message="INFO Generating CenRep"/>
+        <exec executable="${helium.dir}/../ConfigurationTool/cli_build.cmd" dir="${build.drive}" failonerror="false" output="${build.log.dir}/${build.id}_create_cenrep.log">
+		  <arg value="-master_conf"/>
+		  <arg value="s60"/>
+		  <arg value="-impl"/>
+		  <arg value="/epoc32/rom/config/confml_data/s60"/>
+		  <arg value="-confml"/>
+		  <arg value="/epoc32/rom/config/confml_data/s60"/>
+		  <arg value="-ignore_errors"/>
+        </exec>
+		
+		<if><available  file="${build.drive}/cli_build_error.log" />
+		<then>
+            <echo message="INFO CenRep error log found, moving to ${build.log.dir}" />
+    		<move file="${build.drive}/cli_build_error.log" todir="${build.log.dir}" failonerror="false"/>
+		</then>
+		</if>
+		
 	</target>
 
   <!-- import sf-common-config -->