当我打开以.bb扩展名结尾的bitbake文件时,大多数文件都使用如下所示的WORKDIR变量。
S = "${WORKDIR}/git"
请问您能告诉我WORKDIR是在哪里定义的吗?
当我打开以.bb扩展名结尾的bitbake文件时,大多数文件都使用如下所示的WORKDIR变量。
S = "${WORKDIR}/git"
请问您能告诉我WORKDIR是在哪里定义的吗?
来自Yocto Project参考手册
WORKDIR
OpenEmbedded构建系统在其中构建配方的工作目录的路径名。此目录位于TMPDIR目录结构中,具体取决于正在构建的配方和正在构建的系统。
WORKDIR目录定义如下:
${TMPDIR}/work/${MULTIMACH_TARGET_SYS}/${PN}/${EXTENDPE}${PV}-${PR}
实际目录取决于几个因素:
TMPDIR: The top-level build output directory
MULTIMACH_TARGET_SYS: The target system identifier
PN: The recipe name
EXTENDPE: The epoch - (if PE is not specified, which is usually the >case for most recipes, then EXTENDPE is blank)
PV: The recipe version
PR: The recipe revision
作为一个例子,假设有一个源目录顶级文件夹名叫做poky,一个位于poky/build的默认构建目录,并且一个qemux86-poky-linux机器目标系统。此外,假设你的食谱命名为foo_1.3.0-r0.bb。在这种情况下,构建系统用来构建软件包的工作目录如下所示: poky/build/tmp/work/qemux86-poky-linux/foo/1.3.0-r0
http://www.yoctoproject.org/docs/2.1/ref-manual/ref-manual.html#var-WORKDIR
${TMPDIR} 是 Yocto 构建目录下名为 "tmp" 的文件夹。
${WORKDIR}
的默认值在bitbake变量中被定义。但您可以在配方中更改它。它指向bitbake解压软件包的目录。
您可以从bitbake环境获取${WORKDIR}
的值。
bitbake -e <recipe-name> | grep ^WORKDIR=
对于一个特定的配方,您可以通过获取环境文件来获取所有变量的值:
bitbake -e recipe_name > env
WORKDIR在以下文件中被定义。
bitbake/conf/bitbake.conf
oe-core/meta/conf/bitbake.conf