This page was last modified 10:01, 12 December 2007.
About extension makefiles
From Forum Nokia Wiki
About extension makefiles
Extension makefiles is specified by keyword makefile, nmakefile, and/or gnumakefile in prj_mmpfiles section of bld.inf file. Here is talking about extension makefile is specified by gnumakefile,which is used commonly. An extension makefile can complete different series work when different commands of abld tool run,which via provide different targets(makmake,freeze,library,clean,final,resource,bld,savespace,releasables).The MSDOS commands listed with the target will be executed when corresponding abld command called.These MSDOS command's works include generating hlp file,mif file and all kinds of files via SDK command tool,which is also called external command. And these files can be operated by internal command in extension makefile. There are some notes when creats extension makefile.
Target format
All targets must be provided in extension makefile because every targets will be called during abld running.And must be followed by a colon,espacially it has commands to be run.Or Multiple targets can be put on one line and end with a colon if no commands.Such as:
makmake:
...
bld:
...
freeze library clean final resource savespace releasables:
Command line format
Every command lines after target must start with a separator which length equal 8 spaces.But it can't be instead of 8 spaces,or there must be errors in compiling extension makefile.The separator is inputted by clicking Tab key on keyboard of PC.
Path format
Because the abld tool is a Perl script in fact,so the macros defined in enviroment can be used in extension makefile.Such as:
$(EPOCROOT) get EPOCROOT path of default SDK
$(PLATFORM) get build platform type (WINS,WINSCW,THUMB,ARMI,GCCE,etc.)
$(CFG) get build program type (UDEB,UREL)
These can be used in conjunction to do different works base on different enviroment.such as:
ifeq (WINS,$(findstring WINS, $(PLATFORM)))
do things in WINS platform
else
do things in other platforms
endif
Commonly, what extension makefile uses is relative path,so the location of project directory is connected with it.But macros can also be used in path of MSDOS commands,which will make the project fits IDE has multiple SDKs.
For example: ${EPOCROOT}\Epoc32\$(PLATFORM)\c\system\help
This path will be auto-changed when SDK is switched or build platform type is altered.And no matter which SDK or type is selected,the path will always correct.So the project include this kind of extension makefile can be put at any location of SDK installed disk.But it isn't the only one condition,the paths in other files of project,such as pkg file,also affects the location of project directory.
| Related Discussions | ||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| using cyrillic with phones | valia | General Browsing | 1 | 2003-05-26 12:49 |
| Viewing Thumbnail images of phone on the PC | ddbhasin | Mobile Java General | 2 | 2007-10-19 10:58 |
| build does nothing - carbide express | toutpourricesite | Carbide.c++ and CodeWarrior Tools | 2 | 2006-12-19 15:50 |
| Checking call? | madsbjoern | Python | 7 | 2006-04-05 12:17 |
| Were there any Nokia phones with CLDC 1.0 + floating point as an extension? | gkulewski | Mobile Java General | 4 | 2005-11-21 10:33 |
