common/build.xml
changeset 365 95e054b2bec1
parent 364 4dc3b5b1577c
parent 361 023e28d6bf31
child 366 cde2244c8ea6
child 368 cb0ec85c881d
equal deleted inserted replaced
364:4dc3b5b1577c 365:95e054b2bec1
     3 
     3 
     4     <property environment="env"/> <!-- make environment variables available via env -->
     4     <property environment="env"/> <!-- make environment variables available via env -->
     5     
     5     
     6     <dirname property="sf.common.config.dir" file="${ant.file.SF-COMMON-CONFIG}"/>
     6     <dirname property="sf.common.config.dir" file="${ant.file.SF-COMMON-CONFIG}"/>
     7     
     7     
     8     <!-- import common properties -->
     8     <!-- Import common properties -->
     9     <import file="${sf.common.config.dir}/common_props.ant.xml" />
     9     <import file="${sf.common.config.dir}/common_props.ant.xml" />
    10     
    10     
    11     <!-- setup Helium internal properties from their equivalent in the project spec -->
    11     <!-- setup Helium internal properties from their equivalent in the project spec -->
    12     <property name="build.name" value="${sf.spec.job.name}"/>
    12     <property name="build.name" value="${sf.spec.job.name}"/>
    13     <property name="core.build.version" value="${sf.spec.job.codeline}"/>
    13     <property name="core.build.version" value="${sf.spec.job.codeline}"/>
    29     <property name="base_release.getenv_options" value="${sf.spec.baseline.getenv_options}"/>
    29     <property name="base_release.getenv_options" value="${sf.spec.baseline.getenv_options}"/>
    30     
    30     
    31     <!-- SF-specific Helium properties not meant to be exposed in the project spec -->
    31     <!-- SF-specific Helium properties not meant to be exposed in the project spec -->
    32     <property name="diamonds.listener.configuration.file" location="${sf.common.config.dir}/diamonds/config.xml.ftl"/>
    32     <property name="diamonds.listener.configuration.file" location="${sf.common.config.dir}/diamonds/config.xml.ftl"/>
    33     
    33     
    34     <!-- import all core HELIUM targets -->
    34     <!-- Import all core HELIUM targets -->
    35     <import file="${helium.dir}/helium.ant.xml" />
    35     <import file="${helium.dir}/helium.ant.xml" />
    36     
    36     
    37     <!-- import common references -->
    37     <!-- Import common references -->
    38     <import file="${sf.common.config.dir}/common_refs.ant.xml" />
    38     <import file="${sf.common.config.dir}/common_refs.ant.xml" />
       
    39              
       
    40     <!-- Import functionality distributed into other file(s) -->
       
    41     <import file="${sf.common.config.dir}/build.postbuild.xml"/>
    39              
    42              
    40     <!-- setup conditional Helium internal properties -->
    43     <!-- setup conditional Helium internal properties -->
    41     <if><istrue value="${sf.spec.sourcesync.usecache}"/>
    44     <if><istrue value="${sf.spec.sourcesync.usecache}"/>
    42         <then>
    45         <then>
    43             <property name="sf.spec.sourcesync.sourcespecdir" value="${sf.common.config.dir}/generated"/>
    46             <property name="sf.spec.sourcesync.sourcespecdir" value="${sf.common.config.dir}/generated"/>
    57      
    60      
    58     
    61     
    59     <target name="sf-prep" depends="prep-drive,init-build-area,sf-generate-source-spec,check-tool-dependencies,create-bom,log-build-env">
    62     <target name="sf-prep" depends="prep-drive,init-build-area,sf-generate-source-spec,check-tool-dependencies,create-bom,log-build-env">
    60         <echo>[SF-PREP]</echo>
    63         <echo>[SF-PREP]</echo>
    61         <tempfile property="prep.dynamic.config" suffix="ant.xml" destdir="${temp.build.dir}"/>
    64         <tempfile property="prep.dynamic.config" suffix="ant.xml" destdir="${temp.build.dir}"/>
       
    65 		<echo message="Checking build Environment"/>
       
    66           <exec executable="perl" dir="${sf.common.config.dir}/tools" failonerror="true">
       
    67             <arg value="CheckBuildEnv.pl"/>
       
    68             <arg value="--xml=BuildEnv.xml"/>
       
    69             <arg value="--dbg=${build.log.dir}/BuildEnvironmentCheck.log"/>
       
    70 			<arg value="--sbs='${sf.spec.sbs.config}'"/>
       
    71 			<arg value="--tools='${sf.spec.sbs.tools.config}'"/>
       
    72 			<arg value="Common"/>
       
    73           </exec>
    62     </target>
    74     </target>
    63         
    75         
    64     <target name="sf-build-all" depends="sf-prebuild,sf-build-noprep,sf-postbuild">
    76     <target name="sf-build-all" depends="sf-prebuild,sf-build-noprep,sf-postbuild">
    65         <echo>[SF-BUILD-ALL]</echo>
    77         <echo>[SF-BUILD-ALL]</echo>
    66     </target>
    78     </target>
   105               <data expandProperties="yes">
   117               <data expandProperties="yes">
   106                     ant: antProperties()
   118                     ant: antProperties()
   107                     data: csv(${sf.spec.sourcesync.sourcespecdir}/${sf.spec.sourcesync.sourcespecfile}, {separator:','})
   119                     data: csv(${sf.spec.sourcesync.sourcespecdir}/${sf.spec.sourcesync.sourcespecfile}, {separator:','})
   108               </data>
   120               </data>
   109         </fmpp>
   121         </fmpp>
   110     </target>
       
   111     
       
   112     <target name="sf-bc-check">
       
   113 
       
   114         <if><isset property="env.PDT_HOME"/>
       
   115         <then>
       
   116             <!-- create BC dir -->
       
   117             <mkdir dir="${build.log.dir}/BC"/>
       
   118 
       
   119             <delete file="${build.log.dir}/BC/bc.config" quiet="true"/>
       
   120             <delete file="${build.log.dir}/BC/BBCResults.xsl" quiet="true"/>
       
   121             <delete file="${build.log.dir}/BC/libraries.txt" quiet="true"/>
       
   122             <delete file="${build.log.dir}/BC/libraries_report.xml" quiet="true"/>
       
   123             <delete file="${build.log.dir}/BC/headers.txt" quiet="true"/>
       
   124             <delete file="${build.log.dir}/BC/headers_report.xml" quiet="true"/>
       
   125 
       
   126             <exec executable="cmd" output="${build.log.dir}/BC/bc.config" append="true">
       
   127                 <arg value="/c"/>
       
   128                 <arg value="echo"/>
       
   129                 <arg value="BASELINE_NAME=${sf.spec.bccheck.baseline.name}"/>
       
   130             </exec>
       
   131             <exec executable="cmd" output="${build.log.dir}/BC/bc.config" append="true">
       
   132                 <arg value="/c"/>
       
   133                 <arg value="echo"/>
       
   134                 <arg value="BASELINE_SDK_DIR=${sf.spec.bccheck.baseline.skd.dir}"/>
       
   135             </exec>
       
   136             <exec executable="cmd" output="${build.log.dir}/BC/bc.config" append="true">
       
   137                 <arg value="/c"/>
       
   138                 <arg value="echo"/>
       
   139                 <arg value="BASELINE_SDK_S60_VERSION=${sf.spec.bccheck.baseline.s60.version}"/>
       
   140             </exec>
       
   141             <exec executable="cmd" output="${build.log.dir}/BC/bc.config" append="true">
       
   142                 <arg value="/c"/>
       
   143                 <arg value="echo"/>
       
   144                 <arg value="CURRENT_NAME=${build.id}"/>
       
   145             </exec>
       
   146             <exec executable="cmd" output="${build.log.dir}/BC/bc.config" append="true">
       
   147                 <arg value="/c"/>
       
   148                 <arg value="echo"/>
       
   149                 <arg value="CURRENT_SDK_DIR=${build.drive}"/>
       
   150             </exec>
       
   151             <exec executable="cmd" output="${build.log.dir}/BC/bc.config" append="true">
       
   152                 <arg value="/c"/>
       
   153                 <arg value="echo"/>
       
   154                 <arg value="CURRENT_SDK_S60_VERSION=${sf.spec.bccheck.current.s60.version}"/>
       
   155             </exec>
       
   156 
       
   157             <copy file="${sf.spec.pdt.root}/fts/compatibilityanalyser/reports/BBCResults.xsl" tofile="${build.log.dir}/BC/BBCResults.xsl" failonerror="false" verbose="true"/>
       
   158 
       
   159             <if><istrue value="${sf.spec.bccheck.enable.la}"/>
       
   160                 <then>
       
   161                     <exec executable="python" dir="${sf.spec.pdt.root}/fts/compatibilityanalyser" output="${build.log.dir}/BC/libraries.txt">
       
   162                         <arg value="CheckBC.py"/>
       
   163                         <arg value="${build.log.dir}/BC/bc.config"/>
       
   164                         <arg value="-la"/>
       
   165                         <arg value="-f"/>
       
   166                         <arg value="${sf.spec.bccheck.reportid}"/>
       
   167                     </exec>
       
   168                     <copy file="${sf.spec.pdt.root}/fts/compatibilityanalyser/reports/Libraries_CompatibilityReport_${sf.spec.bccheck.reportid}.xml" tofile="${build.log.dir}/BC/libraries_report.xml" failonerror="false" verbose="true"/>
       
   169                 </then>
       
   170             </if>
       
   171 
       
   172             <if><istrue value="${sf.spec.bccheck.enable.ha}"/>
       
   173                 <then>
       
   174                     <exec executable="python" dir="${sf.spec.pdt.root}/fts/compatibilityanalyser" output="${build.log.dir}/BC/headers.txt">
       
   175                         <arg value="CheckBC.py"/>
       
   176                         <arg value="${build.log.dir}/BC/bc.config"/>
       
   177                         <arg value="-ha"/>
       
   178                         <arg value="-f"/>
       
   179                         <arg value="${sf.spec.bccheck.reportid}"/>
       
   180                     </exec>
       
   181                     <copy file="${sf.spec.pdt.root}/fts/compatibilityanalyser/reports/Headers_CompatibilityReport_${sf.spec.bccheck.reportid}.xml" tofile="${build.log.dir}/BC/headers_report.xml" failonerror="false" verbose="true"/>
       
   182                 </then>
       
   183             </if>
       
   184 
       
   185             <if><istrue value="${sf.spec.bccheck.enable.dynamic}"/>
       
   186                 <then>
       
   187                     <echo message="INFO Updating bctest package with test info"/>
       
   188                     <exec executable="perl" dir="${sf.common.config.dir}/tools/ats/" failonerror="false" append="true" output="${build.log.dir}/ATS_${build.id}_dynamicbc.log">
       
   189                         <arg value="ats_specialise_test_drop.pl"/>
       
   190                         <arg value="--test-drop-name=bctest-${build.id}"/> 
       
   191                         <arg value="--device-name=GENERIC EMULATOR on ${env.COMPUTERNAME}"/>
       
   192                         <arg value="--src=${sf.spec.test.package.location}\..\bctest\bctest.zip"/>
       
   193                         <arg value="--dest=${sf.spec.test.package.location}\${sf.spec.bccheck.package.name}"/>
       
   194                     </exec>
       
   195                     <!-- Now ready to send to ATS3 -->
       
   196 
       
   197                     <antcall target="sf-send-testpkg" inheritAll="false">
       
   198                         <param name="sf.spec.test.package.name" value="${sf.spec.bccheck.package.name}"/>
       
   199                     </antcall>    
       
   200                 </then>
       
   201             </if>
       
   202         </then>
       
   203         <else>
       
   204             <echo message="WARNING: PDT_HOME not set, I dont know where the BC tools are installed so cannot continue"/>
       
   205         </else>
       
   206         </if>
       
   207     </target>
   122     </target>
   208     
   123     
   209     <target name="generate-layers">
   124     <target name="generate-layers">
   210        <echo message="canno-file:${canonical.sysdef.file}"/>
   125        <echo message="canno-file:${canonical.sysdef.file}"/>
   211        <echo message="raptor-filters:raptor_${sysdef.configuration}"/>
   126        <echo message="raptor-filters:raptor_${sysdef.configuration}"/>
   258             <arg value="/c"/>
   173             <arg value="/c"/>
   259             <arg value="echo"/>
   174             <arg value="echo"/>
   260             <arg value="${sf.job.bom.config.repo},sf-config,${sf.job.bom.config.rev}:${sf.job.bom.config.checksum}"/>
   175             <arg value="${sf.job.bom.config.repo},sf-config,${sf.job.bom.config.rev}:${sf.job.bom.config.checksum}"/>
   261         </exec>
   176         </exec>
   262         <delete file="${build.drive}/output/logs/BOM/project.csv" quiet="true"/>
   177         <delete file="${build.drive}/output/logs/BOM/project.csv" quiet="true"/>
   263         <exec executable="hg" dir="${sf.config.dir}/../build/config" outputproperty="sf.job.bom.project.repo">
   178         <exec executable="hg" dir="${sf.project.location}" outputproperty="sf.job.bom.project.repo">
   264             <arg value="showconfig"/>
   179             <arg value="showconfig"/>
   265             <arg value="paths.default"/>
   180             <arg value="paths.default"/>
   266         </exec>
   181         </exec>
   267         <exec executable="hg" dir="${sf.config.dir}/../build/config" outputproperty="sf.job.bom.project.rev">
   182         <exec executable="hg" dir="${sf.project.location}" outputproperty="sf.job.bom.project.rev">
   268             <arg value="identify"/>
   183             <arg value="identify"/>
   269             <arg value="-n"/>
   184             <arg value="-n"/>
   270         </exec>
   185         </exec>
   271         <exec executable="hg" dir="${sf.config.dir}/../build/config" outputproperty="sf.job.bom.project.checksum">
   186         <exec executable="hg" dir="${sf.project.location}" outputproperty="sf.job.bom.project.checksum">
   272             <arg value="identify"/>
   187             <arg value="identify"/>
   273             <arg value="-i"/>
   188             <arg value="-i"/>
   274         </exec>
   189         </exec>
   275         <echo message="dir ${sf.config.dir}/../build/config : revision ${sf.job.bom.project.rev}:${sf.job.bom.project.checksum}"/>
   190         <echo message="dir ${sf.project.location} : revision ${sf.job.bom.project.rev}:${sf.job.bom.project.checksum}"/>
   276         <exec executable="cmd" output="${build.drive}/output/logs/BOM/project.csv" append="true">
   191         <exec executable="cmd" output="${build.drive}/output/logs/BOM/project.csv" append="true">
   277             <arg value="/c"/>
   192             <arg value="/c"/>
   278             <arg value="echo"/>
   193             <arg value="echo"/>
   279             <arg value="${sf.job.bom.project.repo},build/config,${sf.job.bom.project.rev}:${sf.job.bom.project.checksum}"/>
   194             <arg value="${sf.job.bom.project.repo},build/config,${sf.job.bom.project.rev}:${sf.job.bom.project.checksum}"/>
   280         </exec>
   195         </exec>
   355           ant: antProperties()
   270           ant: antProperties()
   356         </data>
   271         </data>
   357       </fmpp>
   272       </fmpp>
   358     </target>
   273     </target>
   359     
   274     
   360     <target name="sf-postbuild">
       
   361         <echo>[SF-POSTBUILD]</echo>
       
   362         <parallel>                
       
   363         <!-- TAG SOURCE CODE -->
       
   364         <if>
       
   365             <istrue value="${sf.spec.tagafterbuild.enable}" />
       
   366             <then>
       
   367                 <echo message="Apply tag to the source code used in this build"/>
       
   368                 <runtarget target="sf-tag-hg-code"/>
       
   369             </then>
       
   370         </if>
       
   371         
       
   372         <if>
       
   373             <istrue value="${sf.spec.md5.enable}"/>
       
   374             <then>
       
   375                 <echo message="INFO Creating MD5s"/>
       
   376                 <runtarget target="sf-run-evalid"/>
       
   377             </then>
       
   378         </if>
       
   379         <if>
       
   380             <istrue value="${sf.spec.package.bin.enable}"/>
       
   381             <then>
       
   382                 <echo message="INFO Packaging Binaries"/>
       
   383                 <runtarget target="sf-package-binary"/>
       
   384                 <runtarget target="sf-package-tools"/>
       
   385 
       
   386                 <echo message="INFO Validate Zip files"/>
       
   387                 <runtarget target="sf-package-validate"/>
       
   388             </then>
       
   389         </if>
       
   390         </parallel>
       
   391         
       
   392         <if><istrue value="${sf.spec.test.sendpkg.enable}"/>
       
   393             <then>
       
   394                 <runtarget target="sf-build-smoketestpkg"/>
       
   395                 <runtarget target="sf-send-testpkg"/>
       
   396             </then>
       
   397         </if>
       
   398 
       
   399         <!-- run build analysis tools -->
       
   400         <runtarget target="sf-run-analysis"/>
       
   401 
       
   402         <runtarget target="sf-zip-logs"/>
       
   403 
       
   404         <!-- Do BC check -->
       
   405         <if><istrue value="${sf.spec.bccheck.enable}"/>
       
   406             <then>
       
   407                 <runtarget target="sf-bc-check"/>
       
   408             </then>
       
   409         </if>
       
   410 
       
   411         <!-- PUBLISH LOGS/REPORTS -->
       
   412         <if>
       
   413             <istrue value="${sf.spec.publish.enable}" />
       
   414             <then>
       
   415                 <echo message="Publish log files and reports to ${sf.spec.publish.rootdir}"/>
       
   416                 <runtarget target="sf-publish"/>
       
   417             </then>
       
   418         </if>
       
   419     </target>
       
   420 
       
   421     <target name="sf-publish" depends="prep-publish">
       
   422         <copy todir="${publish.dir}" preservelastmodified="true" failonerror="false">
       
   423            <fileset dir="${build.log.dir}"><include name="*.zip"/></fileset>
       
   424         </copy>
       
   425     </target>
       
   426 
       
   427     <target name="sf-getenv-tools">
   275     <target name="sf-getenv-tools">
   428         <antcall target="preparation-getenv" inheritAll="false">
   276         <antcall target="preparation-getenv" inheritAll="false">
   429             <param name="base_release.path"           value="${sf.spec.toolsbaseline.location}"/>
   277             <param name="base_release.path"           value="${sf.spec.toolsbaseline.location}"/>
   430             <param name="base_release.getenv_options" value="${sf.spec.toolsbaseline.getenv_options}"/>
   278             <param name="base_release.getenv_options" value="${sf.spec.toolsbaseline.getenv_options}"/>
   431         </antcall>
   279         </antcall>
   432     </target>
   280     </target>
   433 
   281 
   434     <!-- package all logs into zipfile before publish -->
       
   435     <target name="sf-zip-logs">
       
   436         <if>
       
   437             <istrue value="${sf.spec.logs.zip.enable}"/>
       
   438             <then>
       
   439                 <property name="temp.log.dir" value="${env.TEMP}/${build.id}_output_logs"/>
       
   440                 <echo message="Zip log requested, zipping logs..."/>
       
   441                 <mkdir dir="${temp.log.dir}"/>
       
   442                 <zip destfile="${temp.log.dir}/build_logs.zip" basedir="${build.drive}"> 
       
   443                     <include name="output/logs/**"/>
       
   444                     <exclude name="output/logs/BOM/**"/>
       
   445                     <exclude name="output/logs/deliverables/**"/>
       
   446                     <exclude name="output/logs/releaseables/**"/>
       
   447                 </zip>
       
   448                 <zip destfile="${temp.log.dir}/build_BOM.zip">
       
   449                     <zipfileset dir="${build.drive}/output/logs/BOM" prefix="build_info/logs/BOM"/>
       
   450                     <zipfileset dir="${build.drive}/output/logs/releaseables" prefix="build_info/logs/releaseables"/>
       
   451                 </zip>
       
   452                 <move todir="${build.log.dir}">
       
   453                     <fileset dir="${temp.log.dir}"/>
       
   454                 </move>
       
   455             </then>
       
   456         </if>
       
   457     </target>
       
   458 
       
   459     <!-- generate dir list using passed location and name 
   282     <!-- generate dir list using passed location and name 
   460     if a baseline list is available then generate deltas too -->
   283     if a baseline list is available then generate deltas too -->
   461 
   284 
   462     <target name="sf-list-dir">
   285     <target name="sf-list-dir">
   463         <property name="sf.currentlist.name"   value="${sf.list.name}"/> 
   286         <property name="sf.currentlist.name"   value="${sf.list.name}"/> 
   464         <property name="sf.dir.location" value="${build.drive}/epoc32"/> 
   287         <property name="sf.dir.location" value="${build.drive}/epoc32"/> 
       
   288         <property name="sf.dir.exclude" value="${build.drive}/epoc32/build"/> 
   465     
   289     
   466         <if>
   290         <if>
   467             <istrue value="${sf.spec.dirlist.enable}"/>
   291             <istrue value="${sf.spec.dirlist.enable}"/>
   468             <then>
   292             <then>
   469                 <echo message="Dirlist name: ${sf.currentlist.name} requested for ${sf.dir.location}"/>
   293                 <echo message="Dirlist name: ${sf.currentlist.name} requested for ${sf.dir.location} excluding ${sf.dir.exclude}"/>
   470                 <exec executable="perl" dir="${build.log.dir}/" failonerror="true" output="${build.log.dir}/listdir_${build.id}_${sf.currentlist.name}.log">
   294                 <exec executable="python" dir="${build.log.dir}/" failonerror="true" output="${build.log.dir}/listdir_${build.id}_${sf.currentlist.name}.log">
   471                     <arg value="${sf.common.config.dir}/tools/listdir.pl"/>
   295                     <arg value="${sf.common.config.dir}/tools/listdir.py"/>
   472                     <arg value="${sf.dir.location}"/>
   296                     <arg value="${sf.dir.location}"/>
       
   297                     <arg value="${sf.dir.exclude}"/>
   473                 </exec>
   298                 </exec>
   474             </then>
   299             </then>
   475         </if>
   300         </if>
   476     </target>
   301     </target>
   477     
   302     
   562     
   387     
   563     <target name="sf-get-source" depends="sf-generate-source-spec">
   388     <target name="sf-get-source" depends="sf-generate-source-spec">
   564         <ant antfile="${sf.common.config.dir}/generated/source-spec.ant.xml" />
   389         <ant antfile="${sf.common.config.dir}/generated/source-spec.ant.xml" />
   565     </target>
   390     </target>
   566     
   391     
   567     <target name="sf-tag-hg-code">
       
   568         <property name="sf.tagafterbuild.tag" value="${sf.spec.job.name}_${sf.spec.job.codeline}.${sf.spec.job.number}"/>
       
   569         <fmpp sourceFile="${sf.common.config.dir}/templates/tag-hg-code.ant.xml.ftl"
       
   570               outputFile="${sf.common.config.dir}/generated/tag-hg-code.ant.xml">
       
   571             <data expandProperties="yes">
       
   572                 ant: antProperties()
       
   573                 data: csv(${sf.spec.sourcesync.sourcespecdir}/${sf.spec.sourcesync.sourcespecfile}, {separator:','})
       
   574             </data>
       
   575         </fmpp>
       
   576         <ant antfile="${sf.common.config.dir}/generated/tag-hg-code.ant.xml"/>
       
   577     </target>
       
   578     
       
   579     <target name="sf-diamondize-bom">
   392     <target name="sf-diamondize-bom">
   580         <fmpp sourceFile="${sf.common.config.dir}/templates/build-info.xml.ftl"
   393         <fmpp sourceFile="${sf.common.config.dir}/templates/build-info.xml.ftl"
   581               outputFile="${build.drive}/output/logs/sf-diamondize-bom.xml">
   394               outputFile="${build.drive}/output/logs/sf-diamondize-bom.xml">
   582             <data expandProperties="yes">
   395             <data expandProperties="yes">
   583                 ant: antProperties()
   396                 ant: antProperties()
   632             <param name="zip.config.file" value="${sf.common.config.dir}/generated/zip.cfg.xml.ftl"/>
   445             <param name="zip.config.file" value="${sf.common.config.dir}/generated/zip.cfg.xml.ftl"/>
   633             <param name="zip.target.name" value="src-by-layer" />
   446             <param name="zip.target.name" value="src-by-layer" />
   634         </antcall>
   447         </antcall>
   635     </target>
   448     </target>
   636     
   449     
   637     <target name="sf-package-tools" depends="sf-preprocess-package-config">
       
   638         <echo message="Packaging epoc32 tools - Temporary method"/>
       
   639         <exec executable="7za" dir="${build.drive}" output="${build.log.dir}/zip_${build.id}_tools_epoc32.log">
       
   640             <arg value="a"/>
       
   641             <arg value="-tzip"/>
       
   642             <arg value="-x@${build.log.dir}/rnd_excludefile.txt"/>
       
   643 <!--            <arg value="-x@${build.log.dir}/*_includefile.txt"/> -->
       
   644             <arg value="${build.drive}/output/zips/release/tools_epoc.zip"/> 
       
   645             <arg value="epoc32/tools"/>
       
   646         </exec>
       
   647     </target>
       
   648     
       
   649     <target name="sf-package-binary" depends="sf-preprocess-package-config,sf-package-postbuild-rnd">
       
   650         <!-- Warning: Reverting to using the He zipper will also revert to a single zip for the binaries:
       
   651              would need to update the template and possibly the script that populates it -->
       
   652         <!--antcall target="sf-zip-content">
       
   653             <param name="zip.config.file" value="${sf.common.config.dir}/generated/zip.cfg.xml.ftl"/>
       
   654             <param name="zip.target.name" value="bin" />
       
   655         </antcall-->
       
   656     <parallel>
       
   657             <exec executable="7za" dir="${build.drive}" output="${build.log.dir}/zip_${build.id}_binaries_epoc32.log">
       
   658                 <arg value="a"/>
       
   659                 <arg value="-tzip"/>
       
   660                 <arg value="-x@${build.log.dir}/rnd_excludefile.txt"/>
       
   661                 <arg value="-x!epoc32\tools"/>
       
   662                 <arg value="-x!epoc32\build"/>
       
   663                 <arg value="-x!epoc32\release\armv5"/>
       
   664                 <arg value="-x!epoc32\release\winscw"/>
       
   665                 <arg value="-xr!*.sym"/>
       
   666                 <arg value="${build.drive}/output/zips/release/binaries_epoc.zip"/>
       
   667                 <arg value="epoc32\"/>
       
   668             </exec>
       
   669             
       
   670             <exec executable="7za" dir="${build.drive}" output="${build.log.dir}/zip_${build.id}_binaries_winscw.log">
       
   671                 <arg value="a"/>
       
   672                 <arg value="-tzip"/>
       
   673                 <arg value="-x@${build.log.dir}/rnd_excludefile.txt"/>
       
   674                 <arg value="-xr!*.sym"/>
       
   675                 <arg value="${build.drive}/output/zips/release/binaries_winscw.zip"/>
       
   676                 <arg value="epoc32\release\winscw\"/>
       
   677             </exec>
       
   678             
       
   679             <exec executable="7za" dir="${build.drive}" output="${build.log.dir}/zip_${build.id}_binaries_armv5.log">
       
   680                 <arg value="a"/>
       
   681                 <arg value="-tzip"/>
       
   682                 <arg value="-x@${build.log.dir}/rnd_excludefile.txt"/>
       
   683                 <arg value="-xr!*.sym"/>
       
   684                 <arg value="${build.drive}/output/zips/release/binaries_armv5.zip"/>
       
   685                 <arg value="epoc32\release\armv5\"/>
       
   686             </exec>
       
   687         </parallel>
       
   688     </target>
       
   689 
       
   690     <target name="sf-package-postbuild-rnd" depends="sf-preprocess-package-config">
       
   691 
       
   692         <!-- zip any RnD _includefile.txt files generated during source packaging -->
       
   693         <exec executable="perl" dir="${build.drive}/" failonerror="false" output="${build.log.dir}/zip_postbuild.log">
       
   694             <arg value="${sf.common.config.dir}/tools/zip_includefiles.pl"/>
       
   695         </exec>
       
   696         <!-- cleanup my moving includefiles to logs and zips to zips\release -->
       
   697         <move todir="${build.log.dir}">
       
   698            <fileset dir="${build.drive}"><include name="*_includefile.txt"/></fileset>
       
   699         </move>
       
   700         <move todir="${build.drive}/output/zips/release">
       
   701            <fileset dir="${build.drive}"><include name="bin*.zip"/></fileset>
       
   702         </move>
       
   703         <!-- TODO: merge with release_metadata.xml ? -->
       
   704     </target>
       
   705 
       
   706     <!-- unpack rnd zips if available -->
   450     <!-- unpack rnd zips if available -->
   707     <target name="sf-unpack-rnd">
   451     <target name="sf-unpack-rnd">
   708         <echo message="Unpacking any available RnD binaries"/>
   452         <echo message="Unpacking any available RnD binaries"/>
   709         <exec executable="7za" dir="${build.drive}" output="${build.log.dir}/unzip_${build.id}_binaries_rnd.log">
   453         <exec executable="7za" dir="${build.drive}" output="${build.log.dir}/unzip_${build.id}_binaries_rnd.log">
   710         <arg value="x"/>
   454         <arg value="x"/>
   711         <arg value="-y"/> <!-- Need to unpack in overwrite mode, due to TEF -->
   455         <arg value="-y"/> <!-- Need to unpack in overwrite mode, due to TEF -->
   712         <arg value="${build.drive}/output/zips/bin*.zip"/>
   456         <arg value="${build.drive}/output/zips/bin*.zip"/>
   713         </exec>
   457         </exec>
   714     </target>
   458     </target>
   715     
   459 
   716     <target name ="sf-make-junction">
   460     <target name="sf-find-ATS-worker-root">
   717         <mkdir dir="${sf.spec.test.epocroot}"/>
   461       <exec executable="perl" dir="${sf.common.config.dir}/tools/ats/devices" failonerror="false" outputproperty="sf.spec.test.workerroot">
       
   462         <arg value="-pe"/>
       
   463         <arg value="&quot;m/TEMPDIR=(\S+)/;print $1;s/.*\n//g&quot;"/>
       
   464         <arg value="${env.COMPUTERNAME}\EMULATOR_GENERIC_${env.COMPUTERNAME}.properties" /> 
       
   465       </exec>
       
   466       <echo message="ATS Worker Root = ${sf.spec.test.workerroot}"/> 
       
   467     </target>
       
   468     
       
   469     <target name ="sf-make-junction" depends="sf-find-ATS-worker-root">
       
   470         
       
   471         <mkdir dir="${sf.spec.test.workerroot}/${sf.spec.test.epocroot}"/>
   718 
   472 
   719         <exec executable="perl" dir="${sf.common.config.dir}/tools/ats" failonerror="false" output="${build.log.dir}/ATS_${build.id}_make_junction.log">
   473         <exec executable="perl" dir="${sf.common.config.dir}/tools/ats" failonerror="false" output="${build.log.dir}/ATS_${build.id}_make_junction.log">
   720         <arg value="make_junction.pl"/>
   474         <arg value="make_junction.pl"/>
   721         <arg value="--link=${sf.spec.test.epocroot}/epoc32"/>
   475         <arg value="--link=${sf.spec.test.workerroot}/${sf.spec.test.epocroot}/epoc32"/>
   722         <arg value="--target=${build.drive}/epoc32"/>
   476         <arg value="--target=${build.drive}/epoc32"/>
   723         <arg value="--force"/>
   477         <arg value="--force"/>
   724       </exec>
   478       </exec>
   725     </target>
   479     </target>
   726 
   480 
   727     <target name ="sf-delete-junction">
   481     <target name ="sf-delete-junction" depends="sf-find-ATS-worker-root">
   728         <exec executable="junction.exe" dir="${sf.spec.test.epocroot}" failonerror="false" output="${build.log.dir}/ATS_${build.id}_delete_junction.log">
   482         <exec executable="junction.exe" dir="${sf.spec.test.workerroot}/${sf.spec.test.epocroot}" failonerror="false" output="${build.log.dir}/ATS_${build.id}_delete_junction.log">
   729         <arg value="-d"/>
   483         <arg value="-d"/>
   730         <arg value="epoc32"/>
   484         <arg value="epoc32"/>
   731       </exec>
   485       </exec>
   732     </target>  
   486     </target>  
   733     
   487         
   734     <target name="sf-send-testpkg" depends="sf-make-junction">
       
   735         <mkdir dir="${sf.spec.test.package.droppath}"/>
       
   736         <echo message="Sending test package ${sf.spec.test.package.name} to ${sf.spec.test.host.name} path ${sf.spec.test.host.droppath}"/>
       
   737         <exec executable="perl" dir="${sf.common.config.dir}/tools/ats" failonerror="false" output="${build.log.dir}/ATS_${build.id}_testdrop.log">
       
   738             <arg value="ats3_testdrop.pl"/>
       
   739             <arg value="--host=${sf.spec.test.host.name}"/>
       
   740             <arg value="--username=${sf.spec.test.host.username}"/>
       
   741             <arg value="--password=${sf.spec.test.host.password}"/>
       
   742             <arg value="--local-test-pkg=${sf.spec.test.package.location}\${sf.spec.test.package.name}"/>
       
   743             <arg value="--local-drop-path=${sf.spec.test.package.droppath}"/>
       
   744             <arg value="--host-drop-path=${sf.spec.test.host.droppath}"/>
       
   745         </exec>
       
   746     </target>
       
   747 
       
   748     <target name="sf-build-smoketestpkg" depends="sf-getenv-tools">
       
   749         <delete dir  ="${build.drive}/smoketest"/>
       
   750         <delete file ="${build.log.dir}/ATS_${build.id}_smoketest.log"/>
       
   751         
       
   752         <echo message="INFO Copy smoketest source to EPOCROOT"/>
       
   753         
       
   754         <copy todir="${build.drive}/smoketest">
       
   755             <fileset dir="${sf.common.config.dir}/tools/ats/smoketest"/>
       
   756         </copy>
       
   757         
       
   758         <echo message="INFO Building smoketest"/>
       
   759         <exec executable="cmd" dir="${build.drive}/smoketest/group" failonerror="false" append="true" output="${build.log.dir}/ATS_${build.id}_smoketest.log">
       
   760             <arg value="/c"/>
       
   761             <arg value="sbs -b bld.inf -c winscw_udeb.test"/>
       
   762         </exec>
       
   763 
       
   764         <echo message="INFO Creating smoketest testpackage"/>
       
   765         <exec executable="perl" dir="${build.drive}/smoketest/group" failonerror="false" append="true" output="${build.log.dir}/ATS_${build.id}_smoketest.log">
       
   766             <arg value="smoketest.pl"/>
       
   767         </exec>
       
   768         <copy file="${build.drive}/smoketest/group/smoketest.zip" todir="${sf.spec.test.package.location}"/>
       
   769         
       
   770         <echo message="INFO Updating smoketest package with test info"/>
       
   771         <exec executable="perl" dir="${sf.common.config.dir}/tools/ats/" failonerror="false" append="true" output="${build.log.dir}/ATS_${build.id}_smoketest.log">
       
   772             <arg value="ats_specialise_test_drop.pl"/>
       
   773             <arg value="--test-drop-name=Smoketest-${build.id}"/> 
       
   774             <arg value="--device-name=GENERIC EMULATOR on ${env.COMPUTERNAME}"/>
       
   775             <arg value="--src=${sf.spec.test.package.location}\smoketest.zip"/>
       
   776             <arg value="--dest=${sf.spec.test.package.location}\${sf.spec.test.package.name}"/>	
       
   777             <arg value="--build-id=http://${sf.spec.publish.diamonds.server}${diamonds.build.id}"/>			
       
   778         </exec>
       
   779         <!-- Now ready to send to ATS3 -->
       
   780     </target>   
       
   781 
       
   782     <!-- runs analysis of missing bins and source -->
       
   783     <target name="sf-run-analysis">
       
   784         <mkdir dir="${build.log.dir}/analysis"/>
       
   785         <parallel>
       
   786           <runtarget target="sf-run-analysis-ant"/>
       
   787           <runtarget target="sf-run-analysis-raptor"/>
       
   788           <runtarget target="sf-run-analysis-yarp"/>
       
   789           <runtarget target="sf-run-analysis-whatlog-summary"/>
       
   790         </parallel>
       
   791         <if>
       
   792           <istrue value="${sf.spec.publish.enable}"/>
       
   793             <then>
       
   794             <runtarget target="sf-run-analysis-diamonds"/>
       
   795             </then>
       
   796         </if>    
       
   797     </target>
       
   798 
       
   799     <target name="sf-run-analysis-ant">    
       
   800         <echo message="Running source analysis of ANT output"/>
       
   801         <exec executable="perl" dir="${build.log.dir}" failonerror="false" output="${build.log.dir}/analysis/${build.id}_scan_ant.log">
       
   802             <arg value="${sf.common.config.dir}/tools/analysis/scan_antlogs.pl"/>
       
   803             <arg value="*ant*"/>
       
   804         </exec>
       
   805     </target>
       
   806 
       
   807     <target name="sf-run-analysis-list">    
       
   808         <echo message="Running list analysis"/>
       
   809         <exec executable="perl" dir="${build.log.dir}/analysis" failonerror="false" output="${build.log.dir}/analysis/${build.id}_list_results.log">
       
   810             <arg value="${sf.common.config.dir}/tools/analysis/parselistdirs.pl"/>
       
   811             <arg value="..\"/>
       
   812         </exec>
       
   813     </target>
       
   814 
       
   815     <target name="sf-run-analysis-whatlog">    
       
   816         <echo message="Running whatlog analysis"/>
       
   817         <exec executable="perl" dir="${build.log.dir}/analysis" failonerror="false" output="${build.log.dir}/analysis/${build.id}_what_results.csv">
       
   818             <arg value="${sf.common.config.dir}/tools/analysis/parsewhatlog.pl"/>
       
   819             <arg value="..\"/>
       
   820         </exec>
       
   821     </target>
       
   822 
       
   823     <target name="sf-run-analysis-whatlog-summary" >
       
   824         <sequential>
       
   825           <parallel>
       
   826             <runtarget target="sf-run-analysis-list"/>
       
   827             <runtarget target="sf-run-analysis-whatlog"/>
       
   828           </parallel>
       
   829           <runtarget target="sf-run-analysis-whatlog-merge" />
       
   830           <parallel>
       
   831             <runtarget target="sf-run-analysis-whatlog-package"/>
       
   832             <runtarget target="sf-run-analysis-whatlog-collisons"/>
       
   833           </parallel>
       
   834         </sequential>
       
   835     </target>
       
   836     
       
   837     <target name="sf-run-analysis-whatlog-merge" >        
       
   838         <echo message="Running summary analysis"/>
       
   839         <exec executable="perl" dir="${build.log.dir}/analysis" failonerror="false" output="${build.log.dir}/analysis/${build.id}_summary.log">
       
   840             <arg value="${sf.common.config.dir}/tools/analysis/merge_csv.pl"/>
       
   841             <arg value="${build.id}_what_results.csv"/>
       
   842             <arg value="${build.id}_list_results.log"/>
       
   843             <arg value="${build.drive}/output/zips/release/binaries_epoc_additional.zip"/>
       
   844         </exec>
       
   845     </target>
       
   846     
       
   847     <target name="sf-run-analysis-whatlog-package" >        
       
   848         <exec executable="perl" dir="${build.log.dir}/analysis" failonerror="false" output="${build.log.dir}/analysis/${build.id}_analysecomponents.log">
       
   849             <arg value="${sf.common.config.dir}/tools/analysis/analyse_components.pl"/>
       
   850             <arg value="${sf.spec.sourcesync.sourcespecdir}/${sf.spec.sourcesync.sourcespecfile}"/>
       
   851             <arg value="${build.id}_what_results.csv_results.csv"/>
       
   852             <arg value="${sf.project.location}/sysdefs/system_model_os.xml"/>
       
   853         </exec>
       
   854     </target>
       
   855     
       
   856     <target name="sf-run-analysis-whatlog-collisons" >        
       
   857         <echo message="Running collision analysis"/>
       
   858         <exec executable="perl" dir="${build.drive}" failonerror="false" output="${build.log.dir}/analysis/${build.id}_collisions.log">
       
   859             <arg value="${sf.common.config.dir}/tools/analysis/find_collisions.pl"/>
       
   860             <arg value="${build.log.dir}/analysis/${build.id}_what_results.csv"/>
       
   861         </exec>
       
   862     </target>
       
   863 
       
   864     <target name="sf-run-analysis-raptor">            
       
   865       <echo message="Preprocessing *_compile.log files"/>
       
   866       <for param="logfile">
       
   867         <path>
       
   868           <fileset dir="${build.log.dir}">
       
   869             <include name="*_compile.log"/>
       
   870             <exclude name="*build_check_compile.log"/>
       
   871           </fileset>
       
   872         </path>
       
   873         <sequential>
       
   874           <propertyregex override="yes" property="preprocessedlogfile" input="@{logfile}" regexp=".*[\\|\/].*\.T?\d+_+(.*)_compile\.log" replace="\1_compile_preprocessed.log"/>
       
   875 	        <echo message="Preprocessing @{logfile}..."/>
       
   876           <exec executable="perl" dir="${sf.common.config.dir}/tools/raptor" failonerror="false" input="@{logfile}" output="${build.log.dir}/analysis/${preprocessedlogfile}" error="${build.log.dir}/analysis/${build.id}_preprocess.log" append="true">
       
   877             <arg value="${sf.common.config.dir}/tools/raptor/preprocess_log.pl"/>
       
   878           </exec>
       
   879         </sequential>
       
   880       </for>
       
   881       
       
   882       <echo message="Extracting whatlog information from *whatlog*_compile_preprocessed.log files"/>
       
   883       <for param="whatlogfile">
       
   884         <path>
       
   885           <fileset dir="${build.log.dir}/analysis">
       
   886             <include name="*whatlog*_compile_preprocessed.log"/>
       
   887           </fileset>
       
   888         </path>
       
   889         <sequential>
       
   890           <echo message="Extracting whatlog info from @{whatlogfile}..."/>
       
   891           <exec executable="perl" dir="${sf.common.config.dir}/tools/raptor" failonerror="false" output="${build.log.dir}/analysis/${build.id}_whatlog.log" append="true">
       
   892             <arg value="${sf.common.config.dir}/tools/raptor/parse.pl"/>
       
   893             <arg value="--releaseable"/>
       
   894             <arg value="--log=@{whatlogfile}"/>
       
   895             <arg value="--basedir=${build.log.dir}"/>
       
   896             <arg value="--append"/>
       
   897           </exec>
       
   898         </sequential>
       
   899       </for>
       
   900       
       
   901       <echo message="Extracting error information from *_compile_preprocessed.log files"/>
       
   902       <for param="raptorlogfile">
       
   903         <path>
       
   904           <fileset dir="${build.log.dir}/analysis">
       
   905             <include name="*_compile_preprocessed.log"/>
       
   906           </fileset>
       
   907         </path>
       
   908         <sequential>
       
   909           <echo message="Extracting error info from @{raptorlogfile}..."/>
       
   910           <exec executable="perl" dir="${sf.common.config.dir}/tools/raptor" failonerror="false" output="${build.log.dir}/analysis/${build.id}_raptorparse.log" append="true">
       
   911             <arg value="${sf.common.config.dir}/tools/raptor/parse.pl"/>
       
   912             <arg value="--error"/>
       
   913             <arg value="--warning"/>
       
   914             <arg value="--log=@{raptorlogfile}"/>
       
   915             <arg value="--basedir=${build.log.dir}/raptorbits"/>
       
   916             <arg value="--append"/>
       
   917           </exec>
       
   918         </sequential>
       
   919       </for>
       
   920             <!-- Now iterate through the generated TSVs to sort them and remove duplicates -->
       
   921       <for param="tsv">
       
   922         <path>
       
   923           <fileset dir="${build.log.dir}/releaseables">
       
   924             <include name="**/*.tsv"/>
       
   925           </fileset>
       
   926         </path>
       
   927         <sequential>
       
   928           <exec executable="perl" input="@{tsv}" output="@{tsv}">
       
   929             <arg value="${sf.common.config.dir}/tools/sortUnique.pl"/>
       
   930           </exec>
       
   931         </sequential>
       
   932       </for>
       
   933     </target>
       
   934 
       
   935     <target name="sf-run-analysis-yarp">          
       
   936       <echo message="Running yarp over *_compile.log files"/>
       
   937       <for param="logfile">
       
   938         <path>
       
   939           <fileset dir="${build.log.dir}">
       
   940             <include name="*_compile.log"/>
       
   941             <exclude name="*build_check_compile.log"/>
       
   942           </fileset>
       
   943         </path>
       
   944         <sequential>
       
   945           <propertyregex override="yes" property="yarpfile"  input="@{logfile}" regexp=".*[\\|\/](.*)_compile\.log" replace="\1_yarp.csv"/>
       
   946           <propertyregex override="yes" property="yarpfile_short"  input="${yarpfile}" regexp="[^_]*_[^_]*_[^_]*_(.+)_[^_]*_yarp\.csv" replace="YARP_\1"/>
       
   947           <echo message="Yarping @{logfile}..."/>
       
   948           <exec executable="perl" dir="${build.drive}" failonerror="false" output="${build.log.dir}/analysis/${yarpfile}.log" append="true">
       
   949             <arg value="${sf.common.config.dir}/tools/analysis/yarp.pl"/>
       
   950             <arg value="@{logfile}"/>
       
   951             <arg value="${build.log.dir}/analysis/${yarpfile}"/>
       
   952           </exec>
       
   953           <exec executable="cmd" output="${build.drive}/output/logs/analysis/tmp_yarp_files.csv" append="true">
       
   954             <arg value="/c"/>
       
   955             <arg value="echo"/>
       
   956             <arg value="${yarpfile_short},${sf.spec.publish.networkdrive}\${sf.spec.job.name}\builds\${sf.spec.job.codeline}\${build.id}\logs\analysis\${yarpfile},${build.drive}\output\logs\analysis\${yarpfile}"/>
       
   957           </exec>
       
   958         </sequential>
       
   959       </for>
       
   960       
       
   961       <exec executable="perl" dir="${build.drive}" failonerror="false" outputproperty="sf.job.totalyarperrors">
       
   962         <arg value="${sf.common.config.dir}/tools/analysis/parse_yarp_files.pl"/>
       
   963         <arg value="${build.drive}/output/logs/analysis/tmp_yarp_files.csv"/>
       
   964       </exec>
       
   965       <echo message="Total yarp errors: ${sf.job.totalyarperrors}"/>
       
   966     </target>
       
   967     
       
   968     <target name="sf-run-analysis-diamonds">      
       
   969       <fmpp sourceFile="${sf.common.config.dir}/diamonds/sf-run-analysis.xml.ftl" outputFile="${build.drive}/output/logs/sf-run-analysis.xml">
       
   970         <data expandProperties="yes">
       
   971           ant: antProperties()
       
   972           raptor_summary: csv(${build.log.dir}/raptorbits/summary.csv,{separator:',',headers:[category,subcategory,severity,component,phase,recipe,file,line]})
       
   973           files: csv(${build.drive}/output/logs/analysis/tmp_yarp_files.csv,{separator:',',headers:[name,path,localpath]})
       
   974         </data>
       
   975       </fmpp>
       
   976     </target>
       
   977     
       
   978 
       
   979 
       
   980     <target name="sf-package-validate">
       
   981         <exec executable="7z" dir="${build.drive}/output/zips" failonerror="false" output="${build.drive}/output/zips/validate.log">
       
   982             <arg value="t"/>
       
   983             <arg value="*.zip"/>
       
   984         </exec>  
       
   985         <exec executable="7z" dir="${build.drive}/output/zips/release" failonerror="false" output="${build.drive}/output/zips/release/validate.log">
       
   986             <arg value="t"/>
       
   987             <arg value="*.zip"/>
       
   988         </exec>  
       
   989     </target>
       
   990 
       
   991     <target name="sf-run-evalid">
       
   992         <delete dir="${build.drive}/output/md5"/>
       
   993         <mkdir  dir="${build.drive}/output/md5"/>
       
   994 
       
   995         <parallel>
       
   996         <exec executable="cmd" dir="${build.drive}">
       
   997             <arg value="/c"/>
       
   998             <arg value="evalid -g epoc32/include output/md5/epoc32_include.md5"/>
       
   999         </exec>
       
  1000         <exec executable="cmd" dir="${build.drive}">
       
  1001             <arg value="/c"/>
       
  1002             <arg value="evalid -g epoc32/s60 output/md5/epoc32_s60.md5"/>
       
  1003         </exec>
       
  1004         <exec executable="cmd" dir="${build.drive}">
       
  1005             <arg value="/c"/>
       
  1006             <arg value="evalid -g epoc32/localisation output/md5/epoc32_localisation.md5"/>
       
  1007         </exec>
       
  1008         <exec executable="cmd" dir="${build.drive}">
       
  1009             <arg value="/c"/>
       
  1010             <arg value="evalid -x \.sym$ -x ^armv5/udeb -x ^armv5/urel -x ^winscw/udeb -x ^winscw/urel -g epoc32/release output/md5/epoc32_release.md5"/>
       
  1011         </exec>
       
  1012         <exec executable="cmd" dir="${build.drive}">
       
  1013             <arg value="/c"/>
       
  1014             <arg value="evalid -x \.sym$ -g epoc32/release/armv5/udeb output/md5/epoc32_release_armv5_udeb.md5"/>
       
  1015         </exec>
       
  1016         <exec executable="cmd" dir="${build.drive}">
       
  1017             <arg value="/c"/>
       
  1018             <arg value="evalid -x \.sym$ -g epoc32/release/armv5/urel output/md5/epoc32_release_armv5_urel.md5"/>
       
  1019         </exec>
       
  1020         <exec executable="cmd" dir="${build.drive}">
       
  1021             <arg value="/c"/>
       
  1022             <arg value="evalid -x \.sym$ -g epoc32/release/winscw/udeb output/md5/epoc32_release_winscw_udeb.md5"/>
       
  1023         </exec>
       
  1024         <exec executable="cmd" dir="${build.drive}">
       
  1025             <arg value="/c"/>
       
  1026             <arg value="evalid -x \.sym$ -g epoc32/release/winscw/urel output/md5/epoc32_release_winscw_urel.md5"/>
       
  1027         </exec>
       
  1028         <exec executable="cmd" dir="${build.drive}">
       
  1029             <arg value="/c"/>
       
  1030             <arg value="evalid -g epoc32/cshlpcmp_template 	output/md5/epoc32_cshlpcmp_template.md5"/>
       
  1031         </exec>
       
  1032         <exec executable="cmd" dir="${build.drive}">
       
  1033             <arg value="/c"/>
       
  1034             <arg value="evalid -g epoc32/data output/md5/epoc32_data.md5"/>
       
  1035         </exec>
       
  1036         <exec executable="cmd" dir="${build.drive}">
       
  1037             <arg value="/c"/>
       
  1038             <arg value="evalid -g epoc32/engdoc output/md5/epoc32_engdoc.md5"/>
       
  1039         </exec>
       
  1040         <exec executable="cmd" dir="${build.drive}">
       
  1041             <arg value="/c"/>
       
  1042             <arg value="evalid -g epoc32/engineeringtools output/md5/epoc32_engineeringtools.md5"/>
       
  1043         </exec>
       
  1044         <exec executable="cmd" dir="${build.drive}">
       
  1045             <arg value="/c"/>
       
  1046             <arg value="evalid -g epoc32/gcc output/md5/epoc32_gcc.md5"/>
       
  1047         </exec>
       
  1048         <exec executable="cmd" dir="${build.drive}">
       
  1049             <arg value="/c"/>
       
  1050             <arg value="evalid -g epoc32/gcc_mingw output/md5/epoc32_gcc_mingw.md5"/>
       
  1051         </exec>
       
  1052         <exec executable="cmd" dir="${build.drive}">
       
  1053             <arg value="/c"/>
       
  1054             <arg value="evalid -g epoc32/ksa output/md5/epoc32_ksa.md5"/>
       
  1055         </exec>
       
  1056         <exec executable="cmd" dir="${build.drive}">
       
  1057             <arg value="/c"/>
       
  1058             <arg value="evalid -g epoc32/rom output/md5/epoc32_rom.md5"/>
       
  1059         </exec>
       
  1060         <exec executable="cmd" dir="${build.drive}">
       
  1061             <arg value="/c"/>
       
  1062             <arg value="evalid -g epoc32/rombuild output/md5/epoc32_rombuild.md5"/>
       
  1063         </exec>
       
  1064         <exec executable="cmd" dir="${build.drive}">
       
  1065             <arg value="/c"/>
       
  1066             <arg value="evalid -g epoc32/sbs_config output/md5/epoc32_sbs_config.md5"/>
       
  1067         </exec>
       
  1068         <exec executable="cmd" dir="${build.drive}">
       
  1069             <arg value="/c"/>
       
  1070             <arg value="evalid -g epoc32/sdk_special output/md5/epoc32_sdk_special.md5"/>
       
  1071         </exec>
       
  1072         <exec executable="cmd" dir="${build.drive}">
       
  1073             <arg value="/c"/>
       
  1074             <arg value="evalid -g epoc32/stdapis output/md5/epoc32_stdapis.md5"/>
       
  1075         </exec>
       
  1076         <exec executable="cmd" dir="${build.drive}">
       
  1077             <arg value="/c"/>
       
  1078             <arg value="evalid -g epoc32/stubs output/md5/epoc32_stubs.md5"/>
       
  1079         </exec>
       
  1080         <exec executable="cmd" dir="${build.drive}">
       
  1081             <arg value="/c"/>
       
  1082             <arg value="evalid -g epoc32/tools output/md5/epoc32_tools.md5"/>
       
  1083         </exec>
       
  1084         <exec executable="cmd" dir="${build.drive}">
       
  1085             <arg value="/c"/>
       
  1086             <arg value="evalid -g epoc32/wins output/md5/epoc32_wins.md5"/>
       
  1087         </exec>
       
  1088         <exec executable="cmd" dir="${build.drive}">
       
  1089             <arg value="/c"/>
       
  1090             <arg value="evalid -g epoc32/winscw output/md5/epoc32_winscw.md5"/>
       
  1091         </exec>
       
  1092         </parallel>
       
  1093         
       
  1094         <!-- package MD5s directly into epoc32/relinfo location so that its usable out-of-the-box -->
       
  1095         <property name="temp.md5.zip" value="${env.TEMP}/MD5_${sf.spec.job.name}_${build.number}.zip"/>
       
  1096         <echo message="INFO Packaging MD5s"/>
       
  1097         <zip destfile="${temp.md5.zip}">
       
  1098             <zipfileset dir="${build.drive}/output/md5/" prefix="epoc32/relinfo"/>
       
  1099         </zip>
       
  1100         <move file="${temp.md5.zip}" todir="${build.log.dir}" failonerror="false"/>
       
  1101     </target>    
       
  1102 </project>
   488 </project>
  1103 
   489