Fix force mode after setboard
[bonanza.git] / Makefile
index 856e931..888eb3c 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -3,43 +3,97 @@ OBJS =data.o main.o io.o proce.o utility.o ini.o attack.o book.o makemove.o \
       quiesrch.o evaluate.o swap.o  hash.o root.o next.o movgenex.o \
       genevasn.o gencap.o gennocap.o gendrop.o mate1ply.o rand.o learn1.o \
       learn2.o evaldiff.o problem.o ponder.o thread.o sckt.o debug.o mate3.o \
-      genchk.o phash.o
+      genchk.o phash.o dfpn.o dfpnhash.o
 
 # Compile Options
 #
-# -DNDEBUG (DEBUG)  builds release (debug) version of Bonanza.
-# -DMINIMUM         disables some auxiliary functions that are not necessary to
-#                   play a game, e.g., book composition and optimization of
-#                   evaluation function.
-# -DTLP             enables thread-level parallel search.
-# -DMPV             enables multi-PV search.
-# -DCSA_LAN         enables bonanza to talk CSA Shogi TCP/IP protcol.
-# -DMNJ_LAN         enables a client-mode of cluster computing.
-# -DNO_LOGGING      suppresses dumping log files.
-
-OPT =-DNDEBUG -DMINIMUM -DTLP -DCSA_LAN -DMNJ_LAN
+# -DNDEBUG (DEBUG)   builds release (debug) version of Bonanza.
+# -DMINIMUM          disables some auxiliary functions that are not necessary
+#                    to play a game, e.g., book composition and optimization
+#                    of evaluation function.
+# -DHAVE_SSE2 -msse2 use SSE2 instructions for speed
+# -DHAVE_SSE4 -msse4.1 use SSE2 and SSE4.1 instructions for speed
+# -DTLP              enables thread-level parallel search.
+# -DMPV              enables multi-PV search.
+# -DCSA_LAN          enables bonanza to talk CSA Shogi TCP/IP protcol.
+# -DMNJ_LAN          enables a client-mode of cluster searches.
+# -DNO_LOGGING       suppresses dumping log files.
+# -DUSI              enables USI mode (not implemented).
+# -DXBOARD           enables WinBoard/XBoard mode (implemented!).
+# -DINANIWA_SHIFT    enables an Inaniwa strategy detection.
+# -DDFPN             build the DFPN worker of mate-problems server.
+# -DDFPN_CLIENT      enables the client-mode of mate-problem server.
+
+OPT =-DNDEBUG -DMINIMUM -DHAVE_SSE4 -msse4.1 -DDFPN -DTLP -DDFPN_CLIENT -DINANIWA_SHIFT -DMNJ_LAN -DCSA_LAN -DXBOARD -DMPV
 
 help:
        @echo "try targets as:"
        @echo
        @echo "  gcc"
+       @echo "  gcc-pg"
+       @echo "  gcc-pgo"
        @echo "  icc"
+       @echo "  icc-pgo"
+       @echo "  icc-ampl"
 
 gcc:
-       $(MAKE) CC=gcc CFLAGS='-std=gnu99 -O3 -Wall $(OPT)' LDFLAG1='-lm -lpthread' bonanza
+       $(MAKE) CC=gcc CFLAGS='-std=gnu99 -O2 -Wall $(OPT)' LDFLAG1='-lm -lpthread' bonanza
+
+gcc-pgo:
+       $(MAKE) clean
+       gcc -std=gnu99 -O2 -Wall $(OPT) -fprofile-generate -o bonanza -lm -lpthread $(OBJS:.o=.c)
+       $(MAKE) run-prof
+       gcc -std=gnu99 -O2 -Wall $(OPT) -fprofile-use -o bonanza -lm -lpthread $(OBJS:.o=.c)
+
+icc-ampl:
+       $(MAKE) CC=icc CFLAGS='-w2 $(OPT) -std=gnu99 -g -O2 -fno-inline-functions' LDFLAG1='-pthread -g' bonanza
 
 icc:
        $(MAKE) CC=icc CFLAGS='-w2 $(OPT) -std=gnu99 -O2 -ipo' LDFLAG1='-static -ipo -pthread' bonanza
 
+icc-pgo:
+       $(MAKE) clean
+       mkdir profdir
+       $(MAKE) CC=icc CFLAGS='-w2 $(OPT) -std=gnu99 -O2 -prof_gen -prof_dir ./profdir' LDFLAG1='-static -pthread' bonanza
+       $(MAKE) run-prof
+       touch *.[ch]
+       $(MAKE) CC=icc CFLAGS='-w2 $(OPT) -std=gnu99 -O2 -ipo -prof_use -prof_dir ./profdir' LDFLAG1='-static -ipo -pthread' bonanza
+
 bonanza : $(OBJS)
        $(CC) $(LDFLAG1) -o bonanza $(OBJS) $(LDFLAG2)
 
-$(OBJS) : shogi.h param.h
+$(OBJS) : shogi.h param.h bitop.h
+dfpn.o dfpnhash.o: dfpn.h
 
 .c.o :
        $(CC) -c $(CFLAGS) $*.c
 
 clean :
-       rm *.o
+       rm -f *.o *.il *.da *.gcda *.gcno *.bb *.bbg *.dyn
+       rm -f  bonanza gmon.out runprof
        rm -fr profdir
-       rm bonanza
+
+run-prof:
+       @if [ ! -d log ]; then mkdir log; fi
+       @echo "peek off"               > runprof
+#      @echo "dfpn hash 22"          >> runprof
+#      @echo "problem mate"          >> runprof
+#      @echo "learn no-ini 32 32 1 2 2"   >> runprof
+       @echo "limit time extendable" >> runprof
+       @echo "limit time 0 1"        >> runprof
+       @echo "tlp num 2"             >> runprof
+       @echo "move 77"               >> runprof
+       @echo "new"                   >> runprof
+       @echo "move 77"               >> runprof
+       @echo "new"                   >> runprof
+       @echo "move 77"               >> runprof
+       @echo "new"                   >> runprof
+       @echo "move 77"               >> runprof
+       @echo "new"                   >> runprof
+       @echo "move 77"               >> runprof
+       @echo "new"                   >> runprof
+       @echo "move 77"               >> runprof
+       @echo "new"                   >> runprof
+       @echo "move 77"               >> runprof
+       @echo "quit"                  >> runprof
+       @./bonanza < runprof