diff options
author | ToshikazuOhiwa <toshikazu_ohiwa@mail.toyota.co.jp> | 2020-03-30 09:24:26 +0900 |
---|---|---|
committer | ToshikazuOhiwa <toshikazu_ohiwa@mail.toyota.co.jp> | 2020-03-30 09:24:26 +0900 |
commit | 5b80bfd7bffd4c20d80b7c70a7130529e9a755dd (patch) | |
tree | b4bb18dcd1487dbf1ea8127e5671b7bb2eded033 /bsp/meta-ti/recipes-graphics | |
parent | 706ad73eb02caf8532deaf5d38995bd258725cb8 (diff) |
agl-basesystem
Diffstat (limited to 'bsp/meta-ti/recipes-graphics')
16 files changed, 400 insertions, 0 deletions
diff --git a/bsp/meta-ti/recipes-graphics/gbm/libgbm/0001-gbm.c-include-sys-sysmacros.h-for-minor-major-in-new.patch b/bsp/meta-ti/recipes-graphics/gbm/libgbm/0001-gbm.c-include-sys-sysmacros.h-for-minor-major-in-new.patch new file mode 100644 index 00000000..31134ab6 --- /dev/null +++ b/bsp/meta-ti/recipes-graphics/gbm/libgbm/0001-gbm.c-include-sys-sysmacros.h-for-minor-major-in-new.patch @@ -0,0 +1,28 @@ +From ea5fc8da36886490d0ee40d475733cd98e38c2ec Mon Sep 17 00:00:00 2001 +From: Denys Dmytriyenko <denys@ti.com> +Date: Tue, 28 Aug 2018 18:35:55 -0400 +Subject: [PATCH] gbm.c: include <sys/sysmacros.h> for minor/major in new glibc + +glibc 2.28+ now requires this. +https://sourceware.org/bugzilla/show_bug.cgi?id=19239 + +Signed-off-by: Denys Dmytriyenko <denys@ti.com> +--- + gbm.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/gbm.c b/gbm.c +index c046b1a..9356d7b 100644 +--- a/gbm.c ++++ b/gbm.c +@@ -35,6 +35,7 @@ + #include <stdint.h> + + #include <sys/types.h> ++#include <sys/sysmacros.h> + #include <sys/stat.h> + #include <unistd.h> + #include <errno.h> +-- +2.7.4 + diff --git a/bsp/meta-ti/recipes-graphics/gbm/libgbm_10.0.0.bb b/bsp/meta-ti/recipes-graphics/gbm/libgbm_10.0.0.bb new file mode 100644 index 00000000..6d058b72 --- /dev/null +++ b/bsp/meta-ti/recipes-graphics/gbm/libgbm_10.0.0.bb @@ -0,0 +1,23 @@ +SUMMARY = "Userspace interface for the kernel GBM services" +HOMEPAGE = "http://git.ti.com/glsdk/libgbm.git" + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://gbm.c;beginline=1;endline=26;md5=b871c7f2f477df29ee4c0ec437b187f7" + +DEPENDS = "libdrm udev" + +PROVIDES += "virtual/libgbm" + +inherit autotools pkgconfig + +BRANCH = "next" + +SRCREV = "96f37555c7e82a417b02051661377b10e6b3966e" + +SRC_URI = "git://git.ti.com/glsdk/libgbm.git;protocol=git;branch=${BRANCH} \ + file://0001-gbm.c-include-sys-sysmacros.h-for-minor-major-in-new.patch" + +S = "${WORKDIR}/git" + +COMPATIBLE_HOST ?= "null" +COMPATIBLE_HOST_ti-soc = "(.*)" diff --git a/bsp/meta-ti/recipes-graphics/libgal/ti-gc320-libs_5.0.11.p7.bb b/bsp/meta-ti/recipes-graphics/libgal/ti-gc320-libs_5.0.11.p7.bb new file mode 100644 index 00000000..df1a99e9 --- /dev/null +++ b/bsp/meta-ti/recipes-graphics/libgal/ti-gc320-libs_5.0.11.p7.bb @@ -0,0 +1,43 @@ +DESCRIPTION = "Userspace libraries for GC320 chipset on TI SoCs" +HOMEPAGE = "https://git.ti.com/graphics/ti-gc320-libs" +LICENSE = "TI-TSPA" +LIC_FILES_CHKSUM = "file://Manifest.html;md5=a9121e8936ace09820d23f7626daaca5" + +PACKAGE_ARCH = "${MACHINE_ARCH}" + +CLEANBROKEN = "1" + +BRANCH = "ti-${PV}" + +SRC_URI = "git://git.ti.com/graphics/ti-gc320-libs.git;protocol=git;branch=${BRANCH}" +SRCREV = "c0afab259de59909cfe74c01f3f7fbaa147f94b5" + +# There's only hardfp version available +python __anonymous() { + tunes = d.getVar("TUNE_FEATURES") + if not tunes: + return + pkgn = d.getVar("PN") + pkgv = d.getVar("PV") + if "callconvention-hard" not in tunes: + bb.warn("%s-%s ONLY supports hardfp mode for now" % (pkgn, pkgv)) + raise bb.parse.SkipPackage("%s-%s ONLY supports hardfp mode for now" % (pkgn, pkgv)) +} + +TARGET_PRODUCT_omap-a15 = "jacinto6evm" + +PR = "r2" + +S = "${WORKDIR}/git" + +EXTRA_OEMAKE += "DESTDIR=${D} TARGET_PRODUCT=${TARGET_PRODUCT} LIBDIR=${libdir}" + +do_install() { + oe_runmake install + chown -R root:root ${D} +} + +INSANE_SKIP_${PN} += "ldflags" + +COMPATIBLE_HOST ?= "null" +COMPATIBLE_HOST_ti-soc = "(.*)" diff --git a/bsp/meta-ti/recipes-graphics/libgles/ti-sgx-ddk-um_1.17.4948957.bb b/bsp/meta-ti/recipes-graphics/libgles/ti-sgx-ddk-um_1.17.4948957.bb new file mode 100644 index 00000000..7b4f2ec2 --- /dev/null +++ b/bsp/meta-ti/recipes-graphics/libgles/ti-sgx-ddk-um_1.17.4948957.bb @@ -0,0 +1,77 @@ +DESCRIPTION = "Userspace libraries for PowerVR SGX chipset on TI SoCs" +HOMEPAGE = "https://git.ti.com/graphics/omap5-sgx-ddk-um-linux" +LICENSE = "TI-TSPA" +LIC_FILES_CHKSUM = "file://TI-Linux-Graphics-DDK-UM-Manifest.doc;md5=b17390502bc89535c86cfbbae961a2a8" + +COMPATIBLE_MACHINE = "ti33x|ti43x|omap-a15|k3" + +PACKAGE_ARCH = "${MACHINE_ARCH}" + +BRANCH = "ti-img-sgx/thud/${PV}" + +SRC_URI = "git://git.ti.com/graphics/omap5-sgx-ddk-um-linux.git;protocol=git;branch=${BRANCH}" +SRCREV = "b0db45b7f74312afbff3e30c334e899e9c9d1338" + +TARGET_PRODUCT_omap-a15 = "jacinto6evm" +TARGET_PRODUCT_ti33x = "ti335x" +TARGET_PRODUCT_ti43x = "ti437x" +TARGET_PRODUCT_k3 = "ti654x" + +INITSCRIPT_NAME = "rc.pvr" +INITSCRIPT_PARAMS = "defaults 8" + +inherit update-rc.d + +PR = "r32" +PROVIDES += "virtual/egl virtual/libgles1 virtual/libgles2 omap5-sgx-ddk-um-linux" + +DEPENDS += "libdrm udev libgbm wayland libffi" +RDEPENDS_${PN} += "libdrm libudev libgbm wayland libffi libdrm-omap" + +RPROVIDES_${PN} = "libegl libgles1 libgles2 omap5-sgx-ddk-um-linux" +RPROVIDES_${PN}-dev = "libegl-dev libgles1-dev libgles2-dev omap5-sgx-ddk-um-linux-dev" +RPROVIDES_${PN}-dbg = "libegl-dbg libgles1-dbg libgles2-dbg omap5-sgx-ddk-um-linux-dbg" + +RREPLACES_${PN} = "libegl libgles1 libgles2 omap5-sgx-ddk-um-linux" +RREPLACES_${PN}-dev = "libegl-dev libgles1-dev libgles2-dev omap5-sgx-ddk-um-linux-dev" +RREPLACES_${PN}-dbg = "libegl-dbg libgles1-dbg libgles2-dbg omap5-sgx-ddk-um-linux-dbg" + +RCONFLICTS_${PN} = "libegl libgles1 libgles2 omap5-sgx-ddk-um-linux" +RCONFLICTS_${PN}-dev = "libegl-dev libgles1-dev libgles2-dev omap5-sgx-ddk-um-linux-dev" +RCONFLICTS_${PN}-dbg = "libegl-dbg libgles1-dbg libgles2-dbg omap5-sgx-ddk-um-linux-dbg" + +# The actual SONAME is libGLESv2.so.2, so need to explicitly specify RPROVIDES for .so.1 here +RPROVIDES_${PN} += "libGLESv2.so.1" + +S = "${WORKDIR}/git" + +do_install () { + oe_runmake install DESTDIR=${D} TARGET_PRODUCT=${TARGET_PRODUCT} + mkdir -p ${D}${libdir}/gbm + ln -sf ../libpvrGBMWSEGL.so.${PV} ${D}${libdir}/gbm/gbm_pvr.so + ln -sf libGLESv2.so.${PV} ${D}${libdir}/libGLESv2.so.1 + + rm -f ${D}${libdir}/pkgconfig/wayland-egl.pc + + chown -R root:root ${D} +} + +FILES_${PN} = "${bindir}/*" +FILES_${PN} += " ${libdir}/*" +FILES_${PN} += "${includedir}/*" +FILES_${PN} += "${sysconfdir}/*" + +PACKAGES =+ "${PN}-plugins" +FILES_${PN}-plugins = "${libdir}/libsrv_init.so ${libdir}/libsrv_um.so ${libdir}/libglslcompiler.so ${libdir}/libPVRScopeServices.so ${libdir}/libGLESv2.so ${libdir}/libEGL.so ${libdir}/libGLES_CM.so ${libdir}/libpvrDRMWSEGL.so ${libdir}/libpvrGBMWSEGL.so ${libdir}/libpvrws_WAYLAND.so" +RDEPENDS_${PN} += "${PN}-plugins" + +ALLOW_EMPTY_${PN}-plugins = "1" + +INHIBIT_PACKAGE_STRIP = "1" +INHIBIT_SYSROOT_STRIP = "1" + +INSANE_SKIP_${PN} += "dev-so ldflags useless-rpaths" +INSANE_SKIP_${PN}-plugins = "dev-so" +INSANE_SKIP_${PN} += "already-stripped" + +CLEANBROKEN = "1" diff --git a/bsp/meta-ti/recipes-graphics/omapfbplay/files/0001-omapfbplay-switch-CODEC_TYPE_VIDEO-to-AVMEDIA_TYPE_V.patch b/bsp/meta-ti/recipes-graphics/omapfbplay/files/0001-omapfbplay-switch-CODEC_TYPE_VIDEO-to-AVMEDIA_TYPE_V.patch new file mode 100644 index 00000000..e01fddbf --- /dev/null +++ b/bsp/meta-ti/recipes-graphics/omapfbplay/files/0001-omapfbplay-switch-CODEC_TYPE_VIDEO-to-AVMEDIA_TYPE_V.patch @@ -0,0 +1,26 @@ +From 71670f4a067efc169018a9ec9321ccc9af3bbd59 Mon Sep 17 00:00:00 2001 +From: Roger Monk <r-monk@ti.com> +Date: Thu, 10 May 2012 14:50:11 +0100 +Subject: [PATCH] omapfbplay: switch CODEC_TYPE_VIDEO to AVMEDIA_TYPE_VIDEO + +Signed-off-by: Roger Monk <r-monk@ti.com> +--- + omapfbplay.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/omapfbplay.c b/omapfbplay.c +index ad35bd5..818cf2c 100644 +--- a/omapfbplay.c ++++ b/omapfbplay.c +@@ -74,7 +74,7 @@ find_stream(AVFormatContext *afc) + int i; + + for (i = 0; i < afc->nb_streams; i++) { +- if (afc->streams[i]->codec->codec_type == CODEC_TYPE_VIDEO && !st) ++ if (afc->streams[i]->codec->codec_type == AVMEDIA_TYPE_VIDEO && !st) + st = afc->streams[i]; + else + afc->streams[i]->discard = AVDISCARD_ALL; +-- +1.7.0.4 + diff --git a/bsp/meta-ti/recipes-graphics/omapfbplay/files/omapfbplay-errorhandling.patch b/bsp/meta-ti/recipes-graphics/omapfbplay/files/omapfbplay-errorhandling.patch new file mode 100644 index 00000000..7dd544f8 --- /dev/null +++ b/bsp/meta-ti/recipes-graphics/omapfbplay/files/omapfbplay-errorhandling.patch @@ -0,0 +1,34 @@ +From e321ae7df57ada9ecc8c155fa4e5511c96ef5db3 Mon Sep 17 00:00:00 2001 +From: Rob Clark <rob@ti.com> +Date: Fri, 18 Mar 2011 12:40:51 -0500 +Subject: [PATCH] dce: differentiate between fatal and non-fatal errors + +For streams with errors, the codec will throw back an error. But not +all errors are fatal. +--- + dce.c | 10 ++++++++-- + 1 files changed, 8 insertions(+), 2 deletions(-) + +diff --git a/dce.c b/dce.c +index ab7ad0a..88f175e 100644 +--- a/dce.c ++++ b/dce.c +@@ -270,8 +270,14 @@ static int dce_decode(AVPacket *p) + + err = VIDDEC3_process(codec, inbufs, outbufs, in_args, out_args); + if (err) { +- fprintf(stderr, "VIDDEC3_process() error %d\n", err); +- return -1; ++ fprintf(stderr, "VIDDEC3_process() error %d %08x\n", err, ++ out_args->extendedError); ++ /* for non-fatal errors, keep going.. a non-fatal error could ++ * just indicate an error in the input stream which the codec ++ * was able to conceal ++ */ ++ if (XDM_ISFATALERROR(out_args->extendedError)) ++ return -1; + } + + for (i = 0; i < out_args->outputID[i]; i++) { +-- +1.7.1 diff --git a/bsp/meta-ti/recipes-graphics/omapfbplay/omapfbplay-cmem_git.bb b/bsp/meta-ti/recipes-graphics/omapfbplay/omapfbplay-cmem_git.bb new file mode 100644 index 00000000..a0392f6c --- /dev/null +++ b/bsp/meta-ti/recipes-graphics/omapfbplay/omapfbplay-cmem_git.bb @@ -0,0 +1,16 @@ +require omapfbplay.inc + +DEPENDS += "ti-linuxutils" + +require recipes-ti/includes/ti-paths.inc + +PACKAGE_ARCH = "${MACHINE_ARCH}" + +SDMA_CFLAGS = " -I${LINUXUTILS_INSTALL_DIR}/packages/ti/sdo/linuxutils/sdma/include/" +CMEM_CFLAGS = " -I${LINUXUTILS_INSTALL_DIR}/packages/ti/sdo/linuxutils/cmem/include/" +CFLAGS += " -I. -I${STAGING_KERNEL_DIR}/include ${SDMA_CFLAGS} ${CMEM_CFLAGS}" + +export SDMA_LIBS = "-L${LINUXUTILS_INSTALL_DIR}/packages/ti/sdo/linuxutils/sdma/lib -l:sdma.a470MV" +export CMEM_LIBS = "-L${LINUXUTILS_INSTALL_DIR}/packages/ti/sdo/linuxutils/cmem/lib -l:cmem.a470MV" + +OMAPFBPLAYOPTS = "V4L2=y OMAPFB=y NETSYNC=y CMEM=y SDMA=y" diff --git a/bsp/meta-ti/recipes-graphics/omapfbplay/omapfbplay-dce_git.bb b/bsp/meta-ti/recipes-graphics/omapfbplay/omapfbplay-dce_git.bb new file mode 100644 index 00000000..e70ac729 --- /dev/null +++ b/bsp/meta-ti/recipes-graphics/omapfbplay/omapfbplay-dce_git.bb @@ -0,0 +1,7 @@ +require omapfbplay.inc + +DEPENDS += "libdce" + +CFLAGS += " -I. -I${STAGING_INCDIR}/dce -I${STAGING_KERNEL_DIR}/include " + +OMAPFBPLAYOPTS = "V4L2=y OMAPFB=y NETSYNC=y DCE=y" diff --git a/bsp/meta-ti/recipes-graphics/omapfbplay/omapfbplay-xv_git.bb b/bsp/meta-ti/recipes-graphics/omapfbplay/omapfbplay-xv_git.bb new file mode 100644 index 00000000..cadf6d8e --- /dev/null +++ b/bsp/meta-ti/recipes-graphics/omapfbplay/omapfbplay-xv_git.bb @@ -0,0 +1,3 @@ +require omapfbplay.inc + +OMAPFBPLAYOPTS = "V4L2=y NETSYNC=y XV=y" diff --git a/bsp/meta-ti/recipes-graphics/omapfbplay/omapfbplay.inc b/bsp/meta-ti/recipes-graphics/omapfbplay/omapfbplay.inc new file mode 100644 index 00000000..744eb8f7 --- /dev/null +++ b/bsp/meta-ti/recipes-graphics/omapfbplay/omapfbplay.inc @@ -0,0 +1,37 @@ +DESCRIPTION = "Simple libav-based player that uses the omapfb overlays" +DEPENDS = "bzip2 lame libav virtual/kernel" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://omapfbplay.c;beginline=2;endline=22;md5=05d3789ab362e6f4a9682e98100ea0fa" + +PV = "0.0+${PR}+gitr${SRCREV}" + +SRCREV = "34293052c5a2ae328eac6903512e6b4ce19b5639" +SRC_URI = "git://git.mansr.com/omapfbplay;protocol=git \ + file://omapfbplay-errorhandling.patch \ + file://0001-omapfbplay-switch-CODEC_TYPE_VIDEO-to-AVMEDIA_TYPE_V.patch \ + " + +S = "${WORKDIR}/git" + +PACKAGE_ARCH = "${MACHINE_ARCH}" +COMPATIBLE_HOST ?= "null" +COMPATIBLE_HOST_ti-soc = "(.*)" + +# We want a kernel header for armv7a, but we don't want to make mplayer machine specific for that +STAGING_KERNEL_DIR = "${STAGING_DIR}/${MACHINE_ARCH}${TARGET_VENDOR}-${TARGET_OS}/kernel" +CFLAGS += " -I. -I${STAGING_KERNEL_DIR}/include " + +OMAPFBPLAYVARIANT ?= "${PN}" +OMAPFBPLAYOPTS ?= "V4L2=y NETSYNC=y" + +do_compile() { + cp ${STAGING_KERNEL_DIR}/arch/arm/plat-omap/include/mach/omapfb.h ${S} || true + cp ${STAGING_KERNEL_DIR}/include/asm-arm/arch-omap/omapfb.h ${S} || true + cp ${STAGING_KERNEL_DIR}/include/linux/omapfb.h ${S} || true + oe_runmake ${TARGET_ARCH}=y ${OMAPFBPLAYOPTS} -e +} + +do_install() { + install -d ${D}/${bindir} + install -m 0755 ${S}/omapfbplay ${D}/${bindir}/${OMAPFBPLAYVARIANT} +} diff --git a/bsp/meta-ti/recipes-graphics/omapfbplay/omapfbplay_git.bb b/bsp/meta-ti/recipes-graphics/omapfbplay/omapfbplay_git.bb new file mode 100644 index 00000000..0d3956f1 --- /dev/null +++ b/bsp/meta-ti/recipes-graphics/omapfbplay/omapfbplay_git.bb @@ -0,0 +1,3 @@ +require omapfbplay.inc + +OMAPFBPLAYOPTS = "V4L2=y OMAPFB=y NETSYNC=y" diff --git a/bsp/meta-ti/recipes-graphics/xorg-xserver/xserver-xf86-config/omap3/xorg.conf b/bsp/meta-ti/recipes-graphics/xorg-xserver/xserver-xf86-config/omap3/xorg.conf new file mode 100644 index 00000000..983bb082 --- /dev/null +++ b/bsp/meta-ti/recipes-graphics/xorg-xserver/xserver-xf86-config/omap3/xorg.conf @@ -0,0 +1,29 @@ +Section "Module" + Load "extmod" + Load "dbe" + Load "glx" + Load "freetype" + Load "type1" + Load "record" + Load "dri" +EndSection + +Section "Monitor" + Identifier "Builtin Default Monitor" +EndSection + +Section "Device" + Identifier "Builtin Default fbdev Device 0" + Driver "omapfb" +EndSection + +Section "Screen" + Identifier "Builtin Default fbdev Screen 0" + Device "Builtin Default fbdev Device 0" + Monitor "Builtin Default Monitor" +EndSection + +Section "ServerLayout" + Identifier "Builtin Default Layout" + Screen "Builtin Default fbdev Screen 0" +EndSection diff --git a/bsp/meta-ti/recipes-graphics/xorg-xserver/xserver-xf86-config/omap4/xorg.conf b/bsp/meta-ti/recipes-graphics/xorg-xserver/xserver-xf86-config/omap4/xorg.conf new file mode 100644 index 00000000..87ded4dd --- /dev/null +++ b/bsp/meta-ti/recipes-graphics/xorg-xserver/xserver-xf86-config/omap4/xorg.conf @@ -0,0 +1,15 @@ +# more /usr/share/X11/xorg.conf.d/99-omap.conf +# X.Org X server configuration file + +Section "Device" + Identifier "Video Device" + Driver "omap" + Option "Debug" "false" + Option "HWcursor" "false" +EndSection + +Section "Screen" + Identifier "Screen" + Monitor "Monitor" + Device "Video Device" +EndSection diff --git a/bsp/meta-ti/recipes-graphics/xorg-xserver/xserver-xf86-config/omapl138/xorg.conf b/bsp/meta-ti/recipes-graphics/xorg-xserver/xserver-xf86-config/omapl138/xorg.conf new file mode 100644 index 00000000..0d6ab435 --- /dev/null +++ b/bsp/meta-ti/recipes-graphics/xorg-xserver/xserver-xf86-config/omapl138/xorg.conf @@ -0,0 +1,29 @@ +Section "Module" + Load "extmod" + Load "dbe" + Load "glx" + Load "freetype" + Load "type1" + Load "record" + Load "dri" +EndSection + +Section "Monitor" + Identifier "Builtin Default Monitor" +EndSection + +Section "Device" + Identifier "Builtin Default fbdev Device 0" + Driver "fbdev" +EndSection + +Section "Screen" + Identifier "Builtin Default fbdev Screen 0" + Device "Builtin Default fbdev Device 0" + Monitor "Builtin Default Monitor" +EndSection + +Section "ServerLayout" + Identifier "Builtin Default Layout" + Screen "Builtin Default fbdev Screen 0" +EndSection diff --git a/bsp/meta-ti/recipes-graphics/xorg-xserver/xserver-xf86-config/ti33x/xorg.conf b/bsp/meta-ti/recipes-graphics/xorg-xserver/xserver-xf86-config/ti33x/xorg.conf new file mode 100644 index 00000000..0d6ab435 --- /dev/null +++ b/bsp/meta-ti/recipes-graphics/xorg-xserver/xserver-xf86-config/ti33x/xorg.conf @@ -0,0 +1,29 @@ +Section "Module" + Load "extmod" + Load "dbe" + Load "glx" + Load "freetype" + Load "type1" + Load "record" + Load "dri" +EndSection + +Section "Monitor" + Identifier "Builtin Default Monitor" +EndSection + +Section "Device" + Identifier "Builtin Default fbdev Device 0" + Driver "fbdev" +EndSection + +Section "Screen" + Identifier "Builtin Default fbdev Screen 0" + Device "Builtin Default fbdev Device 0" + Monitor "Builtin Default Monitor" +EndSection + +Section "ServerLayout" + Identifier "Builtin Default Layout" + Screen "Builtin Default fbdev Screen 0" +EndSection diff --git a/bsp/meta-ti/recipes-graphics/xorg-xserver/xserver-xf86-config_0.1.bbappend b/bsp/meta-ti/recipes-graphics/xorg-xserver/xserver-xf86-config_0.1.bbappend new file mode 100644 index 00000000..72d991c7 --- /dev/null +++ b/bsp/meta-ti/recipes-graphics/xorg-xserver/xserver-xf86-config_0.1.bbappend @@ -0,0 +1 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" |