linkage fixes for monolithic static build
[wxWidgets.git] / build / bakefiles / common.bkl
1 <?xml version="1.0" ?>
2 <!-- $Id$ -->
3
4 <makefile>
5
6     <requires version="0.1.4"/>
7     
8     <!-- bakefile modules we need: -->
9     <using module="datafiles"/>
10
11     <!-- load python module with wxwindows helpers: -->
12     <using module="wxwin"/>
13
14     <include file="config.bkl"/>
15
16     <include file="plugins_deps.bkl"/>
17     
18     <!-- ================================================================== -->
19     <!--                     wxWidgets version numbers:                     -->
20     <!-- ================================================================== -->
21
22     <set var="WXVER_MAJOR">$(wxwin.getVersionMajor())</set>
23     <set var="WXVER_MINOR">$(wxwin.getVersionMinor())</set>
24     <set var="WXVER_RELEASE">$(wxwin.getVersionRelease())</set>
25     <set var="WX_RELEASE" make_var="1">
26         $(WXVER_MAJOR).$(WXVER_MINOR)
27     </set>
28     <set var="WX_RELEASE_NODOT" make_var="1">
29         $(WXVER_MAJOR)$(WXVER_MINOR)
30     </set>
31     <set var="WX_VERSION" make_var="1">
32         $(WX_RELEASE).$(WXVER_RELEASE)
33     </set>
34     <set var="WX_VERSION_NODOT" make_var="1">
35         $(WX_RELEASE_NODOT)$(WXVER_RELEASE)
36     </set>
37
38     <set var="WX_STABLE_BRANCH">$(int(int(WXVER_MINOR) % 2 == 0))</set>
39
40     <set var="WXSOVERSION">
41         <if cond="WX_STABLE_BRANCH=='1'">0.0.0</if>
42         <if cond="WX_STABLE_BRANCH=='0'">$(WXVER_RELEASE).0.0</if>
43     </set>
44     <set var="WXMACVERSION">$(WX_VERSION)</set>
45     <set var="WXWIN32DLLVERSION">
46         <if cond="WX_STABLE_BRANCH=='1'">$(WX_RELEASE_NODOT)</if>
47         <if cond="WX_STABLE_BRANCH=='0'">$(WX_VERSION_NODOT)</if>
48     </set>
49     
50     
51     <!-- ================================================================== -->
52     <!--                     Names of libraries and DLLs:                   -->
53     <!-- ================================================================== -->
54
55     <set var="PORTNAME">
56         <if cond="USE_GUI=='0'">base</if>
57         <if cond="USE_GUI=='1'">$(TOOLKIT_LOWERCASE)$(TOOLKIT_VERSION)</if>
58     </set>
59     
60     <set var="WXBASEPORT">
61         <if cond="TOOLKIT=='MAC'">_carbon</if>
62     </set>
63
64     <set var="COMPILERORGCC">
65         <if cond="isdefined('COMPILER')">$(COMPILER)</if>
66         <if cond="not isdefined('COMPILER')">gcc</if>
67     </set>
68     <set var="WXCOMPILER">
69         <if cond="PLATFORM_WIN32=='1'">_$(COMPILERORGCC)</if>
70     </set>
71
72     <set var="VENDORTAG">
73         <if cond="PLATFORM_WIN32=='1' and OFFICIAL_BUILD=='1'"></if>
74         <if cond="PLATFORM_WIN32=='1' and OFFICIAL_BUILD=='0'">_$(VENDOR)</if>
75     </set>
76
77     <set var="WXDEBUGFLAG">
78         <if cond="BUILD=='debug' and DEBUG_FLAG=='default'">d</if>
79         <if cond="DEBUG_FLAG=='1'">d</if>
80     </set>
81     <set var="WXUNICODEFLAG">
82         <!-- WinCE is Unicode-only platform: -->
83         <if cond="UNICODE=='1' and FORMAT!='msevc4prj'">u</if>
84     </set>
85     <set var="WXNAMESUFFIX">
86         $(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)
87     </set>
88     
89     <set var="WXUNIVNAME">
90         <if cond="WXUNIV=='1'">univ</if>
91     </set>
92     <set var="WXUNIV_DEFINE">
93         <if cond="WXUNIV=='1'">__WXUNIVERSAL__</if>
94     </set>
95
96     <if cond="FORMAT=='autoconf'">
97         <set var="WXNAMEPREFIX">wx_base$(WXBASEPORT)</set>
98         <set var="WXNAMEPREFIXGUI">wx_$(PORTNAME)$(WXUNIVNAME)</set>
99         <set var="WXVERSIONTAG">-$(WX_RELEASE)</set>
100     </if>
101     <if cond="FORMAT!='autoconf'">
102         <set var="WXNAMEPREFIX">
103             wxbase$(WXBASEPORT)$(WX_RELEASE_NODOT)
104         </set>
105         <set var="WXNAMEPREFIXGUI">
106             wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)</set>
107         <set var="WXVERSIONTAG"></set>
108     </if>
109     <set var="WXDLLNAMEPREFIX">
110         <if cond="PLATFORM_WIN32=='1'">
111             wxbase$(WXBASEPORT)$(WXWIN32DLLVERSION)
112         </if>
113         <if cond="PLATFORM_WIN32=='0'">$(WXNAMEPREFIX)</if>
114     </set>
115     <set var="WXDLLNAMEPREFIXGUI">
116         <if cond="PLATFORM_WIN32=='1'">
117             wx$(PORTNAME)$(WXUNIVNAME)$(WXWIN32DLLVERSION)
118         </if>
119         <if cond="PLATFORM_WIN32=='0'">$(WXNAMEPREFIXGUI)</if>
120     </set>
121     <set var="WXDLLVERSIONTAG">
122         <if cond="PLATFORM_WIN32=='1'"></if>
123         <if cond="PLATFORM_WIN32=='0'">$(WXVERSIONTAG)</if>
124     </set>
125
126     
127     <!-- =============================================================== -->
128     <!--                    Names of component libraries:                -->
129     <!-- =============================================================== -->
130
131     <set var="WXLIB_BASE">
132         <if cond="MONOLITHIC=='0'">$(mk.evalExpr(wxwin.mkLibName('base')))</if>
133     </set>
134     <set var="WXLIB_NET">
135         <if cond="MONOLITHIC=='0'">$(mk.evalExpr(wxwin.mkLibName('net')))</if>
136     </set>
137     <set var="WXLIB_CORE">
138         <if cond="MONOLITHIC=='0'">$(mk.evalExpr(wxwin.mkLibName('core')))</if>
139     </set>
140     <set var="WXLIB_ADV">
141         <if cond="MONOLITHIC=='0'">$(mk.evalExpr(wxwin.mkLibName('adv')))</if>
142     </set>
143     <set var="WXLIB_HTML">
144         <if cond="MONOLITHIC=='0'">$(mk.evalExpr(wxwin.mkLibName('html')))</if>
145     </set>
146     <set var="WXLIB_XML">
147         <if cond="MONOLITHIC=='0'">$(mk.evalExpr(wxwin.mkLibName('xml')))</if>
148     </set>
149     <set var="WXLIB_XRC">
150         <if cond="MONOLITHIC=='0'">$(mk.evalExpr(wxwin.mkLibName('xrc')))</if>
151     </set>
152     <set var="WXLIB_ODBC">
153         <if cond="MONOLITHIC=='0' and USE_ODBC=='1'">
154             $(mk.evalExpr(wxwin.mkLibName('odbc')))
155         </if>
156     </set>
157     <set var="WXLIB_DBGRID">
158         <if cond="MONOLITHIC=='0'">$(mk.evalExpr(wxwin.mkLibName('dbgrid')))</if>
159     </set>
160
161     <set var="WXLIB_MONO">
162         <if cond="MONOLITHIC=='1'">$(mk.evalExpr(wxwin.mkLibName('mono')))</if>
163     </set>
164     
165     
166     <!-- =============================================================== -->
167     <!--             Where to store built libraries and objects:         -->
168     <!-- =============================================================== -->
169     
170     <set var="DIR_SUFFIX_CPU">
171         <if cond="FORMAT=='msevc4prj'">_$(CPU)</if>
172     </set>
173
174     <if cond="FORMAT!='autoconf'">
175         <set var="WXDLLFLAG">
176             <if cond="SHARED=='1'">dll</if>
177         </set>
178         <set var="CFG_NAME_PART">
179             $(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WXDLLFLAG)$(CFG)
180         </set>
181         <set var="OBJS" make_var="1">
182             <if cond="FORMAT!='cbuilderx'">
183                 $(COMPILER)_$(CFG_NAME_PART)$(DIR_SUFFIX_CPU)
184             </if>
185             <!-- FIXME: waiting for removal after CBX has better ../ dirs
186                  support -->
187             <if cond="FORMAT=='cbuilderx'">build_cbx_$(CFG_NAME_PART)</if>
188         </set>
189
190         <set var="BUILDDIR">$(OBJS)</set>
191     </if>
192     
193     <set var="LIBDIRNAME" make_var="1">
194         <if cond="FORMAT=='autoconf'">$(top_builddir)lib</if>
195         <if cond="FORMAT!='autoconf' and SHARED=='0'">
196             $(nativePaths(TOP_SRCDIR))lib$(DIRSEP)$(COMPILER)$(DIR_SUFFIX_CPU)_lib$(CFG)
197         </if>
198         <if cond="FORMAT!='autoconf' and SHARED=='1'">
199             $(nativePaths(TOP_SRCDIR))lib$(DIRSEP)$(COMPILER)$(DIR_SUFFIX_CPU)_dll$(CFG)
200         </if>
201     </set>
202     
203     <if cond="FORMAT!='autoconf'">
204         <set var="SETUPHDIR" make_var="1">
205             $(LIBDIRNAME)\$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)
206         </set>
207     </if>
208     
209
210     
211     <!-- =============================================================== -->
212     <!--                        Templates for libs:                      -->
213     <!-- =============================================================== -->
214
215     <set var="DEBUGINFO">
216         <if cond="BUILD=='debug' and DEBUG_INFO=='default'">on</if>
217         <if cond="DEBUG_INFO=='1'">on</if>
218         <if cond="BUILD=='release' and DEBUG_INFO=='default'">off</if>
219         <if cond="DEBUG_INFO=='0'">off</if>
220     </set>
221     <set var="DEBUGRUNTIME">
222         <if cond="DEBUG_RUNTIME_LIBS=='default'">$(DEBUGINFO)</if>
223         <if cond="DEBUG_RUNTIME_LIBS=='0'">off</if>
224         <if cond="DEBUG_RUNTIME_LIBS=='1'">on</if>
225     </set>
226     <set var="OPTIMIZEFLAG">
227         <if cond="BUILD=='debug'">off</if>
228         <if cond="BUILD=='release'">speed</if>
229     </set>
230     <set var="EXCEPTIONSFLAG">
231         <if cond="USE_EXCEPTIONS=='1'">on</if>
232         <if cond="USE_EXCEPTIONS=='0'">off</if>
233     </set>
234
235     <set var="DEBUG_DEFINE">
236         <if cond="FORMAT!='autoconf' and BUILD=='debug' and DEBUG_FLAG=='default'">__WXDEBUG__</if>
237         <if cond="FORMAT!='autoconf' and DEBUG_FLAG=='1'">__WXDEBUG__</if>
238     </set>
239     <!-- does not cover all cases, but better than nothing -->
240     <set var="NO_VC_CRTDBG">
241         <if cond="FORMAT=='msvc' and BUILD=='debug' and DEBUG_RUNTIME_LIBS=='0'">__NO_VC_CRTDBG__</if>
242         <if cond="FORMAT=='msvc' and BUILD=='release' and DEBUG_FLAG=='1'">__NO_VC_CRTDBG__</if>
243     </set>
244     <set var="UNICODE_DEFINE">
245         <if cond="FORMAT!='autoconf' and UNICODE=='1'">_UNICODE</if>
246     </set>
247     
248     <set var="UNICOWS_LIB">
249         <if cond="MSLU=='1'">unicows</if>
250     </set>
251
252     <template id="common_settings">
253         <debug-info>$(DEBUGINFO)</debug-info>
254         <debug-runtime-libs>$(DEBUGRUNTIME)</debug-runtime-libs>
255         <optimize>$(OPTIMIZEFLAG)</optimize>
256         <threading>multi</threading>
257         <runtime-libs>$(RUNTIME_LIBS)</runtime-libs>
258         <cxx-rtti>$(EXCEPTIONSFLAG)</cxx-rtti>
259         <cxx-exceptions>$(EXCEPTIONSFLAG)</cxx-exceptions>
260         <if cond="FORMAT!='autoconf'">
261             <cppflags>$(EXTRACFLAGS)</cppflags>
262         </if>
263         <define>$(NO_VC_CRTDBG)</define>
264     </template>
265     
266     <template id="anylib">
267         <dirname>$(LIBDIRNAME)</dirname>
268         <install-to>$(LIBDIR)</install-to>
269     </template>
270
271     <template id="3rdparty_lib" template="common_settings,anylib">
272         <if cond="FORMAT=='autoconf'">
273             <libname>$(id)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX)</libname>
274         </if>
275         <if cond="FORMAT!='autoconf'">
276             <libname>$(id)$(WXDEBUGFLAG)$(HOST_SUFFIX)</libname>
277         </if>
278         <!--
279         we want to install 3rd party libs system-wide only with static
280         version of wxWidgets; otherwise they are embedded in shared libs:
281         -->
282         <install-if>SHARED=='0'</install-if>
283         <pic>$(substituteFromDict(SHARED, {'0':'off', '1':'on'}))</pic>
284     </template>
285     
286     
287     <!-- deal with the need to copy setup.h here: -->
288
289     <set var="IS_MSVC_PRJ">$(FORMAT in ['msvc6prj','msevc4prj'])</set>
290
291     <define-tag name="msvc-headers" rules="dll,lib">
292         <if cond="IS_MSVC_PRJ">
293             <msvc-project-files>
294                 $(addPrefixToList('include\', wxwin.headersOnly(value)))
295             </msvc-project-files>
296         </if>
297     </define-tag>
298
299     <define-tag name="msvc-copy-setup-h" rules="dll,lib">
300         <if cond="FORMAT=='msevc4prj'">
301             <msvc-headers>wx/msw/wince/setup.h</msvc-headers>
302             <set var="vc_setup_h">wince\setup.h</set>
303             <set var="vc_setup_h_rule">wince_setup_h</set>
304         </if>
305         <if cond="FORMAT!='msevc4prj'">
306             <msvc-headers>wx/msw/setup.h</msvc-headers>
307             <set var="vc_setup_h">setup.h</set>
308             <set var="vc_setup_h_rule">setup_h</set>
309         </if>
310         <if cond="IS_MSVC_PRJ">
311             <set var="_custom_build_files" append="1">
312                 include\wx\msw\$(vc_setup_h)
313             </set>
314             <set var="_custom_build_include_wx_msw_$(vc_setup_h_rule)">
315 Creating $(SETUPHDIR)\wx\setup.h
316 InputPath=..\include\wx\msw\$(vc_setup_h)
317
318 "$(SETUPHDIR)\wx\setup.h" : $(DOLLAR)(SOURCE) "$(DOLLAR)(INTDIR)" "$(DOLLAR)(OUTDIR)"
319 $(TAB)copy "$(DOLLAR)(InputPath)" $(SETUPHDIR)\wx\setup.h
320             </set>
321         </if>
322     </define-tag>
323
324     <template id="msvc_setup_h">
325         <msvc-copy-setup-h/>
326     </template>
327
328     <!-- =============================================================== -->
329     <!--                         3rd party libs:                         -->
330     <!-- =============================================================== -->
331     
332     <!-- 3rd party libraries: -->
333     <include file="regex.bkl"/>
334     <include file="zlib.bkl"/>
335     <include file="png.bkl"/>
336     <include file="jpeg.bkl"/>
337     <include file="tiff.bkl"/>
338     <include file="odbc.bkl"/>
339     <include file="expat.bkl"/>
340
341     
342     <!-- =============================================================== -->
343     <!--                  Templates for wxWidgets libs:                  -->
344     <!-- =============================================================== -->
345
346     <!-- NB: in monolithic build, even wxBase-only must be linked against
347              GUI extralibs, otherwise there would be unresolved references.
348              The variables below are defined so that all libs are used
349              in monolithic build, but not in multilib one. -->
350     <set var="EXTRALIBS_FOR_BASE">
351         <if cond="MONOLITHIC=='1'">$(EXTRALIBS) $(EXTRALIBS_GUI)</if>
352         <if cond="MONOLITHIC=='0'">$(EXTRALIBS)</if>
353     </set>
354     <set var="EXTRALIBS_FOR_GUI">
355         <if cond="MONOLITHIC=='1'"></if>
356         <if cond="MONOLITHIC=='0'">$(EXTRALIBS_GUI)</if>
357     </set>
358
359     <template id="wx" template="common_settings">
360         <set var="wxid">$(wxwin.mk_wxid(id))</set>
361         <define>__WX$(TOOLKIT)__</define>
362         <define>$(WXUNIV_DEFINE)</define>
363         <define>$(DEBUG_DEFINE)</define>
364         <define>$(UNICODE_DEFINE)</define>
365         <!-- this include is added by configure, we need to put other
366              includes before it: -->
367         <include cond="FORMAT!='autoconf'">$(TOP_SRCDIR)include</include>
368         <lib-path>$(LIBDIRNAME)</lib-path>        
369         <include cond="FORMAT!='autoconf'">$(SETUPHDIR)</include>
370         <warnings>max</warnings>
371         <cppflags-watcom>-wcd=549</cppflags-watcom>
372     </template>
373
374     <!-- for both GUI and wxBase libs/samples: -->
375     <template id="wx_append_base_nomono">
376         <!-- link against builtin 3rd party libs, if needed: -->
377         <sys-lib>$(LIB_TIFF)</sys-lib>
378         <sys-lib>$(LIB_JPEG)</sys-lib>
379         <sys-lib>$(LIB_PNG)</sys-lib>
380         <sys-lib>$(LIB_ZLIB)</sys-lib>
381         <sys-lib>$(LIB_ODBC)</sys-lib>
382         <sys-lib>$(LIB_REGEX)</sys-lib>
383         <sys-lib>$(LIB_EXPAT)</sys-lib>
384         
385         <ldlibs>$(EXTRALIBS_FOR_BASE)</ldlibs>
386
387         <!-- system libraries on windows: -->
388         <if cond="FORMAT!='autoconf'">
389             <sys-lib>$(UNICOWS_LIB)</sys-lib>
390             <if cond="FORMAT=='borland'">
391                 <sys-lib>ole2w32</sys-lib>
392             </if>
393             <if cond="FORMAT=='msevc4prj'">
394                 <sys-lib>ole32</sys-lib>
395                 <sys-lib>oleaut32</sys-lib>
396                 <sys-lib>uuid</sys-lib>
397                 <sys-lib>commctrl</sys-lib>
398                 <sys-lib>winsock</sys-lib>
399                 <sys-lib>wininet</sys-lib>
400             </if>
401             <if cond="FORMAT!='borland' and FORMAT!='msevc4prj'">
402                 <sys-lib>kernel32</sys-lib>
403                 <sys-lib>user32</sys-lib>
404                 <sys-lib>gdi32</sys-lib>
405                 <sys-lib>comdlg32</sys-lib>
406                 <sys-lib>winspool</sys-lib>
407                 <sys-lib>winmm</sys-lib>
408                 <sys-lib>shell32</sys-lib>
409                 <sys-lib>comctl32</sys-lib>
410                 <sys-lib>ole32</sys-lib>
411                 <sys-lib>oleaut32</sys-lib>
412                 <sys-lib>uuid</sys-lib>
413                 <sys-lib>rpcrt4</sys-lib>
414                 <sys-lib>advapi32</sys-lib>
415                 <sys-lib>wsock32</sys-lib>
416             </if>
417             <if cond="FORMAT=='msvc' or FORMAT=='msvc6prj' or FORMAT=='borland'">
418                 <sys-lib>oleacc</sys-lib>
419             </if>
420             <if cond="FORMAT!='msevc4prj'">
421                 <sys-lib>odbc32</sys-lib>
422             </if>
423         </if>
424     </template>
425
426
427     <!-- for GUI libs/samples: -->
428     <template id="wx_append_nomono" template="wx_append_base_nomono">
429         <ldlibs>$(EXTRALIBS_FOR_GUI)</ldlibs>
430     </template>
431
432
433     <template id="wx_append_base" template_append="wx_append_base_nomono">
434         <!-- Always link against the wxWin library in monolithic build: -->
435         <sys-lib>$(WXLIB_MONO)</sys-lib>
436     </template>
437     <template id="wx_append" template_append="wx_append_nomono">
438         <!-- Always link against the wxWin library in monolithic build: -->
439         <sys-lib>$(WXLIB_MONO)</sys-lib>
440     </template>
441     
442
443     <set var="WX_DISABLE_PRECOMP_HEADERS" overwrite="0">0</set>
444     
445     <template id="wx_lib_b" template="wx,anylib">
446         <set var="WXLIBNAME">$(wxwin.mkLibName(wxid))</set>
447         <libname>$(WXLIBNAME)</libname>
448
449         <if cond="WX_DISABLE_PRECOMP_HEADERS=='0'">
450             <if cond="FORMAT!='autoconf' and TOOLKIT=='MSW'">
451                 <sources>$(WXTOPDIR)src/msw/dummy.cpp</sources>
452                 <precomp-headers-gen>
453                     $(WXTOPDIR)src/msw/dummy.cpp
454                 </precomp-headers-gen>
455             </if>
456             <precomp-headers-header>wx/wxprec.h</precomp-headers-header>
457             <precomp-headers>on</precomp-headers>
458             <precomp-headers-file>wxprec_$(id)</precomp-headers-file>
459             <precomp-headers-exclude>
460                 src/common/unzip.c
461                 src/common/extended.c
462                 src/msw/gsocket.cpp
463                 src/msw/gsockmsw.cpp
464             </precomp-headers-exclude>
465         </if>
466         
467         <if cond="IS_MSVC_PRJ=='1' and BUILDING_LIB=='1'">
468             <msvc-file-group>Common Sources:src/common/*</msvc-file-group>
469             <msvc-file-group>MSW Sources:src/msw/*</msvc-file-group>
470             <msvc-file-group>Generic Sources:src/generic/*</msvc-file-group>
471             <msvc-file-group>wxUniv Sources:src/univ/*</msvc-file-group>
472             <msvc-file-group>wxHTML Sources:src/html/*</msvc-file-group>
473             <msvc-file-group>Setup Headers:*/setup.h</msvc-file-group>
474             <msvc-file-group>MSW Headers:*wx/msw/*.h</msvc-file-group>
475             <msvc-file-group>Generic Headers:*wx/generic/*.h</msvc-file-group>
476             <msvc-file-group>wxUniv Headers:*wx/univ/*.h</msvc-file-group>
477             <msvc-file-group>wxHTML Headers:*wx/html/*.h</msvc-file-group>
478             <msvc-file-group>Common Headers:*wx/*.h</msvc-file-group>
479         </if>
480     </template>
481
482     <template id="wx_dll_b" template="wx_lib_b">
483         <set var="WXDLLNAME">$(wxwin.mkDllName(wxid))</set>
484         <dllname>$(WXDLLNAME)</dllname>
485         <version>$(WX_VERSION)</version>
486         <so_version>$(WXSOVERSION)</so_version>
487         <mac_version>$(WXMACVERSION)</mac_version>
488     </template>
489
490     <template id="wx_3rdparty_dependencies">
491         <depends>wxtiff</depends>
492         <depends>wxjpeg</depends>
493         <depends>wxpng</depends>
494         <depends>wxexpat</depends>
495         <depends>wxzlib</depends>
496         <depends cond="FORMAT=='autoconf'">wxodbc</depends>
497         <depends>wxregex</depends>
498     </template>
499
500     <template id="wx_3rdparty_includes">
501         <include>$(INC_TIFF)</include>
502         <include>$(INC_JPEG)</include>
503         <include>$(INC_PNG)</include>
504         <include>$(INC_ZLIB)</include>
505         <include>$(INC_ODBC)</include>
506         <include>$(INC_REGEX)</include>
507         <include>$(INC_EXPAT)</include>
508     </template>
509     
510     <template id="wx_lib"
511               template="wx_lib_b,wx_3rdparty_includes,msvc_setup_h"/>
512     <template id="wx_base_lib"
513               template="wx_lib_b,wx_3rdparty_includes,msvc_setup_h">
514         <define>wxUSE_GUI=0</define> 
515     </template>
516
517     <template id="wx_dll"
518               template="wx_dll_b,wx_3rdparty_dependencies,wx_3rdparty_includes"
519               template_append="msvc_setup_h,wx_append_nomono"/>
520     <template id="wx_base_dll"
521               template="wx_dll_b,wx_3rdparty_dependencies,wx_3rdparty_includes"
522               template_append="msvc_setup_h,wx_append_base_nomono">
523         <define>wxUSE_GUI=0</define> 
524     </template>
525                            
526     <!-- =============================================================== -->
527     <!--             Templates for building wxWidgets plugins:           -->
528     <!-- =============================================================== -->
529
530     <if cond="WX_STABLE_BRANCH=='1'">
531         <set var="PLUGIN_VERSION0">
532             <if cond="PLATFORM_UNIX=='1'">$(WX_RELEASE)</if>
533             <if cond="PLATFORM_UNIX=='0'">$(WX_RELEASE_NODOT)</if>
534         </set>
535     </if>
536     <if cond="WX_STABLE_BRANCH=='0'">
537         <set var="PLUGIN_VERSION0">
538             <if cond="PLATFORM_UNIX=='1'">$(WX_VERSION)</if>
539             <if cond="PLATFORM_UNIX=='0'">$(WX_VERSION_NODOT)</if>
540         </set>
541     </if>
542     <set var="PLUGVERDELIM">
543         <if cond="PLATFORM_UNIX=='1'">-</if>
544         <if cond="PLATFORM_UNIX=='0'"></if>
545     </set>
546     <set var="PLUGIN_VERSION">$(PLUGVERDELIM)$(PLUGIN_VERSION0)</set>
547     
548     <set var="PLUGINSUFFIX">
549         <if cond="UNICODE=='0' and BUILD=='release'"></if>
550         <if cond="UNICODE=='0' and BUILD=='debug'">d</if>
551         <if cond="UNICODE=='1' and BUILD=='release'">u</if>
552         <if cond="UNICODE=='1' and BUILD=='debug'">ud</if>
553     </set>
554
555     <set var="PLUGINS_INST_DIR" make_var="1">
556         $(LIBDIR)/wx/$(PLUGIN_VERSION0)
557     </set>
558
559     <define-rule name="wx-base-plugin" extends="module">
560         <template>
561             <dllname>
562                 $(id)$(PLUGINSUFFIX)$(PLUGIN_VERSION)$(WXCOMPILER)
563             </dllname>
564             <define>WXUSINGDLL</define>
565             <define>wxUSE_GUI=0</define>
566             <install-to>$(PLUGINS_INST_DIR)</install-to>
567         </template>
568     </define-rule>
569     
570     <define-rule name="wx-gui-plugin" extends="module">
571         <template template="wx">
572             <dllname>
573                 $(id)_$(PORTNAME)$(WXUNIVNAME)$(PLUGINSUFFIX)$(PLUGIN_VERSION)$(WXCOMPILER)
574             </dllname>
575             <define>WXUSINGDLL</define>
576             <install-to>$(PLUGINS_INST_DIR)</install-to>
577         </template>
578     </define-rule>
579     
580     <!-- =============================================================== -->
581     <!--               Support for wxWidgets samples and contrib:        -->
582     <!-- =============================================================== -->
583
584     <!-- Link against one wxWin library. Value must be literal! -->
585     <define-tag name="wx-lib" rules="exe,dll,module">
586         <sys-lib>$(wxwin.libToLink(value))</sys-lib>
587         <ldlibs>$(wxwin.extraLdflags(value))</ldlibs>
588         <if cond="IS_MSVC_PRJ=='1' and MONOLITHIC=='0'">
589             <depends-on-dsp>$(wxwin.makeDspDependency(value))</depends-on-dsp>
590         </if>
591     </define-tag>
592
593
594     <!-- A hack to keep autoconf happy (we pass CPPFLAGS that contain
595          {top_srcdir} from configure, poor bakefile can't know that
596          and won't output top_srcdir = @top_srcdir@ line): -->
597     <set var="VARS_DONT_ELIMINATE" append="1">top_srcdir</set>
598
599
600 </makefile>