meta-sunxi/recipes-graphics/libgles/sunxi-mali_git.bb
Trevor Woerner 2f8da55176 sunxi-mali: remove opengl requirement
The mali driver supports OpenGL ES and doesn't require OpenGL in any way. It
is completely feasible to install mali and run OpenGL ES-only apps against it
without any need for OpenGL whatsoever.

Signed-off-by: Trevor Woerner <twoerner@gmail.com>
2015-09-25 18:10:54 -04:00

80 lines
3.2 KiB
BlitzBasic

DESCRIPTION = "libGLES for the A10/A13 Allwinner processor with Mali 400 (X11)"
LICENSE = "Proprietary"
LIC_FILES_CHKSUM = "file://README;md5=1b81a178e80ee888ee4571772699ab2c"
COMPATIBLE_MACHINE = "(sun4i|sun5i|sun7i)"
# 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"
RPROVIDES_${PN} += "libGLESv2.so libEGL.so libGLESv2.so libGLESv1_CM.so libMali.so"
SRCREV_pn-${PN} = "d343311efc8db166d8371b28494f0f27b6a58724"
SRC_URI = "gitsm://github.com/linux-sunxi/sunxi-mali.git \
file://0001-Add-EGLSyncKHR-EGLTimeKHR-and-GLChar-definition.patch \
file://0002-Add-missing-GLchar-definition.patch \
file://0003-Fix-sed-to-replace-by-the-correct-var.patch \
"
S = "${WORKDIR}/git"
DEPENDS = "libdrm dri2proto libump"
PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} ${@base_contains('DISTRO_FEATURES', 'wayland', 'wayland', '', d)}"
PACKAGECONFIG[wayland] = "EGL_TYPE=framebuffer,,,"
PACKAGECONFIG[x11] = "EGL_TYPE=x11,,virtual/libx11 libxau libxdmcp libdri2,"
# Inhibit warnings about files being stripped, we can't do anything about it.
INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
INHIBIT_PACKAGE_STRIP = "1"
INHIBIT_SYSROOT_STRIP = "1"
do_configure() {
DESTDIR=${D}/ VERSION=r3p0 ABI=armhf ${EXTRA_OECONF} make config
}
do_install() {
make -f Makefile.pc
# install headers
install -d -m 0755 ${D}${includedir}/EGL
install -m 0755 ${S}/include/EGL/*.h ${D}${includedir}/EGL/
install -d -m 0755 ${D}${includedir}/GLES
install -m 0755 ${S}/include/GLES/*.h ${D}${includedir}/GLES/
install -d -m 0755 ${D}${includedir}/GLES2
install -m 0755 ${S}/include/GLES2/*.h ${D}${includedir}/GLES2/
install -d -m 0755 ${D}${includedir}/KHR
install -m 0755 ${S}/include/KHR/*.h ${D}${includedir}/KHR/
# Copy the .pc files
install -d -m 0755 ${D}${libdir}/pkgconfig
install -m 0644 ${S}/egl.pc ${D}${libdir}/pkgconfig/
install -m 0644 ${S}/gles_cm.pc ${D}${libdir}/pkgconfig/
install -m 0644 ${S}/glesv2.pc ${D}${libdir}/pkgconfig/
install -d ${D}${libdir}
install -d ${D}${includedir}
make libdir=${D}${libdir}/ includedir=${D}${includedir}/ install
make libdir=${D}${libdir}/ includedir=${D}${includedir}/ install -C include
# Fix .so name and create symlinks, binary package provides .so wich can't be included directly in package without triggering the 'dev-so' QA check
# Packages like xf86-video-fbturbo dlopen() libUMP.so, so we do need to ship the .so files in ${PN}
mv ${D}${libdir}/libMali.so ${D}${libdir}/libMali.so.3
ln -sf libMali.so.3 ${D}${libdir}/libMali.so
for flib in libEGL.so.1.4 libGLESv1_CM.so.1.1 libGLESv2.so.2.0 ; do
rm ${D}${libdir}/$flib
ln -sf libMali.so.3 ${D}${libdir}/$flib
done
}
# Packages like xf86-video-fbturbo dlopen() libUMP.so, so we do need to ship the .so files in ${PN}
FILES_${PN} += "${libdir}/lib*.so"
FILES_${PN}-dev = "${includedir} ${libdir}/pkgconfig/*"
# These are closed binaries generated elsewhere so don't check ldflags & text relocations
INSANE_SKIP_${PN} = "dev-so ldflags textrel"