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.
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
To build an .xml
project file that you can import into
Metrowerks CodeWarrior, you can do:
> makmake hello cw_ide
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:
udeb
: debug mode
urel
: release mode
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.
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,
make -f hello.winscw clean
attempts to delete
the non-source files created during a build of all variants of the project
hello
make -f hello.winscw makework
will create the
work directories for a build of all variants of the project hello, while
nmake -f hello.wins makeworkurel
will create the work directories
for a wide release build of the project.
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.