Fix force mode after setboard
[bonanza.git] / Makefile.vs
1 help:
2         @echo try targets as:
3         @echo   cl
4         @echo   cl-pgo
5         @echo   icl
6         @echo   icl-pgo
7
8 # Compile Options
9 #
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.
26
27 FLAG = /DNDEBUG /DMINIMUM /DTLP /DHAVE_SSE2 /DINANIWA_SHIFT /DCSASHOGI /DNO_LOGGING
28
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
36
37 cl:
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"
41
42 cl-pgo:
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
48         del bonanza.exe
49         $(MAKE) -f Makefile.vs bonanza.exe LD="link"\
50                 LDFLAGS="/NOLOGO /out:bonanza.exe /LTCG:PGO"
51
52 icl:
53         $(MAKE) -f Makefile.vs bonanza.exe CC="icl" LD="icl"\
54                 CFLAGS="/nologo $(FLAG) /Wall /O2 /Qipo"\
55                 LDFLAGS="/nologo /Febonanza.exe"
56
57 icl-pgo:
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
63         del *.obj bonanza.exe
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"
67
68 pgo-run:
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
75         echo new                       >> runprof
76         echo move 77                   >> runprof
77         echo new                       >> runprof
78         echo move 77                   >> runprof
79         echo new                       >> runprof
80         echo move 77                   >> runprof
81         echo new                       >> runprof
82         echo move 77                   >> runprof
83         echo new                       >> runprof
84         echo move 77                   >> runprof
85         echo new                       >> runprof
86         echo move 77                   >> runprof
87         echo quit                      >> runprof
88         bonanza.exe csa_shogi           < runprof
89
90 bonanza.exe : $(OBJS) bonanza.res
91         $(LD) $(LDFLAGS) $(OBJS) bonanza.res User32.lib Ws2_32.lib
92
93 $(OBJS)  : shogi.h param.h bitop.h
94 dfpn.obj dfpnhash.obj: dfpn.h
95
96 bonanza.res : bonanza.rc bonanza.ico
97         rc /fobonanza.res bonanza.rc
98
99 .c.obj :
100         $(CC) $(CFLAGS) /c $*.c
101
102 clean :
103         del /q runprof
104         del /q *.pdb
105         del /q *.ilk
106         del /q *.pgd
107         del /q *.pgc
108         del /q *.dyn
109         del /q *.obj
110         del /q *.res
111         del /q bonanza.exe