]> git.saurik.com Git - wxWidgets.git/blob - distrib/msw/tmake/b32.t
fix for C files
[wxWidgets.git] / distrib / msw / tmake / b32.t
1 #!#############################################################################
2 #! File: b32.t
3 #! Purpose: tmake template file from which makefile.b32 is generated by running
4 #! tmake -t b32 wxwin.pro
5 #! Author: Vadim Zeitlin
6 #! Created: 14.07.99
7 #! Version: $Id$
8 #!#############################################################################
9
10 #${
11 #! include the code which parses filelist.txt file and initializes
12 #! %wxCommon, %wxGeneric and %wxMSW hashes.
13 IncludeTemplate("filelist.t");
14
15 #! now transform these hashes into $project tags
16 foreach $file (sort keys %wxGeneric) {
17 my $tag = "";
18 if ( $wxGeneric{$file} =~ /\b(G|16|U)\b/ ) {
19 next;
20 }
21
22 $file =~ s/cp?p?$/obj/;
23 $project{"WXGENERICOBJS"} .= "\$(MSWDIR)\\" . $file . " "
24 }
25
26 foreach $file (sort keys %wxCommon) {
27 $isCFile = $file =~ /\.c$/;
28 $file =~ s/cp?p?$/obj/;
29 $obj = "\$(MSWDIR)\\" . $file . " ";
30 $project{"WXCOMMONOBJS"} .= $obj;
31 $project{"WXCOBJS"} .= $obj if $isCFile;
32 }
33
34 foreach $file (sort keys %wxMSW) {
35 next if $wxMSW{$file} =~ /\b16\b/;
36
37 if ( file =~ /automtn/ ) {
38 #! comment in old makefile.b32 seems to imply that this file can't
39 #! be compiled with Borland (leads to crash in oleauto sample)
40 next;
41 }
42
43 $file =~ s/cp?p?$/obj/;
44 $project{"WXMSWOBJS"} .= "\$(MSWDIR)\\" . $file . " "
45 }
46 #$}
47
48 # This file was automatically generated by tmake at #$ Now()
49 # DO NOT CHANGE THIS FILE, YOUR CHANGES WILL BE LOST! CHANGE B32.T!
50
51 #
52 # File: makefile.b32
53 # Author: Julian Smart
54 # Created: 1998
55 # Updated:
56 # Copyright:
57 #
58 # "%W% %G%"
59 #
60 # Makefile : Builds wxWindows library wx.lib for MS Windows,
61 # and Borland C++ (32-bit).
62
63 !if "$(BCCDIR)" == ""
64 !error You must define the BCCDIR variable in autoexec.bat, e.g. BCCDIR=d:\bc4
65 !endif
66
67 !if "$(WXWIN)" == ""
68 !error You must define the WXWIN variable in autoexec.bat, e.g. WXWIN=c:\wx
69 !endif
70
71 WXDIR = $(WXWIN)
72
73 # Set all these to 1 if you want to build a dynamic library
74 !if "$(DLL)" == "1"
75 WXMAKINGDLL=1
76 WXBUILDDLL=1
77 !endif
78
79 !include $(WXDIR)\src\makeb32.env
80
81 # Please set these according to the settings in wx_setup.h, so we can include
82 # the appropriate libraries in wx.lib
83 USE_CTL3D=0
84 USE_XPM_IN_MSW=0
85
86 PERIPH_LIBS=
87 PERIPH_TARGET=
88 PERIPH_CLEAN_TARGET=
89
90 !if "$(USE_CTL3D)" == "1"
91 #Use WIN32S/WIN95 32 bit version ctl3d32.dll under win95 (Andre Beltman)
92 PERIPH_LIBS=$(WXDIR)\lib\ctl3d32.lib $(PERIPH_LIBS)
93 PERIPH_TARGET=ctl3d $(PERIPH_TARGET)
94 PERIPH_CLEAN_TARGET=clean_ctl3d $(PERIPH_CLEAN_TARGET)
95 !endif
96
97 !if "$(USE_XPM_IN_MSW)" == "1"
98 PERIPH_LIBS=$(WXLIB)\xpm.lib $(PERIPH_LIBS)
99 PERIPH_TARGET=xpm $(PERIPH_TARGET)
100 PERIPH_CLEAN_TARGET=clean_xpm $(PERIPH_CLEAN_TARGET)
101 !endif
102
103 #PERIPH_LIBS=$(WXDIR)\lib\zlib.lib $(WXDIR)\lib\winpng.lib $(WXDIR)\lib\jpeg.lib $(PERIPH_LIBS)
104 PERIPH_LIBS=
105 PERIPH_TARGET=zlib png jpeg $(PERIPH_TARGET)
106 PERIPH_CLEAN_TARGET=clean_zlib clean_png clean_jpeg $(PERIPH_CLEAN_TARGET)
107
108 !if "$(DLL)" == "0"
109 DUMMY=dummy
110 !else
111 DUMMY=dummydll
112 LIBS= cw32 import32 ole2w32
113 !endif
114
115 LIBTARGET=$(WXLIB)
116
117 GENDIR=..\generic
118 COMMDIR=..\common
119 OLEDIR=.\ole
120 MSWDIR=.
121
122 DOCDIR = $(WXDIR)\docs
123
124 GENERICOBJS= #$ ExpandList("WXGENERICOBJS");
125
126 # Not needed:
127 # $(MSWDIR)\colrdlgg.obj \
128 # $(MSWDIR)\fontdlgg.obj \
129 # $(MSWDIR)\helpxlp.obj \
130 # $(MSWDIR)\msgdlgg.obj \
131 # $(MSWDIR)\printps.obj \
132 # $(MSWDIR)\prntdlgg.obj \
133 # $(MSWDIR)\listctrl.obj \
134 # $(MSWDIR)\notebook.obj \
135 # $(MSWDIR)\treectrl.obj
136
137 COMMONOBJS = \
138 $(MSWDIR)\y_tab.obj \
139 #$ ExpandList("WXCOMMONOBJS");
140
141 MSWOBJS = #$ ExpandList("WXMSWOBJS");
142
143 OBJECTS = $(COMMONOBJS) $(GENERICOBJS) $(MSWOBJS)
144
145 default: wx
146
147 wx: $(CFG) $(DUMMY).obj $(OBJECTS) $(PERIPH_TARGET) $(LIBTARGET)
148
149 all: all_libs all_execs
150
151 !if "$(DLL)" == "0"
152
153 $(LIBTARGET): $(DUMMY).obj $(OBJECTS)
154 -erase $(LIBTARGET)
155 tlib $(LIBTARGET) /P512 @&&!
156 +$(OBJECTS:.obj =.obj +) +$(PERIPH_LIBS:.lib =.lib +)
157 !
158
159 !else
160
161 $(LIBTARGET): $(DUMMY).obj $(OBJECTS)
162 -erase $(LIBTARGET)
163 -erase $(WXLIBDIR)\wx.dll
164 tlink32 $(LINK_FLAGS) /v @&&!
165 c0d32.obj $(OBJECTS)
166 $(WXLIBDIR)\wx
167 nul
168 $(PERIPH_LIBS) $(LIBS)
169 wxb32
170 !
171 implib -c $(LIBTARGET) $(WXLIBDIR)\wx.dll
172
173 !endif
174
175 dummy.obj: dummy.$(SRCSUFF) $(LOCALHEADERS) $(BASEHEADERS) $(WXDIR)\include\wx\wx.h
176 dummydll.obj: dummydll.$(SRCSUFF) $(LOCALHEADERS) $(BASEHEADERS) $(WXDIR)\include\wx\wx.h
177
178 $(MSWDIR)\y_tab.obj: $(COMMDIR)\y_tab.c $(COMMDIR)\lex_yy.c
179
180 # cl @<<
181 # $(CPPFLAGS2) /c $*.c -DUSE_DEFINE -DYY_USE_PROTOS /Fo$@
182 # <<
183
184 $(COMMDIR)\y_tab.c: $(COMMDIR)\dosyacc.c
185 copy $(COMMDIR)\dosyacc.c $(COMMDIR)\y_tab.c
186
187 $(COMMDIR)\lex_yy.c: $(COMMDIR)\doslex.c
188 copy $(COMMDIR)\doslex.c $(COMMDIR)\lex_yy.c
189
190 # $(OBJECTS): $(WXDIR)\include\wx\setup.h
191
192 #${
193 $_ = $project{"WXMSWOBJS"};
194 my @objs = split;
195 foreach (@objs) {
196 $text .= $_ . ": ";
197 s/obj$/\$(SRCSUFF)/;
198 $text .= $_ . "\n\n";
199 }
200 #$}
201
202 ########################################################
203 # Common objects (always compiled)
204
205 #${
206 $_ = $project{"WXCOMMONOBJS"};
207 my @objs = split;
208 foreach (@objs) {
209 $text .= $_ . ": ";
210 $suffix = $project{"WXCOBJS"} =~ /\Q$_/ ? "c" : '$(SRCSUFF)';
211 s/MSWDIR/COMMDIR/;
212 s/obj$/$suffix/;
213 $text .= $_ . "\n\n";
214 }
215 #$}
216
217 ########################################################
218 # Generic objects (not always compiled, depending on
219 # whether platforms have native implementations)
220
221 #${
222 $_ = $project{"WXGENERICOBJS"};
223 my @objs = split;
224 foreach (@objs) {
225 $text .= $_ . ": ";
226 s/MSWDIR/GENDIR/;
227 s/obj$/\$(SRCSUFF)/;
228 $text .= $_ . "\n\n";
229 }
230 #$}
231
232
233 all_utils:
234 cd $(WXDIR)\utils
235 make -f makefile.b32
236 cd $(WXDIR)\src\msw
237
238 all_samples:
239 cd $(WXDIR)\samples
240 make -f makefile.b32
241 cd $(WXDIR)\src\msw
242
243 all_execs:
244 cd $(WXDIR)\utils
245 make -f makefile.b32 all_execs
246 cd $(WXDIR)\src\msw
247
248 wxxpm: $(CFG)
249 cd $(WXDIR)\src\xpm
250 make -f makefile.b32 -DCFG=$(CFG) -DFINAL=$(FINAL) -DWXWIN=$(WXDIR) -DDEBUG=$(DEBUG)
251 cd $(WXDIR)\src\msw
252
253 clean_wxxpm: $(CFG)
254 cd $(WXDIR)\src\xpm
255 make -f makefile.b32 clean
256 cd $(WXDIR)\src\msw
257
258 png: $(CFG)
259 cd $(WXDIR)\src\png
260 make -f makefile.b32
261 cd $(WXDIR)\src\msw
262
263 clean_png:
264 cd $(WXDIR)\src\png
265 make -f makefile.b32 clean
266 cd $(WXDIR)\src\msw
267
268 zlib: $(CFG)
269 cd $(WXDIR)\src\zlib
270 make -f makefile.b32 lib
271 cd $(WXDIR)\src\msw
272
273 clean_zlib:
274 cd $(WXDIR)\src\zlib
275 make -f makefile.b32 clean
276 cd $(WXDIR)\src\msw
277
278 jpeg: $(CFG)
279 cd $(WXDIR)\src\jpeg
280 make -f makefile.b32
281 cd $(WXDIR)\src\msw
282
283 clean_jpeg:
284 cd $(WXDIR)\src\jpeg
285 make -f makefile.b32 clean
286 cd $(WXDIR)\src\msw
287
288 $(CFG): makefile.b32
289 copy &&!
290 -H=$(WXDIR)\src\msw\wx32.csm
291 -3
292 -d
293 -R-
294 -X
295 -w-par
296 -w-aus
297 -w-hid # virtual function A hides virtual function B
298 -WE
299 -tWM
300
301 -I$(WXINC);$(BCCDIR)\include;$(WXDIR)/src/png;$(WXDIR)/src/jpeg;$(WXDIR)/src/zlib;$(WXDIR)/src/xpm
302 -I$(WXDIR)\include\wx\msw\gnuwin32
303
304 -L$(BCCDIR)\lib
305 -D__WXWIN__
306 -D__WXMSW__
307 -D__WINDOWS__
308 -DWIN32
309 $(OPT)
310 $(DEBUG_FLAGS)
311 $(WIN95FLAG)
312 ! $(CFG)
313
314 #-I$(WXDIR)\src\common\wxxpm\libxpm.34b\lib
315 # -Oxt
316
317 clean: $(PERIPH_CLEAN_TARGET)
318 -erase $(LIBTARGET)
319 -erase *.obj
320 -erase *.pch
321 -erase *.csm
322 -erase *.cfg
323 -erase ..\common\y_tab.c
324 -erase ..\common\lex_yy.c
325
326 cleanall: clean
327
328
329 MFTYPE=b32
330 makefile.$(MFTYPE) : $(WXWIN)\distrib\msw\tmake\filelist.txt $(WXWIN)\distrib\msw\tmake\$(MFTYPE).t
331 cd $(WXWIN)\distrib\msw\tmake
332 tmake -t $(MFTYPE) wxwin.pro -o makefile.$(MFTYPE)
333 copy makefile.$(MFTYPE) $(WXWIN)\src\msw
334