]> git.saurik.com Git - wxWidgets.git/blob - distrib/msw/tmake/dos.t
glibc's vswprintf doesn't nul terminate on truncation.
[wxWidgets.git] / distrib / msw / tmake / dos.t
1 #!#############################################################################
2 #! File: dos.t
3 #! Purpose: tmake template file from which makefile.dos is generated by running
4 #! tmake -t dos wxwin.pro -o makefile.dos
5 #! Author: Vadim Zeitlin
6 #! Created: 14.07.99
7 #! Version: $Id$
8 #!#############################################################################
9 #${
10 #! include the code which parses filelist.txt file and initializes
11 #! %wxCommon, %wxGeneric and %wxMSW hashes.
12 IncludeTemplate("filelist.t");
13
14 #! now transform these hashes into $project tags
15 foreach $file (sort keys %wxGeneric) {
16 if ( $wxGeneric{$file} =~ /\b(PS|G|U)\b/ ) {
17 #! Need this file too since it has wxGenericPageSetupDialog
18 next unless $file =~ /^prntdlgg\./;
19 }
20
21 $file =~ s/cp?p?$/obj/;
22 $project{"WXGENERICOBJS"} .= "\$(GENDIR)\\" . $file . " "
23 }
24
25 #! because we later search for " <filename> " in this string
26 $project{"WXCOBJS"} = " ";
27
28 foreach $file (sort keys %wxCommon) {
29 #! socket files don't compile under Win16 currently
30 next if $wxCommon{$file} =~ /\b(32|S)\b/;
31
32 $isCFile = $file =~ /\.c$/;
33 $file =~ s/cp?p?$/obj/;
34 $obj = "\$(COMMDIR)\\" . $file . " ";
35 #! $project{"WXCOMMONOBJS"} .= $obj;
36 #! have to split lib in 2 halves because otherwise it's too big
37 $project{$file =~ "^[a-o]" ? "WXCOMMONOBJS1" : "WXCOMMONOBJS2"} .= $obj;
38 $project{"WXCOBJS"} .= $obj if $isCFile;
39 }
40
41 foreach $file (sort keys %wxMSW) {
42 #! don't take files not appropriate for 16-bit Windows
43 next if $wxMSW{$file} =~ /\b(32|O)\b/;
44
45 $isCFile = $file =~ /\.c$/;
46 $file =~ s/cp?p?$/obj/;
47 $obj = "\$(MSWDIR)\\" . $file . " ";
48 #! have to split lib in 2 halves because otherwise it's too big
49 $project{$file =~ "^[a-o]" ? "WXMSWOBJS1" : "WXMSWOBJS2"} .= $obj;
50 $project{"WXCOBJS"} .= $obj if $isCFile;
51 }
52 #$}
53 # This file was automatically generated by tmake
54 # DO NOT CHANGE THIS FILE, YOUR CHANGES WILL BE LOST! CHANGE DOS.T!
55
56 #
57 # File: makefile.dos
58 # Author: Julian Smart
59 # Created: 1997
60 # Updated:
61 # Copyright:(c) 1997, Julian Smart
62 #
63 # "%W% %G%"
64 #
65 # Makefile : Builds wxWindows library wx.lib for VC++ (16-bit)
66 # Arguments:
67 #
68 # FINAL=1 argument to nmake to build version with no debugging info.
69 #
70 !include <..\makemsc.env>
71
72 LIBTARGET=$(WXLIB)
73 DUMMYOBJ=dummy.obj
74
75 # Please set these according to the settings in wx_setup.h, so we can include
76 # the appropriate libraries in wx.lib
77
78 # This one overrides the others, to be consistent with the settings in wx_setup.h
79 MINIMAL_WXWINDOWS_SETUP=0
80
81 USE_CTL3D=1
82
83 !if "$(MINIMAL_WXWINDOWS_SETUP)" == "1"
84 USE_CTL3D=0
85 !endif
86
87 PERIPH_LIBS=
88 PERIPH_TARGET=
89 PERIPH_CLEAN_TARGET=
90
91 # !if "$(USE_CTL3D)" == "1"
92 # PERIPH_LIBS=d:\msdev\lib\ctl3d32.lib $(PERIPH_LIBS)
93 # !endif
94
95 # PNG and Zlib
96 PERIPH_TARGET=png zlib $(PERIPH_TARGET)
97 PERIPH_CLEAN_TARGET=clean_png clean_zlib $(PERIPH_CLEAN_TARGET)
98
99 GENDIR=..\generic
100 COMMDIR=..\common
101 OLEDIR=.\ole
102 MSWDIR=.
103
104 GENERICOBJS= #$ ExpandList("WXGENERICOBJS");
105
106 # we can't have all objects in one list because the library becomes too big
107 COMMONOBJS1 = \
108 #$ ExpandList("WXCOMMONOBJS1");
109
110 COMMONOBJS2 = \
111 #$ ExpandList("WXCOMMONOBJS2");
112
113 # we can't have all objects in one list because the library becomes too big
114 MSWOBJS1 = #$ ExpandList("WXMSWOBJS1");
115
116 MSWOBJS2 = #$ ExpandList("WXMSWOBJS2");
117
118 OBJECTS = $(COMMONOBJS1) $(COMMONOBJS2) $(GENERICOBJS) $(MSWOBJS1) $(MSWOBJS2)
119
120 # Normal, static library
121 all: $(DUMMYOBJ) $(WXDIR)\lib\wx1.lib $(WXDIR)\lib\wx2.lib $(WXDIR)\lib\wx3.lib $(WXDIR)\lib\wx4.lib $(WXDIR)\lib\wx5.lib
122
123 $(WXDIR)\lib\wx1.lib: $(COMMONOBJS1) $(PERIPH_LIBS)
124 -erase $(WXDIR)\lib\wx1.lib
125 lib /PAGESIZE:128 @<<
126 $(WXDIR)\lib\wx1.lib
127 y
128 $(COMMONOBJS1) $(PERIPH_LIBS)
129 nul
130 ;
131 <<
132
133 $(WXDIR)\lib\wx2.lib: $(COMMONOBJS2)
134 -erase $(WXDIR)\lib\wx2.lib
135 lib /PAGESIZE:128 @<<
136 $(WXDIR)\lib\wx2.lib
137 y
138 $(COMMONOBJS2)
139 nul
140 ;
141 <<
142
143 $(WXDIR)\lib\wx3.lib: $(GENERICOBJS)
144 -erase $(WXDIR)\lib\wx3.lib
145 lib /PAGESIZE:128 @<<
146 $(WXDIR)\lib\wx3.lib
147 y
148 $(GENERICOBJS)
149 nul
150 ;
151 <<
152
153 $(WXDIR)\lib\wx4.lib: $(MSWOBJS1)
154 -erase $(WXDIR)\lib\wx4.lib
155 lib /PAGESIZE:128 @<<
156 $(WXDIR)\lib\wx4.lib
157 y
158 $(MSWOBJS1)
159 nul
160 ;
161 <<
162
163 $(WXDIR)\lib\wx5.lib: $(MSWOBJS2)
164 -erase $(WXDIR)\lib\wx5.lib
165 lib /PAGESIZE:128 @<<
166 $(WXDIR)\lib\wx5.lib
167 y
168 $(MSWOBJS2)
169 nul
170 ;
171 <<
172
173 ########################################################
174 # Windows-specific objects
175
176 dummy.obj: dummy.$(SRCSUFF) $(WXDIR)\include\wx\wx.h
177 cl @<<
178 cl $(CPPFLAGS) /YcWX/WXPREC.H $(DEBUG_FLAGS) /c /Tp $*.$(SRCSUFF)
179 <<
180
181 #dummy.obj: dummy.$(SRCSUFF) $(WXDIR)\include\wx\wx.h
182 # cl $(CPPFLAGS) /YcWX/WXPREC.H $(DEBUG_FLAGS) /c /Tp $*.$(SRCSUFF)
183
184 dummydll.obj: dummydll.$(SRCSUFF) $(WXDIR)\include\wx\wx.h
185 cl @<<
186 $(CPPFLAGS) /YcWX/WXPREC.H /c /Tp $*.$(SRCSUFF)
187 <<
188
189 #${
190 $_ = $project{"WXMSWOBJS1"} . $project{"WXMSWOBJS2"} . $project{"WXCOMMONOBJS1"} . $project{"WXCOMMONOBJS2"} . $project{"WXGENERICOBJS"};
191 my @objs = split;
192 foreach (@objs) {
193 if ( $project{"WXCOBJS"} =~ / \Q$_\E / ) {
194 s:\\:/:;
195 $text .= $_ . ': $*.c' . "\n" .
196 ' cl @<<' . "\n" .
197 '$(CPPFLAGS2) /Fo$@ /c /Tc $*.c' . "\n" .
198 "<<\n\n";
199 }
200 else {
201 s:\\:/:;
202 $text .= $_ . ': $*.$(SRCSUFF)' . "\n" .
203 ' cl @<<' . "\n" .
204 '$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)' . "\n" .
205 "<<\n\n";
206 }
207 }
208 #$}
209
210 $(OBJECTS): $(WXDIR)/include/wx/setup.h
211
212 # Peripheral components
213
214 zlib:
215 cd $(WXDIR)\src\zlib
216 nmake -f makefile.dos FINAL=$(FINAL)
217 cd $(WXDIR)\src\msw
218
219 clean_zlib:
220 cd $(WXDIR)\src\zlib
221 nmake -f makefile.dos clean
222 cd $(WXDIR)\src\msw
223
224 png:
225 cd $(WXDIR)\src\png
226 nmake -f makefile.dos FINAL=$(FINAL)
227 cd $(WXDIR)\src\msw
228
229 clean_png:
230 cd $(WXDIR)\src\png
231 nmake -f makefile.dos clean
232 cd $(WXDIR)\src\msw
233
234 clean: $(PERIPH_CLEAN_TARGET)
235 -erase *.obj
236 -erase ..\lib\*.lib
237 -erase *.pdb
238 -erase *.sbr
239 -erase *.pch
240 cd $(WXDIR)\src\generic
241 -erase *.pdb
242 -erase *.sbr
243 -erase *.obj
244 cd $(WXDIR)\src\common
245 -erase *.pdb
246 -erase *.sbr
247 -erase *.obj
248 cd $(WXDIR)\src\msw\ole
249 -erase *.pdb
250 -erase *.sbr
251 -erase *.obj
252 cd $(WXDIR)\src\msw
253
254 cleanall: clean
255
256
257 MFTYPE=dos
258 makefile.$(MFTYPE) : $(WXWIN)\distrib\msw\tmake\filelist.txt $(WXWIN)\distrib\msw\tmake\$(MFTYPE).t
259 cd $(WXWIN)\distrib\msw\tmake
260 tmake -t $(MFTYPE) wxwin.pro -o makefile.$(MFTYPE)
261 copy makefile.$(MFTYPE) $(WXWIN)\src\msw