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 <otavio@ossystems.com.br>
Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com>
This commit is contained in:
Otavio Salvador 2018-10-25 22:44:12 -03:00
parent 700abd5d1b
commit bc937ade56
9 changed files with 42 additions and 32 deletions

View File

@ -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"

View 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}"

View 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)"

View 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)"

View 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)"

View 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}"

View 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"

View 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 \

View 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)}"