]> git.saurik.com Git - wxWidgets.git/blob - distrib/msw/tmake/vc6app.t
5330f04965fa371b2e894b505afc993943727f21
[wxWidgets.git] / distrib / msw / tmake / vc6app.t
1 #!#############################################################################
2 #! File: vc6lib.t
3 #! Purpose: tmake template file from which the VC++ 6.0 project file for
4 #! building static wxWindows library wxvc.dsp is generated by running
5 #! tmake -t vc6lib wxwin.pro -o wxvc.dsp
6 #! Author: Vadim Zeitlin
7 #! Created: 29.09.01
8 #! Version: $Id$
9 #!#############################################################################
10 #${
11 if ( Config("wx") ) {
12 Project('CONFIG += windows');
13 }
14 if ( Config("wxbase") ) {
15 Project('CONFIG += wx');
16 }
17 if ( Config("wx") ) {
18 if ( Config("wxnodir") ) {
19 $WXDIR = "..\\..";
20 }
21 else {
22 #! VC 6.0 supports env vars in include path
23 #! $WXDIR = $ENV{'WX'};
24 if ( $ENV{'wx'} ) {
25 $WXDIR = "\$(wx)";
26 }
27 else {
28 $WXDIR = "\$(WXWIN)";
29 }
30 }
31
32 AddIncludePath($WXDIR . "\\include");
33 }
34
35 if ( Config("unicode") ) {
36 $UNICODE="Unicode";
37 $UNICODE_SUFFIX="u";
38 $UNICODE_FLAGS="/D _UNICODE /D UNICODE ";
39
40 $project{"TARGET"} .= "Unicode";
41 $project{"MAKEFILE"} .= "Unicode";
42 }
43 else {
44 $UNICODE="";
45 $UNICODE_SUFFIX="";
46 $UNICODE_FLAGS=" ";
47 }
48
49 if ( Config("dll") ) {
50 $DLL="Dll";
51 $DLL_OR_LIB=(Config("wxbase") ? "wxbase" : "wxmsw") . "232";
52 $DLL_FLAGS="/D WXUSINGDLL ";
53 $EXTRA_LIBS="";
54
55 $project{"TARGET"} .= "Dll";
56 $project{"MAKEFILE"} .= "Dll";
57 }
58 else {
59 $DLL="";
60 $DLL_OR_LIB=Config("wxbase") ? "wxbase" : "wxmsw";
61 $DLL_FLAGS=" ";
62 #! actually this should depend on the contents of setup.h!
63 $EXTRA_LIBS="zlib regex";
64 if ( !Config("wxbase") ) {
65 $EXTRA_LIBS.=" png jpeg tiff";
66 }
67 }
68
69 $DEBUG_SUFFIX="d";
70
71 #! let's be smart: if no extension is given, add .lib (this allows for
72 #! LIBS=libname in project files which map either on -l libname.lib under
73 #! Windows or on -llibname under Unix).
74 @libs = split(/\s+/, Project('LIBS'));
75 foreach $lib (@libs) {
76 if ( $lib !~ "\.lib\$" ) { $lib .= ".lib"; }
77 Project('TMAKE_LIBS *= ' . $lib);
78 }
79
80 if ( Config("windows") ) {
81 $project{"VC_PROJ_TYPE"} = 'Win32 (x86) Application';
82 $project{"VC_PROJ_CODE"} = '0x0101';
83 $vc_base_libs = 'kernel32.lib user32.lib gdi32.lib winspool.lib ' .
84 'comdlg32.lib advapi32.lib shell32.lib ole32.lib ' .
85 'oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ';
86 if ( Config("wx") ) {
87 $vc_base_libs .= "comctl32.lib rpcrt4.lib wsock32.lib ";
88
89 $vc_link_release = "$WXDIR\\lib\\$DLL_OR_LIB$UNICODE_SUFFIX.lib ";
90 $vc_link_debug = "$WXDIR\\lib\\$DLL_OR_LIB$UNICODE_SUFFIX$DEBUG_SUFFIX.lib ";
91 foreach ( split(/ /, $EXTRA_LIBS) ) {
92 $vc_link_release .= "$WXDIR\\lib\\$_.lib ";
93 $vc_link_debug .= "$WXDIR\\lib\\$_" . "d.lib ";
94 }
95 }
96 $vc_link_release .= '/nologo /subsystem:windows /machine:I386';
97 $vc_link_debug .= '/nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept';
98
99 $vc_cpp_def_common = '/D "WIN32" /D "_WINDOWS" ' . $UNICODE_FLAGS . $DLL_FLAGS;
100 $vc_cpp_def_release = '/D "NDEBUG" ' . $vc_cpp_def_common;
101 $vc_cpp_def_debug = '/D "_DEBUG" ' . $vc_cpp_def_common;
102 } else {
103 $project{"VC_PROJ_TYPE"} = 'Win32 (x86) Console Application';
104 $project{"VC_PROJ_CODE"} = '0x0103';
105 $vc_base_libs = 'kernel32.lib user32.lib advapi32.lib ';
106 if ( Config("wx") ) {
107 $vc_base_libs .= 'wsock32.lib ';
108 $vc_link_release = "$WXDIR\\lib\\$DLL_OR_LIB$UNICODE_SUFFIX.lib ";
109 $vc_link_debug = "$WXDIR\\lib\\$DLL_OR_LIB$UNICODE_SUFFIX$DEBUG_SUFFIX.lib ";
110 }
111 $vc_link_release .= '/nologo /subsystem:console /machine:I386';
112 $vc_link_debug .= '/nologo /subsystem:console /debug /machine:I386 /pdbtype:sept';
113
114 $vc_cpp_def_common = '/D "WIN32" /D "_CONSOLE" ' . $UNICODE_FLAGS . $DLL_FLAGS;
115 $vc_cpp_def_release = '/D "NDEBUG" ' . $vc_cpp_def_common;
116 $vc_cpp_def_debug = '/D "_DEBUG" ' . $vc_cpp_def_common;
117 }
118
119 foreach ( split(/ /, Project('LIBPATH')) ) {
120 $vc_link_release .= " /libpath:$_\\Release";
121 $vc_link_debug .= " /libpath:$_\\Debug";
122 }
123
124 #! define wxWin debug flags in debug build
125 if ( Config("wx") ) {
126 $vc_cpp_def_debug .= '/MDd /D "__WXDEBUG__" /D "WXDEBUG=1" ';
127 $vc_cpp_def_release .= '/MD '
128 }
129
130 $project{"VC_BASE_LINK_RELEASE"} = $vc_base_libs . $vc_link_release;
131 $project{"VC_BASE_LINK_DEBUG"} = $vc_base_libs . $vc_link_debug;
132 $tmake_libs = Project('TMAKE_LIBS') ? (Project('TMAKE_LIBS') . " ") : "";
133 $project{"VC_LINK_RELEASE"} = $vc_base_libs . $tmake_libs . $vc_link_release;
134 $project{"VC_LINK_DEBUG"} = $vc_base_libs . $tmake_libs . $vc_link_debug;
135
136 $vc_cpp_opt_common1 = '/nologo /W4 ';
137
138 $vc_cpp_opt_release = $vc_cpp_opt_common1 . '/O1 ';
139 $vc_cpp_opt_debug = $vc_cpp_opt_common1 . '/Zi /Od ';
140 $vc_cpp_opt_common = '/YX /FD /c';
141 $project{"VC_BASE_CPP_RELEASE"} = $vc_cpp_opt_release . $vc_cpp_def_release . $vc_cpp_opt_common;
142 $project{"VC_BASE_CPP_DEBUG"} = $vc_cpp_opt_debug . $vc_cpp_def_debug . $vc_cpp_opt_common;
143 ExpandGlue("INCPATH",'/I "','" /I "','"');
144 if ( $text ne "" ) { $vc_inc = $text . " "; $text = ""; } else { $vc_inc = ""; }
145 ExpandGlue("DEFINES",'/D "','" /D "','"');
146 if ( $text ne "" ) { $vc_def = $text . " "; $text = ""; } else { $vc_def = ""; }
147 if ( Config("wx") ) {
148 #! define wxWindows compilation flags
149 $vc_def .= '/D _WIN32 /D WINVER=0x400 /D _MT ';
150
151 if ( Config("wxbase") ) {
152 $vc_def .= '/D wxUSE_GUI=0 ';
153 }
154 else {
155 $vc_def .= '/D wxUSE_GUI=1 ';
156 }
157 }
158
159 $project{"VC_CPP_INCLUDE"} = $vc_inc;
160 $project{"VC_CPP_RELEASE"} = $vc_cpp_opt_release . $vc_inc . $vc_cpp_def_release . $vc_def . $vc_cpp_opt_common;
161 $project{"VC_CPP_DEBUG"} = $vc_cpp_opt_debug . $vc_inc . $vc_cpp_def_debug . $vc_def . $vc_cpp_opt_common;
162
163 if ( Project('RES_FILE') ) {
164 tmake_error(".res files are not supported, use .rc.");
165 }
166
167 $project{"MAKEFILE"} = $project{"PROJECT"} . ".mak";
168 $project{"TARGETAPP"} = $project{"TARGET"} . ".exe";
169 Project('TMAKE_FILETAGS = HEADERS SOURCES TARGET DESTDIR $$FILETAGS');
170 foreach ( split(/\s/,Project('TMAKE_FILETAGS')) ) {
171 $project{$_} =~ s-/-\\-g;
172 }
173 StdInit();
174 if ( defined($project{"DESTDIR"}) ) {
175 $project{"TARGETAPP"} = $project{"DESTDIR"} . "\\" . $project{"TARGETAPP"};
176 $project{"TARGETAPP"} =~ s/\\+/\\/g;
177 }
178 %all_files = ();
179 @files = split(/\s+/,$project{"HEADERS"});
180 foreach ( @files ) { $all_files{$_} = "h" };
181 @files = split(/\s+/,$project{"SOURCES"});
182 foreach ( @files ) { $all_files{$_} = "s" };
183 @files = split(/\s+/,$project{"RC_FILE"});
184 foreach ( @files ) { $all_files{$_} = "r" };
185
186 if ( $moc_aware ) {
187 @files = split(/\s+/,$project{"_HDRMOC"});
188 foreach ( @files ) { $all_files{$_} = "m"; }
189 @files = split(/\s+/,$project{"_SRCMOC"});
190 foreach ( @files ) { $all_files{$_} = "i"; }
191 }
192 %file_names = ();
193 foreach $f ( %all_files ) {
194 $n = $f;
195 $n =~ s/^.*\\//;
196 $file_names{$n} = $f;
197 $file_path{$n} = ".\\" . $f;
198 $file_path2{$n} = (($f =~ /^\./) ? "" : ".\\") . $f;
199 }
200
201 #$}
202 # Microsoft Developer Studio Project File - #$ Substitute('Name="$$TARGET" - Package Owner=<4>');
203 # Microsoft Developer Studio Generated Build File, Format Version 6.00
204 # ** DO NOT EDIT **
205
206 # TARGTYPE #$ Substitute('"$$VC_PROJ_TYPE" $$VC_PROJ_CODE');
207
208 CFG=#$ Substitute('$$TARGET - Win32 Debug');
209 !MESSAGE This is not a valid makefile. To build this project using NMAKE,
210 !MESSAGE use the Export Makefile command and run
211 !MESSAGE
212 !MESSAGE NMAKE /f "#$ ExpandGlue('MAKEFILE','','','".');
213 !MESSAGE
214 !MESSAGE You can specify a configuration when running NMAKE
215 !MESSAGE by defining the macro CFG on the command line. For example:
216 !MESSAGE
217 !MESSAGE NMAKE /f #$ Substitute('"$$MAKEFILE" CFG="$$TARGET - Win32 Debug"');
218 !MESSAGE
219 !MESSAGE Possible choices for configuration are:
220 !MESSAGE
221 !MESSAGE #$ Substitute('"$$TARGET - Win32 Release" (based on "$$VC_PROJ_TYPE")');
222 !MESSAGE #$ Substitute('"$$TARGET - Win32 Debug" (based on "$$VC_PROJ_TYPE")');
223 !MESSAGE
224
225 # Begin Project
226 # PROP Scc_ProjName ""
227 # PROP Scc_LocalPath ""
228 CPP=cl.exe
229 #$ Config("windows") && ($text='MTL=midl.exe');
230 RSC=rc.exe
231
232 !IF "$(CFG)" == #$ Substitute('"$$TARGET - Win32 Release"');
233
234 # PROP BASE Use_MFC 0
235 # PROP BASE Use_Debug_Libraries 0
236 # PROP BASE Output_Dir "Release#$ $text = "$UNICODE$DLL" . '"'
237 # PROP BASE Intermediate_Dir "Release#$ $text = "$UNICODE$DLL" . '"'
238 # PROP BASE Target_Dir ""
239 # PROP Use_MFC 0
240 # PROP Use_Debug_Libraries 0
241 # PROP Output_Dir "Release#$ $text = "$UNICODE$DLL" . '"'
242 # PROP Intermediate_Dir "Release#$ $text = "$UNICODE$DLL" . '"'
243 #$ Config("windows") && ($text='# PROP Ignore_Export_Lib 0');
244 # PROP Target_Dir ""
245 # ADD BASE CPP #$ Expand("VC_BASE_CPP_RELEASE");
246 # ADD CPP #$ Expand("VC_CPP_RELEASE");
247 #$ Config("windows") || DisableOutput();
248 # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o NUL /win32
249 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o NUL /win32
250 #$ Config("windows") || EnableOutput();
251 # ADD BASE RSC /l 0x409 /d "NDEBUG" #$ Expand("VC_CPP_INCLUDE");
252 # ADD RSC /l 0x409 /d "NDEBUG" #$ Expand("VC_CPP_INCLUDE");
253 BSC32=bscmake.exe
254 # ADD BASE BSC32 /nologo
255 # ADD BSC32 /nologo
256 LINK32=link.exe
257 # ADD BASE LINK32 #$ Expand("VC_BASE_LINK_RELEASE");
258 # ADD LINK32 #$ Expand("VC_LINK_RELEASE");
259
260 !ELSEIF "$(CFG)" == #$ Substitute('"$$TARGET - Win32 Debug"');
261
262 # PROP BASE Use_MFC 0
263 # PROP BASE Use_Debug_Libraries 1
264 # PROP BASE Output_Dir "Debug#$ $text = "$UNICODE$DLL" . '"'
265 # PROP BASE Intermediate_Dir "Debug#$ $text = "$UNICODE$DLL" . '"'
266 # PROP BASE Target_Dir ""
267 # PROP Use_MFC 0
268 # PROP Use_Debug_Libraries 1
269 # PROP Output_Dir "Debug#$ $text = "$UNICODE$DLL" . '"'
270 # PROP Intermediate_Dir "Debug#$ $text = "$UNICODE$DLL" . '"'
271 #$ Config("windows") && ($text='# PROP Ignore_Export_Lib 0');
272 # PROP Target_Dir ""
273 # ADD BASE CPP #$ Expand("VC_BASE_CPP_DEBUG");
274 # ADD CPP #$ Expand("VC_CPP_DEBUG");
275 #$ Config("windows") || DisableOutput();
276 # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32
277 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32
278 #$ Config("windows") || EnableOutput();
279 # ADD BASE RSC /l 0x409 /d "_DEBUG" #$ Expand("VC_CPP_INCLUDE");
280 # ADD RSC /l 0x409 /d "_DEBUG" #$ Expand("VC_CPP_INCLUDE");
281 BSC32=bscmake.exe
282 # ADD BASE BSC32 /nologo
283 # ADD BSC32 /nologo
284 LINK32=link.exe
285 # ADD BASE LINK32 #$ Expand("VC_BASE_LINK_DEBUG");
286 # ADD LINK32 #$ Expand("VC_LINK_DEBUG");
287
288 !ENDIF
289
290 # Begin Target
291
292 # Name #$Substitute('"$$TARGET - Win32 Release"');
293 # Name #$Substitute('"$$TARGET - Win32 Debug"');
294 #${
295 foreach $n ( sort keys %file_names ) {
296 $f = $file_names{$n};
297 $p = $file_path{$n};
298 $t = $all_files{$f};
299 if ( $t eq "s" || $t eq "h" || $t eq "r" ) {
300 $text .= "# Begin Source File\n\nSOURCE=$file_path{$n}\n";
301 $text .= "# End Source File\n";
302 }
303 }
304 chop $text;
305 #$}
306 # End Target
307 # End Project
308 #! vi: set sta ts=8 sw=4 noet nolist tw=0 ft=make: