Я пытаюсь собрать openblas с yocto на моей 64-битной плате armv8. Я смог успешно собрать openblas по рецепту битового теста, который у меня есть. Все файлы библиотеки были встроены в папку изображений openblas. Я также добавил openblas в мой local.conf. Но когда я дал -
bitbake core-image-weston
, я не могу найти эти библиотеки где-нибудь в rootfs. Чего здесь не хватает ?? вот рецепт openblas.
openblas_0.2.20.bb
DESCRIPTION = "OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version."
SUMMARY = "OpenBLAS : An optimized BLAS library"
AUTHOR = "Alexander Leiva <norxander@gmail.com>"
HOMEPAGE = "http://www.openblas.net/"
SECTION = "libs"
LICENSE = "BSD-3-Clause"
RDEPENDS_${PN} += "libgfortran"
DEPENDS += " make libgfortran"
LIC_FILES_CHKSUM = "file://LICENSE;md5=5adf4792c949a00013ce25d476a2abc0"
SRC_URI = "https://github.com/xianyi/OpenBLAS/archive/v${PV}.tar.gz"
SRC_URI[md5sum] = "48637eb29f5b492b91459175dcc574b1"
SRC_URI[sha256sum] = "5ef38b15d9c652985774869efd548b8e3e972e1e99475c673b25537ed7bcf394"
S = "${WORKDIR}/OpenBLAS-${PV}"
FLOATABI = "${@bb.utils.contains("TUNE_FEATURES", "vfp", bb.utils.contains("TUNE_FEATURES", "callconvention-hard", " -mfloat-abi=hard", " -mfloat-abi=softfp", d), "" ,d)}"
def map_arch(a, d):
import re
if re.match('i.86$', a): return 'ATOM'
elif re.match('x86_64$', a): return 'ATOM'
elif re.match('aarch32$', a): return 'ARMV7'
elif re.match('aarch64$', a): return 'ARMV8'
return a
def map_bits(a, d):
import re
if re.match('i.86$', a): return 32
elif re.match('x86_64$', a): return 64
elif re.match('aarch32$', a): return 32
elif re.match('aarch64$', a): return 64
return 64
do_compile () {
oe_runmake HOSTCC="${BUILD_CC} " \
CC="${TARGET_PREFIX}gcc ${FLOATABI} ${TOOLCHAIN_OPTIONS}" \
PREFIX=${exec_prefix} \
CROSS_SUFFIX=${HOST_PREFIX} \
ONLY_CBLAS=1 BINARY='${@map_bits(d.getVar('TARGET_ARCH', True), d)}' \
TARGET='ARMV8'
}
do_install() {
install -d ${D}${libdir}
install -d ${D}${libdir}/cmake
install -d ${D}${libdir}/pkgconfig
oe_runmake HOSTCC="${BUILD_CC}" \
CC="${TARGET_PREFIX}gcc ${TOOLCHAIN_OPTIONS}" \
PREFIX=${exec_prefix} \
CROSS_SUFFIX=${HOST_PREFIX} \
ONLY_CBLAS=1 BINARY='${@map_bits(d.getVar('TARGET_ARCH', True), d)}' \
TARGET='${@map_arch(d.getVar('TARGET_ARCH', True), d)}' \
DESTDIR=${D} \
install
cp -r ${D}/usr/lib/* ${D}/usr/lib64/
rm -rf ${D}/usr/lib
rm -rf ${D}/usr/bin
}
RDEPENDS_${PN}-dev = ""
RDEPENDS_${PN}-staticdev = ""
FILES_${PN}-libs = "${libdir}/*"
FILES_${PN} += "/usr/lib64"
FILES_${PN}-dev = "${includedir} ${libdir}/lib${PN}.so"
INSANE_SKIP_${PN} += "staticdev"