include EXTRACFLAGS only once
[wxWidgets.git] / build / bakefiles / common.bkl
1 <?xml version="1.0" ?>
2 <!-- $Id$ -->
3
4 <makefile>
5     
6     <!-- bakefile modules we need: -->
7     <using module="datafiles"/>
8
9     <!-- load python module with wxwindows helpers: -->
10     <using module="wxwin"/>
11
12     <include file="config.bkl"/>
13     
14     
15     <!-- ================================================================== -->
16     <!--                     wxWindows version numbers:                     -->
17     <!-- ================================================================== -->
18
19     <set var="WXVER_MAJOR">$(wxwin.getVersionMajor())</set>
20     <set var="WXVER_MINOR">$(wxwin.getVersionMinor())</set>
21     <set var="WXVER_RELEASE">$(wxwin.getVersionRelease())</set>
22     <set var="WX_VERSION">$(WXVER_MAJOR).$(WXVER_MINOR).$(WXVER_RELEASE)</set>
23
24     <set var="WXSOVERSION">0.0.0</set>
25     <set var="WXMACVERSION">$(WX_VERSION)</set>
26     
27     
28     <!-- ================================================================== -->
29     <!--                     Names of libraries and DLLs:                   -->
30     <!-- ================================================================== -->
31
32     <set var="PORTNAME">
33         <if cond="USE_GUI=='0'">base</if>
34         <if cond="USE_GUI=='1'">$(TOOLKIT_LOWERCASE)$(TOOLKIT_VERSION)</if>
35     </set>
36     
37     <set var="WXBASEPORT">
38         <if cond="TOOLKIT=='MAC'">_carbon</if>
39     </set>
40
41     <set var="COMPILERORGCC">
42         <if cond="isdefined('COMPILER')">$(COMPILER)</if>
43         <if cond="not isdefined('COMPILER')">gcc</if>
44     </set>
45     <set var="WXCOMPILER">
46         <if cond="PLATFORM_WIN32=='1'">_$(COMPILERORGCC)</if>
47     </set>
48
49     <set var="VENDORTAG">
50         <if cond="PLATFORM_WIN32=='1' and OFFICIAL_BUILD=='1'"></if>
51         <if cond="PLATFORM_WIN32=='1' and OFFICIAL_BUILD=='0'">_$(VENDOR)</if>
52     </set>
53
54     <set var="WXDEBUGFLAG">
55         <if cond="BUILD=='debug'">d</if>
56     </set>
57     <set var="WXUNICODEFLAG">
58         <if cond="UNICODE=='1'">u</if>
59     </set>
60     <set var="WXNAMESUFFIX">
61         $(WXUNICODEFLAG)$(WXDEBUGFLAG)
62     </set>
63     
64     <set var="WXUNIVNAME">
65         <if cond="WXUNIV=='1'">univ</if>
66     </set>
67     <set var="WXUNIV_DEFINE">
68         <if cond="WXUNIV=='1'">__WXUNIVERSAL__</if>
69     </set>
70
71     <if cond="FORMAT=='autoconf'">
72         <set var="WXNAMEPREFIX">wx_base$(WXBASEPORT)</set>
73         <set var="WXNAMEPREFIXGUI">wx_$(PORTNAME)$(WXUNIVNAME)</set>
74         <set var="WXVERSIONTAG">-$(WXVER_MAJOR).$(WXVER_MINOR)</set>
75     </if>
76     <if cond="FORMAT!='autoconf'">
77         <set var="WXNAMEPREFIX">
78             wxbase$(WXBASEPORT)$(WXVER_MAJOR)$(WXVER_MINOR)
79         </set>
80         <set var="WXNAMEPREFIXGUI">
81             wx$(PORTNAME)$(WXUNIVNAME)$(WXVER_MAJOR)$(WXVER_MINOR)</set>
82         <set var="WXVERSIONTAG"></set>
83     </if>
84     <set var="WXDLLNAMEPREFIX">
85         <if cond="PLATFORM_WIN32=='1'">
86             wxbase$(WXBASEPORT)$(WXVER_MAJOR)$(WXVER_MINOR)
87         </if>
88         <if cond="PLATFORM_WIN32=='0'">$(WXNAMEPREFIX)</if>
89     </set>
90     <set var="WXDLLNAMEPREFIXGUI">
91         <if cond="PLATFORM_WIN32=='1'">
92             wx$(PORTNAME)$(WXUNIVNAME)$(WXVER_MAJOR)$(WXVER_MINOR)
93         </if>
94         <if cond="PLATFORM_WIN32=='0'">$(WXNAMEPREFIXGUI)</if>
95     </set>
96     <set var="WXDLLVERSIONTAG">
97         <if cond="PLATFORM_WIN32=='1'"></if>
98         <if cond="PLATFORM_WIN32=='0'">$(WXVERSIONTAG)</if>
99     </set>
100
101     <set var="TOOLCHAIN_NAME">
102         $(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)-$(WXVER_MAJOR).$(WXVER_MINOR)
103     </set>
104
105     
106     <!-- =============================================================== -->
107     <!--                    Names of component libraries:                -->
108     <!-- =============================================================== -->
109
110     <set var="WXLIB_BASE">
111         <if cond="MONOLITHIC=='0'">$(mk.evalExpr(wxwin.mkLibName('base')))</if>
112     </set>
113     <set var="WXLIB_CORE">
114         <if cond="MONOLITHIC=='0'">$(mk.evalExpr(wxwin.mkLibName('core')))</if>
115     </set>
116     <set var="WXLIB_HTML">
117         <if cond="MONOLITHIC=='0'">$(mk.evalExpr(wxwin.mkLibName('html')))</if>
118     </set>
119
120     <set var="WXLIB_MONO">
121         <if cond="MONOLITHIC=='1'">$(mk.evalExpr(wxwin.mkLibName('mono')))</if>
122     </set>
123     
124     
125     <!-- =============================================================== -->
126     <!--             Where to store built libraries and objects:         -->
127     <!-- =============================================================== -->
128     
129
130     <if cond="FORMAT!='autoconf'">
131         <set var="WXDLLFLAG">
132             <if cond="SHARED=='1'">dll</if>
133         </set>
134         <set var="CFG_NAME_PART">
135             $(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WXDLLFLAG)$(CFG)
136         </set>
137         <set var="OBJS" make_var="1">$(COMPILER)_$(CFG_NAME_PART)</set>
138         <set var="BUILDDIR">$(OBJS)</set>
139     </if>
140     
141     <set var="LIBDIRNAME">
142         <if cond="FORMAT=='autoconf'">$(top_builddir)lib</if>
143         <if cond="FORMAT!='autoconf'">
144             $(TOP_SRCDIR)lib$(DIRSEP)$(COMPILER)_$(CFG_NAME_PART)
145         </if>
146     </set>
147
148     
149     <!-- =============================================================== -->
150     <!--                        Templates for libs:                      -->
151     <!-- =============================================================== -->
152
153     <set var="DEBUGFLAG">
154         <if cond="BUILD=='debug'">on</if>
155         <if cond="BUILD=='release'">off</if>
156     </set>
157     <set var="OPTIMIZEFLAG">
158         <if cond="BUILD=='debug'">off</if>
159         <if cond="BUILD=='release'">speed</if>
160     </set>
161
162     <set var="DEBUG_DEFINE">
163         <if cond="FORMAT!='autoconf' and BUILD=='debug'">__WXDEBUG__</if>
164     </set>
165     <set var="UNICODE_DEFINE">
166         <if cond="FORMAT!='autoconf' and UNICODE=='1'">wxUSE_UNICODE=1</if>
167     </set>
168
169     <template id="common_settings">
170         <debug-info>$(DEBUGFLAG)</debug-info>
171         <optimize>$(OPTIMIZEFLAG)</optimize>
172         <threading>multi</threading>
173         <runtime-libs>dynamic</runtime-libs>
174         <if cond="FORMAT!='autoconf'">
175             <cppflags>$(EXTRACFLAGS)</cppflags>
176         </if>
177     </template>
178     
179     <template id="anylib">
180         <depends cond="FORMAT!='autoconf' and BUILDING_LIB=='1'">setup.h</depends>
181         <dirname>$(LIBDIRNAME)</dirname>
182         <install-to>$(LIBDIR)</install-to>
183     </template>
184
185     <template id="3rdparty_lib" template="common_settings,anylib">
186         <libname>$(id)$(WXDEBUGFLAG)</libname>
187     </template>
188
189
190     <!-- =============================================================== -->
191     <!--                         3rd party libs:                         -->
192     <!-- =============================================================== -->
193     
194     <!-- 3rd party libraries: -->
195     <include file="regex.bkl"/>
196     <include file="zlib.bkl"/>
197     <include file="png.bkl"/>
198     <include file="jpeg.bkl"/>
199     <include file="tiff.bkl"/>
200     <include file="odbc.bkl"/>
201
202     
203     <!-- =============================================================== -->
204     <!--                  Templates for wxWindows libs:                  -->
205     <!-- =============================================================== -->
206
207     <template id="wx" template="common_settings">
208         <set var="wxid">$(wxwin.mk_wxid(id))</set>
209         <define>__WX$(TOOLKIT)__</define>
210         <define>$(WXUNIV_DEFINE)</define>
211         <define>$(DEBUG_DEFINE)</define>
212         <define>$(UNICODE_DEFINE)</define>
213         <include>$(TOP_SRCDIR)include</include>
214         <lib-path>$(LIBDIRNAME)</lib-path>        
215         <include cond="FORMAT!='autoconf'">$(LIBDIRNAME)</include>
216         <include>$(INC_TIFF)</include>
217         <include>$(INC_JPEG)</include>
218         <include>$(INC_PNG)</include>
219         <include>$(INC_ZLIB)</include>
220         <include>$(INC_ODBC)</include>
221         <include>$(INC_REGEX)</include>
222     </template>
223
224     <template id="wx_append">
225         <!-- link against builtin 3rd party libs, if needed: -->
226         <sys-lib>$(LIB_TIFF)</sys-lib>
227         <sys-lib>$(LIB_JPEG)</sys-lib>
228         <sys-lib>$(LIB_PNG)</sys-lib>
229         <sys-lib>$(LIB_ZLIB)</sys-lib>
230         <sys-lib>$(LIB_ODBC)</sys-lib>
231         <sys-lib>$(LIB_REGEX)</sys-lib>
232         
233         <ldlibs>$(EXTRALIBS)</ldlibs>
234
235         <!-- system libraries on windows: -->
236         <if cond="FORMAT!='autoconf'">
237             <if cond="COMPILER=='bcc'">
238                 <sys-lib>import32</sys-lib>
239                 <sys-lib>ole2w32</sys-lib>
240             </if>
241             <if cond="COMPILER!='bcc'">
242                 <sys-lib>kernel32</sys-lib>
243                 <sys-lib>user32</sys-lib>
244                 <sys-lib>gdi32</sys-lib>
245                 <sys-lib>comdlg32</sys-lib>
246                 <sys-lib>winspool</sys-lib>
247                 <sys-lib>winmm</sys-lib>
248                 <sys-lib>shell32</sys-lib>
249                 <sys-lib>comctl32</sys-lib>
250                 <sys-lib>odbc32</sys-lib>
251                 <sys-lib>ole32</sys-lib>
252                 <sys-lib>oleaut32</sys-lib>
253                 <sys-lib>uuid</sys-lib>
254                 <sys-lib>rpcrt4</sys-lib>
255                 <sys-lib>advapi32</sys-lib>
256                 <sys-lib>wsock32</sys-lib>
257             </if>
258         </if>        
259     </template>
260
261     <template id="wx_lib_b" template="wx,anylib">
262         <set var="WXLIBNAME">$(wxwin.mkLibName(wxid))</set>
263         <libname>$(WXLIBNAME)</libname>
264
265         <if cond="FORMAT!='autoconf'">
266             <sources>$(WXTOPDIR)src/msw/dummy.cpp</sources>
267             <precomp-headers-gen>
268                 $(WXTOPDIR)src/msw/dummy.cpp
269             </precomp-headers-gen>
270         </if>
271         <precomp-headers-header>wx/wxprec.h</precomp-headers-header>
272         <precomp-headers>on</precomp-headers>
273         <precomp-headers-file>wxprec_$(id)</precomp-headers-file>
274     </template>
275
276     <template id="wx_dll_b" template="wx_lib_b">
277         <set var="WXDLLNAME">$(wxwin.mkDllName(wxid))</set>
278         <dllname>$(WXDLLNAME)</dllname>
279         <version>$(WX_VERSION)</version>
280         <so_version>$(WXSOVERSION)</so_version>
281         <mac_version>$(WXMACVERSION)</mac_version>
282     </template>
283
284     <template id="wx_lib" template="wx_lib_b"/>
285     <template id="wx_dll" template="wx_dll_b" template_append="wx_append">
286         <depends>wxtiff</depends>
287         <depends>wxjpeg</depends>
288         <depends>wxpng</depends>
289         <depends>wxzlib</depends>
290         <depends cond="FORMAT=='autoconf'">wxodbc</depends>
291         <depends>wxregex</depends>
292     </template>
293     
294     <!-- =============================================================== -->
295     <!--               Support for wxWindows samples and contrib:        -->
296     <!-- =============================================================== -->
297
298     <!-- Link against one wxWin library. Value must be literal! -->
299     <define-tag name="wx-lib" rules="exe,dll">
300         <sys-lib>$(wxwin.libToLink(value))</sys-lib>
301     </define-tag>
302
303 </makefile>