Join Now
Quality Rating:
  • Currently 0.0 / 5
(0.0 / 5 - 0 votes cast)
Expertise Level:
  • Currently 0.0 / 5
(0.0 / 5 - 0 votes cast)

This page was last modified 13:14, 20 October 2007.

Extension makefiles概览

From Forum Nokia Wiki

Extension makefile概览

Extension makefile由工程bld.inf文件的prj_mmpfiles项中的关键字makefile、nmakefile、以及gnumakefile来定义的,其中最常用的是gnumakefile。当abld工具运行时,开发环境会根据不同的abld命令调用extension makefile中不同target(makmake,freeze,library,clean,final,resource,bld,savespace,releasables)后的若干MSDOS命令行完成一系列不同的工作。这些工作包括:制作hlp file、输出mif file和其它各种使用SDK工具的操作。这些SDK工具在MSDOS中被称为外部命令,当然MSDOS的内部命令(例如:copy、del等)同样也可以在extension makefile中使用

下面就extension makefile的使用提几点注意事项:

Target的格式

所有的target必须同时在extension makefile列出,因为每个target在abld工具运行的过程中都会被调用,而且其后必须紧跟一个英文冒号(:),尤其是后面有命令要执行时更是如此。如果多个target后没有命令行,可以把它们写在一排,在最后一个target后跟一个冒号即可。例如:


makmake:

	... 

bld:

	...


freeze library clean final resource savespace releasables:

命令行格式

每个target后的每个命令行的行首必须以一个分隔符(separator)开始,分隔符使用键盘上的“Tab”键输入,长度相当于8个空格,但不可以用8个或其它数目的空格来替代,否则编译时会出错。

路径格式

因为abld工具其实是Perl脚本,所以Perl环境中的宏(macro)在extension makefile中也能使用,例如:

$(EPOCROOT)表示默认SDK的EPOCROOT环境变量


$(PLATFORM)表示建立目标类型(WINS、WINSCW、THUMB、ARMI、GCCE等)


$(CFG)表示建立程序类型(UDEB或UREL)

这有利于依据不同的目标或程序类型完成相应不同的工作,例如:

ifeq (WINS,$(findstring WINS, $(PLATFORM)))


WINS平台的工作


else


其它平台的工作


endif

通常extension makefile使用的是相对路径,所以工程文件夹的位置会受到限制。但如果我们将宏和MSDOS中的路径结合使用,可以使我们的工程适应多个SDK的开发环境。

例如:${EPOCROOT}\Epoc32\$(PLATFORM)\c\system\help

当开发环境在不同版本的SDK间切换时,这条路径会根据SDK自动改变,不管SDK、目标或程序类型如何改变它总是正确的。所以如果工程中有包含这种路径的extension makefile,则此工程文件夹的位置无关(可以放在SDK安装盘的任何地方而不影响编译)就成为可能。当然这只是工程文件夹位置无关的条件之一,工程中其它文件中的路径,例如pkg文件等,同样会影响工程文件夹的位置。

Related Discussions
Thread Thread Starter Forum Replies Last Post
unable to build in carbide winfoware General Symbian C++ 11 2007-03-20 14:48
Help! How to create a theme in .sisx format? garu90210 Themes/Carbide.ui 5 2007-06-12 07:45
Nokia 32 Tone Teaching sandro_zahra Nokia M2M 0 2004-11-17 07:35
Wallpapers, screensavers, ringtones and Operation Logos color vzukovsky General Browsing 4 2002-11-19 12:23
installing sis file via wap pappago General Symbian C++ 1 2002-12-04 11:47
 
Powered by MediaWiki
     
     RDF Facets:
     
     
     qfnZtypeQUqfnTypeZCommunityContentQ
     qfnZtypeQUqfnTypeZWebpageQ
     qfnZtypeQUqfnTypeZWikiContentQ
     qmarsZlanguageQUxhttpE3aE2fE2fswE2enokiaE2ecomE2flanguageE2d1E2fenX