为了在配方之间和交叉编译范围之间共享文件,我${datadir}
在安装二进制文件时使用(通过do_install
)。这使我可以访问FILES:${PN}
via描述的所有文件recipe-sysroot
。
u-boot.bb
- 导出配方:
…
do_install() {
install -d ${D}${datadir}/u-boot-2016/
install -m 0644 ${B}/${UBOOT_ELF_BINARY} ${D}${datadir}/u-boot-2016
}
FILES:${PN} = "${datadir}/u-boot-2016"
…
u-boot-sign.bb
- 取决于食谱
…
DEPENDS += " u-boot python3-native"
do_sign() {
${STAGING_BINDIR_NATIVE}/python3-native/python3 sign.py \
-i ${RECIPE_SYSROOT}${datadir}/u-boot-2016/${UBOOT_ELF_BINARY}
}
…
灵感来自这里
编辑
有人建议我不要使用${datadir}
. /firmware
对于中间文件,更好的方法是使用meta-arm
.
u-boot.bb
- 导出配方:
…
do_install() {
install -D -p -m 0644 ${B}/${UBOOT_ELF_BINARY} ${D}/firmware/${UBOOT_ELF_BINARY}
}
FILES:${PN} = "/firmware"
SYSROOT_DIRS += "/firmware"
…
u-boot-sign.bb
- 取决于食谱
…
DEPENDS += " u-boot python3-native"
do_sign() {
${STAGING_BINDIR_NATIVE}/python3-native/python3 sign.py \
-i ${RECIPE_SYSROOT}/firmware/u-boot-2016/${UBOOT_ELF_BINARY}
}
…
它还需要添加/firmware
到SYSROOT_DIRS
.