Contiki Makefile.include 笔记

约定:  makefile 包括Makefile、Makefile.xxx,并不单指Makefile

不对makefile的语法进行分析,仅仅关注几个需要点。

首先要说明,Makefile.include是被用户的工程目录下的"Makefile"      include之,这个是必须要做的。

Makefile.include 从上到下,顺序检索。

关注点一

最开始,编译系统会检查用户是否定义了 contiki 源码根目录、检查用户定义的硬件平台、是否使用ipv6、当前编译系统。如下图:

A  如果用户不在自己的Makefile中定义CONTIKI 这个变量,编译会终止并报错。一般的,应该在工程目录下的Makefile里面定义成这样:

“       CONTIKI = ../..  “

B  检查用户定义的硬件平台:如果命令选择了”make” 而非 “make TARGET=bse” ,会添加工程目录下Makefile.target这个文件,在这个文件里去找TARGET的定义。如果依然没有定义,系统会默认用户选择了”native” 硬件平台。

C  添加  “Makefile.$(TARGET).defines” 文件,这个文件也是存在于用户工程目录下

D  检查是否启用ipv6

E  检查编译环境系统:是windows 还是linux

关注点二

导入contiki的核心代码、创建obj目标目录。Obj_$(target)目录里当然要存放各种生成的.o文件。如下图:

如上图可以看出 contiki/ 下的 core/ 是被无条件包含进来了----无论你是什么平台或者什么应用。当然,也不是绝对的。如果要裁减一些功能,可以修改变量 “CONTIKIDIRS”的值即可<或许有这样的需要>。接着要在工程目录下创建一个放 ”*.o”文件的地方,以前缀”obj_”命名。

关注点三

检查用户是否要导入一些上层 application,如果有,则会导入contiki/apps/ 以及Contiki/platform/$(TARGET)/apps/ 下相对应的makefile文件。检查的机制是以用户的Makefile中是否定义了”APPS”变量为标准,如下图:

”APPS”变量在Makefile中的定义形如下图< 以email应用为例>:

关注点四

导入相应的硬件平台下的makefile,比如是CC2530平台的话,那就导入Makefile.cc2530dk这个makefile,如下图:

具体就有  “target_makefile” 这个变量来搞定了。

target_makefile := $(wildcard $(CONTIKI)/platform/$(TARGET)/Makefile.$(TARGET) ${foreach TDIR, $(TARGETDIRS), $(TDIR)/$(TARGET)/Makefile.$(TARGET)})

OK,上面即是Makefile.include干的主要的事情。其他的就是一些变量赋值什么的。

contiki Makefile.include 四个关注点<contiki学习之二>的更多相关文章

  1. contiki makefile框架分析 < contiki学习之一 >

    在linux下的工程编译,基本都可以使用makefile这个工具来完成.Contiki OS亦如此,下面分析contiki整个Makefile的框架,对makefile的具体内容暂不做分析.本文依赖于 ...

  2. python3.4学习笔记(二十四) Python pycharm window安装redis MySQL-python相关方法

    python3.4学习笔记(二十四) Python pycharm window安装redis MySQL-python相关方法window安装redis,下载Redis的压缩包https://git ...

  3. scrapy爬虫学习系列四:portia的学习入门

    系列文章列表: scrapy爬虫学习系列一:scrapy爬虫环境的准备:      http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_python_00 ...

  4. 0003.5-20180422-自动化第四章-python基础学习笔记--脚本

    0003.5-20180422-自动化第四章-python基础学习笔记--脚本 1-shopping """ v = [ {"name": " ...

  5. 深度学习课程笔记(十四)深度强化学习 --- Proximal Policy Optimization (PPO)

    深度学习课程笔记(十四)深度强化学习 ---  Proximal Policy Optimization (PPO) 2018-07-17 16:54:51  Reference: https://b ...

  6. 学习笔记:CentOS7学习之二十四:expect-正则表达式-sed-cut的使用

    目录 学习笔记:CentOS7学习之二十四:expect-正则表达式-sed-cut的使用 24.1 expect实现无交互登录 24.1.1 安装和使用expect 24.2 正则表达式的使用 24 ...

  7. 设计模式学习(二十四):Spring 中使用到的设计模式

    设计模式学习(二十四):Spring 中使用到的设计模式 作者:Grey 原文地址: 博客园:设计模式学习(二十四):Spring 中使用到的设计模式 CSDN:设计模式学习(二十四):Spring ...

  8. MyBatis学习 之 二、SQL语句映射文件(2)增删改查、参数、缓存

    目录(?)[-] 二SQL语句映射文件2增删改查参数缓存 select insert updatedelete sql parameters 基本类型参数 Java实体类型参数 Map参数 多参数的实 ...

  9. MyBatis学习 之 二、SQL语句映射文件(1)resultMap

    目录(?)[-] 二SQL语句映射文件1resultMap resultMap idresult constructor association联合 使用select实现联合 使用resultMap实 ...

随机推荐

  1. Azure SQL 数据库新服务级别现已正式发布

    T.K.Ranga Rengarajan   2014 年 9 月 10 日上午 11:00 我们很高兴地宣布,新的 SQL 数据库服务级被基本.标准和高级级别现已正式发布.这些服务级别中含有内置且可 ...

  2. db2数据库sql报错信息

    sqlcode sqlstate 说明 000 00000 SQL语句成功完成   01xxx SQL语句成功完成,但是有警告 +012 01545 未限定的列名被解释为一个有相互关系的引用 +098 ...

  3. 【转】Linux Posix Timer使用

    原文网址:http://blog.csdn.net/hongszh/article/details/8608781 最强大的定时器接口来自POSIX时钟系列,其创建.初始化以及删除一个定时器的行动被分 ...

  4. 查询MySQL锁等待的语句

    select 'Blocker' role,    p.id,    p.user,    left(p.host, locate(':', p.host) - 1) host,    tx.trx_ ...

  5. [Everyday Mathematics]20150208

    对 $f\in C^2(\bbR)$ 适合 $$\bex \vlm{|x|}f(x)=0, \eex$$ 试证: $$\bex \int_{\bbR} |f'|^p\rd x \leq (p-1)^\ ...

  6. HDU 5778 abs (BestCoder Round #85 C)素数筛+暴力

    分析:y是一个无平方因子数的平方,所以可以从sqrt(x)向上向下枚举找到第一个无平方因子比较大小 大家可能觉得这样找过去暴力,但实际上无平方因子的分布式非常密集的,相关题目,可以参考 CDOJ:无平 ...

  7. JQuery WEB前段开发

    JQuery WEB前段开发 Jquery是继prototype之后又一个优秀的Javascript框架.它是轻量级的js库 ,它兼容CSS3,还兼容各种浏览器(IE 6.0+, FF 1.5+, S ...

  8. oc_转_构造对象的方法,以及类的继承

    一.构造方法 (一)构造方法的调用 完整的创建一个可用的对象:Person *p=[Person new]; New方法的内部会分别调用两个方法来完成2件事情: 1) 使用alloc方法来分配存储空间 ...

  9. Codevs No.1052 地鼠游戏

    2016-05-31 18:22:32 题目链接: 地鼠游戏 Codevs No.1245 题目大意: 打地鼠,一开始所有地鼠都出现,但是维持的时间(s)和击中所得的积分各不同,求出采用最优策略(1s ...

  10. Codeforces 381 简要题解

    做的太糟糕了...第一题看成两人都取最优策略,写了个n^2的dp,还好pre-test良心(感觉TC和CF的pretest还是很靠谱的),让我反复过不去,仔细看题原来是取两边最大的啊!!!前30分钟就 ...