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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章