Add an option gl-accel to disable GL acceleration: * When enabled, configure try best to enable GL acceleration and fail when missing host dependency(libSDL and libGL), which is the default. * When disabled, end user choose to turn off GL capability, thus remove the host dependence in building. Upstream-Status: Inappropriate [other] - depends on GL patch Signed-off-by: Zhai Edwin Index: qemu-0.15.1/Makefile.target =================================================================== --- qemu-0.15.1.orig/Makefile.target 2012-05-29 11:20:04.000000000 +0800 +++ qemu-0.15.1/Makefile.target 2012-05-29 11:20:04.000000000 +0800 @@ -80,13 +80,16 @@ endif libobj-$(CONFIG_NEED_MMU) += mmu.o ifndef CONFIG_LINUX_USER +ifdef CONFIG_GL_ACCEL libobj-$(TARGET_I386) += helper_opengl.o opengl_exec.o libobj-$(TARGET_X86_64) += helper_opengl.o opengl_exec.o else -ifdef CONFIG_SDL libobj-$(TARGET_I386) += dummygl.o libobj-$(TARGET_X86_64) += dummygl.o -endif +endif #CONFIG_GL_ACCEL +else +libobj-$(TARGET_I386) += dummygl.o +libobj-$(TARGET_X86_64) += dummygl.o endif #CONFIG_LINUX_USER libobj-$(TARGET_ARM) += dummygl.o libobj-$(TARGET_MIPS) += dummygl.o @@ -262,8 +265,10 @@ obj-i386-$(CONFIG_SPICE) += qxl.o qxl-logger.o qxl-render.o ifeq ($(TARGET_BASE_ARCH), i386) +ifdef CONFIG_GL_ACCEL QEMU_CFLAGS += -DTARGET_OPENGL_OK endif +endif # shared objects obj-ppc-y = ppc.o @@ -409,8 +414,6 @@ monitor.o: hmp-commands.h qmp-commands.h -LIBS += -lGL -lGLU - $(obj-y) $(obj-$(TARGET_BASE_ARCH)-y): $(GENERATED_HEADERS) obj-y += $(addprefix ../, $(common-obj-y)) Index: qemu-0.15.1/configure =================================================================== --- qemu-0.15.1.orig/configure 2012-05-29 11:20:03.000000000 +0800 +++ qemu-0.15.1/configure 2012-05-29 11:20:04.000000000 +0800 @@ -2021,6 +2021,39 @@ fi fi +##################################################### +# GL acceleration probe depending on gl, glu and sdl +if test "$gl_accel" != "no" ; then + if test "$sdl" = "no" ; then + gl_accel=no + echo "libSDL and header no found to build opengl acceleration for qemu-native. + Ubuntu package names are: libsdl1.2-dev. + Fedora package names are: SDL-devel." + exit 1; + fi + + gl_accel_libs="-lGL -lGLU" + cat > $TMPC << EOF +#include +#include +#include +#include +int main(void) { GL_VERSION; return 0; } +EOF + if compile_prog "" "-lGL -lGLU" ; then + gl_accel=yes + libs_softmmu="$gl_accel_libs $libs_softmmu" + else + feature_not_found "gl_accel" + gl_accel=no + gl_accel_libs= + echo "libGL.so and libGLU.so not found to build opengl acceleration for qemu-native. + Ubuntu package names are: libgl1-mesa-dev, libglu1-mesa-dev and libsdl1.2-dev. + Fedora package names are: mesa-libGL mesa-libGLU SDL-devel." + exit 1; + fi +fi + # # Check for xxxat() functions when we are building linux-user # emulator. This is done because older glibc versions don't @@ -2722,6 +2755,7 @@ echo "nss used $smartcard_nss" echo "usb net redir $usb_redir" echo "OpenGL support $opengl" +echo "GL acceleration support $gl_accel" echo "build guest agent $guest_agent" if test $sdl_too_old = "yes"; then @@ -3025,6 +3059,10 @@ echo "CONFIG_OPENGL=y" >> $config_host_mak fi +if test "$gl_accel" = "yes" ; then + echo "CONFIG_GL_ACCEL=y" >> $config_host_mak +fi + # XXX: suppress that if [ "$bsd" = "yes" ] ; then echo "CONFIG_BSD=y" >> $config_host_mak Index: qemu-0.15.1/qemu-char.c =================================================================== --- qemu-0.15.1.orig/qemu-char.c 2012-05-29 11:20:03.000000000 +0800 +++ qemu-0.15.1/qemu-char.c 2012-05-29 11:20:04.000000000 +0800 @@ -2387,7 +2387,6 @@ return d->outbuf_size; } -#define TARGET_OPENGL_OK #if defined(TARGET_OPENGL_OK) static uint8_t buffer[32]; static int buffer_len; @@ -2447,7 +2446,7 @@ return chr; } #else -#define qemu_chr_open_opengl() 0 +#define qemu_chr_open_opengl NULL #endif QemuOpts *qemu_chr_parse_compat(const char *label, const char *filename)