Symbian3/PDK/Source/GUID-0C02D927-0B06-49BD-8738-149DCDDB23FC.dita
author Dominic Pinkman <Dominic.Pinkman@Nokia.com>
Tue, 30 Mar 2010 11:56:28 +0100
changeset 5 f345bda72bc4
parent 3 46218c8b8afa
child 14 578be2adaf3e
permissions -rw-r--r--
Week 12 contribution of PDK documentation_content. See release notes for details. Fixes Bug 2054, Bug 1583, Bug 381, Bug 390, Bug 463, Bug 1897, Bug 344, Bug 1319, Bug 394, Bug 1520, Bug 1522, Bug 1892"

<?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-0C02D927-0B06-49BD-8738-149DCDDB23FC" xml:lang="en"><title>Preparation
of the MMP and <filepath>bld.inf</filepath> Files</title><shortdesc>At the end of this phase, Symbian port should have the <filepath>bld.inf</filepath> and
MMP files.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
<section id="GUID-8FAD2820-D96D-4AA8-8653-B5A947713788">       <title>MMP
file</title>       <p>An <filepath>.mmp</filepath> project definition file
specifies the properties of a project in a platform and compiler-independent
way. The MMP file is very similar to ‘Makefile’ of Linux. MMP file exists
per <filepath>.SO</filepath>, <filepath>.A</filepath>, or <filepath>.EXE</filepath>.</p><p>The
contents of a sample MMP file created for <codeph>libjpeg</codeph> are shown
below: </p><codeblock xml:space="preserve">TARGET	libjpeg.dll
TARGETTYPE	DLL
UID             	0x1000008d 0x0xE0000100 
CAPABILITY All -Tcb
EpocAllowDllData

USERINCLUDE	.

SYSTEMINCLUDE	\epoc32\include\stdapis
SYSTEMINCLUDE	\epoc32\include

SOURCEPATH	.
// LIBSOURCES
SOURCE	jcapimin.c jcapistd.c jccoefct.c jccolor.c jcdctmgr.c jchuff.c
SOURCE	jcinit.c jcmainct.c jcmarker.c jcmaster.c jcomapi.c jcparam.c
SOURCE	jcphuff.c jcprepct.c jcsample.c jctrans.c jdapimin.c jdapistd.c
SOURCE	jdatadst.c jdatasrc.c jdcoefct.c jdcolor.c jddctmgr.c jdhuff.c
SOURCE	jdinput.c jdmainct.c jdmarker.c jdmaster.c jdmerge.c jdphuff.c
SOURCE	jdpostct.c jdsample.c jdtrans.c jerror.c jfdctflt.c jfdctfst.c
SOURCE	jfdctint.c jidctflt.c jidctfst.c jidctint.c jidctred.c jquant1.c
SOURCE	jquant2.c jutils.c jmemmgr.c
// SYSDEPSOURCES
SOURCE	jmemansi.c
LIBRARY	euser.lib

LIBRARY	libc.lib
MACRO	HAVE_CONFIG_H
MACRO 	__SYMBIAN32__ </codeblock><p>The following table gives a brief introduction
to the MMP file keywords found in above file.</p><table id="GUID-367FB69E-EE9B-4100-8E44-6B102430297A">
<tgroup cols="2"><colspec colname="col1"/><colspec colname="col2"/>
<tbody>
<row>
<entry><p><b>Keyword</b></p></entry>
<entry><p><b>Description</b></p></entry>
</row>
<row>
<entry><codeph>TARGETTYPE</codeph></entry>
<entry><p>Target type.Can be DLL, EXE, or LIB. Other types are also supported.</p></entry>
</row>
<row>
<entry><codeph>TARGET</codeph></entry>
<entry><p>Name of the target.</p></entry>
</row>
<row>
<entry><codeph>UID</codeph></entry>
<entry><p>Unique identifier of the target. It is recommended to use test UIDs
from the range <codeph>0xE0000000-0xEFFFFFFF</codeph> which is targeted for
development use only. For production quality code, UIDs must be requested
from Symbian (<xref href="https://www.symbiansigned.com/app/page" scope="external">https://www.symbiansigned.com/app/page</xref>)
before the application can be sent for signing. </p></entry>
</row>
<row>
<entry><codeph>CAPABILITY</codeph></entry>
<entry><p>Capability requirement of the target. </p><note>Even if the example
uses All-TCB capabilities, it is strongly recommended to use a more narrow
set of capabilities to have the application successfully signed.</note></entry>
</row>
<row>
<entry><codeph>EpocAllowDllData</codeph></entry>
<entry><p>Allow global static data in the target</p></entry>
</row>
<row>
<entry><codeph>USERINCLUDE</codeph></entry>
<entry><p>Local file include path. The compiler will look in this path for
the files included with “ ”. For example, <codeph>#include "config.h"</codeph></p></entry>
</row>
<row>
<entry><codeph>SYSTEMINCLUDE</codeph></entry>
<entry><p>System file include path. The compiler will look in this path for
the files included with<codeph> &lt; &gt;</codeph>. For example, <codeph>#include
&lt;stdio.h&gt;</codeph></p></entry>
</row>
<row>
<entry><codeph>SOURCEPATH</codeph></entry>
<entry><p>Source path for the source files.</p></entry>
</row>
<row>
<entry><codeph>SOURCE</codeph></entry>
<entry><p>Source file listing.</p></entry>
</row>
<row>
<entry><codeph>LIBRARY</codeph></entry>
<entry><p>Dependent DLL library file list.</p></entry>
</row>
<row>
<entry><codeph>STATICLIBRARY</codeph></entry>
<entry><p>Dependent static library file list.</p></entry>
</row>
<row>
<entry><codeph>MACRO</codeph></entry>
<entry><p>Preprocessor declarations. Makefile declares these preprocessor
declarations using <codeph>–D</codeph> flag. </p></entry>
</row>
</tbody>
</tgroup>
</table> </section>
<section id="GUID-C55666DD-4B7F-4913-9D5D-7A5992406422"><title>bld.inf</title><p><filepath>bld.inf</filepath> is
a component definition file, used by <codeph>bldmake</codeph> to define the <filepath>abld.bat</filepath> file
and <codeph>makefiles</codeph> to be created. <filepath>bld.inf</filepath> can
be loosely compared to configure script of Linux. There is one <filepath>bld.inf</filepath> for
entire the OSS. If the project is divided into more than one module, each
module can have an individual <filepath>bld.inf</filepath> file. Have a look
at the contents of the sample MMP file below created for <codeph>libjpeg</codeph>. </p><codeblock xml:space="preserve">PRJ_PLATFORMS
default

PRJ_MMPFILES
jpeg.mmp

PRJ_EXPORTS
jpeglib.h   \epoc32\include\jpeg-6b\jpeglib.h
jconfig.h   \epoc32\include\jpeg-6b\jconfig.h
jmorecfg.h  \epoc32\include\jpeg-6b\jmorecfg.h
jerror.h    \epoc32\include\jpeg-6b\jerror.h
</codeblock><p>The following table gives a brief introduction to the <filepath>bld.inf</filepath> keywords.</p><table id="GUID-644E05C0-1E42-447D-8223-EC089FF34117">
<tgroup cols="2"><colspec colname="col1"/><colspec colname="col2"/>
<tbody>
<row>
<entry><p><b>Keyword</b></p></entry>
<entry><p><b>Description</b></p></entry>
</row>
<row>
<entry><codeph>PRJ_PLATFORMS</codeph></entry>
<entry><p>Platform to which <codeph>makefiles</codeph> will be created.</p></entry>
</row>
<row>
<entry><codeph>PRJ_MMPFILES</codeph></entry>
<entry><p>MMP file list.</p></entry>
</row>
<row>
<entry><codeph>PRJ_EXPORTS</codeph></entry>
<entry><p>List of public header files for target library users. This list
can be prepared by looking at the include directory in Linux installation. </p></entry>
</row>
</tbody>
</tgroup>
</table></section>
</conbody></concept>