adding support for different windows compiler
[xboard.git] / winboard / makefile.ms
1 # Command line: nmake /f makefile.ms\r
2 # Set VCVER=6 for MSVC 4.x through 7.0(aka 2002 aka .NET).\r
3 # For MSVC 8 (aka 2005) set VCVER=8.  Beyond that try 8 first.\r
4 VCVER=6\r
5 \r
6 \r
7 PROJ = winboard\r
8 \r
9 \r
10 OBJS=backend.obj book.obj gamelist.obj lists.obj moves.obj pgntags.obj uci.obj zippy.obj\\r
11  parser.obj wclipbrd.obj wedittags.obj wengineo.obj wevalgraph.obj wgamelist.obj\\r
12  whistory.obj winboard.obj wlayout.obj woptions.obj wsnap.obj wsockerr.obj\r
13 \r
14 \r
15 # Debugging?\r
16 USE_DEBUG=0\r
17 \r
18 \r
19 CC = @cl\r
20 RC = @rc\r
21 LINK = link\r
22 HC="c:\program files\help workshop\hcrtf.exe" -xn\r
23 FLEX = "c:/mingw/mingw32/bin/flex.exe"\r
24 DEFS = -D_WIN32_IE=0x300 -DWIN32 -DWINVER=0x400 -D_WIN32_WINDOWS=0x500\r
25 #WARN = -W3\r
26 ARCH =\r
27 \r
28 \r
29 !if $(VCVER) >= 8\r
30 CLIB= libcmt\r
31 LIBF= -MT\r
32 DEPRECATE=-D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -D_USE_32BIT_TIME_T\r
33 !else\r
34 VSO = -Gf -Og\r
35 CLIB = msvcrt\r
36 LIBF = -MD\r
37 !endif\r
38 \r
39 \r
40 !if $(USE_DEBUG) == 0\r
41 CFDEBUG = -DNDEBUG\r
42 OPTS = -Os -Oy -Gs -GA -Zl $(VSO) $(LIBF)\r
43 LFDEBUG = $(CLIB).lib\r
44 !else\r
45 CFDEBUG = -D_DEBUG -DDEBUG\r
46 OPTS = -Od -Zi -Fd$(PROJ).pdb $(LIBF)d\r
47 LFDEBUG = -DEBUG -PDB:$(PROJ).pdb -MAP:$(PROJ).map $(CLIB)d.lib\r
48 !endif\r
49 CF = $(CFDEBUG) $(DEFS) $(DEPRECATE) -I. -I..\r
50 CFLAGS = -c -nologo $(WARN) $(CF) $(ARCH) $(OPTS)\r
51 LFLAGS = -nologo $(LFDEBUG)\r
52 \r
53 \r
54 all: $(PROJ).exe\r
55 \r
56 \r
57 clean:\r
58         -erase *~ $(PROJ).exe $(PROJ).err $(PROJ).rbj $(PROJ).res *.sbr *.bsc\\r
59         *.o *.obj *.plg *.opt *.ncb *.debug *.bak *.gid *.map *.pdb *.ini\r
60 \r
61 \r
62 # Update the help file if necessary\r
63 $(PROJ).hlp : $(PROJ).rtf\r
64         $(HC) $(PROJ).hpj\r
65         -@type $(PROJ).err\r
66         -@rename $(PROJ).hlp $(PROJ).hlp.tmp\r
67         -@rename $(PROJ).hlp.tmp $(PROJ).hlp\r
68 \r
69 \r
70 # Update the resource if necessary\r
71 $(PROJ).res: $(PROJ).rc $(PROJ).h resource.h\r
72     $(RC) $(CF) -r -fo $(PROJ).res $(PROJ).rc\r
73 \r
74 parser.c: ../parser.l\r
75     $(FLEX) -oparser.c -L ../parser.l\r
76 \r
77 winboard.obj: winboard.c config.h winboard.h ../common.h ../frontend.h \\r
78         ../backend.h ../moves.h wgamelist.h defaults.h resource.h wclipbrd.h \\r
79         wedittags.h wsockerr.h woptions.h wsnap.h ../lists.h\r
80         $(CC) $(CFLAGS) winboard.c\r
81 \r
82 backend.obj: ../backend.c config.h ../common.h ../frontend.h ../backend.h \\r
83         ../parser.h ../moves.h ../zippy.h ../backendz.h ../gettext.h ../lists.h\r
84         $(CC) $(CFLAGS) ../backend.c\r
85 \r
86 parser.obj: parser.c config.h ../common.h ../backend.h ../parser.h \\r
87         ../frontend.h ../moves.h ../lists.h\r
88         $(CC) $(CFLAGS) parser.c\r
89 \r
90 book.obj: ../book.c ../common.h ../backend.h ../lists.h\r
91         $(CC) $(CFLAGS) ../book.c\r
92 \r
93 gamelist.obj: ../gamelist.c config.h ../lists.h ../common.h ../frontend.h \\r
94         ../backend.h ../parser.h\r
95         $(CC) $(CFLAGS) ../gamelist.c\r
96 \r
97 lists.obj: ../lists.c config.h ../lists.h ../common.h\r
98         $(CC) $(CFLAGS) ../lists.c\r
99 \r
100 moves.obj: ../moves.c config.h ../backend.h ../common.h ../parser.h \\r
101         ../moves.h ../lists.h\r
102         $(CC) $(CFLAGS) ../moves.c\r
103 \r
104 wclipbrd.obj: wclipbrd.c config.h ../common.h ../frontend.h ../backend.h \\r
105         winboard.h resource.h wclipbrd.h ../lists.h\r
106         $(CC) $(CFLAGS) wclipbrd.c\r
107 \r
108 wedittags.obj: wedittags.c config.h ../common.h winboard.h resource.h ../frontend.h \\r
109         ../backend.h ../lists.h wedittags.h\r
110         $(CC) $(CFLAGS) wedittags.c\r
111 \r
112 wgamelist.obj: wgamelist.c config.h. ../common.h winboard.h resource.h ../frontend.h \\r
113         ../backend.h wgamelist.h ../lists.h\r
114         $(CC) $(CFLAGS) wgamelist.c\r
115 \r
116 woptions.obj: woptions.c config.h ../common.h ../frontend.h ../backend.h \\r
117         ../lists.h defaults.h winboard.h resource.h\r
118         $(CC) $(CFLAGS) woptions.c\r
119 \r
120 wengineo.obj: wengineo.c config.h ../common.h ../frontend.h ../backend.h \\r
121         ../lists.h winboard.h resource.h wsnap.h\r
122         $(CC) $(CFLAGS) wengineo.c\r
123 \r
124 whistory.obj: whistory.c config.h ../common.h ../frontend.h ../backend.h \\r
125         ../lists.h winboard.h resource.h wsnap.h\r
126         $(CC) $(CFLAGS) whistory.c\r
127 \r
128 wevalgraph.obj: wevalgraph.c config.h ../common.h ../frontend.h ../backend.h \\r
129         ../lists.h winboard.h resource.h wsnap.h\r
130         $(CC) $(CFLAGS) wevalgraph.c\r
131 \r
132 wlayout.obj: wlayout.c config.h ../common.h winboard.h resource.h\r
133         $(CC) $(CFLAGS) wlayout.c\r
134 \r
135 wsockerr.obj: wsockerr.c wsockerr.h\r
136         $(CC) $(CFLAGS) wsockerr.c\r
137 \r
138 wsnap.obj: wsnap.c wsnap.h\r
139         $(CC) $(CFLAGS) wsnap.c\r
140 \r
141 pgntags.obj: ../pgntags.c config.h ../common.h ../frontend.h ../backend.h \\r
142         ../parser.h ../lists.h\r
143         $(CC) $(CFLAGS) ../pgntags.c\r
144 \r
145 zippy.obj: ../zippy.c config.h ../common.h ../zippy.h ../frontend.h \\r
146         ../backend.h ../backendz.h ../lists.h\r
147         $(CC) $(CFLAGS) ../zippy.c\r
148 \r
149 uci.obj: ../uci.c ..//common.h ../backend.h ../frontend.h ../lists.h\r
150         $(CC) $(CFLAGS) ../uci.c\r
151 \r
152 \r
153 $(PROJ).exe: $(OBJS) $(PROJ).res $(PROJ).hlp\r
154     $(LINK) $(LFLAGS) $(OBJS) wsock32.lib comctl32.lib winmm.lib shell32.lib\\r
155  oldnames.lib kernel32.lib advapi32.lib user32.lib gdi32.lib comdlg32.lib\\r
156  $(PROJ).res -out:$(PROJ).exe\r
157 \r
158 \r
159 .c.obj:\r
160         $(CC) $(CFLAGS) $<