--- vl.c.orig Fri May 27 17:49:15 2005 +++ vl.c Fri May 27 18:07:28 2005 @@ -149,6 +149,7 @@ TextConsole *vga_console; CharDriverState *serial_hds[MAX_SERIAL_PORTS]; CharDriverState *parallel_hds[MAX_PARALLEL_PORTS]; +int use_gtk = 0; /***********************************************************/ /* x86 ISA bus support */ @@ -2875,6 +2876,7 @@ QEMU_OPTION_std_vga, QEMU_OPTION_no_sdl_grab, QEMU_OPTION_funny_hack, + QEMU_OPTION_use_gtk, QEMU_OPTION_monitor, QEMU_OPTION_serial, QEMU_OPTION_parallel, @@ -2946,6 +2948,7 @@ { "std-vga", 0, QEMU_OPTION_std_vga }, { "no-sdl-grab", 0, QEMU_OPTION_no_sdl_grab }, { "funny_hack", 0, QEMU_OPTION_funny_hack }, + { "use-gtk", 0, QEMU_OPTION_use_gtk }, { "monitor", 1, QEMU_OPTION_monitor }, { "serial", 1, QEMU_OPTION_serial }, { "parallel", 1, QEMU_OPTION_parallel }, @@ -3349,6 +3352,9 @@ case QEMU_OPTION_funny_hack: funny_hack = 1; break; + case QEMU_OPTION_use_gtk: + use_gtk = 1; + break; case QEMU_OPTION_g: { const char *p; @@ -3598,7 +3604,17 @@ if (nographic) { dumb_display_init(ds); } else { +#if defined(CONFIG_GTK) #if defined(CONFIG_SDL) + /* so we can choose */ + if (use_gtk) + gtk2_display_init(ds, full_screen); + else + sdl_display_init(ds, full_screen); +#else + gtk2_display_init(ds, full_screen); +#endif +#elif defined(CONFIG_SDL) sdl_display_init(ds, full_screen); #elif defined(CONFIG_COCOA) cocoa_display_init(ds, full_screen); --- vl.h.orig Tue Apr 26 17:52:58 2005 +++ vl.h Fri May 27 18:07:19 2005 @@ -576,6 +576,9 @@ /* sdl.c */ void sdl_display_init(DisplayState *ds, int full_screen); +/* gtk2.c */ +void gtk2_display_init(DisplayState *ds, int full_screen); + /* cocoa.m */ void cocoa_display_init(DisplayState *ds, int full_screen); --- configure.orig Tue Apr 26 17:58:12 2005 +++ configure Fri May 27 17:57:34 2005 @@ -171,6 +171,8 @@ ;; --disable-sdl) sdl="no" ;; + --enable-gtk) gtk="yes" + ;; --enable-fmod) fmod="yes" ;; --fmod-lib=*) fmod_lib=${opt#--fmod-lib=} @@ -311,6 +313,34 @@ fi # cross compilation fi # -z $sdl +########################################## +# GTK probe + +gtk_too_old=no + +if test -z "$gtk" ; then + +gtk=no + +# normal GTK probe +cat > $TMPC << EOF +#include +#include +int main(int argc, char **argv) { gtk_init(&argc, &argv); return EXIT_SUCCESS; } +EOF + +if $cc -o $TMPE `pkg-config --cflags --libs gtk+-2.0 2> /dev/null` $TMPC 2> /dev/null ; then +_gtkversion=`pkg-config --modversion gtk+-2.0 | sed 's/[^0-9]//g'` +if test "$_sdlversion" -lt 240 ; then + gtk_too_old=yes +else + gtk=yes +fi + +fi # gtk compile test + +fi # -z $gtk + if test x"$1" = x"-h" -o x"$1" = x"--help" ; then cat << EOF @@ -433,6 +463,7 @@ if test "$sdl" != "no" ; then echo "SDL static link $sdl_static" fi +echo "GTK support $gtk" echo "mingw32 support $mingw32" echo "Adlib support $adlib" echo -n "FMOD support $fmod" @@ -717,6 +748,14 @@ fi echo "" >> $config_mak fi +fi + +if test "$gtk" = "yes" ; then + echo "#define CONFIG_GTK 1" >> $config_h + echo "CONFIG_GTK=yes" >> $config_mak + echo "GTK_LIBS=`pkg-config --libs gtk+-2.0`" >> $config_mak + echo "GTK_CFLAGS=`pkg-config --cflags gtk+-2.0`" >> $config_mak + echo "" >> $config_mak fi if test "$cocoa" = "yes" ; then --- Makefile.target.orig Fri May 27 11:22:46 2005 +++ Makefile.target Fri May 27 18:03:32 2005 @@ -357,6 +357,9 @@ ifdef CONFIG_SDL VL_OBJS+=sdl.o endif +ifdef CONFIG_GTK +VL_OBJS+=gtk2.o +endif ifdef CONFIG_COCOA VL_OBJS+=cocoa.o COCOA_LIBS=-F/System/Library/Frameworks -framework Cocoa @@ -392,13 +395,16 @@ endif $(QEMU_SYSTEM): $(VL_OBJS) libqemu.a - $(CC) $(VL_LDFLAGS) -o $@ $^ $(LIBS) $(SDL_LIBS) $(COCOA_LIBS) $(VL_LIBS) -L/usr/local/lib -L/usr/X11R6/lib -lgtk-x11-2.0 -lgdk-x11-2.0 -lpango-1.0 -latk-1.0 -rdynamic -lgmodule-2.0 -lglib-2.0 -ldl -lXi -lXext -lX11 -lXft -lm + $(CC) $(VL_LDFLAGS) -o $@ $^ $(LIBS) $(SDL_LIBS) $(COCOA_LIBS) $(GTK_LIBS) $(VL_LIBS) cocoa.o: cocoa.m $(CC) $(CFLAGS) $(DEFINES) -c -o $@ $< sdl.o: sdl.c keymaps.c sdl_keysym.h $(CC) $(CFLAGS) $(DEFINES) $(SDL_CFLAGS) -c -o $@ $< +gtk2.o: gtk2.c keymaps.c gdk_keysym.h + $(CC) $(CFLAGS) $(DEFINES) $(GTK_CFLAGS) -c -o $@ $< + sdlaudio.o: sdlaudio.c $(CC) $(CFLAGS) $(DEFINES) $(SDL_CFLAGS) -c -o $@ $<