On Mon, Jun 27, 2005 at 05:19:17PM -0400, Christian Bourque wrote:
> Hi Jim!
> 
> Could you send a new Makefile.diff (the old one is not working with
> the latest cvs version of QEMU), I would like to test this code too...
> 
> Thanks
> 
> Christian
> 

I just tested it myself. This patch was applied to latest CVS and it worked
perfectly. (The CVS was pure btw - freshly checked out into a new directory.)

If there are any rejects with this, please email the *.rej files to me.

-- 
Infinite complexity begets infinite beauty.
Infinite precision begets infinite perfection.
diff -u qemu.orig/vl.c qemu/vl.c
--- qemu.orig/vl.c      Tue May 31 14:53:22 2005
+++ qemu/vl.c   Tue May 31 14:52:55 2005
@@ -147,6 +147,7 @@
 TextConsole *vga_console;
 CharDriverState *serial_hds[MAX_SERIAL_PORTS];
 CharDriverState *parallel_hds[MAX_PARALLEL_PORTS];
+int use_gtk = 0;
 #ifdef TARGET_I386
 int win2k_install_hack = 0;
 #endif
@@ -2877,6 +2878,7 @@
     QEMU_OPTION_cirrusvga,
     QEMU_OPTION_g,
     QEMU_OPTION_std_vga,
+    QEMU_OPTION_use_gtk,
     QEMU_OPTION_monitor,
     QEMU_OPTION_serial,
     QEMU_OPTION_parallel,
@@ -2947,6 +2949,7 @@
     { "localtime", 0, QEMU_OPTION_localtime },
     { "isa", 0, QEMU_OPTION_isa },
     { "std-vga", 0, QEMU_OPTION_std_vga },
+    { "use-gtk", 0, QEMU_OPTION_use_gtk },
     { "monitor", 1, QEMU_OPTION_monitor },
     { "serial", 1, QEMU_OPTION_serial },
     { "parallel", 1, QEMU_OPTION_parallel },
@@ -3345,6 +3348,9 @@
             case QEMU_OPTION_std_vga:
                 cirrus_vga_enabled = 0;
                 break;
+            case QEMU_OPTION_use_gtk:
+                use_gtk = 1;
+                break;
             case QEMU_OPTION_g:
                 {
                     const char *p;
@@ -3599,7 +3605,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);
diff -u qemu.orig/Makefile.target qemu/Makefile.target
--- qemu.orig/Makefile.target   Mon May 30 19:42:28 2005
+++ qemu/Makefile.target        Mon May 30 19:57:26 2005
@@ -357,6 +357,10 @@
 ifdef CONFIG_SDL
 VL_OBJS+=sdl.o
 endif
+ifdef CONFIG_GTK
+VL_OBJS+=gtk2.o
+VL_OBJS+=fullscreen.o
+endif
 ifdef CONFIG_COCOA
 VL_OBJS+=cocoa.o
 COCOA_LIBS=-F/System/Library/Frameworks -framework Cocoa
@@ -392,13 +396,19 @@
 endif
 
 $(QEMU_SYSTEM): $(VL_OBJS) libqemu.a
-       $(CC) $(VL_LDFLAGS) -o $@ $^ $(LIBS) $(SDL_LIBS) $(COCOA_LIBS) 
$(VL_LIBS)
+       $(CC) $(VL_LDFLAGS) -o $@ $^ $(LIBS) $(SDL_LIBS) $(COCOA_LIBS) 
$(GTK_LIBS) $(FS_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 fullscreen.h
+       $(CC) $(CFLAGS) $(DEFINES) $(GTK_CFLAGS) -c -o $@ $<
+
+fullscreen.o: $(FSDRV) fullscreen.h
+       $(CC) $(CFLAGS) $(DEFINES) -c -o $@ $<
 
 sdlaudio.o: sdlaudio.c
        $(CC) $(CFLAGS) $(DEFINES) $(SDL_CFLAGS) -c -o $@ $<
diff -u qemu.orig/configure qemu/configure
--- qemu.orig/configure Mon May 30 19:40:14 2005
+++ qemu/configure      Mon May 30 20:10:11 2005
@@ -15,6 +15,7 @@
 TMPO="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.o"
 TMPE="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}"
 TMPS="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.S"
+TMPF="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}-conf"
 
 # default parameters
 prefix=""
@@ -171,6 +172,10 @@
   ;;
   --disable-sdl) sdl="no"
   ;;
+  --enable-gtk) gtk="yes"
+  ;;
+  --set-fs-driver=*) fsdrv=`echo $opt | cut -d '=' -f 2`
+  ;;
   --enable-fmod) fmod="yes"
   ;;
   --fmod-lib=*) fmod_lib=${opt#--fmod-lib=}
@@ -311,6 +316,62 @@
 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 <stdlib.h>
+#include <gtk/gtk.h>
+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 [ "$gtk" = "yes" ]; then
+
+if [ "$fsdrv" = "" ] ; then
+
+if [ "$bsd" = "yes" -o "$linux" = "yes" ]; then
+  fsdrv=xvid_fs.c
+else
+  fsdrv=null_fs.c
+fi
+
+fi # fsdrv test
+
+if [ "$fsdrv" = "xvid_fs.c" -o "$fsdrv" = "null_fs.c" ]; then
+  echo "fsdrv=$fsdrv" >> $TMPF
+else
+  echo "Warning: unknown gtk fullscreen driver: $fsdrv - using null driver"
+  echo 'fsdrv=null_fs.c' >> $TMPF
+  fsdrv=null_fs.c
+fi
+
+if [ "$fsdrv" = "xvid_fs.c" ]; then
+  FS_LIBS="-lX11 -lXxf86vm -lXext -L/usr/X11R6/lib"
+  echo 'FS_LIBS="-lX11 -lXxf86vm -lXext -L/usr/X11R6/lib"' >> $TMPF
+fi
+
+fi # gtk=yes test
+
 if test x"$1" = x"-h" -o x"$1" = x"--help" ; then
 cat << EOF
 
@@ -434,6 +495,8 @@
 if test "$sdl" != "no" ; then
     echo "SDL static link   $sdl_static"
 fi
+echo "GTK support       $gtk"
+echo "GTK FS driver     $fsdrv"
 echo "mingw32 support   $mingw32"
 echo "Adlib support     $adlib"
 echo -n "FMOD support      $fmod"
@@ -643,6 +706,8 @@
 interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
 echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
 
+. $TMPF
+
 if test "$target_cpu" = "i386" ; then
   echo "TARGET_ARCH=i386" >> $config_mak
   echo "#define TARGET_ARCH \"i386\"" >> $config_h
@@ -720,6 +785,17 @@
     fi
 fi
 
+if test "$gtk" = "yes" ; then
+    . $TMPF
+    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 "FSDRV=$fsdrv" >> $config_mak
+    echo "FS_LIBS=$FS_LIBS" >> $config_mak
+    echo "" >> $config_mak
+fi
+
 if test "$cocoa" = "yes" ; then
     echo "#define CONFIG_COCOA 1" >> $config_h
     echo "CONFIG_COCOA=yes" >> $config_mak
@@ -739,4 +815,4 @@
     done
 fi
 
-rm -f $TMPO $TMPC $TMPE $TMPS
+rm -f $TMPO $TMPC $TMPE $TMPS $TMPF
diff -u qemu.orig/vl.h qemu/vl.h
--- qemu.orig/vl.h      Mon May 30 19:40:14 2005
+++ qemu/vl.h   Sat May 28 16:16:18 2005
@@ -579,6 +579,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);
 
_______________________________________________
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel

Reply via email to