[gcompris/GCOMPRIS_8_3] updated the windows compilation chain to work against the latest



commit ab72b78a577be27d84cbafe18153ecbf1dc3f4d3
Author: Bruno Coudoin <bruno coudoin free fr>
Date:   Sun Jul 5 16:44:25 2009 +0200

    updated the windows compilation chain to work against the latest
    version of GTK.

 Makefile.mingw                    |   20 ++--
 global_win32.mak                  |   32 ++++++-
 src/boards/Makefile.mingw         |    7 +-
 src/gcompris/Makefile.mingw       |    6 +-
 src/libart_lgpl/Makefile.mingw    |  208 +++++++++++++++++++++++++++++++++++++
 src/libgnomecanvas/Makefile.mingw |  175 +++++++++++++++++++++++++++++++
 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)



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]