help:
@echo try targets as:
@echo cl
+ @echo cl-pgo
@echo icl
+ @echo icl-pgo
# Compile Options
#
-# /DNDEBUG (DEBUG) builds release (debug) version of Bonanza.
+# /DDEBUG (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 use SSE2 instructions for speed (N/A MS C/C++)
+# /DHAVE_SSE4 use SSE2 and SSE4.1 instructions for speed (N/A MS C/C++)
# /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 distributed computing.
-# /DDEKUNOBOU enables dekunobou interface (avairable only for Windows).
-# /DCSASHOGI builds an engine for CSA Shogi (avairable only for
-# Windows).
+# /DMNJ_LAN enables client-mode of distributed computing.
+# /DUSI enables USI mode (not implemented).
+# /DCSASHOGI builds an engine for CSA Shogi (only Windows).
# /DNO_LOGGING suppresses dumping log files.
+# /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.
-FLAG = /DNDEBUG /DMINIMUM /DTLP /DMPV /DCSASHOGI /DNO_LOGGING
+FLAG = /DNDEBUG /DMINIMUM /DTLP /DHAVE_SSE2 /DINANIWA_SHIFT /DCSASHOGI /DNO_LOGGING
OBJS = data.obj main.obj io.obj proce.obj ini.obj utility.obj attack.obj\
gencap.obj gennocap.obj gendrop.obj genevasn.obj mate3.obj genchk.obj\
next.obj search.obj searchr.obj book.obj iterate.obj quiesrch.obj\
swap.obj evaluate.obj root.obj hash.obj mate1ply.obj bitop.obj\
rand.obj learn1.obj learn2.obj evaldiff.obj problem.obj ponder.obj\
- thread.obj dek.obj sckt.obj debug.obj phash.obj
+ thread.obj sckt.obj debug.obj phash.obj dfpn.obj dfpnhash.obj
cl:
$(MAKE) -f Makefile.vs bonanza.exe CC="cl" LD="link"\
- CFLAGS="$(FLAG) /MT /W4 /nologo /O2 /Ob2 /Gr /GS- /GL"\
+ CFLAGS="$(FLAG) /MT /W4 /nologo /O2 /Ob2 /GS- /GL"\
LDFLAGS="/NOLOGO /out:bonanza.exe /LTCG"
+cl-pgo:
+ $(MAKE) -f Makefile.vs clean
+ $(MAKE) -f Makefile.vs bonanza.exe CC="cl" LD="link"\
+ CFLAGS="$(FLAG) /MT /W4 /nologo /O2 /Ob2 /GS- /GL"\
+ LDFLAGS="/NOLOGO /out:bonanza.exe /LTCG:PGI"
+ $(MAKE) -f Makefile.vs pgo-run
+ del bonanza.exe
+ $(MAKE) -f Makefile.vs bonanza.exe LD="link"\
+ LDFLAGS="/NOLOGO /out:bonanza.exe /LTCG:PGO"
+
icl:
$(MAKE) -f Makefile.vs bonanza.exe CC="icl" LD="icl"\
- CFLAGS="/nologo $(FLAG) /Wall /O2 /Qipo /Gr"\
+ CFLAGS="/nologo $(FLAG) /Wall /O2 /Qipo"\
LDFLAGS="/nologo /Febonanza.exe"
+icl-pgo:
+ $(MAKE) -f Makefile.vs clean
+ $(MAKE) -f Makefile.vs bonanza.exe CC="icl" LD="icl"\
+ CFLAGS="/nologo $(FLAG) /Wall /O2 /Qprof-gen"\
+ LDFLAGS="/nologo /Febonanza.exe /Qprof-gen"
+ $(MAKE) -f Makefile.vs pgo-run
+ del *.obj bonanza.exe
+ $(MAKE) -f Makefile.vs bonanza.exe CC="icl" LD="icl"\
+ CFLAGS="/nologo $(FLAG) /Wall /O2 /Qipo /Qprof-use"\
+ LDFLAGS="/nologo /Febonanza.exe /Qprof-use"
+
+pgo-run:
+# 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 peek off >> 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.exe csa_shogi < runprof
+
bonanza.exe : $(OBJS) bonanza.res
$(LD) $(LDFLAGS) $(OBJS) bonanza.res User32.lib Ws2_32.lib
-$(OBJS) : shogi.h param.h
+$(OBJS) : shogi.h param.h bitop.h
+dfpn.obj dfpnhash.obj: dfpn.h
bonanza.res : bonanza.rc bonanza.ico
rc /fobonanza.res bonanza.rc
$(CC) $(CFLAGS) /c $*.c
clean :
+ del /q runprof
+ del /q *.pdb
+ del /q *.ilk
+ del /q *.pgd
+ del /q *.pgc
+ del /q *.dyn
del /q *.obj
del /q *.res
del /q bonanza.exe