buildframework/helium/doc/src/manual/product_example.rst
changeset 1 be27ed110b50
child 179 d8ac696cc51f
equal deleted inserted replaced
0:044383f39525 1:be27ed110b50
       
     1 .. index::
       
     2   module: Example Product
       
     3 
       
     4 ==================
       
     5 Example Product
       
     6 ==================
       
     7 
       
     8 .. contents::
       
     9 
       
    10 Introduction
       
    11 ============
       
    12 
       
    13 This section gives an example of a product and its configuration files which produces a complete build, link, ROM image generation and variant creation.
       
    14 
       
    15 
       
    16 .. index::
       
    17   single: Example - File Structure
       
    18   
       
    19 .. _product-example-label:
       
    20 
       
    21 Legacy File Structure
       
    22 =====================
       
    23 
       
    24 The following is an example of the file structure required, 'mc' is the product root directory. The convention used here is '\' indicates a sub folder below the current folder. The mc project is saved under synergy or some other version control software. (There is a naming convention; any .xml file that contains ant configuration information is named file.ant.xml if it is purely a configuration file for the project it is named file.xml) ::
       
    25 
       
    26   \mc
       
    27     \helium   #contains the helium tool set.
       
    28     \mc_build #contains the build command files and build configuration files (mostly ant configuration files).
       
    29         languages.xml
       
    30         team.ant.xml
       
    31         \mc_number_build
       
    32             delivery.xml
       
    33             prep.xml
       
    34             rom_image_comfig.xml
       
    35             \all
       
    36                 bld.bat
       
    37                 build.xml
       
    38             \product
       
    39                 build.xml
       
    40                 bld.bat
       
    41        \teams
       
    42           teamName.ant.xml
       
    43     \mc_config    #contains configuration files specific to the product being build e.g. which components to include.
       
    44         \product
       
    45             \rom
       
    46                 \include
       
    47                     mc_product_override.iby
       
    48         \product_edge
       
    49             \rom
       
    50                 \include
       
    51                     mc_product_override.iby
       
    52         \product_lta
       
    53             \rom
       
    54                 \include
       
    55                     mc_product_override.iby
       
    56     \mc_overlay       #these contain files that are to overwite code supplied by S60 in the same structure as is saved in the S60 code under 2 different folders
       
    57         \common       #contains overlay files common to all products
       
    58             \files
       
    59                 \config
       
    60                 \epoc32
       
    61                 .
       
    62                 .
       
    63                 .
       
    64         \product_overlay  #contains files that are to overwite S60 files that are specific to the product and not the others in the family of products.
       
    65             \files
       
    66                 \config
       
    67                 \epoc32
       
    68                 .
       
    69                 .
       
    70                 .
       
    71     \mc_sw      #contains any extra software required for the build i.e. new features to be added that are not yet in the main line code.
       
    72         \mc_nummber_sw
       
    73             \exports
       
    74             
       
    75 
       
    76 Within each folder there needs to be certain files which contain certain configuration information, this is all configurable, but, this example is put here to give you tsome idea of what ot put where.
       
    77 
       
    78 .. index::
       
    79   single: Example - Main Configuration Files
       
    80 
       
    81 Main Configuration Files
       
    82 =========================            
       
    83 
       
    84 The following example files are the main files used within the example.
       
    85 
       
    86 .. index::
       
    87   single: Example - team.ant.xml file
       
    88 
       
    89 team.ant.xml file
       
    90 ------------------
       
    91 
       
    92 This uses the TEAM variable set up in the PC control panel environment variables. The variable name must be in upper case and the value in lower case.
       
    93 
       
    94 .. code-block:: xml
       
    95 
       
    96   <?xml version="1.0" encoding="UTF-8"?>
       
    97   <project name="mc_tools.nbuild.team">
       
    98       <property name="team" value="${env.TEAM}"/>
       
    99       <import file="teams/${team}.ant.xml"/>
       
   100   </project>
       
   101 
       
   102 .. index::
       
   103   single: Example - languages.xml file
       
   104 
       
   105 languages.xml
       
   106 -------------
       
   107 
       
   108 This file contains a list of all the languages used by the product, the example only shows 3.
       
   109 
       
   110 .. code-block:: xml
       
   111 
       
   112   <?xml version="1.0" ?>
       
   113   <languages>
       
   114       <language id="01" name="English"><inc>0</inc><srsf>uk</srsf></language>
       
   115       <language id="02" name="French"><srsf>fre</srsf></language>
       
   116       <language id="03" name="German"><srsf>ger</srsf></language>
       
   117       <language id="326" name="Malay"><core>china</core><srsf>mly326</srsf><fallbacks>70</fallbacks></language>
       
   118   </languages>
       
   119 
       
   120 
       
   121 .. index::
       
   122   single: Example - delivery.xml file
       
   123 
       
   124 Delivery.xml
       
   125 -------------
       
   126 
       
   127 This file contains the list of projects that should be checkedout or copied (snapshot) from synergy.
       
   128 
       
   129 .. code-block:: xml
       
   130 
       
   131   <build>
       
   132       <spec name="mc_number" abstract="true">
       
   133           <set name="database" value="${ccm.database}"/>
       
   134           <set name="dir" value="${ccm.base.dir}" />
       
   135           <set name="threads" value="6" />
       
   136           <set name="use.reconfigure.template" value="false" />
       
   137           <set name="release" value="${release.tag}" />
       
   138           
       
   139           <spec name="proj1_sw-wk200832:project:db1#1" type="snapshot" />
       
   140   
       
   141           <spec name="proj2-db2#0833:project:db3#1" type="checkout" />
       
   142           <spec name="cellmo" abstract="true">
       
   143               <set name="dir" value="${ccm.base.dir}\cellmo" />
       
   144               <set name="threads" value="1" />
       
   145   
       
   146               <spec name="cellmo_bins_rmnum_product-wk08w31:project:db1#1" type="snapshot" />
       
   147               <spec name="cellmo_bins_rmnum_product_chn-wk08w31:project:db5#1" type="snapshot" />
       
   148               <spec name="cellmo_bins_rmnum_product_lta-wk08w31:project:db6#1" type="snapshot" />
       
   149           </spec>
       
   150       </spec>
       
   151   </build>
       
   152   
       
   153 
       
   154 .. index::
       
   155   single: Example - prep.xml file
       
   156 
       
   157 prep.xml
       
   158 -----------
       
   159 
       
   160 This file takes the checked out projects (and snapshots) and copies them to the build area, unzipping those files that need unzipping.
       
   161 
       
   162 .. code-block:: xml
       
   163 
       
   164   <?xml version="1.0" encoding="UTF-8"?>
       
   165   <prepSpec>
       
   166       <config>
       
   167           <exclude name="abld.bat"/>
       
   168           <exclude name=".static_wa"/>
       
   169           <exclude name="_ccmwaid.inf"/>
       
   170           <exclude name="documentation/*"/>
       
   171           <exclude name="documents/*"/>
       
   172           <exclude name="doc/*"/>
       
   173       </config>
       
   174       
       
   175       <source label="Symbian" basedir="${symbian.release.dir}">
       
   176           <unzip name="${symbian.zip.prefix}${symbian.release}_src_generic_part1.zip"/>
       
   177           <unzip name="${symbian.zip.prefix}${symbian.release}_src_generic_part2.zip"/>
       
   178           <unzip name="${symbian.zip.prefix}${symbian.release}_src_generic_part3.zip"/>
       
   179           <unzip name="${symbian.zip.prefix}${symbian.release}_src_cedar.zip"/>
       
   180           <unzip name="${symbian.zip.prefix}${symbian.release}_src_common_other_sources_part2.zip"/>
       
   181   
       
   182           <!-- This is required to generate all the .jar files correctly under \epoc32\tools\ -->
       
   183           <unzip name="${symbian.zip.prefix}${symbian.release}_src_product.zip" dest="${build.drive}/src"/>
       
   184   
       
   185           <unzip name="${symbian.zip.prefix}${symbian.release}_epoc32.zip"/>
       
   186           <unzip name="${symbian.zip.prefix}${symbian.release}_epoc32_RELEASE_ARMV5.zip"/>
       
   187       </source>
       
   188   
       
   189       <!-- Unzip (ICF/ICD)'s if there are any -->
       
   190       <source name="icds" basedir="">
       
   191         <unzipicds dest="${build.drive}\">
       
   192           <!-- Unzipping from following location
       
   193                * S60
       
   194                * common
       
   195                * product
       
   196             -->
       
   197           <location name="${ccm.base.dir}/S60/S60/Symbian_ICD_ICF/${symbian.release}" />
       
   198           <location name="${mc_number_build.dir}../../../mc_overlay/${product.family}_overlay/common/files/s60/Symbian_ICD_ICF/${symbian.release}" />
       
   199         </unzipicds>
       
   200       </source>
       
   201   
       
   202       <!-- Unzip (ICF/ICD)'s if there are any -->
       
   203       <source name="product_icds" basedir="">
       
   204         <unzipicds dest="${build.drive}\">
       
   205           <location name="${mc_number_build.dir}../../../mc_overlay/${product.family}_overlay/common/files/s60/Symbian_ICD_ICF/product_ICF" />
       
   206         </unzipicds>
       
   207       </source>
       
   208   
       
   209       <!-- copying  s60 content -->
       
   210       <source label="S60" basedir="${ccm.base.dir}">
       
   211         <copy name="S60/s60"   dest="s60" />
       
   212       </source>
       
   213   
       
   214       <source label="IBUSAL51" basedir="${ccm.base.dir}/">
       
   215         <copy name="IBUSAL_RapidoYawe/IBUSAL_RapidoYawe"/>
       
   216       </source>
       
   217       
       
   218      <source label="component_SW" basedir="${ccm.base.dir}">
       
   219          <copy name="component_sw"         dest="component_sw"/>
       
   220      </source>
       
   221   
       
   222       <source label="CELLMO" basedir="${ccm.base.dir}">
       
   223          <unzip name="\cellmo\cellmo_bins_rm2num_product\cellmo_bins_rmnum_product\rmnum_product.zip" dest="${build.drive}\cellmo\${cellmo.imagename.product}"/> 
       
   224          <unzip name="\cellmo\cellmo_bins_rmnum_product_chn\cellmo_bins_rmnum_product_chn\rmnum_product_chn.zip" dest="${build.drive}\cellmo\${cellmo.imagename.product.edge}"/> 
       
   225          <unzip name="\cellmo\cellmo_bins_rmnum_product_lta\cellmo_bins_rmnum_product_lta\rmnum_product_lta.zip" dest="${build.drive}\cellmo\${cellmo.imagename.product.lta}"/> 
       
   226       </source>
       
   227       <source label="CELLMO_copy" basedir="${build.drive}\cellmo">
       
   228           <!-- product cellmo copy -->
       
   229           <copy name="${cellmo.imagename.product}\${dsp.imagename}.hex"  tofile="${build.drive}\epoc32\rom\config\PLATFORM\product\dsp.hex"/>
       
   230           <copy name="${cellmo.imagename.product}\nalo.axf"      tofile="${build.drive}\epoc32\rom\config\PLATFORM\product\nalo.axf"/>
       
   231           <copy name="${cellmo.imagename.product}\naloext.axf"    tofile="${build.drive}\epoc32\rom\config\PLATFORM\product\naloext.axf"/>
       
   232           <copy name="${cellmo.imagename.product}\3rd.bin"       tofile="${build.drive}\epoc32\rom\config\PLATFORM\product\3rd.bin"/>
       
   233           <copy name="${cellmo.imagename.product}\${cellmo.imagename.product}.out"  tofile="${build.drive}\epoc32\rom\config\PLATFORM\product\isa.out"/>
       
   234           <!-- product Edge cellmo copy -->
       
   235           <copy name="${cellmo.imagename.product.edge}\${dsp.imagename.edge}.hex"  tofile="${build.drive}\epoc32\rom\config\PLATFORM\product_edge\dsp.hex"/>
       
   236           <copy name="${cellmo.imagename.product.edge}\nalo.axf"      tofile="${build.drive}\epoc32\rom\config\PLATFORM\product_edge\nalo.axf"/>
       
   237           <copy name="${cellmo.imagename.product.edge}\naloext.axf"    tofile="${build.drive}\epoc32\rom\config\PLATFORM\product_edge\naloext.axf"/>
       
   238           <copy name="${cellmo.imagename.product.edge}\3rd.bin"       tofile="${build.drive}\epoc32\rom\config\PLATFORM\product_edge\3rd.bin"/>
       
   239           <copy name="${cellmo.imagename.product.edge}\${cellmo.imagename.product.edge}.out"  tofile="${build.drive}\epoc32\rom\config\PLATFORM\product_edge\isa.out"/>
       
   240           <!--
       
   241       </source>
       
   242       <source name="patches" basedir="">
       
   243         <unzipicds dest="${build.drive}\">
       
   244           <location name="${patch.zip.dir}" />
       
   245           <include name="*" />
       
   246         </unzipicds>
       
   247       </source>
       
   248       
       
   249   </prepSpec>
       
   250   
       
   251 
       
   252 .. index::
       
   253   single: Example - rom_image_config.xml file
       
   254 
       
   255 Legacy rom_image_config.xml file
       
   256 --------------------------------
       
   257 
       
   258 This file contains all the information necessary to create the rom image, i.e. what variants are to be created and which libraries are to go in each variant.
       
   259 
       
   260 .. code-block:: xml
       
   261 
       
   262   <?xml version="1.0" encoding="UTF-8"?>
       
   263   <build xmlns:xi="http://www.w3.org/2003/XInclude">
       
   264       <spec name="mc" abstract="true">
       
   265           <set name="ui.platform" value="mcnumber"/>
       
   266           <set name="zips.loc.dir" value="${zips.loc.dir}" />
       
   267           <set name="languages.xml.location" value="${localisation.language.file}" />
       
   268           <set name="variation.dir" value="${build.drive}\mc\mc_config\mc_number_config\product\variation" />
       
   269           <set name="rombuild.config.file" value="${rombuild.config.file.parsed}" />
       
   270           <set name="version.product.name" value="N78"/>
       
   271           <set name="imaker.languagepack.automation" value="0"/>
       
   272           <set name="enable.romsymbol" value="1"/>
       
   273           <set name="today" value="$(TODAY)"/>
       
   274           <set name="languagepack.id" value="000"/> <!-- language pack id is 000 in case of EE. -->
       
   275           <set name="customer.id" value="000"/> <!-- customer id is 000 in case of EE. -->
       
   276           <set name="uda.id" value="000" />
       
   277           <set name="massmemory.id" value="000" />
       
   278           <set name="memorycard.id" value="000" />
       
   279           <set name="customer.revision" value="1"/>
       
   280           <set name="uda.revision" value="1"/>
       
   281           <set name="massmemory.revision" value="1" />
       
   282           <set name="memorycard.revision" value="1" />
       
   283       
       
   284     <!-- This property can be overriden by variant team -->
       
   285           <set name="rommake.flags.vt" value=""/>
       
   286           <set name="rommake.flags" value="-es60ibymacros -DXTI_TRACES -DNO_PLATSEC ${rommake.flags.vt}"/>
       
   287           <set name="version.bandvariant" value="0"/>
       
   288           <set name="version.pd.milestone" value="${major.version}"/>
       
   289           <set name="version.pr" value="${pr}"/>
       
   290           <set name="version.m.step" value="${m.step}"/>
       
   291           <set name="version.bandvariant" value="0"/>
       
   292           <set name="version.rimcycle" value="${minor.version}"/>
       
   293   
       
   294           <set name="image.version.name" value="${version.pr}.${build.number}${fota.a.build}" />
       
   295           <set name="rombuild.id" value="${rommake.product.type}_${image.version.name}"/>
       
   296   
       
   297           <set name="rom.output.dir" value="${build.output.dir}"/>
       
   298           <set name="image.type" value="prd,rnd"/>
       
   299           <set name="customer.type" value="vanilla"/>
       
   300           <set name="uda.type" value="vanilla"/>
       
   301           <set name="image.master.iby" value="\epoc32\rom\master.oby"/>
       
   302           <set name="image.variant.iby" value="\epoc32\rom\mc_number_variant_imaker.oby"/>
       
   303           <set name="include.rnd.oby" value="$(if $(subst rnd,,$(TYPE)),0,1)" /> <!-- include rnd applications only in rnd images -->
       
   304           <set name="image.override.iby" value="\epoc32\rom\override.oby"/>
       
   305           <set name="version.copyright" value="(C) Nokia"/>
       
   306           <set name="build.drive" value="${build.drive}"/>
       
   307           <set name="customer.image.version.name" value="${image.version.name}" />
       
   308           <set name="uda.image.version.name" value="${image.version.name}" />
       
   309           <set name="massmemory.image.version.name" value="${image.version.name}" />
       
   310           <set name="memorycard.image.version.name" value="${image.version.name}" />
       
   311       
       
   312   
       
   313           <!-- Template full outputdir  (used by iMaker for ROM generation) -->
       
   314           <set name="flash.output.dir" value="${rom.output.dir}/development_flash_images/engineering_english/${image.type}"/>
       
   315           <set name="core.output.dir" value="${rom.output.dir}/${core.image.path}"/>
       
   316           <set name="languagepack.output.dir" value="${rom.output.dir}/${languagepack.image.path}"/>
       
   317           <set name="customer.output.dir" value="${rom.output.dir}/${customer.image.path}"/>
       
   318           <set name="uda.output.dir" value="${rom.output.dir}${uda.image.path}"/>
       
   319           <set name="eraseuda.output.dir" value="${rom.output.dir}"/>
       
   320           <set name="flash.config.publish.dir" value="${build.output.dir}/${flash.config.path}"/> 
       
   321           
       
   322           <!-- Template relative paths  -->
       
   323           <set name="core.image.path" value="release_flash_images/${image.type}/core" />
       
   324           <set name="languagepack.image.path" value="release_flash_images/${image.type}/language/${description}_${languagepack.id}" />
       
   325           <set name="customer.image.path" value="release_flash_images/${image.type}/customer/${customer.type}/${description}_${customer.id}" />
       
   326           <set name="uda.image.path" value="release_flash_images/${image.type}/uda/${uda.type}/${description}_${uda.id}" />
       
   327           <set name="memorycard.image.path" value="release_flash_images/memorycard/${description}_${memorycard.id}" />
       
   328           <set name="massmemory.image.path" value="release_flash_images/massmemory/${description}_${massmemory.id}" />
       
   329           <set name="flash.config.path" value="${customer.image.path}" />
       
   330   
       
   331           <!-- Template names  -->
       
   332           <set name="flash.image.name" value="${rombuild.id}_${image.type}_${flash.id}"/>    
       
   333           <set name="eraseuda.image.name" value="${rombuild.id}_${build.version}"/>    
       
   334           <set name="empty.eraseuda.image.name" value="${rombuild.id}_${build.version}_empty"/>    
       
   335           <set name="core.image.name" value="${rombuild.id}_${image.type}"/>
       
   336           <set name="languagepack.image.name" value="${rombuild.id}_${languagepack.id}_${image.type}"/>
       
   337           <set name="customer.image.name" value="${rommake.product.type}_${customer.image.version.name}_${customer.id}.${customer.revision}_${image.type}"/>
       
   338           <set name="uda.image.name" value="${rommake.product.type}_${uda.image.version.name}_${uda.id}.${uda.revision}_${image.type}"/>
       
   339           <set name="memorycard.image.name" value="${rommake.product.type}_${memorycard.image.version.name}_${memorycard.id}.${memorycard.revision}"/>
       
   340           <set name="massmemory.image.name" value="${rommake.product.type}_${massmemory.image.version.name}_${massmemory.id}.${massmemory.revision}"/>
       
   341           <set name="flash.config.name" value="${languagepack.image.name}_${customer.image.version.name}.${customer.id}.${customer.revision}_${image.type}_${uda.image.version.name}.${uda.id}.${uda.revision}_${image.type}_${massmemory.id}.${massmemory.revision}_${memorycard.id}.${memorycard.revision}.config.xml"/>
       
   342           
       
   343   
       
   344           <!-- fwid generation -->
       
   345           <set name="rofs1.fwid.id" value="core"/>
       
   346           <set name="rofs2.fwid.id" value="language"/>
       
   347           <set name="rofs3.fwid.id" value="customer"/>
       
   348           <set name="rofs1.fwid.version" value="${version.product.type}_${core.version.info}"/>
       
   349           <set name="rofs2.fwid.version" value="${rofs2.version.info}"/>
       
   350           <set name="rofs3.fwid.version" value="${rofs3.version.info}"/>
       
   351           <set name="fota.fwid" value="${rofs1.fwid.version} ${rofs2.fwid.version} ${rofs3.fwid.version}"/>
       
   352   
       
   353   
       
   354           <!-- Core version string format-->
       
   355           <set name="core.template" value="${core.version.info}\\n${today}\\n${version.product.type}\\n(C)Nokia"/>
       
   356           <set name="languagepack.template" value="${rofs2.version.info}\\n${today}\\n${version.product.type}" />
       
   357           <set name="variant.template" value="${languagepack.template}" /> <!-- Backward compatibility -->
       
   358           <set name="customer.template" value="${rofs3.version.info}\\\n${today}"/>
       
   359           <set name="model.template" value="${version.copyright} ${version.product.name}"/>
       
   360           <set name="uda.template" value="${pr}.${version.bandvariant}.${build.number}\\n${today}\\n${product.type}\\n${copyright} ${version.product.name} (${uda.id})"/>
       
   361   
       
   362           <!-- default localisation settings -->
       
   363           <set name="variation" value="western"/>
       
   364           <set name="languagepack.revision" value="1"/>
       
   365           <set name="description" value=""/>
       
   366   
       
   367           <!-- Do not build target in parallel by default -->
       
   368           <set name="build.parallel" value="false" />
       
   369   
       
   370           <!-- templates to generate the makefiles -->
       
   371           <set name="output.makefile.filename" value="${rombuild.makefile.name}"/>
       
   372           <set name="main.makefile.template" value="${build.drive}\mc\mc_config\mc_number_config\rombuild\main.mk"/>
       
   373           <set name="flash.makefile.template" value="${build.drive}\mc\mc_config\mc_number_config\rombuild\flash.mk"/>
       
   374           <set name="core.makefile.template" value="${build.drive}\mc\mc_config\mc_number_config\rombuild\core.mk"/>
       
   375           <set name="languagepack.makefile.template" value="${build.drive}\mc\mc_config\mc_number_config\rombuild\languagepack.mk"/>
       
   376           <set name="customer.makefile.template" value="${build.drive}\mc\mc_config\mc_number_config\rombuild\customer.mk"/>
       
   377           <set name="uda.makefile.template" value="${build.drive}\mc\mc_config\mc_number_config\rombuild\uda.mk"/>
       
   378           <set name="eraseuda.makefile.template" value="${build.drive}\mc\mc_config\mc_number_config\rombuild\eraseuda.mk"/>
       
   379           <set name="flash.config.template" value="${build.drive}\mc\mc_config\mc_number_config\rombuild\template.config.xml"/>
       
   380           <set name="flash.config.makefile.template" value="${build.drive}\mc\mc_config\mc_number_config\rombuild\flash_config.mk"/>
       
   381           <set name="makeupct_core.makefile.template" value="..\..\mc\mc_config\mc_number_config\rombuild\makeupct_core.mk"/>
       
   382           
       
   383           <spec name="product" abstract="true">
       
   384       
       
   385               <set name="config.name" value="product"/>
       
   386               <set name="version.bandvariant" value="0"/>
       
   387   
       
   388               <set name="rommake.hwid" value="num1"/>
       
   389               <set name="version.product.type" value="RM-num"/>
       
   390               <set name="rommake.product.name" value="product"/>
       
   391               <set name="rommake.product.type" value="RM-num"/>
       
   392   
       
   393               <spec type="TemplateBuilder">
       
   394                   <set name="template.build.id" value="${pr}.${build.number}" />
       
   395                   <set name="template.file" value="${build.drive}\config\s60_32_config\number_config\number_product_config\config\data\CenrepVar_product\data\VariantData_product_template.xml" />
       
   396                   <set name="output.file" value="${build.drive}\config\s60_32_config\number_config\number_product_config\config\data\CenrepVar_product\data\VariantData_product.xml" />
       
   397               </spec>
       
   398   
       
   399               <spec name="ee_group" abstract="true">
       
   400                   <set name="image.type" value="rnd,prd"/>
       
   401                   <set name="variant.txt.path" value="\epoc32\data\z\resource\versions\langsw.${config.name}.txt"/>
       
   402                   <set name="image.type.version" value="EE$(if $(subst rnd,,$(TYPE)),,RD)" /> <!-- EE for Prd, EERD for R&D -->               
       
   403   
       
   404                   <!-- GUI images -->
       
   405                   <spec name="ee_roms" abstract="true">
       
   406                       <set name="build.parallel" value="true" />
       
   407                       <set name="flash.image.name" value="${rombuild.id}_${image.type}"/>                  
       
   408                       
       
   409                       <spec name="ee_rnd" abstract="true">
       
   410                           <set name="image.type" value="rnd"/>
       
   411                           
       
   412                           <spec type="flash">                            
       
   413                               <set name="flash.id" value="ui" />
       
   414                               <set name="use.foti" value="0"/>
       
   415                               <set name="use.fota" value="0"/>                       
       
   416                           </spec>                    
       
   417                           
       
   418                           <spec type="eraseuda"/>
       
   419                       </spec>
       
   420   
       
   421                       <spec name="ee_prd" abstract="true">
       
   422                           <set name="image.type" value="prd"/>
       
   423                           
       
   424                           <spec type="flash">                            
       
   425                               <set name="flash.id" value="ui" />
       
   426                               <set name="use.foti" value="1"/>
       
   427                               <set name="use.fota" value="1"/>                       
       
   428                           </spec>                                        
       
   429                           
       
   430                           <spec type="eraseuda"/>
       
   431                       </spec>
       
   432                   </spec>
       
   433       
       
   434                   <spec name="subcon_roms" abstract="true">
       
   435                       <set name="build.parallel" value="true" />
       
   436                       <set name="image.type" value="subcon"/>
       
   437                       
       
   438                       <spec type="flash">
       
   439                           <set name="flash.id" value="ui" />
       
   440                       </spec>
       
   441       
       
   442                       <spec type="eraseuda"/>
       
   443                   </spec>
       
   444       
       
   445       
       
   446                   <spec name="traces" abstract="true">
       
   447                       <set name="build.parallel" value="false" />
       
   448                       <set name="flash.output.dir" value="${rom.output.dir}/${rommake.product.name}/${flash.id}_traces"/>    
       
   449                           
       
   450           
       
   451                       <spec type="flash">
       
   452                           <set name="flash.id" value="wakeup_trace" />
       
   453                           <set name="image.type" value="rnd"/>
       
   454                           <set name="mytraces.binaries" value="
       
   455                               SysStartlib1.exe" />
       
   456                       </spec>
       
   457           
       
   458                       <spec type="flash">
       
   459                           <set name="flash.id" value="telephony" />
       
   460                           <set name="image.type" value="rnd"/>
       
   461                           <set name="mytraces.binaries" value="
       
   462                               telephontlib1.LIB"/>
       
   463                       </spec>
       
   464           
       
   465                       <spec type="flash">
       
   466                           <set name="flash.id" value="audio" />
       
   467                           <set name="image.type" value="rnd"/>
       
   468                           <set name="mytraces.binaries" value="
       
   469                               audiolibrary1.dll,
       
   470                               audiolibrary2.dll"/>
       
   471                       </spec>
       
   472           
       
   473                       <spec type="flash">
       
   474                           <set name="flash.id" value="videotelephony" />
       
   475                           <set name="image.type" value="rnd"/>
       
   476                           <set name="mytraces.binaries" value="
       
   477                               videolibrary1.dll,
       
   478                               videolibrary2.dll"/>
       
   479                       </spec>
       
   480           
       
   481                       <spec type="flash">
       
   482                           <set name="flash.id" value="mms" />
       
   483                           <set name="image.type" value="rnd"/>
       
   484                           <set name="mytraces.binaries" value="
       
   485                               mmslib1.dll,
       
   486                               mmslib2.dll"/>
       
   487                       </spec>
       
   488           
       
   489                       <spec type="flash">
       
   490                           <set name="flash.id" value="sms" />
       
   491                           <set name="image.type" value="rnd"/>
       
   492                           <set name="mytraces.binaries" value="
       
   493                               smsslib1.dll"/>
       
   494                       </spec>
       
   495           
       
   496       
       
   497                   </spec>
       
   498               </spec>
       
   499           
       
   500               <!-- Language pack and Variant -->
       
   501               <spec name="variants" abstract="true">
       
   502                   <set name="build.parallel" value="false" />        
       
   503                   <!-- core -->
       
   504                   <spec type="core">
       
   505                       <set name="core.id" value="000" />
       
   506                       <spec type="makeupct_core" />
       
   507                   </spec>
       
   508            
       
   509                   <!-- western group -->
       
   510                   <spec name="western" abstract="true">
       
   511                       <set name="build.parallel" value="true" />
       
   512                       <spec type="languagepack">
       
   513                           <set name="languagepack.id" value="001" />
       
   514                           <set name="default" value="01"/>
       
   515                           <set name="languages" value="01,02,03,05,04,13"/>
       
   516                           <set name="description" value="EURO1"/>
       
   517                           <set name="variation" value="western"/>
       
   518                       </spec> 
       
   519                       <spec type="languagepack">
       
   520                           <set name="languagepack.id" value="002"/>
       
   521                           <set name="default" value="01"/>
       
   522                           <set name="languages" value="01,02,03,14,05,18"/>
       
   523                           <set name="description" value="EURO2"/>
       
   524                       </spec>
       
   525                       <spec type="languagepack">
       
   526                           <set name="languagepack.id" value="003"/>
       
   527                           <set name="default" value="01"/>
       
   528                           <set name="languages" value="01,09,06,08,15,07"/>
       
   529                           <set name="description" value="SCANDINAVIA"/>
       
   530                       </spec>
       
   531      
       
   532            
       
   533                   <!-- china group -->
       
   534                   <spec  name="china" abstract="true">
       
   535                       <set name="build.parallel" value="true" />
       
   536                       <set name="variation" value="china" />
       
   537                       <spec type="languagepack">
       
   538                           <set name="languagepack.id" value="011"/>
       
   539                           <set name="default" value="29"/>
       
   540                           <set name="languages" value="29,157"/>
       
   541                           <set name="description" value="CHINESE_TAIWAN"/>
       
   542                       </spec>
       
   543                   </spec>
       
   544               
       
   545                   <!-- japan group -->
       
   546                   <spec  name="japan" abstract="true">
       
   547                       <set name="build.parallel" value="true" />
       
   548                       <set name="variation" value="japan" />
       
   549                       <spec  type="languagepack">
       
   550                           <set name="languagepack.id" value="014"/>
       
   551                           <set name="default" value="160"/>
       
   552                           <set name="languages" value="160,32"/>
       
   553                           <set name="description" value="JAPAN"/>
       
   554                       </spec>
       
   555                   </spec>
       
   556               </spec>
       
   557           </spec>
       
   558   
       
   559           <!--
       
   560             product edge configuration
       
   561           -->
       
   562           <spec name="product_edge" abstract="true">
       
   563               <set name="config.name" value="product_edge"/>
       
   564               <set name="variation.dir" value="${build.drive}\mc\mc_config\mc_number_config\product_edge\variation" />
       
   565               <set name="version.bandvariant" value="1"/>
       
   566               <set name="zips.loc.dir" value="${zips.loc.dir}" />
       
   567               <set name="variation" value="western"/>
       
   568               <set name="config.name" value="product_edge"/>
       
   569               <set name="rommake.product.name" value="product_edge"/>
       
   570               <set name="version.product.type" value="RM-num"/>
       
   571               <set name="rommake.product.type" value="RM-num"/>
       
   572         
       
   573               <set name="rommake.hwid" value="2100"/>
       
   574   
       
   575               <spec type="TemplateBuilder">
       
   576                   <set name="template.build.id" value="${pr}.${build.number}" />
       
   577                   <set name="template.file" value="${build.drive}\config\s60_32_config\number_config\number_product_edge_config\config\data\CenrepVar_productedge\data\VariantData_productedge_template.xml" />
       
   578                   <set name="output.file" value="${build.drive}\config\s60_32_config\number_config\number_product_edge_config\config\data\CenrepVar_productedge\data\VariantData_productedge.xml" />
       
   579               </spec>
       
   580   
       
   581               <spec name="ee_group" abstract="true">
       
   582                   <set name="image.type" value="rnd,prd"/>
       
   583                   <set name="variant.txt.path" value="\epoc32\data\z\resource\versions\langsw.${config.name}.txt"/>
       
   584                   <set name="image.type.version" value="EE$(if $(subst rnd,,$(TYPE)),,RD)" /> <!-- EE for Prd, EERD for R&D -->
       
   585                   
       
   586   
       
   587                   <!-- GUI images -->
       
   588                   <spec name="ee_roms" abstract="true">
       
   589                       <set name="build.parallel" value="true" />   
       
   590                       <set name="flash.image.name" value="${rombuild.id}_${image.type}"/>               
       
   591                       
       
   592                       <spec name="ee_rnd" abstract="true">
       
   593                           <set name="image.type" value="rnd"/>
       
   594                           
       
   595                           <spec type="flash">                            
       
   596                               <set name="flash.id" value="ui" />
       
   597                               <set name="use.foti" value="0"/>
       
   598                               <set name="use.fota" value="0"/>                       
       
   599                           </spec>                    
       
   600                           
       
   601                           <spec type="eraseuda"/>
       
   602                       </spec>
       
   603   
       
   604                       <spec name="ee_prd" abstract="true">
       
   605                           <set name="image.type" value="prd"/>
       
   606                           
       
   607                           <spec type="flash">                            
       
   608                               <set name="flash.id" value="ui" />
       
   609                               <set name="use.foti" value="1"/>
       
   610                               <set name="use.fota" value="1"/>                       
       
   611                           </spec>                                        
       
   612                           
       
   613                           <spec type="eraseuda"/>
       
   614                       </spec>
       
   615                   </spec>
       
   616       
       
   617                   <spec name="subcon_roms" abstract="true">
       
   618                       <set name="build.parallel" value="true" />
       
   619                       <set name="image.type" value="subcon"/>
       
   620                       
       
   621                       <spec type="flash">
       
   622                           <set name="flash.id" value="ui" />
       
   623                       </spec>
       
   624       
       
   625                       <spec type="eraseuda"/>
       
   626                   </spec>
       
   627       
       
   628       
       
   629                   <spec name="traces" abstract="true">
       
   630                       <set name="build.parallel" value="false" />
       
   631                       <set name="flash.output.dir" value="${rom.output.dir}/${rommake.product.name}/${flash.id}_traces"/>    
       
   632                           
       
   633           
       
   634                       <spec type="flash">
       
   635                           <set name="flash.id" value="wakeup_trace" />
       
   636                           <set name="image.type" value="rnd"/>
       
   637                           <set name="mytraces.binaries" value="
       
   638                               SysStartlib1.exe" />
       
   639                       </spec>
       
   640           
       
   641                       <spec type="flash">
       
   642                           <set name="flash.id" value="telephony" />
       
   643                           <set name="image.type" value="rnd"/>
       
   644                           <set name="mytraces.binaries" value="
       
   645                               telephonylib1.LIB"/>
       
   646                       </spec>
       
   647           
       
   648                       <spec type="flash">
       
   649                           <set name="flash.id" value="audio" />
       
   650                           <set name="image.type" value="rnd"/>
       
   651                           <set name="mytraces.binaries" value="
       
   652                               audiolib1.dll"/>
       
   653                       </spec>
       
   654           
       
   655                       <spec type="flash">
       
   656                           <set name="flash.id" value="videotelephony" />
       
   657                           <set name="image.type" value="rnd"/>
       
   658                           <set name="mytraces.binaries" value="
       
   659                               videolib1.dll"/>
       
   660                       </spec>
       
   661           
       
   662                   </spec>
       
   663               </spec>
       
   664   
       
   665               <spec name="variants" abstract="true">
       
   666                   <set name="variation" value="china"/>
       
   667                   <set name="build.parallel" value="false" />      
       
   668                   <!-- core -->
       
   669                   <spec type="core">
       
   670                       <set name="core.id" value="000" />
       
   671                       <set name="image.type" value="rnd,prd"/>
       
   672                       <spec type="makeupct_core" />
       
   673                   </spec>
       
   674   
       
   675                   <!-- customer -->
       
   676                   <spec  type="customer">
       
   677                       <set name="customer.id" value="053"/>
       
   678                       <set name="customer.revision" value="1"/>
       
   679                       <set name="description" value="edge_customer_variant"/>
       
   680                   </spec>
       
   681   
       
   682                   <spec type="languagepack">
       
   683                       <set name="languagepack.id" value="020"/>
       
   684                       <set name="default" value="31"/>
       
   685                       <set name="languages" value="159,31"/>
       
   686                       <set name="description" value="CHINAPRC_NoFMTX"/>
       
   687                   </spec>
       
   688       <xi:include href="${product_edge.variant.config}"/>
       
   689   
       
   690               </spec>
       
   691           </spec>
       
   692     
       
   693       
       
   694           </spec>    
       
   695       </spec>
       
   696   </build>
       
   697 
       
   698 
       
   699 .. index::
       
   700   single: Example - bld.bat
       
   701 
       
   702 bld.bat
       
   703 --------------------
       
   704 
       
   705 This file is the one called when you start helium and it simply calls the hlm.bat file in the helium directory. ::
       
   706 
       
   707   @echo off
       
   708   
       
   709   if not defined HELIUM_HOME set HELIUM_HOME=%~dp0..\..\..\helium
       
   710   
       
   711   %HELIUM_HOME%\hlm.bat %*
       
   712 
       
   713 
       
   714 .. index::
       
   715   single: Example - build.xml
       
   716 
       
   717 build.xml
       
   718 --------------------
       
   719 
       
   720 This file contains all the initial product specific configuration required  by helium.
       
   721 
       
   722 .. code-block:: xml
       
   723 
       
   724   <?xml version="1.0" encoding="UTF-8"?>
       
   725   <project>
       
   726       <property environment="env"/>                                         #the PC property 'ENVIRONMENT' is replaced with 'env'
       
   727       <import file="../../team.ant.xml"/>                                   #where to get the config file containing the team specific information.
       
   728       
       
   729       <property name="product.list" value="product,product_edge,product_lta"/> #the list of products to be built
       
   730       <!-- build.number should be defined as a commandline parameter -->
       
   731       <property name="major.version" value="14"/>                           #release version
       
   732       <property name="minor.version" value="PR14"/>
       
   733       <property name="pr" value="14" />
       
   734       <property name="m.step" value="3" />
       
   735           
       
   736       <property name="armv5.only" value="1" />                              #only build for armv5
       
   737       <property name="build.version" value="${pr}.${build.number}" />       #create the build version
       
   738       
       
   739       <property name="local.free.space" value="102400" />
       
   740   
       
   741       #these are the configuration files specific to each variant
       
   742       <property name="product.variant.config" location="${build.drive}/mc/mc_build/mc_family_build/dummy_variant_config.xml" />
       
   743       <property name="product_edge.variant.config" location="${build.drive}/mc/mc_build/mc_family_build/dummy_variant_config.xml" />
       
   744       <property name="product_lta.variant.config" location="${build.drive}/mc/mc_build/mc_family_build/dummy_variant_config.xml" />
       
   745   
       
   746       <property name="build.errors.limit" value="-1" />
       
   747       <property name="flash.config.enabled" value="enabled" />
       
   748       
       
   749        <!-- -->
       
   750       <import file="../mc_family_build.ant.xml"/>                 #include the family product config file
       
   751 
       
   752       <path id="system.definition.files">                       #locations of various system configuration files.
       
   753           <pathelement path="${build.drive}/mc/mc_build/mc_family_build/family_System_Definition.xml"/>
       
   754           <pathelement path="${build.drive}/mc/mc_build/mc_family_build/family_SDF_loc.xml"/>
       
   755           <pathelement path="${build.drive}/mc/mc_build/ibusal_51_build/IBUSAL51_System_Definition.xml" />
       
   756           <fileset dir="${build.drive}/s60/tools/build_platforms/build/data" includes="S60_System*.xml"/>
       
   757           <pathelement path="${build.drive}/mc/mc_build/mc_family_build/product/product_System_Definition.xml" />
       
   758           <pathelement path="${build.drive}/MULTIMEDIA_SW/ME_SCD_DESW/ME_SCD_DESW/sysdef/System_Definition_product.xml" />
       
   759       </path>
       
   760   
       
   761   </project>
       
   762   
       
   763 
       
   764 .. index::
       
   765   single: Example - teamName.ant.xml
       
   766 
       
   767 teamName.ant.xml
       
   768 --------------------
       
   769 
       
   770 This file contains all the configuration required by a particular team, it lists where the servers are and the locations of synergy variables, GRACE variables etc.:
       
   771 
       
   772 .. code-block:: xml
       
   773 
       
   774   <?xml version="1.0" encoding="UTF-8"?>
       
   775   <project name="teamName">
       
   776       <property name="publish.root.dir" value="\\faba\df\r1120\NT\Build_and_Release\temp"/>
       
   777       <property name="prep.root.dir" value="E:/${user.name}/BuildArea"/>
       
   778       <property name="build.drive" value="z:"/>
       
   779       
       
   780       
       
   781       <!-- Synergy configuration -->
       
   782       <property name="ccm.database" value="fa1ffamily" />
       
   783       <property name="ccm.database.path" value="/nokia/fa/grps/dbs/${ccm.database}" />
       
   784       <property name="ccm.engine.host" value="faweh.erp.company.com" />
       
   785           <!-- used to set ccm.base.dir -->
       
   786       <property name="ccm.home.dir" location="E:/${user.name}/ccm_wa/${ccm.database}" />
       
   787       
       
   788       
       
   789       <!-- Root path for all Synergy work areas. -->    
       
   790       <property name="nss.zip.dir" value="\\faba\df\r1120\NT\Build_and_Release\GRACE\MC\NSS" />
       
   791       <property name="symbian.root.dir" value="\\faba\df\r1120\NT\Build_and_Release\GRACE\MC\SOS"/>
       
   792       <property name="s60.root.dir" value="\\faba\df\r1120\NT\Build_and_Release\GRACE\MC\S60"/>
       
   793       <property name="cellmo.root.dir" value="\\faba\df\r1120\NT\Build_and_Release\GRACE\MC\Cellmo\product"/>
       
   794       <property name="error.email.to.list" value="${env.EMAIL}"/> <!-- BM should set it throught environment -->
       
   795       <property name="ec.cluster.manager" value="fa001"/>
       
   796       <property name="ec.build.class" value="ISISBR"/>
       
   797       <property name="work.area.temp.dir" location="\\vcer02\prj2\Juno\SWBuilds\WorkAreaCopyCache"/>
       
   798           <!-- Grace releasing configuration -->
       
   799       <property name="release.grace.configurationfile" value="./grace_upload_configuration.ant.xml" />
       
   800       
       
   801       <property name="release.dir.root" value="\\faba\df\r1120\NT\Build_and_Release\family_Off-Cycle\Increment_Releases" />
       
   802       
       
   803       <!-- FOTA -->
       
   804       <property name="fota.publish.root.dir" value="${publish.root.dir}"/>
       
   805       <property name="fota.unix.publish.root.dir" value="/nokia/fa/grps/r1120/NT/Build_and_Release/temp"/>
       
   806       <property name="fota.upct.server.address" value="farem02" />
       
   807   
       
   808       <!-- Grace settings -->
       
   809       <property name="release.grace.server" value="fam01.europe.company.com" />
       
   810       <property name="release.grace.service" value="ISIS" />
       
   811       <property name="release.grace.product" value="${product.family}" />
       
   812       <property name="release.grace.sambaserver" value="\\fa01.europe.company.com\GRACE" />
       
   813       
       
   814       <!-- Mail settings -->
       
   815       <property name="release.grace.mail.host" value="ca01.noe.company.com" />
       
   816       <property name="release.grace.mail.port" value="25" />
       
   817       <property name="release.grace.mail.from" value="email address of person to email" />
       
   818       <property name="release.grace.mail.to" value="email address" />
       
   819       <property name="release.grace.mail.replyto" value="${release.grace.mail.to}" />
       
   820       <property name="release.grace.mail.subject" value="Grace upload for ${release.grace.product} ${rel_label} completed" />
       
   821       <property name="release.grace.mail.message" value="Grace upload for ${release.grace.product} ${rel_label} completed SUCCESFULLY." />
       
   822       
       
   823       <property name="build.completed.mail.to" value="M-MC-MCSS-INTEGRATION-PLATFORM DG" />
       
   824       <property name="build.completed.mail.subject" value="NIGHTLY BUILD ${build.id} at ${env.COMPUTERNAME} has been completed" />
       
   825       <property name="build.completed.message" 
       
   826         value="This is an automated e-mail, reply to address: ${release.grace.mail.from}${line.separator}${line.separator}
       
   827         ${product.name} NIGHTLY BUILD ${build.id} on ${env.COMPUTERNAME}${line.separator}
       
   828         ================================================================================${line.separator}
       
   829         NB has been completed at ${time.completed}${line.separator}
       
   830         Build area at \\${env.COMPUTERNAME}\Build_D$\BA\${build.id}${line.separator}
       
   831         Server: ${env.COMPUTERNAME}${line.separator}
       
   832         ${line.separator}
       
   833         Engineering english build files created${line.separator}
       
   834         "
       
   835       />
       
   836   </project>
       
   837  
       
   838  
       
   839 .. index::
       
   840   single: Example - mc_product_override.iby file
       
   841 
       
   842 mc_product_override.iby file
       
   843 ------------------------------
       
   844  
       
   845  This file contains details of files that will be used to create the ROM image. ::
       
   846  
       
   847  
       
   848   //FMTX stuff (to prevent from showing the missing file as there is already InternalHWRMFmTxPolicy.ini file in rom)
       
   849   data-override=empty private\101f7a02\HWRMFmTxPolicy.ini
       
   850   
       
   851   // Variating ActiveIdle theme
       
   852   
       
   853   #ifdef MC_ACTIVEIDLE_VARIANT
       
   854   #ifndef __MC_NO_FMTX_IN_ROM
       
   855   data-override=concat3(ZPRIVATE\10207254\themes\271012080\270513751\271063149\1.0\AI.,MC_ACTIVEIDLE_VARIANT,.o0000)           PRIVATE\10207254\themes\271012080\270513751\271063149\1.0\AI.o0000
       
   856   data-override=concat3(ZPRIVATE\10207254\themes\271012080\270513751\271063147\1.0\CI.,MC_ACTIVEIDLE_VARIANT,.o0000)           PRIVATE\10207254\themes\271012080\270513751\271063147\1.0\CI.o0000
       
   857   ROM_IMAGE[2] data-override=concat3(ZPRIVATE\10207254\themes\271012080\270513751\271063149\1.0\AI.,MC_ACTIVEIDLE_VARIANT,.o0001)                                 PRIVATE\10207254\themes\271012080\270513751\271063149\1.0\AI.o0001
       
   858   ROM_IMAGE[2] data-override=concat3(ZPRIVATE\10207254\themes\271012080\270513751\271063147\1.0\CI.,MC_ACTIVEIDLE_VARIANT,.o0001)                                 PRIVATE\10207254\themes\271012080\270513751\271063147\1.0\CI.o0001
       
   859   #endif // __MC_NO_FMTX_IN_ROM
       
   860   #endif // MC_ACTIVEIDLE_VARIANT
       
   861   
       
   862   // Variantion ends
       
   863   
       
   864   
       
   865   // Product customisation
       
   866   #include <commontsy.var>
       
   867   #ifdef MC_PRODUCT_CUSTOMISATION_VAR
       
   868   define __MC_PRODUCT_CUSTOMISATION_VAR__ MC_PRODUCT_CUSTOMISATION_VAR
       
   869   file-override=ABI_DIR\BUILD_DIR\COMMONTSY.__MC_PRODUCT_CUSTOMISATION_VAR__.DLL    Sys\Bin\COMMONTSY.DLL
       
   870   #endif
       
   871   
       
   872   
       
   873   ROM_IMAGE[2] {
       
   874   #ifdef LPID
       
   875   #ifdef product
       
   876   data-override=concat3(\epoc32\data\Z\Resource\bootdata\languages.product.,LPID,.txt)   "resource\Bootdata\languages.txt"
       
   877   data-override=concat3(\epoc32\data\Z\Resource\versions\lang.product.,LPID,.txt)   "resource\versions\lang.txt"
       
   878   #endif
       
   879   #ifdef product_EDGE
       
   880   data-override=concat3(\epoc32\data\Z\Resource\bootdata\languages.product_edge.,LPID,.txt)   "resource\Bootdata\languages.txt"
       
   881   data-override=concat3(\epoc32\data\Z\Resource\versions\lang.product_edge.,LPID,.txt)   "resource\versions\lang.txt"
       
   882   #endif
       
   883   #ifdef product_LTA
       
   884   data-override=concat3(\epoc32\data\Z\Resource\bootdata\languages.product_lta.,LPID,.txt)   "resource\Bootdata\languages.txt"
       
   885   data-override=concat3(\epoc32\data\Z\Resource\versions\lang.product_lta.,LPID,.txt)   "resource\versions\lang.txt"
       
   886   #endif
       
   887   #endif // LPID 
       
   888   }
       
   889