bitbake之写一个recipe(2)

recipe文件的语法:

  • 变量赋值和操作
    S = "${WORKDIR}/postfix-${PV}" CFLAGS += "-DNO_ASM" SRC_URI_append = "file://fixup.patch"
  • 函数
    提供了一系列可执行的动作,例如:
    do_install(){
    autotools_do_install
    install -d ${D}${base_bindir}
    mv ${D}${bindir}/sed ${D}${base_bindir}/sed
    rmdir ${D}${bindir}/
    }
  • 关键字
    bitbake recipe文件仅仅使用较少的关键字,使用inherit关键字可以包含公共的函数,include和require可以包含其他recipe文件的部分,export关键字向环境输出变量的值。
    export POSTCONF = "${STAGING_BINDIR}/postconf"
    inherit autoconf
    require otherfile.inc
  • 注释
    以#字符开头的行,将被当作注释行,并且被忽略。
  • 行的延续
    使用反斜杠将一个声明分成多行。例如:
    VAR = "A really long\
    line"
  • 使用变量
    使用${varname}来访问变量的内容,例如:
    SRC_URI = "${SOURCEFORGE_MIRROR}/libpng/zlib-${PV}.tar.gz"
  • 条件赋值:?=
    条件赋值用于:当该变量没有被赋值时,对其进行赋值。
    VAR1 = "Original value"
    VAR1 ?= "New value"

    VAR1的值没有变,还是”Original value”
  • 增加:+=
    SRC_URI += "file://fix-makefile.patch"
    该操作符在旧的变量内容和新的添加的内容中间添加一个空格。
  • 前置增加:=+
    VAR =+ "Starts"
    在VAR的值的前面添加。
  • _append
    也是添加的意思,但是不添加空格,空格需要显式添加,例如
    SRC_URI_append = " file://fix-makefile.patch"
  • _prepend
    同上!
  • override
    一般情况下是某些值,在另外的条件下,使用override可以设定另外的值。例如:
    KBRANCH = "standard/base"
    KBRANCH_qemuarm = "standard/arm-versatile-926ejs"
  • 使用python来进行复杂的操作
    使用方式为: ${@python_code}
  • shell 使用
    使用sh,而不是bash
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值