adding support for different windows compiler
[xboard.git] / winboard / makefile.gcc
1 # WinBoard makefile using gcc\r
2 \r
3 \r
4 PROJ=winboard\r
5 \r
6 \r
7 OBJS=backend.o book.o gamelist.o lists.o moves.o pgntags.o uci.o zippy.o\\r
8  parser.o wbres.o wclipbrd.o wedittags.o wengineo.o wevalgraph.o\\r
9  wgamelist.o whistory.o winboard.o wlayout.o woptions.o wsnap.o\\r
10  wsockerr.o\r
11 \r
12 \r
13 # make compiling less spammy\r
14 compile = @echo "$1"; $(CC) $(CFLAGS) $1\r
15 \r
16 \r
17 # Debugging?\r
18 USE_DEBUG=0\r
19 \r
20 \r
21 # set this to 1 unless you don't mind linking with cygwin1.dll\r
22 USE_MINGW=1\r
23 \r
24 \r
25 # set up for cygwin or not\r
26 ifeq ($(USE_MINGW),1)\r
27 CFCYG = -mno-cygwin\r
28 LFCYG = -mno-cygwin -lmsvcrt\r
29 endif\r
30 \r
31 \r
32 CC = gcc\r
33 FLEX = "flex.exe" # we need version 2.5.4 or later, cygwin's is 2.5.35\r
34 #      "c:/mingw/mingw32/bin/flex.exe"\r
35 HC="C:/Program Files/Help Workshop/hcrtf" -xn\r
36 DEFS = -D_WIN32_IE=0x0300 -DWIN32\r
37 WARN = -Wall -Wno-char-subscripts -Wno-parentheses\r
38 ARCH =\r
39 ifeq ($(USE_DEBUG),0)\r
40   CFDEBUG = -DNDEBUG\r
41   OPTS = -Os -frename-registers -funit-at-a-time -fstrict-aliasing -fstrength-reduce\r
42 else\r
43   CFDEBUG = -D_DEBUG -DDEBUG -g\r
44 endif\r
45 CF = -c $(WARN) -pipe $(CFDEBUG) $(DEFS) -I. -I..\r
46 CFLAGS = $(CF) $(ARCH) $(OPTS) $(CFCYG)\r
47 LFLAGS = $(LFCYG) $(CFDEBUG) -fpic -s -mwindows -lwsock32 -lwinmm -lcomctl32\r
48 \r
49 \r
50 all: $(PROJ).exe\r
51 \r
52 \r
53 clean:\r
54         rm -f *~ $(PROJ).exe $(PROJ).err $(PROJ).rbj $(PROJ).RES $(PROJ).res\\r
55         *.sbr *.bsc *.o *.obj *.plg *.opt *.ncb *.debug *.bak *.gid *.GID\\r
56         *.map *.pdb *.tmp $(PROJ).ini\r
57 \r
58 \r
59 # Update the help file if necessary\r
60 $(PROJ).hlp : $(PROJ).rtf\r
61         $(HC) $(PROJ).hpj\r
62         @cat $(PROJ).err\r
63         @mv $(PROJ).hlp tmp.hlp\r
64         @mv tmp.hlp $(PROJ).hlp # these moves to get the case right\r
65 \r
66 \r
67 # Update the resource if necessary\r
68 wbres.o: $(PROJ).rc $(PROJ).h resource.h\r
69         windres --use-temp-file --include-dir .. $< -O coff -o $@\r
70 \r
71 \r
72 # note: cygwin flex needs m4 package.  cygwin-setup forgets this dependency\r
73 # note2: use mingw flex instead... although I got cygwin's flex working (with m4),\r
74 #        it didn't produce a useable parser.c (1000's of errors)\r
75 parser.c: ../parser.l\r
76         $(FLEX) -oparser.c -L ../parser.l\r
77 \r
78 \r
79 $(PROJ).exe: $(OBJS) $(PROJ).hlp\r
80         $(CC) $(guiflags) $(OBJS) $(LFLAGS) -o $(PROJ).exe\r
81 \r
82 \r
83 winboard.o: winboard.c config.h winboard.h ../common.h ../frontend.h ../backend.h \\r
84         ../moves.h wgamelist.h defaults.h resource.h wclipbrd.h \\r
85         wedittags.h wsockerr.h woptions.h wsnap.h ../lists.h\r
86         $(call compile, $<)\r
87 \r
88 backend.o: ../backend.c config.h ../common.h ../frontend.h ../backend.h \\r
89         ../parser.h ../moves.h ../zippy.h ../backendz.h ../gettext.h ../lists.h\r
90         $(call compile, $<)\r
91 \r
92 parser.o: parser.c config.h ../common.h ../backend.h ../parser.h \\r
93         ../frontend.h ../moves.h ../lists.h\r
94         $(call compile, $<)\r
95 \r
96 moves.o: ../moves.c config.h ../backend.h ../common.h ../parser.h \\r
97         ../moves.h ../lists.h\r
98         $(call compile, $<)\r
99 \r
100 lists.o: ../lists.c config.h ../lists.h ../common.h\r
101         $(call compile, $<)\r
102 \r
103 gamelist.o: ../gamelist.c config.h ../lists.h ../common.h ../frontend.h \\r
104         ../backend.h ../parser.h\r
105         $(call compile, $<)\r
106 \r
107 wclipbrd.obj: wclipbrd.c config.h ../common.h ../frontend.h ../backend.h \\r
108         winboard.h resource.h wclipbrd.h ../lists.h\r
109         $(call compile, $<)\r
110 \r
111 wedittags.obj: wedittags.c config.h ../common.h winboard.h resource.h ../frontend.h \\r
112         ../backend.h ../lists.h wedittags.h\r
113         $(call compile, $<)\r
114 \r
115 wgamelist.obj: wgamelist.c config.h. ../common.h winboard.h resource.h ../frontend.h \\r
116         ../backend.h wgamelist.h ../lists.h\r
117         $(call compile, $<)\r
118 \r
119 woptions.obj: woptions.c config.h ../common.h ../frontend.h ../backend.h ../lists.h \\r
120         defaults.h winboard.h resource.h\r
121         $(call compile, $<)\r
122 \r
123 wengineo.obj: wengineo.c config.h ../common.h ../frontend.h ../backend.h \\r
124         ../lists.h winboard.h resource.h wsnap.h\r
125         $(call compile, $<)\r
126 \r
127 whistory.obj: whistory.c config.h ../common.h ../frontend.h ../backend.h \\r
128         ../lists.h winboard.h resource.h wsnap.h\r
129         $(call compile, $<)\r
130 \r
131 wevalgraph.obj: wevalgraph.c config.h ../common.h ../frontend.h ../backend.h \\r
132         ../lists.h winboard.h resource.h wsnap.h\r
133         $(call compile, $<)\r
134 \r
135 wlayout.obj: wlayout.c config.h ../common.h winboard.h resource.h\r
136         $(call compile, $<)\r
137 \r
138 wsockerr.obj: wsockerr.c wsockerr.h\r
139         $(call compile, $<)\r
140 \r
141 wsnap.obj: wsnap.c wsnap.h\r
142         $(call compile, $<)\r
143 \r
144 pgntags.o: ../pgntags.c config.h ../common.h ../frontend.h ../backend.h \\r
145         ../parser.h ../lists.h\r
146         $(call compile, $<)\r
147 \r
148 zippy.o: ../zippy.c config.h ../common.h ../zippy.h ../frontend.h \\r
149         ../backend.h ../backendz.h ../lists.h\r
150         $(call compile, $<)\r
151 \r
152 book.o: ../book.c ../common.h ../backend.h ../lists.h\r
153         $(call compile, $<)\r
154 \r
155 uci.o: ../uci.c ..//common.h ../backend.h ../frontend.h ../lists.h\r
156         $(call compile, $<)\r
157 \r
158 %.o: %.c\r
159         $(call compile, $<)\r