From: Otavio Salvador Date: Fri, 26 Oct 2018 01:44:12 +0000 (-0300) Subject: classes/use-imx-headers: Easy linux-imx-headers use X-Git-Url: https://code.ossystems.io/gitweb?a=commitdiff_plain;h=refs%2Fpull%2F19%2Fhead;p=meta-freescale.git classes/use-imx-headers: Easy linux-imx-headers use 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 Signed-off-by: Tom Hochstein --- diff --git a/classes/use-imx-headers.bbclass b/classes/use-imx-headers.bbclass new file mode 100644 index 00000000..9dcd864d --- /dev/null +++ b/classes/use-imx-headers.bbclass @@ -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" diff --git a/recipes-bsp/imx-lib/imx-lib_git.bb b/recipes-bsp/imx-lib/imx-lib_git.bb index d9258a1c..d94b2daa 100644 --- a/recipes-bsp/imx-lib/imx-lib_git.bb +++ b/recipes-bsp/imx-lib/imx-lib_git.bb @@ -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}" diff --git a/recipes-bsp/imx-test/imx-test_git.bb b/recipes-bsp/imx-test/imx-test_git.bb index 729e2670..fae459ca 100644 --- a/recipes-bsp/imx-test/imx-test_git.bb +++ b/recipes-bsp/imx-test/imx-test_git.bb @@ -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)" diff --git a/recipes-bsp/imx-vpu-hantro/imx-vpu-hantro_1.8.0.bb b/recipes-bsp/imx-vpu-hantro/imx-vpu-hantro_1.8.0.bb index 25ef41ed..c49f90db 100644 --- a/recipes-bsp/imx-vpu-hantro/imx-vpu-hantro_1.8.0.bb +++ b/recipes-bsp/imx-vpu-hantro/imx-vpu-hantro_1.8.0.bb @@ -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)" diff --git a/recipes-bsp/imx-vpu/imx-vpu_5.4.38.bb b/recipes-bsp/imx-vpu/imx-vpu_5.4.38.bb index aebee4f0..185bb3d1 100644 --- a/recipes-bsp/imx-vpu/imx-vpu_5.4.38.bb +++ b/recipes-bsp/imx-vpu/imx-vpu_5.4.38.bb @@ -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)" diff --git a/recipes-multimedia/alsa/imx-alsa-plugins_1.0.26.bb b/recipes-multimedia/alsa/imx-alsa-plugins_1.0.26.bb index 62aff0fb..c96a8835 100644 --- a/recipes-multimedia/alsa/imx-alsa-plugins_1.0.26.bb +++ b/recipes-multimedia/alsa/imx-alsa-plugins_1.0.26.bb @@ -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}" diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.14.imx.bb b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.14.imx.bb index 21807911..0da9a2ea 100644 --- a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.14.imx.bb +++ b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.14.imx.bb @@ -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" diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-imx_git.bb b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-imx_git.bb index 45016618..a74ff64b 100644 --- a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-imx_git.bb +++ b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-imx_git.bb @@ -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 \ diff --git a/recipes-multimedia/gstreamer/imx-gst1.0-plugin_4.4.2.bb b/recipes-multimedia/gstreamer/imx-gst1.0-plugin_4.4.2.bb index 55275ab9..986d4a1d 100644 --- a/recipes-multimedia/gstreamer/imx-gst1.0-plugin_4.4.2.bb +++ b/recipes-multimedia/gstreamer/imx-gst1.0-plugin_4.4.2.bb @@ -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)}"