TinyOS编译过程(一)

写在之前:

花了一段时间想弄清楚TinyOS的编译过程,但由于对Makefile的运行机制不熟悉以及不懂得perl语言,在很多地方仍然存在问题,这篇文章算是对TinyOS编译过程学习的一个记录,其中不免有错误,希望以后发现并更正。

TinyOS版本:2.1.1

假设我们编译

tinyos/apps/Blink

#make tmote
make命令的入口显然是当前目录下的文件 Makefile。该文件通过

include $(MAKERULES)

引入tinyos的编译规则(在目录tinyos/Support/Make下面) Makerules;在该文件(Makerules)中有引入了同一目录下的文件 MakedefultMakelocal(Makelocal并不存在);同时引入文件 Tmote.target不知道是从哪里引入该文件的);该文件(Tmote.target)又有引入了同一目录下的 Telosb.target文件;该文件(Telosb.target)又引入了Msp目录下的 Msp.rules文件,同时包含了Msp目录下所有 .target.extra文件;

问题:

1、Tmote.target文件不知道是如何引入的。

2、Makefile通过变量MAKECMDGOAL指定目标,但不知道这个是如何工作的(makefile从终端是如何接收变量,传递参数的)。

3、在目录tinyos/Tos/Platform/Telosb/下有文件.platform,不知道该文件时如何被包含,并被使用的

4、在文件tinyos/Support/Make/Makedefaults中有语句

GOALS += ident_flags tos_image tosboot

而在Make目录下有ident_flags.extra tos_image.extra tosboot.extra文件,但不知道这些文件最终是如何被引用的。

你可能感兴趣的:(TinyOS编译过程(一))