Makefile.mingw.in 5 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
# Makefile.mingw
#
# Author: Bruno Coudoin (from GAIM example)
# Description: Top Makefile for win32 (mingw) port of GCompris
#

VERSION = "@VERSION@"

pkgdatadir = gcompris

GCOMPRIS_SRC = ./src/gcompris
GCOMPRIS_BOARDS = ./src/boards
GCOMPRIS_INSTALL_DIR = ./win32-install-dir

GTK_TOP :=		/gtk
GNUWIN32_TOP :=		/gnuwin32
LIBXML2_TOP :=		/libxml2
SDL_TOP :=		/sdl
CANVAS_TOP :=		/gnomecanvas
GNUCHESS_TOP :=		/gnuchess
21
GNUCAP_TOP :=		/gnucap
22 23 24 25 26 27

MAKENSIS := "/c/Program Files/NSIS/makensis.exe"

# These will be copied in the win32-install-dir ready to be packaged.
NEEDED_DLLS =		$(GNUCHESS_TOP)/bin/pthreadGC.dll \
			$(GNUCHESS_TOP)/bin/libreadline.dll \
28
			$(GNUCAP_TOP)/src/MSW/gnucap.exe \
29 30 31 32 33 34 35 36 37 38 39
			$(GTK_TOP)/bin/gspawn-win32-helper.exe \
			$(GNUCHESS_TOP)/bin/gnuchess.exe \
			$(GNUWIN32_TOP)/bin/popt1.dll \
			$(GNUWIN32_TOP)/bin/libintl-2.dll \
			$(GNUWIN32_TOP)/bin/libiconv-2.dll \
			$(CANVAS_TOP)/bin/libgnomecanvas-2-0.dll \
			$(SDL_TOP)/bin/SDL.dll \
			$(SDL_TOP)/bin/SDL_mixer.dll \
			$(LIBXML2_TOP)/bin/libxml2.dll \
			$(GTK_TOP)/bin/freetype6.dll \
			$(GTK_TOP)/bin/intl.dll \
40 41
			$(GTK_TOP)/bin/libcairo-2.dll \
			$(GTK_TOP)/bin/libpangocairo-1.0-0.dll \
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
			$(GTK_TOP)/bin/libart_lgpl_2-2.dll \
			$(GTK_TOP)/bin/freetype6.dll \
			$(GTK_TOP)/bin/libart_lgpl_2-2.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 \
			$(GTK_TOP)/bin/libgmodule-2.0-0.dll \
			$(GTK_TOP)/bin/libgobject-2.0-0.dll \
			$(GTK_TOP)/bin/libpango-1.0-0.dll \
			$(GTK_TOP)/bin/libpangowin32-1.0-0.dll \
			$(GTK_TOP)/bin/libpangoft2-1.0-0.dll \
			$(GTK_TOP)/bin/libgtk-win32-2.0-0.dll \
			$(GTK_TOP)/bin/libatk-1.0-0.dll \
			$(GTK_TOP)/bin/libfontconfig-1.dll \
			$(GTK_TOP)/bin/zlib1.dll \
			$(GTK_TOP)/bin/libgthread-2.0-0.dll \
			$(GTK_TOP)/expat/bin/xmlparse.dll \
			$(GTK_TOP)/expat/bin/xmltok.dll \
			$(GTK_TOP)/bin/iconv.dll \
			$(GTK_TOP)/bin/intl.dll \
62
			$(GTK_TOP)/bin/libpng13.dll \
63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
			$(GTK_TOP)/bin/jpeg62.dll

NEEDED_FILES =		README \
			COPYING \
			COPYING \
			Changelog

##
##

all:
	cp config.h.mingw config.h
	$(MAKE) -C $(GCOMPRIS_BOARDS) -f Makefile.mingw
	$(MAKE) -C $(GCOMPRIS_SRC) -f Makefile.mingw


install: all
	mkdir -p $(GCOMPRIS_INSTALL_DIR)/share
	$(MAKE) -C $(GCOMPRIS_BOARDS) -f Makefile.mingw install
	$(MAKE) -C $(GCOMPRIS_SRC) -f Makefile.mingw install
83 84 85 86 87 88 89 90 91
	cp -r $(GCOMPRIS_BOARDS)/python $(GCOMPRIS_INSTALL_DIR)/share/gcompris
	rm -f $(GCOMPRIS_INSTALL_DIR)/share/gcompris/python/Makefile*
	rm -f $(GCOMPRIS_INSTALL_DIR)/share/gcompris/python/gcompris/Makefile*
	rm -f $(GCOMPRIS_INSTALL_DIR)/share/gcompris/python/admin/Makefile*
	cp -r $(GCOMPRIS_BOARDS)/python $(GCOMPRIS_INSTALL_DIR)/share/gcompris
	rm -f $(GCOMPRIS_INSTALL_DIR)/share/gcompris/python/Makefile*
	rm -f $(GCOMPRIS_INSTALL_DIR)/share/gcompris/python/gcompris/Makefile*
	rm -f $(GCOMPRIS_INSTALL_DIR)/share/gcompris/python/admin/Makefile*

92 93 94 95 96 97 98 99 100 101 102 103 104 105

# Copy mandratory files for the package in the package directory
prepack:
	mkdir -p $(GCOMPRIS_INSTALL_DIR)/GTK
	cp $(NEEDED_DLLS) $(GCOMPRIS_INSTALL_DIR)
	cp $(NEEDED_FILES) $(GCOMPRIS_INSTALL_DIR)
	cp -r $(GTK_TOP)/etc $(GCOMPRIS_INSTALL_DIR)
	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)/lib/gtk-2.0 $(GCOMPRIS_INSTALL_DIR)/lib
	cp -r $(GTK_TOP)/lib/pango $(GCOMPRIS_INSTALL_DIR)/lib

106 107 108 109
python:
	cp tools/py2exe/gcompris.py $(GCOMPRIS_INSTALL_DIR)
	cp tools/py2exe/setup.py $(GCOMPRIS_INSTALL_DIR)
	cd $(GCOMPRIS_INSTALL_DIR);/c/Python24/python.exe setup.py py2exe;cp dist/library.zip python24.zip;cp dist/*.pyd .;rm -rf dist build;rm -f gcompris.py*;cd ..
110 111 112 113 114 115 116 117 118 119 120 121 122 123

installer:
	$(MAKENSIS) gcompris-installer.nsi

clean:
	$(MAKE) -C $(GCOMPRIS_SRC) -f Makefile.mingw clean
	$(MAKE) -C $(GCOMPRIS_BOARDS) -f Makefile.mingw clean
	rm -rf config.h
	rm -rf gcompris*.exe

#
# Run this on Linux to prepare datadir for windows
#
prep:
124
	mkdir $(GCOMPRIS_INSTALL_DIR)
125
	mkdir -p $(GCOMPRIS_INSTALL_DIR)/share/$(pkgdatadir)/boards
126
	cd boards ; tar cf -  --exclude "Makefile.in" --exclude "*.in" --exclude "*~" --exclude "Makefile" --exclude "Makefile.am" --exclude CVS --exclude .xvpics * | ( cd ../$(GCOMPRIS_INSTALL_DIR)/share/$(pkgdatadir)/boards ; tar xf -) ; cd .. ;
127 128 129 130 131 132 133 134 135 136 137
	@echo "-------------------------------------------------------------------------------"
	@echo " WARNING: MAKE SURE TO HAVE RUN A MAKE INSTALL OF GCOMPRIS IN /USR/LOCAL FIRST"
	@echo "-------------------------------------------------------------------------------"
	mkdir -p $(GCOMPRIS_INSTALL_DIR)/share/locale
	cp -r /usr/local/share/locale/* $(GCOMPRIS_INSTALL_DIR)/share/locale/
	@echo "Remove other .mo file not from gcompris"
	find ./win32-install-dir/share/locale/ -name \*.mo | grep -v gcompris.mo | xargs rm -f
	@echo "Copy pixmap"
	mkdir $(GCOMPRIS_INSTALL_DIR)/share/pixmaps
	cp gcompris.png $(GCOMPRIS_INSTALL_DIR)/share/pixmaps
	@echo "Create the file gcompris-win-prepack.tar.gz"
138
	tar -czf gcompris-win-prepack.tar.gz win32-install-dir nsis tools