buildframework/helium/tools/rombuild/rombuild.ant.xml
changeset 217 0f5e3a7fb6af
parent 179 d8ac696cc51f
child 587 85df38eb4012
equal deleted inserted replaced
181:59bb7c4d6172 217:0f5e3a7fb6af
    18 
    18 
    19 Description:
    19 Description:
    20 
    20 
    21 ============================================================================
    21 ============================================================================
    22 -->
    22 -->
       
    23 <!--* @package rombuild -->
    23 <project name="rombuild" xmlns:hlm="http://www.nokia.com/helium">
    24 <project name="rombuild" xmlns:hlm="http://www.nokia.com/helium">
    24     <description>
    25     <description>
    25         ROM image creation using iMaker.
    26         ROM image creation using iMaker.
    26         Flash config file generation.
    27         Flash config file generation.
    27     </description>
    28     </description>
    28     <import file="./trace_images/tracebuild.ant.xml" />
       
    29     <import file="imaker.ant.xml" />
    29     <import file="imaker.ant.xml" />
       
    30     
       
    31     <!--* @property ee.rom.output.dir
       
    32     /output/development_flash_images/engineering_english/logs
       
    33     @type string
       
    34     @editable required
       
    35     @scope public
       
    36     -->
       
    37 
       
    38     <!--* @property core.rom.output.dir
       
    39     /output/release_flash_images/rnd/core
       
    40     @type string
       
    41     @editable required
       
    42     @scope public
       
    43     -->
    30 
    44 
    31     <!-- should be overriden - default configuration -->
    45     <!-- should be overriden - default configuration -->
    32     <!-- <property name="rombuild.makefile.name" value="mc_imaker_conf.mk" /> -->
    46     <!-- The path to the iMaker executable file.
       
    47     @type string
       
    48     @scope private
       
    49     -->
    33     <property name="imaker.command" location="${build.drive}\epoc32\tools\imaker.cmd" />
    50     <property name="imaker.command" location="${build.drive}\epoc32\tools\imaker.cmd" />
    34     <property name="ee.makefile.target" value="ee_roms" />
       
    35     <property name="subcon.makefile.target" value="subcon_roms" />
       
    36     <property name="trace.makefile.target" value="trace_roms" />
       
    37     <property name="ee_roms.log.file" value="${roms.log.dir}/${build.id}_ee_roms.log" />
       
    38     <property name="trace.log.file" value="${roms.log.dir}/${build.id}_trace_roms.log" />
       
    39     <property name="subcon.log.file" value="${roms.log.dir}/${build.id}_subcon_roms.log" />
       
    40 
       
    41     <!-- Properties for image-creation target which is being used by IDOs -->
       
    42     <property name="image_creation.copyto" value="${build.output.dir}/images" />
       
    43     <property name="image_creation.drive" value="${build.drive}" />
       
    44     <!-- Property for variant-image-creation -->
       
    45     <property name="variant.image.targetpath" value="${build.output.dir}/variant_images" />
       
    46 
       
    47     <!-- That macro runs iMaker using product the configuration generated by Helium. -->
       
    48     <macrodef name="rombuildImakerMacro" uri="http://www.nokia.com/helium">
       
    49         <attribute name="product" />
       
    50         <attribute name="target" />
       
    51         <sequential>
       
    52             <var name="rom.product.path" unset="true" />
       
    53             <if>
       
    54                 <istrue value="${rombuild.using.var}" />
       
    55                 <then>
       
    56                     <script language="jython" setbeans="false">
       
    57                         <![CDATA[
       
    58 import imaker
       
    59 import os
       
    60 if project.getProperty('build.drive') == None :
       
    61     raise Exception("'build.drive' property is not defined")
       
    62 os.chdir(project.getProperty('build.drive') + os.sep)
       
    63 project.setProperty('rom.product.path', imaker.get_product_dir(r'@{product}'))
       
    64                         ]]>
       
    65                     </script>
       
    66                 </then>
       
    67                 <else>
       
    68                     <exec executable="python" outputproperty="rom.product.path" dir="${build.drive}/" failonerror="${failonerror}">
       
    69                         <arg line="${helium.dir}/tools/localisation/get_product_path.py @{product}" />
       
    70                     </exec>
       
    71                     <exec executable="python" outputproperty="rom.product.platform" dir="${build.drive}/" failonerror="${failonerror}">
       
    72                         <arg line="${helium.dir}/tools/localisation/get_product_platform.py @{product}" />
       
    73                     </exec>
       
    74                 </else>
       
    75             </if>
       
    76             <if>
       
    77                 <and>
       
    78                     <equals arg1="${build.system}" arg2="ec-helium" />
       
    79                     <isset property="rom.dryrun" />
       
    80                 </and>
       
    81                 <then>
       
    82                     <echo message="target to run @{target}-dryrun" />
       
    83                     <exec executable="${imaker.command}" dir="${build.drive}/" output="${build.drive}/dryrun_out.txt" append="true" failonerror="${failonerror}">
       
    84                         <arg line="-p@{product} -f /epoc32/rom/${rom.product.path}/${rombuild.makefile.name}" />
       
    85                         <arg value="@{target}-dryrun" />
       
    86                     </exec>
       
    87                 </then>
       
    88                 <else>
       
    89                     <if>
       
    90                         <istrue value="${rombuild.using.var}" />
       
    91                         <then>
       
    92                             <exec executable="${imaker.command}" dir="${build.drive}/" failonerror="${failonerror}">
       
    93                                 <arg line="-p@{product} -f /epoc32/rom/${rom.product.path}/${rombuild.makefile.name}" />
       
    94                                 <arg value="@{target}" />
       
    95                             </exec>
       
    96                         </then>
       
    97                         <else>
       
    98                             <exec executable="${imaker.command}" dir="${build.drive}/" failonerror="${failonerror}">
       
    99                                 <arg line="-p@{product} -c${rom.product.platform} -f /epoc32/rom/${rom.product.path}/${rombuild.makefile.name}" />
       
   100                                 <arg value="@{target}" />
       
   101                             </exec>
       
   102                         </else>
       
   103                     </if>
       
   104                 </else>
       
   105             </if>
       
   106         </sequential>
       
   107     </macrodef>
       
   108 
    51 
   109 
    52 
   110     <!-- Create engineering english image using ImageCreation.pl. -->
    53     <!--
   111     <target name="image-creation" if="image_creation.copyto">
    54         Creates subcon certified rom images.
   112         <tstamp>
    55         The build will be based on the hlm:imakerconfigurationset referenced
   113             <format property="image.archive.date" pattern="ddmmyy'_'HHmmss" />
    56         as 'imaker.subcon.rom.config'.
   114         </tstamp>
    57      -->
   115 
    58     <target name="subcon-roms">
   116         <move todir="${build.drive}/archives/images/${image.archive.date}" failonerror="false">
    59         <if>
   117             <fileset dir="${build.output.dir}/images/" />
    60             <isreference refid="imaker.subcon.rom.config" />
   118         </move>
    61             <then>
   119         <mkdir dir="${build.output.dir}/images" />
    62                 <antcall target="build-roms">
   120         <exec executable="perl" dir="${build.drive}/" failonerror="true">
    63                     <param name="imaker.rom.name" value="_subcon_roms" />
   121             <arg value="${helium.dir}/tools/compile/ImageCreation.pl" />
    64                     <reference refid="imaker.subcon.rom.config" torefid="imaker.rom.config"/>
   122             <arg value="-copyto" />
    65                 </antcall>
   123             <arg value="${image_creation.copyto}" />
    66             </then>
   124             <arg value="-MyTraces" />
    67             <else>
   125             <arg value="${image_creation.MyTraces}" />
    68                 <echo>Configuration 'imaker.subcon.rom.config' not defined. Skipping subcon-roms build.</echo>
   126             <arg value="-Drive" />
    69             </else>
   127             <arg value="${image_creation.drive}" />
    70         </if>
   128             <arg value="-product" />
       
   129             <arg value="${image_creation.product}" />
       
   130             <arg value="-type" />
       
   131             <arg value="${image_creation.type}" />
       
   132         </exec>
       
   133     </target>
    71     </target>
   134 
    72 
   135     <!-- Create variant image using Creator.pl tools.
    73     <!-- Internal target to export iMaker Helium additions. @scope private-->
   136     -->
    74     <target name="rombuild-export-features">
   137     <target name="variant-image-creation" if="variant.image.hw">
    75         <copy todir="${build.drive}/epoc32/rom/config" overwrite="true">
   138         <tstamp>
    76             <fileset dir="${helium.dir}/tools/rombuild/features" casesensitive="false">
   139             <format property="image.archive.date" pattern="ddmmyy'_'HHmmss" />
    77                 <include name="*.mk" />
   140         </tstamp>
    78             </fileset>
   141 
       
   142         <move todir="${build.drive}/archives/variant_images/${image.archive.date}" failonerror="false">
       
   143             <fileset dir="${build.output.dir}/variant_images/" />
       
   144         </move>
       
   145         <mkdir dir="${build.output.dir}/variant_images" />
       
   146         <exec executable="perl" dir="${build.drive}/" failonerror="true">
       
   147             <arg value="${build.drive}/Creator.pl" />
       
   148             <arg value="-hw" />
       
   149             <arg value="${variant.image.hw}" />
       
   150             <arg value="-lang" />
       
   151             <arg value="${variant.image.lang}" />
       
   152             <arg value="-core" />
       
   153             <arg value="${variant.image.core}" />
       
   154             <arg value="-variant" />
       
   155             <arg value="${variant.image.variantcode}" />
       
   156             <arg value="-type" />
       
   157             <arg value="${variant.image.type}" />
       
   158             <arg value="-sw" />
       
   159             <arg value="${variant.image.sw}" />
       
   160             <arg value="-targetpath" />
       
   161             <arg value="${variant.image.targetpath}" />
       
   162         </exec>
       
   163     </target>
       
   164 
       
   165     <!-- This targets call the image-creation target to be reexecuted in a build.
       
   166         <deprecated>Should be done diferrently, e.g use imaker in new </deprecated>
       
   167     -->
       
   168     <target name="rerun-image-creation">
       
   169         <runtarget target="image-creation" />
       
   170     </target>
       
   171 
       
   172     <!-- This targets call the variant-image-creation target to be reexecuted in a build.
       
   173         <deprecated>Should be done diferrently, e.g use imaker in new </deprecated>
       
   174     -->
       
   175     <target name="rerun-variant-image-creation">
       
   176         <runtarget target="variant-image-creation" />
       
   177     </target>
       
   178 
       
   179     <!-- Preparing rom image configuration expanding properties, flattening the xinclude stucture
       
   180              and finally expanding properties again. 
       
   181     -->
       
   182     <target name="rombuild-prepare-input" depends="init-build-area">
       
   183         <property name="rombuild.config.file.parsed" location="${build.output.dir}/rom_config.xml.parsed" />
       
   184         <copy file="${rombuild.config.file}" tofile="${rombuild.config.file.parsed}.x1" overwrite="true">
       
   185             <filterchain>
       
   186                 <expandproperties />
       
   187                 <tokenfilter>
       
   188                     <replacestring from="http://www.w3.org/2003/XInclude" to="http://www.w3.org/2001/XInclude" />
       
   189                 </tokenfilter>
       
   190             </filterchain>
       
   191         </copy>
       
   192         <!--<xcluder in="${rombuild.config.file.parsed}.x1" out="${rombuild.config.file.parsed}.xinclude" />-->
       
   193         <xinclude file="${rombuild.config.file.parsed}.x1" tofile="${rombuild.config.file.parsed}.xinclude" />
       
   194         <xmltask source="${rombuild.config.file.parsed}.xinclude" dest="${rombuild.config.file.parsed}.x2">
       
   195             <attr path="//*" attr="xml:base" remove="true" />
       
   196         </xmltask>
       
   197         <copy file="${rombuild.config.file.parsed}.x2" tofile="${rombuild.config.file.parsed}" overwrite="true">
       
   198             <filterchain>
       
   199                 <expandproperties />
       
   200             </filterchain>
       
   201         </copy>
    79         </copy>
   202     </target>
    80     </target>
   203 
    81 
   204 
    82 
   205     <!-- Creates ee-images
    83     <!--
       
    84         Creates trace rom images.
       
    85         The build will be based on the hlm:imakerconfigurationset referenced
       
    86         as 'imaker.trace.rom.config'.
   206      -->
    87      -->
   207     <target name="ee-roms" depends="rombuild-create-makefile" unless="no.ncp">
    88     <target name="trace-roms">
   208         <hlm:startSpecificLogMacro name="${ee_roms.log.file}" phase="roms"/>
    89         <if>
   209         <hlm:preECImakerMacro />
    90             <isreference refid="imaker.trace.rom.config" />
   210         <for list="${product.list}" delimiter="," param="product.name">
    91             <then>
   211             <sequential>
    92                 <antcall target="build-roms">
   212                 <hlm:rombuildImakerMacro product="@{product.name}" target="${ee.makefile.target}" />
    93                     <param name="imaker.rom.name" value="_trace_roms" />
   213             </sequential>
    94                     <reference refid="imaker.trace.rom.config" torefid="imaker.rom.config"/>
   214         </for>
    95                 </antcall>
   215         <hlm:ecImakerMacro makefile.target="${ee.makefile.target}" />
    96             </then>
   216         <hlm:stopSpecificLogMacro name="${ee_roms.log.file}" phase="roms"/>
    97             <else>
   217         <hlm:metadatarecord database="${metadata.dbfile}">
    98                 <echo>Configuration 'imaker.trace.rom.config' not defined. Skipping trace-roms build.</echo>
   218             <hlm:textmetadatainput>
    99             </else>
   219                 <fileset casesensitive="false" file="${ee_roms.log.file}" />
   100         </if>
   220                 <metadatafilterset refid="filterset.ee.roms" />
       
   221             </hlm:textmetadatainput>
       
   222         </hlm:metadatarecord>
       
   223         <hlm:generateBuildStatus file="${build.id}_ee_roms.log" />
       
   224         <!-- Todo: metadata: assertions for metadata parsing here -->
       
   225         <hlm:publishMacro />
       
   226     </target>
   101     </target>
   227 
   102 
   228 
   103 
   229     <!-- Creates subcon certified rom images with imaker tool -->
   104     <!-- Internal iMaker macro. @scope private -->
   230     <target name="subcon-roms" depends="rombuild-create-makefile" unless="no.ncp">
       
   231         <hlm:startSpecificLogMacro name="${subcon.log.file}" phase="roms"/>
       
   232         <mkdir dir="${subcon.build.drive}/output/development_flash_images/engineering_english/${product.name}/subcon" />
       
   233         <hlm:preECImakerMacro />
       
   234         <for list="${product.list}" delimiter="," param="product.name">
       
   235             <sequential>
       
   236                 <hlm:rombuildImakerMacro product="@{product.name}" target="${subcon.makefile.target}" />
       
   237             </sequential>
       
   238         </for>
       
   239         <hlm:ecImakerMacro makefile.target="${ee.makefile.target}" />
       
   240         <hlm:stopSpecificLogMacro name="${subcon.log.file}" phase="roms"/>
       
   241         <hlm:metadatarecord database="${metadata.dbfile}">
       
   242             <hlm:textmetadatainput>
       
   243                 <fileset casesensitive="false" file= "${subcon.log.file}"/>
       
   244                 <metadatafilterset refid="filterset.subcon.roms" />
       
   245             </hlm:textmetadatainput>
       
   246         </hlm:metadatarecord>
       
   247         <hlm:generateBuildStatus file="${build.id}_subcon_roms.log" />
       
   248         <!-- Todo: metadata: insert assertions for metadata parsing here -->
       
   249         <hlm:publishMacro />
       
   250     </target>
       
   251 
       
   252     <!-- Private: Internal target to export iMaker Helium additions. -->
       
   253     <target name="rombuild-export-features">
       
   254         <copy todir="${build.drive}/epoc32/rom/config" overwrite="true">
       
   255             <fileset dir="${helium.dir}/tools/rombuild/features" casesensitive="false">
       
   256                 <include name="*.mk" />
       
   257                 <include name="unittest/*.mk" />
       
   258             </fileset>
       
   259         </copy>
       
   260     </target>
       
   261 
       
   262     <!-- iMaker related targets -->
       
   263     <target name="rombuild-create-makefile" depends="rombuild-export-features,rombuild-prepare-input">
       
   264         <!-- Just generate the makefile for all the product available in product list. -->
       
   265         <hlm:python>
       
   266 import os
       
   267 
       
   268 import configuration
       
   269 import rom
       
   270 
       
   271 os.chdir(r'${build.drive}/')
       
   272 configBuilder = configuration.NestedConfigurationBuilder(open(r'${rombuild.config.file.parsed}', 'r'))
       
   273 configSet = configBuilder.getConfiguration()
       
   274 for product in r'${product.list}'.split(','):
       
   275     builder = rom.IMakerRomBuilder(configSet, product, (r'${rombuild.using.var}'.lower() == "true"))
       
   276     builder.build()
       
   277         </hlm:python>
       
   278     </target>
       
   279 
       
   280 
       
   281 
       
   282 
       
   283     <!-- Creates trace rom images -->
       
   284     <target name="trace-roms" depends="rombuild-create-makefile" unless="no.ncp">
       
   285         <hlm:startSpecificLogMacro name="${trace.log.file}" phase="roms"/>
       
   286         <hlm:preECImakerMacro />
       
   287         <for list="${product.list}" delimiter="," param="product.name">
       
   288             <sequential>
       
   289                 <hlm:rombuildImakerMacro product="@{product.name}" target="${trace.makefile.target}" />
       
   290             </sequential>
       
   291         </for>
       
   292         <hlm:ecImakerMacro makefile.target="${ee.makefile.target}" />
       
   293         <hlm:stopSpecificLogMacro name="${trace.log.file}" phase="roms"/>
       
   294         <!-- Todo: Make sure that logfilter is added to the filterset -->
       
   295         <hlm:metadatarecord database="${metadata.dbfile}">
       
   296             <hlm:textmetadatainput>
       
   297                 <fileset casesensitive="false" file="${trace.log.file}" />
       
   298                 <metadatafilterset refid="filterset.trace.rom" />
       
   299             </hlm:textmetadatainput>
       
   300         </hlm:metadatarecord>
       
   301         <hlm:generateBuildStatus file="${build.id}_trace_roms.log" />
       
   302         <!-- Todo: metadata: insert assertions for metadata parsing here -->
       
   303         <hlm:publishMacro />
       
   304     </target>
       
   305 
       
   306     <!-- Single product configuration support
       
   307         <deprecated>Please consider using new iMaker integration.</deprecated>
       
   308     -->
       
   309     <target name="ee-roms-product" depends="rombuild-create-makefile" unless="no.ncp">
       
   310         <sequential>
       
   311             <hlm:preECImakerMacro />
       
   312             <hlm:rombuildImakerMacro product="${product.name}" target="${ee.makefile.target}" />
       
   313             <hlm:ecImakerMacro makefile.target="${ee.makefile.target}" />
       
   314         </sequential>
       
   315     </target>
       
   316 
       
   317     <!-- Used for parallel rom image creation using dry run approach -->
       
   318     <macrodef name="preECImakerMacro" uri="http://www.nokia.com/helium">
       
   319         <sequential>
       
   320             <delete file="${build.drive}/dryrun_out.txt" failonerror="false" />
       
   321         </sequential>
       
   322     </macrodef>
       
   323 
       
   324     <!-- Target to run imaker in parallel rom image creation for S60 3.2 based products -->
       
   325     <macrodef name="ecImakerMacro" uri="http://www.nokia.com/helium">
       
   326         <attribute name="makefile.target" />
       
   327         <sequential>
       
   328             <if>
       
   329                 <and>
       
   330                     <equals arg1="${build.system}" arg2="ec-helium" />
       
   331                     <isset property="rom.dryrun" />
       
   332                 </and>
       
   333                 <then>
       
   334                     <antcall target="compile-ec-helium">
       
   335                         <param name="skip.compile-ec-patch" value="yes" />
       
   336                         <param name="sysdef.configuration" value="@{makefile.target}" />
       
   337                         <param name="ec.makefile.file" location="${build.drive}/@{makefile.target}.make" />
       
   338                     </antcall>
       
   339                 </then>
       
   340             </if>
       
   341         </sequential>
       
   342     </macrodef>
       
   343 
       
   344     <!--Private: Internal iMaker macro. -->
       
   345     <macrodef name="internalImakerMacro" uri="http://www.nokia.com/helium">
   105     <macrodef name="internalImakerMacro" uri="http://www.nokia.com/helium">
   346         <attribute name="product" />
   106         <attribute name="product" />
   347         <attribute name="target" />
   107         <attribute name="target" />
   348         <attribute name="makefile" default="" />
   108         <attribute name="makefile" default="" />
   349         <attribute name="cmd" default="" />
   109         <attribute name="cmd" default="" />
   364                 </then>
   124                 </then>
   365                 <else>
   125                 <else>
   366                     <var name="var.makefile" value="-f ${rom.product.path}/@{makefile}" />
   126                     <var name="var.makefile" value="-f ${rom.product.path}/@{makefile}" />
   367                 </else>
   127                 </else>
   368             </if>
   128             </if>
   369             <exec executable="${imaker.command}" dir="${build.drive}" failonerror="${failonerror}">
   129             <exec executable="${imaker.command}" dir="${build.drive}/" failonerror="${failonerror}">
   370                 <arg line="-p@{product} @{cmd}" />
   130                 <arg line="-p@{product} @{cmd}" />
   371                 <arg line="${var.makefile}" />
   131                 <arg line="${var.makefile}" />
   372                 <arg line="@{cmd}" />
   132                 <arg line="@{cmd}" />
   373                 <arg value="@{target}" />
   133                 <arg value="@{target}" />
   374             </exec>
   134             </exec>
   375         </sequential>
   135         </sequential>
   376     </macrodef>
   136     </macrodef>
   377 
   137 
   378     <!-- Timestamp used in flash config file generation -->
       
   379     <tstamp>
       
   380         <format property="fota.release.date" pattern="dd-MM-yy" />
       
   381     </tstamp>
       
   382 
       
   383     <!-- Create flash configration files -->
       
   384     <target name="flash-config-file" if="flash.config.enabled">
       
   385         <runtarget target="rombuild-prepare-input" />
       
   386         <runtarget target="rombuild-create-makefile" />
       
   387 
       
   388         <property name="flash.config.makefile.target" value="flash_config" />
       
   389         <property name="flash.config.makefile.name" value="mc_flash_config.mk" />
       
   390         <hlm:python>
       
   391 import configuration
       
   392 import flash_config
       
   393 import os
       
   394 os.chdir(r'${build.drive}/')
       
   395 configBuilder = configuration.NestedConfigurationBuilder(open(r'${rombuild.config.file.parsed}', 'r'))
       
   396 configSet = configBuilder.getConfiguration()
       
   397 for product in r'${product.list}'.split(','):
       
   398     writer = flash_config.FlashConfigurationWriter(configSet, product)
       
   399     writer.write()
       
   400     </hlm:python>
       
   401         <for list="${product.list}" delimiter="," param="product.name">
       
   402             <sequential>
       
   403                 <hlm:internalImakerMacro product="@{product.name}" target="${flash.config.makefile.target}" makefile="${flash.config.makefile.name}" />
       
   404             </sequential>
       
   405         </for>
       
   406     </target>
       
   407 
       
   408     <!-- The target ido-iby-copy copies the iby files from ido.src.root to ido.romtree
       
   409         Two properties that define from where the files are copied from and whre to. Defauls are 
       
   410         for "ido.src.tree" default value is "${build.drive}${ido.src.root}"  
       
   411         for "ido.romtree" default value is "${build.drive}${env.EPOCROOT}/epoc32/rom/include"  .
       
   412          The IDO should define the ido.src.root and ido.romtree to override the defauls  
       
   413          <deprecated>IDO must now move to the new sysdef structure and use ido-copy-iby.</deprecated>
       
   414     -->
       
   415     <target name="ido-iby-copy">
       
   416         <property name="ido.src.tree" value="${build.drive}${ido.src.root}" />
       
   417         <property name="ido.romtree" value="${build.drive}${env.EPOCROOT}/epoc32/rom/include" />
       
   418         <echo>New files</echo>
       
   419         <!-- the files are in rom folder -->
       
   420         <copy todir="${ido.romtree}" verbose="true" flatten="true">
       
   421             <fileset dir="${ido.src.tree}">
       
   422                 <exclude name="**/internal/**" />
       
   423                 <exclude name="**/tsrc/**" />
       
   424                 <include name="**/rom/*.iby" />
       
   425             </fileset>
       
   426         </copy>
       
   427         <echo>Old files</echo>
       
   428 
       
   429         <copy todir="${ido.romtree}" verbose="true" flatten="true" overwrite="true">
       
   430             <fileset dir="${ido.src.tree}">
       
   431                 <exclude name="**/internal/**" />
       
   432                 <exclude name="**/tsrc/**" />
       
   433                 <include name="**/rom/*.iby" />
       
   434             </fileset>
       
   435         </copy>
       
   436     </target>
       
   437 
       
   438 
       
   439     <!-- Two properties that define from where the files are copied and what platform is used.
       
   440          The IDO should define the ido.src.root and ido.cenrep.platform 
       
   441          The properties ido.cenrep.root and ido.cenrep.target mey be overriden by the user.
       
   442          <deprecated>IDO must now move to the new sysdef structure and use ido-create-cenrep.</deprecated>
       
   443      -->
       
   444     <target name="ido-cenrep" if="ido.cenrep.platform">
       
   445         <property name="ido.src.tree" value="${build.drive}${ido.src.root}" />
       
   446         <property name="ido.cenrep.root" value="${build.drive}${env.EPOCROOT}/epoc32/tools/cenrep" />
       
   447         <property name="ido.cenrep.target" value="${build.drive}${env.EPOCROOT}/epoc32/data/z/private/10202be9" />
       
   448         <echo>Generating cenrep files</echo>
       
   449 
       
   450         <copy todir="${ido.cenrep.root}" verbose="true" flatten="true">
       
   451             <fileset dir="${ido.src.tree}">
       
   452                 <include name="**/cenrep/keys_*.xls" />
       
   453             </fileset>
       
   454         </copy>
       
   455 
       
   456         <!-- in cenrep dir execut 'generate_cenrep_inifile.pl -r %s -d .' % platform -->
       
   457         <exec executable="perl" dir="${ido.cenrep.root}" failonerror="true">
       
   458             <arg value="${ido.cenrep.root}/generate_cenrep_inifile.pl" />
       
   459             <arg value="-r" />
       
   460             <arg value="${ido.cenrep.platform}" />
       
   461             <arg value="-d" />
       
   462             <arg value="." />
       
   463         </exec>
       
   464         <!-- Copy generated files to target path -->
       
   465         <copy todir="${ido.cenrep.target}" verbose="true" flatten="true">
       
   466             <fileset dir="${ido.cenrep.root}">
       
   467                 <include name="????????.txt" />
       
   468             </fileset>
       
   469         </copy>
       
   470 
       
   471     </target>
       
   472 
       
   473     <!--
       
   474         Implement a solution to create build information for imaker.
       
   475     -->
       
   476     <target name="rombuild-imaker-create-buildinfo">
       
   477         <property name="rombuild.buildinfo.template" location="${helium.dir}/tools/common/templates/imaker/image_conf_buildinfo.mk.ftl" />
       
   478         <property name="rombuild.buildinfo.output" location="${build.drive}${env.EPOCROOT}epoc32/rom/config/image_conf_buildinfo.mk" />
       
   479         <fmpp sourceFile="${rombuild.buildinfo.template}" outputFile="${rombuild.buildinfo.output}">
       
   480             <data expandProperties="yes">
       
   481                 ant: antProperties()
       
   482             </data>
       
   483         </fmpp>
       
   484     </target>
       
   485 
       
   486 </project>
   138 </project>