qemugl: Use mesa-dri as the main gl provider and just swap libs at runtime

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
This commit is contained in:
Richard Purdie 2009-06-09 21:27:13 +01:00
parent 111ea0d5cc
commit f4d34a005a
4 changed files with 38 additions and 36 deletions

View File

@ -1,12 +0,0 @@
prefix=/usr
exec_prefix=${prefix}
libdir=/usr/lib
includedir=/usr/include
Name: gl
Description: QEMU OpenGL library
Requires.private: x11 xext xfixes
Version: 7.3.0
Libs: -L${libdir} -lGL
Libs.private: -lm -lpthread -ldl
Cflags: -I${includedir}

View File

@ -0,0 +1,30 @@
Index: git/Makefile
===================================================================
--- git.orig/Makefile 2009-01-19 23:37:36.000000000 +0000
+++ git/Makefile 2009-06-09 20:30:37.000000000 +0100
@@ -1,9 +1,9 @@
GL_CFLAGS := -Wall -g -O2 -fno-strict-aliasing
-all: libGL.so
+all: libGL.so.1.2
-libGL.so: client_stub.c opengl_client.c glgetv_cst.h opengl_func.h opengl_utils.h opengl_client_xfonts.c mesa_gl.h mesa_glext.h mesa_glx.h mesa_glxext.h
- $(CC) -fPIC $(GL_CFLAGS) opengl_client.c -shared -o libGL.so -lX11 -lXfixes -lm -L$(D)/usr/X11R6/lib -lpthread -I.
+libGL.so.1.2: client_stub.c opengl_client.c glgetv_cst.h opengl_func.h opengl_utils.h opengl_client_xfonts.c mesa_gl.h mesa_glext.h mesa_glx.h mesa_glxext.h
+ $(CC) -fPIC $(GL_CFLAGS) opengl_client.c -shared -o libGL.so.1.2 -lX11 -lXfixes -lm -L$(D)/usr/X11R6/lib -lpthread -I.
opengl_func.h: gl_func.h
Index: git/opengl_client.c
===================================================================
--- git.orig/opengl_client.c 2009-06-09 21:07:15.000000000 +0100
+++ git/opengl_client.c 2009-06-09 21:07:33.000000000 +0100
@@ -11578,7 +11578,7 @@
tab_assoc = calloc(tabSize, sizeof(AssocProcAdress));
#ifndef WIN32
- handle = dlopen(getenv("REAL_LIBGL") ? getenv("REAL_LIBGL") : "libGL.so" ,RTLD_LAZY);
+ handle = dlopen(getenv("REAL_LIBGL") ? getenv("REAL_LIBGL") : "libGL.so.1.2" ,RTLD_LAZY);
if (!handle) {
log_gl("%s\n", dlerror());
exit(1);

View File

@ -8,36 +8,20 @@ DEPENDS = "virtual/libx11 xproto glproto libxfixes"
COMPATIBLE_HOST = '(x86_64|i.86.*)-(linux|freebsd.*)'
SRC_URI = "git://git.o-hand.com/qemugl.git;protocol=git \
file://headers.tgz \
file://gl.pc"
file://versionfix.patch;patch=1"
S = "${WORKDIR}/git"
PV = "0.0+git${SRCREV}"
PR = "r1"
PROVIDES = "virtual/libgl"
PR = "r5"
DEFAULT_PREFERENCE = "-1"
# Multiple virtual/gl providers being built breaks staging
EXCLUDE_FROM_WORLD = "1"
do_install () {
install -d ${D}${libdir}
install -m 0755 ${S}/libGL.so ${D}${libdir}/
ln -s libGL.so ${D}${libdir}/libGL.so.1
install -d ${D}{includedir}/GL/
cp -pPR ${WORKDIR}/headers/* ${D}{includedir}/GL/
install -d ${D}${libdir}/pkgconfig/
cp ${WORKDIR}/gl.pc ${D}${libdir}/pkgconfig/
install -d ${D}${libdir}/
install -m 0755 ${S}/libGL.so.1.2 ${D}${libdir}/libGL-qemu.so.1.2
}
do_stage () {
install -d ${STAGING_LIBDIR}/
install -m 0755 ${S}/libGL.so ${STAGING_LIBDIR}/
ln -s libGL.so ${STAGING_LIBDIR}/libGL.so.1
install -d ${STAGING_INCDIR}/GL/
cp -pPR ${WORKDIR}/headers/* ${STAGING_INCDIR}/GL/
install -d ${STAGING_LIBDIR}/pkgconfig/
cp ${WORKDIR}/gl.pc ${STAGING_LIBDIR}/pkgconfig/
}
pkg_postinst_${PN} () {
rm -f $D${libdir}/libGL.so.1.2
ln -s libGL-qemu.so.1.2 $D${libdir}/libGL.so.1.2
}