]> git.saurik.com Git - wxWidgets.git/blame - distrib/msw/tmake/watmgl.t
optimization for faster execution: don't use wxString::Replace() all the times a...
[wxWidgets.git] / distrib / msw / tmake / watmgl.t
CommitLineData
f17fb297
VS
1#!#############################################################################
2#! File: wat.t
3#! Purpose: tmake template file from which makefile.wat is generated by running
4#! tmake -t wat wxwin.pro -o makefile.wat
5#! TODO:
6#! - extended.c, unzip.c must be compiled with $(CC), not $(CCC).
7#! - extended.c, unzip.c targets must be as per b32.t etc.
8#! - OLE files not generated correctly (need 'ole/' directory)
9#! Author: Vadim Zeitlin
10#! Created: 14.07.99
11#! Version: $Id$
12#!#############################################################################
13#${
14 #! include the code which parses filelist.txt file and initializes
15 #! %wxCommon, %wxGeneric and %wxMSW hashes.
16 IncludeTemplate("filelist.t");
17
18 #! now transform these hashes into $project tags
19 foreach $file (sort keys %wxGeneric) {
20 next if $wxGeneric{$file} =~ /\bNotMGL\b/;
21
22 $file =~ s/cp?p?$/obj/;
23 $project{"WXGENERICOBJS"} .= $file . " "
24 }
25
26 foreach $file (sort keys %wxHTML) {
27 next if $wxHTML{$file} =~ /\b16\b/;
28
29 $file =~ s/cp?p?$/obj/;
30 $project{"WXHTMLOBJS"} .= $file . " "
31 }
32
33 foreach $file (sort keys %wxCommon) {
34 next if $wxCommon{$file} =~ /\bNotMGL\b/;
35
36 $isCFile = $file =~ /\.c$/;
37 $file =~ s/cp?p?$/obj/;
38 $project{"WXCOMMONOBJS"} .= $file . " ";
39 $project{"WXCOBJS"} .= $file . " " if $isCFile;
40 }
41
42 foreach $file (sort keys %wxMGL) {
43 #! these files don't compile
44
45 $isBmpbase = $file =~ /bmpbase\.cpp$/;
46 $file =~ s/cp?p?$/obj/;
47 if ($isBmpbase) {
48 $project{"WXCOMMONOBJS"} .= $file . " ";
49 } else {
50 $project{"WXMGLOBJS"} .= $file . " ";
51 }
52 }
53
54 foreach $file (sort keys %wxUNIV) {
55 ($fileobj = $file) =~ s/cp?p?$/\o/;
7e2f4683 56 my $tag = $wxUNIV{$file} =~ /T/ ? "WXUNIVTHEMEOBJS" : "WXUNIVOBJS";
f17fb297
VS
57
58 $file =~ s/cp?p?$/obj/;
59 $project{$tag} .= $file . " ";
60 }
61#$}
62#! an attempt to embed '#' directly in the string somehow didn't work...
63#$ $text = chr(35) . '!/binb/wmake.exe';
64
0f04dbf3 65# This file was automatically generated by tmake
f17fb297
VS
66# DO NOT CHANGE THIS FILE, YOUR CHANGES WILL BE LOST! CHANGE WAT.T!
67
68#
69# File: makefile.wat
70# Author: Julian Smart & Vaclav Slavik
71# Created: 1998
72#
73# Makefile : Builds wxWindows library for Watcom C++, DOS+MGL
74#
75# NOTE: This file is generated from wat.t by tmake, but not all bugs have
76# been removed from this process. If wxWindows doesn't compile,
77# check the following and edit this makefile accordingly:
78#
79# - extended.c, gsocket.c, unzip.c must be compiled using $(CC), not $(CCC).
80# They may also be wrongly specified as extended.cpp, etc.
81
82WXDIR = ..\..
83
84!include makewat.env
85
86WXLIB = $(WXDIR)\lib
87
88LIBTARGET = $(WXLIB)\wx.lib
89DUMMY=dummydll
90# ODBCLIB = ..\..\contrib\odbc\odbc32.lib
91
92EXTRATARGETS = png zlib jpeg tiff regex
93EXTRATARGETSCLEAN = clean_png clean_zlib clean_jpeg clean_tiff clean_regex
94GENDIR=$(WXDIR)\src\generic
95COMMDIR=$(WXDIR)\src\common
96JPEGDIR=$(WXDIR)\src\jpeg
97TIFFDIR=$(WXDIR)\src\tiff
98MGLDIR=$(WXDIR)\src\mgl
99UNIVDIR=$(WXDIR)\src\univ
100UNIVTHEMEDIR=$(WXDIR)\src\univ\themes
101HTMLDIR=$(WXDIR)\src\html
102
103DOCDIR = $(WXDIR)\docs
104
105GENERICOBJS= #$ ExpandGlue("WXGENERICOBJS", "", " &\n\t")
106
107COMMONOBJS = &
108 y_tab.obj &
109 #$ ExpandGlue("WXCOMMONOBJS", "", " &\n\t")
110
111MGLOBJS = #$ ExpandGlue("WXMGLOBJS", "", " &\n\t")
112
113UNIVOBJS = #$ ExpandGlue("WXUNIVOBJS", "", " &\n\t")
114
115UNIVTHEMEOBJS = #$ ExpandGlue("WXUNIVTHEMEOBJS", "", " &\n\t")
116
117HTMLOBJS = #$ ExpandGlue("WXHTMLOBJS", "", " &\n\t")
118
119# Add $(NONESSENTIALOBJS) if wanting generic dialogs, PostScript etc.
120OBJECTS = $(COMMONOBJS) $(GENERICOBJS) $(MGLOBJS) $(UNIVOBJS) $(UNIVTHEMEOBJS) $(HTMLOBJS)
121
2eebeb07
VS
122SETUP_H=$(ARCHINCDIR)\wx\setup.h
123
124all: $(SETUP_H) $(OBJECTS) $(LIBTARGET) $(EXTRATARGETS) .SYMBOLIC
125
126$(ARCHINCDIR)\wx:
127 mkdir $(ARCHINCDIR)
128 mkdir $(ARCHINCDIR)\wx
129
300b5dfa
VS
130$(SETUP_H): $(WXDIR)\include\wx\univ\setup.h $(ARCHINCDIR)\wx
131 copy $(WXDIR)\include\wx\univ\setup.h $@
f17fb297
VS
132
133$(LIBTARGET) : $(OBJECTS)
134 %create tmp.lbc
135 @for %i in ( $(OBJECTS) ) do @%append tmp.lbc +%i
136 wlib /b /c /n /p=512 $^@ @tmp.lbc
137
138clean: .SYMBOLIC $(EXTRATARGETSCLEAN)
139 -erase *.obj
140 -erase $(LIBTARGET)
141 -erase *.pch
142 -erase *.err
143 -erase *.lbc
144
145cleanall: clean
146
147#${
148 $_ = $project{"WXMGLOBJS"};
149 my @objs = split;
150 foreach (@objs) {
151 $text .= $_ . ': $(';
152 s/\.obj$//;
153 $text .= 'MGLDIR)\\';
154 my $suffix, $cc;
155 if ( $project{"WXCOBJS"} =~ /\b\Q$_\E\b/ ) {
156 $suffix = "c";
157 $cc="CC";
158 }
159 else {
160 $suffix = "cpp";
161 $cc="CCC";
162 }
163 $text .= $_ . ".$suffix\n" .
164 " *\$($cc) \$(CPPFLAGS) \$(IFLAGS) \$<" . "\n\n";
165 }
166#$}
167
168########################################################
169# wxUNIVERSAL objects (always compiled)
170
171#${
172 $_ = $project{"WXUNIVOBJS"};
173 my @objs = split;
174 foreach (@objs) {
175 $text .= $_;
176 s/\.obj$//;
177 $text .= ': $(UNIVDIR)\\';
178 $text .= $_ . ".cpp\n" .
179 ' *$(CCC) $(CPPFLAGS) $(IFLAGS) $<' . "\n\n";
180 }
181#$}
182
183#${
184 $_ = $project{"WXUNIVTHEMEOBJS"};
185 my @objs = split;
186 foreach (@objs) {
187 $text .= $_;
188 s/\.obj$//;
189 $text .= ': $(UNIVTHEMEDIR)\\';
190 $text .= $_ . ".cpp\n" .
191 ' *$(CCC) $(CPPFLAGS) $(IFLAGS) $<' . "\n\n";
192 }
193#$}
194
195########################################################
196# Common objects (always compiled)
197
198#${
199 $_ = $project{"WXCOMMONOBJS"};
200 my @objs = split;
201 foreach (@objs) {
202 $text .= $_;
203 s/\.obj$//;
204 $text .= ': $(COMMDIR)\\';
205 my $suffix, $cc;
206 if ( $project{"WXCOBJS"} =~ /\b\Q$_\E\b/ ) {
207 $suffix = "c";
208 $cc="CC";
209 }
210 else {
211 $suffix = "cpp";
212 $cc="CCC";
213 }
214 $text .= $_ . ".$suffix\n" .
215 " *\$($cc) \$(CPPFLAGS) \$(IFLAGS) \$<" . "\n\n";
216 }
217#$}
218
219y_tab.obj: $(COMMDIR)\y_tab.c $(COMMDIR)\lex_yy.c
220 *$(CC) $(CPPFLAGS) $(IFLAGS) -DUSE_DEFINE $(COMMDIR)\y_tab.c
221
222# *$(CC) $(CPPFLAGS) $(IFLAGS) -DUSE_DEFINE -DYY_USE_PROTOS $(COMMDIR)\y_tab.c
223
224$(COMMDIR)\y_tab.c: $(COMMDIR)\dosyacc.c
225 copy $(COMMDIR)\dosyacc.c $(COMMDIR)\y_tab.c
226
227$(COMMDIR)\lex_yy.c: $(COMMDIR)\doslex.c
228 copy $(COMMDIR)\doslex.c $(COMMDIR)\lex_yy.c
229
230########################################################
231# Generic objects (not always compiled, depending on
232# whether platforms have native implementations)
233
234#${
235 $_ = $project{"WXGENERICOBJS"};
236 my @objs = split;
237 foreach (@objs) {
238 $text .= $_;
239 s/\.obj$//;
240 $text .= ': $(GENDIR)\\';
241 $text .= $_ . ".cpp\n" .
242 ' *$(CCC) $(CPPFLAGS) $(IFLAGS) $<' . "\n\n";
243 }
244#$}
245
246
247########################################################
248# HTML objects (always compiled)
249
250#${
251 $_ = $project{"WXHTMLOBJS"};
252 my @objs = split;
253 foreach (@objs) {
254 $text .= $_;
255 s/\.obj$//;
256 $text .= ': $(HTMLDIR)\\';
257 $text .= $_ . ".cpp\n" .
258 ' *$(CCC) $(CPPFLAGS) $(IFLAGS) $<' . "\n\n";
259 }
260#$}
261
262
263png: .SYMBOLIC
264 cd $(WXDIR)\src\png
265 wmake -f makefile.wat all
266 cd $(WXDIR)\src\mgl
267
268clean_png: .SYMBOLIC
269 cd $(WXDIR)\src\png
270 wmake -f makefile.wat clean
271 cd $(WXDIR)\src\mgl
272
273zlib: .SYMBOLIC
274 cd $(WXDIR)\src\zlib
275 wmake -f makefile.wat all
276 cd $(WXDIR)\src\mgl
277
278clean_zlib: .SYMBOLIC
279 cd $(WXDIR)\src\zlib
280 wmake -f makefile.wat clean
281 cd $(WXDIR)\src\mgl
282
283jpeg: .SYMBOLIC
284 cd $(WXDIR)\src\jpeg
285 wmake -f makefile.wat all
286 cd $(WXDIR)\src\mgl
287
288clean_jpeg: .SYMBOLIC
289 cd $(WXDIR)\src\jpeg
290 wmake -f makefile.wat clean
291 cd $(WXDIR)\src\mgl
292
293tiff: .SYMBOLIC
294 cd $(WXDIR)\src\tiff
295 wmake -f makefile.wat all
296 cd $(WXDIR)\src\mgl
297
298clean_tiff: .SYMBOLIC
299 cd $(WXDIR)\src\tiff
300 wmake -f makefile.wat clean
301 cd $(WXDIR)\src\mgl
302
303regex: .SYMBOLIC
304 cd $(WXDIR)\src\regex
305 wmake -f makefile.wat all
306 cd $(WXDIR)\src\mgl
307
308clean_regex: .SYMBOLIC
309 cd $(WXDIR)\src\regex
310 wmake -f makefile.wat clean
311 cd $(WXDIR)\src\mgl
312
313MFTYPE=watmgl
314self : .SYMBOLIC $(WXDIR)\distrib\msw\tmake\filelist.txt $(WXDIR)\distrib\msw\tmake\$(MFTYPE).t
315 cd $(WXDIR)\distrib\msw\tmake
316 tmake -t $(MFTYPE) wxwin.pro -o makefile.$(MFTYPE)
317 copy makefile.$(MFTYPE) $(WXDIR)\src\mgl