Add configure switches for Xaw vs GTK.
[xboard.git] / Makefile.am
1 bin_PROGRAMS = xboard
2
3 ### if we are compiling with ZIPPY we need some extra source files
4
5 if ZIPPY
6   ZPY = zippy.c zippy.h
7 else
8   ZPY =
9 endif
10
11 ### define sources for the front-end and backend
12
13 GTKsources = xboard.c  xevalgraph.c  xgamelist.c \
14              xhistory.c  xoptions.c  xboard.h  \
15              xengineoutput.c  xevalgraph.h  xgamelist.h \
16              xhistory.h
17
18 Xsources   = xaw/xboard.c xaw/xboard.h \
19              xaw/xedittags.c xaw/xedittags.h \
20              xaw/xengineoutput.c \
21              xaw/xevalgraph.c xaw/xevalgraph.h \
22              xaw/xgamelist.c xaw/xgamelist.h \
23              xaw/xhistory.c xaw/xhistory.h \
24              xaw/xoptions.c
25              
26
27 backendsources = backend.c backend.h backendz.h \
28                  book.c \
29                  childio.c childio.h \
30                  common.h \
31                  frontend.h \
32                  gamelist.c ngamelist.c \
33                  gettext.h  \
34                  lists.c lists.h \
35                  moves.c moves.h \
36                  parser.c parser.h \
37                  pgntags.c \
38                  uci.c \
39                  args.h \
40                  board.c board.h \
41                  draw.c draw.h \
42                  dialogs.c dialogs.h \
43                  engineoutput.c nengineoutput.c engineoutput.h \
44                  evalgraph.c evalgraph.h \
45                  history.c \
46                  menus.c menus.h \
47                  usounds.c usystem.c usystem.h \
48                  $(ZPY)
49
50 ### combine sources depending on front-end
51
52 if withGTK
53   xboard_SOURCES = $(backendsources) $(GTKsources)
54 endif
55 if withXaw
56   xboard_SOURCES = $(backendsources) $(Xsources)
57   headers = -I xaw
58 endif
59
60 ###
61
62 SUBDIRS = po
63 xboard_LDADD = -lm @X_LIBS@ @LIBINTL@ @FRONTEND_LIBS@ @CAIRO_LIBS@
64
65 EXTRA_DIST = pixmaps shogi png sounds winboard \
66         xboard.texi gpl.texinfo texi2man texinfo.tex xboard.man xboard.desktop \
67         xboard-fen-viewer.desktop  xboard-pgn-viewer.desktop  xboard-tourney.desktop xboard.xml \
68         COPYRIGHT FAQ.html engine-intf.html ics-parsing.txt readme.htm zippy.README \
69         xboard.conf.in SHORTLOG DIFFSTAT history.c ABOUT-NLS
70
71 DISTCLEANFILES = stamp-h
72
73 AM_CPPFLAGS=-DINFODIR='"$(infodir)"' @CAIRO_CFLAGS@ @FRONTEND_CFLAGS@  -DSYSCONFDIR='"$(sysconfdir)"' \
74             -DLOCALEDIR='"$(localedir)"' -DSVGDIR='"$(svgdir)"' $(headers)
75
76 ACLOCAL_AMFLAGS = -I m4
77
78 info_TEXINFOS =  xboard.texi
79 xboard_TEXINFOS =  copyright.texi
80 man6_MANS = xboard.man
81
82
83 ### config file
84
85 sysconf_DATA = xboard.conf
86
87 ### icon files
88
89 icondir = $(datadir)/icons/hicolor/48x48/apps
90 dist_icon_DATA = xboard.png
91 svgicondir = $(datadir)/icons/hicolor/scalable/apps
92 dist_svgicon_DATA = xboard.svg
93
94
95 ### desktop files for KDE and gnome
96
97 Applicationsdir = $(datadir)/applications
98 Applications_DATA = xboard.desktop xboard-fen-viewer.desktop  xboard-pgn-viewer.desktop  xboard-tourney.desktop
99
100 ### mime file
101 mimedir = $(datadir)/mime/packages
102 mime_DATA = xboard.xml
103
104 ### directory and files for svgs
105
106 svgdir = $(datadir)/games/xboard/themes/default
107 dist_svg_DATA = svg/icon_white.svg         svg/icon_black.svg      \
108            svg/DarkSquare.svg         svg/LightSquare.svg svg/NeutralSquare.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/eo_Analyzing.svg     svg/eo_Black.svg          \
136            svg/eo_Clear.svg         svg/eo_Ponder.svg         \
137            svg/eo_Thinking.svg      svg/eo_Unknown.svg        \
138            svg/eo_White.svg
139
140 shogidir = $(datadir)/games/xboard/themes/shogi
141 dist_shogi_DATA = shogi/WhiteGold.svg shogi/WhiteCrownedBishop.svg\
142            shogi/WhiteBishop.svg      shogi/WhiteKing.svg\
143            shogi/WhiteKnight.svg      shogi/WhiteGoldKnight.svg\
144            shogi/WhiteLance.svg       shogi/WhiteGoldLance.svg\
145            shogi/WhitePawn.svg        shogi/WhiteGoldPawn.svg\
146            shogi/WhiteRook.svg        shogi/WhiteCrownedRook.svg\
147            shogi/WhiteAdvisor.svg     shogi/WhiteGoldSilver.svg
148
149 ### directory and files for pixmaps
150
151 pixmapsdir = $(datadir)/games/xboard/pixmaps/textures
152 dist_pixmaps_DATA = pixmaps/cross32.xpm pixmaps/cross48.xpm pixmaps/board32.xpm pixmaps/board48.xpm
153
154 ### directory and files for pngs
155
156 pngdir = $(datadir)/games/xboard/themes/textures
157 dist_png_DATA = png/hatch.png png/wood_d.png png/wood_l.png png/xqboard.png
158
159 ### directory and files for sound files
160
161 soundsdir = $(datadir)/games/xboard/sounds
162 dist_sounds_DATA = \
163   sounds/cymbal.wav     sounds/pop2.wav   sounds/slap.wav     sounds/ding1.wav      sounds/laser.wav \
164   sounds/woodthunk.wav  sounds/gong.wav   sounds/penalty.wav  sounds/honkhonk.wav   sounds/phone.wav
165
166
167 ### set correct dir in xboard.conf
168
169 edit = sed -e 's|@pngdir[@]|$(pngdir)|g' \
170            -e 's|@soundsdir[@]|$(soundsdir)|g'
171
172 xboard.conf: Makefile $(srcdir)/xboard.conf.in
173         @echo '  'GEN '  ' $@;
174         @rm -f $@ $@.tmp
175         @$(edit) $(srcdir)/$@.in >$@.tmp
176         @mv $@.tmp $@
177
178 distclean-local:
179         -rm -f xboard.conf
180
181 ### the man page depends on several files, so we add a special rule
182
183 xboard.man: xboard.texi copyright.texi gpl.texinfo version.texi
184         $(srcdir)/texi2man $(srcdir)/xboard.texi > xboard.man || (rm -f xboard.man ; false)
185
186 ### install mime-type files and corresponding icons and menu entries if enabled during configure
187
188 install-data-hook: install-mime-database
189 uninstall-hook: uninstall-mime-database
190
191 install-mime-database:
192 if ENABLE_UPDATE_MIMEDB
193         -if test -z "$(DESTDIR)" -a -n "$(XDG_MIME)" -a -n "$(XDG_DESKTOP_MENU)" -a -n "$(XDG_ICON_RESOURCE)" ; then \
194                 $(XDG_MIME) install --mode system --novendor xboard.xml ;\
195                 $(XDG_DESKTOP_MENU) install --mode system --novendor xboard-pgn-viewer.desktop;\
196                 $(XDG_DESKTOP_MENU) install --mode system --novendor xboard-fen-viewer.desktop;\
197                 $(XDG_DESKTOP_MENU) install --mode system --novendor xboard-tourney.desktop;\
198                 $(XDG_DESKTOP_MENU) install --mode system --novendor xboard-config.desktop;\
199                 $(XDG_ICON_RESOURCE) install --context mimetypes --size 32 pixmaps/board32.xpm application-x-chess-pgn;\
200                 $(XDG_ICON_RESOURCE) install --context mimetypes --size 32 pixmaps/cross32.xpm application-x-xboard-trn;\
201                 $(XDG_ICON_RESOURCE) install --context mimetypes --size 32 pixmaps/ini32.xpm application-x-xboard-opt;\
202                 $(XDG_ICON_RESOURCE) install --context mimetypes --size 48 pixmaps/board48.xpm application-x-chess-pgn;\
203                 $(XDG_ICON_RESOURCE) install --context mimetypes --size 48 pixmaps/cross48.xpm application-x-xboard-trn;\
204                 $(XDG_ICON_RESOURCE) install --context mimetypes --size 48 pixmaps/ini48.xpm application-x-xboard-opt;\
205         fi
206 endif
207
208 uninstall-mime-database:
209 if ENABLE_UPDATE_MIMEDB
210         -if test -z "$(DESTDIR)" -a -n "$(XDG_MIME)" -a -n "$(XDG_DESKTOP_MENU)" -a -n "$(XDG_ICON_RESOURCE)" ; then \
211                 $(XDG_MIME) uninstall --mode system --novendor xboard.xml;\
212                 $(XDG_DESKTOP_MENU) uninstall --mode system --novendor xboard-pgn-viewer.desktop;\
213                 $(XDG_DESKTOP_MENU) uninstall --mode system --novendor xboard-fen-viewer.desktop;\
214                 $(XDG_DESKTOP_MENU) uninstall --mode system --novendor xboard-tourney.desktop;\
215                 $(XDG_DESKTOP_MENU) uninstall --mode system --novendor xboard-config.desktop;\
216                 $(XDG_ICON_RESOURCE) uninstall --context mimetypes --size 32 board32.xpm application-x-chess-pgn;\
217                 $(XDG_ICON_RESOURCE) uninstall --context mimetypes --size 32 cross32.xpm application-x-xboard-trn;\
218                 $(XDG_ICON_RESOURCE) uninstall --context mimetypes --size 32 ini32.xpm application-x-xboard-opt;\
219                 $(XDG_ICON_RESOURCE) uninstall --context mimetypes --size 48 board48.xpm application-x-chess-pgn;\
220                 $(XDG_ICON_RESOURCE) uninstall --context mimetypes --size 48 cross48.xpm application-x-xboard-trn;\
221                 $(XDG_ICON_RESOURCE) uninstall --context mimetypes --size 48 ini48.xpm application-x-xboard-opt;\
222         fi
223 endif