Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBruno Coudoin <bruno.coudoin@free.fr>2009-07-05 14:44:25 (GMT)
committer Bruno Coudoin <bruno.coudoin@free.fr>2009-07-05 14:44:25 (GMT)
commitab72b78a577be27d84cbafe18153ecbf1dc3f4d3 (patch)
tree1751d338548986b7d0913cf8daaffa89d634950b
parent6396aed48fd988759f9c80ea48184660468602a1 (diff)
updated the windows compilation chain to work against the latest
version of GTK.
-rw-r--r--Makefile.mingw20
-rw-r--r--global_win32.mak32
-rw-r--r--src/boards/Makefile.mingw7
-rw-r--r--src/gcompris/Makefile.mingw6
-rw-r--r--src/libart_lgpl/Makefile.mingw208
-rw-r--r--src/libgnomecanvas/Makefile.mingw175
6 files changed, 433 insertions, 15 deletions
diff --git a/Makefile.mingw b/Makefile.mingw
index 8dd05ad..d95649e 100644
--- a/Makefile.mingw
+++ b/Makefile.mingw
@@ -21,15 +21,15 @@ NEEDED_DLLS = $(GNUCAP_TOP)/src/MSW/gnucap.exe \
$(GNUCHESS_TOP)/bin/gnuchess.exe \
$(GNUCHESS_TOP)/bin/libreadline.dll \
$(GNUCHESS_TOP)/bin/pthreadGC2.dll \
- $(GTK_TOP)/bin/freetype6.dll \
+ $(FREETYPE_TOP)/bin/freetype6.dll \
$(GTK_TOP)/bin/gspawn-win32-helper.exe \
- $(GTK_TOP)/bin/iconv.dll \
+ $(ICONV_TOP)/bin/iconv.dll \
$(GTK_TOP)/bin/intl.dll \
$(GTK_TOP)/bin/libexpat.dll \
$(GTK_TOP)/bin/jpeg62.dll \
$(GTK_TOP)/bin/libatk-1.0-0.dll \
$(GTK_TOP)/bin/libcairo-2.dll \
- $(GTK_TOP)/bin/libfontconfig-1.dll \
+ $(FONTCONFIG_TOP)/bin/libfontconfig-1.dll \
$(GTK_TOP)/bin/libgdk-win32-2.0-0.dll \
$(GTK_TOP)/bin/libgdk_pixbuf-2.0-0.dll \
$(GTK_TOP)/bin/libglib-2.0-0.dll \
@@ -41,19 +41,20 @@ NEEDED_DLLS = $(GNUCAP_TOP)/src/MSW/gnucap.exe \
$(GTK_TOP)/bin/libpangocairo-1.0-0.dll \
$(GTK_TOP)/bin/libpangoft2-1.0-0.dll \
$(GTK_TOP)/bin/libpangowin32-1.0-0.dll \
- $(GTK_TOP)/bin/libpng13.dll \
+ $(GTK_TOP)/bin/libpng12-0.dll \
$(GTK_TOP)/bin/zlib1.dll \
+ $(GTK_TOP)/bin/libgio-2.0-0.dll \
$(LIBXML2_TOP)/bin/libxml2.dll \
$(PYTHON_TOP)/python24.dll \
$(SDL_TOP)/bin/SDL.dll \
$(SDL_TOP)/bin/SDL_mixer.dll \
$(SQLITE_TOP)/sqlite3.dll \
- /c/WINDOWS/system32/msvcr71.dll
+ $(MSVCR71_DLL)
NEEDED_FILES = README \
README.mingw \
COPYING \
- Changelog
+ ChangeLog
##
##
@@ -80,7 +81,7 @@ install: all
rm -f $(GCOMPRIS_INSTALL_DIR)/share/gcompris/python/admin/Makefile*
-# Copy mandratory files for the package in the package directory
+# Copy mandatory files for the package in the package directory
prepack:
mkdir -p $(GCOMPRIS_INSTALL_DIR)/GTK
cp $(NEEDED_DLLS) $(GCOMPRIS_INSTALL_DIR)
@@ -89,9 +90,10 @@ prepack:
mkdir -p $(GCOMPRIS_INSTALL_DIR)/GTK/share
cp -r $(GTK_TOP)/share/themes $(GCOMPRIS_INSTALL_DIR)/share
mkdir -p $(GCOMPRIS_INSTALL_DIR)/lib
- cp -r $(GTK_TOP)/lib/locale $(GCOMPRIS_INSTALL_DIR)/lib
+ cp -r $(GTK_TOP)/share/locale $(GCOMPRIS_INSTALL_DIR)/lib
cp -r $(GTK_TOP)/lib/gtk-2.0 $(GCOMPRIS_INSTALL_DIR)/lib
+# THIS STAGE MUST BE DONE ON WINDOWS
python:
cp $(PYTHON_TOP)/DLLs/tcl84.dll $(GCOMPRIS_INSTALL_DIR)
cp $(PYTHON_TOP)/DLLs/tk84.dll $(GCOMPRIS_INSTALL_DIR)
@@ -107,6 +109,8 @@ installer:
clean:
$(MAKE) -C $(GCOMPRIS_SRC) -f Makefile.mingw clean
$(MAKE) -C $(GCOMPRIS_BOARDS) -f Makefile.mingw clean
+ $(MAKE) -C ./src/libart_lgpl -f Makefile.mingw clean
+ $(MAKE) -C ./src/libgnomecanvas -f Makefile.mingw clean
rm -rf config.h
rm -rf gcompris*.exe
diff --git a/global_win32.mak b/global_win32.mak
index d2b6938..71c9bec 100644
--- a/global_win32.mak
+++ b/global_win32.mak
@@ -5,7 +5,24 @@
# wide definitions.
#
-CC = gcc.exe
+OS:=$(OS)
+
+ifeq ($(OS),)
+ CROSSCOMPILER=i586-mingw32msvc-
+else
+ CROSSCOMPILER=
+endif
+
+CC = $(CROSSCOMPILER)gcc
+AR = $(CROSSCOMPILER)ar
+RANLIB = $(CROSSCOMPILER)ranlib
+WINDRES = $(CROSSCOMPILER)windres
+
+ifneq ($(CROSSCOMPILER),)
+ GLIB_GENMARSHAL := glib-genmarshal
+else
+ GLIB_GENMARSHAL := $(GTK_TOP)/bin/glib-genmarshal.exe
+endif
# Use -g flag when building debug version of Gcompris (including plugins).
# Use -fnative-struct instead of -mms-bitfields when using mingw 1.1
@@ -22,7 +39,16 @@ DLL_LD_FLAGS += -Wl,--enable-auto-image-base
DEFINES += -DHAVE_CONFIG_H
-LOCAL_PREFIX:=/home/bruno/Projets/gcompris/windows
+ifneq ($(CROSSCOMPILER),)
+ # CROSS COMPILATION
+ LOCAL_PREFIX:=/home/bruno/Projets/gcompris/windows
+ MSVCR71_DLL:=$(LOCAL_PREFIX)/msvcr71.dll
+else
+ # MSYS CASE
+ LOCAL_PREFIX:=
+ MSVCR71_DLL:=/c/WINDOWS/system32/msvcr71.dll
+endif
+
GTK_TOP := $(LOCAL_PREFIX)/gtk
GLIB_TOP := $(LOCAL_PREFIX)/gtk
CAIRO_TOP := $(LOCAL_PREFIX)/gtk
@@ -33,3 +59,5 @@ PYTHON_TOP := $(LOCAL_PREFIX)/Python24
GNUCAP_TOP := $(LOCAL_PREFIX)/gnucap
SQLITE_TOP := $(LOCAL_PREFIX)/sqlite
FONTCONFIG_TOP := $(LOCAL_PREFIX)/fontconfig
+ICONV_TOP := $(LOCAL_PREFIX)/iconv
+FREETYPE_TOP := $(LOCAL_PREFIX)/freetype \ No newline at end of file
diff --git a/src/boards/Makefile.mingw b/src/boards/Makefile.mingw
index 44d18de..ffa65cd 100644
--- a/src/boards/Makefile.mingw
+++ b/src/boards/Makefile.mingw
@@ -54,7 +54,8 @@ INCLUDE_PATHS += -I$(GCOMPRIS_PLUGINS) \
-I$(CAIRO_TOP)/include/cairo \
-I$(PYTHON_TOP)/include \
-I$(PYTHON_TOP)/include/pygtk-2.0 \
- -I$(SQLITE_TOP)
+ -I$(SQLITE_TOP) \
+ -I$(ICONV_TOP)/include
@@ -133,7 +134,7 @@ BOARDS_C_SRC = \
algebra_guesscount.c \
awele.c awele_utils.c awele_alphaBeta.c \
canal_lock.c \
- chess.c chess_position.c chess_notation.c \
+ chess_windows.c chess_position.c chess_notation.c \
click_on_letter.c \
clickgame.c \
clockgame.c \
@@ -198,7 +199,7 @@ libboards: \
libboards.a: $(BOARDS_OBJECTS)
-rm -f libboards.a
$(AR) cru libboards.a $(BOARDS_OBJECTS)
- ranlib libboards.a
+ $(RANLIB) libboards.a
##
## CLEAN RULES
diff --git a/src/gcompris/Makefile.mingw b/src/gcompris/Makefile.mingw
index b21ebda..23c2c30 100644
--- a/src/gcompris/Makefile.mingw
+++ b/src/gcompris/Makefile.mingw
@@ -59,7 +59,8 @@ INCLUDE_PATHS += -I$(INCLUDE_DIR) \
-I$(CAIRO_TOP)/include/cairo \
-I$(SQLITE_TOP) \
-I$(GCOMPRIS_TOP) \
- -I$(GCOMPRIS_TOP)/src/boards
+ -I$(GCOMPRIS_TOP)/src/boards \
+ -I$(ICONV_TOP)/include
LIB_PATHS = -L$(GTK_TOP)/lib \
@@ -69,6 +70,7 @@ LIB_PATHS = -L$(GTK_TOP)/lib \
-L$(CANVAS_TOP) \
-L$(PYTHON_TOP)/libs \
-L$(SQLITE_TOP) \
+ -L$(ICONV_TOP)/lib \
-L$(GCOMPRIS_TOP)/src/gcompris
@@ -155,7 +157,7 @@ EXE_LIBS = ../boards/libboards.a \
# How to make an RC file
%.o: %.rc
- windres -i $< -o $@
+ $(WINDRES) -i $< -o $@
##
## TARGET DEFINITIONS
diff --git a/src/libart_lgpl/Makefile.mingw b/src/libart_lgpl/Makefile.mingw
new file mode 100644
index 0000000..47b413e
--- /dev/null
+++ b/src/libart_lgpl/Makefile.mingw
@@ -0,0 +1,208 @@
+#
+# Makefile.mingw
+#
+# Description: Makefile for win32 (mingw) version of GCompris
+#
+
+#
+# PATHS
+#
+
+INCLUDE_DIR := .
+GCOMPRIS_TOP := ../..
+
+##
+## VARIABLE DEFINITIONS
+##
+
+# Compiler and Linker Options
+
+CFLAGS =
+
+DEFINES =
+
+.SUFFIXES:
+.SUFFIXES: .c .a
+
+LDFLAGS = -mwindows -mno-cygwin -mms-bitfields
+
+##
+## INCLUDE MAKEFILES
+##
+
+include $(GCOMPRIS_TOP)/global_win32.mak
+
+##
+## INCLUDE PATHS
+##
+
+INCLUDE_PATHS += -I$(GTK_TOP)/include \
+ -I$(GTK_TOP)/include/gtk-2.0 \
+ -I$(GLIB_TOP)/include/glib-2.0 \
+ -I$(GTK_TOP)/include/pango-1.0 \
+ -I$(GTK_TOP)/include/atk-1.0 \
+ -I$(GLIB_TOP)/lib/glib-2.0/include \
+ -I$(GTK_TOP)/lib/gtk-2.0/include \
+ -I$(LIBART_TOP) \
+ -I$(GTK_TOP)/include/freetype2 \
+ -I$(LIBXML2_TOP)/include \
+ -I$(GCOMPRIS_TOP) \
+ -I$(GCOMPRIS_TOP)/src \
+ -I$(CAIRO_TOP)/include/cairo
+
+LIB_PATHS = -L$(GTK_TOP)/lib
+
+##
+## LIBRARIES
+##
+
+LIBS = -lgtk-win32-2.0 \
+ -lglib-2.0 \
+ -lgdk-win32-2.0 \
+ -lgobject-2.0 \
+ -lgmodule-2.0 \
+ -lgdk_pixbuf-2.0 \
+ -lpango-1.0 \
+ -lpangoft2-1.0 \
+ -latk-1.0 \
+ -lpangowin32-1.0 \
+ -lgdi32 -lgthread-2.0 \
+ -lintl \
+ -lws2_32
+
+##
+## TARGET DEFINITIONS
+##
+
+.PHONY: all clean
+
+all: art_config.h libart_lgpl
+
+install:
+
+gen_art_config.exe: gen_art_config.c
+ $(CC) $(LDFLAGS) gen_art_config.c -I$(GCOMPRIS_TOP) $(LIB_PATHS) -o gen_art_config.exe
+
+art_config.h: gen_art_config.exe
+ ./gen_art_config.exe > art_config.h
+
+libart_lgpl_2_a_headers = \
+ art_affine.h \
+ art_alphagamma.h \
+ art_bpath.h \
+ art_config.h \
+ art_filterlevel.h \
+ art_gray_svp.h \
+ art_misc.h \
+ art_pathcode.h \
+ art_pixbuf.h \
+ art_point.h \
+ art_rect.h \
+ art_rect_svp.h \
+ art_rect_uta.h \
+ art_render.h \
+ art_render_gradient.h \
+ art_render_mask.h \
+ art_render_svp.h \
+ art_rgb.h \
+ art_rgb_affine.h \
+ art_rgb_bitmap_affine.h \
+ art_rgb_pixbuf_affine.h \
+ art_rgb_rgba_affine.h \
+ art_rgb_a_affine.h \
+ art_rgb_svp.h \
+ art_rgba.h \
+ art_svp.h \
+ art_svp_intersect.h \
+ art_svp_ops.h \
+ art_svp_point.h \
+ art_svp_render_aa.h \
+ art_svp_vpath.h \
+ art_svp_vpath_stroke.h \
+ art_svp_wind.h \
+ art_uta.h \
+ art_uta_ops.h \
+ art_uta_rect.h \
+ art_uta_vpath.h \
+ art_uta_svp.h \
+ art_vpath.h \
+ art_vpath_bpath.h \
+ art_vpath_dash.h \
+ art_vpath_svp.h \
+ libart.h \
+ libart-features.h
+
+libart_lgpl_2_a_SOURCES = \
+ art_affine.c \
+ art_alphagamma.c \
+ art_bpath.c \
+ art_gray_svp.c \
+ art_misc.c \
+ art_pixbuf.c \
+ art_rect.c \
+ art_rect_svp.c \
+ art_rect_uta.c \
+ art_render.c \
+ art_render_gradient.c \
+ art_render_mask.c \
+ art_render_svp.c \
+ art_rgb.c \
+ art_rgb_affine.c \
+ art_rgb_affine_private.c \
+ art_rgb_affine_private.h \
+ art_rgb_bitmap_affine.c \
+ art_rgb_pixbuf_affine.c \
+ art_rgb_rgba_affine.c \
+ art_rgb_a_affine.c \
+ art_rgba.c \
+ art_rgb_svp.c \
+ art_svp.c \
+ art_svp_intersect.c \
+ art_svp_ops.c \
+ art_svp_point.c \
+ art_svp_render_aa.c \
+ art_svp_vpath.c \
+ art_svp_vpath_stroke.c \
+ art_svp_wind.c \
+ art_uta.c \
+ art_uta_ops.c \
+ art_uta_rect.c \
+ art_uta_vpath.c \
+ art_uta_svp.c \
+ art_vpath.c \
+ art_vpath_bpath.c \
+ art_vpath_dash.c \
+ art_vpath_svp.c \
+ libart-features.c
+
+OBJECTS = $(libart_lgpl_2_a_SOURCES:%.c=%.o)
+
+#
+# BUILD Boards staticlibrary
+#
+
+# How to make a C file
+%.o: %.c
+ $(CC) $(CFLAGS) $(INCLUDE_PATHS) $(DEFINES) -c $< -o $@
+
+.c.o:
+ $(CC) $(CFLAGS) $(DEFINES) $(INCLUDE_PATHS) -o $@.o -c $<
+ $(CC) -shared $@.o $(LIB_PATHS) $(LIBS) $(DLL_LD_FLAGS) -o $@
+
+libart_lgpl: \
+ libart_lgpl.a
+
+libart_lgpl.a: $(OBJECTS)
+ -rm -f libart_lgpl.a
+ $(AR) cru libart_lgpl.a $(OBJECTS)
+ $(RANLIB) libart_lgpl.a
+
+##
+## CLEAN RULES
+##
+
+clean:
+ rm -rf *.o
+ rm -rf *.a
+
+
diff --git a/src/libgnomecanvas/Makefile.mingw b/src/libgnomecanvas/Makefile.mingw
new file mode 100644
index 0000000..e0d9055
--- /dev/null
+++ b/src/libgnomecanvas/Makefile.mingw
@@ -0,0 +1,175 @@
+
+CLEANFILES = $(marshal_sources)
+
+
+#
+# Makefile.mingw
+#
+# Description: Makefile for win32 (mingw) version of GCompris
+#
+
+#
+# PATHS
+#
+
+INCLUDE_DIR := .
+LIBART_TOP := $(GCOMPRIS_TOP)/libart_lgpl
+GCOMPRIS_TOP := ../..
+GCOMPRIS_SRC := .
+GCOMPRIS_INSTALL_DIR := $(GCOMPRIS_TOP)/win32-install-dir
+
+##
+## VARIABLE DEFINITIONS
+##
+
+# Compiler and Linker Options
+
+CFLAGS =
+
+DEFINES =
+
+.SUFFIXES:
+.SUFFIXES: .c .a
+
+LDFLAGS = -mwindows -mno-cygwin -mms-bitfields
+
+##
+## INCLUDE MAKEFILES
+##
+
+include $(GCOMPRIS_TOP)/global_win32.mak
+
+##
+## INCLUDE PATHS
+##
+
+INCLUDE_PATHS += -I$(GTK_TOP)/include \
+ -I$(GTK_TOP)/include/gtk-2.0 \
+ -I$(GLIB_TOP)/include/glib-2.0 \
+ -I$(GTK_TOP)/include/pango-1.0 \
+ -I$(GTK_TOP)/include/atk-1.0 \
+ -I$(GLIB_TOP)/lib/glib-2.0/include \
+ -I$(GTK_TOP)/lib/gtk-2.0/include \
+ -I$(LIBART_TOP) \
+ -I$(GTK_TOP)/include/freetype2 \
+ -I$(LIBXML2_TOP)/include \
+ -I$(GCOMPRIS_TOP) \
+ -I$(GCOMPRIS_TOP)/src \
+ -I$(CAIRO_TOP)/include/cairo \
+ -I$(FONTCONFIG_TOP) \
+ -I$(FREETYPE_TOP)/include \
+ -I$(FREETYPE_TOP)/include/freetype2/
+
+
+LIB_PATHS = -L$(GTK_TOP)/lib \
+ -L$(FREETYPE_TOP)/lib
+
+##
+## LIBRARIES
+##
+
+LIBS = -lgtk-win32-2.0 \
+ -lglib-2.0 \
+ -lgdk-win32-2.0 \
+ -lgobject-2.0 \
+ -lgmodule-2.0 \
+ -lgdk_pixbuf-2.0 \
+ -lpango-1.0 \
+ -lpangoft2-1.0 \
+ -latk-1.0 \
+ -lpangowin32-1.0 \
+ -lgdi32 -lgthread-2.0 \
+ -lintl \
+ -lws2_32
+
+##
+## TARGET DEFINITIONS
+##
+
+.PHONY: all clean
+
+all: libgnomecanvas
+
+install:
+
+marshal_sources = \
+ gnome-canvas-marshal.c \
+ gnome-canvas-marshal.h
+
+libgnomecanvas: $(marshal_sources)
+
+BUILT_SOURCES = \
+ $(marshal_sources)
+
+gnome-canvas-marshal.h: gnome-canvas-marshal.list
+ $(GLIB_GENMARSHAL) $< --header --prefix=gnome_canvas_marshal > $@
+gnome-canvas-marshal.c: gnome-canvas-marshal.list
+ $(GLIB_GENMARSHAL) $< --body --prefix=gnome_canvas_marshal > $@
+
+
+libgnomecanvasinclude_headers = \
+ gnome-canvas-shape.h \
+ gnome-canvas-bpath.h \
+ gnome-canvas-clipgroup.h \
+ gnome-canvas-line.h \
+ gnome-canvas-pixbuf.h \
+ gnome-canvas-polygon.h \
+ gnome-canvas-rect-ellipse.h \
+ gnome-canvas-text.h \
+ gnome-canvas-rich-text.h \
+ gnome-canvas-util.h \
+ gnome-canvas-widget.h \
+ gnome-canvas-path-def.h \
+ gnome-canvas.h \
+ libgnomecanvas.h
+
+libgnomecanvas_2_a_SOURCES = \
+ gnome-canvas-shape.c \
+ gnome-canvas-shape-private.h \
+ gnome-canvas-bpath.c \
+ gnome-canvas-path-def.c \
+ gnome-canvas-clipgroup.c \
+ gnome-canvas-i18n.h \
+ gnome-canvas-line.c \
+ gnome-canvas-pixbuf.c \
+ gnome-canvas-polygon.c \
+ gnome-canvas-rect-ellipse.c \
+ gnome-canvas-text.c \
+ gnome-canvas-rich-text.c \
+ gnome-canvas-util.c \
+ gnome-canvas-widget.c \
+ gnome-canvas.c \
+ libgnomecanvastypes.c
+
+
+
+OBJECTS = $(libgnomecanvas_2_a_SOURCES:%.c=%.o)
+
+#
+# BUILD Boards staticlibrary
+#
+
+# How to make a C file
+%.o: %.c
+ $(CC) $(CFLAGS) $(INCLUDE_PATHS) $(DEFINES) -c $< -o $@
+
+.c.o:
+ $(CC) $(CFLAGS) $(DEFINES) $(INCLUDE_PATHS) -o $@.o -c $<
+ $(CC) -shared $@.o $(LIB_PATHS) $(LIBS) $(DLL_LD_FLAGS) -o $@
+
+libgnomecanvas: \
+ libgnomecanvas.a
+
+libgnomecanvas.a: $(OBJECTS)
+ -rm -f libgnomecanvas.a
+ $(AR) cru libgnomecanvas.a $(OBJECTS)
+ $(RANLIB) libgnomecanvas.a
+
+##
+## CLEAN RULES
+##
+
+clean:
+ rm -rf *.o
+ rm -rf *.a
+ rm -rf $(marshal_sources)