diff options
-rw-r--r-- | ChangeLog | 9 | ||||
-rw-r--r-- | README.mingw | 96 | ||||
-rw-r--r-- | README.windows | 9 | ||||
-rw-r--r-- | boards/flags/en_GB.png | bin | 0 -> 2688 bytes | |||
-rw-r--r-- | po/POTFILES.in | 2 | ||||
-rw-r--r-- | src/gcompris/gameutil.c | 8 | ||||
-rw-r--r-- | src/gcompris/soundutil.c | 3 |
7 files changed, 124 insertions, 3 deletions
@@ -1,3 +1,12 @@ +2004-04-27 Bruno coudoin <bruno.coudoin@free.fr> + + * README.mingw: taken from the pan project + * README.windows: taken from the pan project + * boards/flags/en_GB.png: now really GB flag + * po/POTFILES.in: updated + * src/gcompris/gameutil.c: (gcompris_get_board_from_section): added traces + * src/gcompris/soundutil.c: (scheduler): added a lock that was deadlocking on windows. + 2004-04-19 Bruno coudoin <bruno.coudoin@free.fr> fixed bug debian Bug#244544 Fails to get locale diff --git a/README.mingw b/README.mingw new file mode 100644 index 0000000..6dbb0d7 --- /dev/null +++ b/README.mingw @@ -0,0 +1,96 @@ +How to build gcompris on Windows + +FIXME: http://sources.redhat.com/ml/cygwin/1999-05/msg00249.html + tells how to associate Gcompris.ico with Gcompris.exe + +1: MINGW +=========== + + * MinGW (www.mingw.org) is the Minimalist GNU for Windows. + Unlike cygwin, apps built with MinGW don't require any middleware + libraries to run. That's why I chose it over cygwin for Gcompris. + * Download the "MinGW" installer exe and install into c:\mingw\ . + * Download the "MSYS" and "MSYS Developer Toolkit" installer exes + and install into c:\msys\ . + * Copy the .profile file from the bottom of this document into + c:\msys\1.0\home\yourname\.profile . + * if msvcrt.dll is not in your Windows/System folder, get it + from http://www.simtel.net/simtel.net/win95/dll + or by installing Internet Explorer 4.0 or higher + + +2: LIBRARY PREREQUISITES +======================== +I installed each of the prerequisites in its own directory underneath +c:\msys\1.0\opt\, so that (1) they're easy to blow away piece-by-piece +to upgrade to newer versions, and (2) they show up as /opt/gtk, /opt/libxml, +and so on from msys, which is reasonably clear. If you choose a different +hierarchy make sure to tweak your .profile. + +2.1 GTK +======= ++ gcompris needs gtk to run. +* Install the latest "GTK Runtime Environment" + and "GTK Development Environment" -- *IN THAT ORDER* -- + from http://sourceforge.net/projects/gtk-win/ + into c:\msys\1.0\opt\gtk +* edit /opt/gtk/bin/glib-gettextize, replace "/target" with "/opt/gtk" +* sanity check: you should now be able to run gtk-demo.exe from msys. + +2.2 LIBXML2 +=========== ++ gcompris needs libxml2 to run. +* Snag a tarball from ftp://xmlsoft.org/ and untar it in your msys home directory. +* ./configure --prefix=/opt/libxml2; make; make install +* edit /opt/libxml2/lib/pkgconfig/libxml-2.0.pc: + Add " -lws2_32 " to the end of the "Libs:" line. +* Sanity check: "$ pkg-config --cflags libxml-2.0" should give meaningful output now. +* Sanity check: "$ pkg-config --libs libxml-2.0" should also work, and include -lws2_32 + +2.6 PREREQUISITE SUMMARY +======================== +* At this point, you must have the following subdirectories: + + /opt/gtk + + /opt/libxml2 +* And, if you plan on building from CVS, you'll also need: + + /opt/gnome-common + +3: BUILDING GCOMPRIS.EXE +======================== +* Get a tarball or CVS snapshot of gcompris. +* run ./autogen.sh from gcompris's top-level directory. This will take a long time. +* *drum roll...* make! + +4: BULDING GCOMPRIS-SETUP.EXE +======================== +* Make sure gcompris.iss and README.windows exist +* go into gcompris/po/ directory and make the mo files +* Install INNO Setup version 4 (or higher) from http://www.jrsoftware.org/is4.php +* Open c:\msys\1.0\home\yourname\gcompris\gcompris.iss inside the inno installer +* Should compile and build without a hitch, placing the setup file in c:\ + + +APPENDIX: MY .profile +===================== + + # Life with MinGW + export CFLAGS="$CFLAGS -mwindows -mno-cygwin -mms-bitfields" + export CPPFLAGS="$CPPFLAGS -I/c/mingw/include -DWINDOWS -DWIN32" + export PATH="$PATH:/c/mingw/bin" + export CVSROOT=":pserver:charles@cvs.gnome.org:/cvs/gnome" + + # GTK + export GTK_HOME="/opt/gtk" + export CPPFLAGS="$CPPFLAGS -I$GTK_HOME/include" + export PATH="$GTK_HOME/bin:$GTK_HOME/lib:$PATH" + export PKG_CONFIG_PATH="$GTK_HOME/lib/pkgconfig:$PKG_CONFIG_PATH" + export ACLOCAL_FLAGS="$ACLOCAL_FLAGS -I $GTK_HOME/share/aclocal" + export LIBICONV="$GTK_HOME/lib/iconv.dll" + + # LIBXML2 + export LIBXML2_HOME="/opt/libxml2" + export PKG_CONFIG_PATH="$LIBXML2_HOME/lib/pkgconfig:$PKG_CONFIG_PATH" + + echo "Loaded .profile..." + + diff --git a/README.windows b/README.windows new file mode 100644 index 0000000..49103cb --- /dev/null +++ b/README.windows @@ -0,0 +1,9 @@ + + http://ofset.sf.net/gcompris + has a full list of changes since the previous release. + + On Windows, Gcompris requires GTK, which can be found + at <http://www.dropline.net/gtk/>. + + Information on building gcompris on Windows can be found in README.mingw. + diff --git a/boards/flags/en_GB.png b/boards/flags/en_GB.png Binary files differnew file mode 100644 index 0000000..b2708bd --- /dev/null +++ b/boards/flags/en_GB.png diff --git a/po/POTFILES.in b/po/POTFILES.in index 68cf5e5..e033385 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -179,6 +179,7 @@ src/boards/target.c src/boards/traffic.c src/boards/wordsgame.c src/gcompris/about.c +src/gcompris/boards.c src/gcompris/config.c src/gcompris/gameutil.c src/gcompris/gcompris-edit.c @@ -187,6 +188,7 @@ src/gcompris/gcompris.h src/gcompris/help.c src/gcompris/images_selector.c src/gcompris/interface.c +src/gcompris/log.c src/gcompris/oggplayer.c src/gcompris/properties.c src/gcompris/skin.c diff --git a/src/gcompris/gameutil.c b/src/gcompris/gameutil.c index 0f4fac6..12884f3 100644 --- a/src/gcompris/gameutil.c +++ b/src/gcompris/gameutil.c @@ -1,6 +1,6 @@ /* gcompris - gameutil.c * - * Time-stamp: <2004/04/14 00:47:32 bcoudoin> + * Time-stamp: <2004/04/27 23:01:59 bcoudoin> * * Copyright (C) 2000 Bruno Coudoin * @@ -520,15 +520,19 @@ GcomprisBoard *gcompris_get_board_from_section(gchar *section) { GList *list = NULL; + printf("gcompris_get_board_from_section(%s)\n", section); for(list = boards_list; list != NULL; list = list->next) { GcomprisBoard *board = list->data; + printf(" gcompris_get_board_from_section(%s) looking for board->name=%s board->section=%s\n", + section, board->name, board->section); if( board->section && (strcmp (board->section, section) == 0)) { + printf(" gcompris_get_board_from_section(%s) FOUND IT: board->name=%s\n", section, board->name); return board; } } - + printf("gcompris_get_board_from_section(%s): Section not found\n", section); return NULL; } diff --git a/src/gcompris/soundutil.c b/src/gcompris/soundutil.c index 3c49923..2500c83 100644 --- a/src/gcompris/soundutil.c +++ b/src/gcompris/soundutil.c @@ -181,9 +181,10 @@ static gpointer scheduler (gpointer user_data) } else { + g_mutex_lock (lock); g_cond_wait (cond, lock); - g_mutex_unlock (lock); + } } return NULL; |