Tools and file types used in the build process

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.

Tools supplied by Symbian are in epoc32\tools\ directory.

Tools

Tool

Description

bldmake

This tool processes a component description file (bld.inf), which describes various aspects of the component, and generates make files and a batch file called abld.bat. This batch file is then used to drive the rest of the component build.

abld

Calls the .make files generated by the bldmake tool to build a component. The make files typically call the makmake tool to create makefiles that specify the required build steps to build the component for a particular target.

makmake

Takes a .mmp project file which lists the elements of the project, and produces a makefile for the platform specified. The GCC make utility is then called to execute the make file.

elf2e32

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.

elftran

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.

elf2Inf

Gets a list of the symbol names of the exported definitions from an ELF file. Its output .inf file is input to makedef. Used only for ARMV5 (ABIv1) target.

makedef

Maintains or creates DEF files, which record an executable's exported symbols by ordinal.

def2dll

Creates binary objects used to implement the Symbian platform DLL model. These are a representation (ELF) of the export table (.exp file), and its import library (.lib). Used only for ARMV5 (ABIv1) target.

epocrc

Combines the actions of passing a resource file through the C++ preprocessor, and then compiling it with the rcomp tool.

rcomp

Resource compiler. Compiles source rss resource files into compiled resource data files, and a rsg resource header file.

bmconv

Bitmap converter. Takes one or more Microsoft Windows bitmaps .bmp and generates a single multi-bitmap file .mbm, optimised for efficient runtime loading by the GDI. Also a header file .h with symbolic definitions for each bitmap in the file.

More specialised tools are available for particular types of development, e.g. for generating font and printer driver libraries.

File types

The following file types are involved in the build processes:

bld.inf

component description file, input to bldmake

.mmp

project file: specification of a project, input to abld/makmake

.<target>

a makefile, output from makmake, used to build the project for the specified target. Examples are .winscw for the WINSCW target, .armv5 for the ARMV5 target, etc.

.make

build batch makefile, for use by abld for the purposes of building, output from bldmake bldfiles

.cpp

C++ source file

.h

header file, for inclusion in C++ file

.rss

resource source file, for input to rcomp

.rh

resource header, for inclusion in resource file

.hrh

common C++ or resource header, for inclusion in either type of source file

.rsg

generated resource header file, output from rcomp

.rsc

generated resource file, output from rcomp

.bmp

bitmap file, in Microsoft Windows format, input to bmconv (can also be output)

.mbm

multi-bitmap file, generated by Symbian platform bitmap compiler, output from bmconv (can also be input)

.def

linker definition file, defining an executable's exports and their ordinal positions.

.lib

static library file, often containing stub functions for DLL linking.

.map

map of entities in an executable, output by linker

.exe

executable that can be loaded and run as a process

.dll

dynamic link library or DLL: executable containing shared functionality that can be loaded by other executables

.dso

ELF format file output by compiler/linkers for ARM targets. Also used for linking against DLLs in the ARMV5 ABIv2 target.