From 0a2034bb3cb5edb95111376cfad65b0a0f929d06 Mon Sep 17 00:00:00 2001 From: Jens Lucius Date: Tue, 22 Sep 2015 17:02:06 +0200 Subject: [PATCH] sunxi-mali: install .pc files, add patches Add installation of .pc and header files. Add compile patches to fix errors. Original fix by raoulh, already included in meta-sunxi dora branch by naguirre. Ported to master branch and no not switch away from sunxi-mali git repo, instead just add the needed patches on top of it. Signed-off-by: Jens Lucius --- .../0002-Add-missing-GLchar-definition.patch | 136 ++++++++++++++++++ ...ix-sed-to-replace-by-the-correct-var.patch | 30 ++++ recipes-graphics/libgles/sunxi-mali_git.bb | 30 +++- 3 files changed, 192 insertions(+), 4 deletions(-) create mode 100644 recipes-graphics/libgles/sunxi-mali/0002-Add-missing-GLchar-definition.patch create mode 100644 recipes-graphics/libgles/sunxi-mali/0003-Fix-sed-to-replace-by-the-correct-var.patch diff --git a/recipes-graphics/libgles/sunxi-mali/0002-Add-missing-GLchar-definition.patch b/recipes-graphics/libgles/sunxi-mali/0002-Add-missing-GLchar-definition.patch new file mode 100644 index 0000000..d21b6a7 --- /dev/null +++ b/recipes-graphics/libgles/sunxi-mali/0002-Add-missing-GLchar-definition.patch @@ -0,0 +1,136 @@ +From 15d91ef25234ff402f4288273989693f2d402d9d Mon Sep 17 00:00:00 2001 +From: Raoul Hecky +Date: Fri, 10 Jan 2014 14:44:53 +0100 +Subject: [PATCH] Add missing GLchar definition, some gl/gles apps needs that + to compile correctly + +Build pkg-config files for gles and egl and install them + +Fix .pc creation + +add correct driver version in .pc +--- + .gitignore | 1 + + Makefile | 1 + + Makefile.pc | 21 +++++++++++++++++++++ + egl.pc.in | 11 +++++++++++ + gles_cm.pc.in | 11 +++++++++++ + glesv2.pc.in | 11 +++++++++++ + include/GLES/gl.h | 1 + + include/GLES2/gl2.h | 1 + + 8 files changed, 58 insertions(+) + create mode 100644 Makefile.pc + create mode 100644 egl.pc.in + create mode 100644 gles_cm.pc.in + create mode 100644 glesv2.pc.in + +diff --git a/.gitignore b/.gitignore +index 6865abf..e8a3713 100644 +--- a/.gitignore ++++ b/.gitignore +@@ -1,2 +1,3 @@ + config.mk + *~ ++*.pc +diff --git a/Makefile b/Makefile +index 60d4a0f..94845ea 100644 +--- a/Makefile ++++ b/Makefile +@@ -21,6 +21,7 @@ clean: + install: config.mk + $(MAKE) -C lib install + $(MAKE) -C include install ++ $(MAKE) -f Makefile.pc + + test: config.mk + $(MAKE) -C test test +diff --git a/Makefile.pc b/Makefile.pc +new file mode 100644 +index 0000000..01097fd +--- /dev/null ++++ b/Makefile.pc +@@ -0,0 +1,21 @@ ++include Makefile.setup ++include config.mk ++ ++all: ++ echo "prefix=$(prefix)" > egl.pc ++ cat egl.pc.in >> egl.pc ++ sed -i "s/MVERSION/$MALI_VERSION/g" egl.pc ++ echo "prefix=$(prefix)" > gles_cm.pc ++ cat gles_cm.pc.in >> gles_cm.pc ++ sed -i "s/MVERSION/$MALI_VERSION/g" gles_cm.pc ++ echo "prefix=$(prefix)" > glesv2.pc ++ cat glesv2.pc.in >> glesv2.pc ++ sed -i "s/MVERSION/$MALI_VERSION/g" glesv2.pc ++ ++install: egl.pc gles_cm.pc glesv2.pc ++ $(MKDIR) $(libdir)/pkgconfig ++ $(INSTALL_DATA) $^ $(libdir)/pkgconfig ++ ++clean: ++ $(RM) egl.pc gles_cm.pc glesv2.pc ++ +diff --git a/egl.pc.in b/egl.pc.in +new file mode 100644 +index 0000000..0697183 +--- /dev/null ++++ b/egl.pc.in +@@ -0,0 +1,11 @@ ++exec_prefix=${prefix} ++libdir=${prefix}/lib ++includedir=${prefix}/include ++ ++Name: egl ++Description: Mali EGL library ++Requires.private: ++Version: MVERSION ++Libs: -L${libdir} -lEGL ++Libs.private: -lm -lpthread -ldl ++Cflags: -I${includedir} +diff --git a/gles_cm.pc.in b/gles_cm.pc.in +new file mode 100644 +index 0000000..22bc348 +--- /dev/null ++++ b/gles_cm.pc.in +@@ -0,0 +1,11 @@ ++exec_prefix=${prefix} ++libdir=${prefix}/lib ++includedir=${prefix}/include ++ ++Name: gles_cm ++Description: Mali OpenGL ES 1.1 CM library ++Requires.private: ++Version: MVERSION ++Libs: -L${libdir} -lGLES_CM ++Libs.private: -lm -lpthread -ldl ++Cflags: -I${includedir} +diff --git a/glesv2.pc.in b/glesv2.pc.in +new file mode 100644 +index 0000000..efef2ed +--- /dev/null ++++ b/glesv2.pc.in +@@ -0,0 +1,11 @@ ++exec_prefix=${prefix} ++libdir=${prefix}/lib ++includedir=${prefix}/include ++ ++Name: glesv2 ++Description: Mali OpenGL ES 2.0 library ++Requires.private: ++Version: MVERSION ++Libs: -L${libdir} -lGLESv2 ++Libs.private: -lm -lpthread -ldl ++Cflags: -I${includedir} +diff --git a/include/GLES/gl.h b/include/GLES/gl.h +index 858f394..a6bb591 100644 +--- a/include/GLES/gl.h ++++ b/include/GLES/gl.h +@@ -29,6 +29,7 @@ typedef float GLfloat; + typedef float GLclampf; + typedef signed int GLfixed; + typedef signed int GLclampx; ++typedef char GLchar; + + typedef int * GLintptr; + typedef int * GLsizeiptr; diff --git a/recipes-graphics/libgles/sunxi-mali/0003-Fix-sed-to-replace-by-the-correct-var.patch b/recipes-graphics/libgles/sunxi-mali/0003-Fix-sed-to-replace-by-the-correct-var.patch new file mode 100644 index 0000000..2244490 --- /dev/null +++ b/recipes-graphics/libgles/sunxi-mali/0003-Fix-sed-to-replace-by-the-correct-var.patch @@ -0,0 +1,30 @@ +From 95bbd40135f96b473d4c713317e485d0049580cd Mon Sep 17 00:00:00 2001 +From: Raoul Hecky +Date: Tue, 8 Apr 2014 08:10:12 +0200 +Subject: [PATCH] Fix sed to replace by the correct var + +--- + Makefile.pc | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/Makefile.pc b/Makefile.pc +index 01097fd..c51d18c 100644 +--- a/Makefile.pc ++++ b/Makefile.pc +@@ -4,13 +4,13 @@ include config.mk + all: + echo "prefix=$(prefix)" > egl.pc + cat egl.pc.in >> egl.pc +- sed -i "s/MVERSION/$MALI_VERSION/g" egl.pc ++ sed -i "s/MVERSION/${MALI_VERSION}/g" egl.pc + echo "prefix=$(prefix)" > gles_cm.pc + cat gles_cm.pc.in >> gles_cm.pc +- sed -i "s/MVERSION/$MALI_VERSION/g" gles_cm.pc ++ sed -i "s/MVERSION/${MALI_VERSION}/g" gles_cm.pc + echo "prefix=$(prefix)" > glesv2.pc + cat glesv2.pc.in >> glesv2.pc +- sed -i "s/MVERSION/$MALI_VERSION/g" glesv2.pc ++ sed -i "s/MVERSION/${MALI_VERSION}/g" glesv2.pc + + install: egl.pc gles_cm.pc glesv2.pc + $(MKDIR) $(libdir)/pkgconfig diff --git a/recipes-graphics/libgles/sunxi-mali_git.bb b/recipes-graphics/libgles/sunxi-mali_git.bb index c1f0ea7..17e76bd 100644 --- a/recipes-graphics/libgles/sunxi-mali_git.bb +++ b/recipes-graphics/libgles/sunxi-mali_git.bb @@ -4,7 +4,6 @@ LICENSE = "Proprietary" LIC_FILES_CHKSUM = "file://README;md5=1b81a178e80ee888ee4571772699ab2c" COMPATIBLE_MACHINE = "(sun4i|sun5i|sun7i)" -DEPENDS = "virtual/libx11 libxau libxdmcp libdrm dri2proto libdri2 libump" # These libraries shouldn't get installed in world builds unless something # explicitly depends upon them. @@ -16,7 +15,10 @@ REQUIRED_DISTRO_FEATURES = "opengl" SRCREV_pn-${PN} = "d343311efc8db166d8371b28494f0f27b6a58724" SRC_URI = "gitsm://github.com/linux-sunxi/sunxi-mali.git \ - file://0001-Add-EGLSyncKHR-EGLTimeKHR-and-GLChar-definition.patch" + 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" @@ -26,6 +28,8 @@ PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES', 'x11', 'x11', '', 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" do_configure() { @@ -33,6 +37,24 @@ do_configure() { } 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} @@ -53,6 +75,6 @@ do_install() { # 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}" +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" +INSANE_SKIP_${PN} = "dev-so ldflags textrel" \ No newline at end of file