为了在配方之间和交叉编译范围之间共享文件,我${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.