]> code.ossystems Code Review - meta-freescale.git/commitdiff
classes/use-imx-headers: Easy linux-imx-headers use 19/head
authorOtavio Salvador <otavio@ossystems.com.br>
Fri, 26 Oct 2018 01:44:12 +0000 (22:44 -0300)
committerOtavio Salvador <otavio@ossystems.com.br>
Fri, 26 Oct 2018 17:23:37 +0000 (14:23 -0300)
This allow to easy reuse of binary packages among similar SoCs. The
usual use for this is to share SoC specific packages among different
boards independently of the kernel version it is using, as far it is
ABI compatible with the official version it will just work.

Following recipes has been reworked to make use of the class:

 - imx-lib
 - imx-test
 - imx-vpu-hantro
 - imx-vpu
 - imx-alsa-plugins
 - gstreamer1.0-plugins-base
 - gstreamer1.0-plugins-imx
 - imx-gst1.0-plugin

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com>
classes/use-imx-headers.bbclass [new file with mode: 0644]
recipes-bsp/imx-lib/imx-lib_git.bb
recipes-bsp/imx-test/imx-test_git.bb
recipes-bsp/imx-vpu-hantro/imx-vpu-hantro_1.8.0.bb
recipes-bsp/imx-vpu/imx-vpu_5.4.38.bb
recipes-multimedia/alsa/imx-alsa-plugins_1.0.26.bb
recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.14.imx.bb
recipes-multimedia/gstreamer/gstreamer1.0-plugins-imx_git.bb
recipes-multimedia/gstreamer/imx-gst1.0-plugin_4.4.2.bb

diff --git a/classes/use-imx-headers.bbclass b/classes/use-imx-headers.bbclass
new file mode 100644 (file)
index 0000000..9dcd864
--- /dev/null
@@ -0,0 +1,19 @@
+# Easy use of linux-imx-headers by packages
+#
+# This allow to easy reuse of binary packages among similar SoCs. The
+# usual use for this is to share SoC specific packages among different
+# boards independently of the kernel version it is using, as far it is
+# ABI compatible with the official version it will just work.
+#
+# All recipes using this class ought to depend on linux-imx-headers
+# and by default to use MACHINE_SOCARCH.
+#
+# Please use the STAGING_INCDIR_IMX variable to refer to the installed
+# headers.
+#
+# Copyright 2018 (C) O.S. Systems Software LTDA.
+
+DEPENDS_append_imx = " linux-imx-headers"
+PACKAGE_ARCH_imx ?= "${MACHINE_SOCARCH}"
+
+STAGING_INCDIR_IMX = "${STAGING_INCDIR}/imx"
index d9258a1c5ee331614c6239fddc1e0abd589c9e12..d94b2daacd66fe80a438c473f1439feb7a2dfe0a 100644 (file)
@@ -6,8 +6,6 @@ DESCRIPTION = "Platform specific libraries for imx platform"
 LICENSE = "LGPLv2.1"
 SECTION = "multimedia"
 
-DEPENDS = "linux-imx-headers"
-
 LIC_FILES_CHKSUM = "file://COPYING-LGPL-2.1;md5=fbc093901857fcd118f065f900982c24"
 
 PE = "1"
@@ -20,6 +18,8 @@ SRCREV = "3f777974c0c146817e2ff5cb0340ca66a1f99e57"
 
 S = "${WORKDIR}/git"
 
+inherit use-imx-headers
+
 PLATFORM_mx6q  = "IMX6Q"
 PLATFORM_mx6dl = "IMX6Q"
 PLATFORM_mx6sl = "IMX6S"
@@ -33,7 +33,7 @@ PARALLEL_MAKE="-j 1"
 EXTRA_OEMAKE = ""
 
 do_compile () {
-    INCLUDE_DIR="-I${STAGING_INCDIR}/imx"
+    INCLUDE_DIR="-I${STAGING_INCDIR_IMX}"
     oe_runmake CROSS_COMPILE="${HOST_PREFIX}" PLATFORM="${PLATFORM}" INCLUDE="${INCLUDE_DIR}" all
 }
 
@@ -42,4 +42,3 @@ do_install () {
 }
 
 COMPATIBLE_MACHINE = "(mx6|mx7)"
-PACKAGE_ARCH = "${MACHINE_SOCARCH}"
index 729e2670a07fa4f4eddc209c7b48a65febcd145d..fae459cac4e52e10f7b138c4f246ccf04b4d081f 100644 (file)
@@ -8,7 +8,7 @@ SECTION = "base"
 LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6"
 
-DEPENDS = "linux-imx-headers alsa-lib libdrm"
+DEPENDS = "alsa-lib libdrm"
 DEPENDS_append_mx6 = " imx-lib"
 DEPENDS_append_mx7 = " imx-lib"
 
@@ -24,7 +24,7 @@ SRC_URI = " \
 SRCREV = "3a87347ae408ef0234314a279ee74d9b015f06be"
 S = "${WORKDIR}/git"
 
-inherit module-base
+inherit module-base use-imx-headers
 
 INHIBIT_PACKAGE_STRIP = "1"
 INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
@@ -55,9 +55,9 @@ do_compile() {
     CFLAGS="${TOOLCHAIN_OPTIONS}"
     oe_runmake V=1 VERBOSE='' \
                CROSS_COMPILE=${TARGET_PREFIX} \
-               INC="-I${STAGING_INCDIR} \
-                    -I${S}/include \
-                    -I${STAGING_INCDIR}/imx" \
+               INC="-I${S}/include \
+                    -I${STAGING_INCDIR} \
+                    -I${STAGING_INCDIR_IMX}" \
                CC="${CC} -L${STAGING_LIBDIR} ${LDFLAGS}" \
                SDKTARGETSYSROOT=${STAGING_DIR_HOST} \
                LINUXPATH=${STAGING_KERNEL_DIR} \
@@ -82,5 +82,4 @@ RDEPENDS_${PN} = "bash"
 
 FILES_${PN}-dbg += "/unit_tests/.debug"
 
-PACKAGE_ARCH = "${MACHINE_SOCARCH}"
 COMPATIBLE_MACHINE = "(mx6|mx7|mx8)"
index 25ef41ed8134aa2a22de4953ebbda21727e87d95..c49f90db1f89a3c61d7bbd060befa1777dd34fe3 100644 (file)
@@ -4,8 +4,6 @@ DESCRIPTION = "i.MX Hantro VPU library"
 LICENSE = "Proprietary"
 LIC_FILES_CHKSUM = "file://COPYING;md5=5ab1a30d0cd181e3408077727ea5a2db"
 
-DEPENDS = "linux-imx-headers"
-
 PROVIDES = "virtual/imxvpu"
 
 SRC_URI = " \
@@ -15,7 +13,7 @@ SRC_URI = " \
 SRC_URI[md5sum] = "140796ddd6f1be47cffb7e5e2bfe0fb6"
 SRC_URI[sha256sum] = "c092a5b0f8897bae54154f58e47b6d2de033da01ee231a8cd779a51bbe962606"
 
-inherit fsl-eula-unpack
+inherit fsl-eula-unpack use-imx-headers
 
 PARALLEL_MAKE="-j 1"
 
@@ -34,5 +32,4 @@ do_install () {
 
 FILES_${PN} += "/unit_tests"
 
-PACKAGE_ARCH = "${MACHINE_ARCH}"
 COMPATIBLE_MACHINE = "(mx8mq|mx8mm)"
index aebee4f05d96d59103f29dcb53cd34c121c78dec..185bb3d1ba2d49aa9c3410fe098292761b9c26bc 100644 (file)
@@ -6,8 +6,6 @@ DESCRIPTION = "Freescale Chips&Media VPU library"
 LICENSE = "Proprietary"
 LIC_FILES_CHKSUM = "file://COPYING;md5=75abe2fa1d16ca79f87cde926f05f72d"
 
-DEPENDS = "linux-imx-headers"
-
 PROVIDES = "virtual/imxvpu"
 
 PE = "1"
@@ -17,12 +15,12 @@ SRC_URI = "${FSL_MIRROR}/${PN}-${PV}.bin;fsl-eula=true"
 SRC_URI[md5sum] = "521d5f839829f8d1f2a6a0e60270243e"
 SRC_URI[sha256sum] = "34bed0ddf6c797f444bddfa5d5495adc751ff268b6431d8beb48129c89c9e47f"
 
-inherit fsl-eula-unpack
+inherit fsl-eula-unpack use-imx-headers
 
 PLATFORM_mx6 = "IMX6Q"
 
 do_compile () {
-    INCLUDE_DIR="-I${STAGING_INCDIR}/imx"
+    INCLUDE_DIR="-I${STAGING_INCDIR_IMX}"
     oe_runmake CROSS_COMPILE="${HOST_PREFIX}" PLATFORM="${PLATFORM}" INCLUDE="${INCLUDE_DIR}" all
 }
 
@@ -30,5 +28,4 @@ do_install () {
     oe_runmake PLATFORM="${PLATFORM}" DEST_DIR="${D}" install
 }
 
-PACKAGE_ARCH = "${MACHINE_SOCARCH}"
 COMPATIBLE_MACHINE = "(mx6q|mx6dl)"
index 62aff0fb1bdce31e66ab9ba7515decdb95c3c2c8..c96a883589c10eb271e25820e66fcb8e1b77be08 100644 (file)
@@ -4,7 +4,7 @@
 DESCRIPTION = "Freescale alsa-lib plugins"
 LICENSE = "GPLv2"
 SECTION = "multimedia"
-DEPENDS = "alsa-lib linux-imx-headers"
+DEPENDS = "alsa-lib"
 
 # For backwards compatibility
 PROVIDES += "fsl-alsa-plugins"
@@ -14,7 +14,7 @@ RCONFLICTS_${PN} = "fsl-alsa-plugins"
 
 LIC_FILES_CHKSUM = "file://COPYING.GPL;md5=94d55d512a9ba36caa9b7df079bae19f"
 
-inherit autotools pkgconfig
+inherit autotools pkgconfig use-imx-headers
 
 SRCBRANCH = "nxp/master"
 SRC_URI = "git://source.codeaurora.org/external/imx/imx-alsa-plugins.git;protocol=https;branch=${SRCBRANCH}"
@@ -22,7 +22,7 @@ SRCREV = "9a63071e7734bd164017f3761b8d1944c017611f"
 
 S = "${WORKDIR}/git"
 
-INCLUDE_DIR = "-I${STAGING_INCDIR}/imx"
+INCLUDE_DIR = "-I${STAGING_INCDIR_IMX}"
 
 EXTRA_OECONF = "CFLAGS="${INCLUDE_DIR}""
 
@@ -33,4 +33,3 @@ FILES_${PN}-dbg += "${libdir}/alsa-lib/.debug"
 FILES_${PN}-dev += "${libdir}/alsa-lib/*.la"
 
 COMPATIBLE_MACHINE = "(mx6dl|mx6q|mx6sl|mx6sx|mx6ul|mx6ull|mx7d|mx7ulp)"
-PACKAGE_ARCH = "${MACHINE_SOCARCH}"
index 21807911abffad4a16d0a23100f18ccc55525f92..0da9a2eaa43ffb13441fc68248c22169f7f5bf56 100644 (file)
@@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=c54ce9345727175ff66d17b67ff51f58 \
                     file://COPYING.LIB;md5=6762ed442b3822387a51c92d928ead0d \
                     file://common/coverage/coverage-report.pl;beginline=2;endline=17;md5=a4e1830fce078028c8f0974161272607"
 
-DEPENDS += "iso-codes util-linux linux-imx-headers"
+DEPENDS += "iso-codes util-linux"
 
 GST1.0-PLUGINS-BASE_SRC ?= "gitsm://source.codeaurora.org/external/imx/gst-plugins-base.git;protocol=https"
 SRCBRANCH = "MM_04.04.02_1808_L4.9.123_MX8MM_GA"
@@ -33,7 +33,7 @@ PACKAGECONFIG_append = " pango "
 # Disable introspection to fix [GstGL-1.0.gir] Error
 EXTRA_OECONF_append = " --disable-introspection --disable-opengl --enable-wayland"
 
-inherit gettext
+inherit gettext use-imx-headers
 
 PACKAGES_DYNAMIC =+ "^libgst.*"
 
@@ -60,7 +60,7 @@ PACKAGECONFIG[x11]          = "${X11ENABLEOPTS},${X11DISABLEOPTS},${X11DEPENDS}"
 
 EXTRA_OECONF += " \
     --enable-zlib \
-    CPPFLAGS="-I${STAGING_INCDIR}/imx" \
+    CPPFLAGS="-I${STAGING_INCDIR_IMX}" \
 "
 
 CACHED_CONFIGUREVARS_append_x86 = " ac_cv_header_emmintrin_h=no ac_cv_header_xmmintrin_h=no"
index 45016618ae688c57e2bb04b1933e8696d03c2659..a74ff64b34455e5f489eff838e09de22deea9bb4 100644 (file)
@@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=55ca817ccb7d5b5b66355690e9abc605"
 SECTION = "multimedia"
 # gstreamer1.0-plugins-bad is in DEPENDS because the build script scans for the
 # GstPhotography headers and libraries
-DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad linux-imx-headers"
+DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad"
 # add the audioparsers and the videoparsersbad plugins as RDEPENDS ; audioparsers
 # for the uniaudio decoder, videoparsersbad for the VPU video decoder
 # the gstreamer1.0-plugins-imx RDEPENDS is necessary to ensure the -good recipe is
@@ -22,7 +22,7 @@ SRC_URI = "git://github.com/Freescale/gstreamer-imx.git;branch=${SRCBRANCH}"
 
 S = "${WORKDIR}/git"
 
-inherit pkgconfig waf
+inherit pkgconfig waf use-imx-headers
 
 # configure the eglvivsink element to use the appropriate EGL platform code
 # Wayland if 'wayland' is present in DISTRO_FEATURES, if not,
@@ -34,7 +34,7 @@ EGLVIVSINK_PLATFORM = "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayla
 
 EGL_PLATFORM_CONF = "--egl-platform=${EGLVIVSINK_PLATFORM}"
 
-EXTRA_OECONF = "--kernel-headers=${STAGING_INCDIR}/imx ${PACKAGECONFIG_CONFARGS}"
+EXTRA_OECONF = "--kernel-headers=${STAGING_INCDIR_IMX} ${PACKAGECONFIG_CONFARGS}"
 
 EGLVIVSINK_DEPENDS = " \
     virtual/egl virtual/libgles2 \
index 55275ab9a362521d4c1ed1c946126f5a02690aee..986d4a1d68d8fa8740214f8e42ef21788428e592 100644 (file)
@@ -7,7 +7,7 @@ DESCRIPTION = "Gstreamer freescale plugins"
 LICENSE = "GPLv2 & LGPLv2 & LGPLv2.1"
 SECTION = "multimedia"
 
-DEPENDS = "imx-codec imx-parser linux-imx-headers gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad"
+DEPENDS = "imx-codec imx-parser gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad"
 DEPENDS_append_mx6 = " imx-lib"
 DEPENDS_append_mx7 = " imx-lib"
 DEPENDS_append_imxvpu = " imx-vpuwrap libdrm"
@@ -28,7 +28,7 @@ SRCREV = "23dd0315c7087e1c8eba836b9a458d7906187c7e"
 
 S = "${WORKDIR}/git"
 
-inherit autotools pkgconfig
+inherit autotools pkgconfig use-imx-headers
 
 PLATFORM_mx6 = "MX6"
 PLATFORM_mx6sl = "MX6SL"
@@ -41,7 +41,7 @@ PLATFORM_mx8 = "MX8"
 
 # Todo add a mechanism to map possible build targets
 EXTRA_OECONF = "PLATFORM=${PLATFORM} \
-                CPPFLAGS="-I${STAGING_INCDIR}/imx" \
+                CPPFLAGS="-I${STAGING_INCDIR_IMX}" \
                 CROSS_ROOT=${PKG_CONFIG_SYSROOT_DIR} \
                 ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', bb.utils.contains('DISTRO_FEATURES', 'x11', '--disable-x11', '', d), '', d)}"