[yocto] Can't get *.a's into SDK sysroot

Andre McCurdy armccurdy at gmail.com
Tue Jul 24 17:08:52 PDT 2018


On Tue, Jul 24, 2018 at 4:53 PM, Greg Wilson-Lindberg <GWilson at sakuraus.com>
wrote:

> I've created a recipe for Canfestival (a CAN bus CANOpen support library).
> I have had it building for a while, but I had the configuration set up to
> build all parts of it as .so's. I need to change it so that parts of the
> library are .a's. My problem is that I can't get the .a's to copy to the
> SDK sysroot /usr/lib directory. The .a's are in the canfestival
> image/usr/lib & sysroot-destdir/usr/lib directories, but nothing that I've
> tried has gotten them to the SDK sysroot.
>
>
>
> Here is the canfestival_3-asc.bb file that I'm using:
>
>
>
> SUMMARY = "Independent CANOpen® stack"
>
> DESCRIPTION = "CanFestival focuses on providing an ANSI-C platform independent \
>
>                CANOpen® stack that can be built as master or slave nodes on PCs, \
>
>                Real-time IPCs, and Microcontrollers."
>
>
>
> HOMEPAGE = "http://www(dot)canfestival(dot)org/ <http://www%20(dot)%20canfestival%20(dot)%20org/>" // obfuscated to get past our email system
>
>
>
> SRCREV = "895:8973dd8be7e8"
>
>
>
> SRC_URI = "hg://bitbucket.org/Mongo;protocol=https;module=canfestival-3-asc \
>
>            file://canfestival_3-asc-configure.patch \
>
>            file://canfestival_3-asc-makefile.in.patch \
>
>            file://canfestival_3-asc-src_makefile.in.patch \
>
>            \
>
>            file://sdo.c.patch \
>
>            file://def.h.patch \
>
>            "
>
> PR = 'r01'
>
>
>
> LICENSE = "LGPLv2"
>
> LIC_FILES_CHKSUM = "file://COPYING;md5=46ec399d3928b6c91e3634ab7263af44 \
>
>                     file://LICENCE;md5=085e7fb76fb3fa8ba9e9ed0ce95a43f9"
>
>
>
> TARGET_CC_ARCH += "${LDFLAGS}"
>
>
>
>
>
>
>
> do_configure() {
>
>     bbplain "Starting Configure"
>
>     #bbplain "rootfs: ${D}"
>
>     ./configure --target=unix --prefix=${D}/usr/ --can=socket --timers=unix  --SDO_MAX_SIMULTANEOUS_TRANSFERS=30 --SDO_MAX_LENGTH_TRANSFER=4096 --MAX_NB_TIMER=128 --SDO_TIMEOUT_MS=3000 --debug="WAR"
>
>
>
>     bbplain "Configure Done"
>
> }
>
>
>
> do_compile() {
>
>     oe_runmake canfestival
>
> }
>
>
>
> do_install() {
>
>     bbplain "Starting Install"
>
>     #bbplain "rootfs: ${D}"
>
>     oe_runmake install PREFIX=${D}/usr/
>
>
>
>     bbplain "Install Done"
>
> }
>
>
>
> FILES_${PN}-dbg = "/usr/src/debug/canfestival"
>
> FILES_${PN}-dev = "/usr/lib/libcanfestival*.a /usr/include/canfestival/*.h"
>
> FILES_${PN} = "/usr/lib/libcanfestival*.a /usr/lib/libcanfestival*.so"
>
>
>
> #PACKAGE_BEFORE_PN = "${PN}-info"
>
> #FILES_${PN}-info = "usr/lib/pkgconfig"
>
>
>
> I've fiddled with the various FILES lines, but nothing that I do gets the
> .a files copied to the SDK sysroot /usr/lib directory.
>
>
>
> Any insight into what is going wrong would be greatly appreciated.
>

Assuming the static libs are being built and installed correctly they
should be packaged correctly by the default packaging rules. ie you
shouldn't need to tweak any FILES_xxx values.

However you will need to ensure that the -staticdev package gets included
in the SDK. Assuming you always want the static libs for this particular
recipe to be available then you can try adding the following to the recipe:

  RDEPENDS_${PN}-dev += "${PN}-staticdev"
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/yocto/attachments/20180724/18fdc8a0/attachment.html>


More information about the yocto mailing list