Symbian3/SDK/Source/GUID-8DB5E558-9774-5CC3-AF8C-6C50D9FE0496.dita
changeset 0 89d6a7a84779
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-8DB5E558-9774-5CC3-AF8C-6C50D9FE0496.dita	Thu Jan 21 18:18:20 2010 +0000
@@ -0,0 +1,64 @@
+<?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-8DB5E558-9774-5CC3-AF8C-6C50D9FE0496" xml:lang="en"><title>How
+to use makmake</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Symbian projects are defined by an <filepath>.mmp</filepath> file which
+specifies the essential elements of the project. The <filepath>makmake</filepath> tool
+then uses this environment-neutral file to build makefiles for use in various
+environments. These makefiles are then used for project development. </p>
+<p>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 <filepath>makmake</filepath> contain
+syntax which it is not possible to incorporate into makefiles intended for
+an IDE: these are discussed below. </p>
+<section><title>Building and running a project for WINSCW</title> <p>Starting
+with <filepath>hello.mmp</filepath>, you can build the makefile file <filepath>hello.winscw</filepath> using: </p> <p><userinput>makmake
+hello winscw</userinput> </p> <p>You then build the project from the command
+line by running: </p> <p><userinput>make -f hello.winscw</userinput> </p> </section>
+<section><title>Building debug and release variants</title> <p>A command line
+makefile produced by <filepath>makmake</filepath> allows the executable (an
+EXE or any type of <filepath>DLL</filepath>) to be produced in one of two
+variants: </p> <ul>
+<li id="GUID-277C7FEF-E82E-534B-9D4A-E7202C55D902"><p> <filepath>udeb</filepath>:
+debug mode </p> </li>
+<li id="GUID-3E123400-CB9C-593B-8D10-9717FE0B52D4"><p> <filepath>urel</filepath>:
+release mode </p> </li>
+</ul> <p>which may be selected by specifying the variant as a target. </p> <p>For
+example, to build the <filepath>udeb</filepath> variant of the executable,
+you can do: </p> <p><userinput>make -f hello.armi udeb</userinput> </p> <p>If <filepath>make</filepath> /<filepath>nmake</filepath> 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. </p> <p>You may use path specifications to locate the <filepath>.mmp</filepath> file
+in any directory. </p> <p>For example: </p> <p><userinput>makmake ..\..epoc32ex\e32\hello
+armv5</userinput> </p> <p>or </p> <p><userinput>makmake ..\..epoc32ex\e32\hello
+cw_ide</userinput> </p> <p>will locate the specified <filepath>.mmp</filepath> file.
+However, the generated <filepath>makmake</filepath> files are always written
+into the current directory. </p> </section>
+<section><title>Command line makefile utilities</title> <p>Command-line makefiles
+provide extra makefile targets which enable you to use <filepath>make</filepath> or <filepath>nmake</filepath> to
+create work directories and erase non-source files for a particular build
+variant of a project. </p> <p>For example, </p> <ul>
+<li id="GUID-E6B4369D-C966-59F4-A44B-E708930DB07F"><p> <systemoutput>make
+-f hello.winscw clean</systemoutput> attempts to delete the non-source files
+created during a build of all variants of the project <filepath>hello</filepath> </p> </li>
+<li id="GUID-C9E915E0-6339-5A74-9BDC-BD62D3B79B67"><p> <systemoutput>make
+-f hello.winscw makework</systemoutput> will create the work directories for
+a build of all variants of the project hello, while <codeph>nmake        
+        -f hello.wins makeworkurel</codeph> will create the work directories
+for a wide release build of the project. </p> </li>
+</ul> <p>The build-specific <codeph>makework</codeph> 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. </p> </section>
+</conbody><related-links>
+<link href="GUID-BBBB5000-90A2-503A-9521-2FC6DEC69DC8.dita"><linktext>mmp file
+syntax</linktext></link>
+</related-links></concept>
\ No newline at end of file