diff options
author | Yves Combe <ycombe@src.gnome.org> | 2006-10-23 22:56:48 (GMT) |
---|---|---|
committer | Yves Combe <ycombe@src.gnome.org> | 2006-10-23 22:56:48 (GMT) |
commit | c31d19c2269bf6f440f1a5283020909c2f483c56 (patch) | |
tree | fc2e00569bedeaaed10ae839a51952cdfb486329 | |
parent | 99b48d68f571bb8b584ad0850ec571d831b56be7 (diff) |
autotools croos compilation with mingw32
use glib headers instead of glibc (g_mkdir, g_unlink, g_stat)
NEED MORE WORK. cvs maybe broken now.
-rw-r--r-- | ChangeLog | 30 | ||||
-rw-r--r-- | Makefile.am | 14 | ||||
-rw-r--r-- | acinclude.m4 | 23 | ||||
-rw-r--r-- | configure.in | 110 | ||||
-rwxr-xr-x | cross-configure.sh | 46 | ||||
-rw-r--r-- | po/Makefile.in.in | 182 | ||||
-rw-r--r-- | src/boards/Makefile.am | 100 | ||||
-rw-r--r-- | src/boards/gtans.c | 8 | ||||
-rw-r--r-- | src/boards/gtans_support.c | 13 | ||||
-rw-r--r-- | src/boards/py-mod-gcompris.c | 4 | ||||
-rw-r--r-- | src/gcompris/Makefile.am | 32 | ||||
-rw-r--r-- | src/gcompris/binreloc.c | 3 | ||||
-rw-r--r-- | src/gcompris/board.c | 6 | ||||
-rw-r--r-- | src/gcompris/board.h | 14 | ||||
-rw-r--r-- | src/gcompris/file_selector.c | 2 | ||||
-rw-r--r-- | src/gcompris/gameutil.c | 15 | ||||
-rw-r--r-- | src/gcompris/gcompris.c | 10 | ||||
-rw-r--r-- | src/gcompris/gcompris_db.c | 11 | ||||
-rw-r--r-- | src/gcompris/images_selector.c | 2 | ||||
-rw-r--r-- | src/gcompris/menu.c | 7 | ||||
-rw-r--r-- | src/gcompris/properties.c | 2 | ||||
-rw-r--r-- | src/gcompris/sdlplayer.c | 8 | ||||
-rw-r--r-- | src/gcompris/soundutil.c | 5 |
23 files changed, 404 insertions, 243 deletions
@@ -1,3 +1,33 @@ +2006-10-24 Yves Combe <yves@ycombe.net> + + autotools croos compilation with mingw32 + use glib headers instead of glibc (g_mkdir, g_unlink, g_stat) + NEED MORE WORK. cvs maybe broken now. + + * Makefile.am: + * acinclude.m4: + * configure.in: + * cross-configure.sh: script to run configure. Look variables. + * po/Makefile.in.in: + * src/boards/Makefile.am: + * src/boards/gtans.c: + * src/boards/gtans_support.c: (check_file_exists): + * src/boards/py-mod-gcompris.c: (py_gcompris_child_watch_add), + (py_gcompris_spawn_async): + * src/gcompris/Makefile.am: + * src/gcompris/binreloc.c: (_br_find_exe): + * src/gcompris/board.c: + * src/gcompris/board.h: + * src/gcompris/file_selector.c: (parse_doc): + * src/gcompris/gameutil.c: (gc_util_create_rootdir): + * src/gcompris/gcompris.c: (activation_done), (gc_init): + * src/gcompris/gcompris_db.c: (gc_db_init): + * src/gcompris/images_selector.c: (parse_doc): + * src/gcompris/menu.c: (gc_menu_load): + * src/gcompris/properties.c: (gc_prop_new): + * src/gcompris/sdlplayer.c: (errorv): + * src/gcompris/soundutil.c: + 2006-10-23 Bruno coudoin <bruno.coudoin@free.fr> - more fixes for the windows install procedure diff --git a/Makefile.am b/Makefile.am index 9653892..f2c6a00 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,22 +1,36 @@ ## Process this file with automake to produce Makefile.in +if !BUILD_MINGW32 if TEXINFO DOCS_SUBDIR=docs else DOCS_SUBDIR= endif +else +DOCS_SUBDIR= +endif SUBDIRS = po src boards $(DOCS_SUBDIR) autopackage icondir=$(datadir)/pixmaps icon_DATA = gcompris.png gcompris-edit.png +if BUILD_MINGW32 +Applicationsdir = $(datadir)/ +Applications_in_files = +Applications_DATA = + +Menudir=$(prefix) +Menu_DATA= + +else Applicationsdir = $(datadir)/applications/ Applications_in_files = gcompris.desktop.in gcompris-edit.desktop.in Applications_DATA = gcompris.desktop gcompris-edit.desktop Menudir=$(prefix)/lib/menu Menu_DATA=gcompris +endif @INTLTOOL_DESKTOP_RULE@ diff --git a/acinclude.m4 b/acinclude.m4 index a351e4d..9ea0a8e 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -43,18 +43,25 @@ AC_DEFUN([AM_CHECK_PYTHON_HEADERS], [AC_REQUIRE([AM_PATH_PYTHON]) AC_MSG_CHECKING(for headers required to compile python extensions) dnl deduce PYTHON_CFLAGS -py_prefix=`$PYTHON -c "import sys; print sys.prefix"` -py_exec_prefix=`$PYTHON -c "import sys; print sys.exec_prefix"` -PYTHON_CFLAGS="-I${py_prefix}/include/python${PYTHON_VERSION}" -python_link=`$PYTHON -c "import distutils.sysconfig ; print distutils.sysconfig.get_config_var(\"LIBRARY\")" | sed -e "s%lib\(.*\)\.[[a-zA-Z]]*$%-l\1%"` +if test "x$PYTHON_CFLAGS" = "x" ; then + py_prefix=`$PYTHON -c "import sys; print sys.prefix"` + py_exec_prefix=`$PYTHON -c "import sys; print sys.exec_prefix"` -python_libdir=`$PYTHON -c "import distutils.sysconfig ; print distutils.sysconfig.get_config_var(\"LIBDIR\")"` + PYTHON_CFLAGS="-I${py_prefix}/include/python${PYTHON_VERSION}" -PYTHON_LIBS="-L${python_libdir} ${python_link}" -if test "$py_prefix" != "$py_exec_prefix"; then - PYTHON_CFLAGS="$PYTHON_CFLAGS -I${py_exec_prefix}/include/python${PYTHON_VERSION}" + if test "$py_prefix" != "$py_exec_prefix"; then + PYTHON_CFLAGS="$PYTHON_CFLAGS -I${py_exec_prefix}/include/python${PYTHON_VERSION}" + fi +fi + +if test "x$PYTHON_LIBS" = "x" ; then + python_link=`$PYTHON -c "import distutils.sysconfig ; print distutils.sysconfig.get_config_var(\"LIBRARY\")" | sed -e "s%lib\(.*\)\.[[a-zA-Z]]*$%-l\1%"` + + python_libdir=`$PYTHON -c "import distutils.sysconfig ; print distutils.sysconfig.get_config_var(\"LIBDIR\")"` + + PYTHON_LIBS="-L${python_libdir} ${python_link}" fi AC_SUBST(PYTHON_CFLAGS) diff --git a/configure.in b/configure.in index 861a45f..4f9fe9d 100644 --- a/configure.in +++ b/configure.in @@ -63,10 +63,24 @@ AM_PROG_LIBTOOL dnl Check for SDL SDL_VERSION=1.2.3 -AM_PATH_SDL($SDL_VERSION, + +cflags_previous=$CFLAGS +libs_previous=$LIBS + +if test "x$SDL_CFLAGS" = "x" -o "x$SDL_LIBS" = "x" ; then + AM_PATH_SDL($SDL_VERSION, :, AC_MSG_ERROR([*** SDL version $SDL_VERSION not found!]) -) + ) +else + AC_SUBST(SDL_CFLAGS) + AC_SUBST(SDL_LIBS) + echo "*** Not checking SDL. Using existing SDL_FLAGS and SDL_LIBS ***" +fi + +dnl RESTAURE PREVIOUSLY SET VALUES +CFLAGS=$cflags_previous +LIBS=$libs_previous dnl GNOME2 GNOME_X_CHECKS AM_PATH_GLIB_2_0 @@ -214,27 +228,55 @@ dnl dnl === DIRECTORY DEFINITIONS === dnl -dnl Set PACKAGE_LOCALE_DIR in config.h. -AC_DEFINE_UNQUOTED(PACKAGE_LOCALE_DIR, "${myprefix}/${DATADIRNAME}/locale", [GCompris locale directory]) +if test "x$platform_win32" = "xno" ; then -dnl Set PACKAGE_DATA_DIR -PACKAGE_DATA_DIR="boards" -AC_SUBST(PACKAGE_DATA_DIR) -AC_DEFINE_UNQUOTED(PACKAGE_DATA_DIR, "${myprefix}/${DATADIRNAME}", [GCompris data directory]) + dnl Set PACKAGE_LOCALE_DIR in config.h. + AC_DEFINE_UNQUOTED(PACKAGE_LOCALE_DIR, "${myprefix}/${DATADIRNAME}/locale", [GCompris locale directory]) -dnl Set PACKAGE_HELP_DIR -PACKAGE_HELP_DIR="${myprefix}/${DATADIRNAME}/${PACKAGE}/help" -AC_SUBST(PACKAGE_HELP_DIR) + dnl Set PACKAGE_DATA_DIR + PACKAGE_DATA_DIR="boards" + AC_SUBST(PACKAGE_DATA_DIR) + AC_DEFINE_UNQUOTED(PACKAGE_DATA_DIR, "${myprefix}/${DATADIRNAME}", [GCompris data directory]) -dnl Plugin Directory -my_libdir=`eval echo "${libdir}"` -AC_DEFINE_UNQUOTED(PACKAGE_CLIB_DIR, "${my_libdir}", [Gcompris plugins directory]) -plugindir=$libdir/gcompris -AC_SUBST(plugindir) + dnl Set PACKAGE_HELP_DIR + PACKAGE_HELP_DIR="${myprefix}/${DATADIRNAME}/${PACKAGE}/help" + AC_SUBST(PACKAGE_HELP_DIR) + + dnl Plugin Directory + my_libdir=`eval echo "${libdir}"` + AC_DEFINE_UNQUOTED(PACKAGE_CLIB_DIR, "${my_libdir}", [Gcompris plugins directory]) + plugindir=$libdir/gcompris + AC_SUBST(plugindir) + + dnl Python plugin Directory + PYTHON_PLUGIN_DIR="${myprefix}/${DATADIRNAME}/${PACKAGE}/python" + AC_SUBST(PYTHON_PLUGIN_DIR) + +else + DATADIRNAME="share" -dnl Python plugin Directory -PYTHON_PLUGIN_DIR="${myprefix}/${DATADIRNAME}/${PACKAGE}/python" -AC_SUBST(PYTHON_PLUGIN_DIR) + dnl Set PACKAGE_LOCALE_DIR in config.h for WINDOWS + AC_DEFINE_UNQUOTED(PACKAGE_LOCALE_DIR, "../${DATADIRNAME}/locale", [GCompris locale directory]) + + dnl Set PACKAGE_DATA_DIR + PACKAGE_DATA_DIR="boards" + AC_SUBST(PACKAGE_DATA_DIR) + AC_DEFINE_UNQUOTED(PACKAGE_DATA_DIR, "../${DATADIRNAME}", [GCompris data directory]) + + dnl Set PACKAGE_HELP_DIR + PACKAGE_HELP_DIR="${myprefix}/${DATADIRNAME}/gnome/help/gcompris" + AC_SUBST(PACKAGE_HELP_DIR) + + dnl Plugin Directory + AC_DEFINE_UNQUOTED(PACKAGE_CLIB_DIR, "../${DATADIRNAME}", [Gcompris plugins directory]) + plugindir=${myprefix}/${DATADIRNAME}/gcompris + AC_SUBST(plugindir) + + dnl Python plugin Directory + PYTHON_PLUGIN_DIR="${myprefix}/${DATADIRNAME}/gcompris/python" + AC_SUBST(PYTHON_PLUGIN_DIR) + +fi dnl Test for gnuchess AC_PATH_PROG(GNUCHESS, gnuchess,no,[/usr/bin:/usr/games:/usr/local/bin:$PATH]) @@ -291,6 +333,7 @@ else if test x$python_path != xnot ; then PYTHON=$python_path fi + AM_PATH_PYTHON(2.2) AM_CHECK_PYTHON_HEADERS( [build_python_plugin="yes"], [build_python_plugin="no"] ) @@ -338,10 +381,11 @@ else AC_MSG_WARN([py-build-only: Do not forget to install pygtk, pysqlite2]) fi - if test x$with_sqlite = xyes; then +fi + +if test x$with_sqlite = xyes; then PKG_CHECK_MODULES(SQLITE3, sqlite3,, AC_MSG_ERROR([*** SQLITE3 not found!])) AC_DEFINE([USE_SQLITE], 1,[SQLITE Database, Profiles are enabled]) - fi fi AM_CONDITIONAL(USE_SQLITE, test x$with_sqlite = xyes) @@ -451,7 +495,31 @@ AC_SUBST(VERSION_VOICES_SV) VERSION_VOICES_TR=1.0 AC_SUBST(VERSION_VOICES_TR) +dnl mingw32 specific stuff. +dnl use libgw32c +dnl define __GW32__ and WIN32 + +# Check platform - see if WinMain needed: +AC_MSG_CHECKING([for native Win32]) +case "$host" in + *-*-mingw*) + native_win32=yes + ;; + *) + native_win32=no + ;; +esac +AC_MSG_RESULT([$native_win32]) + +AM_CONDITIONAL(BUILD_MINGW32, test "$native_win32" = yes) +if test "$native_win32" = yes; then + LIBS="$LIBS -luuid -lole32 -lwsock32 -mno-cygwin -mms-bitfields -mwindows" + #CFLAGS="$CFLAGS -D__GW32__ -DWIN32 -I$CROSS_ROOT/include -I$CROSS_ROOT/include/glibc" + #CFLAGS="$CFLAGS -DWIN32" +fi + AC_SUBST(CFLAGS) +AC_SUBST(LIBS) dnl Autoconf output AC_OUTPUT([ gcompris.spec diff --git a/cross-configure.sh b/cross-configure.sh new file mode 100755 index 0000000..61ff0a9 --- /dev/null +++ b/cross-configure.sh @@ -0,0 +1,46 @@ +#!/bin/sh + +CONFIG_SHELL=/bin/sh +export CONFIG_SHELL +PREFIX=/usr/local/cross-tools +TARGET=i586-mingw32msvc +CROSS_DEV=/home/ycombe/Win32/dev2 +PATH="$PATH:$CROSS_DEV/bin" +export PATH +PKG_CONFIG_LIBDIR="$CROSS_DEV/lib/pkgconfig:$CROSS_DEV/Python24/Lib/pkgconfig" +export PKG_CONFIG_LIBDIR +export PKG_CONFIG_PATH +PYTHONHOME="$CROSS_DEV/Python24" +PYTHONPATH="$CROSS_DEV/Python24/Lib" +PYTHON_CFLAGS="-I$CROSS_DEV/Python24/include" +PYTHON_LIBS="-L$CROSS_DEV/Python24/libs -lpython24" +export PYTHONHOME +export PYTHONPATH +export PYTHON_CFLAGS +export PYTHON_LIBS + +SDL_MIXER_CFLAGS="-I$CROSS_DEV/SDL_mixer-1.2.7/include" +SDL_MIXER_LDFLAGS="-L$CROSS_DEV/SDL_mixer-1.2.7/lib" +SDL_CFLAGS="-I$CROSS_DEV/SDL-1.2.11/include" +SDL_LIBS="-L$CROSS_DEV/SDL-1.2.11/lib -lSDLmain -lSDL" +export SDL_CFLAGS +export SDL_LIBS + +if [ -f "$CROSS_DEV/SDL-1.2.11/bin/i386-mingw32msvc-sdl-config" ]; then + SDL_CONFIG="$CROSS_DEV/SDL-1.2.11/bin/i386-mingw32msvc-sdl-config --prefix=$CROSS_DEV/SDL-1.2.11" + export SDL_CONFIG +fi + +cache=cross-config.cache +#CFLAGS="-I$CROSS_DEV/include -idirafter $CROSS_DEV/include/glibc" LDFLAGS=-L$CROSS_DEV/lib LIBS="-lgw32c -luuid -lole32 -lwsock32 -mwindows" sh configure --cache-file="$cache" \ +#CFLAGS="-I$CROSS_DEV/include -I$CROSS_DEV/include/glibc -I$CROSS_DEV/include/glibc -D__GW32__" LDFLAGS=-L$CROSS_DEV/lib LIBS=-lgw32c sh configure --cache-file="$cache" +CFLAGS="-I$CROSS_DEV/include -idirafter $CROSS_DEV/include/glibc $SDL_MIXER_CFLAGS -D__GW32__" LDFLAGS="-L$CROSS_DEV/lib $SDL_MIXER_LDFLAGS" LIBS=-lgw32c sh configure --cache-file="$cache" \ + --target=$TARGET --host=$TARGET --build=i386-linux \ + --enable-py-build-only \ + --with-sdl-prefix="$CROSS_DEV/SDL-1.2.11" \ + --prefix=/media/hda5/GCompris_test \ + --disable-binreloc \ + $* +status=$? +rm -f "$cache" +exit $status diff --git a/po/Makefile.in.in b/po/Makefile.in.in index 1a6961e..d2d4e4c 100644 --- a/po/Makefile.in.in +++ b/po/Makefile.in.in @@ -22,7 +22,6 @@ PACKAGE = @PACKAGE@ VERSION = @VERSION@ SHELL = /bin/sh -@SET_MAKE@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ @@ -34,18 +33,17 @@ exec_prefix = @exec_prefix@ datadir = @datadir@ datarootdir = @datarootdir@ libdir = @libdir@ -localedir = $(libdir)/locale -gnulocaledir = $(datadir)/locale -gettextsrcdir = $(datadir)/glib-2.0/gettext/po +DATADIRNAME = @DATADIRNAME@ +itlocaledir = $(prefix)/$(DATADIRNAME)/locale subdir = po install_sh = @install_sh@ -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +# Automake >= 1.8 provides @mkdir_p@. +# Until it can be supposed, use the safe fallback: +mkdir_p = $(install_sh) -d INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ -CC = @CC@ -GENCAT = @GENCAT@ GMSGFMT = @GMSGFMT@ MSGFMT = @MSGFMT@ XGETTEXT = @XGETTEXT@ @@ -54,32 +52,22 @@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ MSGMERGE = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist GENPOT = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot -DEFS = @DEFS@ -CFLAGS = @CFLAGS@ -CPPFLAGS = @CPPFLAGS@ +ALL_LINGUAS = @ALL_LINGUAS@ -INCLUDES = -I.. -I$(top_srcdir)/intl +PO_LINGUAS=$(shell if test -r $(srcdir)/LINGUAS; then grep -v "^\#" $(srcdir)/LINGUAS; fi) -COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS) +POFILES=$(shell if test -n "$(PO_LINGUAS)"; then LINGUAS="$(PO_LINGUAS)"; else LINGUAS="$(ALL_LINGUAS)"; fi; for lang in $$LINGUAS; do printf "$$lang.po "; done) -SOURCES = -POFILES = @POFILES@ -GMOFILES = @GMOFILES@ -DISTFILES = ChangeLog Makefile.in.in POTFILES.in \ -$(POFILES) $(SOURCES) +DISTFILES = ChangeLog Makefile.in.in POTFILES.in $(POFILES) EXTRA_DISTFILES = POTFILES.skip Makevars LINGUAS POTFILES = \ +#This Gets Replace for some reason -CATALOGS = @CATALOGS@ -CATOBJEXT = @CATOBJEXT@ -INSTOBJEXT = @INSTOBJEXT@ +CATALOGS=$(shell if test -n "$(PO_LINGUAS)"; then LINGUAS="$(PO_LINGUAS)"; else LINGUAS="$(ALL_LINGUAS)"; fi; for lang in $$LINGUAS; do printf "$$lang.gmo "; done) .SUFFIXES: -.SUFFIXES: .c .o .po .pox .gmo .mo .msg .cat - -.c.o: - $(COMPILE) $< +.SUFFIXES: .po .pox .gmo .mo .msg .cat .po.pox: $(MAKE) $(GETTEXT_PACKAGE).pot @@ -94,7 +82,7 @@ INSTOBJEXT = @INSTOBJEXT@ .po.cat: sed -f ../intl/po2msg.sed < $< > $*.msg \ - && rm -f $@ && $(GENCAT) $@ $*.msg + && rm -f $@ && gencat $@ $*.msg all: all-@USE_NLS@ @@ -105,120 +93,98 @@ all-no: $(GETTEXT_PACKAGE).pot: $(POTFILES) $(GENPOT) -install: install-exec install-data -install-exec: +install: install-data install-data: install-data-@USE_NLS@ install-data-no: all install-data-yes: all - if test -n "$(MKINSTALLDIRS)"; then \ - $(MKINSTALLDIRS) $(DESTDIR)$(datadir); \ + $(mkdir_p) $(DESTDIR)$(itlocaledir) + if test -n "$(PO_LINGUAS)"; then \ + linguas="$(PO_LINGUAS)"; \ else \ - $(SHELL) $(top_srcdir)/mkinstalldirs $(DESTDIR)$(datadir); \ - fi - @catalogs='$(CATALOGS)'; \ - for cat in $$catalogs; do \ - cat=`basename $$cat`; \ - case "$$cat" in \ - *.gmo) destdir=$(gnulocaledir);; \ - *) destdir=$(localedir);; \ - esac; \ - lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \ - dir=$(DESTDIR)$$destdir/$$lang/LC_MESSAGES; \ - if test -n "$(MKINSTALLDIRS)"; then \ - $(MKINSTALLDIRS) $$dir; \ + linguas="$(ALL_LINGUAS)"; \ + fi; \ + for lang in $$linguas; do \ + dir=$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES; \ + $(mkdir_p) $$dir; \ + if test -r $$lang.gmo; then \ + $(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ + echo "installing $$lang.gmo as $$dir/$(GETTEXT_PACKAGE).mo"; \ else \ - $(SHELL) $(top_srcdir)/mkinstalldirs $$dir; \ + $(INSTALL_DATA) $(srcdir)/$$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ + echo "installing $(srcdir)/$$lang.gmo as" \ + "$$dir/$(GETTEXT_PACKAGE).mo"; \ fi; \ - if test -r $$cat; then \ - $(INSTALL_DATA) $$cat $$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT); \ - echo "installing $$cat as $$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT)"; \ + if test -r $$lang.gmo.m; then \ + $(INSTALL_DATA) $$lang.gmo.m $$dir/$(GETTEXT_PACKAGE).mo.m; \ + echo "installing $$lang.gmo.m as $$dir/$(GETTEXT_PACKAGE).mo.m"; \ else \ - $(INSTALL_DATA) $(srcdir)/$$cat $$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT); \ - echo "installing $(srcdir)/$$cat as" \ - "$$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT)"; \ - fi; \ - if test -r $$cat.m; then \ - $(INSTALL_DATA) $$cat.m $$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT).m; \ - echo "installing $$cat.m as $$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT).m"; \ - else \ - if test -r $(srcdir)/$$cat.m ; then \ - $(INSTALL_DATA) $(srcdir)/$$cat.m \ - $$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT).m; \ - echo "installing $(srcdir)/$$cat as" \ - "$$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT).m"; \ + if test -r $(srcdir)/$$lang.gmo.m ; then \ + $(INSTALL_DATA) $(srcdir)/$$lang.gmo.m \ + $$dir/$(GETTEXT_PACKAGE).mo.m; \ + echo "installing $(srcdir)/$$lang.gmo.m as" \ + "$$dir/$(GETTEXT_PACKAGE).mo.m"; \ else \ true; \ fi; \ fi; \ done - if test "$(PACKAGE)" = "glib"; then \ - if test -n "$(MKINSTALLDIRS)"; then \ - $(MKINSTALLDIRS) $(DESTDIR)$(gettextsrcdir); \ - else \ - $(SHELL) $(top_srcdir)/mkinstalldirs $(DESTDIR)$(gettextsrcdir); \ - fi; \ - $(INSTALL_DATA) $(srcdir)/Makefile.in.in \ - $(DESTDIR)$(gettextsrcdir)/Makefile.in.in; \ - else \ - : ; \ - fi + +# Empty stubs to satisfy archaic automake needs +dvi info tags TAGS ID: # Define this as empty until I found a useful application. installcheck: uninstall: - catalogs='$(CATALOGS)'; \ - for cat in $$catalogs; do \ - cat=`basename $$cat`; \ - lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \ - rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE)$(INSTOBJEXT); \ - rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE)$(INSTOBJEXT).m; \ - rm -f $(DESTDIR)$(gnulocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE)$(INSTOBJEXT); \ - rm -f $(DESTDIR)$(gnulocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE)$(INSTOBJEXT).m; \ + if test -n "$(PO_LINGUAS)"; then \ + linguas="$(PO_LINGUAS)"; \ + else \ + linguas="$(ALL_LINGUAS)"; \ + fi; \ + for lang in $$linguas; do \ + rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ + rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ done - if test "$(PACKAGE)" = "glib"; then \ - rm -f $(DESTDIR)$(gettextsrcdir)/Makefile.in.in; \ - fi check: all $(GETTEXT_PACKAGE).pot -dvi info tags TAGS ID: - mostlyclean: - rm -f core core.* *.pox $(GETTEXT_PACKAGE).pot *.old.po cat-id-tbl.tmp - rm -fr *.o + rm -f *.pox $(GETTEXT_PACKAGE).pot *.old.po cat-id-tbl.tmp rm -f .intltool-merge-cache clean: mostlyclean distclean: clean - rm -f Makefile Makefile.in POTFILES - rm -f *.mo *.msg *.cat *.cat.m $(GMOFILES) + rm -f Makefile Makefile.in POTFILES stamp-it + rm -f *.mo *.msg *.cat *.cat.m *.gmo maintainer-clean: distclean @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." rm -f Makefile.in.in -distdir = ../$(GETTEXT_PACKAGE)-$(VERSION)/$(subdir) +distdir = ../$(PACKAGE)-$(VERSION)/$(subdir) dist distdir: $(DISTFILES) dists="$(DISTFILES)"; \ extra_dists="$(EXTRA_DISTFILES)"; \ for file in $$extra_dists; do \ - test -f $$file && dists="$$dists $$file"; \ + test -f $(srcdir)/$$file && dists="$$dists $(srcdir)/$$file"; \ done; \ for file in $$dists; do \ - ln $(srcdir)/$$file $(distdir) 2> /dev/null \ - || cp -p $(srcdir)/$$file $(distdir); \ + test -f $$file || file="$(srcdir)/$$file"; \ + ln $$file $(distdir) 2> /dev/null \ + || cp -p $$file $(distdir); \ done update-po: Makefile $(MAKE) $(GETTEXT_PACKAGE).pot tmpdir=`pwd`; \ - catalogs='$(CATALOGS)'; \ - for cat in $$catalogs; do \ - cat=`basename $$cat`; \ - lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \ + if test -n "$(PO_LINGUAS)"; then \ + linguas="$(PO_LINGUAS)"; \ + else \ + linguas="$(ALL_LINGUAS)"; \ + fi; \ + for lang in $$linguas; do \ echo "$$lang:"; \ result="`$(MSGMERGE) -o $$tmpdir/$$lang.new.po $$lang`"; \ if $$result; then \ @@ -234,28 +200,20 @@ update-po: Makefile fi; \ fi; \ else \ - echo "msgmerge for $$cat failed!"; \ + echo "msgmerge for $$lang.gmo failed!"; \ rm -f $$tmpdir/$$lang.new.po; \ fi; \ done -# POTFILES is created from POTFILES.in by stripping comments, empty lines -# and Intltool tags (enclosed in square brackets), and appending a full -# relative path to them -POTFILES: POTFILES.in - ( posrcprefix='$(top_srcdir)/'; \ - rm -f $@-t $@ \ - && (sed -e '/^#/d' \ - -e 's/^[[].*] *//' \ - -e '/^[ ]*$$/d' \ - -e "s@^@ $$posrcprefix@" $(srcdir)/$@.in \ - | sed -e '$$!s/$$/ \\/') > $@-t \ - && chmod a-w $@-t \ - && mv $@-t $@ ) - -Makefile: Makefile.in.in ../config.status POTFILES +Makefile POTFILES: stamp-it + @if test ! -f $@; then \ + rm -f stamp-it; \ + $(MAKE) stamp-it; \ + fi + +stamp-it: Makefile.in.in ../config.status POTFILES.in cd .. \ - && CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \ + && CONFIG_FILES=$(subdir)/Makefile.in CONFIG_HEADERS= CONFIG_LINKS= \ $(SHELL) ./config.status # Tell versions [3.59,3.63) of GNU make not to export all variables. diff --git a/src/boards/Makefile.am b/src/boards/Makefile.am index 0e8e04a..cd27119 100644 --- a/src/boards/Makefile.am +++ b/src/boards/Makefile.am @@ -23,6 +23,15 @@ cairo_ldflags = cairo_cflags = endif +if PLATFORM_WIN32 +shared = -shared +no_undefined = -no-undefined +gc_libs = $(GCOMPRIS_LIBS) +else +shared = +no_undefined = +gc_libs +endif SUBDIRS= $(python_subdir) @@ -80,192 +89,193 @@ INCLUDES = \ $(PYTHON_CFLAGS) \ $(PYGTK_CFLAGS) \ $(sqlite_cflags) \ - $(cairo_cflags) + $(cairo_cflags) \ + -DBOARD_DLL_EXPORT -libdraw_la_LDFLAGS = -module -avoid-version +libdraw_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs) libdraw_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la libdraw_la_SOURCES = draw.c -libawele_la_LDFLAGS = -module -avoid-version +libawele_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs) libawele_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la libawele_la_SOURCES = awele.c awele_alphaBeta.c awele_utils.c awele_utils.h awele.h -libcrane_la_LDFLAGS = -module -avoid-version +libcrane_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs) libcrane_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la libcrane_la_SOURCES = crane.c -libmenu_la_LDFLAGS = -module -avoid-version +libmenu_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs) libmenu_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la libmenu_la_SOURCES = menu2.c -libclickgame_la_LDFLAGS = -module -avoid-version +libclickgame_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs) libclickgame_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la libclickgame_la_SOURCES = clickgame.c -libalgebra_la_LDFLAGS = -module -avoid-version +libalgebra_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs) libalgebra_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la libalgebra_la_SOURCES = algebra.c -libclockgame_la_LDFLAGS = -module -avoid-version +libclockgame_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs) libclockgame_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la libclockgame_la_SOURCES = clockgame.c -libshapegame_la_LDFLAGS = -module -avoid-version +libshapegame_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs) $(XML_LIBS) libshapegame_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la libshapegame_la_SOURCES = shapegame.c -libwordsgame_la_LDFLAGS = -module -avoid-version +libwordsgame_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs) libwordsgame_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la libwordsgame_la_SOURCES = wordsgame.c -libgletters_la_LDFLAGS = -module -avoid-version +libgletters_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs) libgletters_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la libgletters_la_SOURCES = gletters.c -libgtans_la_LDFLAGS = -module -avoid-version +libgtans_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs) libgtans_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la libgtans_la_SOURCES = gtans.c gtans_interface.c gtans_support.c gtans_callbacks.c \ gtans_callbacks.h gtans.h gtans_interface.h gtans_support.h -libplanegame_la_LDFLAGS = -module -avoid-version +libplanegame_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs) libplanegame_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la libplanegame_la_SOURCES = planegame.c -libsmallnumbers_la_LDFLAGS = -module -avoid-version +libsmallnumbers_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs) libsmallnumbers_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la libsmallnumbers_la_SOURCES = smallnumbers.c -libparatrooper_la_LDFLAGS = -module -avoid-version +libparatrooper_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs) libparatrooper_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la libparatrooper_la_SOURCES = paratrooper.c -libreading_la_LDFLAGS = -module -avoid-version +libreading_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs) libreading_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la libreading_la_SOURCES = reading.c -libmemory_la_LDFLAGS = -module -avoid-version +libmemory_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs) libmemory_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la libmemory_la_SOURCES = memory.c -libimageid_la_LDFLAGS = -module -avoid-version +libimageid_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs) $(XML_LIBS) libimageid_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la libimageid_la_SOURCES = imageid.c -libmissingletter_la_LDFLAGS = -module -avoid-version +libmissingletter_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs) $(XML_LIBS) libmissingletter_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la libmissingletter_la_SOURCES = missingletter.c -libclick_on_letter_la_LDFLAGS = -module -avoid-version +libclick_on_letter_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs) libclick_on_letter_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la libclick_on_letter_la_SOURCES = click_on_letter.c -librailroad_la_LDFLAGS = -module -avoid-version +librailroad_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs) librailroad_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la librailroad_la_SOURCES = railroad.c -liberase_la_LDFLAGS = -module -avoid-version +liberase_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs) liberase_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la liberase_la_SOURCES = erase.c -libalgebra_guesscount_la_LDFLAGS = -module -avoid-version +libalgebra_guesscount_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs) libalgebra_guesscount_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la libalgebra_guesscount_la_SOURCES = algebra_guesscount.c -libleftright_la_LDFLAGS = -module -avoid-version +libleftright_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs) libleftright_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la libleftright_la_SOURCES = leftright.c -libcolors_la_LDFLAGS = -module -avoid-version +libcolors_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs) libcolors_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la libcolors_la_SOURCES = colors.c -libtarget_la_LDFLAGS = -module -avoid-version +libtarget_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs) libtarget_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la libtarget_la_SOURCES = target.c -libmagic_hat_la_LDFLAGS = -module -avoid-version +libmagic_hat_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs) libmagic_hat_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la libmagic_hat_la_SOURCES = magic_hat.c -libmaze_la_LDFLAGS = -module -avoid-version +libmaze_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs) libmaze_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la libmaze_la_SOURCES = maze.c -libreversecount_la_LDFLAGS = -module -avoid-version +libreversecount_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs) libreversecount_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la libreversecount_la_SOURCES = reversecount.c -libcanal_lock_la_LDFLAGS = -module -avoid-version +libcanal_lock_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs) libcanal_lock_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la libcanal_lock_la_SOURCES = canal_lock.c -libadvanced_colors_la_LDFLAGS = -module -avoid-version +libadvanced_colors_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs) $(XML_LIBS) libadvanced_colors_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la libadvanced_colors_la_SOURCES = advanced_colors.c -libsuperbrain_la_LDFLAGS = -module -avoid-version +libsuperbrain_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs) libsuperbrain_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la libsuperbrain_la_SOURCES = superbrain.c -libread_colors_la_LDFLAGS = -module -avoid-version +libread_colors_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs) $(XML_LIBS) libread_colors_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la libread_colors_la_SOURCES = read_colors.c -libchess_la_LDFLAGS = -module -avoid-version +libchess_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs) libchess_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la libchess_la_SOURCES = chess.c chess_position.c chess_notation.c \ chess_notation.h chess_position.h chess_makros.h -libenumerate_la_LDFLAGS = -module -avoid-version +libenumerate_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs) libenumerate_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la libenumerate_la_SOURCES = enumerate.c -libmoney_la_LDFLAGS = -module -avoid-version +libmoney_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs) libmoney_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la libmoney_la_SOURCES = money.c money_widget.c money_widget.h -libtraffic_la_LDFLAGS = -module -avoid-version +libtraffic_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs) libtraffic_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la libtraffic_la_SOURCES = traffic.c traffic.h -libmachpuzzle_la_LDFLAGS = -module -avoid-version +libmachpuzzle_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs) libmachpuzzle_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la libmachpuzzle_la_SOURCES = machpuzzle.c -libsubmarine_la_LDFLAGS = -module -avoid-version +libsubmarine_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs) libsubmarine_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la libsubmarine_la_SOURCES = submarine.c -libhanoi_la_LDFLAGS = -module -avoid-version +libhanoi_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs) libhanoi_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la libhanoi_la_SOURCES = hanoi.c -libhanoi_real_la_LDFLAGS = -module -avoid-version +libhanoi_real_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs) libhanoi_real_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la libhanoi_real_la_SOURCES = hanoi_real.c -libfifteen_la_LDFLAGS = -module -avoid-version +libfifteen_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs) libfifteen_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la libfifteen_la_SOURCES = fifteen.c -libwordprocessor_la_LDFLAGS = -module -avoid-version +libwordprocessor_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs) libwordprocessor_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la libwordprocessor_la_SOURCES = wordprocessor.c -libpython_la_LDFLAGS = -export-dynamic -module -avoid-version $(PYTHON_LIBS) +libpython_la_LDFLAGS = -export-dynamic $(shared) $(no_undefined) -module -avoid-version $(gc_libs) $(PYTHON_LIBS) libpython_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la -libpython_la_CFLAGS = -fno-strict-aliasing +libpython_la_CFLAGS = -fno-strict-aliasing $(PYGTK_CFLAGS) libpython_la_SOURCES = python.c \ canvas.c canvasmodule.c \ py-gcompris-board.c py-gcompris-board.h \ diff --git a/src/boards/gtans.c b/src/boards/gtans.c index 03bed7b..d57ba17 100644 --- a/src/boards/gtans.c +++ b/src/boards/gtans.c @@ -20,20 +20,12 @@ #include "gcompris/gcompris.h" -#include <math.h> -#include <stdio.h> #include <string.h> /* Added by Florian Ernst <florian_ernst@gmx.net> for lines 193 and 194 */ //#include <string.h> /* End of added section */ -/* uniquement pour mkdir() */ -#include <sys/stat.h> -#include <sys/types.h> -#include <fcntl.h> -#include <unistd.h> - #include "gtans.h" #include "gtans_interface.h" #include "gtans_support.h" diff --git a/src/boards/gtans_support.c b/src/boards/gtans_support.c index 2590ced..9891b88 100644 --- a/src/boards/gtans_support.c +++ b/src/boards/gtans_support.c @@ -1,17 +1,14 @@ -/* - * DO NOT EDIT THIS FILE - it is generated by Glade. - */ + + #ifdef HAVE_CONFIG_H # include <config.h> #endif -#include <sys/types.h> -#include <sys/stat.h> -#include <unistd.h> -#include <string.h> +#include "strings.h" #include "gcompris/gcompris.h" +#include <glib/gstdio.h> #include "gtans_support.h" @@ -150,7 +147,7 @@ check_file_exists (const gchar *directory, strcat (full_filename, G_DIR_SEPARATOR_S); strcat (full_filename, filename); - status = stat (full_filename, &s); + status = g_stat (full_filename, &s); if (status == 0 && S_ISREG (s.st_mode)) return full_filename; g_free (full_filename); diff --git a/src/boards/py-mod-gcompris.c b/src/boards/py-mod-gcompris.c index 12c1bd3..c5ae83c 100644 --- a/src/boards/py-mod-gcompris.c +++ b/src/boards/py-mod-gcompris.c @@ -671,7 +671,7 @@ py_gcompris_child_watch_add(PyObject *unused, PyObject *args, PyObject *kwargs) static char *kwlist[] = { "pid", "function", "data", "priority", NULL }; guint id; gint priority = G_PRIORITY_DEFAULT; - int pid; + GPid pid; PyObject *func, *user_data = NULL; struct _PyGChildData *child_data; @@ -738,7 +738,7 @@ py_gcompris_spawn_async(PyObject *unused, PyObject *args, PyObject *kwargs) gint *standard_input, *standard_output, *standard_error; struct _PyGChildSetupData *callback_data = NULL; GError *error = NULL; - GPid child_pid = -1; + GPid child_pid = (GPid) -1; int len, i; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O|OsiOOOOO:gcompris.spawn_async", diff --git a/src/gcompris/Makefile.am b/src/gcompris/Makefile.am index 6fafa87..f796882 100644 --- a/src/gcompris/Makefile.am +++ b/src/gcompris/Makefile.am @@ -27,6 +27,25 @@ endif #cairo_c = #endif +if PLATFORM_WIN32 +no_undefined = -no-undefined +shared = -shared +else +no_undefined = +shared = +endif + +if OS_WIN32 +install-libtool-import-lib: + $(INSTALL) .libs/libgcompris-1.dll.a $(DESTDIR)$(libdir) + +uninstall-libtool-import-lib: + -rm $(DESTDIR)$(libdir)/libgcompris-1.dll.a +else +install-libtool-import-lib: +uninstall-libtool-import-lib: +endif + bin_PROGRAMS = gcompris INCLUDES = \ @@ -45,26 +64,25 @@ gcompris_SOURCES = \ main.c gcompris_LDFLAGS = \ - -export-dynamic $(python_ldflags) $(SDL_LIBS) $(cairo_ldflags) + -export-dynamic $(python_ldflags) $(cairo_ldflags) gcompris_LDADD = \ + $(top_builddir)/src/gcompris/libgcompris-1.la \ $(LIBICONV) \ $(INTLLIBS) \ $(python_ldadd) \ - $(top_builddir)/src/gcompris/libgcompris-1.la \ $(LIBPOPT) - # # Gcompris library # lib_LTLIBRARIES = libgcompris-1.la libgcompris_1_la_LIBADD = \ - $(GCOMPRIS_LIBS) $(sqlite_ldadd) $(XML_LIBS) $(GNET_LIBS) + $(GCOMPRIS_LIBS) $(sqlite_ldadd) $(XML_LIBS) $(GNET_LIBS) $(SDL_LIBS) -libgcompris_1_la_LDFLAGS = $(no_undefined) \ +libgcompris_1_la_LDFLAGS = $(shared) $(no_undefined) \ -version-info $(LIBGCOMPRIS_CURRENT):$(LIBGCOMPRIS_REVISION):$(LIBGCOMPRIS_AGE) libgcomprisincludedir = $(includedir)/libgcompris-1.0/libgcompris @@ -164,5 +182,9 @@ dist-hook: rm -f $(distdir)/$$file ; \ done +install-data-local: install-libtool-import-lib + +uninstall-local: uninstall-libtool-import-lib + clean-local: rm -f $(marshal_sources) diff --git a/src/gcompris/binreloc.c b/src/gcompris/binreloc.c index 6b92634..03ffbc7 100644 --- a/src/gcompris/binreloc.c +++ b/src/gcompris/binreloc.c @@ -17,7 +17,6 @@ #ifdef ENABLE_BINRELOC #include <sys/types.h> - #include <sys/stat.h> #include <unistd.h> #endif /* ENABLE_BINRELOC */ #include <glib/gstdio.h> @@ -86,7 +85,7 @@ _br_find_exe (GbrInitError *error) /* Check whether the symlink's target is also a symlink. * We want to get the final target. */ - i = stat (path, &stat_buf); + i = g_stat (path, &stat_buf); if (i == -1) { /* Error. */ g_free (path2); diff --git a/src/gcompris/board.c b/src/gcompris/board.c index 67193f2..ed300e3 100644 --- a/src/gcompris/board.c +++ b/src/gcompris/board.c @@ -28,7 +28,7 @@ static struct BoardPluginData *bp_data; static gboolean get_board_playing(void); -#ifdef WIN32 +#ifdef STATIC_MODULE extern gchar *keycode[]; extern BoardPlugin * get_advanced_colors_bplugin_info(); extern BoardPlugin * get_algebra_bplugin_info(); @@ -79,7 +79,7 @@ static BoardPlugin *static_boards[MAX_NUMBER_OF_BOARDS]; #endif -#ifdef WIN32 +#ifdef STATIC_MODULE int gc_board_number_in_demo; void gc_board_init(void) { @@ -203,7 +203,7 @@ void gc_board_set_current(GcomprisBoard * gcomprisBoard) bp_data->current_gcompris_board = gcomprisBoard; } -#ifdef WIN32 +#ifdef STATIC_MODULE gboolean gc_board_check_file(GcomprisBoard *gcomprisBoard) { diff --git a/src/gcompris/board.h b/src/gcompris/board.h index cec22ac..8a81f89 100644 --- a/src/gcompris/board.h +++ b/src/gcompris/board.h @@ -23,9 +23,9 @@ /** * Handles plugins initialization * - * WIN32 = Static module, else it's dynamic + * STATIC_MODULE = Static module, else it's dynamic */ -#if defined WIN32 +#if defined STATIC_MODULE #define GET_BPLUGIN_INFO(pluginname) \ BoardPlugin \ *get_##pluginname##_bplugin_info(void) \ @@ -34,8 +34,16 @@ } \ BoardPlugin * _##pluginname##_menu_bp = &menu_bp; #else + +#ifdef BOARD_DLL_EXPORT +// the dll exports +# define EXPORT __declspec(dllexport) +#else +# define EXPORT +#endif + #define GET_BPLUGIN_INFO(pluginname) \ - BoardPlugin \ +EXPORT BoardPlugin \ *get_bplugin_info(void) \ { \ return &menu_bp; \ diff --git a/src/gcompris/file_selector.c b/src/gcompris/file_selector.c index b6aaf2b..f8c577a 100644 --- a/src/gcompris/file_selector.c +++ b/src/gcompris/file_selector.c @@ -847,7 +847,7 @@ static void parse_doc(xmlDocPtr doc) { cur = xmlDocGetRootElement(doc); if (cur == NULL) { - fprintf(stderr,"empty document\n"); + g_warning("empty document\n"); xmlFreeDoc(doc); return; } diff --git a/src/gcompris/gameutil.c b/src/gcompris/gameutil.c index 41792fb..337be1e 100644 --- a/src/gcompris/gameutil.c +++ b/src/gcompris/gameutil.c @@ -23,10 +23,8 @@ #include <string.h> #include <time.h> -/* for gc_util_create_rootdir */ -#include <unistd.h> -#include <sys/types.h> -#include <sys/stat.h> +/* g_mkdir */ +#include <glib/gstdio.h> /* libxml includes */ #include <libxml/parserInternals.h> @@ -630,16 +628,13 @@ gc_util_create_rootdir (gchar *rootdir) /* Case where ~/.gcompris already exist as a file. We remove it */ if(g_file_test(rootdir, G_FILE_TEST_IS_REGULAR)) { - unlink(rootdir); + g_unlink(rootdir); } if(g_file_test(rootdir, G_FILE_TEST_IS_DIR)) { return 0; } -#if defined WIN32 - return(mkdir(rootdir)); -#else - return(mkdir(rootdir, 0755)); -#endif + return(g_mkdir(rootdir, 0755)); + } diff --git a/src/gcompris/gcompris.c b/src/gcompris/gcompris.c index 609bd92..a1f9e55 100644 --- a/src/gcompris/gcompris.c +++ b/src/gcompris/gcompris.c @@ -60,7 +60,7 @@ void gc_terminate(int signum); /* * For the Activation dialog */ -#ifdef WIN32 +#ifdef STATIC_MODULE /* List of keycodes */ gchar *keycode[] = { @@ -798,7 +798,7 @@ static void setup_window () } -#ifdef WIN32 +#ifdef STATIC_MODULE extern int gc_board_number_in_demo; /** Display the activation dialog for the windows version * @@ -903,7 +903,7 @@ activation_done() (strcmp((char *)gtk_entry_get_text(GTK_ENTRY(widget_activation_entry)), "GOOD") != 0) && (strcmp((char *)gtk_entry_get_text(GTK_ENTRY(widget_activation_entry)), "WRONG") != 0)) { - activation_enter_callback(widget_activation_entry, NULL); + activation_enter_callback(GTK_WIDGET(widget_activation_entry), NULL); } gc_board_play(properties->menu_board); @@ -1633,10 +1633,10 @@ gc_init (int argc, char *argv[]) if(popt_web_only) { g_free(properties->package_data_dir); - properties->package_data_dir = g_strdup(""); + properties->package_data_dir = ""; g_free(properties->system_icon_dir); - properties->system_icon_dir = g_strdup(""); + properties->system_icon_dir = ""; } if (popt_server){ diff --git a/src/gcompris/gcompris_db.c b/src/gcompris/gcompris_db.c index c7f1207..31c21aa 100644 --- a/src/gcompris/gcompris_db.c +++ b/src/gcompris/gcompris_db.c @@ -20,8 +20,7 @@ #include <string.h> #include "gcompris.h" -#include <sys/stat.h> - +#include <glib/gstdio.h> #ifdef USE_SQLITE static sqlite3 *gcompris_db=NULL; @@ -127,12 +126,17 @@ int gc_db_init() if (!g_file_test(properties->database, G_FILE_TEST_EXISTS)) creation = TRUE; + +#ifndef WIN32 + /* this stat() does not work on WinXP */ + /* NEEDS CHECKING IN WINXP */ + else { /* we have to check this file is not empty, because bug in administration */ struct stat buf; - if (stat(properties->database, &buf)!=0) + if (g_stat(properties->database, &buf)!=0) g_error("Can't stat %s", properties->database); /* if size of file is null, we recreate the tables */ @@ -141,6 +145,7 @@ int gc_db_init() g_warning("Database file is empty! Trying to create table..."); } } +#endif rc = sqlite3_open(properties->database, &gcompris_db); if( rc ){ diff --git a/src/gcompris/images_selector.c b/src/gcompris/images_selector.c index 0bbd9ae..32e27d0 100644 --- a/src/gcompris/images_selector.c +++ b/src/gcompris/images_selector.c @@ -784,7 +784,7 @@ parse_doc(xmlDocPtr doc) { cur = xmlDocGetRootElement(doc); if (cur == NULL) { - fprintf(stderr,"empty document\n"); + g_warning("empty document\n"); xmlFreeDoc(doc); return; } diff --git a/src/gcompris/menu.c b/src/gcompris/menu.c index da1d4cf..4eb08e0 100644 --- a/src/gcompris/menu.c +++ b/src/gcompris/menu.c @@ -633,8 +633,13 @@ void gc_menu_load() int db = (gc_profile_get_current() ? TRUE: FALSE); properties->reread_menu = TRUE; gc_menu_load_dir(properties->package_data_dir, db); + + /* use GTimeVal for portability */ GDate *today = g_date_new(); - g_date_set_time (today, time (NULL)); + GTimeVal now; + + g_get_current_time (&now); + g_date_set_time_val (today, &now); gchar date[11]; g_date_strftime (date, 11, "%F", today); diff --git a/src/gcompris/properties.c b/src/gcompris/properties.c index 5a8d2d6..f4953b5 100644 --- a/src/gcompris/properties.c +++ b/src/gcompris/properties.c @@ -128,7 +128,7 @@ gc_prop_new () GScanner *scanner; int filefd; gchar *full_rootdir; - const gchar *locale; + //const gchar *locale; gchar *user_dir; tmp = (GcomprisProperties *) malloc (sizeof (GcomprisProperties)); diff --git a/src/gcompris/sdlplayer.c b/src/gcompris/sdlplayer.c index f17b56d..87b20e8 100644 --- a/src/gcompris/sdlplayer.c +++ b/src/gcompris/sdlplayer.c @@ -46,15 +46,15 @@ static gboolean sound_paused = FALSE; void errorv(char *str, va_list ap) { - vfprintf(stderr,str,ap); + //vfprintf(stderr,str,ap); if(strcmp(Mix_GetError(), "Unrecognized file type (not VOC)")==0) { - fprintf(stderr,"*** You need a version of \"SDL_mixer\" with OGG Vorbis supported ***\n"); + g_warning("*** You need a version of \"SDL_mixer\" with OGG Vorbis supported ***\n"); exit(EXIT_FAILURE); } - fprintf(stderr,": %s.\n", Mix_GetError()); - fprintf(stderr,": %s.\n", SDL_GetError()); + g_warning(": %s.\n", Mix_GetError()); + g_warning(": %s.\n", SDL_GetError()); } diff --git a/src/gcompris/soundutil.c b/src/gcompris/soundutil.c index 9892e03..44274b6 100644 --- a/src/gcompris/soundutil.c +++ b/src/gcompris/soundutil.c @@ -20,6 +20,11 @@ #include "string.h" #include <unistd.h> /* sleep */ +/* sleep missing in mingw headers */ +#ifdef __GW32__ +extern unsigned int sleep (unsigned int __seconds); +#endif + #ifdef __APPLE__ # include <sys/types.h> #endif |