Symbian Developer Library

SYMBIAN OS V6.1 EDITION FOR C++

[Index] [Glossary] [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 the MSVC++ IDE. Command-line makefiles created by makmake contain syntax which it is not possible to incorporate into makefiles intended for the MSVC IDE — these are discussed in the following topic “Using makmake”.

See also

mmp file syntax


Building and running a file for wins

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

makmake hello wins

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

nmake -f hello.wins

[Top]


Building and running for the ARMI environment

For the ARMI environment, you can build the makefile file hello.armi using:

makmake hello armi

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

[Top]


Building project files for Microsoft Developer Studio (Visual C++ 6.0)

To build the .dsp and .dsw files, designed for Microsoft Developer Studio (Visual C++ 6.0), you can do:

makmake hello vc6

Note

Support for creating VC4 and VC5 IDE workspaces is no longer provided, only workspaces for VC6 can be created.

[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:

nmake -f hello.armi udeb

If nmake is invoked with no target specified, then the following default targets will be built:

the default for ARM is wide, release mode

the default for WINS is wide, debug mode.

If you build the executable using the MSVC++ IDE makefile, you may also need to run tools such as the bitmap and application information compilers, to build other aspects of the project. Command line makefiles will invoke these tools for you.

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

For example:

makmake ..\..\epoc32ex\e32\hello armi

or

makmake ..\..\epoc32ex\e32\hello vc6

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 created by makmake contain syntax which it is not possible to incorporate into makefiles intended for the MSVC IDE.

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

For example, WINS command-line makefiles provide the targets makework, makeworkudeb, makeworkurel, clean, cleanudeb, cleanurel.

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.