3 ### if we are compiling with ZIPPY we need some extra source files
11 ### define sources for the front-end and backend
12 GTKsources = gtk/xboard.c gtk/xboard.h \
13 gtk/xoptions.c gtk/xtimer.c \
16 Xsources = xaw/xboard.c xaw/xboard.h \
18 xaw/xgamelist.c xaw/xgamelist.h \
19 xaw/xhistory.c xaw/xhistory.h \
21 bitmaps/checkmark.bm bitmaps/icon_black.bm bitmaps/icon_white.bm
24 FRONTENDsources = $(GTKsources)
25 FRONTENDextras = $(Xsources)
29 FRONTENDsources = $(Xsources)
30 FRONTENDextras = $(GTKsources)
31 headers = -I xaw -DX11
34 xboard_SOURCES = backend.c backend.h backendz.h \
39 gamelist.c ngamelist.c \
50 engineoutput.c nengineoutput.c engineoutput.h \
51 evalgraph.c nevalgraph.c evalgraph.h \
52 history.c nhistory.c \
54 usounds.c usystem.c usystem.h \
55 $(ZPY) $(FRONTENDsources)
60 xboard_LDADD = -ldl -lm @FRONTEND_LIBS@ @X_LIBS@ @LIBINTL@ @CAIRO_LIBS@
62 EXTRA_DIST = pixmaps themes png sounds winboard \
63 xboard.texi gpl.texinfo texi2man texinfo.tex xboard.man xboard.desktop xboard-config.desktop \
64 xboard-fen-viewer.desktop xboard-pgn-viewer.desktop xboard-tourney.desktop xboard.xml \
65 COPYRIGHT FAQ.html engine-intf.html ics-parsing.txt readme.htm zippy.README \
66 xboard.conf SHORTLOG DIFFSTAT history.c ABOUT-NLS $(FRONTENDextras)
68 DISTCLEANFILES = stamp-h
70 GITVERSION=$(shell sh -c 'git describe --dirty --always 2>/dev/null')
71 AM_CPPFLAGS=-DINFODIR='"$(infodir)"' @X_CFLAGS@ @CAIRO_CFLAGS@ @FRONTEND_CFLAGS@ -DSYSCONFDIR='"$(sysconfdir)"' \
72 -DLOCALEDIR='"$(localedir)"' -DSVGDIR='"$(svgdir)"' -D__GIT_VERSION='"$(GITVERSION)"' \
73 -DCONFIGURE_OPTIONS='"@CONFIGURE_OPTIONS@"' -DDATADIR='"$(datadir)/games/xboard"' $(headers)
75 ACLOCAL_AMFLAGS = -I m4
77 info_TEXINFOS = xboard.texi
78 xboard_TEXINFOS = copyright.texi
79 man6_MANS = xboard.man
84 sysconf_DATA = xboard.conf
89 dist_icon_DATA = xboard.png
90 svgicondir = @SVGICONSDIR@
91 dist_svgicon_DATA = xboard.svg
94 ### desktop files for KDE and gnome
96 Applicationsdir = @DESKTOPDIR@
97 Applications_DATA = xboard.desktop xboard-fen-viewer.desktop xboard-pgn-viewer.desktop xboard-tourney.desktop xboard-config.desktop
101 mime_DATA = xboard.xml
103 gamedatadir = @GAMEDATADIR@
105 ### directory and files for svgs
107 svgdir = $(gamedatadir)/themes/default
108 dist_svg_DATA = svg/icon_white.svg svg/icon_black.svg \
109 svg/BlackAdvisor.svg svg/WhiteAdvisor.svg \
110 svg/BlackArchbishop.svg svg/WhiteArchbishop.svg \
111 svg/BlackBishop.svg svg/WhiteBishop.svg \
112 svg/BlackCanon.svg svg/WhiteCanon.svg \
113 svg/BlackChancellor.svg svg/WhiteChancellor.svg \
114 svg/BlackCobra.svg svg/WhiteCobra.svg \
115 svg/BlackCommoner.svg svg/WhiteCommoner.svg \
116 svg/BlackCrownedBishop.svg svg/WhiteCrownedBishop.svg \
117 svg/BlackCrownedRook.svg svg/WhiteCrownedRook.svg \
118 svg/BlackElephant.svg svg/WhiteElephant.svg \
119 svg/BlackGoldKnight.svg svg/WhiteGoldKnight.svg \
120 svg/BlackGoldLance.svg svg/WhiteGoldLance.svg \
121 svg/BlackGoldPawn.svg svg/WhiteGoldPawn.svg \
122 svg/BlackGoldSilver.svg svg/WhiteGoldSilver.svg \
123 svg/BlackGold.svg svg/WhiteGold.svg \
124 svg/BlackHawk.svg svg/WhiteHawk.svg \
125 svg/BlackKing.svg svg/WhiteKing.svg \
126 svg/BlackKnight.svg svg/WhiteKnight.svg \
127 svg/BlackLance.svg svg/WhiteLance.svg \
128 svg/BlackMarshall.svg svg/WhiteMarshall.svg \
129 svg/BlackNightrider.svg svg/WhiteNightrider.svg \
130 svg/BlackPawn.svg svg/WhitePawn.svg \
131 svg/BlackPrincess.svg svg/WhitePrincess.svg \
132 svg/BlackQueen.svg svg/WhiteQueen.svg \
133 svg/BlackRook.svg svg/WhiteRook.svg \
134 svg/BlackUnicorn.svg svg/WhiteUnicorn.svg \
135 svg/BlackSword.svg svg/WhiteSword.svg \
136 svg/BlackHSword.svg svg/WhiteHSword.svg \
137 svg/BlackLeopard.svg svg/WhiteLeopard.svg \
138 svg/BlackLion.svg svg/WhiteLion.svg \
139 svg/BlackPromoBishop.svg svg/WhitePromoBishop.svg \
140 svg/BlackPromoRook.svg svg/WhitePromoRook.svg \
141 svg/BlackPromoHorse.svg svg/WhitePromoHorse.svg \
142 svg/BlackPromoDragon.svg svg/WhitePromoDragon.svg \
143 svg/BlackPromoSword.svg svg/WhitePromoSword.svg \
144 svg/BlackPromoHSword.svg svg/WhitePromoHSword.svg \
145 svg/BlackHCrown.svg svg/WhiteHCrown.svg \
146 svg/BlackDolphin.svg svg/WhiteDolphin.svg \
147 svg/BlackClaw.svg svg/WhiteClaw.svg \
148 svg/BlackWolf.svg svg/WhiteWolf.svg \
149 svg/BlackCamel.svg svg/WhiteCamel.svg \
150 svg/BlackZebra.svg svg/WhiteZebra.svg \
151 svg/BlackGnu.svg svg/WhiteGnu.svg \
152 svg/BlackWizard.svg svg/WhiteWizard.svg \
153 svg/BlackViking.svg svg/WhiteViking.svg \
154 svg/BlackIron.svg svg/WhiteIron.svg \
155 svg/BlackCopper.svg svg/WhiteCopper.svg \
156 svg/BlackTower.svg svg/WhiteTower.svg \
157 svg/BlackDragon.svg svg/WhiteDragon.svg \
158 svg/BlackCub.svg svg/WhiteCub.svg \
159 svg/BlackButterfly.svg svg/WhiteButterfly.svg \
160 svg/BlackLeft.svg svg/WhiteLeft.svg \
161 svg/BlackRight.svg svg/WhiteRight.svg \
162 svg/BlackHat.svg svg/WhiteHat.svg \
163 svg/BlackRShield.svg svg/WhiteRShield.svg \
164 svg/BlackLShield.svg svg/WhiteLShield.svg \
165 svg/BlackAxe.svg svg/WhiteAxe.svg \
166 svg/BlackFlag.svg svg/WhiteFlag.svg \
167 svg/BlackDuck.svg svg/WhiteDuck.svg \
168 svg/BlackPegasus.svg svg/WhitePegasus.svg \
169 svg/eo_Analyzing.svg svg/eo_Black.svg \
170 svg/eo_Clear.svg svg/eo_Ponder.svg \
171 svg/eo_Thinking.svg svg/eo_Unknown.svg \
174 shogidir = $(gamedatadir)/themes/shogi
176 themes/shogi/WhiteGold.svg themes/shogi/WhiteCrownedBishop.svg\
177 themes/shogi/WhiteBishop.svg themes/shogi/WhiteKing.svg\
178 themes/shogi/WhiteKnight.svg themes/shogi/WhiteGoldKnight.svg\
179 themes/shogi/WhiteLance.svg themes/shogi/WhiteGoldLance.svg\
180 themes/shogi/WhitePawn.svg themes/shogi/WhiteGoldPawn.svg\
181 themes/shogi/WhiteRook.svg themes/shogi/WhiteCrownedRook.svg\
182 themes/shogi/WhiteAdvisor.svg themes/shogi/WhiteGoldSilver.svg\
183 themes/shogi/BlackGold.svg themes/shogi/BlackCrownedBishop.svg\
184 themes/shogi/BlackBishop.svg themes/shogi/BlackKing.svg\
185 themes/shogi/BlackKnight.svg themes/shogi/BlackGoldKnight.svg\
186 themes/shogi/BlackLance.svg themes/shogi/BlackGoldLance.svg\
187 themes/shogi/BlackPawn.svg themes/shogi/BlackGoldPawn.svg\
188 themes/shogi/BlackRook.svg themes/shogi/BlackCrownedRook.svg\
189 themes/shogi/BlackAdvisor.svg themes/shogi/BlackGoldSilver.svg
191 xiangqidir = $(gamedatadir)/themes/xiangqi
192 dist_xiangqi_DATA = themes/xiangqi/BlackAdvisor.svg themes/xiangqi/WhiteAdvisor.svg \
193 themes/xiangqi/BlackCanon.svg themes/xiangqi/WhiteCanon.svg \
194 themes/xiangqi/BlackElephant.svg themes/xiangqi/WhiteElephant.svg \
195 themes/xiangqi/BlackKnight.svg themes/xiangqi/WhiteKnight.svg \
196 themes/xiangqi/BlackGold.svg themes/xiangqi/WhiteGold.svg \
197 themes/xiangqi/BlackPawn.svg themes/xiangqi/WhitePawn.svg \
198 themes/xiangqi/BlackRook.svg themes/xiangqi/WhiteRook.svg
200 ### directory and files for themes (and other) configuration files
202 themesdir = $(datadir)/games/xboard/themes/conf
203 dist_themes_DATA = conf/shogi conf/xq conf/ics conf/mini conf/mini.fen conf/sho conf/sho.fen
205 ### directory and files for pixmaps
207 pixmapsdir = $(gamedatadir)/pixmaps/textures
208 dist_pixmaps_DATA = pixmaps/cross32.png pixmaps/cross48.png pixmaps/board32.png pixmaps/board48.png pixmaps/ini32.png pixmaps/ini48.png
210 ### directory and files for pngs
212 pngdir = $(gamedatadir)/themes/textures
213 dist_png_DATA = png/hatch.png png/wood_d.png png/wood_l.png png/xqboard.png
215 ### directory and files for sound files
217 soundsdir = $(gamedatadir)/sounds
219 sounds/cymbal.wav sounds/pop2.wav sounds/slap.wav sounds/ding1.wav sounds/laser.wav \
220 sounds/woodthunk.wav sounds/gong.wav sounds/penalty.wav sounds/honkhonk.wav sounds/phone.wav sounds/roar.wav
222 ### the man page depends on several files, so we add a special rule
224 xboard.man: xboard.texi copyright.texi gpl.texinfo version.texi
225 $(srcdir)/texi2man $(srcdir)/xboard.texi > xboard.man || (rm -f xboard.man ; false)
227 ### install mime-type files and corresponding icons and menu entries if enabled during configure
229 install-data-hook: install-mime-database
230 uninstall-hook: uninstall-mime-database
232 install-mime-database:
233 if ENABLE_UPDATE_MIMEDB
234 -if test -z "$(DESTDIR)" -a -n "$(XDG_MIME)" -a -n "$(XDG_DESKTOP_MENU)" -a -n "$(XDG_ICON_RESOURCE)" ; then \
235 $(XDG_MIME) install --mode system --novendor xboard.xml ;\
236 $(XDG_DESKTOP_MENU) install --mode system --novendor xboard-pgn-viewer.desktop;\
237 $(XDG_DESKTOP_MENU) install --mode system --novendor xboard-fen-viewer.desktop;\
238 $(XDG_DESKTOP_MENU) install --mode system --novendor xboard-tourney.desktop;\
239 $(XDG_DESKTOP_MENU) install --mode system --novendor xboard-config.desktop;\
240 $(XDG_ICON_RESOURCE) install --context mimetypes --size 32 pixmaps/board32.png application-x-chess-pgn;\
241 $(XDG_ICON_RESOURCE) install --context mimetypes --size 32 pixmaps/cross32.png application-x-xboard-trn;\
242 $(XDG_ICON_RESOURCE) install --context mimetypes --size 32 pixmaps/ini32.png application-x-xboard-opt;\
243 $(XDG_ICON_RESOURCE) install --context mimetypes --size 48 pixmaps/board48.png application-x-chess-pgn;\
244 $(XDG_ICON_RESOURCE) install --context mimetypes --size 48 pixmaps/cross48.png application-x-xboard-trn;\
245 $(XDG_ICON_RESOURCE) install --context mimetypes --size 48 pixmaps/ini48.png application-x-xboard-opt;\
249 uninstall-mime-database:
250 if ENABLE_UPDATE_MIMEDB
251 -if test -z "$(DESTDIR)" -a -n "$(XDG_MIME)" -a -n "$(XDG_DESKTOP_MENU)" -a -n "$(XDG_ICON_RESOURCE)" ; then \
252 $(XDG_MIME) uninstall --mode system --novendor xboard.xml;\
253 $(XDG_DESKTOP_MENU) uninstall --mode system --novendor xboard-pgn-viewer.desktop;\
254 $(XDG_DESKTOP_MENU) uninstall --mode system --novendor xboard-fen-viewer.desktop;\
255 $(XDG_DESKTOP_MENU) uninstall --mode system --novendor xboard-tourney.desktop;\
256 $(XDG_DESKTOP_MENU) uninstall --mode system --novendor xboard-config.desktop;\
257 $(XDG_ICON_RESOURCE) uninstall --context mimetypes --size 32 board32.png application-x-chess-pgn;\
258 $(XDG_ICON_RESOURCE) uninstall --context mimetypes --size 32 cross32.png application-x-xboard-trn;\
259 $(XDG_ICON_RESOURCE) uninstall --context mimetypes --size 32 ini32.png application-x-xboard-opt;\
260 $(XDG_ICON_RESOURCE) uninstall --context mimetypes --size 48 board48.png application-x-chess-pgn;\
261 $(XDG_ICON_RESOURCE) uninstall --context mimetypes --size 48 cross48.png application-x-xboard-trn;\
262 $(XDG_ICON_RESOURCE) uninstall --context mimetypes --size 48 ini48.png application-x-xboard-opt;\
267 osxapp: all-recursive install install-recursive
268 macportsprefix = $(shell which port | sed s/[/]bin[/]port//)
269 $(MKDIR_P) $(datarootdir)/bin
270 $(MKDIR_P) $(datarootdir)/lib
271 $(MKDIR_P) $(sysconfdir)/gtk-2.0
272 $(MKDIR_P) $(sysconfdir)/pango
273 $(MKDIR_P) $(datadir)/themes
274 $(MKDIR_P) $(datadir)/gtk-engines
275 $(MKDIR_P) $(gamedatadir)/themes
276 $(INSTALL) ./osxapp/Info.plist $(prefix)
277 $(INSTALL) ./osxapp/PkgInfo $(prefix)
278 $(INSTALL) ./osxapp/XBoard.gtklauncher $(bindir)/XBoard
279 $(INSTALL) ./xboard $(bindir)/xboard-bin
280 cp -R ./osxapp/icons/. $(datarootdir)
281 sed -e 's?-soundProgram "aplay -q"?-soundProgram "afplay"?'\
282 -e 's?-firstChessProgram fairymax?-firstChessProgram "./fairymax"?'\
283 -e 's?-firstChessProgramNames {fairymax?-firstChessProgramNames {"fairymax" -fcp "./fairymax" -fd "~~/../../bin/fairymax"?'\
284 -e 's?"Fruit 2.1" -fcp fruit -fUCI?"fruit" -fcp "./fruit" -fd "~~/../../bin/fruit" -fUCI?'\
285 -e '/"Crafty" -fcp crafty/d'\
286 -e '/"GNU Chess" -fcp gnuchess/d'\
287 -e 's?"icc" -icshost chessclub.com -icshelper timestamp?"icc" -icshost 207.99.83.228 -icshelper timestamp?'\
288 -e 's?"kc" -icshost alanimus.com -icshelper timeseal?"vics" -icshost winboard.nl -icshelper timeseal?'\
289 -e '/; Save user settings./d'\
290 -e '/; Must be last in file to make user options prevail over system-wide settings!/d'\
291 -e '/-saveSettingsOnExit true/d'\
292 -e '/-saveSettingsFile "~\/.xboardrc"/d'\
293 -e '/-settingsFile "~\/.xboardrc"/d'<./xboard.conf >$(sysconfdir)/xboard.conf
294 echo '; OSX' >>$(sysconfdir)/xboard.conf
295 echo ';'>>$(sysconfdir)/xboard.conf
296 echo '-clockFont "Sans Bold 26" '>>$(sysconfdir)/xboard.conf
297 echo '-pieceImageDirectory "~~/themes/default"' >>$(sysconfdir)/xboard.conf
298 echo '-autoLogo true' >>$(sysconfdir)/xboard.conf
299 echo '-logoDir "~~/logos"' >>$(sysconfdir)/xboard.conf
300 echo '-logoSize 100' >>$(sysconfdir)/xboard.conf
301 echo '-openCommand "open"' >>$(sysconfdir)/xboard.conf
302 echo '-firstDirectory "~~/../../bin/fairymax"' >>$(sysconfdir)/xboard.conf
303 echo '-secondDirectory "~~/../../bin/fairymax"' >>$(sysconfdir)/xboard.conf
304 echo '-secondChessProgram "./fairymax"' >>$(sysconfdir)/xboard.conf
305 echo '-uxiAdapter "uci2wb -%variant %fcp %fd"' >>$(sysconfdir)/xboard.conf
306 echo ';' >>$(sysconfdir)/xboard.conf
307 echo '; Save user settings.' >>$(sysconfdir)/xboard.conf
308 echo '; Must be last in file to make user options prevail over system-wide settings!' >>$(sysconfdir)/xboard.conf
309 echo ';' >>$(sysconfdir)/xboard.conf
310 echo '-saveSettingsOnExit true' >>$(sysconfdir)/xboard.conf
311 echo '-saveSettingsFile "~/Library/Preferences/XBoard.conf"' >>$(sysconfdir)/xboard.conf
312 echo '-settingsFile "~/Library/Preferences/XBoard.conf"' >>$(sysconfdir)/xboard.conf
314 sed 's?$(macportsprefix)/lib?/tmp/skl/XBoard.app/Contents/Resources/lib?' <$(macportsprefix)/etc/gtk-2.0/gdk-pixbuf.loaders >$(sysconfdir)/gtk-2.0/gdk-pixbuf.loaders
315 sed -e 's?$(macportsprefix)/lib?/tmp/skl/XBoard.app/Contents/Resources/lib?' -e 's?$(macportsprefix)/share/locale?/tmp/skl/XBoard.app/Contents/Resources/share/locale?' <$(macportsprefix)/etc/gtk-2.0/gtk.immodules >$(sysconfdir)/gtk-2.0/gtk.immodules
316 $(INSTALL) ./osxapp/launcher_rc $(datarootdir)/
317 $(INSTALL) $(macportsprefix)/etc/gtk-2.0/im-multipress.conf $(sysconfdir)/gtk-2.0
318 $(INSTALL) ./osxapp/gtkrc $(sysconfdir)/gtk-2.0/gtkrc
319 sed -e '/ModuleFiles = .*\/etc\/pango\/pango.modules/d' <$(macportsprefix)/etc/pango/pangorc >$(sysconfdir)/pango/pangorc
320 sed -e 's?$(macportsprefix)/lib/pango/1.8.0/modules/??' <$(macportsprefix)/etc/pango/pango.modules >$(sysconfdir)/pango/pango.modules
321 cp -R $(macportsprefix)/lib/gtk-2.0 $(datarootdir)/lib
322 cp -R $(macportsprefix)/lib/gdk-pixbuf-2.0 $(datarootdir)/lib
323 cp -R $(macportsprefix)/lib/pango $(datarootdir)/lib
324 cp -R $(macportsprefix)/share/themes/Mac $(datadir)/themes
325 cp -R ./osxapp/gtk2-themes/Mac/gtk-2.0 $(datadir)/themes/Mac
326 cp -R ./osxapp/themes/default/. $(gamedatadir)/themes/default
327 cp $(macportsprefix)/share/gtk-engines/murrine.xml $(datadir)/gtk-engines/murrine.xml
328 $(INSTALL) ./png/marble_d.png $(gamedatadir)/themes/textures
329 $(INSTALL) ./png/marble_l.png $(gamedatadir)/themes/textures
330 $(INSTALL) ./png/xqwood.png $(gamedatadir)/themes/textures
331 cp -R ./osxapp/logos $(gamedatadir)/
332 cp -R $(macportsprefix)/share/strings/. $(datarootdir)/
333 for i in po/*gmo; do lang=`basename $$i .gmo`; $(INSTALL) $(macportsprefix)/share/locale/$$lang/LC_MESSAGES/gtk20.mo $(localedir)/$$lang/LC_MESSAGES/; done
334 dylibbundler -of -b -x $(bindir)/xboard-bin -d $(datarootdir)/lib -p @executable_path/../Resources/lib
335 dylibbundler -of -b -x $(datarootdir)/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-png.so -d $(datarootdir)/lib -p @executable_path/../Resources/lib
336 dylibbundler -of -b -x $(datarootdir)/lib/gtk-2.0/2.10.0/immodules/im-quartz.so -d $(datarootdir)/lib -p @executable_path/../Resources/lib
337 dylibbundler -of -b -x $(datarootdir)/lib/gtk-2.0/2.10.0/engines/libpixmap.so -d $(datarootdir)/lib -p @executable_path/../Resources/lib
338 dylibbundler -of -b -x $(datarootdir)/lib/gtk-2.0/2.10.0/engines/libmurrine.so -d $(datarootdir)/lib -p @executable_path/../Resources/lib
339 dylibbundler -of -b -x $(datarootdir)/lib/pango/1.8.0/modules/pango-arabic-lang.so -d $(datarootdir)/lib -p @executable_path/../Resources/lib
340 dylibbundler -of -b -x $(datarootdir)/lib/pango/1.8.0/modules/pango-basic-coretext.so -d $(datarootdir)/lib -p @executable_path/../Resources/lib
341 dylibbundler -of -b -x $(datarootdir)/lib/pango/1.8.0/modules/pango-basic-fc.so -d $(datarootdir)/lib -p @executable_path/../Resources/lib
342 dylibbundler -of -b -x $(datarootdir)/lib/pango/1.8.0/modules/pango-indic-lang.so -d $(datarootdir)/lib -p @executable_path/../Resources/lib
343 find ./XBoard.app -name '*.a' -print0 | xargs -0 rm
344 find ./XBoard.app -name '*.la' -print0 | xargs -0 rm
345 rm -r $(datarootdir)/lib/gtk-2.0/include
346 rm -r $(datarootdir)/share/applications
347 rm $(datarootdir)/share/info/dir
348 rm -r $(datarootdir)/share/icons
349 rm -r $(datarootdir)/share/mime
350 mv $(datarootdir)/share/games/xboard/themes/conf $(datarootdir)/share/xboard/conf
351 rm -r $(datarootdir)/share/xboard/pixmaps
352 rm -r $(datarootdir)/share/games