bitbake之写一个recipe

recipe文件的语法:
1、变量赋值和操作

S = "${WORKDIR}/postfix-${PV}" CFLAGS += "-DNO_ASM" SRC_URI_append = "file://fixup.patch"

2、函数
提供了一系列可执行的动作,例如:

do_install(){
autotools_do_install
install -d ${D}${base_bindir}
mv ${D}${bindir}/sed ${D}${base_bindir}/sed
rmdir ${D}${bindir}/
}

3、关键字
bitbake recipe文件仅仅使用较少的关键字,使用inherit关键字可以包含公共的函数,include和require可以包含其他recipe文件的部分,export关键字向环境输出变量的值。

export POSTCONF = "${STAGING_BINDIR}/postconf"
inherit autoconf
require otherfile.inc

4、注释
以#字符开头的行,将被当作注释行,并且被忽略。
行的延续
使用反斜杠将一个声明分成多行。例如:

VAR = "A really long\
line"

5、使用变量
使用${varname}来访问变量的内容,例如:

SRC_URI = "${SOURCEFORGE_MIRROR}/libpng/zlib-${PV}.tar.gz"

6、条件赋值:?=
条件赋值用于:当该变量没有被赋值时,对其进行赋值。

VAR1 = "Original value"
VAR1 ?= "New value"

VAR1的值没有变,还是”Original value”

7、增加:+=

SRC_URI += "file://fix-makefile.patch"

该操作符在旧的变量内容和新的添加的内容中间添加一个空格。

8、前置增加:=+

VAR =+ "Starts"

在VAR的值的前面添加。

9、_append
也是添加的意思,但是不添加空格,空格需要显式添加,例如

SRC_URI_append = " file://fix-makefile.patch"
_prepend

同上!

10、override
一般情况下是某些值,在另外的条件下,使用override可以设定另外的值。例如:

KBRANCH = "standard/base"
KBRANCH_qemuarm = "standard/arm-versatile-926ejs"

11、使用python来进行复杂的操作
使用方式为:

 ${@python_code}

12、shell 使用
使用sh,而不是bash

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 这是16年5月份编辑的一份比较杂乱适合自己观看的学习记录文档,今天18年5月份再次想写文章,发现简书还为我保存起的...
    Jenaral阅读 2,860评论 2 9
  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,467评论 0 5
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,145评论 1 32
  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 5,822评论 0 10
  • 常量与变量使用let来声明常量,使用var来声明变量。声明的同时赋值的话,编译器会自动推断类型。值永远不会被隐式转...
    莫_名阅读 467评论 0 1