10 # /DDEBUG (DEBUG) builds release (debug) version of Bonanza.
11 # /DMINIMUM disables some auxiliary functions that are not necessary to
12 # play a game, e.g., book composition and optimization of
13 # evaluation function.
14 # /DHAVE_SSE2 use SSE2 instructions for speed (N/A MS C/C++)
15 # /DHAVE_SSE4 use SSE2 and SSE4.1 instructions for speed (N/A MS C/C++)
16 # /DTLP enables thread-level parallel search.
17 # /DMPV enables multi-PV search.
18 # /DCSA_LAN enables bonanza to talk CSA Shogi TCP/IP protcol.
19 # /DMNJ_LAN enables client-mode of distributed computing.
20 # /DUSI enables USI mode (not implemented).
21 # /DCSASHOGI builds an engine for CSA Shogi (only Windows).
22 # /DNO_LOGGING suppresses dumping log files.
23 # /DINANIWA_SHIFT enables an Inaniwa strategy detection.
24 # /DDFPN build the DFPN worker of mate-problems server.
25 # /DDFPN_CLIENT enables the client-mode of mate-problem server.
27 FLAG = /DNDEBUG /DMINIMUM /DTLP /DHAVE_SSE2 /DINANIWA_SHIFT /DCSASHOGI /DNO_LOGGING
29 OBJS = data.obj main.obj io.obj proce.obj ini.obj utility.obj attack.obj\
30 gencap.obj gennocap.obj gendrop.obj genevasn.obj mate3.obj genchk.obj\
31 movgenex.obj makemove.obj unmake.obj time.obj csa.obj valid.obj\
32 next.obj search.obj searchr.obj book.obj iterate.obj quiesrch.obj\
33 swap.obj evaluate.obj root.obj hash.obj mate1ply.obj bitop.obj\
34 rand.obj learn1.obj learn2.obj evaldiff.obj problem.obj ponder.obj\
35 thread.obj sckt.obj debug.obj phash.obj dfpn.obj dfpnhash.obj
38 $(MAKE) -f Makefile.vs bonanza.exe CC="cl" LD="link"\
39 CFLAGS="$(FLAG) /MT /W4 /nologo /O2 /Ob2 /GS- /GL"\
40 LDFLAGS="/NOLOGO /out:bonanza.exe /LTCG"
43 $(MAKE) -f Makefile.vs clean
44 $(MAKE) -f Makefile.vs bonanza.exe CC="cl" LD="link"\
45 CFLAGS="$(FLAG) /MT /W4 /nologo /O2 /Ob2 /GS- /GL"\
46 LDFLAGS="/NOLOGO /out:bonanza.exe /LTCG:PGI"
47 $(MAKE) -f Makefile.vs pgo-run
49 $(MAKE) -f Makefile.vs bonanza.exe LD="link"\
50 LDFLAGS="/NOLOGO /out:bonanza.exe /LTCG:PGO"
53 $(MAKE) -f Makefile.vs bonanza.exe CC="icl" LD="icl"\
54 CFLAGS="/nologo $(FLAG) /Wall /O2 /Qipo"\
55 LDFLAGS="/nologo /Febonanza.exe"
58 $(MAKE) -f Makefile.vs clean
59 $(MAKE) -f Makefile.vs bonanza.exe CC="icl" LD="icl"\
60 CFLAGS="/nologo $(FLAG) /Wall /O2 /Qprof-gen"\
61 LDFLAGS="/nologo /Febonanza.exe /Qprof-gen"
62 $(MAKE) -f Makefile.vs pgo-run
64 $(MAKE) -f Makefile.vs bonanza.exe CC="icl" LD="icl"\
65 CFLAGS="/nologo $(FLAG) /Wall /O2 /Qipo /Qprof-use"\
66 LDFLAGS="/nologo /Febonanza.exe /Qprof-use"
69 # echo learn no-ini 32 32 1 2 2 >> runprof
70 echo limit time extendable >> runprof
71 echo limit time 0 1 >> runprof
72 echo tlp num 2 >> runprof
73 echo peek off >> runprof
74 echo move 77 >> runprof
76 echo move 77 >> runprof
78 echo move 77 >> runprof
80 echo move 77 >> runprof
82 echo move 77 >> runprof
84 echo move 77 >> runprof
86 echo move 77 >> runprof
88 bonanza.exe csa_shogi < runprof
90 bonanza.exe : $(OBJS) bonanza.res
91 $(LD) $(LDFLAGS) $(OBJS) bonanza.res User32.lib Ws2_32.lib
93 $(OBJS) : shogi.h param.h bitop.h
94 dfpn.obj dfpnhash.obj: dfpn.h
96 bonanza.res : bonanza.rc bonanza.ico
97 rc /fobonanza.res bonanza.rc
100 $(CC) $(CFLAGS) /c $*.c