Bitbake build for yocto failed on adding libgdiplus - yocto

We are building a yocto image with bitbake.
In the build we need to add libgdiplus, but this causes an error during the build.
This is the error:
ERROR: Nothing RPROVIDES 'libgdiplus' (but //***/sources/meta-variscite-fslc/recipes-fsl/images/fsl-image-gui.bb RDEPENDS on or otherwise requires it)
NOTE: Runtime target 'libgdiplus' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['libgdiplus']
NOTE: Target 'fsl-image-gui' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['fsl-image-gui', 'libgdiplus']
ERROR: Required build target 'fsl-image-gui' has no buildable providers.
Missing or unbuildable dependency chain was: ['fsl-image-gui', 'libgdiplus']
In our bblayers.conf file we've added the meta-mono layer
LCONF_VERSION = "6"
BBPATH = "${TOPDIR}"
BSPDIR := "${#os.path.abspath(os.path.dirname(d.getVar('FILE', True)) + '/../..')}"
BBFILES ?= ""
BBLAYERS = " \
${BSPDIR}/sources/poky/meta \
${BSPDIR}/sources/poky/meta-poky \
\
${BSPDIR}/sources/meta-openembedded/meta-oe \
${BSPDIR}/sources/meta-openembedded/meta-multimedia \
${BSPDIR}/sources/meta-openembedded/meta-python \
${BSPDIR}/sources/meta-openembedded/meta-perl \
${BSPDIR}/sources/meta-openembedded/meta-filesystems \
${BSPDIR}/sources/meta-openembedded/meta-gnome \
${BSPDIR}/sources/meta-openembedded/meta-networking \
\
${BSPDIR}/sources/meta-freescale \
${BSPDIR}/sources/meta-freescale-3rdparty \
${BSPDIR}/sources/meta-freescale-distro \
\
${BSPDIR}/sources/meta-qt5 \
${BSPDIR}/sources/meta-swupdate \
${BSPDIR}/sources/meta-virtualization \
${BSPDIR}/sources/meta-variscite-fslc \
${BSPDIR}/sources/meta-security \
${BSPDIR}/sources/meta-dotnet-core \
${BSPDIR}/sources/meta-mono \
${BSPDIR}/sources/meta-tempest-driverboard \
"
In our layer.conf file We try to do a CORE_IMAGE_EXTRA_INSTALL for libgdiplus(this is the one that fails).
...
CORE_IMAGE_EXTRA_INSTALL += "giflib"
CORE_IMAGE_EXTRA_INSTALL += "libgdiplus"
Are there some other dependencies that need to be installed, or is there another easier way to get libgdiplus in the build?
I'm quite new in yocto so any help is welcome.

Related

BBLayers.conf specify path using environment variable

I am trying to configure a Yocto build and would like to be able to specify the path to a layer in bblayers.conf via an environment variable. This will allow engineers to checkout a configuration and build without needing to manually modify bblayers.conf so to specify the absolute path to their checkout of the kernel module.
I have tried exporting a variable in my .zshrc file, e.g.
export TRIALS=~/TRIALS
Unfortunately, when I attempt to access it in bblayers.conf the value is not set:
# POKY_BBLAYERS_CONF_VERSION is increased each time build/conf/bblayers.conf
# changes incompatibly
POKY_BBLAYERS_CONF_VERSION = "2"
BBPATH = "${TOPDIR}"
BBFILES ?= ""
TRIALS_DIR = "${#os.environ['TRIALS']}"
BBLAYERS ?= " \
/home/ahk/poky/meta \
/home/ahk/poky/meta-poky \
/home/ahk/poky/meta-yocto-bsp \
/home/ahk/poky/meta-amd/meta-amd-bsp \
/home/ahk/poky/meta-amd/meta-amd-distro \
/home/ahk/poky/meta-congatec-amd \
/home/ahk/poky/meta-dpdk \
/home/ahk/poky/meta-openembedded/meta-oe \
/home/ahk/poky/meta-openembedded/meta-networking \
/home/ahk/poky/meta-openembedded/meta-python \
${TRIALS_DIR}/hello-layer \
"
The error I get is
bb.BBHandledException
ERROR: Failure expanding variable TRIALS_DIR, expression was
${#os.environ['TRIALS']} which triggered exception KeyError: 'TRIALS'
How do I set an environment variable in my shell that can be accessed from belayers.conf
Bitbake tightly controls the build environment to prevent unwanted contamination. This can be overridden by including any variables that you need to access to the BB_ENV_WHITELIST.
For my example above I added the $TRIALS variable to BB_ENV_WHITELIST via
export BB_ENV_WHITELIST="$BB_ENV_WHITELIST TRIALS"
After setting BB_ENV_WHITELIST it was necessary to re-initialise bitbake via:
cd ~/poky
source oe-init-build-env
The $TRIALS environment variable could then be accessed directly in bblayers.conf:
# POKY_BBLAYERS_CONF_VERSION is increased each time build/conf/bblayers.conf
# changes incompatibly
POKY_BBLAYERS_CONF_VERSION = "2"
BBPATH = "${TOPDIR}"
BBFILES ?= ""
BBLAYERS ?= " \
/home/ahk/poky/meta \
/home/ahk/poky/meta-poky \
/home/ahk/poky/meta-yocto-bsp \
/home/ahk/poky/meta-amd/meta-amd-bsp \
/home/ahk/poky/meta-amd/meta-amd-distro \
/home/ahk/poky/meta-congatec-amd \
/home/ahk/poky/meta-dpdk \
/home/ahk/poky/meta-openembedded/meta-oe \
/home/ahk/poky/meta-openembedded/meta-networking \
/home/ahk/poky/meta-openembedded/meta-python \
${TRIALS}/hello-layer \
"

Yocto: custom Image /var/lib/dpkg missing

I am building a custom yocto image based on rocko (2.5.2) for a custom board equiped with a Xilinx Zynq7000.to generate a wic file I am usind sdimage-sota.wks.
I added debian package management in my local.conf with
PACKAGE_CLASSES ?= " package_deb"
EXTRA_IMAGE_FEATURES ?= "debug-tweaks package-management"
I also ran the command bitbake package-index.
There is no dpkg-package included in my recipes.
After building and flashing the image I get this error message: dpkg: error: unable to access dpkg status area: No such file or directorywhen I try to install a deb package.
When I extract the rootfs.tar.gz file after building, there is a /var/lib/dpkg directory.
If I flash the wic file to my board inside u-boot using tftpboot and mmc write there is no /var/lib/dpkg directory.
Why is the directory missing after flashing the wic file?
Is it possible, that the sdimage-sota.wks is excluding this?
This is my bblaiers.conf:
# LAYER_CONF_VERSION is increased each time build/conf/bblayers.conf
# changes incompatibly
LCONF_VERSION = "7"
BBPATH = "${TOPDIR}"
BBFILES ?= ""
# These layers hold recipe metadata not found in OE-core, but lack any machine or distro content
BASELAYERS ?= " \
${TOPDIR}/../external/poky/meta \
${TOPDIR}/../external/poky/meta-poky \
${TOPDIR}/../external/poky/meta-yocto-bsp \
${TOPDIR}/../external/meta-openembedded/meta-oe \
${TOPDIR}/../external/meta-openembedded/meta-networking \
${TOPDIR}/../external/meta-openembedded/meta-webserver \
${TOPDIR}/../external/meta-openembedded/meta-python \
${TOPDIR}/../external/meta-openembedded/meta-filesystems \
${TOPDIR}/../external/meta-ublox-modules \
"
# These layers hold machine specific content, aka Board Support Packages
BSPLAYERS ?= " \
${TOPDIR}/../meta-minicate \
${TOPDIR}/../external/meta-updater \
${TOPDIR}/../external/meta-xilinx/meta-xilinx-bsp \
${TOPDIR}/../external/meta-rust \
${TOPDIR}/../external/meta-sze \
${TOPDIR}/../external/meta-qt5 \
"
BBLAYERS ?= " \
${BSPLAYERS} \
${BASELAYERS} \
"

Build all packages for an image

Is it possible to build all of the packages for a specific image? I know I can build packages individually, but ideally would like to build all of them at once, through a single command.
Alternatively, is there a way to prevent the do_rootfs task from being executed for a particular image.
Cheers, Donal
First make an image that contains a packagegroup (or just list your dependencies there).
$ cat sources/meta-custom/recipes-custom/images/only-packages-image.bb
SUMMARY = "All dependencies no image"
LICENSE = "CLOSED"
version = "##DISTRO_VERSION##"
BB_SCHEDULER = "speed"
# option 1 - packagegroup, package list can be reused in real image
CORE_IMAGE_BASE_INSTALL += "\
packagegroup_all-depends \
"
# option 2 - list deps here, package list can not be reused in real image
CORE_IMAGE_BASE_INSTALL += "\
lshw \
systemd \
cronie \
glibc \
sqlite \
bash \
python3-dev \
python3-2to3 \
python3-misc \
python3-pyvenv \
python3-modules \
python3-pip \
wget \
apt \
pciutils \
file \
tree \
\
wpa-supplicant \
dhcpcd \
networkmanager \
curl-dev \
curl \
hostapd \
iw \
"
# remove the rootfs step
do_rootfs() {
}
Second make your packagegroup if you opted to reuse the list of packages
$ cat sources/meta-custom/recipes-custom/packagegroups/packagegroup-alldeps.bb
PACKAGE_ARCH = "${MACHINE_ARCH}"
inherit packagegroup
RDEPENDS_${PN} = " \
lshw \
systemd \
cronie \
glibc \
sqlite \
bash \
python3-dev \
python3-2to3 \
python3-misc \
python3-pyvenv \
python3-modules \
python3-pip \
wget \
apt \
pciutils \
file \
tree \
\
wpa-supplicant \
dhcpcd \
networkmanager \
curl-dev \
curl \
hostapd \
iw \
"
Finally build your new image placeholder
$ bitbake only-packages-image
In Yocto >=4.0 this is actually pretty easy to achieve. The packagegroup method did not work for me at all.
I don't know if this works in older versions though.
Create a new file in your custom layer, e.g. meta-custom/classes/norootfs.bbclass and put the following lines in there (as far as I noticed the order does not matter):
deltask do_deploy
deltask do_image
deltask do_rootfs
deltask do_image_complete
deltask do_image_setscene
then in your meta-custom/recipes-core/images/myimage.bb add norootfs to your other inherit commands
e.g. the most basic one
inherit core-image norootfs
You will notice your number of tasks decreasing by a fair amount (mine from ~4700 to ~3000) and there is no complete rootfs image anymore in build/tmp/deploy/images, except for bzImage and modules, just the plain ipk files in build/tmp/deploy/ipk.
I got this information by looking at https://docs.yoctoproject.org/ref-manual/tasks.html?highlight=do_image and .bbclass files in meta/classes where deltask is frequently used.

Yocto/OpenEmbedded Recipe Including library paths from host

I have the luxury of dealing with the endless error and warning paradise that is OpenEmbedded. Good news is that I am finally getting somewhere with my recipe, but I am hitting an issue where my recipe is including include and library paths from my host machine. This as I am aware is unsafe for cross-compilation. Would any of you fine people take like quick look at my recipe and tell me if I'm doing anything dumb? I'd really appreciate it, as this is making me feel like I'm a complete moron.
Here's my OpenEmbedded Recipe:
#TODO fixup license type
#Built by Rob.
DESCRIPTION = "librem"
HOMEPAGE = ""
SECTION = "meta-miku"
DEPENDS = "zlib re"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
# This tells bitbake where to find the files we're providing on the local filesystem
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}-${PV}:"
S = "${WORKDIR}/rem-0.5.2"
INSANE_SKIP_${PN}-dev += "dev-elf"
#INSANE_SKIP_${PN} += "installed-vs-shipped"
SRC_URI = "https://github.com/creytiv/rem/archive/v0.5.2.tar.gz"
SRC_URI[md5sum] = "4d63ab174fb7957b6805fd0de6991fd2"
SRC_URI[sha256sum] = "cef1b29631a35926982502f0eecc0950d40d2585241d0598ff18e70e2dfcfcb6"
do_compile() {
oe_runmake ROOT=${STAGING_DIR_HOST} OFLAGS="--sysroot=${STAGING_DIR_HOST}"
}
do_install () {
oe_runmake install ROOT=${STAGING_DIR_HOST} OFLAGS="--sysroot=${STAGING_DIR_HOST}" DESTDIR=${D}${libdir}
install -d ${D}${libdir}/
install -m 0644 ${S}/librem.a ${D}${libdir}/librem.a
install -m 0644 ${S}/librem.so ${D}${libdir}/librem.so
install -d ${D}${libdir}/pkgconfig
install -m 0644 ${S}/librem.pc ${D}${libdir}/pkgconfig/librem.pc
}
And here are my warnings:
WARNING: rem-1.0-r0 do_package: QA Issue: rem: Files/directories were installed but not shipped in any package:
/usr/lib64/usr/include
/usr/lib64/usr/include/rem
/usr/lib64/usr/include/rem/rem_auconv.h
/usr/lib64/usr/include/rem/rem_fir.h
/usr/lib64/usr/include/rem/rem_aumix.h
/usr/lib64/usr/include/rem/rem_video.h
/usr/lib64/usr/include/rem/rem_audio.h
/usr/lib64/usr/include/rem/rem_vidconv.h
/usr/lib64/usr/include/rem/rem_dtmf.h
/usr/lib64/usr/include/rem/rem_aubuf.h
/usr/lib64/usr/include/rem/rem_au.h
/usr/lib64/usr/include/rem/rem_dsp.h
/usr/lib64/usr/include/rem/rem_vidmix.h
/usr/lib64/usr/include/rem/rem_vid.h
/usr/lib64/usr/include/rem/rem_goertzel.h
/usr/lib64/usr/include/rem/rem_auresamp.h
/usr/lib64/usr/include/rem/rem_autone.h
/usr/lib64/usr/include/rem/rem_g711.h
/usr/lib64/usr/include/rem/rem_aufile.h
/usr/lib64/usr/include/rem/rem.h
/usr/lib64/usr/lib/librem.a
/usr/lib64/usr/lib/librem.so
/usr/lib64/usr/lib/pkgconfig
/usr/lib64/usr/lib/pkgconfig/librem.pc
Please set FILES such that these items are packaged. Alternatively if they are unneeded, avoid installing them or delete them within do_install.
rem: 24 installed and not shipped files. [installed-vs-shipped]
WARNING: rem-1.0-r0 do_package_qa: QA Issue: rem: The compile log indicates that host include and/or library paths were used.
Please check the log '/media/rob/a72581e8-3ca3-4dc1-b3b8-6db5464de098/qc_openEmbedded/apps_proc/build/tmp-glibc/work/aarch64-linaro-linux/rem/1.0-r0/temp/log.do_compile' for more information. [compile-host-path]
WARNING: rem-1.0-r0 do_package_qa: QA Issue: No GNU_HASH in the elf binary: '/media/rob/a72581e8-3ca3-4dc1-b3b8-6db5464de098/qc_openEmbedded/apps_proc/build/tmp-glibc/work/aarch64-linaro-linux/rem/1.0-r0/packages-split/rem-dev/usr/lib64/librem.so' [ldflags]
NOTE: Tasks Summary: Attempted 420 tasks of which 407 didn't need to be rerun and all succeeded.
NOTE: Writing buildhistory
Summary: There were 4 WARNING messages shown.
It is exactly what the warning is telling you in your bitbake output warning. The files are processed and installed however there is no reference to them in the output hence why they are not shipped.
Please set FILES such that these items are packaged. Alternatively if
they are unneeded, avoid installing them or delete them within
do_install. rem: 24 installed and not shipped files.
[installed-vs-shipped]
Include the files in your Yocto recipe:
#TODO fixup license type
#Built by Rob.
DESCRIPTION = "librem"
HOMEPAGE = ""
SECTION = "meta-miku"
DEPENDS = "zlib re"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
# This tells bitbake where to find the files we're providing on the local filesystem
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}-${PV}:"
S = "${WORKDIR}/rem-0.5.2"
INSANE_SKIP_${PN}-dev += "dev-elf"
#INSANE_SKIP_${PN} += "installed-vs-shipped"
SRC_URI = "https://github.com/creytiv/rem/archive/v0.5.2.tar.gz"
SRC_URI[md5sum] = "4d63ab174fb7957b6805fd0de6991fd2"
SRC_URI[sha256sum] = "cef1b29631a35926982502f0eecc0950d40d2585241d0598ff18e70e2dfcfcb6"
do_compile() {
oe_runmake ROOT=${STAGING_DIR_HOST} OFLAGS="--sysroot=${STAGING_DIR_HOST}"
}
do_install () {
oe_runmake install ROOT=${STAGING_DIR_HOST} OFLAGS="--sysroot=${STAGING_DIR_HOST}" DESTDIR=${D}${libdir}
install -d ${D}${libdir}/
install -m 0644 ${S}/librem.a ${D}${libdir}/librem.a
install -m 0644 ${S}/librem.so ${D}${libdir}/librem.so
install -d ${D}${libdir}/pkgconfig
install -m 0644 ${S}/librem.pc ${D}${libdir}/pkgconfig/librem.pc
}
FILES_${PN} += "\
/usr/lib64/usr/include \
/usr/lib64/usr/include/rem \
/usr/lib64/usr/include/rem/rem_auconv.h \
/usr/lib64/usr/include/rem/rem_fir.h \
/usr/lib64/usr/include/rem/rem_aumix.h \
/usr/lib64/usr/include/rem/rem_video.h \
/usr/lib64/usr/include/rem/rem_audio.h \
/usr/lib64/usr/include/rem/rem_vidconv.h \
/usr/lib64/usr/include/rem/rem_dtmf.h \
/usr/lib64/usr/include/rem/rem_aubuf.h \
/usr/lib64/usr/include/rem/rem_au.h \
/usr/lib64/usr/include/rem/rem_dsp.h \
/usr/lib64/usr/include/rem/rem_vidmix.h \
/usr/lib64/usr/include/rem/rem_vid.h \
/usr/lib64/usr/include/rem/rem_goertzel.h \
/usr/lib64/usr/include/rem/rem_auresamp.h \
/usr/lib64/usr/include/rem/rem_autone.h \
/usr/lib64/usr/include/rem/rem_g711.h \
/usr/lib64/usr/include/rem/rem_aufile.h \
/usr/lib64/usr/include/rem/rem.h \
/usr/lib64/usr/lib/librem.a \
/usr/lib64/usr/lib/librem.so \
/usr/lib64/usr/lib/pkgconfig \
/usr/lib64/usr/lib/pkgconfig/librem.pc \
"
or alternatively the easier way would just be to use a wildcard which catches everything
FILES_${PN} += "/usr/lib64/usr/*"

do_rootfs failed on yocto build

I have integrated a makefile based project into custom recipes within yocto but there was an issue: do_rootfs failed.
Please find library source and I try to integrate this library into oe-core: http://libiec61850.com/libiec61850/wp-content/uploads/2016/02/libiec61850-0.9.0.2.tgz
.bb file:
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
DESCRIPTION = "simple Hello World program" PR = "r0" LICENSE = "CLOSED"
S = "${WORKDIR}"
DEPEND = "libpthread-stubs libiec61883 libraw1394" SRC_URI += " \
file://config \
file://demos \
file://dotnet \
file://examples \
file://make \
file://Makefile \
file://src \
file://third_party \
file://tools \
"
EXTRA_OEMAKE = "'CC=${CC}' 'RANLIB=${RANLIB}' 'AR=${AR}' 'CFLAGS=${CFLAGS} -I${S}/include -DWITHOUT_XATTR' 'BUILDDIR=${S}'"
do_compile() {
oe_runmake ${S}/make } do_install () {
oe_runmake install DESTDIR=${D} SBINDIR=${sbindir} MANDIR=${mandir} \
INCLUDEDIR=${includedir}
install -d ${D}${includedir}/libiec61850/
install -d ${D}${localedir}
for f in ${S}/.install/include/*.h; do
install -m 0644 $f ${D}${includedir}/libiec61850/
done
install -m 0644 ${S}/.install/lib/* ${D}${localedir}/ }
The error looks like:
Configuring volatile-binds.
Configuring libxcb-xkb1.
Configuring libxkbcommon.
Configuring libidn11.
Configuring libattr1.
Configuring libacl1.
Configuring libz1.
Configuring libkmod2.
Configuring udev.
Configuring kmod.
Configuring iptables.
Configuring libcap2.
Configuring liblzma5.
Configuring util-linux-fsck.
Configuring systemd-compat-units.
Configuring systemd-serialgetty.
Configuring angstrom-version.
Configuring udev-hwdb.
Configuring libe2p2.
Configuring libext2fs2.
Configuring e2fsprogs-e2fsck.
Configuring systemd.
Configuring kernel-image-4.1.15-v2.5b3+ge6d111c.
Configuring angstrom-feed-configs.
Configuring netbase.
Configuring packagegroup-core-boot.
Collected errors:
* opkg_install_cmd: Cannot install package libiec61850.
ERROR: Function failed: do_rootfs
ERROR: Logfile of failure stored in: /media/kanji/edb1a7c2-288e-488e-abce-24d478f6cd46/workspace/kanji/oe-core/build/out-glibc/work/colibri_vf-angstrom-linux-gnueabi/core-image-minimal/1.0-r0/temp/log.do_rootfs.8560
ERROR: Task 7 (/media/kanji/edb1a7c2-288e-488e-abce-24d478f6cd46/workspace/kanji/oe-core/build/../stuff/openembedded-core/meta/recipes-core/images/core-image-minimal.bb, do_rootfs) failed with exit code '1'
NOTE: Tasks Summary: Attempted 1865 tasks of which 1864 didn't need to be rerun and 1 failed.
NOTE: Writing buildhistory
No currently running tasks (1864 of 1866)
Summary: 1 task failed:
/media/kanji/edb1a7c2-288e-488e-abce-24d478f6cd46/workspace/kanji/oe-core/build/../stuff/openembedded-core/meta/recipes-core/images/core-image-minimal.bb, do_rootfs
Summary: There was 1 WARNING message shown.
Summary: There were 2 ERROR messages shown, returning a non-zero exit code.
It's hard to provide an exact answer here as there's a few things which are likely wrong or at least problematic. So lets work backwards:
Collected errors: * opkg_install_cmd: Cannot install package libiec61850.
This means that when installing the list of packages it could not find a literal libiec61850 file. I assume that you created libiec61850_0.9.0.2.bb and that is what the bb file contents above represent. Aside from whitepace problems that I assume are due to copy/paste into here, it looks OK. But check out the log.do_compile and log.do_install To make it easier to see if there were any problems building just that package, do:
bitbake -c cleansstate libiec61850
bitbake libiec61850
and see if it complains about empty packages.
Next, you may be having a problem with recipe name -> binary output renames. Do:
ls tmp/deploy/ipk/*/*iec61850*
And see what the results are. If you would like to examine the contents of a particular ipk file they are just 'ar' archives so you can extract them:
mkdir temp
cd temp
ar -x ../foo.ipk
tar zxf data.tar.gz
I had find the solution of above mention issue :
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
DESCRIPTION = "libiec61850 library support added"
PR = "r0"
LICENSE = "CLOSED"
S = "${WORKDIR}"
SRC_URI += " \
file://config \
file://demos \
file://dotnet \
file://examples \
file://make \
file://Makefile \
file://src \
file://third_party \
file://tools \
"
DEPEND = "libpthread-stubs"
RDEPENDS_${PN} += " \
update-alternatives-opkg \
opkg-arch-config \
run-postinsts \
"
EXTRA_OEMAKE = "'CC=${CC}' 'RANLIB=${RANLIB}' 'AR=${AR}' 'CFLAGS=${CFLAGS} -I${S}/include -DWITHOUT_XATTR' 'BUILDDIR=${S}'"
do_compile() {
oe_runmake ${S}/make
}
do_install () {
oe_runmake install DESTDIR=${D} SBINDIR=${sbindir} MANDIR=${mandir} \
INCLUDEDIR=${includedir}
install -d ${D}${includedir}/libiec61850/
install -d ${D}${libdir}/
for f in ${S}/.install/include/*.h; do
install -m 0644 $f ${D}${includedir}/libiec61850/
done
install -m 0644 ${S}/.install/lib/* ${D}${libdir}/
}
FILES_${PN} += "${includedir}/libiec61850/* ${libdir}/*"
PACKAGES = "${PN}"