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)
15 # any later ../version.
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 # pat2inc converts pattern textfile to "pattern.inc" include file.
30 # sizetest shows the memory usage of the main data structures.
36 INSTALL_DATA
= @INSTALL_DATA@
37 INSTALL_PROGRAM
= @INSTALL_PROGRAM@
43 # Installation directory.
46 # Where the binaries live.
47 BINDIR
= $(prefix)/bin
49 # Where the language description, the book, and the
50 # persistent hashtable live.
51 LIBDIR
= $(prefix)/lib
/gnushogi
53 # Where the man page goes.
54 MANDIR
= $(prefix)/man
/man6
56 # Where the info file goes.
57 INFODIR
= $(prefix)/info
63 LCURSES
= -lcurses
-ltermcap
67 # C compiler and compiler options.
71 CWARNINGS
= @WARNINGS@
72 CEXTRAFLAGS
= @CEXTRAFLAGS@
73 CFLAGS
= @CFLAGS@
$(CEXTRAFLAGS
) $(CWARNINGS
) -I
$(ROOT
) -I@top_builddir@
76 # The hashfile is a record of positions seen. It is used by
77 # GNU Shogi to avoid making the same mistakes, a form of learning.
79 HASH
= -DHASHFILE
=\"$(LIBDIR
)/gnushogi.hsh
\"
82 # The "book" is a record of the first few moves, for playing good
83 # moves easily and quickly, saving time, and irritating the human
86 TEXTBOOK
= -DBOOK
=\"$(LIBDIR
)/gnushogi.tbk
\"
87 BINBOOK
= -DBINBOOK
=\"$(LIBDIR
)/gnushogi.bbk
\"
90 # The language file describes capabilities of the program. It may
91 # be useful for customizing gnushogi for non-English-speaking players.
93 LANGF
= -DLANGFILE
=\"..
/misc
/gnushogi.lng
\"
96 # The pattern file contains various opening patterns. The program tries to
97 # obtain such a pattern in the opening stage. Sequences of opening
98 # patterns may be described in order to support the correct order of moves.
100 PATTERN
= -DPATTERNFILE
=\"..
/misc
/gnushogi.pat
\"
104 @echo No target specified.
127 GNUSHOGI_FILES
= $(COMMONFILES
) main.o
130 PAT2INCFILES
= $(COMMONFILES
) makepattern.o pat2inc.o
138 $(CC
) $(CFLAGS
) -o gnushogi
$(GNUSHOGI_FILES
) $(LDFLAGS
) $(LCURSES
) $(LIBS
)
141 $(CC
) $(CFLAGS
) -o pat2inc
$(PAT2INCFILES
) $(LDFLAGS
) $(LCURSES
) $(LIBS
)
144 $(CC
) $(CFLAGS
) -o sizetest sizetest.o
$(LDFLAGS
) $(LIBS
)
147 $(MAKE
) -f Makefile.profile gnushogi
156 $(CC
) $(CFLAGS
) -c
$<
159 $(CC
) $(CFLAGS
) $(TEXTBOOK
) $(BINBOOK
) -c
$<
161 commondsp.o
: commondsp.c
162 $(CC
) $(CFLAGS
) -c
$<
164 cursesdsp.o
: cursesdsp.c
165 $(CC
) $(CFLAGS
) -c
$<
167 dspwrappers.o
: dspwrappers.c
168 $(CC
) $(CFLAGS
) -c
$<
171 $(CC
) $(CFLAGS
) -c
$<
174 $(CC
) $(CFLAGS
) -c
$<
177 $(CC
) $(CFLAGS
) -c
$<
180 $(CC
) $(CFLAGS
) $(LANGF
) -c
$<
183 $(CC
) $(CFLAGS
) $(BINBOOK
) -c
$<
185 # To create "pattern.inc" with "pat2inc", the external
186 # pattern textfile must be used.
188 makepattern.o
: makepattern.c
189 $(CC
) $(CFLAGS
) $(PATTERN
) -c
$<
192 $(CC
) $(CFLAGS
) -c
$<
195 $(CC
) $(CFLAGS
) -c
$<
198 $(CC
) $(CFLAGS
) -c
$<
201 $(CC
) $(CFLAGS
) -c
$<
204 $(CC
) $(CFLAGS
) -c
$<
207 # Files specific to particular targets.
210 $(CC
) $(CFLAGS
) $(LANGF
) $(BINBOOK
) $(PATTERN
) -c
$<
212 sizetest.o
: sizetest.c
213 $(CC
) $(CFLAGS
) -c
$<
221 @if
[ -f .
/gnushogi.bbk
]; then
rm .
/gnushogi.bbk
; fi
223 cat
$(ROOT
)/misc
/gnushogi.tbk
> _tmp_t
224 cat
test | .
/gnushogi
-R
-b _tmp_t
-B .
/gnushogi.bbk
-S
8000 -P
40 3 0
235 $(INSTALL_PROGRAM
) -d
$(BINDIR
)
236 $(INSTALL_PROGRAM
) -d
$(LIBDIR
)
237 $(INSTALL_PROGRAM
) -d
$(MANDIR
)
238 $(INSTALL_PROGRAM
) -d
$(INFODIR
)
239 $(INSTALL_PROGRAM
) gnushogi
$(BINDIR
)
240 $(INSTALL_DATA
) $(ROOT
)/doc
/gnushogi
.6 $(MANDIR
)
241 $(INSTALL_DATA
) $(ROOT
)/doc
/gnushogi.
info* $(INFODIR
)
242 $(INSTALL_DATA
) gnushogi.bbk
$(LIBDIR
)/gnushogi.bbk
249 CLEANFILES
= *.o gnushogi sizetest pat2inc CLp
* *.bbk
252 @for file in
$(CLEANFILES
); do \
253 if
[ -f
$$file ]; then
rm $$file; fi
; \
261 gnushogi
: $(GNUSHOGI_FILES
)
262 pat2inc
: $(PAT2INCFILES
)
264 attacks.o
: attacks.c gnushogi.h
$(ROOT
)/version.h
265 book.o
: book.c gnushogi.h
$(ROOT
)/version.h
266 commondsp.o
: commondsp.c gnushogi.h
$(ROOT
)/version.h
267 cursesdsp.o
: cursesdsp.c gnushogi.h
$(ROOT
)/version.h
268 dspwrappers.o
: dspwrappers.c gnushogi.h
$(ROOT
)/version.h
269 genmove.o
: genmove.c gnushogi.h
$(ROOT
)/version.h
270 globals.o
: globals.c gnushogi.h
$(ROOT
)/version.h
271 eval.o
: eval.c eval.h gnushogi.h
$(ROOT
)/version.h
$(SRCDIR
)/pattern.h
272 init.o
: init.c gnushogi.h
$(ROOT
)/version.h
$(SRCDIR
)/pattern.h
273 main.o
: main.c gnushogi.h
$(ROOT
)/version.h
274 makepattern.o
: pattern.c gnushogi.h
$(SRCDIR
)/pattern.h
275 pattern.o
: pattern.c gnushogi.h
$(SRCDIR
)/pattern.h
$(SRCDIR
)/pattern.inc
276 rawdsp.o
: rawdsp.c gnushogi.h
$(ROOT
)/version.h
277 search.o
: search.c gnushogi.h
$(ROOT
)/version.h
278 tcontrl.o
: tcontrl.c gnushogi.h
$(ROOT
)/version.h
279 util.o
: util.c gnushogi.h
$(ROOT
)/version.h
280 pat2inc.o
: pat2inc.c
$(SRCDIR
)/pattern.h
$(SRCDIR
)/gnushogi.h
281 sizetest.o
: sizetest.c
$(SRCDIR
)/gnushogi.h
$(SRCDIR
)/eval.h
282 gnushogi.bbk
: gnushogi