1CC=c99 2CFLAGS=$(RLCFLAGS) -O3 -DNDEBUG -g 3 4# for libedit support on FreeBSD 5RLCFLAGS=-I/usr/include/edit 6RLLDFLAGS= 7RLLDLIBS=-ledit 8 9# for readline support 10#RLCFLAGS= 11#RLLDFLAGS= 12#RLLDLIBS=-lreadline -lhistory 13 14# number of threads used during table base generation 15NPROC=2 16 17# customize this if your system uses a different path structure 18PREFIX=/usr/local 19TBDIR=$(PREFIX)/share/dobutsu 20BINDIR=$(PREFIX)/bin 21#BINDIR=$(PREFIX)/games 22MANDIR=$(PREFIX)/share/man/man6 23LIBEXECDIR=$(PREFIX)/libexec 24#LIBEXECDIR=$(PREFIX)/lib 25 26# prefix applied to installation directory during install step 27#STAGING= 28 29# replace with dobutsu.tb if you want to waste more space for a faster 30# program start 31# TBFILE=dobutsu.tb 32TBFILE=dobutsu.tb.xz 33 34# flags applied when compressing TBFILE. 35# dictionary size must be harmonized with code in tbaccess.c 36XZFLAGS=-4 -e -C crc32 37 38GENTBOBJ=gentb.o tbgenerate.o poscode.o unmoves.o moves.o 39VALIDATETBOBJ=$(XZOBJ) validatetb.o tbvalidate.o tbaccess.o notation.o poscode.o validation.o moves.o 40DOBUTSUOBJ=$(XZOBJ) dobutsu.o position.o ai.o notation.o tbaccess.o validation.o poscode.o moves.o 41XZOBJ=xz/xz_crc32.o xz/xz_dec_lzma2.o xz/xz_dec_stream.o 42 43all: gentb validatetb dobutsu dobutsu-stub 44 45gentb: $(GENTBOBJ) 46 $(CC) $(CFLAGS) $(LDFLAGS) -o gentb $(GENTBOBJ) $(LDLIBS) -lpthread 47 48validatetb: $(VALIDATETBOBJ) 49 $(CC) $(CFLAGS) $(LDFLAGS) -o validatetb $(VALIDATETBOBJ) $(LDLIBS) 50 51dobutsu: $(DOBUTSUOBJ) 52 $(CC) $(CFLAGS) $(LDFLAGS) $(RLLDFLAGS) -o dobutsu $(DOBUTSUOBJ) $(LDLIBS) $(RLLDLIBS) -lm 53 54dobutsu-stub: 55 echo '#!/bin/sh' >dobutsu-stub 56 echo >>dobutsu-stub 57 echo '[ -z "$$DOBUTSU_TABLEBASE" ] && DOBUTSU_TABLEBASE="$(TBDIR)/$(TBFILE)"' >>dobutsu-stub 58 echo 'export DOBUTSU_TABLEBASE' >>dobutsu-stub 59 echo 'exec "$(LIBEXECDIR)/dobutsu" "$$@"' >>dobutsu-stub 60 chmod a+x dobutsu-stub 61 62dobutsu.tb.xz: gentb 63 rm -f dobutsu.tb.xz 64 ./gentb -j $(NPROC) dobutsu.tb 65 xz $(XZFLAGS) dobutsu.tb 66 67dobutsu.tb: gentb 68 ./gentb -j $(NPROC) dobutsu.tb 69 70clean: 71 rm -f *.o xz/*.o gentb validatetb dobutsu dobutsu-stub 72 73distclean: clean 74 rm -f dobutsu.tb dobutsu.tb.xz dobutsu.6.gz 75 76install: dobutsu dobutsu-stub $(TBFILE) 77 mkdir -p $(STAGING)$(TBDIR) 78 cp dobutsu.tb.xz $(STAGING)$(TBDIR)/$(TBFILE) 79 mkdir -p $(STAGING)$(LIBEXECDIR) 80 cp dobutsu $(STAGING)$(LIBEXECDIR)/dobutsu 81 mkdir -p $(STAGING)$(BINDIR) 82 cp dobutsu-stub $(STAGING)$(BINDIR)/dobutsu 83 mkdir -p $(STAGING)$(MANDIR) 84 cp dobutsu.6 $(STAGING)$(MANDIR)/dobutsu.6 85 86.PHONY: clean all distclean install 87 88.POSIX: 89