~vcs-imports-ii/gnubg/trunk

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
# Windows makefile

CC=gcc
FLAGS= -MD $(COMPOPT) -DHAVE_CONFIG_H 
BINDIR=../bin
OBJDIR=$(BINDIR)/obj

TARGET = $(BINDIR)/gnubg.exe
CMDTARGET = $(BINDIR)/gnubgCmd.exe

SOURCE = analysis bearoff bearoffgammon non-src/copying non-src/credits \
	dice drawboard eval evallock export external gnubg \
	htmlimages play \
	html import multithread latex matchequity \
	matchid positionid gtklocdefs \
	render rollout set sgf non-src/sgf_l non-src/sgf_y show sound \
	text osr renderprefs speed openurl \
	boardpos progress format \
	formatgs \
	timer mec relational \
	gnubgmodule non-src/external_l non-src/external_y \
	file simpleboard mtsupport \
	util dbprovider gnubgstock \
	glib-ext randomorg

GTKSOURCE = gtk-multiview gtkboard gtkcube gtkchequer gtkexport gtkgame gtkmet \
	gtkprefs gtkmovefilter gtkrace gtktheory gtksplash \
	gtkrolls gtktempmap gtktoolbar gtkoptions gtkgamelist gtkpanels gtkfile \
	gtkmovelist gtkmovelistctrl gtkwindows gtkrelational

OBJECTS=$(patsubst %,$(OBJDIR)/%.o,$(SOURCE))
GTKOBJECTS=$(patsubst %,$(OBJDIR)/%.o,$(GTKSOURCE))

BIN_DIRS=$(BINDIR) $(BINDIR)/textures $(BINDIR)/met $(BINDIR)/fonts $(BINDIR)/flags $(BINDIR)/sounds $(BINDIR)/scripts
TEXTURES=$(patsubst textures/%,$(BINDIR)/textures/%,$(wildcard textures/*.png)) $(patsubst textures/%,$(BINDIR)/textures/%,$(wildcard textures/*.bmp))
FLAGPICS=$(patsubst flags/%,$(BINDIR)/flags/%,$(wildcard flags/*.png))
SOUNDS=$(patsubst sounds/%,$(BINDIR)/sounds/%,$(wildcard sounds/*.wav))
METFILES=$(patsubst met/%,$(BINDIR)/met/%,$(wildcard met/*.xml))
FONTFILES=$(patsubst fonts/%,$(BINDIR)/fonts/%,$(wildcard fonts/*.ttf))
POFILES=$(patsubst po/%.po,$(BINDIR)/locale/%/LC_MESSAGES/gnubg.mo,$(wildcard po/*.po))
SCRIPTS=$(patsubst scripts/%,$(BINDIR)/scripts/%,$(wildcard scripts/*.py))
EXTRA_FILES=$(BINDIR)/textures.txt $(BINDIR)/met/met.dtd \
			$(BINDIR)/gnubg.gtkrc $(BINDIR)/boards.xml $(BINDIR)/gnubg.sql

makebearoff_SOURCE = makebearoff eval positionid matchequity \
		     matchid osr bearoffgammon bearoff \
		     mec util mtsupport

makebearoff_OBJECTS=$(patsubst %,$(OBJDIR)/%.o,$(makebearoff_SOURCE))

makebearoff_LIBS = \
		   -levent -lglib-2.0.dll -lfreetype.dll \
		   -lgobject-2.0.dll -lgtk-win32-2.0 -lgdk-win32-2.0 \
		   -lwinmm -lpango-1.0 -lgdk_pixbuf-2.0 \
		   -lopengl32 -lglu32 -lwsock32 \
		   -lintl -lcairo -lcomctl32 -lgthread-2.0

INCLUDE = -I. -I./lib -I./board3d -I./non-src \
	  -I$(MINGW)/include/gtk-2.0 \
	  -I$(MINGW)/lib/gtk-2.0/include \
	  -I$(MINGW)/include/cairo \
	  -I$(MINGW)/include/glib-2.0 \
	  -I$(MINGW)/lib/glib-2.0/include \
	  -I$(MINGW)/include/atk-1.0 \
	  -I$(MINGW)/include/pango-1.0 \
	  -I"$(PYTHON_DIR)/include" \
	  -I$(MINGW)/include/freetype2 \
	-I$(MINGW)/include/gtkglext-1.0 \
	-I$(MINGW)/lib/gtkglext-1.0/include

LIBPATH = -L$(BINDIR) -L"$(PYTHON_DIR)/libs"

LIBS = -levent -lglib-2.0.dll -lfreetype.dll \
       -lgobject-2.0.dll -lgtk-win32-2.0 -lgdk-win32-2.0 \
       -lwinmm -lpango-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 \
       -lpng -lopengl32 -lglu32 -lwsock32 \
	   -lgdkglext-win32-1.0.dll -lgtkglext-win32-1.0.dll \
       -lintl -lcairo -lgthread-2.0.dll # -lsqlite3 -lpython25

#LIBOPTIONS=-mwindows
LIBEVENT = $(BINDIR)/libevent.a
LIBBOARD3D = #$(BINDIR)/libboard3d.a

MAKEBEAROFFEXE = $(BINDIR)/makebearoff.exe
OSDB = $(BINDIR)/gnubg_os0.bd
TSDB = $(BINDIR)/gnubg_ts0.bd
MAKEWEIGHTS = $(BINDIR)/makeweights.exe
WEIGHTS = $(BINDIR)/gnubg.wd

all: objdirs $(BIN_DIRS) $(TEXTURES) $(FLAGPICS) $(SOUNDS) $(METFILES) $(POFILES) $(SCRIPTS) $(FONTFILES) $(EXTRA_FILES) \
		LibEvent Lib3d $(WEIGHTS) BearOffDBs $(TARGET)
	@echo $(TARGET) done

cmdline: $(BIN_DIRS) $(TEXTURES) $(FLAGPICS) $(SOUNDS) $(METFILES) $(POFILES) $(SCRIPTS) $(FONTFILES) $(EXTRA_FILES) \
		LibEvent $(WEIGHTS) BearOffDBs $(CMDTARGET)
	@echo $(CMDTARGET) done

LibEvent:
	@$(MAKE) --no-print-directory -fmakefile.w32 -C lib
	
Lib3d:
	@$(MAKE) --no-print-directory -fmakefile.win -C board3d

BearOffDBs: $(MAKEBEAROFFEXE) $(OSDB) $(TSDB)

$(BINDIR)/%: %
	@echo copying $<
	@copy $(subst /,\,"$<") "$@"

%.mo:
	@echo creating $@
	@if NOT EXIST "$(patsubst %/gnubg.mo,%,$@)" mkdir "$(patsubst %/gnubg.mo,%,$@)"
	@msgfmt -c -o "$@" "$(patsubst $(BINDIR)/locale/%/LC_MESSAGES/gnubg.mo,po\\%.po,$@)"

$(OSDB):
	@echo Generating one-sided bearoff database (this will take a while)
	@$(MAKEBEAROFFEXE) -o 6 -s 7999999 -f $(OSDB)

$(TSDB):
	@echo Generating two-sided bearoff database (this will take longer than the previous one)
	@$(MAKEBEAROFFEXE) -t 6x6 -f $(TSDB)

$(MAKEBEAROFFEXE): $(LIBEVENT) $(makebearoff_OBJECTS)
	@echo linking makebearoff
	@$(CC) -o $(MAKEBEAROFFEXE) $(makebearoff_OBJECTS) $(LIBPATH) $(makebearoff_LIBS)

$(WEIGHTS): $(MAKEWEIGHTS) gnubg.weights
	@echo Generating weights file gnubg.wd
	@"$(MAKEWEIGHTS)" "$(WEIGHTS)" gnubg.weights

$(MAKEWEIGHTS): $(LIBEVENT) $(OBJDIR)/makeweights.o
	@echo linking makeweights
	@$(CC) -o $(MAKEWEIGHTS) $(OBJDIR)/makeweights.o $(LIBPATH) $(makebearoff_LIBS)

$(TARGET): $(LIBEVENT) $(LIBBOARD3D) $(OBJECTS) $(GTKOBJECTS)
	@echo linking
	@$(CC) -o "$(TARGET)" $(OBJECTS) $(GTKOBJECTS) $(LIBPATH) -lboard3d $(LIBS) $(LIBOPTIONS)

$(CMDTARGET): $(LIBEVENT) $(LIBBOARD3D) $(OBJECTS)
	@echo linking
	@$(CC) -o "$(CMDTARGET)" $(OBJECTS) $(LIBPATH) $(LIBS) $(LIBOPTIONS)

objdirs: $(OBJDIR) $(OBJDIR)\non-src

$(BIN_DIRS) $(OBJDIR) $(OBJDIR)\non-src:
	@echo mkdir $@
	@mkdir "$@"

$(OBJDIR)/%.o: %.c
	@echo Compiling $<
	@${CC} $(FLAGS) $(INCLUDE) -o $@ -c $<

clean:
	@$(MAKE) --no-print-directory -fmakefile.win -C board3d clean
	@$(MAKE) --no-print-directory -fmakefile.w32 -C lib clean
	@if exist $(subst /,\,$(OBJDIR)\*.o) del $(subst /,\,$(OBJDIR)\*.o)
	@if exist $(subst /,\,$(OBJDIR)\non-src\*.o) del $(subst /,\,$(OBJDIR)\non-src\*.o)
	@if exist $(subst /,\,$(TARGET)) del $(subst /,\,$(TARGET))
	@if exist $(subst /,\,$(MAKEBEAROFFEXE)) del $(subst /,\,$(MAKEBEAROFFEXE))
	@echo $(TARGET) clean