recipe文件的語法:
1、變量賦值和操作
S = "${WORKDIR}/postfix-${PV}" CFLAGS += "-DNO_ASM" SRC_URI_append = "file://fixup.patch"
2、函數(shù)
提供了一系列可執(zhí)行的動作,例如:
do_install(){
autotools_do_install
install -d ${D}${base_bindir}
mv ${D}${bindir}/sed ${D}${base_bindir}/sed
rmdir ${D}${bindir}/
}
3、關(guān)鍵字
bitbake recipe文件僅僅使用較少的關(guān)鍵字,使用inherit關(guān)鍵字可以包含公共的函數(shù),include和require可以包含其他recipe文件的部分,export關(guān)鍵字向環(huán)境輸出變量的值。
export POSTCONF = "${STAGING_BINDIR}/postconf"
inherit autoconf
require otherfile.inc
4、注釋
以#字符開頭的行,將被當(dāng)作注釋行,并且被忽略。
行的延續(xù)
使用反斜杠將一個聲明分成多行。例如:
VAR = "A really long\
line"
5、使用變量
使用${varname}來訪問變量的內(nèi)容,例如:
SRC_URI = "${SOURCEFORGE_MIRROR}/libpng/zlib-${PV}.tar.gz"
6、條件賦值:?=
條件賦值用于:當(dāng)該變量沒有被賦值時,對其進行賦值。
VAR1 = "Original value"
VAR1 ?= "New value"
VAR1的值沒有變,還是”O(jiān)riginal value”
7、增加:+=
SRC_URI += "file://fix-makefile.patch"
該操作符在舊的變量內(nèi)容和新的添加的內(nèi)容中間添加一個空格。
8、前置增加:=+
VAR =+ "Starts"
在VAR的值的前面添加。
9、_append
也是添加的意思,但是不添加空格,空格需要顯式添加,例如
SRC_URI_append = " file://fix-makefile.patch"
_prepend
同上!
10、override
一般情況下是某些值,在另外的條件下,使用override可以設(shè)定另外的值。例如:
KBRANCH = "standard/base"
KBRANCH_qemuarm = "standard/arm-versatile-926ejs"
11、使用python來進行復(fù)雜的操作
使用方式為:
${@python_code}
12、shell 使用
使用sh,而不是bash