Symbian
Symbian OS Library

SYMBIAN OS V9.3

[Index] [Spacer] [Previous] [Next]



How to use makmake

Symbian projects are defined by an .mmp file which specifies the essential elements of the project. The makmake tool then uses this environment-neutral file to build makefiles for use in various environments. These makefiles are then used for project development.

Some makefiles are built for use in building the project from the command-line, while others are for use with an IDE. Command-line makefiles created by makmake contain syntax which it is not possible to incorporate into makefiles intended for an IDE: these are discussed below.

See also

mmp file syntax


Building and running a project for WINSCW

Starting with hello.mmp, you can build the makefile file hello.winscw using:

> makmake hello winscw

You then build the project from the command line by running:

> make -f hello.winscw

[Top]


Building project files for Metrowerks CodeWarrior

To build an .xml project file that you can import into Metrowerks CodeWarrior, you can do:

> makmake hello cw_ide

[Top]


Building debug and release variants

A command line makefile produced by makmake allows the executable (an EXE or any type of DLL) to be produced in one of two variants:

which may be selected by specifying the variant as a target.

For example, to build the udeb variant of the executable, you can do:

> make -f hello.armi udeb

If make/nmake is invoked with no target specified, then the following default targets will be built: the default for ARM is release mode; the default for WINSCW, and WINC is debug mode.

You may use path specifications to locate the .mmp file in any directory.

For example:

> makmake ..\..epoc32ex\e32\hello armv5

or

> makmake ..\..epoc32ex\e32\hello cw_ide

will locate the specified .mmp file. However, the generated makmake files are always written into the current directory.

[Top]


Command line makefile utilities

Command-line makefiles provide extra makefile targets which enable you to use make or nmake to create work directories and erase non-source files for a particular build variant of a project.

For example,

The build-specific makework targets are listed as dependencies of the main build-specific targets in command-line makefiles, so work directories will automatically be created when a target is built with a command-line makefile if these directories do not already exist.