diff options
author | Bruno 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) |
commit | ab72b78a577be27d84cbafe18153ecbf1dc3f4d3 (patch) | |
tree | 1751d338548986b7d0913cf8daaffa89d634950b | |
parent | 6396aed48fd988759f9c80ea48184660468602a1 (diff) |
updated the windows compilation chain to work against the latest
version of GTK.
-rw-r--r-- | Makefile.mingw | 20 | ||||
-rw-r--r-- | global_win32.mak | 32 | ||||
-rw-r--r-- | src/boards/Makefile.mingw | 7 | ||||
-rw-r--r-- | src/gcompris/Makefile.mingw | 6 | ||||
-rw-r--r-- | src/libart_lgpl/Makefile.mingw | 208 | ||||
-rw-r--r-- | 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) |