1 /*
2  * Name:        wx/chkconf.h
3  * Purpose:     check the config settings for consistency
4  * Author:      Vadim Zeitlin
5  * Modified by:
6  * Created:     09.08.00
7  * RCS-ID:      $Id: chkconf.h 48113 2007-08-15 17:43:50Z DE $
8  * Copyright:   (c) 2000 Vadim Zeitlin <vadim@wxwidgets.org>
9  * Licence:     wxWindows licence
10  */
11 
12 /* THIS IS A C FILE, DON'T USE C++ FEATURES (IN PARTICULAR COMMENTS) IN IT */
13 
14 /*
15    Platform-specific checking.
16  */
17 
18 #if defined(__WXPALMOS__)
19 #  include "wx/palmos/chkconf.h"
20 #elif defined(__WXWINCE__)
21 #  include "wx/msw/wince/chkconf.h"
22 #elif defined(__WXMSW__)
23 #  include "wx/msw/chkconf.h"
24 #elif defined(__WXMAC__)
25 #  include "wx/mac/chkconf.h"
26 #elif defined(__OS2__)
27 #  include "wx/os2/chkconf.h"
28 #elif defined(__WXMGL__)
29 #  include "wx/mgl/chkconf.h"
30 #elif defined(__WXDFB__)
31 #  include "wx/dfb/chkconf.h"
32 #elif defined(__WXMOTIF__)
33 #  include "wx/motif/chkconf.h"
34 #elif defined(__WXX11__)
35 #  include "wx/x11/chkconf.h"
36 #endif
37 
38 #ifdef __WXUNIVERSAL__
39 #   include "wx/univ/chkconf.h"
40 #endif
41 
42 /*
43    this global setting determines what should we do if the setting FOO
44    requires BAR and BAR is not set: we can either silently unset FOO as well
45    (do this if you're trying to build the smallest possible library) or give an
46    error and abort (default as leads to least surprizing behaviour)
47  */
48 #define wxABORT_ON_CONFIG_ERROR
49 
50 /*
51    global features
52  */
53 
54 /* GUI build by default */
55 #if !defined(wxUSE_GUI)
56 #   define wxUSE_GUI 1
57 #endif /* !defined(wxUSE_GUI) */
58 
59 /* Turn off wxUSE_ABI_INCOMPATIBLE_FEATURES if not specified. */
60 #if !defined(wxUSE_ABI_INCOMPATIBLE_FEATURES)
61 #   define wxUSE_ABI_INCOMPATIBLE_FEATURES 0
62 #endif /* !defined(wxUSE_ABI_INCOMPATIBLE_FEATURES) */
63 
64 /*
65     If we're compiling without support for threads/exceptions we have to
66     disable the corresponding features.
67  */
68 #ifdef wxNO_THREADS
69 #   undef wxUSE_THREADS
70 #   define wxUSE_THREADS 0
71 #endif /* wxNO_THREADS */
72 
73 #ifdef wxNO_EXCEPTIONS
74 #   undef wxUSE_EXCEPTIONS
75 #   define wxUSE_EXCEPTIONS 0
76 #endif /* wxNO_EXCEPTIONS */
77 
78 /* we also must disable exceptions if compiler doesn't support them */
79 #if defined(_MSC_VER) && !defined(_CPPUNWIND)
80 #   undef wxUSE_EXCEPTIONS
81 #   define wxUSE_EXCEPTIONS 0
82 #endif /* VC++ without exceptions support */
83 
84 
85 /*
86    tests for non GUI features
87 
88    please keep the options in alphabetical order!
89  */
90 
91 #ifndef wxUSE_CRASHREPORT
92     /* this one is special: as currently it is Windows-only, don't force it
93        to be defined on other platforms */
94 #   if defined(wxABORT_ON_CONFIG_ERROR) && defined(__WXMSW__)
95 #       error "wxUSE_CRASHREPORT must be defined."
96 #   else
97 #       define wxUSE_CRASHREPORT 0
98 #   endif
99 #endif /* !defined(wxUSE_CRASHREPORT) */
100 
101 #ifndef wxUSE_DYNLIB_CLASS
102 #   ifdef wxABORT_ON_CONFIG_ERROR
103 #       error "wxUSE_DYNLIB_CLASS must be defined."
104 #   else
105 #       define wxUSE_DYNLIB_CLASS 0
106 #   endif
107 #endif /* !defined(wxUSE_DYNLIB_CLASS) */
108 
109 #ifndef wxUSE_EXCEPTIONS
110 #   ifdef wxABORT_ON_CONFIG_ERROR
111 #       error "wxUSE_EXCEPTIONS must be defined."
112 #   else
113 #       define wxUSE_EXCEPTIONS 0
114 #   endif
115 #endif /* !defined(wxUSE_EXCEPTIONS) */
116 
117 #ifndef wxUSE_FILESYSTEM
118 #   ifdef wxABORT_ON_CONFIG_ERROR
119 #       error "wxUSE_FILESYSTEM must be defined."
120 #   else
121 #       define wxUSE_FILESYSTEM 0
122 #   endif
123 #endif /* !defined(wxUSE_FILESYSTEM) */
124 
125 #ifndef wxUSE_FS_ARCHIVE
126 #   ifdef wxABORT_ON_CONFIG_ERROR
127 #       error "wxUSE_FS_ARCHIVE must be defined."
128 #   else
129 #       define wxUSE_FS_ARCHIVE 0
130 #   endif
131 #endif /* !defined(wxUSE_FS_ARCHIVE) */
132 
133 /* don't give an error about this one yet, it's not fully implemented */
134 #ifndef wxUSE_FSVOLUME
135 #   define wxUSE_FSVOLUME 0
136 #endif /* !defined(wxUSE_FSVOLUME) */
137 
138 #ifndef wxUSE_DYNAMIC_LOADER
139 #   ifdef wxABORT_ON_CONFIG_ERROR
140 #       error "wxUSE_DYNAMIC_LOADER must be defined."
141 #   else
142 #       define wxUSE_DYNAMIC_LOADER 0
143 #   endif
144 #endif /* !defined(wxUSE_DYNAMIC_LOADER) */
145 
146 #ifndef wxUSE_LOG
147 #   ifdef wxABORT_ON_CONFIG_ERROR
148 #       error "wxUSE_LOG must be defined."
149 #   else
150 #       define wxUSE_LOG 0
151 #   endif
152 #endif /* !defined(wxUSE_LOG) */
153 
154 #ifndef wxUSE_LONGLONG
155 #   ifdef wxABORT_ON_CONFIG_ERROR
156 #       error "wxUSE_LONGLONG must be defined."
157 #   else
158 #       define wxUSE_LONGLONG 0
159 #   endif
160 #endif /* !defined(wxUSE_LONGLONG) */
161 
162 #ifndef wxUSE_MIMETYPE
163 #   ifdef wxABORT_ON_CONFIG_ERROR
164 #       error "wxUSE_MIMETYPE must be defined."
165 #   else
166 #       define wxUSE_MIMETYPE 0
167 #   endif
168 #endif /* !defined(wxUSE_MIMETYPE) */
169 
170 #ifndef wxUSE_ON_FATAL_EXCEPTION
171 #   ifdef wxABORT_ON_CONFIG_ERROR
172 #       error "wxUSE_ON_FATAL_EXCEPTION must be defined."
173 #   else
174 #       define wxUSE_ON_FATAL_EXCEPTION 0
175 #   endif
176 #endif /* !defined(wxUSE_ON_FATAL_EXCEPTION) */
177 
178 #ifndef wxUSE_PRINTF_POS_PARAMS
179 #   ifdef wxABORT_ON_CONFIG_ERROR
180 #       error "wxUSE_PRINTF_POS_PARAMS must be defined."
181 #   else
182 #       define wxUSE_PRINTF_POS_PARAMS 0
183 #   endif
184 #endif /* !defined(wxUSE_PRINTF_POS_PARAMS) */
185 
186 #ifndef wxUSE_PROTOCOL
187 #   ifdef wxABORT_ON_CONFIG_ERROR
188 #       error "wxUSE_PROTOCOL must be defined."
189 #   else
190 #       define wxUSE_PROTOCOL 0
191 #   endif
192 #endif /* !defined(wxUSE_PROTOCOL) */
193 
194 /* we may not define wxUSE_PROTOCOL_XXX if wxUSE_PROTOCOL is set to 0 */
195 #if !wxUSE_PROTOCOL
196 #   undef wxUSE_PROTOCOL_HTTP
197 #   undef wxUSE_PROTOCOL_FTP
198 #   undef wxUSE_PROTOCOL_FILE
199 #   define wxUSE_PROTOCOL_HTTP 0
200 #   define wxUSE_PROTOCOL_FTP 0
201 #   define wxUSE_PROTOCOL_FILE 0
202 #endif /* wxUSE_PROTOCOL */
203 
204 #ifndef wxUSE_PROTOCOL_HTTP
205 #   ifdef wxABORT_ON_CONFIG_ERROR
206 #       error "wxUSE_PROTOCOL_HTTP must be defined."
207 #   else
208 #       define wxUSE_PROTOCOL_HTTP 0
209 #   endif
210 #endif /* !defined(wxUSE_PROTOCOL_HTTP) */
211 
212 #ifndef wxUSE_PROTOCOL_FTP
213 #   ifdef wxABORT_ON_CONFIG_ERROR
214 #       error "wxUSE_PROTOCOL_FTP must be defined."
215 #   else
216 #       define wxUSE_PROTOCOL_FTP 0
217 #   endif
218 #endif /* !defined(wxUSE_PROTOCOL_FTP) */
219 
220 #ifndef wxUSE_PROTOCOL_FILE
221 #   ifdef wxABORT_ON_CONFIG_ERROR
222 #       error "wxUSE_PROTOCOL_FILE must be defined."
223 #   else
224 #       define wxUSE_PROTOCOL_FILE 0
225 #   endif
226 #endif /* !defined(wxUSE_PROTOCOL_FILE) */
227 
228 #ifndef wxUSE_REGEX
229 #   ifdef wxABORT_ON_CONFIG_ERROR
230 #       error "wxUSE_REGEX must be defined."
231 #   else
232 #       define wxUSE_REGEX 0
233 #   endif
234 #endif /* !defined(wxUSE_REGEX) */
235 
236 #ifndef wxUSE_STDPATHS
237 #   ifdef wxABORT_ON_CONFIG_ERROR
238 #       error "wxUSE_STDPATHS must be defined."
239 #   else
240 #       define wxUSE_STDPATHS 1
241 #   endif
242 #endif /* !defined(wxUSE_STDPATHS) */
243 
244 #ifndef wxUSE_XML
245 #   ifdef wxABORT_ON_CONFIG_ERROR
246 #       error "wxUSE_XML must be defined."
247 #   else
248 #       define wxUSE_XML 0
249 #   endif
250 #endif /* !defined(wxUSE_XML) */
251 
252 #ifndef wxUSE_SOCKETS
253 #   ifdef wxABORT_ON_CONFIG_ERROR
254 #       error "wxUSE_SOCKETS must be defined."
255 #   else
256 #       define wxUSE_SOCKETS 0
257 #   endif
258 #endif /* !defined(wxUSE_SOCKETS) */
259 
260 #ifndef wxUSE_STREAMS
261 #   ifdef wxABORT_ON_CONFIG_ERROR
262 #       error "wxUSE_STREAMS must be defined."
263 #   else
264 #       define wxUSE_STREAMS 0
265 #   endif
266 #endif /* !defined(wxUSE_STREAMS) */
267 
268 #ifndef wxUSE_STOPWATCH
269 #   ifdef wxABORT_ON_CONFIG_ERROR
270 #       error "wxUSE_STOPWATCH must be defined."
271 #   else
272 #       define wxUSE_STOPWATCH 0
273 #   endif
274 #endif /* !defined(wxUSE_STOPWATCH) */
275 
276 #ifndef wxUSE_TEXTBUFFER
277 #   ifdef wxABORT_ON_CONFIG_ERROR
278 #       error "wxUSE_TEXTBUFFER must be defined."
279 #   else
280 #       define wxUSE_TEXTBUFFER 0
281 #   endif
282 #endif /* !defined(wxUSE_TEXTBUFFER) */
283 
284 #ifndef wxUSE_TEXTFILE
285 #   ifdef wxABORT_ON_CONFIG_ERROR
286 #       error "wxUSE_TEXTFILE must be defined."
287 #   else
288 #       define wxUSE_TEXTFILE 0
289 #   endif
290 #endif /* !defined(wxUSE_TEXTFILE) */
291 
292 #ifndef wxUSE_UNICODE
293 #   ifdef wxABORT_ON_CONFIG_ERROR
294 #       error "wxUSE_UNICODE must be defined."
295 #   else
296 #       define wxUSE_UNICODE 0
297 #   endif
298 #endif /* !defined(wxUSE_UNICODE) */
299 
300 #ifndef wxUSE_URL
301 #   ifdef wxABORT_ON_CONFIG_ERROR
302 #       error "wxUSE_URL must be defined."
303 #   else
304 #       define wxUSE_URL 0
305 #   endif
306 #endif /* !defined(wxUSE_URL) */
307 
308 #ifndef wxUSE_VARIANT
309 #   ifdef wxABORT_ON_CONFIG_ERROR
310 #       error "wxUSE_VARIANT must be defined."
311 #   else
312 #       define wxUSE_VARIANT 0
313 #   endif
314 #endif /* wxUSE_VARIANT */
315 
316 /*
317    all these tests are for GUI only
318 
319    please keep the options in alphabetical order!
320  */
321 #if wxUSE_GUI
322 
323 /*
324    all of the settings tested below must be defined or we'd get an error from
325    preprocessor about invalid integer expression
326  */
327 
328 #ifndef wxUSE_ABOUTDLG
329 #   ifdef wxABORT_ON_CONFIG_ERROR
330 #       error "wxUSE_ABOUTDLG must be defined."
331 #   else
332 #       define wxUSE_ABOUTDLG 0
333 #   endif
334 #endif /* !defined(wxUSE_ABOUTDLG) */
335 
336 #ifndef wxUSE_ACCEL
337 #   ifdef wxABORT_ON_CONFIG_ERROR
338 #       error "wxUSE_ACCEL must be defined."
339 #   else
340 #       define wxUSE_ACCEL 0
341 #   endif
342 #endif /* !defined(wxUSE_ACCEL) */
343 
344 #ifndef wxUSE_ANIMATIONCTRL
345 #   ifdef wxABORT_ON_CONFIG_ERROR
346 #       error "wxUSE_ANIMATIONCTRL must be defined."
347 #   else
348 #       define wxUSE_ANIMATIONCTRL 0
349 #   endif
350 #endif /* !defined(wxUSE_ANIMATIONCTRL) */
351 
352 #ifndef wxUSE_BITMAPCOMBOBOX
353 #   ifdef wxABORT_ON_CONFIG_ERROR
354 #       error "wxUSE_BITMAPCOMBOBOX must be defined."
355 #   else
356 #       define wxUSE_BITMAPCOMBOBOX 0
357 #   endif
358 #endif /* !defined(wxUSE_BITMAPCOMBOBOX) */
359 
360 #ifndef wxUSE_BMPBUTTON
361 #   ifdef wxABORT_ON_CONFIG_ERROR
362 #       error "wxUSE_BMPBUTTON must be defined."
363 #   else
364 #       define wxUSE_BMPBUTTON 0
365 #   endif
366 #endif /* !defined(wxUSE_BMPBUTTON) */
367 
368 #ifndef wxUSE_BUTTON
369 #   ifdef wxABORT_ON_CONFIG_ERROR
370 #       error "wxUSE_BUTTON must be defined."
371 #   else
372 #       define wxUSE_BUTTON 0
373 #   endif
374 #endif /* !defined(wxUSE_BUTTON) */
375 
376 #ifndef wxUSE_CALENDARCTRL
377 #   ifdef wxABORT_ON_CONFIG_ERROR
378 #       error "wxUSE_CALENDARCTRL must be defined."
379 #   else
380 #       define wxUSE_CALENDARCTRL 0
381 #   endif
382 #endif /* !defined(wxUSE_CALENDARCTRL) */
383 
384 #ifndef wxUSE_CARET
385 #   ifdef wxABORT_ON_CONFIG_ERROR
386 #       error "wxUSE_CARET must be defined."
387 #   else
388 #       define wxUSE_CARET 0
389 #   endif
390 #endif /* !defined(wxUSE_CARET) */
391 
392 #ifndef wxUSE_CHECKBOX
393 #   ifdef wxABORT_ON_CONFIG_ERROR
394 #       error "wxUSE_CHECKBOX must be defined."
395 #   else
396 #       define wxUSE_CHECKBOX 0
397 #   endif
398 #endif /* !defined(wxUSE_CHECKBOX) */
399 
400 #ifndef wxUSE_CHECKLISTBOX
401 #   ifdef wxABORT_ON_CONFIG_ERROR
402 #       error "wxUSE_CHECKLISTBOX must be defined."
403 #   else
404 #       define wxUSE_CHECKLISTBOX 0
405 #   endif
406 #endif /* !defined(wxUSE_CHECKLISTBOX) */
407 
408 #ifndef wxUSE_CHOICE
409 #   ifdef wxABORT_ON_CONFIG_ERROR
410 #       error "wxUSE_CHOICE must be defined."
411 #   else
412 #       define wxUSE_CHOICE 0
413 #   endif
414 #endif /* !defined(wxUSE_CHOICE) */
415 
416 #ifndef wxUSE_CHOICEBOOK
417 #   ifdef wxABORT_ON_CONFIG_ERROR
418 #       error "wxUSE_CHOICEBOOK must be defined."
419 #   else
420 #       define wxUSE_CHOICEBOOK 0
421 #   endif
422 #endif /* !defined(wxUSE_CHOICEBOOK) */
423 
424 #ifndef wxUSE_CHOICEDLG
425 #   ifdef wxABORT_ON_CONFIG_ERROR
426 #       error "wxUSE_CHOICEDLG must be defined."
427 #   else
428 #       define wxUSE_CHOICEDLG 0
429 #   endif
430 #endif /* !defined(wxUSE_CHOICEDLG) */
431 
432 #ifndef wxUSE_CLIPBOARD
433 #   ifdef wxABORT_ON_CONFIG_ERROR
434 #       error "wxUSE_CLIPBOARD must be defined."
435 #   else
436 #       define wxUSE_CLIPBOARD 0
437 #   endif
438 #endif /* !defined(wxUSE_CLIPBOARD) */
439 
440 #ifndef wxUSE_COLLPANE
441 #   ifdef wxABORT_ON_CONFIG_ERROR
442 #       error "wxUSE_COLLPANE must be defined."
443 #   else
444 #       define wxUSE_COLLPANE 0
445 #   endif
446 #endif /* !defined(wxUSE_COLLPANE) */
447 
448 #ifndef wxUSE_COLOURDLG
449 #   ifdef wxABORT_ON_CONFIG_ERROR
450 #       error "wxUSE_COLOURDLG must be defined."
451 #   else
452 #       define wxUSE_COLOURDLG 0
453 #   endif
454 #endif /* !defined(wxUSE_COLOURDLG) */
455 
456 #ifndef wxUSE_COLOURPICKERCTRL
457 #   ifdef wxABORT_ON_CONFIG_ERROR
458 #       error "wxUSE_COLOURPICKERCTRL must be defined."
459 #   else
460 #       define wxUSE_COLOURPICKERCTRL 0
461 #   endif
462 #endif /* !defined(wxUSE_COLOURPICKERCTRL) */
463 
464 #ifndef wxUSE_COMBOBOX
465 #   ifdef wxABORT_ON_CONFIG_ERROR
466 #       error "wxUSE_COMBOBOX must be defined."
467 #   else
468 #       define wxUSE_COMBOBOX 0
469 #   endif
470 #endif /* !defined(wxUSE_COMBOBOX) */
471 
472 #ifndef wxUSE_COMBOCTRL
473 #   ifdef wxABORT_ON_CONFIG_ERROR
474 #       error "wxUSE_COMBOCTRL must be defined."
475 #   else
476 #       define wxUSE_COMBOCTRL 0
477 #   endif
478 #endif /* !defined(wxUSE_COMBOCTRL) */
479 
480 #ifndef wxUSE_DATAOBJ
481 #   ifdef wxABORT_ON_CONFIG_ERROR
482 #       error "wxUSE_DATAOBJ must be defined."
483 #   else
484 #       define wxUSE_DATAOBJ 0
485 #   endif
486 #endif /* !defined(wxUSE_DATAOBJ) */
487 
488 #ifndef wxUSE_DATAVIEWCTRL
489 #   ifdef wxABORT_ON_CONFIG_ERROR
490 #       error "wxUSE_DATAVIEWCTRL must be defined."
491 #   else
492 #       define wxUSE_DATAVIEWCTRL 0
493 #   endif
494 #endif /* !defined(wxUSE_DATAVIEWCTRL) */
495 
496 #ifndef wxUSE_DATEPICKCTRL
497 #   ifdef wxABORT_ON_CONFIG_ERROR
498 #       error "wxUSE_DATEPICKCTRL must be defined."
499 #   else
500 #       define wxUSE_DATEPICKCTRL 0
501 #   endif
502 #endif /* !defined(wxUSE_DATEPICKCTRL) */
503 
504 #ifndef wxUSE_DIRPICKERCTRL
505 #   ifdef wxABORT_ON_CONFIG_ERROR
506 #       error "wxUSE_DIRPICKERCTRL must be defined."
507 #   else
508 #       define wxUSE_DIRPICKERCTRL 0
509 #   endif
510 #endif /* !defined(wxUSE_DIRPICKERCTRL) */
511 
512 #ifndef wxUSE_DISPLAY
513 #   ifdef wxABORT_ON_CONFIG_ERROR
514 #       error "wxUSE_DISPLAY must be defined."
515 #   else
516 #       define wxUSE_DISPLAY 0
517 #   endif
518 #endif /* !defined(wxUSE_DISPLAY) */
519 
520 #ifndef wxUSE_DOC_VIEW_ARCHITECTURE
521 #   ifdef wxABORT_ON_CONFIG_ERROR
522 #       error "wxUSE_DOC_VIEW_ARCHITECTURE must be defined."
523 #   else
524 #       define wxUSE_DOC_VIEW_ARCHITECTURE 0
525 #   endif
526 #endif /* !defined(wxUSE_DOC_VIEW_ARCHITECTURE) */
527 
528 #ifndef wxUSE_FILEDLG
529 #   ifdef wxABORT_ON_CONFIG_ERROR
530 #       error "wxUSE_FILEDLG must be defined."
531 #   else
532 #       define wxUSE_FILEDLG 0
533 #   endif
534 #endif /* !defined(wxUSE_FILEDLG) */
535 
536 #ifndef wxUSE_FILEPICKERCTRL
537 #   ifdef wxABORT_ON_CONFIG_ERROR
538 #       error "wxUSE_FILEPICKERCTRL must be defined."
539 #   else
540 #       define wxUSE_FILEPICKERCTRL 0
541 #   endif
542 #endif /* !defined(wxUSE_FILEPICKERCTRL) */
543 
544 #ifndef wxUSE_FONTDLG
545 #   ifdef wxABORT_ON_CONFIG_ERROR
546 #       error "wxUSE_FONTDLG must be defined."
547 #   else
548 #       define wxUSE_FONTDLG 0
549 #   endif
550 #endif /* !defined(wxUSE_FONTDLG) */
551 
552 #ifndef wxUSE_FONTMAP
553 #   ifdef wxABORT_ON_CONFIG_ERROR
554 #       error "wxUSE_FONTMAP must be defined."
555 #   else
556 #       define wxUSE_FONTMAP 0
557 #   endif
558 #endif /* !defined(wxUSE_FONTMAP) */
559 
560 #ifndef wxUSE_FONTPICKERCTRL
561 #   ifdef wxABORT_ON_CONFIG_ERROR
562 #       error "wxUSE_FONTPICKERCTRL must be defined."
563 #   else
564 #       define wxUSE_FONTPICKERCTRL 0
565 #   endif
566 #endif /* !defined(wxUSE_FONTPICKERCTRL) */
567 
568 #ifndef wxUSE_GAUGE
569 #   ifdef wxABORT_ON_CONFIG_ERROR
570 #       error "wxUSE_GAUGE must be defined."
571 #   else
572 #       define wxUSE_GAUGE 0
573 #   endif
574 #endif /* !defined(wxUSE_GAUGE) */
575 
576 #ifndef wxUSE_GRAPHICS_CONTEXT
577 #   ifdef wxABORT_ON_CONFIG_ERROR
578 #       error "wxUSE_GRAPHICS_CONTEXT must be defined."
579 #   else
580 #       define wxUSE_GRAPHICS_CONTEXT 0
581 #   endif
582 #endif /* !defined(wxUSE_GRAPHICS_CONTEXT) */
583 
584 
585 #ifndef wxUSE_GRID
586 #   ifdef wxABORT_ON_CONFIG_ERROR
587 #       error "wxUSE_GRID must be defined."
588 #   else
589 #       define wxUSE_GRID 0
590 #   endif
591 #endif /* !defined(wxUSE_GRID) */
592 
593 #ifndef wxUSE_HELP
594 #   ifdef wxABORT_ON_CONFIG_ERROR
595 #       error "wxUSE_HELP must be defined."
596 #   else
597 #       define wxUSE_HELP 0
598 #   endif
599 #endif /* !defined(wxUSE_HELP) */
600 
601 #ifndef wxUSE_HYPERLINKCTRL
602 #   ifdef wxABORT_ON_CONFIG_ERROR
603 #       error "wxUSE_HYPERLINKCTRL must be defined."
604 #   else
605 #       define wxUSE_HYPERLINKCTRL 0
606 #   endif
607 #endif /* !defined(wxUSE_HYPERLINKCTRL) */
608 
609 #ifndef wxUSE_HTML
610 #   ifdef wxABORT_ON_CONFIG_ERROR
611 #       error "wxUSE_HTML must be defined."
612 #   else
613 #       define wxUSE_HTML 0
614 #   endif
615 #endif /* !defined(wxUSE_HTML) */
616 
617 #ifndef wxUSE_LIBMSPACK
618 #   ifndef __UNIX__
619         /* set to 0 on platforms that don't have libmspack */
620 #       define wxUSE_LIBMSPACK 0
621 #   else
622 #       ifdef wxABORT_ON_CONFIG_ERROR
623 #           error "wxUSE_LIBMSPACK must be defined."
624 #       else
625 #           define wxUSE_LIBMSPACK 0
626 #       endif
627 #   endif
628 #endif /* !defined(wxUSE_LIBMSPACK) */
629 
630 #ifndef wxUSE_ICO_CUR
631 #   ifdef wxABORT_ON_CONFIG_ERROR
632 #       error "wxUSE_ICO_CUR must be defined."
633 #   else
634 #       define wxUSE_ICO_CUR 0
635 #   endif
636 #endif /* !defined(wxUSE_ICO_CUR) */
637 
638 #ifndef wxUSE_IFF
639 #   ifdef wxABORT_ON_CONFIG_ERROR
640 #       error "wxUSE_IFF must be defined."
641 #   else
642 #       define wxUSE_IFF 0
643 #   endif
644 #endif /* !defined(wxUSE_IFF) */
645 
646 #ifndef wxUSE_IMAGLIST
647 #   ifdef wxABORT_ON_CONFIG_ERROR
648 #       error "wxUSE_IMAGLIST must be defined."
649 #   else
650 #       define wxUSE_IMAGLIST 0
651 #   endif
652 #endif /* !defined(wxUSE_IMAGLIST) */
653 
654 #ifndef wxUSE_JOYSTICK
655 #   ifdef wxABORT_ON_CONFIG_ERROR
656 #       error "wxUSE_JOYSTICK must be defined."
657 #   else
658 #       define wxUSE_JOYSTICK 0
659 #   endif
660 #endif /* !defined(wxUSE_JOYSTICK) */
661 
662 #ifndef wxUSE_LISTBOOK
663 #   ifdef wxABORT_ON_CONFIG_ERROR
664 #       error "wxUSE_LISTBOOK must be defined."
665 #   else
666 #       define wxUSE_LISTBOOK 0
667 #   endif
668 #endif /* !defined(wxUSE_LISTBOOK) */
669 
670 #ifndef wxUSE_LISTBOX
671 #   ifdef wxABORT_ON_CONFIG_ERROR
672 #       error "wxUSE_LISTBOX must be defined."
673 #   else
674 #       define wxUSE_LISTBOX 0
675 #   endif
676 #endif /* !defined(wxUSE_LISTBOX) */
677 
678 #ifndef wxUSE_LISTCTRL
679 #   ifdef wxABORT_ON_CONFIG_ERROR
680 #       error "wxUSE_LISTCTRL must be defined."
681 #   else
682 #       define wxUSE_LISTCTRL 0
683 #   endif
684 #endif /* !defined(wxUSE_LISTCTRL) */
685 
686 #ifndef wxUSE_LOGGUI
687 #   ifdef wxABORT_ON_CONFIG_ERROR
688 #       error "wxUSE_LOGGUI must be defined."
689 #   else
690 #       define wxUSE_LOGGUI 0
691 #   endif
692 #endif /* !defined(wxUSE_LOGGUI) */
693 
694 #ifndef wxUSE_LOGWINDOW
695 #   ifdef wxABORT_ON_CONFIG_ERROR
696 #       error "wxUSE_LOGWINDOW must be defined."
697 #   else
698 #       define wxUSE_LOGWINDOW 0
699 #   endif
700 #endif /* !defined(wxUSE_LOGWINDOW) */
701 
702 #ifndef wxUSE_LOG_DIALOG
703 #   ifdef wxABORT_ON_CONFIG_ERROR
704 #       error "wxUSE_LOG_DIALOG must be defined."
705 #   else
706 #       define wxUSE_LOG_DIALOG 0
707 #   endif
708 #endif /* !defined(wxUSE_LOG_DIALOG) */
709 
710 #ifndef wxUSE_MDI
711 #   ifdef wxABORT_ON_CONFIG_ERROR
712 #       error "wxUSE_MDI must be defined."
713 #   else
714 #       define wxUSE_MDI 0
715 #   endif
716 #endif /* !defined(wxUSE_MDI) */
717 
718 #ifndef wxUSE_MDI_ARCHITECTURE
719 #   ifdef wxABORT_ON_CONFIG_ERROR
720 #       error "wxUSE_MDI_ARCHITECTURE must be defined."
721 #   else
722 #       define wxUSE_MDI_ARCHITECTURE 0
723 #   endif
724 #endif /* !defined(wxUSE_MDI_ARCHITECTURE) */
725 
726 #ifndef wxUSE_MENUS
727 #   ifdef wxABORT_ON_CONFIG_ERROR
728 #       error "wxUSE_MENUS must be defined."
729 #   else
730 #       define wxUSE_MENUS 0
731 #   endif
732 #endif /* !defined(wxUSE_MENUS) */
733 
734 #ifndef wxUSE_MSGDLG
735 #   ifdef wxABORT_ON_CONFIG_ERROR
736 #       error "wxUSE_MSGDLG must be defined."
737 #   else
738 #       define wxUSE_MSGDLG 0
739 #   endif
740 #endif /* !defined(wxUSE_MSGDLG) */
741 
742 #ifndef wxUSE_NOTEBOOK
743 #   ifdef wxABORT_ON_CONFIG_ERROR
744 #       error "wxUSE_NOTEBOOK must be defined."
745 #   else
746 #       define wxUSE_NOTEBOOK 0
747 #   endif
748 #endif /* !defined(wxUSE_NOTEBOOK) */
749 
750 #ifndef wxUSE_ODCOMBOBOX
751 #   ifdef wxABORT_ON_CONFIG_ERROR
752 #       error "wxUSE_ODCOMBOBOX must be defined."
753 #   else
754 #       define wxUSE_ODCOMBOBOX 0
755 #   endif
756 #endif /* !defined(wxUSE_ODCOMBOBOX) */
757 
758 #ifndef wxUSE_PALETTE
759 #   ifdef wxABORT_ON_CONFIG_ERROR
760 #       error "wxUSE_PALETTE must be defined."
761 #   else
762 #       define wxUSE_PALETTE 0
763 #   endif
764 #endif /* !defined(wxUSE_PALETTE) */
765 
766 #ifndef wxUSE_POPUPWIN
767 #   ifdef wxABORT_ON_CONFIG_ERROR
768 #       error "wxUSE_POPUPWIN must be defined."
769 #   else
770 #       define wxUSE_POPUPWIN 0
771 #   endif
772 #endif /* !defined(wxUSE_POPUPWIN) */
773 
774 #ifndef wxUSE_PRINTING_ARCHITECTURE
775 #   ifdef wxABORT_ON_CONFIG_ERROR
776 #       error "wxUSE_PRINTING_ARCHITECTURE must be defined."
777 #   else
778 #       define wxUSE_PRINTING_ARCHITECTURE 0
779 #   endif
780 #endif /* !defined(wxUSE_PRINTING_ARCHITECTURE) */
781 
782 #ifndef wxUSE_RADIOBOX
783 #   ifdef wxABORT_ON_CONFIG_ERROR
784 #       error "wxUSE_RADIOBOX must be defined."
785 #   else
786 #       define wxUSE_RADIOBOX 0
787 #   endif
788 #endif /* !defined(wxUSE_RADIOBOX) */
789 
790 #ifndef wxUSE_RADIOBTN
791 #   ifdef wxABORT_ON_CONFIG_ERROR
792 #       error "wxUSE_RADIOBTN must be defined."
793 #   else
794 #       define wxUSE_RADIOBTN 0
795 #   endif
796 #endif /* !defined(wxUSE_RADIOBTN) */
797 
798 #ifndef wxUSE_SASH
799 #   ifdef wxABORT_ON_CONFIG_ERROR
800 #       error "wxUSE_SASH must be defined."
801 #   else
802 #       define wxUSE_SASH 0
803 #   endif
804 #endif /* !defined(wxUSE_SASH) */
805 
806 #ifndef wxUSE_SCROLLBAR
807 #   ifdef wxABORT_ON_CONFIG_ERROR
808 #       error "wxUSE_SCROLLBAR must be defined."
809 #   else
810 #       define wxUSE_SCROLLBAR 0
811 #   endif
812 #endif /* !defined(wxUSE_SCROLLBAR) */
813 
814 #ifndef wxUSE_SLIDER
815 #   ifdef wxABORT_ON_CONFIG_ERROR
816 #       error "wxUSE_SLIDER must be defined."
817 #   else
818 #       define wxUSE_SLIDER 0
819 #   endif
820 #endif /* !defined(wxUSE_SLIDER) */
821 
822 #ifndef wxUSE_SOUND
823 #   ifdef wxABORT_ON_CONFIG_ERROR
824 #       error "wxUSE_SOUND must be defined."
825 #   else
826 #       define wxUSE_SOUND 0
827 #   endif
828 #endif /* !defined(wxUSE_SOUND) */
829 
830 #ifndef wxUSE_SPINBTN
831 #   ifdef wxABORT_ON_CONFIG_ERROR
832 #       error "wxUSE_SPINBTN must be defined."
833 #   else
834 #       define wxUSE_SPINBTN 0
835 #   endif
836 #endif /* !defined(wxUSE_SPINBTN) */
837 
838 #ifndef wxUSE_SPINCTRL
839 #   ifdef wxABORT_ON_CONFIG_ERROR
840 #       error "wxUSE_SPINCTRL must be defined."
841 #   else
842 #       define wxUSE_SPINCTRL 0
843 #   endif
844 #endif /* !defined(wxUSE_SPINCTRL) */
845 
846 #ifndef wxUSE_SPLASH
847 #   ifdef wxABORT_ON_CONFIG_ERROR
848 #       error "wxUSE_SPLASH must be defined."
849 #   else
850 #       define wxUSE_SPLASH 0
851 #   endif
852 #endif /* !defined(wxUSE_SPLASH) */
853 
854 #ifndef wxUSE_SPLITTER
855 #   ifdef wxABORT_ON_CONFIG_ERROR
856 #       error "wxUSE_SPLITTER must be defined."
857 #   else
858 #       define wxUSE_SPLITTER 0
859 #   endif
860 #endif /* !defined(wxUSE_SPLITTER) */
861 
862 #ifndef wxUSE_STATBMP
863 #   ifdef wxABORT_ON_CONFIG_ERROR
864 #       error "wxUSE_STATBMP must be defined."
865 #   else
866 #       define wxUSE_STATBMP 0
867 #   endif
868 #endif /* !defined(wxUSE_STATBMP) */
869 
870 #ifndef wxUSE_STATBOX
871 #   ifdef wxABORT_ON_CONFIG_ERROR
872 #       error "wxUSE_STATBOX must be defined."
873 #   else
874 #       define wxUSE_STATBOX 0
875 #   endif
876 #endif /* !defined(wxUSE_STATBOX) */
877 
878 #ifndef wxUSE_STATLINE
879 #   ifdef wxABORT_ON_CONFIG_ERROR
880 #       error "wxUSE_STATLINE must be defined."
881 #   else
882 #       define wxUSE_STATLINE 0
883 #   endif
884 #endif /* !defined(wxUSE_STATLINE) */
885 
886 #ifndef wxUSE_STATTEXT
887 #   ifdef wxABORT_ON_CONFIG_ERROR
888 #       error "wxUSE_STATTEXT must be defined."
889 #   else
890 #       define wxUSE_STATTEXT 0
891 #   endif
892 #endif /* !defined(wxUSE_STATTEXT) */
893 
894 #ifndef wxUSE_STATUSBAR
895 #   ifdef wxABORT_ON_CONFIG_ERROR
896 #       error "wxUSE_STATUSBAR must be defined."
897 #   else
898 #       define wxUSE_STATUSBAR 0
899 #   endif
900 #endif /* !defined(wxUSE_STATUSBAR) */
901 
902 #ifndef wxUSE_TAB_DIALOG
903 #   ifdef wxABORT_ON_CONFIG_ERROR
904 #       error "wxUSE_TAB_DIALOG must be defined."
905 #   else
906 #       define wxUSE_TAB_DIALOG 0
907 #   endif
908 #endif /* !defined(wxUSE_TAB_DIALOG) */
909 
910 #ifndef wxUSE_TEXTCTRL
911 #   ifdef wxABORT_ON_CONFIG_ERROR
912 #       error "wxUSE_TEXTCTRL must be defined."
913 #   else
914 #       define wxUSE_TEXTCTRL 0
915 #   endif
916 #endif /* !defined(wxUSE_TEXTCTRL) */
917 
918 #ifndef wxUSE_TIPWINDOW
919 #   ifdef wxABORT_ON_CONFIG_ERROR
920 #       error "wxUSE_TIPWINDOW must be defined."
921 #   else
922 #       define wxUSE_TIPWINDOW 0
923 #   endif
924 #endif /* !defined(wxUSE_TIPWINDOW) */
925 
926 #ifndef wxUSE_TOOLBAR
927 #   ifdef wxABORT_ON_CONFIG_ERROR
928 #       error "wxUSE_TOOLBAR must be defined."
929 #   else
930 #       define wxUSE_TOOLBAR 0
931 #   endif
932 #endif /* !defined(wxUSE_TOOLBAR) */
933 
934 #ifndef wxUSE_TOOLTIPS
935 #   ifdef wxABORT_ON_CONFIG_ERROR
936 #       error "wxUSE_TOOLTIPS must be defined."
937 #   else
938 #       define wxUSE_TOOLTIPS 0
939 #   endif
940 #endif /* !defined(wxUSE_TOOLTIPS) */
941 
942 #ifndef wxUSE_TREECTRL
943 #   ifdef wxABORT_ON_CONFIG_ERROR
944 #       error "wxUSE_TREECTRL must be defined."
945 #   else
946 #       define wxUSE_TREECTRL 0
947 #   endif
948 #endif /* !defined(wxUSE_TREECTRL) */
949 
950 #ifndef wxUSE_VALIDATORS
951 #   ifdef wxABORT_ON_CONFIG_ERROR
952 #       error "wxUSE_VALIDATORS must be defined."
953 #   else
954 #       define wxUSE_VALIDATORS 0
955 #   endif
956 #endif /* !defined(wxUSE_VALIDATORS) */
957 
958 #ifndef wxUSE_WXHTML_HELP
959 #   ifdef wxABORT_ON_CONFIG_ERROR
960 #       error "wxUSE_WXHTML_HELP must be defined."
961 #   else
962 #       define wxUSE_WXHTML_HELP 0
963 #   endif
964 #endif /* !defined(wxUSE_WXHTML_HELP) */
965 
966 #ifndef wxUSE_XRC
967 #   ifdef wxABORT_ON_CONFIG_ERROR
968 #       error "wxUSE_XRC must be defined."
969 #   else
970 #       define wxUSE_XRC 0
971 #   endif
972 #endif /* !defined(wxUSE_XRC) */
973 
974 #endif /* wxUSE_GUI */
975 
976 /*
977    check consistency of the settings
978  */
979 
980 #if WXWIN_COMPATIBILITY_2_4
981 #   if !WXWIN_COMPATIBILITY_2_6
982 #       ifdef wxABORT_ON_CONFIG_ERROR
983 #           error "2.4.X compatibility requires 2.6.X compatibility"
984 #       else
985 #           undef WXWIN_COMPATIBILITY_2_6
986 #           define WXWIN_COMPATIBILITY_2_6 1
987 #       endif
988 #   endif
989 #endif /* WXWIN_COMPATIBILITY_2_4 */
990 
991 #if wxUSE_ARCHIVE_STREAMS
992 #   if !wxUSE_DATETIME
993 #       ifdef wxABORT_ON_CONFIG_ERROR
994 #           error "wxArchive requires wxUSE_DATETIME"
995 #       else
996 #           undef wxUSE_ARCHIVE_STREAMS
997 #           define wxUSE_ARCHIVE_STREAMS 0
998 #       endif
999 #   endif
1000 #endif /* wxUSE_ARCHIVE_STREAMS */
1001 
1002 #if wxUSE_CRASHREPORT && !wxUSE_ON_FATAL_EXCEPTION
1003 #   ifdef wxABORT_ON_CONFIG_ERROR
1004 #       error "wxUSE_CRASHREPORT requires wxUSE_ON_FATAL_EXCEPTION"
1005 #   else
1006 #       undef wxUSE_CRASHREPORT
1007 #       define wxUSE_CRASHREPORT 0
1008 #   endif
1009 #endif /* wxUSE_CRASHREPORT */
1010 
1011 #if wxUSE_PROTOCOL_FILE || wxUSE_PROTOCOL_FTP || wxUSE_PROTOCOL_HTTP
1012 #   if !wxUSE_PROTOCOL
1013 #        ifdef wxABORT_ON_CONFIG_ERROR
1014 #            error "wxUSE_PROTOCOL_XXX requires wxUSE_PROTOCOL"
1015 #        else
1016 #            undef wxUSE_PROTOCOL
1017 #            define wxUSE_PROTOCOL 1
1018 #        endif
1019 #   endif
1020 #endif /* wxUSE_PROTOCOL_XXX */
1021 
1022 #if wxUSE_URL
1023 #   if !wxUSE_PROTOCOL
1024 #        ifdef wxABORT_ON_CONFIG_ERROR
1025 #            error "wxUSE_URL requires wxUSE_PROTOCOL"
1026 #        else
1027 #            undef wxUSE_PROTOCOL
1028 #            define wxUSE_PROTOCOL 1
1029 #        endif
1030 #   endif
1031 #endif /* wxUSE_URL */
1032 
1033 #if wxUSE_PROTOCOL
1034 #   if !wxUSE_SOCKETS
1035 #       if wxUSE_PROTOCOL_HTTP || wxUSE_PROTOCOL_FTP
1036 #           ifdef wxABORT_ON_CONFIG_ERROR
1037 #               error "wxUSE_PROTOCOL_FTP/HTTP requires wxUSE_SOCKETS"
1038 #           else
1039 #               undef wxUSE_SOCKETS
1040 #               define wxUSE_SOCKETS 1
1041 #           endif
1042 #       endif
1043 #   endif
1044 
1045 #   if !wxUSE_STREAMS
1046 #       ifdef wxABORT_ON_CONFIG_ERROR
1047 #           error "wxUSE_PROTOCOL requires wxUSE_STREAMS"
1048 #       else
1049 #           undef wxUSE_STREAMS
1050 #           define wxUSE_STREAMS 1
1051 #       endif
1052 #   endif
1053 #endif /* wxUSE_PROTOCOL */
1054 
1055 /* have to test for wxUSE_HTML before wxUSE_FILESYSTEM */
1056 #if wxUSE_HTML
1057 #   if !wxUSE_FILESYSTEM
1058 #       ifdef wxABORT_ON_CONFIG_ERROR
1059 #           error "wxHTML requires wxFileSystem"
1060 #       else
1061 #           undef wxUSE_FILESYSTEM
1062 #           define wxUSE_FILESYSTEM 1
1063 #       endif
1064 #   endif
1065 #endif /* wxUSE_HTML */
1066 
1067 #if wxUSE_FS_ARCHIVE
1068 #   if !wxUSE_FILESYSTEM
1069 #       ifdef wxABORT_ON_CONFIG_ERROR
1070 #           error "wxArchiveFSHandler requires wxFileSystem"
1071 #       else
1072 #           undef wxUSE_FILESYSTEM
1073 #           define wxUSE_FILESYSTEM 1
1074 #       endif
1075 #   endif
1076 #   if !wxUSE_ARCHIVE_STREAMS
1077 #       ifdef wxABORT_ON_CONFIG_ERROR
1078 #           error "wxArchiveFSHandler requires wxArchive"
1079 #       else
1080 #           undef wxUSE_ARCHIVE_STREAMS
1081 #           define wxUSE_ARCHIVE_STREAMS 1
1082 #       endif
1083 #   endif
1084 #endif /* wxUSE_FS_ARCHIVE */
1085 
1086 #if wxUSE_FILESYSTEM
1087 #   if !wxUSE_STREAMS
1088 #       ifdef wxABORT_ON_CONFIG_ERROR
1089 #           error "wxUSE_FILESYSTEM requires wxUSE_STREAMS"
1090 #       else
1091 #           undef wxUSE_STREAMS
1092 #           define wxUSE_STREAMS 1
1093 #       endif
1094 #   endif
1095 #   if !wxUSE_FILE && !wxUSE_FFILE
1096 #       ifdef wxABORT_ON_CONFIG_ERROR
1097 #           error "wxUSE_FILESYSTEM requires either wxUSE_FILE or wxUSE_FFILE"
1098 #       else
1099 #           undef wxUSE_FILE
1100 #           define wxUSE_FILE 1
1101 #           undef wxUSE_FFILE
1102 #           define wxUSE_FFILE 1
1103 #       endif
1104 #   endif
1105 #endif /* wxUSE_FILESYSTEM */
1106 
1107 #if wxUSE_FS_INET
1108 #   if !wxUSE_PROTOCOL
1109 #       ifdef wxABORT_ON_CONFIG_ERROR
1110 #           error "wxUSE_FS_INET requires wxUSE_PROTOCOL"
1111 #       else
1112 #           undef wxUSE_PROTOCOL
1113 #           define wxUSE_PROTOCOL 1
1114 #       endif
1115 #   endif
1116 #endif /* wxUSE_FS_INET */
1117 
1118 #if wxUSE_STOPWATCH || wxUSE_DATETIME
1119 #    if !wxUSE_LONGLONG
1120 #        ifdef wxABORT_ON_CONFIG_ERROR
1121 #            error "wxUSE_STOPWATCH and wxUSE_DATETIME require wxUSE_LONGLONG"
1122 #        else
1123 #            undef wxUSE_LONGLONG
1124 #            define wxUSE_LONGLONG 1
1125 #        endif
1126 #    endif
1127 #endif /* wxUSE_STOPWATCH */
1128 
1129 #if wxUSE_MIMETYPE && !wxUSE_TEXTFILE
1130 #   ifdef wxABORT_ON_CONFIG_ERROR
1131 #       error "wxUSE_MIMETYPE requires wxUSE_TEXTFILE"
1132 #   else
1133 #       undef wxUSE_TEXTFILE
1134 #       define wxUSE_TEXTFILE 1
1135 #   endif
1136 #endif /* wxUSE_MIMETYPE */
1137 
1138 #if wxUSE_ODBC
1139 #   if !wxUSE_DATETIME
1140 #       ifdef wxABORT_ON_CONFIG_ERROR
1141 #           error "wxODBC requires wxUSE_DATETIME"
1142 #       else
1143 #           undef wxUSE_ODBC
1144 #           define wxUSE_ODBC 0
1145 #       endif
1146 #   endif
1147 #endif /* wxUSE_ODBC */
1148 
1149 #if wxUSE_TEXTFILE && !wxUSE_TEXTBUFFER
1150 #   ifdef wxABORT_ON_CONFIG_ERROR
1151 #       error "wxUSE_TEXTFILE requires wxUSE_TEXTBUFFER"
1152 #   else
1153 #       undef wxUSE_TEXTBUFFER
1154 #       define wxUSE_TEXTBUFFER 1
1155 #   endif
1156 #endif /* wxUSE_TEXTFILE */
1157 
1158 #if wxUSE_TEXTFILE && !wxUSE_FILE
1159 #   ifdef wxABORT_ON_CONFIG_ERROR
1160 #       error "wxUSE_TEXTFILE requires wxUSE_FILE"
1161 #   else
1162 #       undef wxUSE_FILE
1163 #       define wxUSE_FILE 1
1164 #   endif
1165 #endif /* wxUSE_TEXTFILE */
1166 
1167 #if wxUSE_XML && !wxUSE_WCHAR_T
1168 #   ifdef wxABORT_ON_CONFIG_ERROR
1169 #       error "wxUSE_XML requires wxUSE_WCHAR_T"
1170 #   else
1171 #       undef wxUSE_XML
1172 #       define wxUSE_XML 0
1173 #   endif
1174 #endif /* wxUSE_XML */
1175 
1176 #if !wxUSE_DYNLIB_CLASS
1177 #   if wxUSE_DYNAMIC_LOADER
1178 #       ifdef wxABORT_ON_CONFIG_ERROR
1179 #           error "wxUSE_DYNAMIC_LOADER requires wxUSE_DYNLIB_CLASS."
1180 #       else
1181 #           define wxUSE_DYNLIB_CLASS 1
1182 #       endif
1183 #   endif
1184 #endif  /* wxUSE_DYNLIB_CLASS */
1185 
1186 #if wxUSE_ZIPSTREAM
1187 #   if !wxUSE_ZLIB
1188 #       ifdef wxABORT_ON_CONFIG_ERROR
1189 #           error "wxZip requires wxZlib"
1190 #       else
1191 #           undef wxUSE_ZLIB
1192 #           define wxUSE_ZLIB 1
1193 #       endif
1194 #   endif
1195 #   if !wxUSE_ARCHIVE_STREAMS
1196 #       ifdef wxABORT_ON_CONFIG_ERROR
1197 #           error "wxZip requires wxArchive"
1198 #       else
1199 #           undef wxUSE_ARCHIVE_STREAMS
1200 #           define wxUSE_ARCHIVE_STREAMS 1
1201 #       endif
1202 #   endif
1203 #endif /* wxUSE_ZIPSTREAM */
1204 
1205 #if wxUSE_TARSTREAM
1206     /* wxTar doesn't currently compile without wchar_t */
1207 #   if !wxUSE_WCHAR_T
1208 #       ifdef wxABORT_ON_CONFIG_ERROR
1209 #           error "wxTar requires wchar_t"
1210 #       else
1211 #           undef wxUSE_TARSTREAM
1212 #           define wxUSE_TARSTREAM 0
1213 #       endif
1214 #   endif
1215 #endif /* wxUSE_TARSTREAM */
1216 
1217 #if wxUSE_TARSTREAM
1218 #   if !wxUSE_ARCHIVE_STREAMS
1219 #       ifdef wxABORT_ON_CONFIG_ERROR
1220 #           error "wxTar requires wxArchive"
1221 #       else
1222 #           undef wxUSE_ARCHIVE_STREAMS
1223 #           define wxUSE_ARCHIVE_STREAMS 1
1224 #       endif
1225 #   endif
1226 #endif /* wxUSE_TARSTREAM */
1227 
1228 /* the rest of the tests is for the GUI settings only */
1229 #if wxUSE_GUI
1230 
1231 #if wxUSE_BUTTON || \
1232     wxUSE_CALENDARCTRL || \
1233     wxUSE_CARET || \
1234     wxUSE_COMBOBOX || \
1235     wxUSE_BMPBUTTON || \
1236     wxUSE_CHECKBOX || \
1237     wxUSE_CHECKLISTBOX || \
1238     wxUSE_CHOICE || \
1239     wxUSE_GAUGE || \
1240     wxUSE_GRID || \
1241     wxUSE_LISTBOX || \
1242     wxUSE_LISTCTRL || \
1243     wxUSE_NOTEBOOK || \
1244     wxUSE_RADIOBOX || \
1245     wxUSE_RADIOBTN || \
1246     wxUSE_SCROLLBAR || \
1247     wxUSE_SLIDER || \
1248     wxUSE_SPINBTN || \
1249     wxUSE_SPINCTRL || \
1250     wxUSE_STATBMP || \
1251     wxUSE_STATBOX || \
1252     wxUSE_STATLINE || \
1253     wxUSE_STATTEXT || \
1254     wxUSE_STATUSBAR || \
1255     wxUSE_TEXTCTRL || \
1256     wxUSE_TOOLBAR || \
1257     wxUSE_TREECTRL
1258 #    if !wxUSE_CONTROLS
1259 #        ifdef wxABORT_ON_CONFIG_ERROR
1260 #            error "wxUSE_CONTROLS unset but some controls used"
1261 #        else
1262 #            undef wxUSE_CONTROLS
1263 #            define wxUSE_CONTROLS 1
1264 #        endif
1265 #    endif
1266 #endif /* controls */
1267 
1268 #if wxUSE_BMPBUTTON
1269 #    if !wxUSE_BUTTON
1270 #        ifdef wxABORT_ON_CONFIG_ERROR
1271 #            error "wxUSE_BMPBUTTON requires wxUSE_BUTTON"
1272 #        else
1273 #            undef wxUSE_BUTTON
1274 #            define wxUSE_BUTTON 1
1275 #        endif
1276 #    endif
1277 #endif /* wxUSE_BMPBUTTON */
1278 
1279 /*
1280    wxUSE_BOOKCTRL should be only used if any of the controls deriving from it
1281    are used
1282  */
1283 #ifdef wxUSE_BOOKCTRL
1284 #   ifdef wxABORT_ON_CONFIG_ERROR
1285 #       error "wxUSE_BOOKCTRL is defined automatically, don't define it"
1286 #   else
1287 #       undef wxUSE_BOOKCTRL
1288 #   endif
1289 #endif
1290 
1291 #define wxUSE_BOOKCTRL (wxUSE_NOTEBOOK || \
1292                         wxUSE_LISTBOOK || \
1293                         wxUSE_CHOICEBOOK || \
1294                         wxUSE_TOOLBOOK || \
1295                         wxUSE_TREEBOOK)
1296 
1297 #if wxUSE_COLLPANE
1298 #   if !wxUSE_BUTTON || !wxUSE_STATLINE
1299 #       ifdef wxABORT_ON_CONFIG_ERROR
1300 #           error "wxUSE_COLLPANE requires wxUSE_BUTTON and wxUSE_STATLINE"
1301 #       else
1302 #           undef wxUSE_COLLPANE
1303 #           define wxUSE_COLLPANE 0
1304 #       endif
1305 #   endif
1306 #endif /* wxUSE_COLLPANE */
1307 
1308 #if wxUSE_LISTBOOK
1309 #   if !wxUSE_LISTCTRL
1310 #       ifdef wxABORT_ON_CONFIG_ERROR
1311 #           error "wxListbook requires wxListCtrl"
1312 #       else
1313 #           undef wxUSE_LISTCTRL
1314 #           define wxUSE_LISTCTRL 1
1315 #       endif
1316 #   endif
1317 #endif /* wxUSE_LISTBOOK */
1318 
1319 #if wxUSE_CHOICEBOOK
1320 #   if !wxUSE_CHOICE
1321 #       ifdef wxABORT_ON_CONFIG_ERROR
1322 #           error "wxChoicebook requires wxChoice"
1323 #       else
1324 #           undef wxUSE_CHOICE
1325 #           define wxUSE_CHOICE 1
1326 #       endif
1327 #   endif
1328 #endif /* wxUSE_CHOICEBOOK */
1329 
1330 #if wxUSE_TOOLBOOK
1331 #   if !wxUSE_TOOLBAR
1332 #       ifdef wxABORT_ON_CONFIG_ERROR
1333 #           error "wxToolbook requires wxToolBar"
1334 #       else
1335 #           undef wxUSE_TOOLBAR
1336 #           define wxUSE_TOOLBAR 1
1337 #       endif
1338 #   endif
1339 #endif /* wxUSE_TOOLBOOK */
1340 
1341 #if !wxUSE_ODCOMBOBOX
1342 #   if wxUSE_BITMAPCOMBOBOX
1343 #       error "wxBitmapComboBox requires wxOwnerDrawnComboBox"
1344 #   else
1345 #       undef wxUSE_BITMAPCOMBOBOX
1346 #       define wxUSE_BITMAPCOMBOBOX 0
1347 #   endif
1348 #endif /* !wxUSE_ODCOMBOBOX */
1349 
1350 /* don't attempt to use native status bar on the platforms not having it */
1351 #ifndef wxUSE_NATIVE_STATUSBAR
1352 #   define wxUSE_NATIVE_STATUSBAR 0
1353 #elif wxUSE_NATIVE_STATUSBAR
1354 #   if defined(__WXUNIVERSAL__) || !( defined(__WXMSW__) || \
1355                                       defined(__WXMAC__) || \
1356                                       defined(__WXPALMOS__) )
1357 #       undef wxUSE_NATIVE_STATUSBAR
1358 #       define wxUSE_NATIVE_STATUSBAR 0
1359 #   endif
1360 #endif
1361 
1362 #if wxUSE_GRAPHICS_CONTEXT && !wxUSE_GEOMETRY
1363 #   ifdef wxABORT_ON_CONFIG_ERROR
1364 #       error "wxUSE_GRAPHICS_CONTEXT requires wxUSE_GEOMETRY"
1365 #   else
1366 #       undef wxUSE_GRAPHICS_CONTEXT
1367 #       define wxUSE_GRAPHICS_CONTEXT 0
1368 #   endif
1369 #endif /* wxUSE_GRAPHICS_CONTEXT */
1370 
1371 
1372 /* wxGTK-specific dependencies */
1373 #ifdef __WXGTK__
1374 #   ifndef __WXUNIVERSAL__
1375 #       if wxUSE_MDI_ARCHITECTURE && !wxUSE_MENUS
1376 #           ifdef wxABORT_ON_CONFIG_ERROR
1377 #               error "MDI requires wxUSE_MENUS in wxGTK"
1378 #           else
1379 #               undef wxUSE_MENUS
1380 #               define wxUSE_MENUS 1
1381 #           endif
1382 #       endif
1383 #   endif /* !__WXUNIVERSAL__ */
1384 
1385 #   if wxUSE_JOYSTICK
1386 #       if !wxUSE_THREADS
1387 #           ifdef wxABORT_ON_CONFIG_ERROR
1388 #               error "wxJoystick requires threads in wxGTK"
1389 #           else
1390 #               undef wxUSE_JOYSTICK
1391 #               define wxUSE_JOYSTICK 0
1392 #           endif
1393 #       endif
1394 #   endif
1395 #endif /* wxGTK && !wxUniv */
1396 
1397 /* Hopefully we can emulate these dialogs in due course */
1398 #if defined(__SMARTPHONE__) && defined(__WXWINCE__)
1399 #   ifdef wxUSE_COLOURDLG
1400 #       undef wxUSE_COLOURDLG
1401 #       define wxUSE_COLOURDLG 0
1402 #   endif
1403 #endif /* __SMARTPHONE__ && __WXWINCE__ */
1404 
1405 
1406 /* generic controls dependencies */
1407 #if !defined(__WXMSW__) || defined(__WXUNIVERSAL__)
1408 #   if wxUSE_FONTDLG || wxUSE_FILEDLG || wxUSE_CHOICEDLG
1409         /* all common controls are needed by these dialogs */
1410 #       if !defined(wxUSE_CHOICE) || \
1411            !defined(wxUSE_TEXTCTRL) || \
1412            !defined(wxUSE_BUTTON) || \
1413            !defined(wxUSE_CHECKBOX) || \
1414            !defined(wxUSE_STATTEXT)
1415 #           ifdef wxABORT_ON_CONFIG_ERROR
1416 #               error "These common controls are needed by common dialogs"
1417 #           else
1418 #               undef wxUSE_CHOICE
1419 #               define wxUSE_CHOICE 1
1420 #               undef wxUSE_TEXTCTRL
1421 #               define wxUSE_TEXTCTRL 1
1422 #               undef wxUSE_BUTTON
1423 #               define wxUSE_BUTTON 1
1424 #               undef wxUSE_CHECKBOX
1425 #               define wxUSE_CHECKBOX 1
1426 #               undef wxUSE_STATTEXT
1427 #               define wxUSE_STATTEXT 1
1428 #           endif
1429 #       endif
1430 #   endif
1431 #endif /* !wxMSW || wxUniv */
1432 
1433 /* common dependencies */
1434 #if wxUSE_CALENDARCTRL
1435 #   if !(wxUSE_SPINBTN && wxUSE_COMBOBOX)
1436 #       ifdef wxABORT_ON_CONFIG_ERROR
1437 #           error "wxCalendarCtrl requires wxSpinButton and wxComboBox"
1438 #       else
1439 #           undef wxUSE_SPINBTN
1440 #           undef wxUSE_COMBOBOX
1441 #           define wxUSE_SPINBTN 1
1442 #           define wxUSE_COMBOBOX 1
1443 #       endif
1444 #   endif
1445 
1446 #   if !wxUSE_DATETIME
1447 #       ifdef wxABORT_ON_CONFIG_ERROR
1448 #           error "wxCalendarCtrl requires wxUSE_DATETIME"
1449 #       else
1450 #           undef wxUSE_DATETIME
1451 #           define wxUSE_DATETIME 1
1452 #       endif
1453 #   endif
1454 #endif /* wxUSE_CALENDARCTRL */
1455 
1456 #if wxUSE_DATEPICKCTRL
1457 #   if !wxUSE_DATETIME
1458 #       ifdef wxABORT_ON_CONFIG_ERROR
1459 #           error "wxDatePickerCtrl requires wxUSE_DATETIME"
1460 #       else
1461 #           undef wxUSE_DATETIME
1462 #           define wxUSE_DATETIME 1
1463 #       endif
1464 #   endif
1465 #endif /* wxUSE_DATEPICKCTRL */
1466 
1467 #if wxUSE_CHECKLISTBOX
1468 #   if !wxUSE_LISTBOX
1469 #        ifdef wxABORT_ON_CONFIG_ERROR
1470 #            error "wxCheckListBox requires wxListBox"
1471 #        else
1472 #            undef wxUSE_LISTBOX
1473 #            define wxUSE_LISTBOX 1
1474 #        endif
1475 #   endif
1476 #endif /* wxUSE_CHECKLISTBOX */
1477 
1478 #if wxUSE_CHOICEDLG
1479 #   if !wxUSE_LISTBOX
1480 #        ifdef wxABORT_ON_CONFIG_ERROR
1481 #            error "Choice dialogs requires wxListBox"
1482 #        else
1483 #            undef wxUSE_LISTBOX
1484 #            define wxUSE_LISTBOX 1
1485 #        endif
1486 #   endif
1487 #endif /* wxUSE_CHOICEDLG */
1488 
1489 #if wxUSE_HELP
1490 #   if !wxUSE_BMPBUTTON
1491 #       ifdef wxABORT_ON_CONFIG_ERROR
1492 #           error "wxUSE_HELP requires wxUSE_BMPBUTTON"
1493 #       else
1494 #           undef wxUSE_BMPBUTTON
1495 #           define wxUSE_BMPBUTTON 1
1496 #       endif
1497 #   endif
1498 
1499 #   if !wxUSE_CHOICEDLG
1500 #       ifdef wxABORT_ON_CONFIG_ERROR
1501 #           error "wxUSE_HELP requires wxUSE_CHOICEDLG"
1502 #       else
1503 #           undef wxUSE_CHOICEDLG
1504 #           define wxUSE_CHOICEDLG 1
1505 #       endif
1506 #   endif
1507 #endif /* wxUSE_HELP */
1508 
1509 #if wxUSE_MS_HTML_HELP
1510     /*
1511         this doesn't make sense for platforms other than MSW but we still
1512         define it in wx/setup_inc.h so don't complain if it happens to be
1513         defined under another platform but just silently fix it.
1514      */
1515 #   ifndef __WXMSW__
1516 #       undef wxUSE_MS_HTML_HELP
1517 #       define wxUSE_MS_HTML_HELP 0
1518 #   endif
1519 #endif /* wxUSE_MS_HTML_HELP */
1520 
1521 #if wxUSE_WXHTML_HELP
1522 #   if !wxUSE_HELP || !wxUSE_HTML || !wxUSE_COMBOBOX || !wxUSE_NOTEBOOK || !wxUSE_SPINCTRL
1523 #       ifdef wxABORT_ON_CONFIG_ERROR
1524 #           error "Built in help controller can't be compiled"
1525 #       else
1526 #           undef wxUSE_HELP
1527 #           define wxUSE_HELP 1
1528 #           undef wxUSE_HTML
1529 #           define wxUSE_HTML 1
1530 #           undef wxUSE_COMBOBOX
1531 #           define wxUSE_COMBOBOX 1
1532 #           undef wxUSE_NOTEBOOK
1533 #           define wxUSE_NOTEBOOK 1
1534 #           undef wxUSE_SPINCTRL
1535 #           define wxUSE_SPINCTRL 1
1536 #       endif
1537 #   endif
1538 #endif /* wxUSE_WXHTML_HELP */
1539 
1540 #if !wxUSE_IMAGE
1541 /*
1542    The default wxUSE_IMAGE setting is 1, so if it's set to 0 we assume the
1543    user explicitly wants this and disable all other features that require
1544    wxUSE_IMAGE.
1545  */
1546 #   if wxUSE_DRAGIMAGE
1547 #        ifdef wxABORT_ON_CONFIG_ERROR
1548 #            error "wxUSE_DRAGIMAGE requires wxUSE_IMAGE"
1549 #        else
1550 #            undef wxUSE_DRAGIMAGE
1551 #            define wxUSE_DRAGIMAGE 0
1552 #        endif
1553 #   endif
1554 
1555 #   if wxUSE_LIBPNG
1556 #        ifdef wxABORT_ON_CONFIG_ERROR
1557 #            error "wxUSE_LIBPNG requires wxUSE_IMAGE"
1558 #        else
1559 #            undef wxUSE_LIBPNG
1560 #            define wxUSE_LIBPNG 0
1561 #        endif
1562 #   endif
1563 
1564 #   if wxUSE_LIBJPEG
1565 #        ifdef wxABORT_ON_CONFIG_ERROR
1566 #            error "wxUSE_LIBJPEG requires wxUSE_IMAGE"
1567 #        else
1568 #            undef wxUSE_LIBJPEG
1569 #            define wxUSE_LIBJPEG 0
1570 #        endif
1571 #   endif
1572 
1573 #   if wxUSE_LIBTIFF
1574 #        ifdef wxABORT_ON_CONFIG_ERROR
1575 #            error "wxUSE_LIBTIFF requires wxUSE_IMAGE"
1576 #        else
1577 #            undef wxUSE_LIBTIFF
1578 #            define wxUSE_LIBTIFF 0
1579 #        endif
1580 #   endif
1581 
1582 #   if wxUSE_GIF
1583 #        ifdef wxABORT_ON_CONFIG_ERROR
1584 #            error "wxUSE_GIF requires wxUSE_IMAGE"
1585 #        else
1586 #            undef wxUSE_GIF
1587 #            define wxUSE_GIF 0
1588 #        endif
1589 #   endif
1590 
1591 #   if wxUSE_PNM
1592 #        ifdef wxABORT_ON_CONFIG_ERROR
1593 #            error "wxUSE_PNM requires wxUSE_IMAGE"
1594 #        else
1595 #            undef wxUSE_PNM
1596 #            define wxUSE_PNM 0
1597 #        endif
1598 #   endif
1599 
1600 #   if wxUSE_PCX
1601 #        ifdef wxABORT_ON_CONFIG_ERROR
1602 #            error "wxUSE_PCX requires wxUSE_IMAGE"
1603 #        else
1604 #            undef wxUSE_PCX
1605 #            define wxUSE_PCX 0
1606 #        endif
1607 #   endif
1608 
1609 #   if wxUSE_IFF
1610 #        ifdef wxABORT_ON_CONFIG_ERROR
1611 #            error "wxUSE_IFF requires wxUSE_IMAGE"
1612 #        else
1613 #            undef wxUSE_IFF
1614 #            define wxUSE_IFF 0
1615 #        endif
1616 #   endif
1617 
1618 #   if wxUSE_TOOLBAR
1619 #        ifdef wxABORT_ON_CONFIG_ERROR
1620 #            error "wxUSE_TOOLBAR requires wxUSE_IMAGE"
1621 #        else
1622 #            undef wxUSE_TOOLBAR
1623 #            define wxUSE_TOOLBAR 0
1624 #        endif
1625 #   endif
1626 
1627 #   if wxUSE_XPM
1628 #        ifdef wxABORT_ON_CONFIG_ERROR
1629 #            error "wxUSE_XPM requires wxUSE_IMAGE"
1630 #        else
1631 #            undef wxUSE_XPM
1632 #            define wxUSE_XPM 0
1633 #        endif
1634 #   endif
1635 
1636 #endif /* !wxUSE_IMAGE */
1637 
1638 #if wxUSE_DOC_VIEW_ARCHITECTURE
1639 #   if !wxUSE_MENUS
1640 #        ifdef wxABORT_ON_CONFIG_ERROR
1641 #            error "DocView requires wxUSE_MENUS"
1642 #        else
1643 #            undef wxUSE_MENUS
1644 #            define wxUSE_MENUS 1
1645 #        endif
1646 #   endif
1647 
1648 #   if !wxUSE_CHOICEDLG
1649 #        ifdef wxABORT_ON_CONFIG_ERROR
1650 #            error "DocView requires wxUSE_CHOICEDLG"
1651 #        else
1652 #            undef wxUSE_CHOICEDLG
1653 #            define wxUSE_CHOICEDLG 1
1654 #        endif
1655 #   endif
1656 
1657 #   if !wxUSE_STREAMS && !wxUSE_STD_IOSTREAM
1658 #        ifdef wxABORT_ON_CONFIG_ERROR
1659 #            error "DocView requires wxUSE_STREAMS or wxUSE_STD_IOSTREAM"
1660 #        else
1661 #            undef wxUSE_STREAMS
1662 #            define wxUSE_STREAMS 1
1663 #        endif
1664 #   endif
1665 #endif /* wxUSE_DOC_VIEW_ARCHITECTURE */
1666 
1667 #if wxUSE_PRINTING_ARCHITECTURE
1668 #   if !wxUSE_COMBOBOX
1669 #       ifdef wxABORT_ON_CONFIG_ERROR
1670 #           error "Print dialog requires wxUSE_COMBOBOX"
1671 #       else
1672 #           undef wxUSE_COMBOBOX
1673 #           define wxUSE_COMBOBOX 1
1674 #       endif
1675 #   endif
1676 #endif /* wxUSE_PRINTING_ARCHITECTURE */
1677 
1678 #if wxUSE_MDI_ARCHITECTURE
1679 #   if !wxUSE_MDI
1680 #        ifdef wxABORT_ON_CONFIG_ERROR
1681 #            error "MDI requires wxUSE_MDI"
1682 #        else
1683 #            undef wxUSE_MDI
1684 #            define wxUSE_MDI 1
1685 #        endif
1686 #   endif
1687 
1688 #   if !wxUSE_DOC_VIEW_ARCHITECTURE
1689 #        ifdef wxABORT_ON_CONFIG_ERROR
1690 #            error "wxUSE_MDI_ARCHITECTURE requires wxUSE_DOC_VIEW_ARCHITECTURE"
1691 #        else
1692 #            undef wxUSE_DOC_VIEW_ARCHITECTURE
1693 #            define wxUSE_DOC_VIEW_ARCHITECTURE 1
1694 #        endif
1695 #   endif
1696 #endif /* wxUSE_MDI_ARCHITECTURE */
1697 
1698 #if !wxUSE_FILEDLG
1699 #   if wxUSE_DOC_VIEW_ARCHITECTURE || wxUSE_WXHTML_HELP
1700 #       ifdef wxABORT_ON_CONFIG_ERROR
1701 #           error "wxUSE_FILEDLG is required by wxUSE_DOC_VIEW_ARCHITECTURE and wxUSE_WXHTML_HELP!"
1702 #       else
1703 #           undef wxUSE_FILEDLG
1704 #           define wxUSE_FILEDLG 1
1705 #       endif
1706 #   endif
1707 #endif /* wxUSE_FILEDLG */
1708 
1709 #if !wxUSE_GAUGE || !wxUSE_BUTTON
1710 #   if wxUSE_PROGRESSDLG && !defined(__WXPALMOS__)
1711 #       ifdef wxABORT_ON_CONFIG_ERROR
1712 #           error "Generic progress dialog requires wxUSE_GAUGE and wxUSE_BUTTON"
1713 #       else
1714 #           undef wxUSE_GAUGE
1715 #           undef wxUSE_BUTTON
1716 #           define wxUSE_GAUGE 1
1717 #           define wxUSE_BUTTON 1
1718 #       endif
1719 #   endif
1720 #endif /* !wxUSE_GAUGE */
1721 
1722 #if !wxUSE_BUTTON
1723 #   if wxUSE_FONTDLG || \
1724        wxUSE_FILEDLG || \
1725        wxUSE_CHOICEDLG || \
1726        wxUSE_NUMBERDLG || \
1727        wxUSE_TEXTDLG || \
1728        wxUSE_DIRDLG || \
1729        wxUSE_STARTUP_TIPS || \
1730        wxUSE_WIZARDDLG
1731 #       ifdef wxABORT_ON_CONFIG_ERROR
1732 #           error "Common and generic dialogs require wxUSE_BUTTON"
1733 #       else
1734 #           undef wxUSE_BUTTON
1735 #           define wxUSE_BUTTON 1
1736 #       endif
1737 #   endif
1738 #endif /* !wxUSE_BUTTON */
1739 
1740 #if !wxUSE_TOOLBAR
1741 #   if wxUSE_TOOLBAR_NATIVE
1742 #        ifdef wxABORT_ON_CONFIG_ERROR
1743 #            error "wxUSE_TOOLBAR is set to 0 but wxUSE_TOOLBAR_NATIVE is set to 1"
1744 #        else
1745 #            undef wxUSE_TOOLBAR_NATIVE
1746 #            define wxUSE_TOOLBAR_NATIVE 0
1747 #        endif
1748 #   endif
1749 #endif
1750 
1751 #if !wxUSE_IMAGLIST
1752 #   if wxUSE_TREECTRL || wxUSE_NOTEBOOK || wxUSE_LISTCTRL
1753 #       ifdef wxABORT_ON_CONFIG_ERROR
1754 #           error "wxImageList must be compiled as well"
1755 #       else
1756 #           undef wxUSE_IMAGLIST
1757 #           define wxUSE_IMAGLIST 1
1758 #       endif
1759 #   endif
1760 #endif /* !wxUSE_IMAGLIST */
1761 
1762 #if !wxUSE_MSGDLG
1763 #   ifdef wxABORT_ON_CONFIG_ERROR
1764         /* FIXME: should compile without it, of course, but doesn't */
1765 #       error "wxMessageBox is always needed"
1766 #   else
1767 #       undef wxUSE_MSGDLG
1768 #       define wxUSE_MSGDLG 1
1769 #   endif
1770 #endif
1771 
1772 #if wxUSE_RADIOBOX
1773 #   if !wxUSE_RADIOBTN
1774 #        ifdef wxABORT_ON_CONFIG_ERROR
1775 #            error "wxUSE_RADIOBOX requires wxUSE_RADIOBTN"
1776 #        else
1777 #            undef wxUSE_RADIOBTN
1778 #            define wxUSE_RADIOBTN 1
1779 #        endif
1780 #   endif
1781 #   if !wxUSE_STATBOX && !defined(__WXPALMOS__)
1782 #        ifdef wxABORT_ON_CONFIG_ERROR
1783 #            error "wxUSE_RADIOBOX requires wxUSE_STATBOX"
1784 #        else
1785 #            undef wxUSE_STATBOX
1786 #            define wxUSE_STATBOX 1
1787 #        endif
1788 #   endif
1789 #endif /* wxUSE_RADIOBOX */
1790 
1791 #if wxUSE_LOGWINDOW
1792 #    if !wxUSE_TEXTCTRL
1793 #        ifdef wxABORT_ON_CONFIG_ERROR
1794 #            error "wxUSE_LOGWINDOW requires wxUSE_TEXTCTRL"
1795 #        else
1796 #            undef wxUSE_TEXTCTRL
1797 #            define wxUSE_TEXTCTRL 1
1798 #        endif
1799 #    endif
1800 #endif /* wxUSE_LOGWINDOW */
1801 
1802 #if wxUSE_LOG_DIALOG
1803 #    if !wxUSE_LISTCTRL || !wxUSE_BUTTON
1804 #        ifdef wxABORT_ON_CONFIG_ERROR
1805 #            error "wxUSE_LOG_DIALOG requires wxUSE_LISTCTRL and wxUSE_BUTTON"
1806 #        else
1807 #            undef wxUSE_LISTCTRL
1808 #            define wxUSE_LISTCTRL 1
1809 #            undef wxUSE_BUTTON
1810 #            define wxUSE_BUTTON 1
1811 #        endif
1812 #    endif
1813 #endif /* wxUSE_LOG_DIALOG */
1814 
1815 #if wxUSE_CLIPBOARD && !wxUSE_DATAOBJ
1816 #   ifdef wxABORT_ON_CONFIG_ERROR
1817 #       error "wxClipboard requires wxDataObject"
1818 #   else
1819 #       undef wxUSE_DATAOBJ
1820 #       define wxUSE_DATAOBJ 1
1821 #   endif
1822 #endif /* wxUSE_CLIPBOARD */
1823 
1824 #if wxUSE_WX_RESOURCES && !wxUSE_PROLOGIO
1825 #   ifdef wxABORT_ON_CONFIG_ERROR
1826 #       error "wxr resources require PrologIO"
1827 #   else
1828 #       undef wxUSE_PROLOGIO
1829 #       define wxUSE_PROLOGIO 1
1830 #   endif
1831 #endif /* wxUSE_WX_RESOURCES */
1832 
1833 #if wxUSE_XRC && !wxUSE_XML
1834 #   ifdef wxABORT_ON_CONFIG_ERROR
1835 #       error "wxUSE_XRC requires wxUSE_XML"
1836 #   else
1837 #       undef wxUSE_XRC
1838 #       define wxUSE_XRC 0
1839 #   endif
1840 #endif /* wxUSE_XRC */
1841 
1842 #if wxUSE_SOCKETS && !wxUSE_STOPWATCH
1843 #   ifdef wxABORT_ON_CONFIG_ERROR
1844 #       error "wxUSE_SOCKETS requires wxUSE_STOPWATCH"
1845 #   else
1846 #       undef wxUSE_SOCKETS
1847 #       define wxUSE_SOCKETS 0
1848 #   endif
1849 #endif /* wxUSE_SOCKETS */
1850 
1851 #if !wxUSE_VARIANT
1852 #   if wxUSE_DATAVIEWCTRL
1853 #       ifdef wxABORT_ON_CONFIG_ERROR
1854 #           error "wxDataViewCtrl requires wxVariant"
1855 #       else
1856 #           undef wxUSE_DATAVIEWCTRL
1857 #           define wxUSE_DATAVIEWCTRL 0
1858 #       endif
1859 #   endif
1860 
1861 #   if wxUSE_ODBC
1862 #       ifdef wxABORT_ON_CONFIG_ERROR
1863 #           error "wxUSE_ODBC requires wxVariant"
1864 #       else
1865 #           undef wxUSE_ODBC
1866 #           define wxUSE_ODBC 0
1867 #       endif
1868 #   endif
1869 #endif /* wxUSE_VARIANT */
1870 
1871 #endif /* wxUSE_GUI */
1872