<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
<!-- This component and the accompanying materials are made available under the terms of the License
"Eclipse Public License v1.0" which accompanies this distribution,
and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
<!-- Initial Contributors:
Nokia Corporation - initial contribution.
Contributors:
-->
<!DOCTYPE concept
PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
<concept id="GUID-28B9B737-AA79-5595-8DDE-7DD52402C0B9" xml:lang="en"><title>Tools
and file types used in the build process</title><prolog><metadata><keywords/></metadata></prolog><conbody>
<p>This page briefly lists the main Symbian-specific tools and file types
used in building components. In addition to these tools, the build process
will use compilers and linkers supplied by various third party companies. </p>
<p>Tools supplied by Symbian are in <filepath>epoc32\tools\</filepath> directory. </p>
<section id="GUID-846782B7-C972-4F36-B7CF-DE433985E20D"><title>Tools</title> <table id="GUID-108C8A55-E732-5F1E-9CD7-CCC634A06B61">
<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
<tbody>
<row>
<entry><p> <b>Tool</b> </p> </entry>
<entry><p> <b>Description</b> </p> </entry>
</row>
<row>
<entry><p> <filepath>bldmake</filepath> </p> </entry>
<entry><p>This tool processes a component description file (<filepath>bld.inf</filepath>),
which describes various aspects of the component, and generates make files
and a batch file called <filepath>abld.bat</filepath>. This batch file is
then used to drive the rest of the component build. </p> </entry>
</row>
<row>
<entry><p> <filepath>abld</filepath> </p> </entry>
<entry><p>Calls the <filepath>.make</filepath> files generated by the <filepath>bldmake</filepath> tool
to build a component. The make files typically call the <filepath>makmake</filepath> tool
to create makefiles that specify the required build steps to build the component
for a particular target. </p> </entry>
</row>
<row>
<entry><p> <filepath>makmake</filepath> </p> </entry>
<entry><p>Takes a <filepath>.mmp</filepath> project file which lists the elements
of the project, and produces a makefile for the platform specified. The GCC <filepath>make</filepath> utility
is then called to execute the make file. </p> </entry>
</row>
<row>
<entry><p> <filepath>elf2e32</filepath> </p> </entry>
<entry><p>Converts the ELF representation of an executable into an E32Image
format file, the format required to run on Symbian platform. Used only for
ARMV5 (ABIv2) target. </p> </entry>
</row>
<row>
<entry><p> <filepath>elftran</filepath> </p> </entry>
<entry><p>Transforms the ELF representation of an executable into an E32Image
format file, the format required to run on Symbian platform. Used only for
ARMV5 (ABIv1) target. </p> </entry>
</row>
<row>
<entry><p> <filepath>elf2Inf</filepath> </p> </entry>
<entry><p>Gets a list of the symbol names of the exported definitions from
an ELF file. Its output <filepath>.inf</filepath> file is input to <filepath>makedef</filepath>.
Used only for ARMV5 (ABIv1) target. </p> </entry>
</row>
<row>
<entry><p> <filepath>makedef</filepath> </p> </entry>
<entry><p>Maintains or creates DEF files, which record an executable's exported
symbols by ordinal. </p> </entry>
</row>
<row>
<entry><p> <filepath>def2dll</filepath> </p> </entry>
<entry><p>Creates binary objects used to implement the Symbian platform DLL
model. These are a representation (ELF) of the export table (<filepath>.exp</filepath> file),
and its import library (<filepath>.lib</filepath>). Used only for ARMV5 (ABIv1)
target. </p> </entry>
</row>
<row>
<entry><p> <filepath>epocrc</filepath> </p> </entry>
<entry><p>Combines the actions of passing a resource file through the C++
preprocessor, and then compiling it with the <filepath>rcomp</filepath> tool. </p> </entry>
</row>
<row>
<entry><p> <filepath>rcomp</filepath> </p> </entry>
<entry><p>Resource compiler. Compiles source <filepath>rss</filepath> resource
files into compiled resource data files, and a <filepath>rsg</filepath> resource
header file. </p> </entry>
</row>
<row>
<entry><p> <filepath>bmconv</filepath> </p> </entry>
<entry><p>Bitmap converter. Takes one or more Microsoft Windows bitmaps <filepath>.bmp</filepath> and
generates a single multi-bitmap file <filepath>.mbm</filepath>, optimised
for efficient runtime loading by the GDI. Also a header file <filepath>.h</filepath> with
symbolic definitions for each bitmap in the file. </p> </entry>
</row>
</tbody>
</tgroup>
</table> <p>More specialised tools are available for particular types of development,
e.g. for generating font and printer driver libraries. </p> </section>
<section id="GUID-A95BD340-3A89-40E6-805E-73C92E6159A7"><title>File types</title> <p>The following file types are involved
in the build processes: </p> <table id="GUID-D05A7EA1-48E7-5347-BE8D-B8E646580E52">
<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
<tbody>
<row>
<entry><p> <filepath>bld.inf</filepath> </p> </entry>
<entry><p>component description file, input to <filepath>bldmake</filepath> </p> </entry>
</row>
<row>
<entry><p> <filepath>.mmp</filepath> </p> </entry>
<entry><p>project file: specification of a project, input to <filepath>abld/makmake</filepath> </p> </entry>
</row>
<row>
<entry><p> <filepath>.<target></filepath> </p> </entry>
<entry><p>a makefile, output from <filepath>makmake</filepath>, used to build
the project for the specified target. Examples are <filepath>.winscw</filepath> for
the WINSCW target, <filepath>.armv5</filepath> for the ARMV5 target, etc. </p> </entry>
</row>
<row>
<entry><p> <filepath>.make</filepath> </p> </entry>
<entry><p>build batch makefile, for use by <filepath>abld</filepath> for the
purposes of building, output from <filepath>bldmake bldfiles</filepath> </p> </entry>
</row>
<row>
<entry><p> <filepath>.cpp</filepath> </p> </entry>
<entry><p>C++ source file </p> </entry>
</row>
<row>
<entry><p> <filepath>.h</filepath> </p> </entry>
<entry><p>header file, for inclusion in C++ file </p> </entry>
</row>
<row>
<entry><p> <filepath>.rss</filepath> </p> </entry>
<entry><p>resource source file, for input to <filepath>rcomp</filepath> </p> </entry>
</row>
<row>
<entry><p> <filepath>.rh</filepath> </p> </entry>
<entry><p>resource header, for inclusion in resource file </p> </entry>
</row>
<row>
<entry><p> <filepath>.hrh</filepath> </p> </entry>
<entry><p>common C++ or resource header, for inclusion in either type of source
file </p> </entry>
</row>
<row>
<entry><p> <filepath>.rsg</filepath> </p> </entry>
<entry><p>generated resource header file, output from <filepath>rcomp</filepath> </p> </entry>
</row>
<row>
<entry><p> <filepath>.rsc</filepath> </p> </entry>
<entry><p>generated resource file, output from <filepath>rcomp</filepath> </p> </entry>
</row>
<row>
<entry><p> <filepath>.bmp</filepath> </p> </entry>
<entry><p>bitmap file, in Microsoft Windows format, input to <filepath>bmconv</filepath> (can
also be output) </p> </entry>
</row>
<row>
<entry><p> <filepath>.mbm</filepath> </p> </entry>
<entry><p>multi-bitmap file, generated by Symbian platform bitmap compiler,
output from <filepath>bmconv</filepath> (can also be input) </p> </entry>
</row>
<row>
<entry><p> <filepath>.def</filepath> </p> </entry>
<entry><p>linker definition file, defining an executable's exports and their
ordinal positions. </p> </entry>
</row>
<row>
<entry><p> <filepath>.lib</filepath> </p> </entry>
<entry><p>static library file, often containing stub functions for DLL linking. </p> </entry>
</row>
<row>
<entry><p> <filepath>.map</filepath> </p> </entry>
<entry><p>map of entities in an executable, output by linker </p> </entry>
</row>
<row>
<entry><p> <filepath>.exe</filepath> </p> </entry>
<entry><p>executable that can be loaded and run as a process </p> </entry>
</row>
<row>
<entry><p> <filepath>.dll</filepath> </p> </entry>
<entry><p>dynamic link library or DLL: executable containing shared functionality
that can be loaded by other executables </p> </entry>
</row>
<row>
<entry><p> <filepath>.dso</filepath> </p> </entry>
<entry><p>ELF format file output by compiler/linkers for ARM targets. Also
used for linking against DLLs in the ARMV5 ABIv2 target. </p> </entry>
</row>
</tbody>
</tgroup>
</table> </section>
</conbody></concept>