#
# Makefile for GNU Chess
#
# Copyright (c) 1992, 1995 Free Software Foundation
#
# This file is part of GNU CHESS.
#
# GNU Chess is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# GNU Chess is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GNU Chess; see the file COPYING.  If not, write to
# the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
#

#
# gnuchess  is a curses-based chess.
# gnuchessn is a fancy-display-curses-based chess.
# gnuchessr is a plain dumb-terminal chess (but with full variation output)
# gnuchessc is suitable for chesstool use (mimics /usr/games/chess output)
# gnuchessx is the xchess based chess.
#

# The version number of this GNU release
VERS=   4.0

# Relevant file areas.
DIST=   ../README ../README.lang ../doc ../misc ../src ../test

# size of book to make
# Listed below are the book options and the size of the resulting book,
# the default is small. Uncomment/comment the BOOKOPTS corresponding to
# the size you want.
#
#huge           1,450K
#BOOKOPTS=-S 188000 -P 26
#big            540K
#BOOKOPTS=-S 45000 -P 16
#med            240K
#BOOKOPTS=-S 20000 -P 12
#small          144K
BOOKOPTS=-S 12000 -P 10
#tiny           78K
#BOOKOPTS=-S 9000 -P 8



# Distribution directory
DISTDIR= gnuchess-4.0.pl74

# Programs being distributed
PROGS=gnuchess-4.0.pl74/src gnuchess-4.0.pl74/misc gnuchess-4.0.pl74/doc

LIBS = -lm
#LIBS = -lm /usr/ucblib/libucb.a  #Solaris 2.3

BOOK=/book/gnuchess.bk3.gz

# Change these to something less transitory, like /usr/games, and then
# compile. Ask your system admin / unix guru to put gnuchess.{hash,lang,book}
# in $(LIBDIR).
# Where the binaries live.
#BINDIR= /usr/local/bin
BINDIR=.

# Where language description, our book, and the persistent hash live.
#LIBDIR= /usr/local/lib
LIBDIR=PROGDIR:lib

# Display routines.
LCURSES=-lcurses

# Table limits from gnuchess.h. These are given default values if not
# set here. The default values are given below, but you may want to
# check gnuchess.h to make sure.
# -Dttblsz=150001 Transposition table size. Small address space computers
#                 might try 8001. Setting ttblsz to 0 removes the transposition
#                 table
# -DBOOKSIZE=250000 Number of unique position/move combinations allowed.
#                   For MSDOS 10000 is used.

#compile options for gnuchess
#    Search options
# -DHISTORY use history hueristic
# -DKILLT use killt killer hueristic
# -DNULLMOVE include null move heuristic
# -DDEEPNULL include deepnull move heuristic
# -DUNLIMITEDCAPS allow unlimited depth captures.
# -DPRUNE enable marginal forward pruning
# -DNOMATERIAL don't call it a draw when no pawns and both sides < rook
# -DNODYNALPHA don't dynamically adjust alpha
# -DOLDTIME use old ply time estimating function
# -DLEGAL generate only legal moves instead of psuedo-legal
# -DCACHE  Cache static evaluations
# -DNODITHER no random element to evaluations
#
#    Verbosity options
# -DBAREBONES compile for max speed no statistics etc kept
# -DQUIETBACKGROUND don't print post information in background ( easy OFF)
# -DHASHSTATS keep hash table statistics
# -DMORESTATS print more hash table stats
# -DQUIETBOOKGEN Don't print errors while loading a book or generating a binbook
# -DSEMIQUIETBOOKGEN Print less verbose errors while reading book or generating binbook
#
#    Miscellaneous options
# -DHAVE_TIME_H have <time.h> header
# -DHASSTRTOUL if your machine supports strtoul() else strtol()
# -DHASGETTIMEOFDAY use gettimeofday for more accurate timing
# -DNOMEMSET if your machine does not support memset
# -DECO if you want support for eco database
# -DCLIENT create client version for use with ICS
# -DLONG64 if you have 64bit longs
# -DSYSV   if you are using SYSV
# -DE4OPENING always open e4 if white and respond to e4 with e5 if black
#
#    Some debug options
# -DDEBUG8 dump board,movelist,input move to /tmp/DEBUG if illegal move
# -DDEBUG9 dump move list from test command
# -DDEBUG10 dump board and move after search before !easy begins
# -DDEBUG11 dump board when the move is output
# -DDEBUG12 dump boards between moves
# -DDEBUG13 dump search control information for each move to /tmp/DEBUG
# -DDEBUG33 dump book moves as read from book
# -DDEBUG40 include extra values of variables for debugging  in game list
# -DDEBUG41 dump post output to /tmp/DEBUG
# the rest of the debug options are tied to the debuglevel command
# -DDEBUG sets up code for debuglevel command
#          debuglevel
#               1 always force evaluation in evaluate
#               4 print move list after search
#               8 print move list after book before search
#              16 print move list after each ply of search
#              32 print adds to transposition table
#              64 print returns from transposition table lookups
#             128 print evals
#             256 print search tree as it is generated
#             512 debug trace of search tree
#            1024 interactive tree print
#     prints:
# move goal-depth depth ply tree-index flags node-score score alpha beta best movegen-score
#
#example:
#
#debug?p3
#debug?e2e3
#debug?g2e3
#debug?
#
#Move# 1    Target= 0    Clock: 0
#        f2e3 S2 d0 p3 71 200 n->s176 s-179 a343 b512 best-179 x369
#        a6h6 S2 d0 p3 72 200 n->s-802 s-179 a343 b512 best176 x369
#    g2e3 S2 d1 p2 34 200 n->s-176 s-410 a-512 b-343 best-12000 x369
#e2e3 S2 d2 p1 17 0 n->s175 s422 a343 b512 best343 x369
#
#               debug? p#  where # is no. of plys to print
#                               from top of tree (default all plys)
#                      XXXX moves specifying branch of tree to print
#                               (default all branches)
#                              return terminates input
#            2048 non-interactive trace print
# gnufour ICS client
#
#OPT= -DUSEINT -DCACHE -DCLIENT -DGDX -DHASGETTIMEOFDAY -DNULLMOVE -DQUIETBACKGROUND -DWAY4PL64 -DHISTORY -DAGING -DKILLT -DSHOWLINE -DUNLIMITEDCAPS -DPRUNE -DOLDTIME
## normal
OPT=  -DUSEINT -DCACHE -DGDX -DHASGETTIMEOFDAY -DNULLMOVE -DQUIETBACKGROUND -DWAY4PL64 -DHISTORY -DHASHSTATS -DAGING -DKILLT -DECO -DUNLIMITEDCAPS -DPRUNE -DOLDTIME

#
# The hashfile is a record of positions seen. It is used by
# GNU Chess to avoid making the same mistakes, a form of learning.
#
#
# The "book" is a record of the first few moves, for playing good
# moves easily and quickly, saving time, and irritating the human
# opponent.
#
#
# The language file describes capabilities of the program. Perhaps
# it is useful for non-English speaking countries and customizing
# for their convenience and chess happiness.
#

############################################################################
#
#  Use this to compile with gcc and gmake
#
############################################################################

#HASH=   -DHASHFILE=\"$(LIBDIR)/gnuchess.hash\"
#BINBOOK = -DBINBOOK=\"$(LIBDIR)/gnuchess.data\"
#BINECO = -DBINECO=\"$(LIBDIR)/gnuchess.eco\"
#PGNECO = -D\PGNECO=\"$(LIBDIR)/eco.pgn\"
#LANGF= -DLANGFILE=\"$(LIBDIR)/gnuchess.lang\"
#CC = gcc -D_amigados $(OPT)
#CFLAGS = -g -O2 -funroll-loops -IWork:curses210 -LWork:curses210/lib


############################################################################
#
#   Use this to compile with dcc and dmake
#
############################################################################

HASH=   -DHASHFILE="$(LIBDIR)/gnuchess.hash"
BINBOOK = -DBINBOOK="$(LIBDIR)/gnuchess.data"
BINECO = -DBINECO="$(LIBDIR)/gnuchess.eco"
PGNECO = -DPGNECO="$(LIBDIR)/eco.pgn"
LANGF= -DLANGFILE="$(LIBDIR)/gnuchess.lang"
CC = dcc -D_amigados $(OPT)
CFLAGS = -s -d1 -mD -IWork:curses210 -LWork:curses210/dlib


############################################################################
#
#   Use this to compile with SAS/C and smake (Assumes Unix compatible
#   frontend cc; Aminet, dev/misc/cc.lha)
#
############################################################################

#HASH=   -DHASHFILE="$(LIBDIR)/gnuchess.hash"
#BINBOOK = -DBINBOOK="$(LIBDIR)/gnuchess.data"
#BINECO = -DBINECO="$(LIBDIR)/gnuchess.eco"
#PGNECO = -D\PGNECO="$(LIBDIR)/eco.pgn"
#LANGF= -DLANGFILE="$(LIBDIR)/gnuchess.lang"
#CC = cc -D_amigados $(OPT)
#CFLAGS = -g



############################################################################
#
#   You should not need to change anything below.
#
############################################################################

BINARIES=gnuchess gnuchessn gnuchessr gnuchessx postprint gnuan game \
	 ecor ecosort ecocvt binsort
LIBFILES=gnuchess.data gnuchess.eco

all: $(BINARIES) $(LIBFILES)

gnuchess: mainN.o bookN.o genmovesN.o ataks.o utilN.o evalN.o init.o searchN.o dspcomN.o uxdsp.o kbhit.o gettimeofday.o
	$(CC) $(CFLAGS) $(HASH) $(LANGF)  -o gnuchess mainN.o bookN.o genmovesN.o ataks.o utilN.o evalN.o init.o searchN.o dspcomN.o uxdsp.o kbhit.o gettimeofday.o $(LCURSES) $(LIBS)

gnuan: mainN.o bookG.o genmovesN.o ataks.o utilN.o evalN.o init.o searchG.o gnuan.o kbhit.o gettimeofday.o
	$(CC) $(CFLAGS) $(HASH) $(LANGF) -DIGNUAN  -o gnuan mainN.o bookG.o genmovesN.o ataks.o utilN.o evalN.o init.o searchG.o gnuan.o kbhit.o gettimeofday.o $(LIBS)

gnuchessc: mainC.o bookC.o genmovesC.o ataks.o utilC.o evalC.o init.o searchC.o dspcomC.o nondspC.o
	$(CC) $(CFLAGS) $(HASH) $(LANGF)  -o gnuchessc mainC.o bookC.o genmovesC.o ataks.o utilC.o evalC.o init.o searchC.o dspcomC.o nondspC.o $(LIBS)

gnuchessx: mainX.o bookX.o genmovesX.o ataks.o utilX.o evalX.o init.o searchX.o dspcomX.o nondspX.o gettimeofday.o
	$(CC) $(CFLAGS) $(HASH) $(LANGF)  -o gnuchessx mainX.o bookX.o genmovesX.o ataks.o utilX.o evalX.o init.o searchX.o dspcomX.o nondspX.o gettimeofday.o $(LIBS)

ecor: mainN.o eco.o genmovesN.o ataks.o utilN.o evalN.o init.o searchN.o dspcomR.o nondspR.o kbhit.o gettimeofday.o
      $(CC) $(CFLAGS) $(HASH) $(LANGF)  -o ecor mainN.o eco.o genmovesN.o ataks.o utilN.o evalN.o init.o searchN.o dspcomR.o nondspR.o kbhit.o gettimeofday.o $(LIBS)

gnuchessr: mainN.o bookN.o genmovesN.o ataks.o utilN.o evalN.o init.o searchN.o dspcomR.o nondspR.o kbhit.o gettimeofday.o
	$(CC) $(CFLAGS) $(HASH) $(LANGF)  -o gnuchessr mainN.o bookN.o genmovesN.o ataks.o utilN.o evalN.o init.o searchN.o dspcomR.o nondspR.o kbhit.o gettimeofday.o $(LIBS)

gnuchessn: mainN.o bookN.o genmovesN.o ataks.o utilN.o evalN.o init.o searchN.o dspcomN.o nuxdsp.o kbhit.o gettimeofday.o
	$(CC) $(CFLAGS) $(HASH) $(LANGF)  -o gnuchessn mainN.o bookN.o genmovesN.o ataks.o utilN.o evalN.o init.o searchN.o dspcomN.o nuxdsp.o kbhit.o gettimeofday.o $(LCURSES) $(LIBS)

game: game.c gnuchess.h
	$(CC) $(CFLAGS) -o game game.c

postprint: postprint.o
	$(CC) $(CFLAGS) $(HASH) -o postprint postprint.o

gnuan.o: gnuan.c gnuchess.h version.h
	$(CC) $(CFLAGS) $(HASH) $(LANGF) -DIGNUAN $(BINBOOK) -c gnuan.c

mainN.o: main.c gnuchess.h version.h ttable.h
	$(CC) $(CFLAGS) $(HASH) $(LANGF)  $(BINBOOK) -c main.c
	mv main.o mainN.o

mainC.o: main.c gnuchess.h version.h ttable.h
	$(CC) $(CFLAGS) $(HASH) $(LANGF)  $(BINBOOK) -DNONDSP -DCHESSTOOL \
		-c main.c
	mv main.o mainC.o

mainX.o: main.c gnuchess.h version.h ttable.h
	$(CC) $(CFLAGS) $(HASH) $(LANGF)  $(BINBOOK) -DXBOARD  -c main.c
	mv main.o mainX.o

mainDR.o: main.c gnuchess.h version.h ttable.h
	$(CC)  -DDEBUG -DDEBUG4 $(CFLAGS) $(HASH) $(LANGF)  $(BINBOOK) \
		-c main.c
	mv main.o mainDR.o

genmovesN.o: genmoves.c gnuchess.h version.h ttable.h
	$(CC) $(CFLAGS) $(HASH) $(LANGF)  -c genmoves.c
	mv genmoves.o genmovesN.o

genmovesC.o: genmoves.c gnuchess.h version.h ttable.h
	$(CC) $(CFLAGS) $(HASH) $(LANGF)  -DNONDSP -DCHESSTOOL \
		-c genmoves.c
	mv genmoves.o genmovesC.o

genmovesX.o: genmoves.c gnuchess.h version.h ttable.h
	$(CC) $(CFLAGS) $(HASH) $(LANGF)  -DXBOARD \
		-c genmoves.c
	mv genmoves.o  genmovesX.o

eco.o: eco.c gnuchess.h version.h ataks.h ttable.h
	$(CC) $(CFLAGS) $(HASH) $(LANGF)  $(BINBOOK) $(BINECO)  $(PGNECO) -c eco.c

bookN.o: book.c gnuchess.h version.h ataks.h ttable.h
	$(CC) $(CFLAGS) $(HASH) $(LANGF)  $(BINBOOK) $(PGNECO) $(BINECO) -c book.c
	mv book.o bookN.o

bookG.o: book.c gnuchess.h version.h ataks.h ttable.h
	$(CC) $(CFLAGS) $(HASH) $(LANGF)  $(BINBOOK) $(PGNECO) $(BINECO) -DIGNUAN  -c book.c
	mv book.o bookG.o

bookC.o: book.c gnuchess.h version.h ataks.h ttable.h
	$(CC) $(CFLAGS) $(HASH) $(LANGF)  -DNONDSP -DCHESSTOOL \
	      $(BINBOOK) \
		$(PGNECO) $(BINECO) -c book.c
	mv book.o bookC.o

bookX.o: book.c gnuchess.h version.h ataks.h ttable.h
	$(CC) $(CFLAGS) $(HASH) $(LANGF)  -DXBOARD  $(BINBOOK) \
		$(PGNECO) $(BINECO) -c book.c
	mv book.o  bookX.o

ataks.o: ataks.h ataks.c gnuchess.h version.h ttable.h
	$(CC) $(CFLAGS) $(HASH) $(LANGF)  -c ataks.c

utilN.o: util.c gnuchess.h version.h
	$(CC) $(CFLAGS) $(HASH) $(LANGF)  -c util.c
	mv util.o utilN.o

utilX.o: util.c gnuchess.h version.h
	$(CC) $(CFLAGS) $(HASH) $(LANGF)   \
		 -c util.c
	mv util.o  utilX.o

utilC.o: util.c gnuchess.h version.h
	$(CC) $(CFLAGS) $(HASH) $(LANGF)   \
		 -c util.c
	mv util.o  utilC.o

evalC.o: eval.c gnuchess.h version.h ttable.h
	$(CC) $(CFLAGS) $(HASH) $(LANGF)   -c eval.c
	mv eval.o evalC.o

evalX.o: eval.c gnuchess.h version.h ttable.h
	$(CC) $(CFLAGS) $(HASH) $(LANGF)   -c eval.c
	mv eval.o evalX.o

evalN.o: eval.c gnuchess.h version.h ttable.h
	$(CC) $(CFLAGS) $(HASH) $(LANGF)  -c eval.c
	mv eval.o evalN.o

evalDR.o: eval.c gnuchess.h version.h ttable.h
	$(CC)  -DDEBUG4 -DDEBUG $(CFLAGS) $(HASH) $(LANGF)  \
		-c eval.c
	mv eval.o evalDR.o

utilDR.o: util.c gnuchess.h version.h
	$(CC)  -DDEBUG4 -DDEBUG $(CFLAGS) $(HASH) $(LANGF)  \
		-c util.c
	mv util.o utilDR.o

init.o: init.c gnuchess.h version.h ttable.h
	$(CC) $(CFLAGS) $(HASH) $(LANGF)  -c init.c

searchN.o: search.c gnuchess.h version.h debug512.h debug10.h debug13.h debug16.h debug256.h debug4.h debug40.h debug41.h debug64.h debug8.h ttable.h ttable.c
	$(CC) $(CFLAGS) $(HASH) $(LANGF)  -c search.c
	mv search.o searchN.o

searchG.o: search.c gnuchess.h version.h debug512.h debug10.h debug13.h debug16.h debug256.h debug4.h debug40.h debug41.h debug64.h debug8.h ttable.h ttable.c
	$(CC) $(CFLAGS) $(HASH) $(LANGF) -DIGNUAN  -c search.c
	mv search.o searchG.o

searchC.o: search.c gnuchess.h version.h debug512.h debug10.h debug13.h debug16.h debug256.h debug4.h debug40.h debug41.h debug64.h debug8.h ttable.h ttable.c
	$(CC) $(CFLAGS) $(HASH) $(LANGF)  -DNONDSP -DCHESSTOOL \
		-c search.c
	mv search.o searchC.o

searchX.o: search.c gnuchess.h version.h debug512.h debug10.h debug13.h debug16.h debug256.h debug4.h debug40.h debug41.h debug64.h debug8.h ttable.h ttable.c
	$(CC) $(CFLAGS) $(HASH) $(LANGF)  -DXBOARD \
		-c search.c
	mv search.o searchX.o

searchDR.o: search.c gnuchess.h version.h debug512.h debug10.h debug13.h debug16.h debug256.h debug4.h debug40.h debug41.h debug64.h debug8.h ttable.h ttable.c
	$(CC)  -DDEBUG4 -DDEBUG $(CFLAGS) $(HASH) $(LANGF)  \
		-c search.c
	mv search.o searchDR.o

uxdsp.o: uxdsp.c gnuchess.h version.h
	$(CC) $(CFLAGS) $(HASH) $(LANGF)  -c uxdsp.c

nuxdsp.o: nuxdsp.c gnuchess.h version.h
	$(CC) $(CFLAGS) $(HASH) $(LANGF)  -c nuxdsp.c

nondspC.o: nondsp.c gnuchess.h version.h
	$(CC) $(CFLAGS) $(HASH) $(LANGF)  -DNONDSP -DCHESSTOOL \
		-c nondsp.c
	mv nondsp.o nondspC.o

nondspX.o: nondsp.c gnuchess.h version.h
	$(CC) $(CFLAGS) $(HASH) $(LANGF)  -DNONDSP -DXBOARD \
		-c nondsp.c
	mv nondsp.o nondspX.o

nondspR.o: nondsp.c gnuchess.h version.h
	$(CC) $(CFLAGS) $(HASH) $(LANGF)  -DNONDSP \
		-c nondsp.c
	mv nondsp.o nondspR.o

nondspDR.o: nondsp.c gnuchess.h version.h
	$(CC)  -DDEBUG4 -DDEBUG $(CFLAGS) $(HASH) $(LANGF)  -DNONDSP \
		 -c nondsp.c
	mv nondsp.o nondspDR.o

dspcomN.o: dspcom.c gnuchess.h version.h
	$(CC) $(CFLAGS) $(HASH) $(LANGF)  -c dspcom.c
	mv dspcom.o dspcomN.o

dspcomC.o: dspcom.c gnuchess.h version.h
	$(CC) $(CFLAGS) $(HASH) $(LANGF)  -DNONDSP -DCHESSTOOL \
		-c dspcom.c
	mv dspcom.o dspcomC.o

dspcomX.o: dspcom.c gnuchess.h version.h
	$(CC) $(CFLAGS) $(HASH) $(LANGF)  -DNONDSP -DXBOARD \
		-c dspcom.c
	mv dspcom.o dspcomX.o

dspcomR.o: dspcom.c gnuchess.h version.h
	$(CC) $(CFLAGS) $(HASH) $(LANGF)  -DNONDSP \
		-c dspcom.c
	mv dspcom.o dspcomR.o

dspcomDR.o: dspcom.c gnuchess.h version.h
	$(CC)  -DDEBUG -DDEBUG4 $(CFLAGS) $(HASH) $(LANGF)  -DNONDSP \
		-c dspcom.c
	mv dspcom.o dspcomDR.o

postprint.o: postprint.c gnuchess.h version.h
	$(CC) $(CFLAGS) $(HASH) -c postprint.c

binsort:        binsort.c binsort.h
	$(CC) $(CFLAGS) -o binsort binsort.c

ecosort:        ecosort.c gnuchess.h
	$(CC) $(CFLAGS) -o ecosort ecosort.c

ecocvt: ecocvt.c
	$(CC) $(CFLAGS) -o ecocvt ecocvt.c


kbhit.o: kbhit.c
	$(CC) $(CFLAGS) -c -o kbhit.o kbhit.c

gettimeofday.o: gettimeofday.c
	$(CC) $(CFLAGS) -c -o gettimeofday.o gettimeofday.c

# Creating gnuchess.data *not* in RAM disk is incredibly slow.
gnuchess.data: $(BOOK)
	C:Delete gnuchess.data QUIET
	gzip -cd $(BOOK) >gnuchess.book
	echo quit >t:gnuchess.input
	Stack 100000
	gnuchessx <t:gnuchess.input -b gnuchess.book -B t:gnuchess.data \
		  -C 1001 -T 4001 $(BOOKOPTS)
	C:Copy t:gnuchess.data ""
	C:Delete gnuchess.book t:gnuchess.input QUIET

gnuchess.eco: ecor binsort ecocvt ecosort
      Echo 0 0 >t:step0.eco
      Stack 100000
      ecor -b /book/eco.pgn -B t:step1.eco <t:step0.eco
      ecosort binsort t:step1.eco t:step2.eco
      ecocvt t:step2.eco t:gnuchess.eco
      C:Copy t:gnuchess.eco gnuchess.eco
      C:Delete t:step0.eco step1.eco t:step2.eco t:gnuchess.eco

COMMONBIN=Install Install.info
DISTBIN=$(BINARIES) $(COMMONBIN)
DISTDOC=/doc/ARTICLE /doc/ARTICLE.2 /doc/BOOKFILES /doc/ChangeLog \
	/doc/CHANGES /doc/COPYING /doc/GENERAL /doc/gnuan.6 \
	/doc/gnuan.hlp /doc/gnuchess.6 /doc/gnuchess.txt \
	/doc/HEURISTICS /doc/MOVE-GEN /doc/PORTING \
	/doc/postprint.6 /doc/README.font /doc/README.output \
	/doc/TODO "doc/GNU Chess.readme" "doc/GNU Chess.readme.info" \
	/doc/game.6
DISTLIB=$(LIBFILES) /misc/gnuchess.lang

SRCBIN=Makefile Makefile.ddj Makefile.dos README ataks.c ataks.h \
       binsort.c binsort.h book.c debug10.h debug13.h debug16.h \
       debug256.h debug4.h debug40.h debug41.h debug512.h debug64.h \
       debug8.h dspcom.c eco.c ecocvt.c ecosort.c eval.c game.c \
       genmoves.c gettimeofday.c gnuan.c gnuchess.h init.c kbhit.c \
       main.c nondsp.c nuxdsp.c postprint.c search.c ttable.c \
       ttable.h util.c uxdsp.c version.h $(COMMONBIN)
SRCDOC="doc/GNU Chess.readme" "doc/GNU Chess.readme.info"

dist: distbin distsrc

distbin: all
	C:Delete t:$(DISTDIR) ALL QUIET
	C:MakeDir t:$(DISTDIR)
	C:MakeDir t:$(DISTDIR)/lib
	C:MakeDir t:$(DISTDIR)/doc
	C:Copy $(DISTBIN) t:$(DISTDIR)
	C:Copy $(DISTDOC) t:$(DISTDIR)/doc
	C:Copy $(DISTLIB) t:$(DISTDIR)/lib
	C:Copy //$(DISTDIR).info t:
	LhA a -r t:$(DISTDIR)bin.lha t:$(DISTDIR) t:$(DISTDIR).info
	C:Protect t:$(DISTDIR) +wd ALL
	C:Delete t:$(DISTDIR) t:$(DISTDIR).info ALL QUIET

distsrc:
	C:Delete t:$(DISTDIR) ALL QUIET
	C:MakeDir t:$(DISTDIR)
	C:MakeDir t:$(DISTDIR)/src
	C:MakeDir t:$(DISTDIR)/src/doc
	C:Copy /book t:$(DISTDIR)/book ALL
	C:Copy /doc t:$(DISTDIR)/doc ALL
	C:Copy /misc t:$(DISTDIR)/misc ALL
	C:Copy /test t:$(DISTDIR)/test ALL
	C:Copy /INSTALL t:$(DISTDIR)
	C:Copy $(SRCBIN) t:$(DISTDIR)/src
	C:Copy $(SRCDOC) t:$(DISTDIR)/src/doc
	C:Copy DMakefile t:$(DISTDIR)/src/Makefile.amiga
	C:Copy //$(DISTDIR).info t:
	LhA a -r t:$(DISTDIR)src.lha t:$(DISTDIR) t:$(DISTDIR).info
	C:Protect t:$(DISTDIR) +wd ALL
	C:Delete t:$(DISTDIR) t:$(DISTDIR).info ALL QUIET
