aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDarren Hart <dvhart@linux.intel.com>2015-06-24 10:19:57 -0700
committerDarren Hart <dvhart@linux.intel.com>2015-06-24 10:19:57 -0700
commitfe0d32f59bfe8ee1f76f7f9435c425f9b23903af (patch)
treead632e1da3747396c880589de006a90c5a826c2e
parentae3a18d263b49a7ae509ef86ef366e2bc17a5e78 (diff)
downloadmeta-minnow-fe0d32f59bfe8ee1f76f7f9435c425f9b23903af.tar.gz
meta-minnow-fe0d32f59bfe8ee1f76f7f9435c425f9b23903af.tar.bz2
meta-minnow-fe0d32f59bfe8ee1f76f7f9435c425f9b23903af.zip
emgd: Add emgd 1.18 xorg driver
Add support for the EMGD 1.18 proprietary graphics driver. Copied in from meta-intel/daisy with PR removed. Signed-off-by: Darren Hart <dvhart@linux.intel.com>
-rw-r--r--recipes-graphics/xorg-driver/emgd-driver-bin/egl.pc12
-rw-r--r--recipes-graphics/xorg-driver/emgd-driver-bin/glchar.patch17
-rw-r--r--recipes-graphics/xorg-driver/emgd-driver-bin/gles_cm.pc12
-rw-r--r--recipes-graphics/xorg-driver/emgd-driver-bin/glesv2.pc12
-rw-r--r--recipes-graphics/xorg-driver/emgd-driver-bin_1.18.bb188
5 files changed, 241 insertions, 0 deletions
diff --git a/recipes-graphics/xorg-driver/emgd-driver-bin/egl.pc b/recipes-graphics/xorg-driver/emgd-driver-bin/egl.pc
new file mode 100644
index 0000000..42efd64
--- /dev/null
+++ b/recipes-graphics/xorg-driver/emgd-driver-bin/egl.pc
@@ -0,0 +1,12 @@
+prefix=/usr
+exec_prefix=${prefix}
+libdir=/usr/lib
+includedir=/usr/include
+
+Name: egl
+Description: EMGD EGL library
+Requires.private:
+Version: 1.16
+Libs: -L${libdir} -lEGL
+Libs.private: -lm -lpthread -ldl
+Cflags: -I${includedir}
diff --git a/recipes-graphics/xorg-driver/emgd-driver-bin/glchar.patch b/recipes-graphics/xorg-driver/emgd-driver-bin/glchar.patch
new file mode 100644
index 0000000..2781ec9
--- /dev/null
+++ b/recipes-graphics/xorg-driver/emgd-driver-bin/glchar.patch
@@ -0,0 +1,17 @@
+EMGD's gl2.h is missing the GLchar typedef, so add it.
+
+Upstream-Status: Submitted
+Signed-off-by: Ross Burton <ross.burton@intel.com>
+
+diff --git a/usr/include/GLES2/gl2.h b/usr/include/GLES2/gl2.h
+index 8b83f3f..4fbd12e 100644
+--- a/usr/include/GLES2/gl2.h
++++ b/usr/include/GLES2/gl2.h
+@@ -21,6 +21,7 @@ typedef unsigned int GLenum;
+ typedef unsigned char GLboolean;
+ typedef unsigned int GLbitfield;
+ typedef khronos_int8_t GLbyte;
++typedef char GLchar;
+ typedef short GLshort;
+ typedef int GLint;
+ typedef int GLsizei;
diff --git a/recipes-graphics/xorg-driver/emgd-driver-bin/gles_cm.pc b/recipes-graphics/xorg-driver/emgd-driver-bin/gles_cm.pc
new file mode 100644
index 0000000..a0c828f
--- /dev/null
+++ b/recipes-graphics/xorg-driver/emgd-driver-bin/gles_cm.pc
@@ -0,0 +1,12 @@
+prefix=/usr
+exec_prefix=${prefix}
+libdir=/usr/lib
+includedir=/usr/include
+
+Name: gles_cm
+Description: EMGD OpenGL ES 1.1 CM library
+Requires.private:
+Version: 1.16
+Libs: -L${libdir} -lGLES_CM
+Libs.private: -lm -lpthread -ldl
+Cflags: -I${includedir}
diff --git a/recipes-graphics/xorg-driver/emgd-driver-bin/glesv2.pc b/recipes-graphics/xorg-driver/emgd-driver-bin/glesv2.pc
new file mode 100644
index 0000000..02171fa
--- /dev/null
+++ b/recipes-graphics/xorg-driver/emgd-driver-bin/glesv2.pc
@@ -0,0 +1,12 @@
+prefix=/usr
+exec_prefix=${prefix}
+libdir=/usr/lib
+includedir=/usr/include
+
+Name: glesv2
+Description: EMGD OpenGL ES 2.0 library
+Requires.private:
+Version: 1.16
+Libs: -L${libdir} -lGLESv2
+Libs.private: -lm -lpthread -ldl
+Cflags: -I${includedir}
diff --git a/recipes-graphics/xorg-driver/emgd-driver-bin_1.18.bb b/recipes-graphics/xorg-driver/emgd-driver-bin_1.18.bb
new file mode 100644
index 0000000..150663e
--- /dev/null
+++ b/recipes-graphics/xorg-driver/emgd-driver-bin_1.18.bb
@@ -0,0 +1,188 @@
+SUMMARY = "EMGD 1.18 xserver binaries"
+DESCRIPTION = "EMGD 1.18 includes some userspace binaries that use non-free \
+licensing, which are now available via a non-click-through downloadable \
+tarball, and is what this recipe now uses. Since it is a non-free license, \
+this recipe is marked as 'License_emgd-driver-bin_1.18' and you need to add \
+to LICENSE_FLAGS_WHITELIST += \"license_emgd-driver-bin_1.18\" to your \
+local.conf in order to enable it in a build."
+LICENSE = "Intel-software-license-emgd-1.18 & Intel-user-space-graphics-driver-binary-license-emgd-1.18 & MIT"
+LICENSE_FLAGS = "license_${PN}_${PV}"
+PR = "r1"
+
+COMPATIBLE_HOST = "(i.86).*-linux"
+
+EMGD_LIC_DIR = "IEMGD_HEAD_Linux/License"
+EMGD_RPM_DIR = "IEMGD_HEAD_Linux/MeeGo1.2"
+EMGD_VIDEO_PLUGIN_DIR = "../common/video_plugin"
+
+LIC_FILES_CHKSUM = "file://${WORKDIR}/${EMGD_LIC_DIR}/License.txt;md5=7ce256e6a32a208bb3e509ef8febc6e4 \
+ file://${WORKDIR}/${EMGD_LIC_DIR}/readme.txt;md5=73cbec7a0d2bc22faf567238e055bfc8"
+
+DEPENDS = "rpm-native xz-native"
+RDEPENDS_${PN} = "libxcb-dri2 cairo xserver-xorg"
+RDEPENDS_emgd-gst-plugins-mixvideo = "libva-tpi"
+
+# These libraries shouldn't get installed in world builds unless something
+# explicitly depends upon them.
+EXCLUDE_FROM_WORLD = "1"
+PROVIDES = "virtual/libgles1 virtual/libgles2 virtual/egl"
+
+# Add the ABI dependency at package generation time, as otherwise bitbake will
+# attempt to find a provider for it (and fail) when it does the parse.
+#
+# This version *must* be kept correct.
+python populate_packages_prepend() {
+ pn = d.getVar("PN", True)
+ d.appendVar("RDEPENDS_" + pn, " xorg-abi-video-8")
+}
+
+inherit distro_features_check
+REQUIRED_DISTRO_FEATURES = "opengl"
+
+SRC_URI = "http://downloadmirror.intel.com/22865/eng/LIN_IEMGD_1_18_GOLD_3398.tgz \
+ file://egl.pc \
+ file://gles_cm.pc \
+ file://glesv2.pc \
+ file://glchar.patch;apply=0 \
+ "
+
+SRC_URI[md5sum] = "a165c397866d3fb70ddab318c834e49a"
+SRC_URI[sha256sum] = "2d709deecda595983b0d8f1d3c7bd0b4d5c79ae665c621b3b9b11c366b34873f"
+
+# make sure generated rpm packages get non conflicting names
+PKG_${PN} = "emgd-driver"
+PKG_${PN}-dev = "emgd-driver-dev"
+PKG_${PN}-dbg = "emgd-driver-dbg"
+PKG_${PN}-doc = "emgd-driver-doc"
+
+PACKAGES =+ "emgd-libmixcommon emgd-libmixvideo emgd-libmixvbp \
+ emgd-gst-vabuffer emgd-gst-plugins-mixvideo \
+ emgd-gst-plugins-va emgd-driver-video"
+
+# These are closed binaries generated elsewhere so don't check ldflags & text relocations
+INSANE_SKIP_emgd-driver-video = "ldflags textrel"
+# Inhibit warnings about files being stripped, we can't do anything about it.
+INHIBIT_PACKAGE_STRIP = "1"
+INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
+
+# Avoid auto renaming of these packages
+DEBIAN_NOAUTONAME_emgd-libmixcommon = "1"
+DEBIAN_NOAUTONAME_emgd-libmixvideo = "1"
+DEBIAN_NOAUTONAME_emgd-libmixvbp = "1"
+DEBIAN_NOAUTONAME_emgd-gst-vabuffer = "1"
+
+FILES_emgd-libmixcommon = "${libdir}/libmixcommon.so.0.10.8 ${libdir}/libmixcommon.so.0"
+FILES_emgd-libmixvideo = "${libdir}/libmixvideo.so.0.10.10 ${libdir}/libmixvideo.so.0"
+FILES_emgd-libmixvbp = "${libdir}/libmixvbp.so.0.10.9 ${libdir}/libmixvbp.so.0 \
+ ${libdir}/libmixvbp_h264.so.0.10.9 ${libdir}/libmixvbp_h264.so.0 \
+ ${libdir}/libmixvbp_mpeg4.so.0.10.9 ${libdir}/libmixvbp_mpeg4.so.0 \
+ ${libdir}/libmixvbp_vc1.so.0.10.9 ${libdir}/libmixvbp_vc1.so.0 "
+FILES_emgd-gst-vabuffer = "${libdir}/libgstvabuffer.so.0.10.8 ${libdir}/libgstvabuffer.so.0"
+FILES_emgd-gst-plugins-mixvideo = "${libdir}/gstreamer-0.10/libgstmixvideoplugin.so"
+FILES_emgd-gst-plugins-va = "${libdir}/gstreamer-0.10/libgstvaplugin.so"
+FILES_emgd-driver-video = "${libdir}/dri/emgd_drv_video.so"
+FILES_${PN} += "${libdir}/dri ${libdir}/xorg/modules/drivers"
+FILES_${PN}-dbg += "${libdir}/xorg/modules/drivers/.debug ${libdir}/dri/.debug ${libdir}/gstreamer-0.10/.debug"
+
+S = "${WORKDIR}/${EMGD_RPM_DIR}"
+
+RPM2CPIO = "${COREBASE}/scripts/rpm2cpio.sh"
+
+do_install () {
+ # cleanup previous files if any
+ rm -rf usr
+
+ # A gstreamer VA buffer library
+ ${RPM2CPIO} ${S}/${EMGD_VIDEO_PLUGIN_DIR}/gst-vabuffer*.rpm | cpio -id
+
+ # MIX Common contains common classes, datatype, header files used by other MIX components
+ ${RPM2CPIO} ${S}/${EMGD_VIDEO_PLUGIN_DIR}/mixcommon*.rpm | cpio -id
+
+ # MIX Video Bitstream Parser is an user library interface for various video format bitstream parsing
+ ${RPM2CPIO} ${S}/${EMGD_VIDEO_PLUGIN_DIR}/mixvbp*.rpm | cpio -id
+
+ # MIX Video is an user library interface for various video codecs available on the platform.
+ ${RPM2CPIO} ${S}/${EMGD_VIDEO_PLUGIN_DIR}/mixvideo*.rpm | cpio -id
+
+ install -d -m 0755 ${D}${libdir}/gstreamer-0.10
+ install -m 0755 ${S}/usr/lib/* ${D}${libdir}/
+
+ # A gstreamer plugin that uses MIX Video for hardware accelerated video decoding and rendering.
+ ${RPM2CPIO} ${S}/${EMGD_VIDEO_PLUGIN_DIR}/gst-plugins-mixvideo*.rpm | cpio -id
+
+ # A collection of gstreamer plugins that uses VA libraries for hardware accelerated video rendering and text overlay.
+ ${RPM2CPIO} ${S}/${EMGD_VIDEO_PLUGIN_DIR}/gst-plugins-va*.rpm | cpio -id
+
+ install -m 0755 ${S}/usr/lib/gstreamer-0.10/* ${D}${libdir}/gstreamer-0.10/
+
+ # EMGD runtime graphics libraries
+ ${RPM2CPIO} ${S}/emgd-bin*.rpm | cpio -id
+
+ install -d -m 0755 ${D}${libdir}/dri
+ install -d -m 0755 ${D}${libdir}/xorg/modules/drivers
+ install -d -m 0755 ${D}${sysconfdir}
+ install -d -m 0755 ${D}${mandir}/man4
+ install -m 0755 ${S}/usr/lib/*.so.* ${D}${libdir}/
+ install -m 0755 ${S}/usr/lib/dri/* ${D}${libdir}/dri/
+ install -m 0755 ${S}/usr/lib/xorg/modules/drivers/* ${D}${libdir}/xorg/modules/drivers/
+ install -m 0755 ${S}/etc/* ${D}${sysconfdir}/
+ install -m 0755 ${S}/usr/share/man/man4/* ${D}${mandir}/man4/
+
+ # Khronos development headers needed for EGL, OpenGL-ES, and OpenVG development
+ ${RPM2CPIO} ${S}/emgd-devel*.rpm | cpio -id
+
+ patch -d ${S} -p1 < ${WORKDIR}/glchar.patch
+
+ install -d -m 0755 ${D}${includedir}/EGL
+ install -m 0755 ${S}/usr/include/EGL/*.h ${D}${includedir}/EGL/
+ install -d -m 0755 ${D}${includedir}/GLES
+ install -m 0755 ${S}/usr/include/GLES/*.h ${D}${includedir}/GLES/
+ install -d -m 0755 ${D}${includedir}/GLES2
+ install -m 0755 ${S}/usr/include/GLES2/*.h ${D}${includedir}/GLES2/
+ install -d -m 0755 ${D}${includedir}/KHR
+ install -m 0755 ${S}/usr/include/KHR/*.h ${D}${includedir}/KHR/
+ install -d -m 0755 ${D}${includedir}/VG
+ install -m 0755 ${S}/usr/include/VG/*.h ${D}${includedir}/VG/
+
+ EMGD_SNAPSHOT="1.5.15.3226"
+ ln -sf libEGL.so.${EMGD_SNAPSHOT} ${D}${libdir}/libEGL.so.1
+ ln -sf libEGL.so.1 ${D}${libdir}/libEGL.so
+ ln -sf libGLES_CM.so.${EMGD_SNAPSHOT} ${D}${libdir}/libGLES_CM.so.1
+ ln -sf libGLES_CM.so.1 ${D}${libdir}/libGLES_CM.so
+ ln -sf libGLESv2.so.${EMGD_SNAPSHOT} ${D}${libdir}/libGLESv2.so.2
+ ln -sf libGLESv2.so.2 ${D}${libdir}/libGLESv2.so
+ ln -sf libOpenVG.so.${EMGD_SNAPSHOT} ${D}${libdir}/libOpenVG.so.1
+ ln -sf libOpenVG.so.1 ${D}${libdir}/libOpenVG.so
+ ln -sf libOpenVGU.so.${EMGD_SNAPSHOT} ${D}${libdir}/libOpenVGU.so.1
+ ln -sf libOpenVGU.so.1 ${D}${libdir}/libOpenVGU.so
+ ln -sf libEMGD2d.so.${EMGD_SNAPSHOT} ${D}${libdir}/libEMGD2d.so
+ ln -sf libEMGDegl.so.${EMGD_SNAPSHOT} ${D}${libdir}/libEMGDegl.so
+ ln -sf libemgdglslcompiler.so.${EMGD_SNAPSHOT} ${D}${libdir}/libemgdglslcompiler.so
+ ln -sf libEMGDOGL.so.${EMGD_SNAPSHOT} ${D}${libdir}/libEMGDOGL.so
+ ln -sf libemgdPVR2D_DRIWSEGL.so.${EMGD_SNAPSHOT} ${D}${libdir}/libemgdPVR2D_DRIWSEGL.so
+ ln -sf libEMGDScopeServices.so.${EMGD_SNAPSHOT} ${D}${libdir}/libEMGDScopeServices.so
+ ln -sf libemgdsrv_init.so.${EMGD_SNAPSHOT} ${D}${libdir}/libemgdsrv_init.so
+ ln -sf libemgdsrv_um.so.${EMGD_SNAPSHOT} ${D}${libdir}/libemgdsrv_um.so
+
+ #Replace duplicate files with symlinks
+ rm -f ${D}${libdir}/libmixvideo.so.0
+ ln -sf libmixvideo.so.0.10.10 ${D}${libdir}/libmixvideo.so.0
+ rm -f ${D}${libdir}/libmixvbp_h264.so.0
+ ln -sf libmixvbp_h264.so.0.10.9 ${D}${libdir}/libmixvbp_h264.so.0
+ rm -f ${D}${libdir}/libmixvbp.so.0
+ ln -sf libmixvbp.so.0.10.9 ${D}${libdir}/libmixvbp.so.0
+ rm -f ${D}${libdir}/libmixvbp_vc1.so.0
+ ln -sf libmixvbp_vc1.so.0.10.9 ${D}${libdir}/libmixvbp_vc1.so.0
+ rm -f ${D}${libdir}/libmixvbp_mpeg4.so.0
+ ln -sf libmixvbp_mpeg4.so.0.10.9 ${D}${libdir}/libmixvbp_mpeg4.so.0
+ rm -f ${D}${libdir}/libmixcommon.so.0
+ ln -sf libmixcommon.so.0.10.8 ${D}${libdir}/libmixcommon.so.0
+ rm -f ${D}${libdir}/libgstvabuffer.so.0
+ ln -sf libgstvabuffer.so.0.10.8 ${D}${libdir}/libgstvabuffer.so.0
+
+ # Copy the .pc files
+ install -d -m 0755 ${D}${libdir}/pkgconfig
+ install -m 0644 ${WORKDIR}/*.pc ${D}${libdir}/pkgconfig/
+}
+
+LEAD_SONAME = "libEGL.so"