2 # Makefile for GNU Shogi
4 # Copyright (c) 1993, 1994 Matthias Mutz
5 # Copyright (c) 1998, 1999 Michael Vanier and the Free Software Foundation
7 # GNU Shogi is based on GNU Chess
8 # Copyright (c) 1992 Free Software Foundation
10 # This file is part of GNU Shogi.
12 # GNU Shogi is free software; you can redistribute it and/or modify
13 # it under the terms of the GNU General Public License as published by
14 # the Free Software Foundation; either version 3 of the License, or (at your option)
17 # GNU Shogi is distributed in the hope that it will be useful,
18 # but WITHOUT ANY WARRANTY; without even the implied warranty of
19 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 # GNU General Public License for more details.
22 # You should have received a copy of the GNU General Public License
23 # along with GNU Shogi; see the file COPYING.
24 # If not, see <http://www.gnu.org/licenses/>.
28 # gnushogi is GNU shogi, for raw text, curses, or x output.
29 # gnuminishogi is GNU minishogi, for raw text, curses, or x output.
30 # pat2inc converts pattern textfile to "pattern.inc" include file.
31 # sizetest shows the memory usage of the main data structures.
36 INSTALL_DATA = @INSTALL_DATA@
37 INSTALL_PROGRAM = @INSTALL_PROGRAM@
45 # Installation directory.
48 # Where the binaries live.
49 BINDIR = $(prefix)/bin
51 # Where the language description, the book, and the
52 # persistent hashtable live.
53 LIBDIR = $(prefix)/lib/$(PROGNAME)
55 # Where the man page goes.
56 MANDIR = $(prefix)/man/man6
58 # Where the info file goes.
59 INFODIR = $(prefix)/info
69 # C compiler and compiler options.
73 CWARNINGS = @WARNINGS@
74 CEXTRAFLAGS = @CEXTRAFLAGS@
75 CFLAGS = @CFLAGS@ $(HASH) $(CEXTRAFLAGS) $(CWARNINGS) -I$(ROOT) -I@top_builddir@ -I.
78 # The hashfile is a record of positions seen. It is used by
79 # GNU Shogi to avoid making the same mistakes, a form of learning.
81 HASH = -DHASHFILE=\"$(LIBDIR)/$(PROGNAME).hsh\"
84 # The "book" is a record of the first few moves, for playing good
85 # moves easily and quickly, saving time, and irritating the human
88 TEXTBOOK = -DBOOK=\"$(LIBDIR)/$(PROGNAME).tbk\"
89 BINBOOK = -DBINBOOK=\"$(LIBDIR)/$(PROGNAME).bbk\"
92 # The pattern file contains various opening patterns. The program tries to
93 # obtain such a pattern in the opening stage. Sequences of opening
94 # patterns may be described in order to support the correct order of moves.
96 PATTERNFILE=$(ROOT)/misc/$(PROGNAME).pat
97 PATTERN = -DPATTERNFILE=\"$(PATTERNFILE)\"
101 @echo No target specified.
128 GNUSHOGI_FILES = $(COMMONFILES) $(NOTCOMMONFILES) main.o
131 PAT2INCFILES = $(COMMONFILES) makepattern.o pat2inc.o
139 $(CC) $(CFLAGS) -o $(PROGNAME) $(GNUSHOGI_FILES) $(LDFLAGS) $(LCURSES) $(LIBS)
142 $(CC) $(CFLAGS) -o pat2inc $(PAT2INCFILES) $(LDFLAGS) $(LCURSES) $(LIBS)
145 $(CC) $(CFLAGS) -o sizetest sizetest.o $(LDFLAGS) $(LIBS)
148 $(MAKE) -f Makefile.profile gnushogi
157 $(CC) $(CFLAGS) -c $<
160 $(CC) $(CFLAGS) $(TEXTBOOK) $(BINBOOK) -c $<
162 commondsp.o: commondsp.c
163 $(CC) $(CFLAGS) -c $<
165 cursesdsp.o: cursesdsp.c
166 $(CC) $(CFLAGS) -c $<
168 dspwrappers.o: dspwrappers.c
169 $(CC) $(CFLAGS) -c $<
172 $(CC) $(CFLAGS) -c $<
175 $(CC) $(CFLAGS) -c $<
178 $(CC) $(CFLAGS) -c $<
181 $(CC) $(CFLAGS) -c $<
183 init-common.o: init-common.c
184 $(CC) $(CFLAGS) $(LANGF) -c $<
187 $(CC) $(CFLAGS) $(BINBOOK) -c $<
189 # To create "pattern.inc" with "pat2inc", the external
190 # pattern textfile must be used.
192 makepattern.o: makepattern.c
193 $(CC) $(CFLAGS) $(PATTERN) -c $<
196 $(CC) $(CFLAGS) -c $<
198 pattern-common.o: pattern-common.c
199 $(CC) $(CFLAGS) -c $<
202 $(CC) $(CFLAGS) -c $<
205 $(CC) $(CFLAGS) -c $<
208 $(CC) $(CFLAGS) -c $<
211 $(CC) $(CFLAGS) -c $<
214 # Files specific to particular targets.
217 $(CC) $(CFLAGS) $(BINBOOK) $(PATTERN) -c $<
219 sizetest.o: sizetest.c
220 $(CC) $(CFLAGS) -c $<
222 pattern.inc: $(PATTERNFILE) pat2inc
230 @if [ -f ./$(PROGNAME).bbk ]; then rm ./$(PROGNAME).bbk; fi
232 cat $(ROOT)/misc/$(PROGNAME).tbk > _tmp_t
233 cat test | ./$(PROGNAME) -R -b _tmp_t -B ./$(PROGNAME).bbk -S 8000 -P 40 3 0
244 $(INSTALL_PROGRAM) -d $(BINDIR)
245 $(INSTALL_PROGRAM) -d $(LIBDIR)
246 $(INSTALL_PROGRAM) -d $(MANDIR)
247 $(INSTALL_PROGRAM) -d $(INFODIR)
248 $(INSTALL_PROGRAM) $(PROGNAME) $(BINDIR)
249 $(INSTALL_DATA) $(ROOT)/doc/gnushogi.6 $(MANDIR)
250 $(INSTALL_DATA) $(ROOT)/doc/gnushogi.info* $(INFODIR)
251 $(INSTALL_DATA) $(PROGNAME).bbk $(LIBDIR)/$(PROGNAME).bbk
258 CLEANFILES = *.o gnushogi gnuminishogi sizetest pat2inc CLp* *.bbk
261 @for file in $(CLEANFILES); do \
262 if [ -f $$file ]; then rm $$file; fi; \
270 $(PROGNAME): $(GNUSHOGI_FILES)
271 pat2inc: $(PAT2INCFILES)
273 attacks.o: attacks.c gnushogi.h
274 book.o: book.c gnushogi.h
275 commondsp.o: commondsp.c gnushogi.h
276 cursesdsp.o: cursesdsp.c gnushogi.h
277 dspwrappers.o: dspwrappers.c gnushogi.h
278 genmove.o: genmove.c gnushogi.h
279 globals.o: globals.c gnushogi.h
280 eval.o: eval.c eval.h gnushogi.h $(SRCDIR)/pattern.h
281 init.o: init.c gnushogi.h $(SRCDIR)/pattern.h
282 main.o: main.c gnushogi.h
283 makepattern.o: pattern.c gnushogi.h $(SRCDIR)/pattern.h
284 pattern.o: pattern.c gnushogi.h $(SRCDIR)/pattern.h pattern.inc
285 rawdsp.o: rawdsp.c gnushogi.h
286 search.o: search.c gnushogi.h
287 tcontrl.o: tcontrl.c gnushogi.h
288 util.o: util.c gnushogi.h
289 pat2inc.o: pat2inc.c $(SRCDIR)/pattern.h $(SRCDIR)/gnushogi.h
290 sizetest.o: sizetest.c $(SRCDIR)/gnushogi.h $(SRCDIR)/eval.h
291 $(PROGNAME).bbk: $(PROGNAME)