Symbian3/SDK/Source/GUID-5A3A3EA0-6C03-56F2-B277-B61A27ABFF9E.dita
author Dominic Pinkman <dominic.pinkman@nokia.com>
Fri, 16 Jul 2010 17:23:46 +0100
changeset 12 80ef3a206772
parent 0 89d6a7a84779
permissions -rw-r--r--
Week 28 contribution of PDK documentation content. See release notes for details. Fixes bugs Bug 1897, Bug 344, Bug 2681, Bug 463, Bug 1522.

<?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-5A3A3EA0-6C03-56F2-B277-B61A27ABFF9E" xml:lang="en"><title>abld
command syntax overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
<p>The <filepath>abld</filepath> batch file is used to control all aspects
of building a project. The batch file is created using <filepath>bldmake</filepath> from
a component description file. </p>
<section><title>Invocation syntax </title><p> <codeph>abld [
test ]</codeph>  <varname>command</varname> [ <varname>options</varname> ]
[ <varname>platform</varname> [ <varname>build</varname> [ <varname>program</varname> ]
] ] </p><p>The usage for test, <varname>command</varname>, <varname>options</varname>, <varname>platform</varname>, <varname>build</varname>,
and <varname>program</varname> are detailed in the following sections. </p><p> <b>Note:</b> For
certain <filepath>abld</filepath> commands, parameters such as <varname>platform</varname>, <varname>build</varname>,
and <varname>program</varname>, do not apply. For example, <codeph>abld export</codeph> does
not require these parameters, as exports do not depend on <varname>build</varname>, <varname>platform</varname>,
or <varname>program</varname>. </p><p><b>command </b> </p><p>You can use the
following commands with <codeph>abld</codeph>: </p><table id="GUID-EF09108F-BFFC-5094-95BB-A34D3A86BCED">
<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
<thead>
<row>
<entry>Command</entry>
<entry>Purpose</entry>
</row>
</thead>
<tbody>
<row>
<entry><p> <codeph>build</codeph>  </p> </entry>
<entry><p>To build the binaries for the specified target. It is a combination
of the commands, <codeph>export</codeph>, <codeph>makefile</codeph>, <codeph>library</codeph>, <codeph>resource</codeph>, <codeph>target</codeph>,
and <codeph>final</codeph>. </p> </entry>
</row>
<row>
<entry><p> <codeph>clean</codeph>  </p> </entry>
<entry><p>To remove everything built for the <codeph>abld target</codeph>. </p> </entry>
</row>
<row>
<entry><p> <codeph>cleanexport</codeph>  </p> </entry>
<entry><p>To remove files created by the <codeph>abld</codeph> <codeph>export</codeph> command. </p> </entry>
</row>
<row>
<entry><p> <codeph>export</codeph>  </p> </entry>
<entry><p>To copy the exported files to their destination. </p> </entry>
</row>
<row>
<entry><p> <codeph>final</codeph>  </p> </entry>
<entry><p>To allow extension makefiles to run final commands. </p> </entry>
</row>
<row>
<entry><p> <codeph>freeze</codeph>  </p> </entry>
<entry><p>To freeze the exported functions in a <filepath>.def</filepath> file. </p> </entry>
</row>
<row>
<entry><p> <codeph>help</codeph>  </p> </entry>
<entry><p>To display commands, options, or help about a particular command. </p> </entry>
</row>
<row>
<entry><p> <codeph>library</codeph>  </p> </entry>
<entry><p>To create import libraries from the frozen <filepath>.def</filepath> files. </p> </entry>
</row>
<row>
<entry><p> <codeph>listing</codeph>  </p> </entry>
<entry><p>To create an assembler listing file for a particular source file. </p> </entry>
</row>
<row>
<entry><p> <codeph>makefile</codeph>  </p> </entry>
<entry><p>To create makefiles or IDE workspaces. </p> </entry>
</row>
<row>
<entry><p> <codeph>reallyclean</codeph>  </p> </entry>
<entry><p>To remove all the files. It is similar to the <codeph>clean</codeph> command,
and additionally removes exported files and makefiles. </p> </entry>
</row>
<row>
<entry><p> <codeph>resource</codeph>  </p> </entry>
<entry><p>To create resource files and bitmaps. </p> </entry>
</row>
<row>
<entry><p> <codeph>target</codeph>  </p> </entry>
<entry><p>To create the main executable file and also the resources. </p> </entry>
</row>
<row>
<entry><p> <codeph>tidy</codeph>  </p> </entry>
<entry><p>To remove executable files which need not be released. </p> </entry>
</row>
</tbody>
</tgroup>
</table><p><b>options </b> </p><p>You can use the following options with <codeph>abld</codeph>: </p><table id="GUID-722871C1-088A-50C4-B335-213340988C76">
<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
<thead>
<row>
<entry>Option</entry>
<entry>Purpose</entry>
</row>
</thead>
<tbody>
<row>
<entry><p> <codeph>-check or -c</codeph>  </p> </entry>
<entry><p>To check whether the filenames of the executable and resource files
are compatible for Linux builds. </p> </entry>
</row>
<row>
<entry><p> <codeph>-debug</codeph>  </p> </entry>
<entry><p>To generate symbolic debug information for release or debug builds. </p> </entry>
</row>
<row>
<entry><p> <codeph>-keepgoing or -k</codeph>  </p> </entry>
<entry><p>To build unrelated targets on error. </p> </entry>
</row>
<row>
<entry><p> <codeph>-no_debug</codeph>  </p> </entry>
<entry><p>To not generate symbolic debug information for release or debug
builds. </p> </entry>
</row>
<row>
<entry><p> <codeph>-savespace or -s</codeph>  </p> </entry>
<entry><p>To delete intermediate files on success. </p> </entry>
</row>
<row>
<entry><p> <codeph>-verbose or -v</codeph>  </p> </entry>
<entry><p>To display the progress of the <codeph>abld</codeph> command. </p> </entry>
</row>
<row>
<entry><p> <codeph>-what or -w</codeph>  </p> </entry>
<entry><p>To list all releaseables, which include executable/map files, resource
files and so on. </p> </entry>
</row>
<row>
<entry><p> <codeph>-I &lt;platform&gt;</codeph>  </p> </entry>
<entry><p>To specify the ARM target to build for, overriding other settings. </p> </entry>
</row>
<row>
<entry><p> <codeph>-wrap[=&lt;value&gt;]</codeph>  </p> </entry>
<entry><p>A static analysis tool can be invoked if <codeph>[=&lt;value&gt;]</codeph> is
not specified. For example, <codeph>-wrap</codeph>. Alternatively, a run-time
analysis tool can be invoked if <codeph>&lt;value&gt;</codeph> is specified as <codeph>proxy</codeph>.
For example, <codeph>-wrap=proxy</codeph>. </p> </entry>
</row>
</tbody>
</tgroup>
</table><p> <b>Notes:</b>  </p><ul>
<li id="GUID-3B421EA1-26FB-5535-9808-C22DAC6801E8"><p>You can use <codeph>-debug</codeph> or <codeph>-no_debug</codeph> options
irrespective of the output build type, that is, <codeph>UREL</codeph> or <codeph>UDEB</codeph>. </p> </li>
<li id="GUID-0C2D4993-9231-5868-A321-615048F365B1"><p>All options are not
applicable to all the commands. Wherever applicable, they can be specified
in their long or short forms. For example, </p> <p> <codeph>-keepgoing</codeph> (long
form) </p> <p>or </p> <p> <codeph>-k</codeph> (short form) </p> </li>
</ul><p><b>platform </b> </p><p>This specifies the target platform. Possible
platforms are: </p><table id="GUID-35EAE8DD-DBC1-5DA4-9419-8274A2C8AF28">
<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
<thead>
<row>
<entry>Target platform</entry>
<entry>Purpose</entry>
</row>
</thead>
<tbody>
<row>
<entry><p> <codeph>all</codeph>  </p> </entry>
<entry><p>To build for all platforms. </p> </entry>
</row>
<row>
<entry><p> <codeph>armv5</codeph>  </p> </entry>
<entry><p>To build for ABI v1 of ARMV5 architecture using the RealView Compilation
Tools (RVCT). </p> </entry>
</row>
<row>
<entry><p> <codeph>armv5_abiv2</codeph>  </p> </entry>
<entry><p>To build for ABI v2 of ARMV5 architecture using RVCT. </p> </entry>
</row>
<row>
<entry><p> <codeph>armv6</codeph>  </p> </entry>
<entry><p>To build for ABI v2 of ARMV6 architecture using RVCT. </p> </entry>
</row>
<row>
<entry><p> <codeph>armv6t2</codeph>  </p> </entry>
<entry><p>To build for ABI v2 of ARMV6 architecture that supports Thumb-2
instruction set, using RVCT. </p> </entry>
</row>
<row>
<entry><p> <codeph>armv7</codeph>  </p> </entry>
<entry><p>To build for ABI v2 of ARMV7 architecture that supports Thumb-2
instruction set, using RVCT. </p> </entry>
</row>
<row>
<entry> <codeph>cw_ide</codeph>  <p/> </entry>
<entry><p>To build the Metrowerks CodeWarrior project file (importable <filepath>.xml</filepath> file). </p> </entry>
</row>
<row>
<entry><p> <codeph>gcce</codeph>  </p> </entry>
<entry><p>To build for ABI v2 of ARMV5 architecture using the GNU GCC compiler. </p> </entry>
</row>
<row>
<entry><p> <codeph>gccev6</codeph>  </p> </entry>
<entry><p>To build for ABI v2 of ARMV6 architecture using the GNU GCC compiler. </p> </entry>
</row>
<row>
<entry><p> <codeph>gccev6t2</codeph>  </p> </entry>
<entry><p>To build for ABI v2 of ARMV6 architecture that supports Thumb-2
instruction set, using the GNU GCC compiler. </p> </entry>
</row>
<row>
<entry><p> <codeph>gccev7</codeph>  </p> </entry>
<entry><p>To build for ABI v2 of ARMV7 architecture that supports Thumb-2
instruction set, using the GNU GCC compiler. </p> </entry>
</row>
<row>
<entry><p> <codeph>gccxml</codeph>  </p> </entry>
<entry><p>To generate the XML description of the project and the program using
GCC XML. </p> </entry>
</row>
<row>
<entry><p> <codeph>vs6</codeph>  </p> </entry>
<entry><p>To create the project files suitable for opening the project in
Microsoft Visual Studio IDE, version Visual C++ v6. </p> </entry>
</row>
<row>
<entry><p> <codeph>vs2003</codeph>  </p> </entry>
<entry><p>To create the project files suitable for opening the project in
Microsoft Visual Studio IDE, version .NET2003. </p> </entry>
</row>
<row>
<entry><p> <codeph>winscw</codeph>  </p> </entry>
<entry><p>To build for the Symbian emulator on Microsoft Windows, using the
Metrowerks CodeWarrior compiler. </p> </entry>
</row>
</tbody>
</tgroup>
</table><p> <b>Note</b>: The target platforms, <codeph>armv5</codeph> and <codeph>armv5_abiv2</codeph> are
compatible with Symbian OS v9.4 or earlier versions. From Symbian OS v9.4
onwards, these build platforms are renamed as <codeph>armv5</codeph> and <codeph>armv5_abiv1</codeph> to
generate binaries and libraries conforming to ABI v2 and ABI v1 respectively. </p><p>If <varname>platform</varname> is
not specified, or is specified as <codeph>all</codeph>, then <codeph>abld</codeph> will
build for all the platforms specified in the component description file. </p><p>Basenames
of <filepath>.mmp</filepath> files or extension makefiles must not be platform
names. </p><p><b>build </b> </p><p>This specifies the build type. Possible
types are: </p><table id="GUID-AAD6A56F-61FD-5CB4-B196-FE201E9EE298">
<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
<tbody>
<row>
<entry><p> <codeph>udeb</codeph>  </p> </entry>
<entry><p>Debug build </p> </entry>
</row>
<row>
<entry><p> <codeph>urel</codeph>  </p> </entry>
<entry><p>Release build </p> </entry>
</row>
<row>
<entry><p> <codeph>all</codeph>  </p> </entry>
<entry><p>Debug and release builds </p> </entry>
</row>
</tbody>
</tgroup>
</table><p>If <varname>build</varname> is not specified, or specified as <codeph>all</codeph>,
then <codeph>abld</codeph> will build for both <codeph>udeb</codeph> and <codeph>urel</codeph>. </p><p>Basenames
of <filepath>.mmp</filepath> files or extension makefiles must not be build
type names. </p><p><b>program </b> </p><p>This specifies the basename of a
particular <filepath>.mmp</filepath> file or extension makefile, in order
to limit the command to a single project within a component. </p><p>If <varname>program</varname> is
not specified, then all the projects within the component are built. </p><p><b>test </b> </p><p>If <codeph>test</codeph> is
specified before <codeph>command</codeph>, the <codeph>command</codeph> will
build all the projects defined by <filepath>.mmp</filepath> files listed in
the <codeph>prj_testmmpfiles</codeph> section of the component description
file, rather than those listed in the <codeph>prj_mmpfiles</codeph> section. </p><p> <b>Note:</b> The <codeph>test</codeph> parameter
is not relevant for some commands, and in those cases, it cannot be specified. </p></section>
</conbody></concept>