]> git.saurik.com Git - wxWidgets.git/blame - build/bakefiles/config.bkl
provide our own implementation of wxStrnlen if it's not available; add tests for it
[wxWidgets.git] / build / bakefiles / config.bkl
CommitLineData
ddf98968
VS
1<?xml version="1.0" ?>
2<!-- $Id$ -->
3
4<makefile>
61639efb 5
cc8953a6 6 <set var="IS_MSVC_PRJ">
7da8bfe3 7 $(FORMAT in ['msvc6prj','msevc4prj','msvs2003prj','msvs2005prj','msvs2008prj'])
cc8953a6
VS
8 </set>
9
498368e9
VS
10 <set var="BUILDING_LIB" overwrite="0">0</set>
11
c8d58531
MW
12 <set var="CPP_DEFAULT_VALUE">
13 <if cond="FORMAT=='borland'">
14 cpp32 -Sr -oCON
15 </if>
16 <if cond="FORMAT=='mingw'">
17 $(DOLLAR)(CC) -E
18 </if>
19 <if cond="FORMAT=='msvc'">
20 $(DOLLAR)(CC) /EP /nologo
21 </if>
22 <if cond="FORMAT=='watcom'">
23 $(DOLLAR)(CC) -p
24 </if>
25 </set>
26 <option name="CPP">
27 <default-value>
28 $(CPP_DEFAULT_VALUE)
29 </default-value>
30 <description>
31 The C preprocessor
32 </description>
33 </option>
34
6990514b
VS
35 <option name="SHARED">
36 <values>0,1</values>
37 <values-description>,DLL</values-description>
252b53f5 38 <default-value>0</default-value>
6990514b
VS
39 <description>
40 What type of library to build?
41 </description>
42 </option>
61639efb 43
6990514b
VS
44 <option name="WXUNIV">
45 <values>0,1</values>
d3e6602e 46 <values-description>,Universal</values-description>
6990514b
VS
47 <default-value>0</default-value>
48 <description>
49 Build wxUniversal instead of native port?
50 </description>
51 </option>
52
24dfe917
VS
53 <!-- don't include ANSI configuration in project files, it's going to be
54 eventually removed anyway and it only doubles the number of build
55 configs in projects: -->
56 <if cond="IS_MSVC_PRJ=='1'">
57 <set var="UNICODE">1</set>
58 </if>
59 <if cond="IS_MSVC_PRJ=='0'">
60 <option name="UNICODE">
61 <values>0,1</values>
62 <values-description>,Unicode</values-description>
63 <default-value>1</default-value>
64 <description>
65 Compile Unicode build of wxWidgets?
66 </description>
67 </option>
68 </if>
6990514b 69
416f5bc8
VS
70 <if cond="FORMAT!='autoconf' and FORMAT!='watcom'">
71 <option name="MSLU">
72 <values>0,1</values>
61639efb 73 <default-value>0</default-value>
416f5bc8
VS
74 <description>
75 Use MSLU library when building Unicode version.
76 </description>
77 </option>
78 </if>
79 <if cond="FORMAT=='autoconf' or FORMAT=='watcom'">
80 <set var="MSLU">0</set>
81 </if>
82
4f6e1dac 83 <option name="BUILD">
6990514b
VS
84 <values>debug,release</values>
85 <values-description>Debug,Release</values-description>
252b53f5 86 <default-value>debug</default-value>
4f6e1dac
VS
87 <description>
88 Type of compiled binaries
89 </description>
90 </option>
1dba7b4c 91
e40b74ba
MW
92 <if cond="FORMAT=='msvc'">
93 <option name="TARGET_CPU">
e40b74ba
MW
94 <default-value>$(DOLLAR)(CPU)</default-value>
95 <description>
96The target processor architecture must be specified when it is not X86.
97This does not affect the compiler output, so you still need to make sure
98your environment is set up appropriately with the correct compiler in the
99PATH. Rather it affects some options passed to some of the common build
100utilities such as the resource compiler and the linker.
b1e411d9
VS
101
102Accepted values: AMD64, IA64.
e40b74ba
MW
103 </description>
104 </option>
105 </if>
106 <if cond="FORMAT!='msvc'">
107 <set var="TARGET_CPU"/>
108 </if>
109
9d33d6b8 110 <set var="DEBUG_INFO_DEFAULT">
2275c732
VS
111 <if cond="IS_MSVC_PRJ=='1'">1</if>
112 <if cond="IS_MSVC_PRJ=='0'">default</if>
9d33d6b8 113 </set>
61639efb 114
4f6e1dac 115 <option name="DEBUG_INFO">
6990514b 116 <values>0,1,default</values>
9d33d6b8 117 <default-value>$(DEBUG_INFO_DEFAULT)</default-value>
4f6e1dac
VS
118 <description>
119Should debugging info be included in the executables? The default value
120"default" means that debug info will be included if BUILD=debug
121and not included if BUILD=release.
122 </description>
123 </option>
61639efb 124
4f6e1dac 125 <option name="DEBUG_FLAG">
6990514b 126 <values>0,1,default</values>
4f6e1dac
VS
127 <default-value>default</default-value>
128 <description>
129Should __WXDEBUG__ be defined? The default value "default" means that it will
130be defined if BUILD=debug and not defined if BUILD=release.
131 </description>
132 </option>
133
134 <if cond="FORMAT=='msvc'">
135 <option name="DEBUG_RUNTIME_LIBS">
6990514b 136 <values>0,1,default</values>
4f6e1dac
VS
137 <default-value>default</default-value>
138 <description>
139Should link against debug RTL (msvcrtd.dll) or release (msvcrt.dll)?
9d33d6b8 140Acts according to BUILD by default.
4f6e1dac
VS
141 </description>
142 </option>
143 </if>
144 <if cond="FORMAT!='msvc'">
145 <set var="DEBUG_RUNTIME_LIBS">default</set>
146 </if>
8998a324
VS
147
148 <set var="MONOLITHIC_DEFAULT">
149 <if cond="FORMAT=='watcom'">1</if>
150 <if cond="FORMAT!='watcom'">0</if>
151 </set>
ddf98968 152 <option name="MONOLITHIC">
6990514b
VS
153 <values>0,1</values>
154 <values-description>Multilib,Monolithic</values-description>
8998a324 155 <default-value>$(MONOLITHIC_DEFAULT)</default-value>
ddf98968
VS
156 <description>
157 Multiple libraries or single huge monolithic one?
158 </description>
159 </option>
61639efb 160
c79241a2
VS
161 <if cond="FORMAT=='autoconf'"> <!-- FIXME - temporary -->
162 <option name="USE_PLUGINS">
163 <values>0,1</values>
164 <default-value>1</default-value>
165 <description>
166 Build parts of the library as dynamically loadable plugins
167 (only supported in multilib build)?
168 </description>
169 </option>
170 </if>
171 <if cond="FORMAT!='autoconf'">
172 <set var="USE_PLUGINS">0</set> <!-- FIXME - temporary -->
173 </if>
61639efb 174
ddf98968 175 <option name="USE_GUI">
6990514b
VS
176 <values>0,1</values>
177 <values-description>Base,GUI</values-description>
ddf98968
VS
178 <default-value>1</default-value>
179 <description>
180 Build GUI libraries?
181 </description>
182 </option>
61639efb 183
4d264332 184 <option name="USE_HTML">
6990514b 185 <values>0,1</values>
4d264332
VS
186 <default-value>1</default-value>
187 <description>
188 Build wxHTML library (USE_GUI must be 1)?
189 </description>
190 </option>
61639efb 191
557002cf
VZ
192 <option name="USE_MEDIA">
193 <values>0,1</values>
194 <default-value>1</default-value>
195 <description>
196 Build multimedia library (USE_GUI must be 1)?
197 </description>
198 </option>
199
3849327b
VS
200 <option name="USE_XRC">
201 <values>0,1</values>
202 <default-value>1</default-value>
203 <description>
204 Build wxXRC library (USE_GUI must be 1)?
205 </description>
206 </option>
61639efb 207
50acee04
JS
208 <option name="USE_AUI">
209 <values>0,1</values>
210 <default-value>1</default-value>
211 <description>
212 Build wxAUI library (USE_GUI must be 1)?
213 </description>
214 </option>
215
1c4293cb
VZ
216 <option name="USE_PROPGRID">
217 <values>0,1</values>
218 <default-value>1</default-value>
219 <description>
220 Build wxPropertyGrid library (USE_GUI must be 1)?
221 </description>
222 </option>
223
3b2cb431
JS
224 <option name="USE_RICHTEXT">
225 <values>0,1</values>
226 <default-value>1</default-value>
227 <description>
228 Build wxRichTextCtrl library (USE_GUI must be 1)?
229 </description>
230 </option>
231
54429bb3
RD
232 <option name="USE_STC">
233 <values>0,1</values>
234 <default-value>1</default-value>
235 <description>
236 Build wxStyledTextCtrl library (USE_GUI must be 1)?
237 </description>
238 </option>
239
4d264332 240 <option name="USE_OPENGL">
6990514b 241 <values>0,1</values>
a3aa294d 242 <default-value>0</default-value>
4d264332
VS
243 <description>
244 Build OpenGL canvas library (USE_GUI must be 1)?
245 </description>
246 </option>
61639efb 247
aae7e12e
VZ
248 <!-- currently only VC++ can compile wxDebugReport which is in QA lib -->
249 <set var="USE_QA_DEFAULT">
7da8bfe3
VZ
250 <if cond="FORMAT in ['msvc','msvc6prj','msvs2003prj','msvs2005prj','msvs2008prj']">1</if>
251 <if cond="FORMAT not in ['msvc','msvc6prj','msvs2003prj','msvs2005prj','msvs2008prj']">0</if>
aae7e12e 252 </set>
61639efb
VZ
253 <option name="USE_QA">
254 <values>0,1</values>
b1ac62dd 255 <default-value>$(USE_QA_DEFAULT)</default-value>
61639efb
VZ
256 <description>
257 Build quality assurance classes library (USE_GUI must be 1)?
258 </description>
259 </option>
260
9833a21a
VS
261 <option name="USE_EXCEPTIONS">
262 <values>0,1</values>
263 <default-value>1</default-value>
264 <description>
265 Enable exceptions in compiled code.
266 </description>
267 </option>
61639efb 268
c2efd890
VZ
269 <option name="USE_RTTI">
270 <values>0,1</values>
271 <default-value>1</default-value>
272 <description>
273 Enable run-time type information (RTTI) in compiled code.
274 </description>
275 </option>
61639efb 276
d1e5aa07
VS
277 <option name="USE_THREADS">
278 <values>0,1</values>
279 <default-value>1</default-value>
280 <description>
281 Enable threading in compiled code.
282 </description>
283 </option>
61639efb 284
2713e629
RD
285 <if cond="FORMAT!='autoconf'">
286 <option name="USE_GDIPLUS">
287 <values>0,1</values>
288 <default-value>0</default-value>
289 <description>
290 Link with gdiplus.lib? (Needed for wxGraphicsContext, will also set wxUSE_GRAPHICS_CONTEXT)
291 </description>
292 </option>
293 </if>
294
4fc5f509 295 <option name="OFFICIAL_BUILD">
6990514b 296 <values>0,1</values>
4fc5f509
VS
297 <default-value>0</default-value>
298 <description>
77ffb593 299 Is this official build by wxWidgets developers?
4fc5f509
VS
300 </description>
301 </option>
302 <option name="VENDOR">
303 <default-value>custom</default-value>
304 <description>
305 Use this to name your customized DLLs differently
306 </description>
307 </option>
589e20d0
RL
308 <!-- These basically do what vendor does in the places it didn't. -->
309 <!-- They should all be unified under some suitable descriptor -->
310 <option name="WX_FLAVOUR">
311 <default-value></default-value>
312 </option>
313 <option name="WX_LIB_FLAVOUR">
314 <default-value></default-value>
315 </option>
cff5df9f
VS
316
317 <option name="CFG">
318 <default-value></default-value>
319 <description>
4f6e1dac
VS
320Name of your custom configuration. This affects directory
321where object files are stored as well as the location of
322compiled .lib files and setup.h under the lib/ toplevel directory.
cff5df9f 323 </description>
670ec357
VS
324 </option>
325
326 <!-- unit tests support: -->
327 <option name="CPPUNIT_CFLAGS">
328 <default-value></default-value>
329 <description>
330Compiler flags needed to compile test suite in tests directory. If you want
331to run the tests, set it so that the compiler can find CppUnit headers.
332 </description>
333 </option>
61639efb 334
670ec357
VS
335 <option name="CPPUNIT_LIBS">
336 <default-value></default-value>
337 <description>
338Linker flags needed to link test suite in tests directory. If you want
339to run the tests, include CppUnit library here.
340 </description>
cff5df9f 341 </option>
61639efb
VZ
342
343
eefdc53a
VS
344 <!-- ================================================================== -->
345 <!-- Autoconf -->
346 <!-- ================================================================== -->
61639efb
VZ
347
348 <if cond="FORMAT=='autoconf'">
ddf98968
VS
349 <option name="DEREZ"/>
350 <option name="TOOLKIT"/>
351 <option name="TOOLKIT_LOWERCASE"/>
352 <option name="TOOLKIT_VERSION"/>
157a3440 353 <option name="TOOLCHAIN_NAME"/>
ceec2216 354 <option name="TOOLCHAIN_FULLNAME"/>
ddf98968 355 <option name="EXTRALIBS"/>
a69544bf 356 <option name="EXTRALIBS_XML"/>
c839485c 357 <option name="EXTRALIBS_HTML"/>
2f8711ed 358 <option name="EXTRALIBS_MEDIA"/>
c74dc163 359 <option name="EXTRALIBS_GUI"/>
34b08d2c 360 <option name="EXTRALIBS_OPENGL"/>
c79241a2 361 <option name="EXTRALIBS_SDL"/>
7fcba069 362 <option name="EXTRALIBS_GNOMEPRINT"/>
b1b592ad 363 <option name="CXXWARNINGS"/>
ea66c762 364 <option name="HOST_SUFFIX"/>
ef0add05
VS
365 <option name="SAMPLES_RPATH_FLAG"/>
366 <option name="SAMPLES_RPATH_POSTLINK"/>
61639efb 367
516cf181
FM
368 <!-- see configure.in; it's required by some samples on Mac OS X -->
369 <option name="HEADER_PAD_OPTION"/>
370
4843dc4c 371 <set var="TOP_SRCDIR">$(top_srcdir)/</set>
4b44ea2b 372 <set var="RUNTIME_LIBS">dynamic</set>
e54bb212 373 <set var="WXTOPDIR"/> <!-- to be overriden on bakefile cmd line -->
61639efb 374
c79241a2
VS
375 <option name="WITH_PLUGIN_SDL">
376 <values>0,1</values>
377 </option>
6589dc98
VS
378
379 <option name="wx_top_builddir"/>
ddf98968
VS
380 </if>
381
61639efb 382
eefdc53a 383 <!-- ================================================================== -->
1dba7b4c 384 <!-- windows/dos/os2 compilers -->
eefdc53a
VS
385 <!-- ================================================================== -->
386
ddf98968 387 <if cond="FORMAT!='autoconf'">
4b44ea2b 388 <option name="RUNTIME_LIBS">
6990514b 389 <values>dynamic,static</values>
4b44ea2b
VS
390 <default-value>dynamic</default-value>
391 <description>
4f6e1dac
VS
392Version of C runtime library to use. You can change this to
393static if SHARED=0, but it is highly recommended to not do
394it if SHARED=1 unless you know what you are doing.
4b44ea2b
VS
395 </description>
396 </option>
61639efb 397
4843dc4c
VS
398 <set var="WXTOPDIR"/> <!-- to be overriden on bakefile cmd line -->
399
a92d711e 400 <set var="TOOLKIT" overwrite="0">
af594eca 401 <if cond="FORMAT=='msevc4prj'">WINCE</if>
00b20999 402 <if cond="FORMAT=='msvs2005prj' and MSVS_PLATFORMS=='pocketpc2003'">WINCE</if>
7da8bfe3 403 <if cond="FORMAT=='msvs2008prj' and MSVS_PLATFORMS=='pocketpc2003'">WINCE</if>
00b20999 404 <if cond="FORMAT=='msvs2005prj' and MSVS_PLATFORMS=='win32'">MSW</if>
7da8bfe3
VZ
405 <if cond="FORMAT=='msvs2008prj' and MSVS_PLATFORMS=='win32'">MSW</if>
406 <if cond="FORMAT not in ['msevc4prj','msvs2005prj','msvs2008prj'] and PLATFORM_WIN32=='1'">MSW</if>
b8af111f 407 <if cond="PLATFORM_MSDOS=='1'">MGL</if>
1dba7b4c 408 <if cond="PLATFORM_OS2=='1'">PM</if>
af594eca 409 </set>
eefdc53a
VS
410 <set var="TOOLKIT_LOWERCASE">$(TOOLKIT.lower())</set>
411 <set var="TOOLKIT_VERSION"/>
ea66c762 412 <set var="HOST_SUFFIX"/>
22cef566 413 <set var="EXTRACFLAGS"/>
6f53cd7c 414 <set var="EXTRALIBS"/>
a69544bf 415 <set var="EXTRALIBS_XML"/>
c839485c 416 <set var="EXTRALIBS_HTML"/>
2f8711ed 417 <set var="EXTRALIBS_MEDIA"/>
c74dc163 418 <set var="EXTRALIBS_GUI"/>
22cef566 419 <set var="EXTRALIBS_OPENGL">
43b0b6bc 420 <if cond="COMPILER=='wat' and TOOLKIT=='MSW'">opengl32.lib glu32.lib</if>
af594eca 421 <if cond="COMPILER in ['vc','evc']">opengl32.lib glu32.lib</if>
22cef566
VS
422 <if cond="COMPILER=='gcc'">-lopengl32 -lglu32</if>
423 </set>
c79241a2 424 <set var="EXTRALIBS_SDL"/>
7fcba069 425 <set var="EXTRALIBS_GNOMEPRINT"/>
c79241a2
VS
426
427 <set var="WITH_PLUGIN_SDL">0</set>
eefdc53a 428
2275c732
VS
429 <if cond="BUILDING_LIB=='1'">
430 <set-srcdir>../..</set-srcdir>
431 </if>
4843dc4c 432 <set var="TOP_SRCDIR">$(SRCDIR)/$(WXTOPDIR)</set>
ddf98968 433 </if>
61639efb 434
65fb1c11
VS
435 <if cond="FORMAT=='mingw'">
436 <option name="GCC_VERSION">
6990514b 437 <values>3,2.95</values>
65fb1c11
VS
438 <default-value>3</default-value>
439 <description>
4f6e1dac
VS
440Set the version of your Mingw installation here.
441 "3" ...... this is for Mingw 2.0 or newer (comes with gcc3)
442 "2.95" ... for Mingw 1.1 or any of the older versions
65fb1c11
VS
443 </description>
444 </option>
445 <set var="GCCFLAGS">
446 <if cond="GCC_VERSION=='2.95'">-fvtable-thunks</if>
447 </set>
448 <set var="EXTRACFLAGS">$(GCCFLAGS) -DHAVE_W32API_H</set>
449 </if>
d17bdeab 450
328f5196 451
d17bdeab
VS
452 <!-- ================================================================== -->
453 <!-- Project files - hardcode some defaults -->
454 <!-- ================================================================== -->
455
456 <if cond="FORMAT_SUPPORTS_CONDITIONS=='0'">
457 <set var="RUNTIME_LIBS">dynamic</set>
458 <set var="OFFICIAL_BUILD">0</set>
32a52290 459 <set var="USE_AUI">1</set>
1c4293cb 460 <set var="USE_PROPGRID">1</set>
3b2cb431 461 <set var="USE_RICHTEXT">1</set>
54429bb3 462 <set var="USE_STC">1</set>
d17bdeab 463 <set var="USE_HTML">1</set>
32a52290 464 <set var="USE_MEDIA">1</set>
3849327b 465 <set var="USE_XRC">1</set>
d17bdeab 466 <set var="USE_OPENGL">1</set>
61639efb 467 <set var="USE_QA">1</set>
d17bdeab
VS
468 <set var="MONOLITHIC">0</set>
469 <set var="USE_GUI">1</set>
9833a21a 470 <set var="USE_EXCEPTIONS">1</set>
c2efd890 471 <set var="USE_RTTI">1</set>
d1e5aa07 472 <set var="USE_THREADS">1</set>
2713e629 473 <if cond="FORMAT!='autoconf'"><set var="USE_GDIPLUS">0</set></if>
9d33d6b8 474 <set var="DEBUG_INFO">$(DEBUG_INFO_DEFAULT)</set>
d17bdeab
VS
475 <set var="DEBUG_FLAG">default</set>
476 <set var="MSLU">0</set>
477 </if>
478
e6e885fd
VS
479
480 <!-- DigitalMars make is braindead, it doesn't have conditional
481 processing: -->
482 <if cond="FORMAT=='dmars'">
483 <set var="RUNTIME_LIBS">static</set>
484 <set var="BUILD">debug</set>
485 <set var="SHARED">0</set>
486 <set var="WXUNIV">0</set>
4fc1c0f0 487 <set var="UNICODE">1</set>
f46a065c
WS
488 <!-- Free version does not distribute OpenGL,
489 in commercial distribution better use dmars_smake format -->
490 <set var="USE_OPENGL">0</set>
e6e885fd
VS
491 </if>
492
af594eca 493 <!-- No need for wxUniv on embedded devices (yet): -->
7da8bfe3 494 <if cond="FORMAT=='msevc4prj' or (FORMAT=='msvs2005prj' and MSVS_PLATFORMS=='pocketpc2003') or (FORMAT=='msvs2008prj' and MSVS_PLATFORMS=='pocketpc2003')">
af594eca 495 <set var="WXUNIV">0</set>
1dba7b4c 496 <!-- Uploading debug reports from PDAs seems impractical -->
61639efb 497 <set var="USE_QA">0</set>
bc858dcf 498 <set var="MONOLITHIC">1</set> <!-- sic! -->
00b20999 499 <set var="USE_OPENGL">0</set> <!-- need OpenGL ES support first -->
5bcb84f8 500 <!-- RTTI and exceptions need separate cccrtti.lib with eVC4 -->
00b20999
VZ
501 <if cond="FORMAT=='msevc4prj'">
502 <set var="USE_RTTI">0</set>
503 <set var="USE_EXCEPTIONS">0</set>
504 </if>
af594eca
VS
505 </if>
506
b8af111f 507 <!-- Need for wxUniv within wxMGL: -->
4c4863db 508 <if cond="FORMAT!='autoconf' and TOOLKIT=='MGL'">
b8af111f 509 <set var="WXUNIV">1</set>
43b0b6bc 510 <set var="USE_THREADS">0</set>
7ee1ea9d 511 <set var="RUNTIME_LIBS">static</set>
b8af111f
WS
512 </if>
513
ddf98968 514</makefile>