disable positional printf params for now as there are problems with our vsnprintf...
[wxWidgets.git] / configure.in
1 dnl Process this file with autoconf to produce a configure script.
2 AC_REVISION($Id$)dnl
3
4 AC_PREREQ(2.58)
5
6 dnl ---------------------------------------------------------------------------
7 dnl
8 dnl Top-level configure.in for wxWidgets by Robert Roebling, Phil Blecker,
9 dnl Vadim Zeitlin and Ron Lee
10 dnl
11 dnl This script is under the wxWidgets licence.
12 dnl
13 dnl Version: $Id$
14 dnl ---------------------------------------------------------------------------
15
16 dnl ---------------------------------------------------------------------------
17 dnl initialization
18 dnl ---------------------------------------------------------------------------
19
20 AC_INIT([wxWidgets], [2.7.0], [wx-dev@lists.wxwidgets.org])
21
22 dnl the file passed to AC_CONFIG_SRCDIR should be specific to our package
23 AC_CONFIG_SRCDIR([wx-config.in])
24
25 dnl sets build, host, target variables and the same with _alias
26 AC_CANONICAL_BUILD
27 AC_CANONICAL_HOST
28 AC_CANONICAL_TARGET
29
30
31 dnl When making releases do:
32 dnl
33 dnl wx_release_number += 1
34
35 wx_major_version_number=2
36 wx_minor_version_number=7
37 wx_release_number=0
38 wx_subrelease_number=0
39
40 WX_RELEASE=$wx_major_version_number.$wx_minor_version_number
41 WX_VERSION=$WX_RELEASE.$wx_release_number
42 WX_SUBVERSION=$WX_VERSION.$wx_subrelease_number
43
44 WX_MSW_VERSION=$wx_major_version_number$wx_minor_version_number$wx_release_number
45
46
47
48 dnl ------------------------------------------------------------------------
49 dnl Check platform (host system)
50 dnl ------------------------------------------------------------------------
51
52 dnl OS (assume Unix)
53 USE_UNIX=1
54 USE_OS2=0
55 USE_WIN32=0
56 USE_DOS=0
57 USE_BEOS=0
58 USE_MAC=0
59
60 dnl Unix kind
61 USE_AIX=
62 USE_BSD=                            dnl any BSD
63 USE_DARWIN=                         dnl a.k.a. Mac OS X
64 USE_FREEBSD=
65 USE_GNU=                            dnl GNU/Hurd
66 USE_HPUX=
67 USE_LINUX=
68 USE_NETBSD=
69 USE_OPENBSD=
70 USE_OSF=                            dnl OSF/1 (obsolete?)
71 USE_SGI=
72 USE_SOLARIS=                        dnl Solaris ("SunOS" >= 5)
73 USE_SUN=                            dnl SunOS or Solaris
74 USE_SUNOS=                          dnl old/real SunOS (obsolete)
75 USE_SVR4=                           dnl SysV R4
76 USE_SYSV=                           dnl any System V
77 USE_VMS=
78 USE_ULTRIX=
79 USE_UNIXWARE=
80
81 dnl hardware platform
82 USE_ALPHA=
83
84 dnl on some platforms xxx_r() functions are declared inside "#ifdef
85 dnl _REENTRANT" and it's easier to just define this symbol for these platforms
86 dnl than checking it during run-time
87 NEEDS_D_REENTRANT_FOR_R_FUNCS=0
88
89 dnl the list of all available toolkits
90 dnl
91 dnl update NUM_TOOLKITS calculation below when adding a new toolkit here!
92 ALL_TOOLKITS="COCOA GTK MAC MGL MICROWIN MOTIF MSW PM X11"
93
94 dnl NB: these wxUSE_XXX constants have value of 0 or 1 unlike all the other ones
95 dnl     which are either yes or no
96 DEFAULT_wxUSE_COCOA=0
97 DEFAULT_wxUSE_GTK=0
98 DEFAULT_wxUSE_MAC=0
99 DEFAULT_wxUSE_MGL=0
100 DEFAULT_wxUSE_MICROWIN=0
101 DEFAULT_wxUSE_MOTIF=0
102 DEFAULT_wxUSE_MSW=0
103 DEFAULT_wxUSE_PM=0
104 DEFAULT_wxUSE_X11=0
105
106 dnl these are the values which are really default for the given platform -
107 dnl they're not cached and are only used if no --with-toolkit was given *and*
108 dnl nothing was found in the cache
109 DEFAULT_DEFAULT_wxUSE_COCOA=0
110 DEFAULT_DEFAULT_wxUSE_GTK=0
111 DEFAULT_DEFAULT_wxUSE_MAC=0
112 DEFAULT_DEFAULT_wxUSE_MGL=0
113 DEFAULT_DEFAULT_wxUSE_MICROWIN=0
114 DEFAULT_DEFAULT_wxUSE_MOTIF=0
115 DEFAULT_DEFAULT_wxUSE_MSW=0
116 DEFAULT_DEFAULT_wxUSE_PM=0
117 DEFAULT_DEFAULT_wxUSE_X11=0
118
119 PROGRAM_EXT=
120 SO_SUFFIX=so
121 SAMPLES_RPATH_FLAG=
122 SAMPLES_RPATH_POSTLINK=
123
124 DEFAULT_STD_FLAG=yes
125
126 dnl to support a new system, you need to add its canonical name (as determined
127 dnl by config.sub or specified by the configure command line) to this "case"
128 dnl and also define the shared library flags below - search for
129 dnl SHARED_LIB_SETUP to find the exact place
130 case "${host}" in
131   *-hp-hpux* )
132     USE_HPUX=1
133     DEFAULT_DEFAULT_wxUSE_MOTIF=1
134     NEEDS_D_REENTRANT_FOR_R_FUNCS=1
135     SO_SUFFIX=sl
136     AC_DEFINE(__HPUX__)
137
138     dnl many standard declarations in HP-UX headers are only included if either
139     dnl _HPUX_SOURCE is defined, see stdsyms(5)
140     CPPFLAGS="-D_HPUX_SOURCE $CPPFLAGS"
141   ;;
142   *-*-linux* )
143     USE_LINUX=1
144     AC_DEFINE(__LINUX__)
145     TMP=`uname -m`
146     if test "x$TMP" = "xalpha"; then
147       USE_ALPHA=1
148       AC_DEFINE(__ALPHA__)
149     fi
150     DEFAULT_DEFAULT_wxUSE_GTK=1
151   ;;
152   *-*-gnu* | *-*-k*bsd*-gnu )
153     USE_GNU=1
154     TMP=`uname -m`
155     if test "x$TMP" = "xalpha"; then
156       USE_ALPHA=1
157       AC_DEFINE(__ALPHA__)
158     fi
159     DEFAULT_DEFAULT_wxUSE_GTK=1
160   ;;
161   *-*-irix5* | *-*-irix6* )
162     USE_SGI=1
163     USE_SVR4=1
164     AC_DEFINE(__SGI__)
165     AC_DEFINE(__SVR4__)
166     DEFAULT_DEFAULT_wxUSE_MOTIF=1
167   ;;
168   *-*-solaris2* )
169     USE_SUN=1
170     USE_SOLARIS=1
171     USE_SVR4=1
172     AC_DEFINE(__SUN__)
173     AC_DEFINE(__SOLARIS__)
174     AC_DEFINE(__SVR4__)
175     DEFAULT_DEFAULT_wxUSE_MOTIF=1
176     NEEDS_D_REENTRANT_FOR_R_FUNCS=1
177   ;;
178   *-*-sunos4* )
179     USE_SUN=1
180     USE_SUNOS=1
181     USE_BSD=1
182     AC_DEFINE(__SUN__)
183     AC_DEFINE(__SUNOS__)
184     AC_DEFINE(__BSD__)
185     DEFAULT_DEFAULT_wxUSE_MOTIF=1
186   ;;
187   *-*-freebsd*)
188     USE_BSD=1
189     USE_FREEBSD=1
190     AC_DEFINE(__FREEBSD__)
191     AC_DEFINE(__BSD__)
192     DEFAULT_DEFAULT_wxUSE_GTK=1
193   ;;
194   *-*-openbsd*|*-*-mirbsd*)
195     USE_BSD=1
196     USE_OPENBSD=1
197     AC_DEFINE(__OPENBSD__)
198     AC_DEFINE(__BSD__)
199     DEFAULT_DEFAULT_wxUSE_GTK=1
200   ;;
201   *-*-netbsd*)
202     USE_BSD=1
203     USE_NETBSD=1
204     AC_DEFINE(__NETBSD__)
205     AC_DEFINE(__BSD__)
206     DEFAULT_DEFAULT_wxUSE_GTK=1
207     NEEDS_D_REENTRANT_FOR_R_FUNCS=1
208
209     dnl some standard declarations in NetBSD headers are only included if
210     dnl _NETBSD_SOURCE and _LIBC are defined, e.g. getservbyname_r in netdb.h
211     CPPFLAGS="-D_NETBSD_SOURCE -D_LIBC $CPPFLAGS"
212   ;;
213   *-*-osf* )
214     USE_ALPHA=1
215     USE_OSF=1
216     AC_DEFINE(__ALPHA__)
217     AC_DEFINE(__OSF__)
218     DEFAULT_DEFAULT_wxUSE_MOTIF=1
219     NEEDS_D_REENTRANT_FOR_R_FUNCS=1
220   ;;
221   *-*-dgux5* )
222     USE_ALPHA=1
223     USE_SVR4=1
224     AC_DEFINE(__ALPHA__)
225     AC_DEFINE(__SVR4__)
226     DEFAULT_DEFAULT_wxUSE_MOTIF=1
227   ;;
228   *-*-sysv5* )
229     USE_SYSV=1
230     USE_SVR4=1
231     AC_DEFINE(__SYSV__)
232     AC_DEFINE(__SVR4__)
233     DEFAULT_DEFAULT_wxUSE_MOTIF=1
234   ;;
235   *-*-aix* )
236     USE_AIX=1
237     USE_SYSV=1
238     USE_SVR4=1
239     dnl quoting from http://www-1.ibm.com/servers/esdd/articles/gnu.html:
240     dnl
241     dnl     Both archive libraries and shared libraries on AIX have an .a
242     dnl     extension. This will explain why you can't link with an .so and
243     dnl     why it works with the name changed to .a.
244     SO_SUFFIX=a
245     AC_DEFINE(__AIX__)
246     AC_DEFINE(__SYSV__)
247     AC_DEFINE(__SVR4__)
248     DEFAULT_DEFAULT_wxUSE_MOTIF=1
249   ;;
250
251   *-*-*UnixWare*)
252     USE_SYSV=1
253     USE_SVR4=1
254     USE_UNIXWARE=1
255     AC_DEFINE(__UNIXWARE__)
256   ;;
257
258   *-*-cygwin* | *-*-mingw32* )
259     dnl MBN: some of the defines have been moved after toolkit detection
260     dnl      because for wxMotif/wxGTK/wxX11 to build on Cygwin
261     dnl      USE_UNIX  must be set and not USE_WIN32
262     SO_SUFFIX=dll
263     PROGRAM_EXT=".exe"
264     DEFAULT_DEFAULT_wxUSE_MSW=1
265     DEFAULT_STD_FLAG=no
266   ;;
267
268   *-pc-msdosdjgpp )
269     USE_UNIX=0
270     USE_DOS=1
271     AC_DEFINE(__DOS__)
272     PROGRAM_EXT=".exe"
273     DEFAULT_DEFAULT_wxUSE_MGL=1
274   ;;
275
276   *-pc-os2_emx | *-pc-os2-emx )
277     AC_DEFINE(__EMX__)
278     USE_OS2=1
279     AC_DEFINE(__OS2__)
280     PROGRAM_EXT=".exe"
281     DEFAULT_DEFAULT_wxUSE_PM=1
282     dnl "c++" wrapper is not always available, so always use plain gcc.
283     CXX=gcc
284     LDFLAGS="$LDFLAGS -Zcrtdll"
285     dnl
286     dnl Some special code that's automatically added by autoconf-2.57 for OS/2
287     dnl and hopefully also by autoconf-2.58 and newer on all other platforms.
288     dnl For now however, we still need it to make sure the configure script
289     dnl works on OS/2 no matter what platform it is generated on.
290     ac_executable_extensions=".exe"
291     export ac_executable_extensions
292     dnl This strange code is necessary to deal with handling of
293     dnl backslashes by ksh and pdksh's sh variant.
294     ac_save_IFS="$IFS"
295     IFS='\\'
296     ac_TEMP_PATH=
297     for ac_dir in $PATH; do
298       IFS=$ac_save_IFS
299       if test -z "$ac_TEMP_PATH"; then
300         ac_TEMP_PATH="$ac_dir"
301       else
302         ac_TEMP_PATH="$ac_TEMP_PATH/$ac_dir"
303       fi
304     done
305     export PATH="$ac_TEMP_PATH"
306     unset ac_TEMP_PATH
307     DEFAULT_STD_FLAG=no
308   ;;
309
310   *-*-darwin* )
311     dnl Darwin based distributions (including Mac OS X)
312     USE_BSD=1
313     USE_DARWIN=1
314     SO_SUFFIX=dylib
315     AC_DEFINE(__BSD__)
316     AC_DEFINE(__DARWIN__)
317     AC_DEFINE(TARGET_CARBON)
318     DEFAULT_DEFAULT_wxUSE_MAC=1
319     DEFAULT_STD_FLAG=no
320   ;;
321   powerpc-apple-macos* )
322     dnl Classic Mac OS (< X)
323     USE_UNIX=0
324     dnl For some reason the test that should be cross-compiler capable fails
325     dnl However, there is no doubt that MacOS PowerPC is big endian.
326     ac_cv_c_bigendian=yes
327     SO_SUFFIX=shlib
328     dnl AC_DEFINE(TARGET_CARBON)
329     dnl platform.h needs TARGET_CARBON before setup.h, we'll add it to CPPFLAGS
330     DEFAULT_DEFAULT_wxUSE_MAC=1
331     DEFAULT_STD_FLAG=no
332   ;;
333
334   *-*-beos* )
335     dnl leave USE_UNIX on - BeOS is sufficiently Unix-like for this
336     USE_BEOS=1
337     AC_DEFINE(__BEOS__)
338   ;;
339
340   *)
341     AC_MSG_WARN([*** System type ${host} is unknown, assuming generic Unix and continuing nevertheless.])
342     AC_MSG_WARN([*** Please report the build results to wx-dev@lists.wxwidgets.org.])
343 esac
344
345 dnl ---------------------------------------------------------------------------
346 dnl command line options for configure
347 dnl ---------------------------------------------------------------------------
348
349 dnl the default values for all options - we collect them all here to simplify
350 dnl modification of the default values (for example, if the defaults for some
351 dnl platform should be changed, it can be done here too)
352 dnl
353 dnl NB: see also DEFAULT_wxUSE<toolkit> variables defined above
354
355 WX_ARG_CACHE_INIT
356
357 dnl useful to test the compilation with minimum options, define as 0 for normal
358 dnl usage
359 DEBUG_CONFIGURE=0
360 if test $DEBUG_CONFIGURE = 1; then
361   DEFAULT_wxUSE_UNIVERSAL=no
362   DEFAULT_wxUSE_STL=no
363
364   DEFAULT_wxUSE_NANOX=no
365
366   DEFAULT_wxUSE_THREADS=yes
367
368   DEFAULT_wxUSE_SHARED=yes
369   DEFAULT_wxUSE_OPTIMISE=no
370   DEFAULT_wxUSE_PROFILE=no
371   DEFAULT_wxUSE_NO_DEPS=no
372   DEFAULT_wxUSE_NO_RTTI=no
373   DEFAULT_wxUSE_NO_EXCEPTIONS=no
374   DEFAULT_wxUSE_UNIVERSAL_BINARY=no
375   DEFAULT_wxUSE_RPATH=yes
376   DEFAULT_wxUSE_PERMISSIVE=no
377   DEFAULT_wxUSE_DEBUG_FLAG=yes
378   DEFAULT_wxUSE_DEBUG_INFO=yes
379   DEFAULT_wxUSE_DEBUG_GDB=yes
380   DEFAULT_wxUSE_MEM_TRACING=no
381   DEFAULT_wxUSE_DEBUG_CONTEXT=no
382   DEFAULT_wxUSE_DMALLOC=no
383   DEFAULT_wxUSE_APPLE_IEEE=no
384
385   DEFAULT_wxUSE_EXCEPTIONS=no
386   DEFAULT_wxUSE_LOG=yes
387   DEFAULT_wxUSE_LOGWINDOW=no
388   DEFAULT_wxUSE_LOGGUI=no
389   DEFAULT_wxUSE_LOGDIALOG=no
390
391   DEFAULT_wxUSE_GUI=yes
392   DEFAULT_wxUSE_CONTROLS=no
393
394   DEFAULT_wxUSE_REGEX=no
395   DEFAULT_wxUSE_XML=no
396   DEFAULT_wxUSE_EXPAT=no
397   DEFAULT_wxUSE_ZLIB=no
398   DEFAULT_wxUSE_LIBPNG=no
399   DEFAULT_wxUSE_LIBJPEG=no
400   DEFAULT_wxUSE_LIBTIFF=no
401   DEFAULT_wxUSE_LIBXPM=no
402   DEFAULT_wxUSE_LIBMSPACK=no
403   DEFAULT_wxUSE_LIBSDL=no
404   DEFAULT_wxUSE_LIBGNOMEPRINT=no
405   DEFAULT_wxUSE_LIBGNOMEVFS=no
406   DEFAULT_wxUSE_LIBHILDON=no
407   DEFAULT_wxUSE_ODBC=no
408   DEFAULT_wxUSE_OPENGL=no
409
410   DEFAULT_wxUSE_ON_FATAL_EXCEPTION=no
411   DEFAULT_wxUSE_STACKWALKER=no
412   DEFAULT_wxUSE_DEBUGREPORT=no
413   DEFAULT_wxUSE_SNGLINST_CHECKER=no
414   DEFAULT_wxUSE_STD_IOSTREAM=no
415   DEFAULT_wxUSE_STD_STRING=no
416   DEFAULT_wxUSE_CMDLINE_PARSER=no
417   DEFAULT_wxUSE_DATETIME=no
418   DEFAULT_wxUSE_TIMER=no
419   DEFAULT_wxUSE_STOPWATCH=no
420   DEFAULT_wxUSE_FILE=no
421   DEFAULT_wxUSE_FFILE=no
422   DEFAULT_wxUSE_STDPATHS=no
423   DEFAULT_wxUSE_TEXTBUFFER=no
424   DEFAULT_wxUSE_TEXTFILE=no
425   DEFAULT_wxUSE_SOUND=no
426   DEFAULT_wxUSE_MEDIACTRL=no
427   DEFAULT_wxUSE_GSTREAMER8=no
428   DEFAULT_wxUSE_PRINTF_POS_PARAMS=no
429   DEFAULT_wxUSE_INTL=no
430   DEFAULT_wxUSE_CONFIG=no
431   DEFAULT_wxUSE_FONTMAP=no
432   DEFAULT_wxUSE_STREAMS=no
433   DEFAULT_wxUSE_SOCKETS=no
434   DEFAULT_wxUSE_OLE=no
435   DEFAULT_wxUSE_DATAOBJ=no
436   DEFAULT_wxUSE_DIALUP_MANAGER=no
437   DEFAULT_wxUSE_JOYSTICK=no
438   DEFAULT_wxUSE_DYNLIB_CLASS=no
439   DEFAULT_wxUSE_DYNAMIC_LOADER=no
440   DEFAULT_wxUSE_LONGLONG=no
441   DEFAULT_wxUSE_GEOMETRY=no
442
443   DEFAULT_wxUSE_AFM_FOR_POSTSCRIPT=no
444   DEFAULT_wxUSE_NORMALIZED_PS_FONTS=no
445   DEFAULT_wxUSE_POSTSCRIPT=no
446
447   DEFAULT_wxUSE_CLIPBOARD=no
448   DEFAULT_wxUSE_TOOLTIPS=no
449   DEFAULT_wxUSE_DRAG_AND_DROP=no
450   DEFAULT_wxUSE_DRAGIMAGE=no
451   DEFAULT_wxUSE_SPLINES=no
452   DEFAULT_wxUSE_MOUSEWHEEL=no
453
454   DEFAULT_wxUSE_MDI=no
455   DEFAULT_wxUSE_MDI_ARCHITECTURE=no
456   DEFAULT_wxUSE_DOC_VIEW_ARCHITECTURE=no
457   DEFAULT_wxUSE_PRINTING_ARCHITECTURE=no
458
459   DEFAULT_wxUSE_RESOURCES=no
460   DEFAULT_wxUSE_CONSTRAINTS=no
461   DEFAULT_wxUSE_IPC=no
462   DEFAULT_wxUSE_HELP=no
463   DEFAULT_wxUSE_MS_HTML_HELP=no
464   DEFAULT_wxUSE_WXHTML_HELP=no
465   DEFAULT_wxUSE_TREELAYOUT=no
466   DEFAULT_wxUSE_METAFILE=no
467   DEFAULT_wxUSE_MIMETYPE=no
468   DEFAULT_wxUSE_SYSTEM_OPTIONS=no
469   DEFAULT_wxUSE_PROTOCOL=no
470   DEFAULT_wxUSE_PROTOCOL_HTTP=no
471   DEFAULT_wxUSE_PROTOCOL_FTP=no
472   DEFAULT_wxUSE_PROTOCOL_FILE=no
473   DEFAULT_wxUSE_URL=no
474
475   DEFAULT_wxUSE_COMMONDLGS=no
476   DEFAULT_wxUSE_CHOICEDLG=no
477   DEFAULT_wxUSE_COLOURDLG=no
478   DEFAULT_wxUSE_DIRDLG=no
479   DEFAULT_wxUSE_FILEDLG=no
480   DEFAULT_wxUSE_FINDREPLDLG=no
481   DEFAULT_wxUSE_FONTDLG=no
482   DEFAULT_wxUSE_MSGDLG=no
483   DEFAULT_wxUSE_NUMBERDLG=no
484   DEFAULT_wxUSE_TEXTDLG=no
485   DEFAULT_wxUSE_SPLASH=no
486   DEFAULT_wxUSE_STARTUP_TIPS=no
487   DEFAULT_wxUSE_PROGRESSDLG=no
488   DEFAULT_wxUSE_WIZARDDLG=no
489
490   DEFAULT_wxUSE_MENUS=no
491   DEFAULT_wxUSE_MINIFRAME=no
492   DEFAULT_wxUSE_HTML=no
493   DEFAULT_wxUSE_RICHTEXT=no
494   DEFAULT_wxUSE_XRC=no
495   DEFAULT_wxUSE_AUI=no
496   DEFAULT_wxUSE_WEBKIT=no
497   DEFAULT_wxUSE_FILESYSTEM=no
498   DEFAULT_wxUSE_FS_INET=no
499   DEFAULT_wxUSE_FS_ZIP=no
500   DEFAULT_wxUSE_BUSYINFO=no
501   DEFAULT_wxUSE_ARCHIVE_STREAMS=no
502   DEFAULT_wxUSE_ZIPSTREAM=no
503   DEFAULT_wxUSE_VALIDATORS=no
504
505   DEFAULT_wxUSE_ACCEL=no
506   DEFAULT_wxUSE_BUTTON=no
507   DEFAULT_wxUSE_BMPBUTTON=no
508   DEFAULT_wxUSE_CALCTRL=no
509   DEFAULT_wxUSE_CARET=no
510   DEFAULT_wxUSE_CHECKBOX=no
511   DEFAULT_wxUSE_CHECKLST=no
512   DEFAULT_wxUSE_CHOICE=no
513   DEFAULT_wxUSE_CHOICEBOOK=no
514   DEFAULT_wxUSE_COLOURPICKERCTRL=no
515   DEFAULT_wxUSE_COMBOBOX=no
516   DEFAULT_wxUSE_COMBOCTRL=no
517   DEFAULT_wxUSE_DATEPICKCTRL=no
518   DEFAULT_wxUSE_DISPLAY=no
519   DEFAULT_wxUSE_DIRPICKERCTRL=no
520   DEFAULT_wxUSE_FILEPICKERCTRL=no
521   DEFAULT_wxUSE_FONTPICKERCTRL=no
522   DEFAULT_wxUSE_GAUGE=no
523   DEFAULT_wxUSE_GRID=no
524   DEFAULT_wxUSE_HYPERLINKCTRL=no
525   DEFAULT_wxUSE_DATAVIEWCTRL=no
526   DEFAULT_wxUSE_IMAGLIST=no
527   DEFAULT_wxUSE_LISTBOOK=no
528   DEFAULT_wxUSE_LISTBOX=no
529   DEFAULT_wxUSE_LISTCTRL=no
530   DEFAULT_wxUSE_NOTEBOOK=no
531   DEFAULT_wxUSE_ODCOMBOBOX=no
532   DEFAULT_wxUSE_RADIOBOX=no
533   DEFAULT_wxUSE_RADIOBTN=no
534   DEFAULT_wxUSE_SASH=no
535   DEFAULT_wxUSE_SCROLLBAR=no
536   DEFAULT_wxUSE_SLIDER=no
537   DEFAULT_wxUSE_SPINBTN=no
538   DEFAULT_wxUSE_SPINCTRL=no
539   DEFAULT_wxUSE_SPLITTER=no
540   DEFAULT_wxUSE_STATBMP=no
541   DEFAULT_wxUSE_STATBOX=no
542   DEFAULT_wxUSE_STATLINE=no
543   DEFAULT_wxUSE_STATTEXT=no
544   DEFAULT_wxUSE_STATUSBAR=yes
545   DEFAULT_wxUSE_TAB_DIALOG=no
546   DEFAULT_wxUSE_TEXTCTRL=no
547   DEFAULT_wxUSE_TOGGLEBTN=no
548   DEFAULT_wxUSE_TOOLBAR=no
549   DEFAULT_wxUSE_TOOLBAR_NATIVE=no
550   DEFAULT_wxUSE_TOOLBAR_SIMPLE=no
551   DEFAULT_wxUSE_TREEBOOK=no
552   DEFAULT_wxUSE_TOOLBOOK=no
553   DEFAULT_wxUSE_TREECTRL=no
554   DEFAULT_wxUSE_POPUPWIN=no
555   DEFAULT_wxUSE_TIPWINDOW=no
556
557   DEFAULT_wxUSE_UNICODE=no
558   DEFAULT_wxUSE_UNICODE_MSLU=no
559   DEFAULT_wxUSE_WCSRTOMBS=no
560
561   DEFAULT_wxUSE_PALETTE=no
562   DEFAULT_wxUSE_IMAGE=no
563   DEFAULT_wxUSE_GIF=no
564   DEFAULT_wxUSE_PCX=no
565   DEFAULT_wxUSE_PNM=no
566   DEFAULT_wxUSE_IFF=no
567   DEFAULT_wxUSE_XPM=no
568   DEFAULT_wxUSE_ICO_CUR=no
569   DEFAULT_wxUSE_ACCESSIBILITY=no
570
571   DEFAULT_wxUSE_MONOLITHIC=no
572   DEFAULT_wxUSE_PLUGINS=no
573   DEFAULT_wxUSE_OFFICIAL_BUILD=no
574 else
575   DEFAULT_wxUSE_UNIVERSAL=no
576   DEFAULT_wxUSE_STL=no
577
578   DEFAULT_wxUSE_NANOX=no
579
580   DEFAULT_wxUSE_THREADS=yes
581
582   DEFAULT_wxUSE_SHARED=yes
583   DEFAULT_wxUSE_OPTIMISE=yes
584   DEFAULT_wxUSE_PROFILE=no
585   DEFAULT_wxUSE_NO_DEPS=no
586   DEFAULT_wxUSE_NO_RTTI=no
587   DEFAULT_wxUSE_NO_EXCEPTIONS=no
588   DEFAULT_wxUSE_UNIVERSAL_BINARY=no
589   DEFAULT_wxUSE_RPATH=yes
590   DEFAULT_wxUSE_PERMISSIVE=no
591   DEFAULT_wxUSE_DEBUG_FLAG=no
592   DEFAULT_wxUSE_DEBUG_INFO=no
593   DEFAULT_wxUSE_DEBUG_GDB=no
594   DEFAULT_wxUSE_MEM_TRACING=no
595   DEFAULT_wxUSE_DEBUG_CONTEXT=no
596   DEFAULT_wxUSE_DMALLOC=no
597   DEFAULT_wxUSE_APPLE_IEEE=yes
598
599   DEFAULT_wxUSE_EXCEPTIONS=yes
600   DEFAULT_wxUSE_LOG=yes
601   DEFAULT_wxUSE_LOGWINDOW=yes
602   DEFAULT_wxUSE_LOGGUI=yes
603   DEFAULT_wxUSE_LOGDIALOG=yes
604
605   DEFAULT_wxUSE_GUI=yes
606
607   DEFAULT_wxUSE_REGEX=yes
608   DEFAULT_wxUSE_XML=yes
609   DEFAULT_wxUSE_EXPAT=yes
610   DEFAULT_wxUSE_ZLIB=yes
611   DEFAULT_wxUSE_LIBPNG=yes
612   DEFAULT_wxUSE_LIBJPEG=yes
613   DEFAULT_wxUSE_LIBTIFF=yes
614   DEFAULT_wxUSE_LIBXPM=yes
615   DEFAULT_wxUSE_LIBMSPACK=yes
616   DEFAULT_wxUSE_LIBSDL=no
617   DEFAULT_wxUSE_LIBGNOMEPRINT=no
618   DEFAULT_wxUSE_LIBGNOMEVFS=no
619   DEFAULT_wxUSE_LIBHILDON=no
620   DEFAULT_wxUSE_ODBC=no
621   DEFAULT_wxUSE_OPENGL=no
622
623   DEFAULT_wxUSE_ON_FATAL_EXCEPTION=yes
624   DEFAULT_wxUSE_STACKWALKER=yes
625   DEFAULT_wxUSE_DEBUGREPORT=yes
626   DEFAULT_wxUSE_SNGLINST_CHECKER=yes
627   DEFAULT_wxUSE_STD_IOSTREAM=$DEFAULT_STD_FLAG
628   DEFAULT_wxUSE_STD_STRING=$DEFAULT_STD_FLAG
629   DEFAULT_wxUSE_CMDLINE_PARSER=yes
630   DEFAULT_wxUSE_DATETIME=yes
631   DEFAULT_wxUSE_TIMER=yes
632   DEFAULT_wxUSE_STOPWATCH=yes
633   DEFAULT_wxUSE_FILE=yes
634   DEFAULT_wxUSE_FFILE=yes
635   DEFAULT_wxUSE_STDPATHS=yes
636   DEFAULT_wxUSE_TEXTBUFFER=yes
637   DEFAULT_wxUSE_TEXTFILE=yes
638   DEFAULT_wxUSE_SOUND=yes
639   DEFAULT_wxUSE_MEDIACTRL=no
640   DEFAULT_wxUSE_GSTREAMER8=no
641   DEFAULT_wxUSE_PRINTF_POS_PARAMS=no
642   DEFAULT_wxUSE_INTL=yes
643   DEFAULT_wxUSE_CONFIG=yes
644   DEFAULT_wxUSE_FONTMAP=yes
645   DEFAULT_wxUSE_STREAMS=yes
646   DEFAULT_wxUSE_SOCKETS=yes
647   DEFAULT_wxUSE_OLE=yes
648   DEFAULT_wxUSE_DATAOBJ=yes
649   DEFAULT_wxUSE_DIALUP_MANAGER=yes
650   DEFAULT_wxUSE_JOYSTICK=yes
651   DEFAULT_wxUSE_DYNLIB_CLASS=yes
652   DEFAULT_wxUSE_DYNAMIC_LOADER=yes
653   DEFAULT_wxUSE_LONGLONG=yes
654   DEFAULT_wxUSE_GEOMETRY=yes
655
656   DEFAULT_wxUSE_AFM_FOR_POSTSCRIPT=yes
657   DEFAULT_wxUSE_NORMALIZED_PS_FONTS=yes
658   DEFAULT_wxUSE_POSTSCRIPT=yes
659
660   DEFAULT_wxUSE_CLIPBOARD=yes
661   DEFAULT_wxUSE_TOOLTIPS=yes
662   DEFAULT_wxUSE_DRAG_AND_DROP=yes
663   DEFAULT_wxUSE_DRAGIMAGE=yes
664   DEFAULT_wxUSE_SPLINES=yes
665   DEFAULT_wxUSE_MOUSEWHEEL=yes
666
667   DEFAULT_wxUSE_MDI=yes
668   DEFAULT_wxUSE_MDI_ARCHITECTURE=yes
669   DEFAULT_wxUSE_DOC_VIEW_ARCHITECTURE=yes
670   DEFAULT_wxUSE_PRINTING_ARCHITECTURE=yes
671
672   DEFAULT_wxUSE_RESOURCES=no
673   DEFAULT_wxUSE_CONSTRAINTS=yes
674   DEFAULT_wxUSE_IPC=yes
675   DEFAULT_wxUSE_HELP=yes
676   DEFAULT_wxUSE_MS_HTML_HELP=yes
677   DEFAULT_wxUSE_WXHTML_HELP=yes
678   DEFAULT_wxUSE_TREELAYOUT=yes
679   DEFAULT_wxUSE_METAFILE=yes
680   DEFAULT_wxUSE_MIMETYPE=yes
681   DEFAULT_wxUSE_SYSTEM_OPTIONS=yes
682   DEFAULT_wxUSE_PROTOCOL=yes
683   DEFAULT_wxUSE_PROTOCOL_HTTP=yes
684   DEFAULT_wxUSE_PROTOCOL_FTP=yes
685   DEFAULT_wxUSE_PROTOCOL_FILE=yes
686   DEFAULT_wxUSE_URL=yes
687
688   DEFAULT_wxUSE_COMMONDLGS=yes
689   DEFAULT_wxUSE_CHOICEDLG=yes
690   DEFAULT_wxUSE_COLOURDLG=yes
691   DEFAULT_wxUSE_DIRDLG=yes
692   DEFAULT_wxUSE_FILEDLG=yes
693   DEFAULT_wxUSE_FINDREPLDLG=yes
694   DEFAULT_wxUSE_FONTDLG=yes
695   DEFAULT_wxUSE_MSGDLG=yes
696   DEFAULT_wxUSE_NUMBERDLG=yes
697   DEFAULT_wxUSE_TEXTDLG=yes
698   DEFAULT_wxUSE_SPLASH=yes
699   DEFAULT_wxUSE_STARTUP_TIPS=yes
700   DEFAULT_wxUSE_PROGRESSDLG=yes
701   DEFAULT_wxUSE_WIZARDDLG=yes
702
703   DEFAULT_wxUSE_MENUS=yes
704   DEFAULT_wxUSE_MINIFRAME=yes
705   DEFAULT_wxUSE_HTML=yes
706   DEFAULT_wxUSE_RICHTEXT=yes
707   DEFAULT_wxUSE_XRC=yes
708   DEFAULT_wxUSE_AUI=yes
709   DEFAULT_wxUSE_WEBKIT=yes
710   DEFAULT_wxUSE_FILESYSTEM=yes
711   DEFAULT_wxUSE_FS_INET=yes
712   DEFAULT_wxUSE_FS_ZIP=yes
713   DEFAULT_wxUSE_BUSYINFO=yes
714   DEFAULT_wxUSE_ARCHIVE_STREAMS=yes
715   DEFAULT_wxUSE_ZIPSTREAM=yes
716   DEFAULT_wxUSE_VALIDATORS=yes
717
718   DEFAULT_wxUSE_ACCEL=yes
719   DEFAULT_wxUSE_BUTTON=yes
720   DEFAULT_wxUSE_BMPBUTTON=yes
721   DEFAULT_wxUSE_CALCTRL=yes
722   DEFAULT_wxUSE_CARET=yes
723   DEFAULT_wxUSE_CHECKBOX=yes
724   DEFAULT_wxUSE_CHECKLST=yes
725   DEFAULT_wxUSE_CHOICE=yes
726   DEFAULT_wxUSE_CHOICEBOOK=yes
727   DEFAULT_wxUSE_COLOURPICKERCTRL=yes
728   DEFAULT_wxUSE_COMBOBOX=yes
729   DEFAULT_wxUSE_COMBOCTRL=yes
730   DEFAULT_wxUSE_DATEPICKCTRL=yes
731   DEFAULT_wxUSE_DISPLAY=yes
732   DEFAULT_wxUSE_DIRPICKERCTRL=yes
733   DEFAULT_wxUSE_FILEPICKERCTRL=yes
734   DEFAULT_wxUSE_FONTPICKERCTRL=yes
735   DEFAULT_wxUSE_GAUGE=yes
736   DEFAULT_wxUSE_GRID=yes
737   DEFAULT_wxUSE_HYPERLINKCTRL=yes
738   DEFAULT_wxUSE_DATAVIEWCTRL=no
739   DEFAULT_wxUSE_IMAGLIST=yes
740   DEFAULT_wxUSE_LISTBOOK=yes
741   DEFAULT_wxUSE_LISTBOX=yes
742   DEFAULT_wxUSE_LISTCTRL=yes
743   DEFAULT_wxUSE_NOTEBOOK=yes
744   DEFAULT_wxUSE_ODCOMBOBOX=yes
745   DEFAULT_wxUSE_RADIOBOX=yes
746   DEFAULT_wxUSE_RADIOBTN=yes
747   DEFAULT_wxUSE_SASH=yes
748   DEFAULT_wxUSE_SCROLLBAR=yes
749   DEFAULT_wxUSE_SLIDER=yes
750   DEFAULT_wxUSE_SPINBTN=yes
751   DEFAULT_wxUSE_SPINCTRL=yes
752   DEFAULT_wxUSE_SPLITTER=yes
753   DEFAULT_wxUSE_STATBMP=yes
754   DEFAULT_wxUSE_STATBOX=yes
755   DEFAULT_wxUSE_STATLINE=yes
756   DEFAULT_wxUSE_STATTEXT=yes
757   DEFAULT_wxUSE_STATUSBAR=yes
758   DEFAULT_wxUSE_TAB_DIALOG=no
759   DEFAULT_wxUSE_TEXTCTRL=yes
760   DEFAULT_wxUSE_TOGGLEBTN=yes
761   DEFAULT_wxUSE_TOOLBAR=yes
762   DEFAULT_wxUSE_TOOLBAR_NATIVE=yes
763   DEFAULT_wxUSE_TOOLBAR_SIMPLE=yes
764   DEFAULT_wxUSE_TREEBOOK=yes
765   DEFAULT_wxUSE_TOOLBOOK=yes
766   DEFAULT_wxUSE_TREECTRL=yes
767   DEFAULT_wxUSE_POPUPWIN=yes
768   DEFAULT_wxUSE_TIPWINDOW=yes
769
770   DEFAULT_wxUSE_UNICODE=no
771   DEFAULT_wxUSE_UNICODE_MSLU=yes
772   DEFAULT_wxUSE_WCSRTOMBS=no
773
774   DEFAULT_wxUSE_PALETTE=yes
775   DEFAULT_wxUSE_IMAGE=yes
776   DEFAULT_wxUSE_GIF=yes
777   DEFAULT_wxUSE_PCX=yes
778   DEFAULT_wxUSE_IFF=no
779   DEFAULT_wxUSE_PNM=yes
780   DEFAULT_wxUSE_XPM=yes
781   DEFAULT_wxUSE_ICO_CUR=yes
782   DEFAULT_wxUSE_ACCESSIBILITY=no
783
784   DEFAULT_wxUSE_MONOLITHIC=no
785   DEFAULT_wxUSE_PLUGINS=no
786   DEFAULT_wxUSE_OFFICIAL_BUILD=no
787
788   dnl Applicable only when --with-gtk was used:
789   DEFAULT_wxUSE_GTK2=yes
790 fi
791
792
793 dnl WX_ARG_WITH should be used to select whether an external package will be
794 dnl used or not, to configure compile-time features of this package itself,
795 dnl use WX_ARG_ENABLE instead
796
797 dnl ============================
798 dnl external package dependecies
799 dnl ============================
800
801 dnl these options use AC_ARG_WITH and not WX_ARG_WITH on purpose - we cache
802 dnl these values manually
803 for toolkit in `echo $ALL_TOOLKITS`; do
804   LINE=`grep "wxUSE_$toolkit=" ${wx_arg_cache_file}`
805   if test "x$LINE" != "x" ; then
806     has_toolkit_in_cache=1
807     eval "DEFAULT_$LINE"
808     eval "CACHE_$toolkit=1"
809
810     LINE=`grep "wx${toolkit}_VERSION=" ${wx_arg_cache_file}`
811     if test "x$LINE" != "x" ; then
812         eval "DEFAULT_$LINE"
813     fi
814   fi
815 done
816
817 dnl ---------------------------------------------------------------------------
818 dnl --disable-gui will build only non-GUI part of wxWidgets: check for this
819 dnl first to disable many other switches if it's given
820 dnl
821 dnl NB: this is still in testing stage, don't use if you don't know what you're
822 dnl     doing
823 dnl ---------------------------------------------------------------------------
824
825 WX_ARG_ENABLE(gui,         [  --enable-gui            use GUI classes], wxUSE_GUI)
826 WX_ARG_ENABLE(monolithic,  [  --enable-monolithic     build wxWidgets as single library], wxUSE_MONOLITHIC)
827 WX_ARG_ENABLE(plugins,     [  --enable-plugins        build parts of wxWidgets as loadable components], wxUSE_PLUGINS)
828 WX_ARG_WITH(subdirs,       [  --without-subdirs       don't generate makefiles for samples/demos/...], wxWITH_SUBDIRS, without)
829
830 if test "$wxUSE_GUI" = "yes"; then
831
832 WX_ARG_ENABLE(universal,   [  --enable-universal      use wxWidgets GUI controls instead of native ones], wxUSE_UNIVERSAL)
833 AC_ARG_WITH(gtk,          [[  --with-gtk[=VERSION]    use GTK+, VERSION can be 2 (default), 1 or "any"]], [wxUSE_GTK="$withval" CACHE_GTK=1 TOOLKIT_GIVEN=1])
834 AC_ARG_WITH(motif,         [  --with-motif            use Motif/Lesstif], [wxUSE_MOTIF="$withval" CACHE_MOTIF=1 TOOLKIT_GIVEN=1])
835 AC_ARG_WITH(mac,           [  --with-mac              use Mac OS X], [wxUSE_MAC="$withval" CACHE_MAC=1 TOOLKIT_GIVEN=1])
836 AC_ARG_WITH(cocoa,         [  --with-cocoa            use Cocoa], [wxUSE_COCOA="$withval" CACHE_COCOA=1 TOOLKIT_GIVEN=1])
837 AC_ARG_WITH(wine,          [  --with-wine             use Wine], [wxUSE_WINE="$withval" CACHE_WINE=1])
838 AC_ARG_WITH(msw,           [  --with-msw              use MS-Windows], [wxUSE_MSW="$withval" CACHE_MSW=1 TOOLKIT_GIVEN=1])
839 AC_ARG_WITH(pm,            [  --with-pm               use OS/2 Presentation Manager], [wxUSE_PM="$withval" CACHE_PM=1 TOOLKIT_GIVEN=1])
840 AC_ARG_WITH(mgl,           [  --with-mgl              use SciTech MGL], [wxUSE_MGL="$withval" wxUSE_UNIVERSAL="yes" CACHE_MGL=1 TOOLKIT_GIVEN=1])
841 AC_ARG_WITH(microwin,      [  --with-microwin         use MicroWindows], [wxUSE_MICROWIN="$withval" CACHE_MICROWIN=1 TOOLKIT_GIVEN=1])
842 AC_ARG_WITH(x11,           [  --with-x11              use X11], [wxUSE_X11="$withval" wxUSE_UNIVERSAL="yes" CACHE_X11=1 TOOLKIT_GIVEN=1])
843 WX_ARG_ENABLE(nanox,       [  --enable-nanox          use NanoX], wxUSE_NANOX)
844
845 AC_ARG_ENABLE(gtk2,        [  --disable-gtk2          use GTK+ 1.2 instead of 2.0], [wxUSE_GTK2="$enableval"])
846 WX_ARG_ENABLE(gpe,         [  --enable-gpe            use GNOME PDA Environment features if possible], wxUSE_GPE)
847
848 WX_ARG_SYS_WITH(libpng,    [  --with-libpng           use libpng (PNG image format)], wxUSE_LIBPNG)
849 WX_ARG_SYS_WITH(libjpeg,   [  --with-libjpeg          use libjpeg (JPEG file format)], wxUSE_LIBJPEG)
850 WX_ARG_SYS_WITH(libtiff,   [  --with-libtiff          use libtiff (TIFF file format)], wxUSE_LIBTIFF)
851 WX_ARG_SYS_WITH(libxpm,    [  --with-libxpm           use libxpm (XPM file format)], wxUSE_LIBXPM)
852 WX_ARG_WITH(libmspack,     [  --with-libmspack        use libmspack (CHM help files loading)], wxUSE_LIBMSPACK)
853 WX_ARG_WITH(sdl,           [  --with-sdl              use SDL for audio on Unix], wxUSE_LIBSDL)
854 WX_ARG_WITH(gnomeprint,    [  --with-gnomeprint       use GNOME print for printing under GNOME], wxUSE_LIBGNOMEPRINT)
855 WX_ARG_WITH(gnomevfs,      [  --with-gnomevfs         use GNOME VFS for associating MIME types], wxUSE_LIBGNOMEVFS)
856 WX_ARG_WITH(hildon,        [  --with-hildon           use Hildon framework for Nokia 770], wxUSE_LIBHILDON)
857 WX_ARG_WITH(opengl,        [  --with-opengl           use OpenGL (or Mesa)], wxUSE_OPENGL)
858
859 fi
860 dnl for GUI only
861
862 WX_ARG_WITH(dmalloc,       [  --with-dmalloc          use dmalloc library (http://dmalloc.com/)], wxUSE_DMALLOC)
863 WX_ARG_SYS_WITH(regex,     [  --with-regex            enable support for wxRegEx class], wxUSE_REGEX)
864 WX_ARG_SYS_WITH(zlib,      [  --with-zlib             use zlib for LZW compression], wxUSE_ZLIB)
865 WX_ARG_SYS_WITH(odbc,      [  --with-odbc             use the IODBC and wxODBC classes], wxUSE_ODBC)
866 WX_ARG_SYS_WITH(expat,     [  --with-expat            enable XML support using expat parser], wxUSE_EXPAT)
867
868 dnl ---------------------------------------------------------------------------
869 dnl compile options
870 dnl ---------------------------------------------------------------------------
871
872 WX_ARG_ENABLE(shared,      [  --enable-shared         create shared library code], wxUSE_SHARED)
873 WX_ARG_ENABLE(optimise,    [  --enable-optimise       create optimised code], wxUSE_OPTIMISE)
874 WX_ARG_ENABLE(debug,       [  --enable-debug          same as debug_flag and debug_info], wxUSE_DEBUG)
875 WX_ARG_ENABLE(stl,         [  --enable-stl            use STL for containers], wxUSE_STL)
876 if test "$USE_OS2" = "1"; then
877     DEFAULT_wxUSE_OMF=no
878     WX_ARG_ENABLE(omf,     [  --enable-omf            use OMF object format], wxUSE_OMF)
879 fi
880
881 if test "$wxUSE_DEBUG" = "yes"; then
882   DEFAULT_wxUSE_DEBUG_FLAG=yes
883   DEFAULT_wxUSE_DEBUG_INFO=yes
884   BUILD=debug
885 elif test "$wxUSE_DEBUG" = "no"; then
886   DEFAULT_wxUSE_DEBUG_FLAG=no
887   DEFAULT_wxUSE_DEBUG_INFO=no
888   BUILD=release
889 fi
890
891 WX_ARG_ENABLE(debug_flag,    [  --enable-debug_flag     set __WXDEBUG__ flag (recommended for developers!)], wxUSE_DEBUG_FLAG)
892 WX_ARG_ENABLE(debug_info,    [  --enable-debug_info     create code with debugging information], wxUSE_DEBUG_INFO)
893 WX_ARG_ENABLE(debug_gdb,     [  --enable-debug_gdb      create code with extra GDB debugging information], wxUSE_DEBUG_GDB)
894 WX_ARG_ENABLE(debug_cntxt,   [  --enable-debug_cntxt    use wxDebugContext], wxUSE_DEBUG_CONTEXT)
895 WX_ARG_ENABLE(mem_tracing,   [  --enable-mem_tracing    create code with memory tracing], wxUSE_MEM_TRACING)
896 WX_ARG_ENABLE(profile,       [  --enable-profile        create code with profiling information], wxUSE_PROFILE)
897 WX_ARG_ENABLE(no_rtti,       [  --enable-no_rtti        create code without RTTI information], wxUSE_NO_RTTI)
898 WX_ARG_ENABLE(no_exceptions, [  --enable-no_exceptions  create code without C++ exceptions handling], wxUSE_NO_EXCEPTIONS)
899 WX_ARG_ENABLE(permissive,    [  --enable-permissive     compile code disregarding strict ANSI], wxUSE_PERMISSIVE)
900 WX_ARG_ENABLE(no_deps,       [  --enable-no_deps        create code without dependency information], wxUSE_NO_DEPS)
901 WX_ARG_ENABLE_PARAM(universal_binary, [[  --enable-universal_binary[=SDK] create Mac PowerPC and Intel Universal binary (not yet working)]], wxUSE_UNIVERSAL_BINARY)
902
903 WX_ARG_ENABLE(compat24,      [  --enable-compat24       enable wxWidgets 2.4 compatibility], WXWIN_COMPATIBILITY_2_4, enable)
904 WX_ARG_ENABLE(compat26,      [  --disable-compat26      disable wxWidgets 2.6 compatibility], WXWIN_COMPATIBILITY_2_6, disable)
905
906 WX_ARG_ENABLE(rpath,         [  --disable-rpath         disable use of rpath for uninstalled builds], wxUSE_RPATH)
907
908
909 dnl ---------------------------------------------------------------------------
910 dnl (small) optional non GUI classes
911 dnl ---------------------------------------------------------------------------
912
913 WX_ARG_ENABLE(intl,          [  --enable-intl           use internationalization system], wxUSE_INTL)
914 WX_ARG_ENABLE(config,        [  --enable-config         use wxConfig (and derived) classes], wxUSE_CONFIG)
915
916 WX_ARG_ENABLE(protocols,     [  --enable-protocols      use wxProtocol and derived classes], wxUSE_PROTOCOL)
917 WX_ARG_ENABLE(ftp,           [  --enable-ftp            use wxFTP (requires wxProtocol], wxUSE_PROTOCOL_FTP)
918 WX_ARG_ENABLE(http,          [  --enable-http           use wxHTTP (requires wxProtocol], wxUSE_PROTOCOL_HTTP)
919 WX_ARG_ENABLE(fileproto,     [  --enable-fileproto      use wxFileProto class (requires wxProtocol], wxUSE_PROTOCOL_FILE)
920 WX_ARG_ENABLE(sockets,       [  --enable-sockets        use socket/network classes], wxUSE_SOCKETS)
921 WX_ARG_ENABLE(ole,           [  --enable-ole            use OLE classes (Win32 only)], wxUSE_OLE)
922 WX_ARG_ENABLE(dataobj,       [  --enable-dataobj        use data object classes], wxUSE_DATAOBJ)
923
924 WX_ARG_ENABLE(ipc,           [  --enable-ipc            use interprocess communication (wxSocket etc.)], wxUSE_IPC)
925
926 dnl please keep the settings below in alphabetical order
927 WX_ARG_ENABLE(apple_ieee,    [  --enable-apple_ieee     use the Apple IEEE codec], wxUSE_APPLE_IEEE)
928 WX_ARG_ENABLE(arcstream,     [  --enable-arcstream      use wxArchive streams], wxUSE_ARCHIVE_STREAMS)
929 WX_ARG_ENABLE(backtrace,     [  --enable-backtrace      use wxStackWalker class for getting backtraces], wxUSE_STACKWALKER)
930 WX_ARG_ENABLE(catch_segvs,   [  --enable-catch_segvs    catch signals in wxApp::OnFatalException (Unix only)], wxUSE_ON_FATAL_EXCEPTION)
931 WX_ARG_ENABLE(cmdline,       [  --enable-cmdline        use wxCmdLineParser class], wxUSE_CMDLINE_PARSER)
932 WX_ARG_ENABLE(datetime,      [  --enable-datetime       use wxDateTime class], wxUSE_DATETIME)
933 WX_ARG_ENABLE(debugreport,   [  --enable-debugreport    use wxDebugReport class], wxUSE_DEBUGREPORT)
934 WX_ARG_ENABLE(dialupman,     [  --enable-dialupman      use dialup network classes], wxUSE_DIALUP_MANAGER)
935 WX_ARG_ENABLE(dynlib,        [  --enable-dynlib         use wxLibrary class for DLL loading], wxUSE_DYNLIB_CLASS)
936 WX_ARG_ENABLE(dynamicloader, [  --enable-dynamicloader  use (new) wxDynamicLibrary class], wxUSE_DYNAMIC_LOADER)
937 WX_ARG_ENABLE(exceptions,    [  --enable-exceptions     build exception-safe library], wxUSE_EXCEPTIONS)
938 WX_ARG_ENABLE(ffile,         [  --enable-ffile          use wxFFile class], wxUSE_FFILE)
939 WX_ARG_ENABLE(file,          [  --enable-file           use wxFile class], wxUSE_FILE)
940 WX_ARG_ENABLE(filesystem,    [  --enable-filesystem     use virtual file systems classes], wxUSE_FILESYSTEM)
941 WX_ARG_ENABLE(fontmap,       [  --enable-fontmap        use font encodings conversion classes], wxUSE_FONTMAP)
942 WX_ARG_ENABLE(fs_inet,       [  --enable-fs_inet        use virtual HTTP/FTP filesystems], wxUSE_FS_INET)
943 WX_ARG_ENABLE(fs_zip,        [  --enable-fs_zip         use virtual ZIP filesystems], wxUSE_FS_ZIP)
944 WX_ARG_ENABLE(geometry,      [  --enable-geometry       use geometry class], wxUSE_GEOMETRY)
945 WX_ARG_ENABLE(log,           [  --enable-log            use logging system], wxUSE_LOG)
946 WX_ARG_ENABLE(longlong,      [  --enable-longlong       use wxLongLong class], wxUSE_LONGLONG)
947 WX_ARG_ENABLE(mimetype,      [  --enable-mimetype       use wxMimeTypesManager], wxUSE_MIMETYPE)
948 WX_ARG_ENABLE(mslu,          [  --enable-mslu           use MS Layer for Unicode on Windows 9x (Win32 only)], wxUSE_UNICODE_MSLU)
949 WX_ARG_ENABLE(snglinst,      [  --enable-snglinst       use wxSingleInstanceChecker class], wxUSE_SNGLINST_CHECKER)
950 WX_ARG_ENABLE(std_iostreams, [  --enable-std_iostreams  use standard C++ stream classes], wxUSE_STD_IOSTREAM)
951 WX_ARG_ENABLE(std_string,    [  --enable-std_string     use standard C++ string classes], wxUSE_STD_STRING)
952 WX_ARG_ENABLE(stdpaths,      [  --enable-stdpaths       use wxStandardPaths class], wxUSE_STDPATHS)
953 WX_ARG_ENABLE(stopwatch,     [  --enable-stopwatch      use wxStopWatch class], wxUSE_STOPWATCH)
954 WX_ARG_ENABLE(streams,       [  --enable-streams        use wxStream etc classes], wxUSE_STREAMS)
955 WX_ARG_ENABLE(system_options,[  --enable-sysoptions     use wxSystemOptions], wxUSE_SYSTEM_OPTIONS)
956 WX_ARG_ENABLE(textbuf,       [  --enable-textbuf        use wxTextBuffer class], wxUSE_TEXTBUFFER)
957 WX_ARG_ENABLE(textfile,      [  --enable-textfile       use wxTextFile class], wxUSE_TEXTFILE)
958 WX_ARG_ENABLE(timer,         [  --enable-timer          use wxTimer class], wxUSE_TIMER)
959 WX_ARG_ENABLE(unicode,       [  --enable-unicode        compile wxString with Unicode support], wxUSE_UNICODE)
960 WX_ARG_ENABLE(sound,         [  --enable-sound          use wxSound class], wxUSE_SOUND)
961 WX_ARG_ENABLE(mediactrl,     [  --enable-mediactrl      use wxMediaCtrl class], wxUSE_MEDIACTRL)
962 WX_ARG_ENABLE(gstreamer8,     [  --enable-gstreamer8      force GStreamer 0.8 instead of 0.10 with the wxMediaCtrl class on unix], wxUSE_GSTREAMER8)
963 WX_ARG_ENABLE(printfposparam,[  --enable-printfposparam use wxVsnprintf() which supports positional parameters], wxUSE_PRINTF_POS_PARAMS)
964 WX_ARG_ENABLE(zipstream,     [  --enable-zipstream      use wxZip streams], wxUSE_ZIPSTREAM)
965
966 WX_ARG_ENABLE(url,           [  --enable-url            use wxURL class], wxUSE_URL)
967 WX_ARG_ENABLE(protocol,      [  --enable-protocol       use wxProtocol class], wxUSE_PROTOCOL)
968 WX_ARG_ENABLE(protocol_http, [  --enable-protocol-http  HTTP support in wxProtocol], wxUSE_PROTOCOL_HTTP)
969 WX_ARG_ENABLE(protocol_ftp,  [  --enable-protocol-ftp   FTP support in wxProtocol], wxUSE_PROTOCOL_FTP)
970 WX_ARG_ENABLE(protocol_file, [  --enable-protocol-file  FILE support in wxProtocol], wxUSE_PROTOCOL_FILE)
971
972
973 dnl ---------------------------------------------------------------------------
974 dnl "big" options (i.e. those which change a lot of things throughout the library)
975 dnl ---------------------------------------------------------------------------
976
977 WX_ARG_ENABLE(threads,     [  --enable-threads        use threads], wxUSE_THREADS)
978
979 if test "$wxUSE_GUI" = "yes"; then
980
981 dnl ---------------------------------------------------------------------------
982 dnl "big" GUI options
983 dnl ---------------------------------------------------------------------------
984
985 WX_ARG_ENABLE(docview,     [  --enable-docview        use document view architecture], wxUSE_DOC_VIEW_ARCHITECTURE)
986 WX_ARG_ENABLE(help,        [  --enable-help           use help subsystem], wxUSE_HELP)
987 WX_ARG_ENABLE(mshtmlhelp,  [  --enable-mshtmlhelp     use MS HTML Help (win32)], wxUSE_MS_HTML_HELP)
988 WX_ARG_ENABLE(html,        [  --enable-html           use wxHTML sub-library], wxUSE_HTML)
989 WX_ARG_ENABLE(htmlhelp,    [  --enable-htmlhelp       use wxHTML-based help], wxUSE_WXHTML_HELP)
990 WX_ARG_ENABLE(xrc,         [  --enable-xrc            use XRC resources sub-library], wxUSE_XRC)
991 WX_ARG_ENABLE(aui,         [  --enable-aui            use AUI docking library], wxUSE_AUI)
992 WX_ARG_ENABLE(constraints, [  --enable-constraints    use layout-constraints system], wxUSE_CONSTRAINTS)
993 WX_ARG_ENABLE(printarch,   [  --enable-printarch      use printing architecture], wxUSE_PRINTING_ARCHITECTURE)
994 WX_ARG_ENABLE(mdi,         [  --enable-mdi            use multiple document interface architecture], wxUSE_MDI)
995 WX_ARG_ENABLE(mdidoc,      [  --enable-mdidoc         use docview architecture with MDI], wxUSE_MDI_ARCHITECTURE)
996 WX_ARG_ENABLE(loggui,      [  --enable-loggui         use standard GUI logger], wxUSE_LOGGUI)
997 WX_ARG_ENABLE(logwin,      [  --enable-logwin         use wxLogWindow], wxUSE_LOGWINDOW)
998 WX_ARG_ENABLE(logdialog,   [  --enable-logdialog      use wxLogDialog], wxUSE_LOGDIALOG)
999 WX_ARG_ENABLE(webkit,      [  --enable-webkit         use wxWebKitCtrl (Mac)], wxUSE_WEBKIT)
1000 WX_ARG_ENABLE(html,        [  --enable-richtext       use wxRichTextCtrl], wxUSE_RICHTEXT)
1001
1002 dnl ---------------------------------------------------------------------------
1003 dnl PostScript options
1004 dnl ---------------------------------------------------------------------------
1005 WX_ARG_ENABLE(postscript,  [  --enable-postscript     use wxPostscriptDC device context (default for gtk+)], wxUSE_POSTSCRIPT)
1006
1007 dnl VZ: these options seem to be always on, if someone wants to change it please do
1008 dnl WX_ARG_ENABLE(PS-normalized,    [  --enable-PS-normalized  use normalized PS fonts], dnl             wxUSE_NORMALIZED_PS_FONTS)
1009 dnl WX_ARG_ENABLE(afmfonts,        [  --enable-afmfonts       use Adobe Font Metric Font table], dnl             wxUSE_AFM_FOR_POSTSCRIPT)
1010
1011 dnl ---------------------------------------------------------------------------
1012 dnl resources
1013 dnl ---------------------------------------------------------------------------
1014
1015 WX_ARG_ENABLE(prologio,    [  --enable-prologio       not available; see contrib], wxUSE_PROLOGIO)
1016 WX_ARG_ENABLE(resources,   [  --enable-resources      not available; see contrib], wxUSE_RESOURCES)
1017
1018 dnl ---------------------------------------------------------------------------
1019 dnl IPC &c
1020 dnl ---------------------------------------------------------------------------
1021
1022 WX_ARG_ENABLE(clipboard,   [  --enable-clipboard      use wxClipboard class], wxUSE_CLIPBOARD)
1023 WX_ARG_ENABLE(dnd,         [  --enable-dnd            use Drag'n'Drop classes], wxUSE_DRAG_AND_DROP)
1024 WX_ARG_ENABLE(metafile,    [  --enable-metafile       use win32 metafiles], wxUSE_METAFILE)
1025
1026 dnl WX_ARG_ENABLE(treelayout,  [  --enable-treelayout     use wxTreeLayout class], wxUSE_TREELAYOUT)
1027
1028 dnl ---------------------------------------------------------------------------
1029 dnl optional GUI controls (in alphabetical order except the first one)
1030 dnl ---------------------------------------------------------------------------
1031
1032 WX_ARG_ENABLE(controls,    [  --enable-controls       use all usual controls], wxUSE_CONTROLS)
1033
1034 dnl even with --enable-controls, some may be disabled by giving
1035 dnl --disable-<control> later on the command line - but by default all will be
1036 dnl used (and vice versa)
1037 if test "$wxUSE_CONTROLS" = "yes"; then
1038   DEFAULT_wxUSE_ACCEL=yes
1039   DEFAULT_wxUSE_BMPBUTTON=yes
1040   DEFAULT_wxUSE_BUTTON=yes
1041   DEFAULT_wxUSE_CALCTRL=yes
1042   DEFAULT_wxUSE_CARET=yes
1043   DEFAULT_wxUSE_COMBOBOX=yes
1044   DEFAULT_wxUSE_CHECKBOX=yes
1045   DEFAULT_wxUSE_CHECKLISTBOX=yes
1046   DEFAULT_wxUSE_CHOICE=yes
1047   DEFAULT_wxUSE_CHOICEBOOK=yes
1048   DEFAULT_wxUSE_COLOURPICKERCTRL=yes
1049   DEFAULT_wxUSE_COMBOBOX=yes
1050   DEFAULT_wxUSE_DATEPICKCTRL=yes
1051   DEFAULT_wxUSE_DISPLAY=yes
1052   DEFAULT_wxUSE_DIRPICKERCTRL=yes
1053   DEFAULT_wxUSE_FILEPICKERCTRL=yes
1054   DEFAULT_wxUSE_FONTPICKERCTRL=yes
1055   DEFAULT_wxUSE_GAUGE=yes
1056   DEFAULT_wxUSE_GRID=yes
1057   DEFAULT_wxUSE_HYPERLINKCTRL=yes
1058   DEFAULT_wxUSE_DATAVIEWCTRL=no
1059   DEFAULT_wxUSE_IMAGLIST=yes
1060   DEFAULT_wxUSE_LISTBOOK=yes
1061   DEFAULT_wxUSE_LISTBOX=yes
1062   DEFAULT_wxUSE_LISTCTRL=yes
1063   DEFAULT_wxUSE_NOTEBOOK=yes
1064   DEFAULT_wxUSE_RADIOBOX=yes
1065   DEFAULT_wxUSE_RADIOBTN=yes
1066   DEFAULT_wxUSE_SASH=yes
1067   DEFAULT_wxUSE_SCROLLBAR=yes
1068   DEFAULT_wxUSE_SLIDER=yes
1069   DEFAULT_wxUSE_SPINBTN=yes
1070   DEFAULT_wxUSE_SPINCTRL=yes
1071   DEFAULT_wxUSE_SPLITTER=yes
1072   DEFAULT_wxUSE_STATBMP=yes
1073   DEFAULT_wxUSE_STATBOX=yes
1074   DEFAULT_wxUSE_STATLINE=yes
1075   DEFAULT_wxUSE_STATUSBAR=yes
1076   DEFAULT_wxUSE_TAB_DIALOG=yes
1077   DEFAULT_wxUSE_TOGGLEBTN=yes
1078   DEFAULT_wxUSE_TOOLBAR=yes
1079   DEFAULT_wxUSE_TOOLBAR_NATIVE=yes
1080   DEFAULT_wxUSE_TOOLBAR_SIMPLE=yes
1081   DEFAULT_wxUSE_TOOLTIPS=yes
1082   DEFAULT_wxUSE_TREEBOOK=yes
1083   DEFAULT_wxUSE_TOOLBOOK=yes
1084   DEFAULT_wxUSE_TREECTRL=yes
1085   DEFAULT_wxUSE_POPUPWIN=yes
1086   DEFAULT_wxUSE_TIPWINDOW=yes
1087 elif test "$wxUSE_CONTROLS" = "no"; then
1088   DEFAULT_wxUSE_ACCEL=no
1089   DEFAULT_wxUSE_BMPBUTTON=no
1090   DEFAULT_wxUSE_BUTTON=no
1091   DEFAULT_wxUSE_CALCTRL=no
1092   DEFAULT_wxUSE_CARET=no
1093   DEFAULT_wxUSE_COMBOBOX=no
1094   DEFAULT_wxUSE_CHECKBOX=no
1095   DEFAULT_wxUSE_CHECKLISTBOX=no
1096   DEFAULT_wxUSE_CHOICE=no
1097   DEFAULT_wxUSE_CHOICEBOOK=no
1098   DEFAULT_wxUSE_COLOURPICKERCTRL=no
1099   DEFAULT_wxUSE_COMBOBOX=no
1100   DEFAULT_wxUSE_DATEPICKCTRL=no
1101   DEFAULT_wxUSE_DISPLAY=no
1102   DEFAULT_wxUSE_DIRPICKERCTRL=no
1103   DEFAULT_wxUSE_FILEPICKERCTRL=no
1104   DEFAULT_wxUSE_FONTPICKERCTRL=no
1105   DEFAULT_wxUSE_GAUGE=no
1106   DEFAULT_wxUSE_GRID=no
1107   DEFAULT_wxUSE_HYPERLINKCTRL=no
1108   DEFAULT_wxUSE_DATAVIEWCTRL=no
1109   DEFAULT_wxUSE_IMAGLIST=no
1110   DEFAULT_wxUSE_LISTBOOK=no
1111   DEFAULT_wxUSE_LISTBOX=no
1112   DEFAULT_wxUSE_LISTCTRL=no
1113   DEFAULT_wxUSE_NOTEBOOK=no
1114   DEFAULT_wxUSE_RADIOBOX=no
1115   DEFAULT_wxUSE_RADIOBTN=no
1116   DEFAULT_wxUSE_SASH=no
1117   DEFAULT_wxUSE_SCROLLBAR=no
1118   DEFAULT_wxUSE_SLIDER=no
1119   DEFAULT_wxUSE_SPINBTN=no
1120   DEFAULT_wxUSE_SPINCTRL=no
1121   DEFAULT_wxUSE_SPLITTER=no
1122   DEFAULT_wxUSE_STATBMP=no
1123   DEFAULT_wxUSE_STATBOX=no
1124   DEFAULT_wxUSE_STATLINE=no
1125   DEFAULT_wxUSE_STATUSBAR=no
1126   DEFAULT_wxUSE_TAB_DIALOG=no
1127   DEFAULT_wxUSE_TOGGLEBTN=no
1128   DEFAULT_wxUSE_TOOLBAR=no
1129   DEFAULT_wxUSE_TOOLBAR_NATIVE=no
1130   DEFAULT_wxUSE_TOOLBAR_SIMPLE=no
1131   DEFAULT_wxUSE_TOOLTIPS=no
1132   DEFAULT_wxUSE_TREEBOOK=no
1133   DEFAULT_wxUSE_TOOLBOOK=no
1134   DEFAULT_wxUSE_TREECTRL=no
1135   DEFAULT_wxUSE_POPUPWIN=no
1136   DEFAULT_wxUSE_TIPWINDOW=no
1137 fi
1138
1139 WX_ARG_ENABLE(accel,       [  --enable-accel          use accelerators], wxUSE_ACCEL)
1140 WX_ARG_ENABLE(button,      [  --enable-button         use wxButton class], wxUSE_BUTTON)
1141 WX_ARG_ENABLE(bmpbutton,   [  --enable-bmpbutton      use wxBitmapButton class], wxUSE_BMPBUTTON)
1142 WX_ARG_ENABLE(calendar,    [  --enable-calendar       use wxCalendarCtrl class], wxUSE_CALCTRL)
1143 WX_ARG_ENABLE(caret,       [  --enable-caret          use wxCaret class], wxUSE_CARET)
1144 WX_ARG_ENABLE(checkbox,    [  --enable-checkbox       use wxCheckBox class], wxUSE_CHECKBOX)
1145 WX_ARG_ENABLE(checklst,    [  --enable-checklst       use wxCheckListBox (listbox with checkboxes) class], wxUSE_CHECKLST)
1146 WX_ARG_ENABLE(choice,      [  --enable-choice         use wxChoice class], wxUSE_CHOICE)
1147 WX_ARG_ENABLE(choicebook,  [  --enable-choicebook     use wxChoicebook class], wxUSE_CHOICEBOOK)
1148 WX_ARG_ENABLE(colourpicker,[  --enable-colourpicker   use wxColourPickerCtrl class], wxUSE_COLOURPICKERCTRL)
1149 WX_ARG_ENABLE(combobox,    [  --enable-combobox       use wxComboBox class], wxUSE_COMBOBOX)
1150 WX_ARG_ENABLE(comboctrl,   [  --enable-comboctrl      use wxComboCtrl class], wxUSE_COMBOCTRL)
1151 WX_ARG_ENABLE(datepick,    [  --enable-datepick       use wxDatePickerCtrl class], wxUSE_DATEPICKCTRL)
1152 WX_ARG_ENABLE(dirpicker,   [  --enable-dirpicker      use wxDirPickerCtrl class], wxUSE_DIRPICKERCTRL)
1153 WX_ARG_ENABLE(display,     [  --enable-display        use wxDisplay class], wxUSE_DISPLAY)
1154 WX_ARG_ENABLE(filepicker,  [  --enable-filepicker     use wxFilePickerCtrl class], wxUSE_FILEPICKERCTRL)
1155 WX_ARG_ENABLE(fontpicker,  [  --enable-fontpicker     use wxFontPickerCtrl class], wxUSE_FONTPICKERCTRL)
1156 WX_ARG_ENABLE(gauge,       [  --enable-gauge          use wxGauge class], wxUSE_GAUGE)
1157 WX_ARG_ENABLE(grid,        [  --enable-grid           use wxGrid class], wxUSE_GRID)
1158 WX_ARG_ENABLE(dataviewctrl,[  --enable-dataviewctrl,  use wxDataViewCtrl class], wxUSE_DATAVIEWCTRL)
1159 WX_ARG_ENABLE(hyperlink,   [  --enable-hyperlink      use wxHyperlinkCtrl class], wxUSE_HYPERLINKCTRL)
1160 WX_ARG_ENABLE(imaglist,    [  --enable-imaglist       use wxImageList class], wxUSE_IMAGLIST)
1161 WX_ARG_ENABLE(listbook,    [  --enable-listbook       use wxListbook class], wxUSE_LISTBOOK)
1162 WX_ARG_ENABLE(listbox,     [  --enable-listbox        use wxListBox class], wxUSE_LISTBOX)
1163 WX_ARG_ENABLE(listctrl,    [  --enable-listctrl       use wxListCtrl class], wxUSE_LISTCTRL)
1164 WX_ARG_ENABLE(notebook,    [  --enable-notebook       use wxNotebook class], wxUSE_NOTEBOOK)
1165 WX_ARG_ENABLE(odcombobox,  [  --enable-odcombobox     use wxOwnerDrawnComboBox class], wxUSE_ODCOMBOBOX)
1166 WX_ARG_ENABLE(radiobox,    [  --enable-radiobox       use wxRadioBox class], wxUSE_RADIOBOX)
1167 WX_ARG_ENABLE(radiobtn,    [  --enable-radiobtn       use wxRadioButton class], wxUSE_RADIOBTN)
1168 WX_ARG_ENABLE(sash,        [  --enable-sash           use wxSashWindow class], wxUSE_SASH)
1169 WX_ARG_ENABLE(scrollbar,   [  --enable-scrollbar      use wxScrollBar class and scrollable windows], wxUSE_SCROLLBAR)
1170 WX_ARG_ENABLE(slider,      [  --enable-slider         use wxSlider class], wxUSE_SLIDER)
1171 WX_ARG_ENABLE(spinbtn,     [  --enable-spinbtn        use wxSpinButton class], wxUSE_SPINBTN)
1172 WX_ARG_ENABLE(spinctrl,    [  --enable-spinctrl       use wxSpinCtrl class], wxUSE_SPINCTRL)
1173 WX_ARG_ENABLE(splitter,    [  --enable-splitter       use wxSplitterWindow class], wxUSE_SPLITTER)
1174 WX_ARG_ENABLE(statbmp,     [  --enable-statbmp        use wxStaticBitmap class], wxUSE_STATBMP)
1175 WX_ARG_ENABLE(statbox,     [  --enable-statbox        use wxStaticBox class], wxUSE_STATBOX)
1176 WX_ARG_ENABLE(statline,    [  --enable-statline       use wxStaticLine class], wxUSE_STATLINE)
1177 WX_ARG_ENABLE(stattext,    [  --enable-stattext       use wxStaticText class], wxUSE_STATTEXT)
1178 WX_ARG_ENABLE(statusbar,   [  --enable-statusbar      use wxStatusBar class], wxUSE_STATUSBAR)
1179 WX_ARG_ENABLE(tabdialog,   [  --enable-tabdialog      use wxTabControl class], wxUSE_TAB_DIALOG)
1180 WX_ARG_ENABLE(textctrl,    [  --enable-textctrl       use wxTextCtrl class], wxUSE_TEXTCTRL)
1181 WX_ARG_ENABLE(togglebtn,   [  --enable-togglebtn      use wxToggleButton class], wxUSE_TOGGLEBTN)
1182 WX_ARG_ENABLE(toolbar,     [  --enable-toolbar        use wxToolBar class], wxUSE_TOOLBAR)
1183 WX_ARG_ENABLE(tbarnative,  [  --enable-tbarnative     use native wxToolBar class], wxUSE_TOOLBAR_NATIVE)
1184 WX_ARG_ENABLE(tbarsmpl,    [  --enable-tbarsmpl       use wxToolBarSimple class], wxUSE_TOOLBAR_SIMPLE)
1185 WX_ARG_ENABLE(treebook,    [  --enable-treebook       use wxTreebook class], wxUSE_TREEBOOK)
1186 WX_ARG_ENABLE(toolbook,    [  --enable-toolbook       use wxToolbook class], wxUSE_TOOLBOOK)
1187 WX_ARG_ENABLE(treectrl,    [  --enable-treectrl       use wxTreeCtrl class], wxUSE_TREECTRL)
1188 WX_ARG_ENABLE(tipwindow,   [  --enable-tipwindow      use wxTipWindow class], wxUSE_TIPWINDOW)
1189 WX_ARG_ENABLE(popupwin,    [  --enable-popupwin       use wxPopUpWindow class], wxUSE_POPUPWIN)
1190
1191 dnl ---------------------------------------------------------------------------
1192 dnl common dialogs
1193 dnl ---------------------------------------------------------------------------
1194
1195 WX_ARG_ENABLE(commondlg,   [  --enable-commondlg      use all common dialogs], wxUSE_COMMONDLGS)
1196 WX_ARG_ENABLE(choicedlg,   [  --enable-choicedlg      use wxChoiceDialog], wxUSE_CHOICEDLG)
1197 WX_ARG_ENABLE(coldlg,      [  --enable-coldlg         use wxColourDialog], wxUSE_COLOURDLG)
1198 WX_ARG_ENABLE(filedlg,     [  --enable-filedlg        use wxFileDialog], wxUSE_FILEDLG)
1199 WX_ARG_ENABLE(finddlg,     [  --enable-finddlg        use wxFindReplaceDialog], wxUSE_FINDREPLDLG)
1200 WX_ARG_ENABLE(fontdlg,     [  --enable-fontdlg        use wxFontDialog], wxUSE_FONTDLG)
1201 WX_ARG_ENABLE(dirdlg,      [  --enable-dirdlg         use wxDirDialog], wxUSE_DIRDLG)
1202 WX_ARG_ENABLE(msgdlg,      [  --enable-msgdlg         use wxMessageDialog], wxUSE_MSGDLG)
1203 WX_ARG_ENABLE(numberdlg,   [  --enable-numberdlg      use wxNumberEntryDialog], wxUSE_NUMBERDLG)
1204 WX_ARG_ENABLE(splash,      [  --enable-splash         use wxSplashScreen], wxUSE_SPLASH)
1205 WX_ARG_ENABLE(textdlg,     [  --enable-textdlg        use wxTextDialog], wxUSE_TEXTDLG)
1206 WX_ARG_ENABLE(tipdlg,      [  --enable-tipdlg         use startup tips], wxUSE_STARTUP_TIPS)
1207 WX_ARG_ENABLE(progressdlg, [  --enable-progressdlg    use wxProgressDialog], wxUSE_PROGRESSDLG)
1208 WX_ARG_ENABLE(wizarddlg,   [  --enable-wizarddlg      use wxWizard], wxUSE_WIZARDDLG)
1209
1210 dnl ---------------------------------------------------------------------------
1211 dnl misc GUI options
1212 dnl ---------------------------------------------------------------------------
1213
1214 WX_ARG_ENABLE(menus,       [  --enable-menus          use wxMenu/wxMenuBar/wxMenuItem classes], wxUSE_MENUS)
1215 WX_ARG_ENABLE(miniframe,   [  --enable-miniframe      use wxMiniFrame class], wxUSE_MINIFRAME)
1216 WX_ARG_ENABLE(tooltips,    [  --enable-tooltips       use wxToolTip class], wxUSE_TOOLTIPS)
1217 WX_ARG_ENABLE(splines,     [  --enable-splines        use spline drawing code], wxUSE_SPLINES)
1218 WX_ARG_ENABLE(mousewheel,  [  --enable-mousewheel     use mousewheel], wxUSE_MOUSEWHEEL)
1219 WX_ARG_ENABLE(validators,  [  --enable-validators     use wxValidator and derived classes], wxUSE_VALIDATORS)
1220 WX_ARG_ENABLE(busyinfo,    [  --enable-busyinfo       use wxBusyInfo], wxUSE_BUSYINFO)
1221 WX_ARG_ENABLE(joystick,    [  --enable-joystick       use wxJoystick], wxUSE_JOYSTICK)
1222 WX_ARG_ENABLE(metafile,    [  --enable-metafiles      use wxMetaFile (Win32 only)], wxUSE_METAFILE)
1223 WX_ARG_ENABLE(dragimage,   [  --enable-dragimage      use wxDragImage], wxUSE_DRAGIMAGE)
1224 WX_ARG_ENABLE(accessibility,[  --enable-accessibility  enable accessibility support], wxUSE_ACCESSIBILITY)
1225
1226 if test "$wxUSE_MSW" = "1"; then
1227     WX_ARG_ENABLE(dccache, [  --enable-dccache        cache temporary wxDC objects (Win32 only)], wxUSE_DC_CACHEING)
1228 fi
1229
1230 dnl ---------------------------------------------------------------------------
1231 dnl support for image formats that do not rely on external library
1232 dnl ---------------------------------------------------------------------------
1233
1234 WX_ARG_ENABLE(palette,     [  --enable-palette        use wxPalette class], wxUSE_PALETTE)
1235 WX_ARG_ENABLE(image,       [  --enable-image          use wxImage class], wxUSE_IMAGE)
1236 WX_ARG_ENABLE(gif,         [  --enable-gif            use gif images (GIF file format)], wxUSE_GIF)
1237 WX_ARG_ENABLE(pcx,         [  --enable-pcx            use pcx images (PCX file format)], wxUSE_PCX)
1238 WX_ARG_ENABLE(iff,         [  --enable-iff            use iff images (IFF file format)], wxUSE_IFF)
1239 WX_ARG_ENABLE(pnm,         [  --enable-pnm            use pnm images (PNM file format)], wxUSE_PNM)
1240 WX_ARG_ENABLE(xpm,         [  --enable-xpm            use xpm images (XPM file format)], wxUSE_XPM)
1241 WX_ARG_ENABLE(ico_cur,     [  --enable-icocur         use Windows ICO and CUR formats], wxUSE_ICO_CUR)
1242
1243 fi
1244
1245 dnl ---------------------------------------------------------------------------
1246 dnl flavour support
1247 dnl ---------------------------------------------------------------------------
1248
1249 dnl Should this be --enable?  I flip-flopped a couple of times and this seems
1250 dnl in the spirit if not the letter, we have gtk-prefix and the like in this group.
1251 dnl It doesn't actually change anything but the output file names.
1252 AC_ARG_WITH(flavour,       [  --with-flavour=NAME     specify a name to identify this build], [WX_FLAVOUR="$withval"])
1253
1254 dnl ---------------------------------------------------------------------------
1255 dnl some win32 settings
1256 dnl ---------------------------------------------------------------------------
1257
1258 WX_ARG_ENABLE(official_build,  [  --enable-official_build official build of wxWidgets (win32 DLL only)], wxUSE_OFFICIAL_BUILD)
1259 AC_ARG_ENABLE(vendor,  [  --enable-vendor=VENDOR  vendor name (win32 DLL only)], [VENDOR="$enableval"])
1260 if test "x$VENDOR" = "x"; then
1261     VENDOR="custom"
1262 fi
1263
1264
1265 dnl for GUI only
1266
1267 dnl cache the options values before (may be) aborting below
1268 WX_ARG_CACHE_FLUSH
1269
1270 dnl check that no more than one toolkit is given and that if none are given that
1271 dnl we have a default one
1272
1273 AC_MSG_CHECKING(for toolkit)
1274
1275 # In Wine, we need to default to MSW, not GTK or MOTIF
1276 if test "$wxUSE_WINE" = "yes"; then
1277     DEFAULT_DEFAULT_wxUSE_GTK=0
1278     DEFAULT_DEFAULT_wxUSE_MOTIF=0
1279     DEFAULT_DEFAULT_wxUSE_MSW=1
1280     wxUSE_SHARED=no
1281 fi
1282
1283
1284 if test "$wxUSE_GUI" = "yes"; then
1285
1286     if test "$USE_BEOS" = 1; then
1287         AC_MSG_ERROR([BeOS GUI is not supported yet, use --disable-gui])
1288     fi
1289
1290     if test "$TOOLKIT_GIVEN" = 1; then
1291       dnl convert "yes", "any" or a number to 1 and "no" to 0
1292       for toolkit in `echo $ALL_TOOLKITS`; do
1293         var=wxUSE_$toolkit
1294         eval "value=\$${var}"
1295         if test "x$value" = "xno"; then
1296           eval "$var=0"
1297         elif test "x$value" != "x"; then
1298           eval "$var=1"
1299         fi
1300
1301         if test "x$value" != "x" -a "x$value" != "xyes" -a "x$value" != "xno"; then
1302           eval "wx${toolkit}_VERSION=$value"
1303         fi
1304       done
1305     else
1306       dnl try to guess the most apropriate toolkit for this platform
1307       for toolkit in `echo $ALL_TOOLKITS`; do
1308         if test "$has_toolkit_in_cache" != 1; then
1309           var=DEFAULT_DEFAULT_wxUSE_$toolkit
1310         else
1311           var=DEFAULT_wxUSE_$toolkit
1312
1313           eval "version=\$DEFAULT_wx${toolkit}_VERSION"
1314           if test "x$version" != "x"; then
1315             eval "wx${toolkit}_VERSION=$version"
1316           fi
1317         fi
1318         eval "wxUSE_$toolkit=\$${var}"
1319       done
1320     fi
1321
1322     dnl we suppose that expr is available (maybe there is a better way to do
1323     dnl this? what about using ALL_TOOLKITS? TODO)
1324     NUM_TOOLKITS=`expr ${wxUSE_COCOA:-0} + ${wxUSE_GTK:-0} + ${wxUSE_MAC:-0} \
1325                   + ${wxUSE_MGL:-0} + ${wxUSE_MICROWIN:-0} \
1326                   + ${wxUSE_MOTIF:-0} + ${wxUSE_MSW:-0} + ${wxUSE_X11:-0}`
1327
1328     dnl Allow wxUSE_PM only for OS/2 with EMX.
1329     case "${host}" in
1330       *-pc-os2_emx | *-pc-os2-emx )
1331         NUM_TOOLKITS=`expr ${NUM_TOOLKITS} + ${wxUSE_PM:-0}`
1332     esac
1333
1334     case "$NUM_TOOLKITS" in
1335       1)
1336       ;;
1337       0)
1338         AC_MSG_ERROR(Please specify a toolkit -- cannot determine the default for ${host})
1339       ;;
1340       *)
1341         AC_MSG_ERROR(Please specify at most one toolkit (maybe some are cached in configarg.cache?))
1342     esac
1343
1344     # to be removed when --disable-gtk2 isn't needed
1345     if test "x$wxUSE_GTK2" = "xyes"; then
1346         wxGTK_VERSION=2
1347     elif test "x$wxUSE_GTK2" = "xno"; then
1348         wxGTK_VERSION=1
1349     fi
1350
1351     dnl cache the wxUSE_<TOOLKIT> values too
1352     for toolkit in `echo $ALL_TOOLKITS`; do
1353       var=wxUSE_$toolkit
1354       eval "value=\$${var}"
1355       if test "x$value" != x; then
1356         cache_var=CACHE_$toolkit
1357         eval "cache=\$${cache_var}"
1358         if test "$cache" = 1; then
1359           echo "$var=$value" >> ${wx_arg_cache_file}
1360           eval "version=\$wx${toolkit}_VERSION"
1361           if test "x$version" != "x"; then
1362             echo "wx${toolkit}_VERSION=$version" >> ${wx_arg_cache_file}
1363           fi
1364         fi
1365         if test "$value" = 1; then
1366           toolkit_echo=`echo $toolkit | tr "[[A-Z]]" "[[a-z]]"`
1367           AC_MSG_RESULT($toolkit_echo)
1368         fi
1369       fi
1370     done
1371 else
1372     if test "x$host_alias" != "x"; then
1373         AC_MSG_RESULT(base ($host_alias hosted) only)
1374     else
1375         AC_MSG_RESULT(base only)
1376     fi
1377 fi
1378
1379 dnl ---------------------------------------------------------------------------
1380 dnl When we are using Cygwin with Motif/GTK+, we want it to appear like
1381 dnl 'just' a POSIX platform, so the Win32 API must not be available
1382 dnl ---------------------------------------------------------------------------
1383 dnl (Windows-only piece)
1384 wants_win32=0
1385 doesnt_want_win32=0
1386 case "${host}" in
1387   *-*-cygwin*)
1388       if test "$wxUSE_MSW" = 1 ; then
1389         wants_win32=1
1390         BAKEFILE_FORCE_PLATFORM=win32
1391       else
1392         doesnt_want_win32=1
1393       fi
1394   ;;
1395   *-*-mingw*)
1396       wants_win32=1
1397   ;;
1398 esac
1399
1400 dnl ---------------------------------------------------------------------------
1401 dnl Wine is a virtual platform, we need to patch things up a bit
1402 dnl ---------------------------------------------------------------------------
1403 if test "$wxUSE_WINE" = "yes"; then
1404     wants_win32=1
1405     dnl FIXME: we should do a better job of testing for these
1406     CC=winegcc
1407     CXX=wineg++
1408     LDFLAGS_GUI="-mwindows"
1409 fi
1410
1411 dnl NB: The two tests bellow are *NOT* mutually exclusive! They should only
1412 dnl     take effect on Cygwin/Mingw and not other platforms.
1413 if test "$wants_win32" = 1 ; then
1414     USE_UNIX=0
1415     USE_WIN32=1
1416     AC_DEFINE(__WIN32__)
1417     AC_DEFINE(__WIN95__)
1418     AC_DEFINE(__WINDOWS__)
1419     AC_DEFINE(__GNUWIN32__)
1420     AC_DEFINE(STRICT)
1421     AC_DEFINE(WINVER, 0x0400)
1422 fi
1423 if test "$doesnt_want_win32" = 1 ; then
1424     USE_UNIX=1
1425     USE_WIN32=0
1426 fi
1427 dnl (end of Windows-only piece)
1428
1429 if test "$USE_UNIX" = 1 ; then
1430     wxUSE_UNIX=yes
1431     AC_DEFINE(__UNIX__)
1432 fi
1433
1434 dnl ---------------------------------------------------------------------------
1435 dnl Checks for programs
1436 dnl ---------------------------------------------------------------------------
1437
1438 dnl flush the cache because checking for programs might abort
1439 AC_CACHE_SAVE
1440
1441 dnl C-compiler checks
1442 dnl   defines CC with the compiler to use
1443 dnl   defines GCC with yes if using gcc
1444 dnl   defines GCC empty if not using gcc
1445 dnl   defines CFLAGS
1446 dnl
1447 dnl this magic incantation is needed to prevent AC_PROG_CC from setting the
1448 dnl default CFLAGS (something like "-g -O2") -- we don't need this as we add
1449 dnl -g and -O flags ourselves below
1450 CFLAGS=${CFLAGS:=}
1451 AC_BAKEFILE_PROG_CC
1452
1453 dnl is -traditional needed for correct compilations
1454 dnl   adds -traditional for gcc if needed
1455 AC_PROG_GCC_TRADITIONAL
1456
1457 dnl do all checks from now on using the C++ compiler: this saves us a lot of
1458 dnl problems with various functions which may be available in libc but not
1459 dnl declared in the header and various pointer conversions which compile with
1460 dnl the C compiler but not in C++
1461 AC_LANG_PUSH(C++)
1462
1463 dnl C++-compiler checks
1464 dnl   defines CXX with the compiler to use
1465 dnl   defines GXX with yes if using gxx
1466 dnl   defines GXX empty if not using gxx
1467 dnl   defines CXXFLAGS
1468 dnl
1469 dnl see CFLAGS line above
1470 CXXFLAGS=${CXXFLAGS:=}
1471 AC_BAKEFILE_PROG_CXX
1472
1473 dnl ranlib command
1474 dnl   defines RANLIB with the appropriate command
1475 AC_PROG_RANLIB
1476
1477 dnl ar command
1478 dnl   defines AR with the appropriate command
1479 AC_CHECK_TOOL(AR, ar)
1480 if test "x$AR" = "x" ; then
1481     AC_MSG_ERROR([ar is needed to build wxWidgets])
1482 fi
1483
1484 dnl install checks
1485 dnl   defines INSTALL with the appropriate command
1486 AC_PROG_INSTALL
1487
1488 dnl   make install path absolute (if not already);
1489 dnl   will fail with (some) MSDOS paths
1490 case ${INSTALL} in
1491   /* ) # Absolute
1492      ;;
1493   ?:* ) # Drive letter, considered as absolute.
1494      ;;
1495   *)
1496      INSTALL=`pwd`/${INSTALL} ;;
1497 esac
1498
1499
1500 case "${host}" in
1501
1502     dnl The other BSD's should probably go in here too, since this is
1503     dnl to workaround a strange static lib BSDism.
1504     dnl Mac OS X install seems to ignore -p option...
1505     *-*-darwin* )
1506         INSTALL_PROGRAM="cp -fp"
1507         INSTALL_DATA="cp -fp"
1508         ;;
1509     *)
1510         ;;
1511 esac
1512
1513 dnl strip command
1514 dnl   defines STRIP as strip or nothing (true) if not found
1515 AC_CHECK_TOOL(STRIP, strip, true)
1516
1517 dnl Win32 tools
1518 if test "$wxUSE_WINE" = "yes"; then
1519     AC_CHECK_TOOL(WINDRES, wrc)
1520     RESCOMP="$WINDRES"
1521 else
1522     case "${host}" in
1523     *-*-cygwin* | *-*-mingw32* )
1524         dnl Bakefile CVS (as of 2005-11-24) now detects windres properly
1525         dnl ... maybe it does, but it does not make it available here
1526         dnl anymore, so do it ourselves still.
1527         AC_CHECK_TOOL(WINDRES, windres)
1528         RESCOMP="$WINDRES"
1529         AC_CHECK_TOOL(DLLTOOL, dlltool)
1530         ;;
1531     esac
1532 fi
1533
1534 dnl does make support "-include" (only GNU make does AFAIK)?
1535 AC_CACHE_CHECK([if make is GNU make], wx_cv_prog_makeisgnu,
1536 [
1537     if ( ${SHELL-sh} -c "${MAKE-make} --version" 2> /dev/null |
1538             egrep -s GNU > /dev/null); then
1539         wx_cv_prog_makeisgnu="yes"
1540     else
1541         wx_cv_prog_makeisgnu="no"
1542     fi
1543 ])
1544
1545 if test "x$wx_cv_prog_makeisgnu" = "xyes"; then
1546     IF_GNU_MAKE=""
1547 else
1548     IF_GNU_MAKE="#"
1549 fi
1550
1551 AC_SUBST(IF_GNU_MAKE)
1552
1553 dnl we don't need to check for VPATH support in GNU make - it does have it
1554 if test "x$wx_cv_prog_makeisgnu" != "xyes"; then
1555 dnl check if VPATH works
1556 AC_CACHE_CHECK([if make supports VPATH], wx_cv_prog_makevpath, [
1557 dnl create Makefile
1558 cat - << EOF > confMake
1559 check : file
1560         cp \$? \$@
1561         cp \$? final_file
1562 EOF
1563
1564 if test ! -d sub ; then
1565   mkdir sub
1566 fi
1567 echo dummy > sub/file
1568 ${MAKE-make} -f confMake VPATH=sub 2>&5 > /dev/null
1569 RESULT=$?
1570 rm -f sub/file check final_file confMake
1571 rmdir sub
1572 if test "$RESULT" = 0; then
1573   wx_cv_prog_makevpath="yes"
1574 else
1575   wx_cv_prog_makevpath="no"
1576 fi
1577 ])
1578
1579 if test "x$wx_cv_prog_makevpath" != "xyes"; then
1580 AC_MSG_ERROR([
1581 You need a make-utility that is able to use the variable
1582 VPATH correctly.
1583 If your version of make does not support VPATH correctly,
1584 please install GNU-make (possibly as gmake), and start
1585 configure with the following command:
1586 export MAKE=gmake; ./configure  for sh-type shells
1587 setenv MAKE gmake; ./configure  for csh-type shells
1588 Also please do remember to use gmake in this case every time
1589 you are trying to compile.
1590 ])
1591 fi dnl make without VPATH
1592 fi dnl not GNU make
1593
1594 dnl needed for making link to setup.h
1595 AC_PROG_LN_S
1596
1597
1598 dnl ------------------------------------------------------------------------
1599 dnl Platform specific tests
1600 dnl ------------------------------------------------------------------------
1601
1602 dnl xlC needs -qunique under AIX so that one source file can be
1603 dnl compiled to multiple object files and safely linked together.
1604 if test "x$XLCXX" = "xyes" -a "x$USE_AIX" = "x1"; then
1605     CXXFLAGS="-qunique $CXXFLAGS"
1606 fi
1607
1608 dnl This case is for PowerPC OS X vs. everything else
1609 case "${host}" in
1610   powerpc-*-darwin* )
1611     AC_MSG_CHECKING([if __POWERPC__ is already defined])
1612     AC_TRY_COMPILE([],[#ifndef __POWERPC__
1613         choke me for lack of PowerPC
1614 #endif
1615 ],
1616         [AC_MSG_RESULT([yes])],
1617         [AC_MSG_RESULT([no])
1618         AC_DEFINE(__POWERPC__)
1619     ])
1620   ;;
1621 esac
1622
1623 dnl This case is for OS X vs. everything else
1624 case "${host}" in
1625   *-*-darwin* )
1626     AC_MSG_CHECKING([if CoreFoundation/CFBase.h is usable])
1627     AC_TRY_COMPILE([#include <CoreFoundation/CFBase.h>
1628 ],[],
1629         [AC_MSG_RESULT([yes])],
1630         [AC_MSG_RESULT([no])
1631         AC_MSG_CHECKING([if __CF_USE_FRAMEWORK_INCLUDES__ is required])
1632         AC_TRY_COMPILE([#define __CF_USE_FRAMEWORK_INCLUDES__
1633 #include <CoreFoundation/CFBase.h>
1634         ],[],
1635         [AC_MSG_RESULT([yes])
1636         dnl We must use -D so source files that don't include wx/setup.h
1637         dnl but do include CFBase will work.
1638         CPPFLAGS="-D__CF_USE_FRAMEWORK_INCLUDES__ $CPPFLAGS"],
1639         [AC_MSG_FAILURE([no.  CoreFoundation not available.])]
1640         )
1641         ]
1642     )
1643   ;;
1644 esac
1645
1646 dnl This case is for OS/2 vs. everything else
1647 case "${host}" in
1648   *-pc-os2_emx | *-pc-os2-emx )
1649       dnl ---------------------------------------------------------------------
1650       dnl When we are using gcc on OS/2, we want to be either using resources
1651       dnl (PM) or a more complete POSIX emulation for Motif/GTK+/X11.
1652       dnl Moreover we need to link explicitly against either stdcpp.a or
1653       dnl stdcxx.a (depending on compiler version), since we are using "gcc",
1654       dnl not "g++/c++".
1655       dnl ---------------------------------------------------------------------
1656       dnl (OS/2-only piece)
1657       AC_LANG_PUSH(C)
1658       if test "$wxUSE_MOTIF" = 1 -o "$wxUSE_GTK" = 1 -o "$wxUSE_X11" = 1; then
1659           dnl More complete Unix emulation for unix-like ports
1660           dnl by linking in POSIX/2's cExt (if available).
1661           AC_CHECK_LIB(cExt, drand48, LIBS="$LIBS -lcExt")
1662       else
1663           dnl Include resources for the "native" port (wxPM).
1664           RESPROGRAMOBJ="\${top_srcdir}/include/wx/os2/wx.res"
1665       fi
1666       dnl Check for the gcc version (and thereby for the C runtime library).
1667       dnl wx_cv_gccversion = EMX2 -> Standard EMX environment
1668       dnl wx_cv_gccversion = EMX3 -> EMX with gcc-3.0.3 or gcc-3.2.1
1669       dnl wx_cv_gccversion = Innotek5 -> gcc-3.2.2 with Innotek libc5
1670       dnl wx_cv_gccversion = Innotek6 -> gcc-3.3.5 with Innotek libc6.
1671       AC_CACHE_CHECK([for gcc/libc version], wx_cv_gccversion,[
1672           AC_TRY_RUN(
1673               dnl Check the gcc version macro.
1674               [
1675                   #include <stdio.h>
1676
1677                   int main()
1678                   {
1679                       FILE *f=fopen("conftestval", "w");
1680                       if (!f) exit(1);
1681                       fprintf(f,
1682                   #if (__GNUC__ < 3)
1683                               "EMX2"
1684                   #elif (__GNUC__==3) && ((__GNUC_MINOR__ < 2) || ((__GNUC_MINOR__==2) && (__GNUC_PATCHLEVEL__<2)))
1685                               "EMX3"
1686                   #elif (__GNUC__==3) && (__GNUC_MINOR__==2) && (__GNUC_PATCHLEVEL__==2)
1687                               "Innotek5"
1688                   #else
1689                               "Innotek6"
1690                   #endif
1691                       );
1692                       exit(0);
1693                   }
1694               ],
1695               wx_cv_gccversion=`cat conftestval`,
1696               wx_cv_gccversion="EMX2",
1697               dnl Compilation error: Assuming standard EMX environment
1698               wx_cv_gccversion="EMX2"
1699           )
1700       ])
1701       AC_LANG_POP
1702       if test "$wx_cv_gccversion" = "EMX2"; then
1703           LIBS="$LIBS -lstdcpp"
1704           LDFLAGS="$LDFLAGS -Zsysv-signals"
1705       else
1706           if test "$wx_cv_gccversion" = "EMX3"; then
1707               LIBS="$LIBS -lstdcxx -lgcc"
1708               LDFLAGS="$LDFLAGS -Zsysv-signals"
1709           else
1710               LIBS="$LIBS -lstdc++"
1711           fi
1712       fi
1713       if test "$wxUSE_SHARED" = "yes" -a "$wxUSE_OMF" = "no"; then
1714         AC_MSG_WARN([Building DLLs requires OMF mode, enabled])
1715         wxUSE_OMF=yes
1716         enable_omf=yes
1717       fi
1718       dnl (end of OS/2-only piece)
1719   ;;
1720   *)
1721       dnl ---------------------------------------------------------------------
1722       dnl look for strcasecmp() in string.h and then strings.h if it's not
1723       dnl there. Don't do this on OS/2, where "stricmp" is the function to be
1724       dnl used.
1725       dnl ---------------------------------------------------------------------
1726       dnl (non-OS/2-only piece)
1727
1728       AC_CACHE_CHECK([for strcasecmp() in string.h], ac_cv_string_strcasecmp, [
1729           AC_TRY_LINK([
1730               #include <string.h>
1731               ],
1732               [
1733                   strcasecmp("foo", "bar");
1734               ],
1735               ac_cv_string_strcasecmp=yes,
1736               ac_cv_string_strcasecmp=no
1737           )
1738       ])
1739
1740       if test x"$ac_cv_string_strcasecmp" = "xyes"; then
1741           AC_DEFINE(HAVE_STRCASECMP_IN_STRING_H)
1742       else
1743           AC_CACHE_CHECK([for strcasecmp() in strings.h], ac_cv_strings_strcasecmp, [
1744               AC_TRY_LINK([
1745                   #include <strings.h>
1746                   ],
1747                   [
1748                       strcasecmp("foo", "bar");
1749                   ],
1750                   ac_cv_strings_strcasecmp=yes,
1751                   ac_cv_strings_strcasecmp=no
1752               )
1753           ])
1754
1755           if test x"$ac_cv_strings_strcasecmp" = "xyes"; then
1756               AC_DEFINE(HAVE_STRCASECMP_IN_STRINGS_H)
1757           else
1758               AC_MSG_ERROR([No case-insensitive string comparison function found.])
1759           fi
1760       fi
1761
1762       dnl (end of non-OS/2-only piece)
1763   ;;
1764 esac
1765
1766 dnl ------------------------------------------------------------------------
1767 dnl Check for headers
1768 dnl ------------------------------------------------------------------------
1769
1770 dnl defines HAVE_STDLIB_H
1771 AC_CHECK_HEADERS(stdlib.h)
1772 dnl defines HAVE_MALLOC_H
1773 AC_CHECK_HEADERS(malloc.h)
1774 dnl defines HAVE_UNISTD_H
1775 AC_CHECK_HEADERS(unistd.h)
1776 dnl defines HAVE_WCHAR_H
1777 AC_CHECK_HEADERS(wchar.h)
1778
1779 dnl maybe wchar_t is in wcstr.h if we don't have wchar.h?
1780 if test "$ac_cv_header_wchar_h" != "yes"; then
1781     dnl defines HAVE_WCSTR_H
1782     AC_CHECK_HEADERS(wcstr.h)
1783 fi
1784
1785 dnl defines HAVE_FNMATCH_H
1786 AC_CHECK_HEADERS(fnmatch.h)
1787
1788 dnl defines HAVE_LANGINFO_H (GNU libc locale parameters)
1789 AC_CHECK_HEADERS(langinfo.h)
1790
1791 case "${host}" in
1792   *-pc-os2_emx | *-pc-os2-emx )
1793       dnl Explicitly link -lintl if langinfo.h is available
1794       dnl and intl not yet included in libc
1795       if test $ac_cv_header_langinfo_h = "yes" \
1796                 -a \(   "$wx_cv_gccversion" = "EMX2" \
1797                      -o "$wx_cv_gccversion" = "EMX3" \
1798                      -o "$wx_cv_gccversion" = "Innotek5" \); then
1799           LIBS="$LIBS -lintl"
1800       fi
1801   ;;
1802 esac
1803
1804 dnl POSIX needs this for select(), but old systems don't have it
1805 if test "$USE_UNIX" = 1 ; then
1806     AC_CHECK_HEADERS([sys/select.h])
1807 fi
1808
1809 dnl ---------------------------------------------------------------------------
1810 dnl Checks for compiler characteristics
1811 dnl ---------------------------------------------------------------------------
1812
1813 dnl defines const to be empty if c-compiler does not support const fully
1814 AC_C_CONST
1815 dnl defines inline to a sensible value for the c-compiler
1816 AC_C_INLINE
1817
1818 dnl check the sizes of integral types (give some reasonable default values for
1819 dnl cross-compiling)
1820 dnl   defines the size of certain types of variables in SIZEOF_<TYPE>
1821 AC_CHECK_SIZEOF(char, 1)
1822 AC_CHECK_SIZEOF(short, 2)
1823 AC_CHECK_SIZEOF(void *, 4)
1824 AC_CHECK_SIZEOF(int, 4)
1825 AC_CHECK_SIZEOF(long, 4)
1826 AC_CHECK_SIZEOF(size_t, 4)
1827
1828 case "${host}" in
1829     arm-*-linux* )
1830         AC_CHECK_SIZEOF(long long, 8)
1831     ;;
1832     *-hp-hpux* )
1833         AC_CHECK_SIZEOF(long long, 0)
1834         if test "$ac_cv_sizeof_long_long" != "0"; then
1835             dnl HPUX 10.20 headers need this define in order to use long long definitions
1836             CPPFLAGS="-D_INCLUDE_LONGLONG $CPPFLAGS"
1837         fi
1838     ;;
1839     * )
1840         AC_CHECK_SIZEOF(long long, 0)
1841 esac
1842
1843 dnl SGI/Irix's stdio.h does not include wchar_t. Mac OS X does not provide
1844 dnl wchar.h and wchar_t is defined by stdlib.h (GD)
1845 AC_CHECK_SIZEOF(wchar_t, 0,
1846     [
1847         /* DJGPP's wchar_t is now a keyword in C++ (still not C though) */
1848         #if defined(__DJGPP__) && !( (__GNUC_MINOR__ >= 8 && __GNUC__ == 2 ) || __GNUC__ >= 3 )
1849         #  error "fake wchar_t"
1850         #endif
1851         #ifdef HAVE_WCHAR_H
1852         #  ifdef __CYGWIN__
1853         #    include <stddef.h>
1854         #  endif
1855         #  include <wchar.h>
1856         #endif
1857         #ifdef HAVE_STDLIB_H
1858         #  include <stdlib.h>
1859         #endif
1860         #include <stdio.h>
1861     ]
1862 )
1863 if test "$ac_cv_sizeof_wchar_t" != "0"; then
1864     wxUSE_WCHAR_T=yes
1865 else
1866     wxUSE_WCHAR_T=no
1867 fi
1868
1869 dnl checks needed to define wxVaCopy
1870 AC_CACHE_CHECK([for va_copy],
1871     wx_cv_func_va_copy,
1872     [
1873         AC_LINK_IFELSE([
1874             #include <stdarg.h>
1875             void foo(char *f, ...)
1876             {
1877                 va_list ap1, ap2;
1878                 va_start(ap1, f);
1879                 va_copy(ap2, ap1);
1880                 va_end(ap2);
1881                 va_end(ap1);
1882             }
1883             int main()
1884             {
1885                 foo("hi", 17);
1886                 return 0;
1887             }],
1888             wx_cv_func_va_copy=yes,
1889             wx_cv_func_va_copy=no
1890         )
1891     ]
1892 )
1893
1894 if test $wx_cv_func_va_copy = "yes"; then
1895     AC_DEFINE(HAVE_VA_COPY)
1896 else
1897     dnl try to understand how can we copy va_lists
1898     AC_CACHE_CHECK([if va_list can be copied by value],
1899         wx_cv_type_va_list_lvalue,
1900         [
1901             AC_RUN_IFELSE([
1902                 #include <stdarg.h>
1903                 int foo(char *f, ...)
1904                 {
1905                     va_list ap1, ap2;
1906                     va_start(ap1, f);
1907                     ap2 = ap1;
1908                     if ( va_arg(ap1, int) != 17 || va_arg(ap2, int) != 17 )
1909                         return 1;
1910                     va_end(ap2);
1911                     va_end(ap1);
1912                     return 0;
1913                 }
1914                 int main()
1915                 {
1916                     return foo("hi", 17);
1917                 }],
1918                 wx_cv_type_va_list_lvalue=yes,
1919                 wx_cv_type_va_list_lvalue=no,
1920                 dnl assume most common case for cross-compiling...
1921                 wx_cv_type_va_list_lvalue=yes
1922             )
1923         ]
1924     )
1925
1926     if test $wx_cv_type_va_list_lvalue != "yes"; then
1927         dnl we suppose that the only thing which can't be copied like this
1928         dnl are arrays... only experience will show whether this is really true
1929         AC_DEFINE(VA_LIST_IS_ARRAY)
1930     fi
1931 fi
1932
1933 dnl check for large file support
1934 AC_SYS_LARGEFILE
1935
1936 dnl we need to define _FILE_OFFSET_BITS or _LARGE_FILES on the compiler command
1937 dnl line because otherwise the system headers risk being included before
1938 dnl wx/defs.h which defines these constants leading to inconsistent
1939 dnl sizeof(off_t) in different source files of the same program and linking
1940 dnl problems
1941 if test "x$wx_largefile" = "xyes"; then
1942     if test "x$ac_cv_sys_file_offset_bits" = "x64"; then
1943         WXCONFIG_CPPFLAGS="$WXCONFIG_CPPFLAGS -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES"
1944
1945         dnl We get "Large Files (ILP32) not supported in strict ANSI mode."
1946         dnl #error from HP standard headers unless __STDC_EXT__ is defined.
1947         dnl The compiler should define it automatically, but some old g++
1948         dnl versions don't define it, so test and add it if necessary. AFAIK
1949         dnl the problem only affects the C++ compiler so it is added to
1950         dnl CXXFLAGS only.
1951         if test "$USE_HPUX" = 1 -a "$GXX" = "yes"; then
1952             AC_CACHE_CHECK(
1953                 [if -D__STDC_EXT__ is required],
1954                 wx_cv_STDC_EXT_required,
1955                 [
1956                     AC_TRY_COMPILE(
1957                         [],
1958                         [
1959                             #ifndef __STDC_EXT__
1960                                 choke me
1961                             #endif
1962                         ],
1963                         wx_cv_STDC_EXT_required=no,
1964                         wx_cv_STDC_EXT_required=yes
1965                     )
1966                 ]
1967             )
1968             if test "x$wx_cv_STDC_EXT_required" = "xyes"; then
1969                 WXCONFIG_CXXFLAGS="$WXCONFIG_CXXFLAGS -D__STDC_EXT__"
1970             fi
1971         fi
1972     else
1973         WXCONFIG_CPPFLAGS="$WXCONFIG_CPPFLAGS -D_LARGE_FILES"
1974     fi
1975     dnl AC_FUNC_FSEEKO sets HAVE_FSEEKO and $ac_cv_sys_largefile_source
1976     AC_FUNC_FSEEKO
1977     if test "$ac_cv_sys_largefile_source" != no; then
1978         WXCONFIG_CPPFLAGS="$WXCONFIG_CPPFLAGS -D_LARGEFILE_SOURCE=$ac_cv_sys_largefile_source"
1979     fi
1980 fi
1981
1982 dnl check for bytesex stuff (don't use AC_C_BIGENDIAN to allow cross-compiling)
1983 WX_C_BIGENDIAN
1984
1985 dnl check for iostream (as opposed to iostream.h) standard header
1986 WX_CPP_NEW_HEADERS(, AC_DEFINE(wxUSE_IOSTREAMH))
1987
1988 dnl check whether C++ compiler supports bool built-in type
1989 WX_CPP_BOOL
1990
1991 dnl check whether C++ compiler supports explicit keyword
1992 WX_CPP_EXPLICIT
1993
1994 dnl check whether C++ compiler supports C++ casts
1995 AC_CXX_CONST_CAST
1996 AC_CXX_REINTERPRET_CAST
1997 AC_CXX_STATIC_CAST
1998 dnl we don't use HAVE_DYNAMIC_CAST anywhere right now...
1999 dnl AC_CXX_DYNAMIC_CAST
2000
2001 dnl With Sun CC, temporaries have block scope by default. This flag is needed
2002 dnl to get the expression scope behaviour that conforms to the standard.
2003 if test "x$SUNCXX" = xyes; then
2004     CXXFLAGS="-features=tmplife $CXXFLAGS"
2005 fi
2006
2007 dnl Sun X11 headers are (still, in 2005!) non-ANSI and the best they could do
2008 dnl was to hack their C++ compiler to accept them silently -- but C compiler
2009 dnl still spits out dozens of warnings for each X include file, so suppress
2010 dnl them
2011 if test "x$SUNCC" = xyes; then
2012     CFLAGS="-erroff=E_NO_EXPLICIT_TYPE_GIVEN $CFLAGS"
2013 fi
2014
2015 dnl SGI mipsPro compiler gives this warning for "conversion from pointer to
2016 dnl same-sized integral type" even when there is an explicit cast and as there
2017 dnl is no way to turn it off and there are hundreds of these warnings in wx
2018 dnl sources, just turn it off for now
2019 dnl
2020 dnl a better long term solution would be to use #pragma set/reset woff in
2021 dnl wxPtrToUInt() and use it instead of casts elsewhere
2022 if test "x$SGICC" = "xyes"; then
2023     CFLAGS="-woff 3970 $CFLAGS"
2024 fi
2025 if test "x$SGICXX" = "xyes"; then
2026     CXXFLAGS="-woff 3970 $CXXFLAGS"
2027 fi
2028
2029 dnl HP-UX c89/aCC compiler warnings
2030 if test "x$HPCC" = "xyes"; then
2031     dnl 2011: "unrecognized preprocessor directive": nice warning but it's given
2032     dnl       even for directives inside #if which is not true (i.e. which are
2033     dnl       used for other compilers/OS) and so we have no way to get rid of it
2034     dnl 2450: "long long is non standard" -- yes, we know
2035     CFLAGS="+W 2011,2450 $CFLAGS"
2036 fi
2037 if test "x$HPCXX" = "xyes"; then
2038     dnl 2340: "value copied to temporary, reference to temporary used": very
2039     dnl       painful as triggered by any occurrence of user-defined conversion
2040     CXXFLAGS="+W 2340 $CXXFLAGS"
2041 fi
2042
2043 dnl DEC/Compaq/HP cxx warnings
2044 if test "x$COMPAQCXX" = "xyes"; then
2045     dnl -w0 enables all warnings, then we disable some of them:
2046     dnl basclsnondto: base class dtor non virtual (sometimes we do want this)
2047     dnl unrimpret:  "end of routine block may be unreachable" is given for
2048     dnl             every "if ( ) return ...; else return ...;"
2049     dnl intconlosbit: "conversion to integral type of smaller size could lose
2050     dnl               data" this is a useful warning but there are too many of
2051     dnl               them for now
2052     CXXFLAGS="-w0 -msg_disable basclsnondto,unrimpret,intconlosbit"
2053 fi
2054
2055 dnl check for std::string or std::wstring
2056 if test "$wxUSE_STD_STRING" = "yes" -o "$wxUSE_STL" = "yes"; then
2057     if test "$wxUSE_UNICODE" = "yes"; then
2058         std_string="std::wstring"
2059         char_type="wchar_t"
2060     else
2061         std_string="std::string"
2062         char_type="char"
2063     fi
2064
2065     dnl check if <string> declares std::wstring
2066     AC_MSG_CHECKING([for $std_string in <string>])
2067     AC_TRY_COMPILE([#include <string>],
2068                    [$std_string foo;],
2069                    [AC_MSG_RESULT(yes)
2070                     AC_DEFINE(HAVE_STD_WSTRING)],
2071                    [AC_MSG_RESULT(no)
2072                     AC_MSG_CHECKING([if std::basic_string<$char_type> works])
2073                     AC_TRY_COMPILE([
2074                         #ifdef HAVE_WCHAR_H
2075                         #  ifdef __CYGWIN__
2076                         #    include <stddef.h>
2077                         #  endif
2078                         #  include <wchar.h>
2079                         #endif
2080                         #ifdef HAVE_STDLIB_H
2081                         #  include <stdlib.h>
2082                         #endif
2083                         #include <stdio.h>
2084                         #include <string>
2085                         ],
2086                         [std::basic_string<$char_type> foo;
2087                          const $char_type* dummy = foo.c_str();],
2088                         [AC_MSG_RESULT(yes)],
2089                         [AC_MSG_RESULT([no])
2090                          if test "$wxUSE_STL" = "yes"; then
2091                              AC_MSG_ERROR([Can't use --enable-stl without $std_string or std::basic_string<$char_type>])
2092                          elif grep wxUSE_STD_STRING $wx_arg_cache_file >/dev/null; then
2093                              AC_MSG_ERROR([Can't use --enable-std_string without $std_string or std::basic_string<$char_type>])
2094                          else
2095                              AC_MSG_WARN([No $std_string or std::basic_string<$char_type>, switching to --disable-std_string])
2096                              wxUSE_STD_STRING=no
2097                          fi
2098                         ]
2099                     )
2100                     ])
2101 fi
2102
2103 if test "$wxUSE_STD_IOSTREAM" = "yes"; then
2104     AC_CHECK_TYPES([std::istream, std::ostream],,
2105                    [wxUSE_STD_IOSTREAM=no],
2106                    [#include <iostream>])
2107
2108     if test "$wxUSE_STD_IOSTREAM" != "yes"; then
2109         if grep wxUSE_STD_IOSTREAM $wx_arg_cache_file >/dev/null; then
2110             AC_MSG_ERROR([Can't use --enable-std_iostreams without std::istream and std::ostream])
2111         else
2112             AC_MSG_WARN([No std::iostreams, switching to --disable-std_iostreams])
2113         fi
2114     fi
2115 fi
2116
2117 if test "$wxUSE_STL" = "yes"; then
2118     dnl check for basic STL functionality
2119     AC_MSG_CHECKING([for basic STL functionality])
2120     AC_TRY_COMPILE([#include <string>
2121                     #include <functional>
2122                     #include <algorithm>
2123                     #include <vector>
2124                     #include <list>],
2125                     [std::vector<int> moo;
2126                      std::list<int> foo;
2127                      std::vector<int>::iterator it =
2128                          std::find_if(moo.begin(), moo.end(),
2129                                       std::bind2nd(std::less<int>(), 3));],
2130                     [AC_MSG_RESULT([yes])],
2131                     [AC_MSG_RESULT([no])
2132                      AC_MSG_ERROR([Basic STL functionality missing])])
2133
2134     dnl check for compliant std::string::compare
2135     AC_MSG_CHECKING([for compliant std::string::compare])
2136     AC_TRY_COMPILE([#include <string>],
2137                    [std::string foo, bar;
2138                     foo.compare(bar);
2139                     foo.compare(1, 1, bar);
2140                     foo.compare(1, 1, bar, 1, 1);
2141                     foo.compare("");
2142                     foo.compare(1, 1, "");
2143                     foo.compare(1, 1, "", 2);],
2144                    [AC_MSG_RESULT(yes)
2145                     AC_DEFINE(HAVE_STD_STRING_COMPARE)],
2146                    [AC_MSG_RESULT(no)])
2147
2148     dnl check for hash_map and hash_set headers
2149     AC_CHECK_HEADER([hash_map],
2150                     [AC_MSG_CHECKING([for hash_map and hash_set])
2151                      AC_TRY_COMPILE([#include <hash_map>
2152                                      #include <hash_set>],
2153                                     [std::hash_map<double*, char*, std::hash<double*>, std::equal_to<double*> > test1;
2154                                      std::hash_set<char*, std::hash<char*>, std::equal_to<char*> > test2;],
2155                                     [AC_MSG_RESULT(yes)
2156                                      AC_DEFINE(HAVE_HASH_MAP)
2157                                      AC_DEFINE(HAVE_STD_HASH_MAP)],
2158                                     [AC_MSG_RESULT(no)])
2159                      ])
2160
2161     AC_CHECK_HEADER([ext/hash_map],
2162                     [AC_MSG_CHECKING([for hash_map and hash_set])
2163                      AC_TRY_COMPILE([#include <ext/hash_map>
2164                                      #include <ext/hash_set>],
2165                                     [__gnu_cxx::hash_map<double*, char*, __gnu_cxx::hash<double*>, std::equal_to<double*> > test1;
2166                                      __gnu_cxx::hash_set<char*, __gnu_cxx::hash<char*>, std::equal_to<char*> > test2;],
2167                                     [AC_MSG_RESULT(yes)
2168                                      AC_DEFINE(HAVE_EXT_HASH_MAP)
2169                                      AC_DEFINE(HAVE_GNU_CXX_HASH_MAP)],
2170                                     [AC_MSG_RESULT(no)])
2171                      ])
2172 fi
2173
2174 dnl ---------------------------------------------------------------------------
2175 dnl Define search path for includes and libraries: all headers and libs will be
2176 dnl looked for in all directories of this path
2177 dnl ---------------------------------------------------------------------------
2178
2179 dnl Notice that /usr/include should *not* be in this list, otherwise it breaks
2180 dnl compilation on Solaris/AIX/... with gcc because standard (non ANSI C)
2181 dnl headers are included instead of the "fixed" (ANSI-fied) gcc ones.
2182 dnl
2183 dnl Also try to put all directories which may contain X11R6 before those which
2184 dnl may contain X11R5/4 - we want to use R6 on machines which have both!
2185 dnl
2186 dnl In the same vein. Motif 2.1 should be tried before Motif 1.2 for the
2187 dnl systems which have both (AIX 4.x does)
2188 SEARCH_INCLUDE="\
2189     /usr/local/include        \
2190                               \
2191     /usr/Motif-2.1/include    \
2192     /usr/Motif-1.2/include    \
2193     /usr/include/Motif1.2     \
2194                               \
2195     /usr/dt/include           \
2196     /usr/openwin/include      \
2197                               \
2198     /usr/include/Xm           \
2199                               \
2200     /usr/X11R6/include        \
2201     /usr/X11R6.4/include      \
2202     /usr/X11R5/include        \
2203     /usr/X11R4/include        \
2204                               \
2205     /usr/include/X11R6        \
2206     /usr/include/X11R5        \
2207     /usr/include/X11R4        \
2208                               \
2209     /usr/local/X11R6/include  \
2210     /usr/local/X11R5/include  \
2211     /usr/local/X11R4/include  \
2212                               \
2213     /usr/local/include/X11R6  \
2214     /usr/local/include/X11R5  \
2215     /usr/local/include/X11R4  \
2216                               \
2217     /usr/X11/include          \
2218     /usr/include/X11          \
2219     /usr/local/X11/include    \
2220     /usr/local/include/X11    \
2221                               \
2222     /usr/XFree86/include/X11  \
2223     /usr/pkg/include          \
2224                               \
2225     /usr/openwin/share/include"
2226
2227 dnl try to find out the standard lib locations for the systems with multiple
2228 dnl ABIs
2229 AC_MSG_CHECKING([for libraries directory])
2230
2231 case "${host}" in
2232     *-*-irix6* )
2233         AC_CACHE_VAL(
2234             wx_cv_std_libpath,
2235             [
2236                 for d in WX_STD_LIBPATH(); do
2237                     for e in a so sl dylib dll.a; do
2238                         libc="$d/libc.$e"
2239                         if test -f $libc; then
2240                             save_LIBS="$LIBS"
2241                             LIBS="$libc"
2242                             AC_LINK_IFELSE([int main() { return 0; }],
2243                                 wx_cv_std_libpath=`echo $d | sed s@/usr/@@`)
2244                             LIBS="$save_LIBS"
2245                             if test "x$wx_cv_std_libpath" != "x"; then
2246                                 break 2
2247                             fi
2248                         fi
2249                     done
2250                 done
2251                 if test "x$wx_cv_std_libpath" = "x"; then
2252                     wx_cv_std_libpath="lib"
2253                 fi
2254             ]
2255         )
2256         ;;
2257
2258     *-*-solaris2* )
2259         dnl use ../lib or ../lib/64 depending on the size of void*
2260         if test "$ac_cv_sizeof_void_p" = 8 -a -d "/usr/lib/64"; then
2261             wx_cv_std_libpath="lib/64"
2262         else
2263             wx_cv_std_libpath="lib"
2264         fi
2265         ;;
2266
2267     *-*-linux* )
2268         dnl use ../lib or ../lib64 depending on the size of void*
2269         if test "$ac_cv_sizeof_void_p" = 8 -a \
2270                 -d "/usr/lib64" -a ! -h "/usr/lib64"; then
2271             wx_cv_std_libpath="lib64"
2272         else
2273             wx_cv_std_libpath="lib"
2274         fi
2275         ;;
2276
2277     *)
2278         wx_cv_std_libpath="lib";
2279         ;;
2280 esac
2281
2282 AC_MSG_RESULT($wx_cv_std_libpath)
2283
2284 SEARCH_LIB="`echo "$SEARCH_INCLUDE" | sed s@include@$wx_cv_std_libpath@g` /usr/$wx_cv_std_libpath"
2285
2286 dnl Cross compiling with gcc?
2287 if test "$build" != "$host" -a "$GCC" = yes; then
2288     dnl for gcc cross-compilers "$CC -print-prog-name=ld" prints the path to
2289     dnl the linker. Stripping off the trailing '/bin/ld' gives us a candiate
2290     dnl for a 'root' below which libraries and headers for the target system
2291     dnl might be installed.
2292     if cross_root=`$CC -print-prog-name=ld 2>/dev/null`; then
2293         cross_root=`dirname $cross_root`
2294         cross_root=`dirname $cross_root`
2295
2296         dnl substitute this candiate root for '^/usr' in the search lists,
2297         dnl strip out any that don't start '^/usr'.
2298         SEARCH_LIB=`for x in $SEARCH_LIB; do echo $x; done | sed -ne "s|^/usr|$cross_root|p"`
2299         SEARCH_INCLUDE=`for x in $SEARCH_INCLUDE; do echo $x; done | sed -ne "s|^/usr|$cross_root|p"`
2300         SEARCH_INCLUDE="$SEARCH_INCLUDE $cross_root/include"
2301
2302         dnl also have pkg-config search for *.pc files under this 'root'
2303         if test -z "$PKG_CONFIG_PATH"; then
2304             PKG_CONFIG_PATH="$cross_root/local/lib/pkgconfig:$cross_root/lib/pkgconfig"
2305             export PKG_CONFIG_PATH
2306         fi
2307
2308         dnl AC_PATH_XTRA doesn't work currently unless -x-includes and
2309         dnl -x-libraries are given on the command line. So if they are not
2310         dnl set then set them here to plausible defaults.
2311         if test -z "$x_includes" -o "$x_includes" = NONE; then
2312             WX_PATH_FIND_INCLUDES($SEARCH_INCLUDE, X11/Intrinsic.h)
2313             x_includes=$ac_find_includes
2314         fi
2315         if test -z "$x_libraries" -o "$x_libraries" = NONE; then
2316             WX_PATH_FIND_LIBRARIES($SEARCH_LIB, Xt)
2317             x_libraries=$ac_find_libraries
2318         fi
2319     fi
2320 fi
2321
2322 dnl ------------------------------------------------------------------------
2323 dnl Check for libraries
2324 dnl ------------------------------------------------------------------------
2325
2326 dnl flush the cache because checking for libraries below might abort
2327 AC_CACHE_SAVE
2328
2329 dnl check for glibc version
2330 dnl
2331 dnl VZ: I have no idea why had this check been there originally, but now
2332 dnl     we could probably do without it by just always adding _GNU_SOURCE
2333 if test "$USE_LINUX" = 1 -o "$USE_GNU" = 1; then
2334     AC_CACHE_CHECK([for glibc 2.1 or later], wx_cv_lib_glibc21,[
2335         AC_TRY_COMPILE([#include <features.h>],
2336             [
2337                 #if (__GLIBC__ < 2) || (__GLIBC_MINOR__ < 1)
2338                 not glibc 2.1
2339                 #endif
2340             ],
2341             [
2342                 wx_cv_lib_glibc21=yes
2343             ],
2344             [
2345                 wx_cv_lib_glibc21=no
2346             ]
2347         )
2348     ])
2349     if test "$wx_cv_lib_glibc21" = "yes"; then
2350         AC_DEFINE(wxHAVE_GLIBC2)
2351     fi
2352 fi
2353
2354 dnl we may need _GNU_SOURCE for 2 things:
2355 dnl
2356 dnl  1. to get PTHREAD_MUTEX_RECURSIVE with glibc 2.1+ (strictly speaking we
2357 dnl  only need _XOPEN_SOURCE=500 but just defining this disables _BSD_SOURCE
2358 dnl  which breaks libtiff compilation, so it is simpler to just define
2359 dnl  _GNU_SOURCE to get everything)
2360 dnl
2361 dnl  2. for Unicode functions
2362 if test "x$wx_cv_lib_glibc21" = "xyes"; then
2363     if test "$wxUSE_UNICODE" = "yes" -o "$wxUSE_THREADS" = "yes"; then
2364         AC_DEFINE(_GNU_SOURCE)
2365     fi
2366 fi
2367
2368 dnl Only add the -lm library if floating point functions cannot be used
2369 dnl without it.  This check is important on cygwin because of the bizarre
2370 dnl way that they have organized functions into libraries.  On cygwin, both
2371 dnl libc.a and libm.a are symbolic links to a single lib libcygwin.a.  This
2372 dnl means that
2373 dnl   1) linking with -lm is not necessary, and
2374 dnl   2) linking with -lm is dangerous if the order of libraries is wrong
2375 dnl In particular, if you compile any program with -mno-cygwin and link with
2376 dnl -lm, it will crash instantly when it is run.  This happens because the
2377 dnl linker incorrectly links the Cygwin libm.a (==libcygwin.a), which replaces
2378 dnl the ___main function instead of allowing it to be defined by
2379 dnl /usr/lib/mingw/libmingw32.a as it should be.
2380 dnl
2381 dnl On MacOS X, this test will find that -lm is unnecessary and leave it out.
2382 dnl
2383 dnl Just check a few floating point functions. If they are all found without
2384 dnl -lm, then we must not need -lm.
2385 have_cos=0
2386 have_floor=0
2387 AC_CHECK_FUNCS(cos, have_cos=1)
2388 AC_CHECK_FUNCS(floor, have_floor=1)
2389 AC_MSG_CHECKING(if floating point functions link without -lm)
2390 if test "$have_cos" = 1 -a "$have_floor" = 1; then
2391     AC_MSG_RESULT(yes)
2392 else
2393     AC_MSG_RESULT(no)
2394     LIBS="$LIBS -lm"
2395     # use different functions to avoid configure caching
2396     have_sin=0
2397     have_ceil=0
2398     AC_CHECK_FUNCS(sin, have_sin=1)
2399     AC_CHECK_FUNCS(ceil, have_ceil=1)
2400     AC_MSG_CHECKING(if floating point functions link with -lm)
2401     if test "$have_sin" = 1 -a "$have_ceil" = 1; then
2402         AC_MSG_RESULT(yes)
2403     else
2404         AC_MSG_RESULT(no)
2405         # not sure we should warn the user, crash, etc.
2406     fi
2407 fi
2408
2409 dnl ---------------------------------------------------------------------------
2410 dnl Optional libraries
2411 dnl
2412 dnl   --with-<lib>=sys
2413 dnl       looks for system library and fails if not found
2414 dnl
2415 dnl   --with-<lib>
2416 dnl   --with-<lib>=yes
2417 dnl       looks for system library and, if not found, prints a warning,
2418 dnl       falls back to the builtin wx version, and continues configuration
2419 dnl
2420 dnl   --with-<lib>=builtin
2421 dnl       uses builtin wx version without searching for system library
2422 dnl
2423 dnl   --with-<lib>=no
2424 dnl   --without-<lib>
2425 dnl       do not use library (neither system nor builtin wx version)
2426 dnl
2427 dnl ---------------------------------------------------------------------------
2428
2429 dnl ------------------------------------------------------------------------
2430 dnl Check for regex libraries
2431 dnl ------------------------------------------------------------------------
2432
2433 if test "$wxUSE_REGEX" != "no"; then
2434     AC_DEFINE(wxUSE_REGEX)
2435
2436     if test "$wxUSE_UNICODE" = "yes" -a "$wxUSE_REGEX" = "yes"; then
2437         AC_MSG_WARN([Defaulting to the the builtin regex library for Unicode build.])
2438         wxUSE_REGEX=builtin
2439     fi
2440
2441     if test "$wxUSE_REGEX" = "sys" -o "$wxUSE_REGEX" = "yes" ; then
2442         dnl according to Unix 98 specs, regcomp() is in libc but I believe that
2443         dnl on some old systems it may be in libregex - check for it too?
2444         AC_CHECK_HEADER(regex.h, [AC_CHECK_FUNCS(regcomp re_search)])
2445
2446         if test "x$ac_cv_func_regcomp" != "xyes"; then
2447             if test "$wxUSE_REGEX" = "sys" ; then
2448                 AC_MSG_ERROR([system regex library not found! Use --with-regex to use built-in version])
2449             else
2450                 AC_MSG_WARN([system regex library not found, will use built-in instead])
2451                 wxUSE_REGEX=builtin
2452             fi
2453         else
2454             dnl we are using the system library
2455             wxUSE_REGEX=sys
2456             dnl only the built-in supports advanced REs
2457             AC_DEFINE(WX_NO_REGEX_ADVANCED)
2458         fi
2459     fi
2460 fi
2461
2462 dnl ------------------------------------------------------------------------
2463 dnl Check for zlib compression library
2464 dnl ------------------------------------------------------------------------
2465
2466 ZLIB_LINK=
2467 if test "$wxUSE_ZLIB" != "no" ; then
2468     AC_DEFINE(wxUSE_ZLIB)
2469
2470     if test "$wxUSE_ZLIB" = "sys" -o "$wxUSE_ZLIB" = "yes" ; then
2471         dnl don't test for zlib under Mac -- its verson there is 1.1.3 but we
2472         dnl should still use it because hopefully (can someone confirm this?)
2473         dnl Apple did fix the security problem in it and not using the system
2474         dnl library results in a whole bunch of warnings when linking with
2475         dnl Carbon framework
2476         if test "$USE_DARWIN" = 1; then
2477             system_zlib_h_ok="yes"
2478         else
2479             dnl we have troubles with ancient zlib versions (e.g. 1.0.4 is
2480             dnl known to not work) and although I don't know which is
2481             dnl the minimal required version it's safer to test for 1.1.4 as
2482             dnl it fixes a security problem in 1.1.3 -- and hopefully nobody
2483             dnl has anything more ancient (1.1.3 was released in July 1998)
2484             dnl anyhow
2485             AC_CACHE_CHECK([for zlib.h >= 1.1.4], ac_cv_header_zlib_h,
2486                 [AC_TRY_RUN(
2487                     dnl zlib.h defines ZLIB_VERSION="x.y.z"
2488                     [
2489                         #include <zlib.h>
2490                         #include <stdio.h>
2491
2492                         int main()
2493                         {
2494                             FILE *f=fopen("conftestval", "w");
2495                             if (!f) exit(1);
2496                             fprintf(f, "%s",
2497                                     ZLIB_VERSION[0] == '1' &&
2498                                     (ZLIB_VERSION[2] > '1' ||
2499                                     (ZLIB_VERSION[2] == '1' &&
2500                                      ZLIB_VERSION[4] >= '4')) ? "yes" : "no");
2501                             exit(0);
2502                         }
2503                     ],
2504                     ac_cv_header_zlib_h=`cat conftestval`,
2505                     ac_cv_header_zlib_h=no,
2506                     dnl cross-compiling: don't have an answer, try later
2507                     unset ac_cv_header_zlib_h
2508                 )]
2509             )
2510             dnl If the test above did not come up with a value (e.g. cross
2511             dnl compiling) then this should give a definitive answer
2512             AC_CHECK_HEADER(zlib.h)
2513
2514             system_zlib_h_ok=$ac_cv_header_zlib_h
2515         fi
2516
2517         if test "$system_zlib_h_ok" = "yes"; then
2518             AC_CHECK_LIB(z, deflate, ZLIB_LINK=" -lz")
2519         fi
2520
2521         if test "x$ZLIB_LINK" = "x" ; then
2522             if test "$wxUSE_ZLIB" = "sys" ; then
2523                 AC_MSG_ERROR([zlib library not found or too old! Use --with-zlib=builtin to use built-in version])
2524             else
2525                 AC_MSG_WARN([zlib library not found or too old, will use built-in instead])
2526                 wxUSE_ZLIB=builtin
2527             fi
2528         else
2529             dnl we are using the system library
2530             wxUSE_ZLIB=sys
2531         fi
2532     fi
2533 fi
2534
2535 dnl ------------------------------------------------------------------------
2536 dnl Check for png library
2537 dnl ------------------------------------------------------------------------
2538
2539 PNG_LINK=
2540 if test "$wxUSE_LIBPNG" != "no" ; then
2541     AC_DEFINE(wxUSE_LIBPNG)
2542
2543     if test "$wxUSE_MGL" = 1 -a "$wxUSE_LIBPNG" = "builtin" ; then
2544         AC_MSG_WARN([wxMGL doesn't work with builtin png library, will use MGL one instead])
2545         wxUSE_LIBPNG=sys
2546     fi
2547
2548     dnl for the check below to have a chance to succeed, we must already have
2549     dnl libz somewhere (don't do this when bulding wxMGL since its libpng
2550     dnl doesn't depend on zlib)
2551     if test "$wxUSE_MGL" != 1 -a "$wxUSE_LIBPNG" = "sys" -a "$wxUSE_ZLIB" != "sys" ; then
2552         AC_MSG_WARN([system png library doesn't work without system zlib, will use built-in instead])
2553         wxUSE_LIBPNG=builtin
2554     fi
2555
2556     if test "$wxUSE_MGL" != 1 ; then
2557         dnl Don't check for libpng when building wxMGL, libmgl contains it
2558         if test "$wxUSE_LIBPNG" = "sys" -o "$wxUSE_LIBPNG" = "yes" ; then
2559             dnl libpng version 0.9 is known to not work, if an even newer
2560             dnl version is required, just bump it up in the test below
2561             AC_CACHE_CHECK([for png.h > 0.90], ac_cv_header_png_h,
2562                 [AC_TRY_RUN(
2563                     dnl png.h defines PNG_LIBPNG_VER=number
2564                     [
2565                         #include <png.h>
2566                         #include <stdio.h>
2567
2568                         int main()
2569                         {
2570                             FILE *f=fopen("conftestval", "w");
2571                             if (!f) exit(1);
2572                             fprintf(f, "%s",
2573                                      PNG_LIBPNG_VER > 90 ? "yes" : "no");
2574                             exit(0);
2575                         }
2576                     ],
2577                     ac_cv_header_png_h=`cat conftestval`,
2578                     ac_cv_header_png_h=no,
2579                     dnl cross-compiling: test (later) if we have any png.h
2580                     unset ac_cv_header_png_h
2581                 )]
2582             )
2583             AC_CHECK_HEADER(png.h)
2584
2585             if test "$ac_cv_header_png_h" = "yes"; then
2586                 AC_CHECK_LIB(png, png_check_sig, PNG_LINK=" -lpng -lz", , [-lz -lm])
2587             fi
2588
2589             if test "x$PNG_LINK" = "x" ; then
2590                 if test "$wxUSE_LIBPNG" = "sys" ; then
2591                     AC_MSG_ERROR([system png library not found or too old! Use --with-libpng=builtin to use built-in version])
2592                 else
2593                     AC_MSG_WARN([system png library not found or too old, will use built-in instead])
2594                     wxUSE_LIBPNG=builtin
2595                 fi
2596             else
2597                 dnl we are using the system library
2598                 wxUSE_LIBPNG=sys
2599             fi
2600         fi
2601     fi
2602
2603     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS png"
2604 fi
2605
2606 dnl ------------------------------------------------------------------------
2607 dnl Check for jpeg library
2608 dnl ------------------------------------------------------------------------
2609
2610 JPEG_LINK=
2611 if test "$wxUSE_LIBJPEG" != "no" ; then
2612     AC_DEFINE(wxUSE_LIBJPEG)
2613
2614     if test "$wxUSE_MGL" = 1 -a "$wxUSE_LIBJPEG" = "builtin" ; then
2615         AC_MSG_WARN([wxMGL doesn't work with builtin jpeg library, will use MGL one instead])
2616         wxUSE_LIBJPEG=sys
2617     fi
2618
2619     if test "$wxUSE_MGL" != 1 ; then
2620         dnl Don't check for libjpeg when building wxMGL, libmgl contains it
2621         if test "$wxUSE_LIBJPEG" = "sys" -o "$wxUSE_LIBJPEG" = "yes" ; then
2622             dnl can't use AC_CHECK_HEADER as jconfig.h defines things like
2623             dnl HAVE_STDLIB_H which are already defined and this provokes
2624             dnl a compiler warning which configure considers as an error...
2625             AC_MSG_CHECKING(for jpeglib.h)
2626             AC_CACHE_VAL(ac_cv_header_jpeglib_h,
2627                 AC_TRY_COMPILE(
2628                     [
2629                         #undef HAVE_STDLIB_H
2630                         #include <stdio.h>
2631                         #include <jpeglib.h>
2632                     ],
2633                     [
2634                     ],
2635                     ac_cv_header_jpeglib_h=yes,
2636                     ac_cv_header_jpeglib_h=no
2637                 )
2638             )
2639             AC_MSG_RESULT($ac_cv_header_jpeglib_h)
2640
2641             if test "$ac_cv_header_jpeglib_h" = "yes"; then
2642                 AC_CHECK_LIB(jpeg, jpeg_read_header, JPEG_LINK=" -ljpeg")
2643             fi
2644
2645             if test "x$JPEG_LINK" = "x" ; then
2646                 if test "$wxUSE_LIBJPEG" = "sys" ; then
2647                     AC_MSG_ERROR([system jpeg library not found! Use --with-libjpeg=builtin to use built-in version])
2648                 else
2649                     AC_MSG_WARN([system jpeg library not found, will use built-in instead])
2650                     wxUSE_LIBJPEG=builtin
2651                 fi
2652             else
2653                 dnl we are using the system library
2654                 wxUSE_LIBJPEG=sys
2655             fi
2656         fi
2657     fi
2658 fi
2659
2660 dnl ------------------------------------------------------------------------
2661 dnl Check for tiff library
2662 dnl ------------------------------------------------------------------------
2663
2664 TIFF_LINK=
2665 TIFF_PREREQ_LINKS=-lm
2666 if test "$wxUSE_LIBTIFF" != "no" ; then
2667     AC_DEFINE(wxUSE_LIBTIFF)
2668
2669     if test "$wxUSE_LIBTIFF" = "sys" -o "$wxUSE_LIBTIFF" = "yes" ; then
2670         dnl libtiff may depend on libjpeg and libz so use them in the test
2671         dnl below or it would fail
2672         if test "$wxUSE_LIBJPEG" = "sys"; then
2673             TIFF_PREREQ_LINKS="$TIFF_PREREQ_LINKS $JPEG_LINK"
2674         fi
2675         if test "$wxUSE_ZLIB" = "sys"; then
2676             TIFF_PREREQ_LINKS="$TIFF_PREREQ_LINKS $ZLIB_LINK"
2677         fi
2678         AC_CHECK_HEADER(tiffio.h,
2679                         [
2680                             AC_CHECK_LIB(tiff, TIFFError,
2681                                          TIFF_LINK=" -ltiff",
2682                                          ,
2683                                          $TIFF_PREREQ_LINKS)
2684                         ]
2685                        )
2686
2687         if test "x$TIFF_LINK" = "x" ; then
2688             if test "$wxUSE_LIBTIFF" = "sys" ; then
2689                 AC_MSG_ERROR([system tiff library not found! Use --with-libtiff=builtin to use built-in version])
2690             else
2691                 AC_MSG_WARN([system tiff library not found, will use built-in instead])
2692                 wxUSE_LIBTIFF=builtin
2693             fi
2694         else
2695             dnl we are using the system library
2696             wxUSE_LIBTIFF=sys
2697         fi
2698     fi
2699 fi
2700
2701 dnl ------------------------------------------------------------------------
2702 dnl Check for expat libraries
2703 dnl ------------------------------------------------------------------------
2704
2705 if test "$wxUSE_WCHAR_T" != "yes"; then
2706     if test "$wxUSE_EXPAT" != "no"; then
2707         AC_MSG_WARN([wxWidgets requires wchar_t to use expat, disabling])
2708         wxUSE_EXPAT=no
2709     fi
2710     if test "$wxUSE_XML" != "no"; then
2711         AC_MSG_WARN([wxWidgets requires wchar_t to use xml, disabling])
2712         wxUSE_XML=no
2713     fi
2714 fi
2715
2716 if test "$wxUSE_EXPAT" != "no"; then
2717     wxUSE_XML=yes
2718     AC_DEFINE(wxUSE_EXPAT)
2719     AC_DEFINE(wxUSE_XML)
2720
2721     if test "$wxUSE_EXPAT" = "sys" -o "$wxUSE_EXPAT" = "yes" ; then
2722         AC_CHECK_HEADER([expat.h], [found_expat_h=1])
2723         if test "x$found_expat_h" = "x1"; then
2724             dnl Expat 1.95.6 comes with broken expat.h:
2725             AC_CACHE_CHECK([if expat.h is valid C++ header],
2726                 wx_cv_expat_is_not_broken,
2727                 [
2728                 AC_TRY_COMPILE([#include <expat.h>],[],
2729                     wx_cv_expat_is_not_broken=yes,
2730                     wx_cv_expat_is_not_broken=no
2731                 )
2732                 ]
2733             )
2734             if test "$wx_cv_expat_is_not_broken" = "yes" ; then
2735                 AC_CHECK_LIB(expat, XML_ParserCreate, EXPAT_LINK=" -lexpat")
2736             fi
2737         fi
2738         if test "x$EXPAT_LINK" = "x" ; then
2739             if test "$wxUSE_EXPAT" = "sys" ; then
2740                 AC_MSG_ERROR([system expat library not found! Use --with-expat=builtin to use built-in version])
2741             else
2742                 AC_MSG_WARN([system expat library not found, will use built-in instead])
2743                 wxUSE_EXPAT=builtin
2744             fi
2745         else
2746             dnl we are using the system library
2747             wxUSE_EXPAT=sys
2748         fi
2749     fi
2750     if test "$wxUSE_EXPAT" = "builtin" ; then
2751         dnl Expat needs this:
2752         AC_CONFIG_SUBDIRS([src/expat])
2753     fi
2754 fi
2755
2756
2757 dnl ------------------------------------------------------------------------
2758 dnl Check for libmspack
2759 dnl ------------------------------------------------------------------------
2760
2761 if test "$wxUSE_LIBMSPACK" != "no"; then
2762     AC_CHECK_HEADER([mspack.h], [found_mspack_h=1])
2763     if test "x$found_mspack_h" = "x1"; then
2764         AC_CHECK_LIB(mspack, mspack_create_chm_decompressor,
2765                      MSPACK_LINK=" -lmspack")
2766     fi
2767     if test "x$MSPACK_LINK" = "x" ; then
2768         wxUSE_LIBMSPACK=no
2769     fi
2770 fi
2771
2772 if test "$wxUSE_LIBMSPACK" != "no"; then
2773     AC_DEFINE(wxUSE_LIBMSPACK)
2774 fi
2775
2776
2777 dnl ----------------------------------------------------------------
2778 dnl search for toolkit (widget sets)
2779 dnl ----------------------------------------------------------------
2780
2781 AFMINSTALL=
2782 WIN32INSTALL=
2783
2784 TOOLKIT=
2785 TOOLKIT_INCLUDE=
2786 WIDGET_SET=
2787
2788 dnl are we building for a win32 target environment?
2789 dnl If so, setup common stuff needed for both GUI and Base libs.
2790 if test "$USE_WIN32" = 1 ; then
2791     AC_CHECK_HEADERS(w32api.h)
2792     AC_CHECK_HEADER(windows.h, [],
2793     [
2794         AC_MSG_ERROR(please set CFLAGS to contain the location of windows.h)
2795     ])
2796
2797     dnl --- FIXME: This is still a somewhat random list of libs,
2798     dnl ---        some of them should probably be included conditionally.
2799     LIBS="$LIBS -lwinspool -lwinmm -lshell32 -lcomctl32 -lcomdlg32 -lctl3d32 -ladvapi32 -lwsock32 -lgdi32"
2800
2801     if test "$wxUSE_ACCESSIBILITY" = "yes" ; then
2802         LIBS="$LIBS -loleacc"
2803     fi
2804
2805     case "${host}" in
2806         *-*-cygwin* )
2807             dnl Cygwin doesn't include these by default
2808             LIBS="$LIBS -lkernel32 -luser32"
2809     esac
2810
2811     dnl add extra odbc libs if we have compiled in odbc
2812     if test "$wxUSE_ODBC" = "sys" ; then
2813         wxUSE_ODBC = "yes"
2814     fi
2815     if test "$wxUSE_ODBC" = "yes" ; then
2816         LIBS=" -lodbc32 -lole32 -loleaut32 $LIBS"
2817         AC_DEFINE(wxUSE_ODBC)
2818     fi
2819     dnl We might want to abort here if wxUSE_ODBC="builtin" isn't supported on msw.
2820
2821     dnl This one is still used by some sample makefiles.
2822     RESFLAGS="--include-dir \$(top_srcdir)/include --include-dir \$(top_srcdir)/\$(program_dir) --define __WIN32__ --define __WIN95__ --define __GNUWIN32__"
2823     RESPROGRAMOBJ="\$(PROGRAM)_resources.o"
2824
2825     dnl This lot we export to wx-config.  It must add the relevant
2826     dnl include directories at the point when they can be known.
2827     dnl (but are these (still) required anyway?)
2828     WXCONFIG_RESFLAGS="--define __WIN32__ --define __WIN95__ --define __GNUWIN32__"
2829
2830     dnl install Win32-specific files in "make install"
2831     WIN32INSTALL=win32install
2832 fi
2833
2834 if test "$wxUSE_GUI" = "yes"; then
2835     USE_GUI=1
2836
2837     GUI_TK_LIBRARY=
2838
2839     WXGTK12=
2840     WXGTK127=
2841     WXGTK20=
2842     WXGPE=
2843
2844     if test "$wxUSE_COCOA" = 1 ; then
2845         if test "$wxUSE_PRINTING_ARCHITECTURE" = "yes"; then
2846             AC_MSG_WARN([Printing not supported under wxCocoa yet, disabled])
2847             wxUSE_PRINTING_ARCHITECTURE=no
2848         fi
2849         if test "$wxUSE_DRAG_AND_DROP" = "yes"; then
2850             AC_MSG_WARN([Drag and Drop not supported under wxCocoa yet, disabled])
2851             wxUSE_DRAG_AND_DROP=no
2852         fi
2853         if test "$wxUSE_DRAGIMAGE" = "yes"; then
2854             AC_MSG_WARN([Drag Image and DandD not supported under wxCocoa yet, disabled])
2855             wxUSE_DRAGIMAGE=no
2856         fi
2857     fi
2858
2859     if test "$wxUSE_MSW" = 1 ; then
2860         TOOLKIT=MSW
2861         GUIDIST=MSW_DIST
2862
2863         dnl -mwindows causes a heap of other default gui libs to be linked in.
2864         case "${host}" in
2865             *-*-mingw32* )
2866                 WXCONFIG_LDFLAGS_GUI="$LDFLAGS -Wl,--subsystem,windows -mwindows"
2867         esac
2868     fi
2869
2870     if test "$wxUSE_GTK" = 1; then
2871         dnl GTK+ test program must be compiled with C compiler
2872         AC_LANG_PUSH(C)
2873
2874         AC_MSG_CHECKING([for GTK+ version])
2875
2876         gtk_version_cached=1
2877         AC_CACHE_VAL(wx_cv_lib_gtk,
2878             [
2879                 dnl stupid GTK+ AM macros produce their own messages, so we
2880                 dnl have to pass to the next line
2881                 gtk_version_cached=0
2882                 AC_MSG_RESULT()
2883
2884                 dnl we must link against lgthread unless the user
2885                 dnl used --disable-threads
2886                 GTK_MODULES=
2887                 if test "$wxUSE_THREADS" = "yes"; then
2888                     GTK_MODULES=gthread
2889                 fi
2890
2891                 dnl detect GTK2
2892                 wx_cv_lib_gtk=
2893                 if test "x$wxGTK_VERSION" != "x1"
2894                 then
2895                     dnl The gthread.pc that ships with solaris returns '-mt',
2896                     dnl it's correct for Sun CC, but gcc requires '-pthreads'.
2897                     dnl So disable the compile check and remove the -mt below.
2898                     case "${host}" in
2899                         *-*-solaris2* )
2900                             if test "$wxUSE_THREADS" = "yes" -a "$GCC" = yes; then
2901                             enable_gtktest=no
2902                             fi
2903                     esac
2904
2905                     AM_PATH_GTK_2_0(2.0.0, wx_cv_lib_gtk=2.0, , $GTK_MODULES)
2906
2907                     dnl Remove the '-mt' for gcc on solaris
2908                     case "${host}" in
2909                         *-*-solaris2* )
2910                             if test "$wxUSE_THREADS" = "yes" -a "$GCC" = yes; then
2911                                 GTK_CFLAGS=`echo $GTK_CFLAGS | sed 's/-mt//'`
2912                                 GTK_LIBS=`echo $GTK_LIBS | sed 's/-mt//'`
2913                             fi
2914                             dnl solaris also requires -lX11 for static lib
2915                             if test "$wxUSE_SHARED" != "yes"; then
2916                                 GTK_LIBS="$GTK_LIBS -lX11"
2917                             fi
2918                     esac
2919                 fi
2920
2921                 dnl detect GTK1.x
2922                 if test -z "$wx_cv_lib_gtk"; then
2923                     if test "x$wxGTK_VERSION" = "x1" -o "x$wxGTK_VERSION" = "xany" ; then
2924                         AM_PATH_GTK(1.2.7, wx_cv_lib_gtk=1.2.7, , $GTK_MODULES)
2925
2926                         if test -z "$wx_cv_lib_gtk"; then
2927                             AM_PATH_GTK(1.2.3, wx_cv_lib_gtk=1.2.3, , $GTK_MODULES)
2928                         fi
2929                     fi
2930                 fi
2931
2932                 if test -z "$wx_cv_lib_gtk"; then
2933                     dnl looks better in AC_MSG_RESULT
2934                     wx_cv_lib_gtk=none
2935                 else
2936                     dnl we need to cache GTK_CFLAGS and GTK_LIBS for the
2937                     dnl subsequent runs
2938                     wx_cv_cflags_gtk=$GTK_CFLAGS
2939                     wx_cv_libs_gtk=`echo $GTK_LIBS | sed -e 's/ -l[[^ ]]*cairo[[^ ]]*//g'`
2940                 fi
2941             ]
2942         )
2943
2944         dnl if it wasn't cached, the messages from AM_PATH_GTK() above are
2945         dnl enough
2946         if test "$gtk_version_cached" = 1; then
2947             AC_MSG_RESULT($wx_cv_lib_gtk)
2948         fi
2949
2950         case "$wx_cv_lib_gtk" in
2951             2.0)    WXGTK20=1
2952                     TOOLKIT_VERSION=2
2953                     ;;
2954             1.2.7)  WXGTK127=1
2955                     WXGTK12=1
2956                     ;;
2957             1.2.3)  WXGTK12=1
2958                     ;;
2959             *)      AC_MSG_ERROR([
2960 The development files for GTK+ were not found. For GTK+ 2, please
2961 ensure that pkg-config is in the path and that gtk+-2.0.pc is
2962 installed. For GTK+ 1.2 please check that gtk-config is in the path,
2963 and that the version is 1.2.3 or above. Also check that the
2964 libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
2965 --libs' are in the LD_LIBRARY_PATH or equivalent.
2966                             ])
2967                     ;;
2968         esac
2969
2970         if test "$WXGTK20" = 1; then
2971             save_CFLAGS="$CFLAGS"
2972             save_LIBS="$LIBS"
2973             CFLAGS="$wx_cv_cflags_gtk $CFLAGS"
2974             LIBS="$LIBS $wx_cv_libs_gtk"
2975
2976             dnl gtk_icon_size_lookup is not available in the GTK+ headers
2977             dnl that have shipped with some versions of Sun's JDS. Not using
2978             dnl AC_CHECK_FUNCS here since it only checks the function exists
2979             dnl in the lib (not the header).
2980             AC_MSG_CHECKING([if gtk_icon_size_lookup is missing])
2981             AC_TRY_COMPILE([
2982                             #include <gtk/gtk.h>
2983                            ],
2984                            [
2985                             void *f = gtk_icon_size_lookup;
2986                            ],
2987                            [
2988                             AC_MSG_RESULT([no])
2989                            ],
2990                            [
2991                             AC_DEFINE(NEED_GTK_ICON_SIZE_LOOKUP)
2992                             AC_MSG_RESULT([yes])
2993                            ])
2994
2995             dnl test if we have at least GTK+ 2.6:
2996             AC_MSG_CHECKING([if GTK+ is version >= 2.6])
2997             AC_TRY_COMPILE([
2998                             #include <gtk/gtk.h>
2999                            ],
3000                            [
3001                             #if !GTK_CHECK_VERSION(2,6,0)
3002                             Not GTK+ 2.6
3003                             #endif
3004                            ],
3005                            [
3006                             AC_DEFINE(__WXGTK26__)
3007                             AC_DEFINE(__WXGTK24__)
3008                             AC_MSG_RESULT([yes])
3009                             ac_wxgtk26=1
3010                            ],
3011                            [
3012                             AC_MSG_RESULT([no])
3013                             ac_wxgtk26=0
3014                            ])
3015
3016             if test "$ac_wxgtk26" = 0; then
3017             dnl test if we have at least GTK+ 2.4:
3018             AC_MSG_CHECKING([if GTK+ is version >= 2.4])
3019             AC_TRY_COMPILE([
3020                             #include <gtk/gtk.h>
3021                            ],
3022                            [
3023                             #if !GTK_CHECK_VERSION(2,4,0)
3024                             Not GTK+ 2.4
3025                             #endif
3026                            ],
3027                            [
3028                             AC_DEFINE(__WXGTK24__)
3029                             AC_MSG_RESULT([yes])
3030                            ],
3031                            [
3032                             AC_MSG_RESULT([no])
3033                            ])
3034             fi
3035
3036             CFLAGS="$save_CFLAGS"
3037             LIBS="$save_LIBS"
3038         else
3039             if test "$wxUSE_UNICODE" = "yes"; then
3040                 AC_MSG_WARN([Unicode configuration not supported with GTK+ 1.x])
3041                 wxUSE_UNICODE=no
3042             fi
3043         fi
3044
3045         AC_LANG_POP
3046
3047         dnl we need poll() in src/gtk/app.cpp (we know that Darwin doesn't
3048         dnl have it but we do the check for the others)
3049         if test "$USE_DARWIN" != 1; then
3050             AC_CHECK_FUNCS(poll)
3051         fi
3052
3053         TOOLKIT_INCLUDE="$wx_cv_cflags_gtk"
3054         GUI_TK_LIBRARY="$wx_cv_libs_gtk $GUI_TK_LIBRARY"
3055
3056         AFMINSTALL=afminstall
3057         TOOLKIT=GTK
3058         GUIDIST=GTK_DIST
3059
3060         dnl test for XIM support in libgdk
3061         AC_CHECK_LIB(gdk, gdk_im_open, AC_DEFINE(HAVE_XIM))
3062
3063
3064         dnl test for external libxpm if we're configured to use it
3065         if test "$wxUSE_GPE" = "yes"; then
3066             AC_MSG_CHECKING(for gpewidget library)
3067             WX_PATH_FIND_LIBRARIES($SEARCH_LIB,gpewidget)
3068             if test "$ac_find_libraries" != "" ; then
3069                 WX_LINK_PATH_EXIST($ac_find_libraries,$GUI_TK_LIBRARY)
3070                 dnl -lgpewidget must be before all GTK libs and
3071                 dnl we guess its path from the prefix
3072                 GUI_TK_LIBRARY="-L${prefix}/lib -lgpewidget $GUI_TK_LIBRARY"
3073                 WXGPE=1
3074                 AC_MSG_RESULT([found in $ac_find_libraries])
3075             else
3076                 AC_MSG_RESULT(not found)
3077             fi
3078
3079             dnl AC_MSG_CHECKING(for gpe library)
3080             dnl WX_PATH_FIND_LIBRARIES($SEARCH_LIB,gpe)
3081             dnl if test "$ac_find_libraries" != "" ; then
3082             dnl     WX_LINK_PATH_EXIST($ac_find_libraries,$GUI_TK_LIBRARY)
3083             dnl     GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lgpe"
3084             dnl     AC_MSG_RESULT(found in $ac_find_libraries)
3085             dnl else
3086             dnl     AC_MSG_RESULT(not found)
3087             dnl fi
3088         fi
3089     fi
3090
3091     if test "$wxUSE_MGL" = 1; then
3092        AC_MSG_CHECKING(for SciTech MGL library)
3093         if test "x$MGL_ROOT" = x ; then
3094             AC_MSG_RESULT(not found)
3095             AC_MSG_ERROR([Cannot find MGL library. Make sure MGL_ROOT is set.])
3096         else
3097             AC_MSG_RESULT($MGL_ROOT)
3098         fi
3099
3100         AC_MSG_CHECKING(for libmgl location)
3101         dnl Find MGL library that we want
3102         dnl FIXME_MGL - test for MGL variants for freebsd etc.;
3103         dnl             and for non-x86 versions
3104         case "${host}" in
3105             *-*-linux* )
3106               dnl glibc.so, glibc are for older versions of MGL,
3107               dnl x86/a, x86/so are used by >= 5.0 R11
3108               if test "x$wxUSE_SHARED" = xyes ; then
3109                   mgl_os_candidates="linux/gcc/x86/so linux/gcc/x86/a linux/gcc/glibc.so linux/gcc/glibc"
3110               else
3111                   mgl_os_candidates="linux/gcc/x86/a linux/gcc/x86/so linux/gcc/glibc linux/gcc/glibc.so"
3112               fi
3113               ;;
3114             *-pc-msdosdjgpp )
3115               mgl_os_candidates="dos32/dj2"
3116               ;;
3117             *)
3118               AC_MSG_ERROR(This system type ${host} is not yet supported by wxMGL.)
3119         esac
3120
3121         mgl_lib_type=""
3122         mgl_os=""
3123
3124         for mgl_os_i in $mgl_os_candidates ; do
3125             if test "x$mgl_os" = x ; then
3126                 if test "$wxUSE_DEBUG_FLAG" = yes ; then
3127                     if test -f $MGL_ROOT/lib/debug/$mgl_os_i/libmgl.a -o \
3128                             -f $MGL_ROOT/lib/debug/$mgl_os_i/libmgl.so; then
3129                         mgl_lib_type=debug
3130                         mgl_os=$mgl_os_i
3131                     fi
3132                 fi
3133                 if test "x$mgl_lib_type" = x ; then
3134                     if test -f $MGL_ROOT/lib/release/$mgl_os_i/libmgl.a -o \
3135                             -f $MGL_ROOT/lib/release/$mgl_os_i/libmgl.so; then
3136                         mgl_lib_type=release
3137                         mgl_os=$mgl_os_i
3138                     fi
3139                 fi
3140             fi
3141         done
3142
3143         if test "x$mgl_os" = x ; then
3144             AC_MSG_RESULT(not found)
3145             AC_MSG_ERROR([Cannot find MGL libraries, make sure they are compiled.])
3146         fi
3147         AC_MSG_RESULT("$MGL_ROOT/lib/$mgl_lib_type/$mgl_os")
3148
3149         wxUSE_UNIVERSAL="yes"
3150
3151         TOOLKIT_INCLUDE="-I$MGL_ROOT/include"
3152         GUI_TK_LIBRARY="-L$MGL_ROOT/lib/$mgl_lib_type/$mgl_os -lmgl -lmglcpp -lpm"
3153
3154         AFMINSTALL=afminstall
3155         TOOLKIT=MGL
3156         GUIDIST=MGL_DIST
3157     fi
3158
3159     if test "$wxUSE_MICROWIN" = 1; then
3160         AC_MSG_CHECKING(for MicroWindows)
3161         if test "x$MICROWINDOWS" = x ; then
3162             AC_MSG_RESULT(not found)
3163             AC_MSG_ERROR([Cannot find MicroWindows library. Make sure MICROWINDOWS is set.])
3164         else
3165             AC_MSG_RESULT($MICROWINDOWS)
3166         fi
3167
3168         if test -f $MICROWINDOWS/lib/libmwin.a; then
3169             AC_MSG_RESULT(MicroWindows' libraries found.)
3170         else
3171             AC_MSG_ERROR([Cannot find MicroWindows libraries, make sure they are compiled.])
3172         fi
3173
3174         TOOLKIT_INCLUDE="-I$MICROWINDOWS/include"
3175         GUI_TK_LIBRARY="-L$MICROWINDOWS/lib -lmwin -lmwengine -mwfonts -mwdrivers -mwinlib"
3176
3177         wxUSE_UNIVERSAL="yes"
3178
3179         AFMINSTALL=afminstall
3180         TOOLKIT=MICROWIN
3181         GUIDIST=MICROWIN_DIST
3182
3183         TOOLCHAIN_DEFS="${TOOLCHAIN_DEFS} -D__WXMSW__ -D__WIN95__ -D__WIN32__ -DMWIN -DMICROWIN_NOCONTROLS -DMICROWIN_TODO=1"
3184     fi
3185
3186     dnl common part of X11 and Motif port checks
3187     if test "$wxUSE_X11" = 1 -o "$wxUSE_MOTIF" = 1; then
3188         dnl use standard macros to check for X headers/libs, this brings
3189         dnl support for the standard configure options --x-includes,
3190         dnl --x-libraries and --no-x
3191         AC_PATH_XTRA
3192
3193         if test "$no_x" = "yes"; then
3194           AC_MSG_ERROR([X11 not found, please use --x-includes and/or --x-libraries options (see config.log for details)])
3195         fi
3196
3197         dnl for some reason AC_PATH_XTRA seems to add -INONE and -LNONE (and
3198         dnl also sometimes -RNONE) to X_CFLAGS and X_LIBS respectively, filter
3199         dnl this junk out
3200         GUI_TK_LIBRARY=`echo $X_LIBS | sed 's/ -LNONE//' | sed 's/ -RNONE//'`
3201         TOOLKIT_INCLUDE=`echo $X_CFLAGS | sed 's/ -INONE//'`
3202         AFMINSTALL=afminstall
3203         COMPILED_X_PROGRAM=0
3204
3205     fi
3206
3207     if test "$wxUSE_X11" = 1; then
3208         if test "$wxUSE_NANOX" = "yes"; then
3209             AC_MSG_CHECKING(for MicroWindows/NanoX distribution)
3210             if test "x$MICROWIN" = x ; then
3211                 AC_MSG_RESULT(not found)
3212                 AC_MSG_ERROR([Cannot find MicroWindows library. Make sure MICROWIN is set.])
3213             else
3214                 AC_MSG_RESULT($MICROWIN)
3215                 AC_DEFINE(wxUSE_NANOX)
3216             fi
3217         fi
3218
3219         if test "$wxUSE_UNICODE" = "yes"; then
3220                 PKG_CHECK_MODULES(PANGOX, pangox,
3221                     [
3222                         CXXFLAGS="$PANGOX_CFLAGS $CXXFLAGS"
3223                         GUI_TK_LIBRARY="$GUI_TK_LIBRARY $PANGOX_LIBS"
3224                     ],
3225                     [
3226                         AC_MSG_ERROR([pangox library not found, library cannot be compiled in Unicode mode])
3227                     ]
3228                 )
3229                 PKG_CHECK_MODULES(PANGOFT2, pangoft2,
3230                     [
3231                         CXXFLAGS="$PANGOFT2_CFLAGS $CXXFLAGS"
3232                         GUI_TK_LIBRARY="$GUI_TK_LIBRARY $PANGOFT2_LIBS"
3233                     ],
3234                     [
3235                         AC_MSG_WARN([pangoft2 library not found, library will be compiled without printing support])
3236                         wxUSE_PRINTING_ARCHITECTURE="no"
3237                     ]
3238                 )
3239                 PKG_CHECK_MODULES(PANGOXFT, pangoxft,
3240                     [
3241                         AC_DEFINE(HAVE_PANGO_XFT)
3242                         CXXFLAGS="$PANGOXFT_CFLAGS $CXXFLAGS"
3243                         GUI_TK_LIBRARY="$GUI_TK_LIBRARY $PANGOXFT_LIBS"
3244                     ],
3245                     [
3246                         AC_MSG_WARN([pangoxft library not found, library will be compiled without anti-aliasing support])
3247                     ]
3248                 )
3249                 save_CXXFLAGS="$CXXFLAGS"
3250                 save_LIBS="$LIBS"
3251                 CXXFLAGS="$PANGOX_CFLAGS $CXXFLAGS"
3252                 LIBS="$LIBS $PANGOX_LIBS"
3253                 AC_CHECK_FUNCS([pango_font_family_is_monospace])
3254                 CXXFLAGS="$save_CXXFLAGS"
3255                 LIBS="$save_LIBS"
3256         fi
3257
3258         wxUSE_UNIVERSAL="yes"
3259
3260         if test "$wxUSE_NANOX" = "yes"; then
3261             TOOLKIT_INCLUDE="-I\$(top_srcdir)/include/wx/x11/nanox -I\$(MICROWIN)/src/include $TOOLKIT_INCLUDE"
3262             TOOLCHAIN_DEFS="${TOOLCHAIN_DEFS} -D__NANOX__ -DMWPIXEL_FORMAT=MWPF_TRUECOLOR0888 -DHAVE_FILEIO -DHAVE_BMP_SUPPORT=1 -DHAVE_GIF_SUPPORT=1 -DHAVE_PNM_SUPPORT=1 -DHAVE_XPM_SUPPORT=1 -DUNIX=1 -DUSE_EXPOSURE -DSCREEN_HEIGHT=480 -DSCREEN_WIDTH=640 -DSCREEN_DEPTH=4 -DX11=1"
3263             GUI_TK_LIBRARY="$GUI_TK_LIBRARY \$(MICROWIN)/src/lib/libnano-X.a"
3264         else
3265             GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lX11"
3266         fi
3267
3268         TOOLKIT=X11
3269         GUIDIST=X11_DIST
3270     fi
3271
3272     if test "$wxUSE_MOTIF" = 1; then
3273         if test "$wxUSE_UNICODE" = "yes"; then
3274             AC_MSG_ERROR([Unicode configuration not supported with Motif])
3275         fi
3276
3277         AC_MSG_CHECKING(for Motif/Lesstif headers)
3278         WX_PATH_FIND_INCLUDES($SEARCH_INCLUDE, Xm/Xm.h)
3279         if test "$ac_find_includes" != "" ; then
3280             AC_MSG_RESULT(found in $ac_find_includes)
3281             WX_INCLUDE_PATH_EXIST($ac_find_includes, $TOOLKIT_INCLUDE)
3282             TOOLKIT_INCLUDE="$TOOLKIT_INCLUDE$ac_path_to_include"
3283         else
3284             save_CXXFLAGS=$CXXFLAGS
3285             CXXFLAGS="$TOOLKIT_INCLUDE $CXXFLAGS"
3286
3287             AC_TRY_COMPILE(
3288                 [
3289                     #include <Xm/Xm.h>
3290                 ],
3291                 [
3292                     int version;
3293                     version = xmUseVersion;
3294                 ],
3295                 [
3296                     AC_MSG_RESULT(found in default search path)
3297                     COMPILED_X_PROGRAM=1
3298                 ],
3299                 [
3300                     AC_MSG_RESULT(no)
3301                     AC_MSG_ERROR(please set CPPFLAGS to contain the location of Xm/Xm.h)
3302                 ]
3303             )
3304
3305             CXXFLAGS=$save_CXXFLAGS
3306         fi
3307
3308
3309         AC_MSG_CHECKING(for Motif/Lesstif library)
3310         WX_PATH_FIND_LIBRARIES($SEARCH_LIB, Xm)
3311
3312         if test "x$ac_find_libraries" != "x" ; then
3313             AC_MSG_RESULT(found in $ac_find_libraries)
3314
3315             WX_LINK_PATH_EXIST($ac_find_libraries, $GUI_TK_LIBRARY)
3316             GUI_TK_LIBRARY="$GUI_TK_LIBRARY$ac_path_to_link"
3317         else
3318             dnl it might happen that we found headers in one of the standard
3319             dnl paths but the libs are elsewhere but still in default (linker)
3320             dnl path -- try to compile a test program to check for this
3321             save_CXXFLAGS=$CXXFLAGS
3322             CXXFLAGS="$TOOLKIT_INCLUDE $CXXFLAGS"
3323             save_LIBS="$LIBS"
3324             LIBS="$GUI_TK_LIBRARY -lXm -lXmu -lXext -lX11"
3325
3326             AC_TRY_LINK(
3327                 [
3328                     #include <Xm/Xm.h>
3329                 ],
3330                 [
3331                     int version;
3332                     version = xmUseVersion;
3333                 ],
3334                 [
3335                     AC_MSG_RESULT(found in default search path)
3336                     COMPILED_X_PROGRAM=1
3337                 ],
3338                 [
3339                     AC_MSG_RESULT(no)
3340                     AC_MSG_ERROR(please set LDFLAGS to contain the location of libXm)
3341                 ]
3342             )
3343
3344             CXXFLAGS=$save_CXXFLAGS
3345             LIBS="$save_LIBS"
3346         fi
3347
3348         AC_MSG_CHECKING([if we need -lXp and/or -lSM -lICE])
3349         libp_link=""
3350         libsm_ice_link=""
3351         libs_found=0
3352         for libp in "" " -lXp"; do
3353             if test "$libs_found" = "0"; then
3354                 for libsm_ice in "" " -lSM -lICE"; do
3355                     if test "$libs_found" = "0"; then
3356                         save_LIBS="$LIBS"
3357                         LIBS="$GUI_TK_LIBRARY -lXm ${libp} -lXmu -lXext -lXt${libsm_ice} -lX11"
3358                         save_CXXFLAGS=$CXXFLAGS
3359                         CXXFLAGS="$TOOLKIT_INCLUDE $CXXFLAGS"
3360
3361                         AC_TRY_LINK(
3362                             [
3363                                 #include <Xm/Xm.h>
3364                                 #include <Xm/List.h>
3365                             ],
3366                             [
3367                                 XmString string = NULL;
3368                                 Widget w = NULL;
3369                                 int position = 0;
3370                                 XmListAddItem(w, string, position);
3371                             ],
3372                             [
3373                                 libp_link="$libp"
3374                                 libsm_ice_link="$libsm_ice"
3375                                 AC_MSG_RESULT(
3376                                     [need${libp_link}${libsm_ice_link}])
3377                                 libs_found=1
3378                             ], []
3379                         )
3380
3381                         LIBS="$save_LIBS"
3382                         CXXFLAGS=$save_CXXFLAGS
3383                     fi
3384                 done
3385             fi
3386         done
3387
3388         if test "$libs_found" = "0"; then
3389             AC_MSG_RESULT([can't find the right libraries])
3390             AC_MSG_ERROR([can't link a simple motif program])
3391         fi
3392
3393         dnl this seems to be needed under IRIX and shouldn't do any harm
3394         dnl elsewhere
3395         AC_CHECK_LIB(Sgm, [SgCreateList], [libsgm_link=" -lSgm"])
3396
3397         save_CXXFLAGS=$CXXFLAGS
3398         CXXFLAGS="$TOOLKIT_INCLUDE $CXXFLAGS"
3399
3400         AC_CACHE_CHECK([for Motif 2],
3401             wx_cv_lib_motif2,
3402             AC_TRY_COMPILE([
3403                             #include <Xm/Xm.h>
3404                            ],
3405                            [
3406                             #if XmVersion < 2000
3407                             Not Motif 2
3408                             #endif
3409                            ],
3410                            wx_cv_lib_motif2="yes",
3411                            wx_cv_lib_motif2="no"))
3412         if test "$wx_cv_lib_motif2" = "yes"; then
3413             AC_DEFINE(__WXMOTIF20__,1)
3414         else
3415             AC_DEFINE(__WXMOTIF20__,0)
3416         fi
3417
3418         AC_CACHE_CHECK([whether Motif is Lesstif],
3419             wx_cv_lib_lesstif,
3420             AC_TRY_COMPILE([
3421                             #include <Xm/Xm.h>
3422                            ],
3423                            [
3424                             #if !defined(LesstifVersion) || LesstifVersion <= 0
3425                             Not Lesstif
3426                             #endif
3427                            ],
3428                            wx_cv_lib_lesstif="yes",
3429                            wx_cv_lib_lesstif="no")
3430         )
3431         if test "$wx_cv_lib_lesstif" = "yes"; then
3432             AC_DEFINE(__WXLESSTIF__,1)
3433         else
3434             AC_DEFINE(__WXLESSTIF__,0)
3435         fi
3436
3437         CXXFLAGS=$save_CXXFLAGS
3438
3439         GUI_TK_LIBRARY="$GUI_TK_LIBRARY${libsgm_link} -lXm${libp_link} -lXmu -lXext -lXt${libsm_ice_link} -lX11"
3440         TOOLKIT=MOTIF
3441         GUIDIST=MOTIF_DIST
3442     fi
3443
3444     dnl more tests common to X11 and Motif:
3445     if test "$wxUSE_X11" = 1 -o "$wxUSE_MOTIF" = 1; then
3446         dnl test for external libxpm if we're configured to use it
3447         if test "$wxUSE_LIBXPM" = "sys"; then
3448             AC_MSG_CHECKING(for Xpm library)
3449             WX_PATH_FIND_LIBRARIES($SEARCH_LIB,Xpm)
3450             if test "$ac_find_libraries" != "" ; then
3451                 WX_LINK_PATH_EXIST($ac_find_libraries,$GUI_TK_LIBRARY)
3452                 GUI_TK_LIBRARY="$GUI_TK_LIBRARY$ac_path_to_link"
3453                 AC_MSG_RESULT(found in $ac_find_libraries)
3454
3455                 AC_CACHE_CHECK([for X11/xpm.h],
3456                     wx_cv_x11_xpm_h,
3457                     [
3458                         save_CXXFLAGS=$CXXFLAGS
3459                         CXXFLAGS="$TOOLKIT_INCLUDE $CXXFLAGS"
3460
3461                         AC_TRY_COMPILE(
3462                             [
3463                                 #include <X11/xpm.h>
3464                             ],
3465                             [
3466                                 int version;
3467                                 version = XpmLibraryVersion();
3468                             ],
3469                             wx_cv_x11_xpm_h=yes,
3470                             wx_cv_x11_xpm_h=no
3471                         )
3472
3473                         CXXFLAGS=$save_CXXFLAGS
3474                     ]
3475                 )
3476
3477                 if test $wx_cv_x11_xpm_h = "yes"; then
3478                     GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lXpm"
3479                     AC_DEFINE(wxHAVE_LIB_XPM)
3480                 else
3481                     AC_MSG_WARN([built-in less efficient XPM decoder will be used])
3482                 fi
3483             fi
3484
3485         fi
3486
3487         dnl XShapeQueryExtension checks: first the library, then prototype
3488         AC_CHECK_LIB([Xext], [XShapeQueryExtension],
3489                      [
3490                       GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lXext"
3491                       wxHAVE_XEXT_LIB=1
3492                      ],
3493                      [], [$GUI_TK_LIBRARY -lX11])
3494
3495         if test "$wxHAVE_XEXT_LIB" = 1; then
3496             save_CXXFLAGS="$CXXFLAGS"
3497             CXXFLAGS="$TOOLKIT_INCLUDE $CXXFLAGS"
3498
3499             AC_MSG_CHECKING([for X11/extensions/shape.h])
3500             AC_TRY_COMPILE([
3501                             #include <X11/Xlib.h>
3502                             #include <X11/extensions/shape.h>
3503                            ],
3504                            [
3505                             int dummy1, dummy2;
3506                             XShapeQueryExtension((Display*)NULL,
3507                                                  (int*)NULL, (int*)NULL);
3508                            ],
3509                            [
3510                             AC_DEFINE(HAVE_XSHAPE)
3511                             AC_MSG_RESULT([found])
3512                            ],
3513                            [
3514                             AC_MSG_RESULT([not found])
3515                            ])
3516             CXXFLAGS="$save_CXXFLAGS"
3517
3518         fi
3519     fi
3520
3521     if test "$wxUSE_MAC" = 1; then
3522         AC_MSG_CHECKING([for compiler syntax to enable Pascal strings])
3523         if test "$GCC" = yes; then
3524             AC_MSG_RESULT([gcc])
3525             CPPFLAGS_PASCAL="-fpascal-strings"
3526         elif test "`echo $CXX | sed -e 's@.*/@@'`" = "xlC"; then
3527             AC_MSG_RESULT([xlc])
3528             CPPFLAGS_PASCAL="-qmacpstr"
3529         else
3530             AC_MSG_RESULT([none])
3531         fi
3532
3533         if test "x$wxUSE_UNIX" = "xyes"; then
3534             CPPFLAGS="$CPPFLAGS_PASCAL -I\${top_srcdir}/src/mac/carbon/morefilex -I/Developer/Headers/FlatCarbon $CPPFLAGS"
3535         else
3536             dnl platform.h needs TARGET_CARBON before setup.h
3537             CPPFLAGS="$CPPFLAGS_PASCAL -I\${top_srcdir}/src/mac/carbon/morefilex -DTARGET_CARBON $CPPFLAGS"
3538         fi
3539
3540         TOOLKIT=MAC
3541         dnl we can't call this MAC_DIST or autoconf thinks its a macro
3542         GUIDIST=MACX_DIST
3543         dnl wxMac version of wxBase and wxCocoa or wxBase-only built on Darwin
3544         dnl are different, so they need different names:
3545         WXBASEPORT="_carbon"
3546     fi
3547
3548     if test "$wxUSE_COCOA" = 1; then
3549         TOOLKIT=COCOA
3550         GUIDIST=COCOA_DIST
3551     fi
3552
3553     if test "$wxUSE_PM" = 1; then
3554         TOOLKIT=PM
3555         GUIDIST=PM_DIST
3556         AC_CACHE_CHECK([for type SPBCDATA],
3557             wx_cv_spbcdata,
3558             [
3559                 AC_TRY_COMPILE(
3560                     [
3561                         #define INCL_PM
3562                         #include <os2.h>
3563                     ],
3564                     [
3565                         SPBCDATA test;
3566                     ],
3567                     wx_cv_spbcdata=yes,
3568                     wx_cv_spbcdata=no
3569                 )
3570             ]
3571         )
3572
3573         if test $wx_cv_spbcdata = "yes"; then
3574             AC_DEFINE(HAVE_SPBCDATA)
3575         fi
3576     fi
3577
3578     dnl the name of the directory where the files for this toolkit live
3579     if test "$TOOLKIT" = "PM" ; then
3580         TOOLKIT_DIR="os2"
3581     else
3582         TOOLKIT_DIR=`echo ${TOOLKIT} | tr "[[A-Z]]" "[[a-z]]"`
3583     fi
3584
3585     if test "$wxUSE_UNIVERSAL" = "yes"; then
3586         TOOLCHAIN_DEFS="${TOOLCHAIN_DEFS} -D__WXUNIVERSAL__"
3587         WIDGET_SET=univ
3588     fi
3589
3590     dnl distribute samples/demos/utils with GUI versions
3591     GUIDIST="${GUIDIST} SAMPLES_DIST DEMOS_DIST UTILS_DIST MISC_DIST"
3592     DISTDIR="wx\$(TOOLKIT)"
3593 else
3594     USE_GUI=0
3595
3596     dnl this doesn't quite work right for wxBase, but the places
3597     dnl where it is wrong aren't fatal (yet) though.
3598     TOOLKIT_DIR="base"
3599
3600     dnl the sources, their dependenices and the headers
3601     if test "$USE_WIN32" = 1 ; then
3602         dnl yes, the toolkit for wxBase on win32 is actually MSW
3603         dnl wxBase on unix does not need a 'TOOLKIT' defined.
3604         TOOLKIT="MSW"
3605     fi
3606
3607     dnl distribute only wxBase sources/headers
3608     GUIDIST="BASE_DIST"
3609     DISTDIR="wxBase"
3610 fi
3611
3612 dnl ---------------------------------------------------------------------------
3613 dnl Optional libraries included when system library is not used
3614 dnl ---------------------------------------------------------------------------
3615
3616 dnl do this after test for X11 above so that we have a chance of finding Xlib.h
3617 if test "$wxUSE_GUI" = "yes"; then
3618     if test "$wxUSE_UNIX" = "yes" -a "$wxUSE_PM" != 1; then
3619         dnl defines HAVE_X11_XKBLIB_H
3620         AC_CHECK_HEADERS(X11/Xlib.h)
3621         AC_CHECK_HEADERS([X11/XKBlib.h], [], [],
3622                          [
3623                           #if HAVE_X11_XLIB_H
3624                             #include <X11/Xlib.h>
3625                           #endif
3626                          ])
3627     fi
3628 fi
3629
3630
3631 dnl ----------------------------------------------------------------
3632 dnl iODBC support
3633 dnl ----------------------------------------------------------------
3634
3635 IODBC_C_SRC=""
3636
3637
3638 dnl ODBC is handled separately for MSW
3639 if test "$TOOLKIT" != "MSW" ; then
3640
3641     if test "$wxUSE_ODBC" = "sys" -o "$wxUSE_ODBC" = "yes" ; then
3642         dnl This is not ideal we really ough to use the unixodbc-config
3643         dnl  or iodbc-config if they exist.
3644
3645         AC_CHECK_HEADER([sql.h], [found_sql_h=1])
3646         if test "x$found_sql_h" = "x1" ; then
3647             AC_CHECK_LIB(iodbc, SQLAllocEnv, ODBC_LINK=" -liodbc",
3648             [
3649                 AC_CHECK_LIB(unixodbc, SQLAllocEnv, ODBC_LINK=" -lunixodbc",
3650                 [
3651                     AC_CHECK_LIB(odbc, SQLAllocEnv, ODBC_LINK=" -lodbc")
3652                 ])
3653             ])
3654         fi
3655         if test "x$ODBC_LINK" = "x" ; then
3656             if test "$wxUSE_ODBC" = "sys" ; then
3657                 AC_MSG_ERROR([system ODBC library not found! Use --with-odbc=builtin to use built-in version])
3658             else
3659                 AC_MSG_WARN([system ODBC library not found, will use built-in instead])
3660                 wxUSE_ODBC=builtin
3661             fi
3662         else
3663             dnl we are using the system library
3664             wxUSE_ODBC=sys
3665         fi
3666     fi
3667
3668     if test "$wxUSE_ODBC" = "builtin" ; then
3669         AC_DEFINE(wxUSE_BUILTIN_IODBC)
3670     fi
3671 fi
3672
3673 if test "$wxUSE_ODBC" != "no" ; then
3674     AC_DEFINE(wxUSE_ODBC)
3675     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS db"
3676
3677     dnl is this still necessary?
3678     WXCONFIG_CPPFLAGS="$WXCONFIG_CPPFLAGS -D_IODBC_"
3679 fi
3680
3681 dnl ---------------------------------------------------------------------------
3682 dnl wxDisplay Sanity checks
3683 dnl ---------------------------------------------------------------------------
3684
3685 if test "$wxUSE_DISPLAY" = "yes"; then
3686 dnl ---------------------------------------------------------------------------
3687 dnl Xinerama (for unix ) - Brian Victor
3688 dnl ---------------------------------------------------------------------------
3689     if test "$wxUSE_UNIX" = "yes" -a "$wxUSE_MAC" != 1 -a "$wxUSE_COCOA" != 1; then
3690         AC_MSG_CHECKING([for Xinerama])
3691         WX_PATH_FIND_LIBRARIES([$SEARCH_LIB],Xinerama)
3692         if test "$ac_find_libraries" != "" ; then
3693             WX_LINK_PATH_EXIST([$ac_find_libraries],[$LDFLAGS])
3694             if test "$ac_path_to_link" != " -L/usr/lib" ; then
3695                 LDFLAGS="$LDFLAGS $ac_path_to_link"
3696             fi
3697             GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lXinerama"
3698             AC_MSG_RESULT([yes])
3699
3700             AC_MSG_CHECKING([for Xxf86vm extension])
3701             WX_PATH_FIND_LIBRARIES([$SEARCH_LIB],Xxf86vm)
3702             if test "$ac_find_libraries" != "" ; then
3703                 AC_MSG_RESULT([yes])
3704                 AC_CHECK_HEADERS([X11/extensions/xf86vmode.h],
3705                                  [
3706                                   GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lXxf86vm"
3707                                  ],
3708                                  [],
3709                                  [
3710                                       #if HAVE_X11_XLIB_H
3711                                         #include <X11/Xlib.h>
3712                                       #endif
3713                                  ])
3714             else
3715                 AC_MSG_RESULT([no])
3716             fi
3717
3718         else
3719             AC_MSG_RESULT([no])
3720             AC_MSG_WARN([Xinerama not found; disabling wxDisplay])
3721             wxUSE_DISPLAY="no"
3722         fi
3723     elif test "$wxUSE_MSW" = 1; then
3724 dnl ---------------------------------------------------------------------------
3725 dnl DirectDraw for MSW - optionally used by WxDisplay.
3726 dnl ---------------------------------------------------------------------------
3727         AC_CHECK_HEADERS([ddraw.h], [], [], [#include <windows.h>])
3728     fi
3729 fi
3730
3731 dnl ---------------------------------------------------------------------------
3732 dnl OpenGL libraries
3733 dnl ---------------------------------------------------------------------------
3734
3735 USE_OPENGL=0
3736 if test "$wxUSE_OPENGL" = "yes"; then
3737     if test "$wxUSE_MAC" = 1 -o "$wxUSE_COCOA" = "1"; then
3738         OPENGL_LIBS="-framework OpenGL -framework AGL"
3739     elif test "$wxUSE_MSW" = 1; then
3740         OPENGL_LIBS="-lopengl32 -lglu32"
3741     else
3742         dnl David Elliott: Without this snippet AC_CHECK_HEADER fails to find
3743         dnl GL/gl.h on Mac OS X where it is located in
3744         dnl /usr/X11R6/include/GL/gl.h:
3745
3746         WX_PATH_FIND_INCLUDES($SEARCH_INCLUDE, GL/gl.h)
3747         if test "$ac_find_includes" != "" ; then
3748             AC_MSG_RESULT(found in $ac_find_includes)
3749             WX_INCLUDE_PATH_EXIST($ac_find_includes, $CPPFLAGS)
3750             CPPFLAGS="$ac_path_to_include $CPPFLAGS"
3751         fi
3752
3753         AC_CHECK_HEADER(GL/gl.h,
3754             [
3755                 found_gl=0
3756
3757                 AC_MSG_CHECKING([for -lGL])
3758                 WX_PATH_FIND_LIBRARIES([$SEARCH_LIB],GL)
3759                 if test "$ac_find_libraries" != "" ; then
3760                     AC_MSG_RESULT([yes])
3761
3762                     WX_LINK_PATH_EXIST([$ac_find_libraries],[$LDFLAGS])
3763                     if test "$ac_path_to_link" != " -L/usr/lib" ; then
3764                         LDFLAGS_GL="$ac_path_to_link"
3765                     fi
3766
3767                     dnl don't suppose that libGL and libGLU are always in the
3768                     dnl same directory -- this is not true for some common
3769                     dnl distributions
3770                     AC_MSG_CHECKING([for -lGLU])
3771                     WX_PATH_FIND_LIBRARIES([$SEARCH_LIB],GLU)
3772                     if test "$ac_find_libraries" != "" ; then
3773                         WX_LINK_PATH_EXIST([$ac_find_libraries],[$LDFLAGS])
3774                         if test "$ac_path_to_link" != " -L/usr/lib" -a \
3775                                     "$ac_path_to_link" != "$LDFLAGS_GL"; then
3776                             LDFLAGS_GL="$LDFLAGS_GL$ac_path_to_link"
3777                         fi
3778
3779                         found_gl=1
3780                         OPENGL_LIBS="-lGL -lGLU"
3781                         AC_MSG_RESULT([yes])
3782                     else
3783                         AC_MSG_RESULT([no])
3784                     fi
3785                 else
3786                     AC_MSG_RESULT([no])
3787                 fi
3788
3789                 if test "$found_gl" != 1; then
3790                     AC_MSG_CHECKING([for -lMesaGL])
3791                     WX_PATH_FIND_LIBRARIES([$SEARCH_LIB],MesaGL)
3792                     if test "$ac_find_libraries" != "" ; then
3793                         WX_LINK_PATH_EXIST([$ac_find_libraries],[$LDFLAGS])
3794                         LDFLAGS_GL="$LDFLAGS$ac_path_to_link"
3795                         OPENGL_LIBS="-lMesaGL -lMesaGLU"
3796                         AC_MSG_RESULT([yes])
3797                     else
3798                         AC_MSG_RESULT([no])
3799                     fi
3800                 fi
3801             ])
3802
3803         if test "x$OPENGL_LIBS" = "x"; then
3804             dnl it should be an error and not a warning because OpenGL is not on
3805             dnl by default and so if it had been explicitly requested, we
3806             dnl shouldn't just fall back to compiling the library without it
3807             AC_MSG_ERROR(OpenGL libraries not available)
3808         fi
3809     fi
3810
3811     if test "$wxUSE_OPENGL" = "yes"; then
3812         USE_OPENGL=1
3813         AC_DEFINE(wxUSE_OPENGL)
3814         AC_DEFINE(wxUSE_GLCANVAS)
3815         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS opengl opengl/cube opengl/penguin opengl/isosurf"
3816     fi
3817 fi
3818
3819
3820 dnl the symbol which allows conditional compilation for the given toolkit
3821 if test -n "$TOOLKIT" ; then
3822     TOOLCHAIN_DEFS="${TOOLCHAIN_DEFS} -D__WX${TOOLKIT}__"
3823 fi
3824
3825
3826 dnl --- the marker for quick search, leave it here: SHARED_LIB_SETUP ---
3827
3828 if test "$wxUSE_SHARED" = "yes"; then
3829     case "${host}" in
3830       *-pc-msdosdjgpp )
3831         dnl only static for now
3832         wxUSE_SHARED=no
3833         AC_MSG_WARN([Host system doesn't support shared libraries, disabling])
3834       ;;
3835     esac
3836 fi
3837
3838 if test "$wxUSE_SHARED" = "yes"; then
3839
3840     dnl use versioned symbols if available on the platform
3841     WX_VERSIONED_SYMBOLS([\$(top_builddir)version-script])
3842
3843     case "${host}" in
3844       *-*-linux* | *-*-gnu* )
3845         SAMPLES_RPATH_FLAG="-Wl,-rpath,\$(top_builddir)lib"
3846         WXCONFIG_RPATH="-Wl,-rpath,\$libdir"
3847         ;;
3848
3849       *-*-solaris2* )
3850         if test "$GCC" = yes ; then
3851             dnl newer versions of gcc need -isystem to compile X headers on
3852             dnl Solaris (which use old style C syntax)
3853             CPPFLAGS="-isystem /usr/openwin/include $CPPFLAGS"
3854
3855             dnl gcc may use Sun's ld, in which case -rpath gives a confusing
3856             dnl error message. We have to try both -Wl,-rpath and -Wl,-R:
3857             saveLdflags="$LDFLAGS"
3858             LDFLAGS="$saveLdflags -Wl,-rpath,/"
3859             AC_MSG_CHECKING([if the linker accepts -rpath])
3860             AC_TRY_LINK(
3861                 [],[],
3862                 [
3863                     AC_MSG_RESULT([yes])
3864                     SAMPLES_RPATH_FLAG="-Wl,-rpath,\$(top_builddir)lib"
3865                     WXCONFIG_RPATH="-Wl,-rpath,\$libdir"
3866                 ],[
3867                     AC_MSG_RESULT([no])
3868                     AC_MSG_CHECKING([if the linker accepts -R])
3869                     LDFLAGS="$saveLdflags -Wl,-R,/"
3870                     AC_TRY_LINK(
3871                         [],[],
3872                         [
3873                             AC_MSG_RESULT([yes])
3874                             SAMPLES_RPATH_FLAG="-Wl,-R,\$(top_builddir)lib"
3875                             WXCONFIG_RPATH="-Wl,-R,\$libdir"
3876                         ],[
3877                             AC_MSG_RESULT([no])
3878                         ])
3879                 ])
3880             LDFLAGS="$saveLdflags"
3881         else
3882             SAMPLES_RPATH_FLAG="-R\$(top_builddir)lib"
3883             WXCONFIG_RPATH="-R\$libdir"
3884         fi
3885       ;;
3886
3887       *-*-darwin* )
3888         install_name_tool=`which install_name_tool`
3889         if test "$install_name_tool" -a -x "$install_name_tool"; then
3890             SAMPLES_RPATH_POSTLINK="\$(top_builddir)change-install-names \$(LIBDIRNAME) \$(prefix) \$@"
3891             cat <<EOF >change-install-names
3892 #!/bin/sh
3893 libnames=\`cd \${1} ; ls -1 | grep '\.[[0-9]][[0-9]]*\.dylib\$'\`
3894 inst_cmd="install_name_tool "
3895 for i in \${libnames} ; do
3896     inst_cmd="\${inst_cmd} -change \${2}/lib/\${i} \${1}/\${i}"
3897 done
3898 \${inst_cmd} \${3}
3899 EOF
3900             chmod +x change-install-names
3901         fi
3902       ;;
3903
3904       *-*-cygwin* | *-*-mingw32* )
3905         dnl this one shouldn't be used for the library build so put it in a
3906         dnl separate variable from WXCONFIG_CPPFLAGS
3907         WXCONFIG_ONLY_CPPFLAGS="$WXCONFIG_ONLY_CPPFLAGS -DWXUSINGDLL"
3908         ;;
3909
3910       *-*-hpux* )
3911         SAMPLES_RPATH_FLAG="-Wl,+b,\$(top_builddir)lib"
3912         WXCONFIG_RPATH="-Wl,+b,\$libdir"
3913         ;;
3914
3915     esac
3916
3917     if test $wxUSE_RPATH = "no"; then
3918         SAMPLES_RPATH_FLAG=''
3919         SAMPLES_RPATH_POSTLINK=''
3920         WXCONFIG_RPATH=''
3921     fi
3922
3923     SHARED=1
3924
3925 else
3926
3927     config_linkage_component="-static"
3928     SHARED=0
3929
3930 fi
3931
3932
3933 UNICODE=0
3934 lib_unicode_suffix=
3935 WX_CHARTYPE="ansi"
3936 if test "$wxUSE_UNICODE" = "yes"; then
3937     lib_unicode_suffix=u
3938     WX_CHARTYPE="unicode"
3939     UNICODE=1
3940 fi
3941
3942 lib_debug_suffix=
3943 WX_DEBUGTYPE="release"
3944 DEBUG_FLAG=0
3945 if test "$wxUSE_DEBUG_FLAG" = "yes"; then
3946     lib_debug_suffix=d
3947     WX_DEBUGTYPE="debug"
3948     DEBUG_FLAG=1
3949 fi
3950
3951 WX_FLAVOUR=${WX_FLAVOUR:+-$WX_FLAVOUR}
3952 WX_LIB_FLAVOUR=`echo $WX_FLAVOUR | tr '-' '_'`
3953
3954 DEBUG_INFO=0
3955 if test "$wxUSE_DEBUG_INFO" = "yes"; then
3956     DEBUG_INFO=1
3957 fi
3958
3959 WX_VERSION_TAG=`echo WX${lib_unicode_suffix}${lib_debug_suffix}${WX_LIB_FLAVOUR}_${WX_RELEASE} | tr "[[a-z]]" "[[A-Z]]"`
3960
3961 TOOLCHAIN_NAME="${TOOLKIT_DIR}${TOOLKIT_VERSION}${WIDGET_SET}${lib_unicode_suffix}${lib_debug_suffix}${WX_LIB_FLAVOUR}-${WX_RELEASE}"
3962
3963 TOOLCHAIN_FULLNAME="${TOOLKIT_DIR}${TOOLKIT_VERSION}${WIDGET_SET}-${WX_CHARTYPE}-${WX_DEBUGTYPE}${config_linkage_component}-${WX_RELEASE}${WX_FLAVOUR}"
3964
3965 if test "$cross_compiling" = "yes"; then
3966     HOST_SUFFIX="-$host_alias"
3967     TOOLCHAIN_NAME="$TOOLCHAIN_NAME$HOST_SUFFIX"
3968     TOOLCHAIN_FULLNAME="${host_alias}-$TOOLCHAIN_FULLNAME"
3969 fi
3970
3971 dnl library link name
3972 dnl These just save us from exporting lib_{unicode,debug,flavour}_suffix.
3973 dnl If we ever need to do that, we won't need to keep these.
3974 WX_LIBRARY_BASENAME_NOGUI="wx_base${WXBASEPORT}${lib_unicode_suffix}${lib_debug_suffix}${WX_LIB_FLAVOUR}"
3975 if test "${TOOLKIT_DIR}" = "os2"; then
3976     WX_LIBRARY_BASENAME_GUI="wx_pm${WIDGET_SET}${lib_unicode_suffix}${lib_debug_suffix}${WX_LIB_FLAVOUR}"
3977 else
3978     WX_LIBRARY_BASENAME_GUI="wx_${TOOLKIT_DIR}${TOOLKIT_VERSION}${WIDGET_SET}${lib_unicode_suffix}${lib_debug_suffix}${WX_LIB_FLAVOUR}"
3979 fi
3980
3981
3982
3983 if test "$wxUSE_COCOA" = 1; then
3984     AC_LANG_SAVE
3985     AC_WX_LANG_OBJECTIVEC
3986 dnl Recent AppKit/NSEvent.h include parts of IOKit which eventually
3987 dnl gets IOKit/graphics/IOGraphicsTypes.h included which typedefs
3988 dnl Point but only if MacTypes.h was not included first.  Of course,
3989 dnl if MacTypes.h is included later then you're screwed when it
3990 dnl tries to typedef Point.  Defining __Point__ will cause IOGraphicsTypes.h
3991 dnl to not typedef Point and thus fix the problem.
3992     AC_MSG_CHECKING([if AppKit/NSEvent.h conflicts with CoreFoundation])
3993     AC_TRY_COMPILE([#include <AppKit/NSEvent.h>
3994 #include <CoreFoundation/CoreFoundation.h>
3995         ],[],
3996         [AC_MSG_RESULT([no])],
3997         [AC_MSG_RESULT([yes])
3998         AC_MSG_CHECKING([if defining __Point__ will fix it])
3999         AC_TRY_COMPILE([#define __Point__ 1
4000 #include <AppKit/NSEvent.h>
4001 #include <CoreFoundation/CoreFoundation.h>
4002             ],[],
4003             [AC_MSG_RESULT([yes])
4004             AC_DEFINE(__Point__)
4005             ],
4006             [AC_MSG_FAILURE([no])]
4007         )]
4008     )
4009     AC_LANG_RESTORE
4010 fi
4011
4012 if test "$wxUSE_MAC" = 1 -o "$wxUSE_COCOA" = 1; then
4013     dnl base name of the resource file for wxMac must be the same
4014     dnl as library installation base name (-install_name)
4015     WX_RESOURCES_MACOSX_ASCII="libwx_${TOOLCHAIN_NAME}.${wx_release_number}.r"
4016     WX_RESOURCES_MACOSX_DATA="libwx_${TOOLCHAIN_NAME}.${wx_release_number}.rsrc"
4017
4018     dnl add the resources target for wxMac
4019     LIBWXMACRES="\$(top_builddir)lib/${WX_RESOURCES_MACOSX_ASCII}"
4020
4021     AC_CHECK_PROG(REZ, Rez, Rez, /Developer/Tools/Rez)
4022     AC_CHECK_PROG(DEREZ, DeRez, DeRez, /Developer/Tools/DeRez)
4023     AC_CHECK_PROG(SETFILE, SetFile, SetFile, /Developer/Tools/SetFile)
4024
4025     MACSETFILE="\$(SETFILE)"
4026
4027     dnl resources are bundled both with shared library and applications
4028     dnl since the carb resource *must* be included in the application
4029     if test "$wxUSE_MAC" = 1; then
4030         POSTLINK_COMMAND="\$(REZ) -d __DARWIN__ -t APPL Carbon.r -o"
4031         RESCOMP="$REZ"
4032         WXCONFIG_RESFLAGS="-d __DARWIN__ -t APPL Carbon.r -o"
4033     else
4034         POSTLINK_COMMAND="echo -n | \$(REZ) -d __DARWIN__ -t APPL ${LIBWXMACRES}"
4035         RESCOMP="echo -n \| $REZ"
4036         WXCONFIG_RESFLAGS="-d __DARWIN__ -t APPL \$libdir/$WX_RESOURCES_MACOSX_ASCII"
4037     fi
4038
4039 else
4040     dnl default value is to (silently) do nothing in the makefile
4041     MACSETFILE="@true"
4042
4043     if test "$wxUSE_PM" = 1; then
4044         RESCOMP="emxbind"
4045         WXCONFIG_RESFLAGS="-ep"
4046
4047         dnl Is this one really used anywhere for pm?
4048         POSTLINK_COMMAND="$RESCOMP $WXCONFIG_RESFLAGS"
4049     else
4050         POSTLINK_COMMAND="@true"
4051     fi
4052
4053 fi
4054
4055
4056 dnl ---------------------------------------------------------------------------
4057 dnl Checks for typedefs
4058 dnl ---------------------------------------------------------------------------
4059
4060 dnl   defines mode_t if not already defined
4061 AC_TYPE_MODE_T
4062 dnl   defines off_t if not already defined
4063 AC_TYPE_OFF_T
4064 dnl   defines pid_t if not already defined
4065 AC_TYPE_PID_T
4066 dnl   defines size_t if not already defined
4067 AC_TYPE_SIZE_T
4068 dnl   defines uid_t and gid_t if not already defined
4069 AC_TYPE_UID_T
4070
4071 dnl sets HAVE_SSIZE_T if ssize_t is defined
4072 AC_CHECK_TYPES(ssize_t)
4073
4074 dnl check what exactly size_t is on this machine - this is necessary to avoid
4075 dnl ambiguous overloads in several places, notably wx/string.h and wx/array.h
4076 AC_CACHE_CHECK([if size_t is unsigned int],
4077     wx_cv_size_t_is_uint,
4078     [
4079     dnl an obvious check like AC_TRY_COMPILE[struct Foo { ... };] doesn't work
4080     dnl with egcs (at least) up to 1.1.1 as it allows you to compile duplicate
4081     dnl methods in a local class (i.e. class inside a function) declaration
4082     dnl without any objections!!
4083     dnl
4084     dnl hence the hack below: we must have Foo at global scope!
4085     AC_TRY_COMPILE([#include <stddef.h>],
4086         [
4087             return 0; }
4088
4089             struct Foo { void foo(size_t); void foo(unsigned int); };
4090
4091             int bar() {
4092         ],
4093         wx_cv_size_t_is_uint=no,
4094         wx_cv_size_t_is_uint=yes
4095     )
4096     ]
4097 )
4098
4099 if test "$wx_cv_size_t_is_uint" = "yes"; then
4100     AC_DEFINE(wxSIZE_T_IS_UINT)
4101 else
4102     AC_CACHE_CHECK([if size_t is unsigned long],
4103         wx_cv_size_t_is_ulong,
4104         AC_TRY_COMPILE([#include <stddef.h>],
4105             [
4106                 return 0; }
4107
4108                 struct Foo { void foo(size_t); void foo(unsigned long); };
4109
4110                 int bar() {
4111             ],
4112             wx_cv_size_t_is_ulong=no,
4113             wx_cv_size_t_is_ulong=yes
4114         )
4115     )
4116
4117     if test "$wx_cv_size_t_is_ulong" = "yes"; then
4118         AC_DEFINE(wxSIZE_T_IS_ULONG)
4119     fi
4120 fi
4121
4122 dnl ---------------------------------------------------------------------------
4123 dnl Checks for structures
4124 dnl ---------------------------------------------------------------------------
4125
4126 dnl does passwd struct has the pw_gecos field?
4127 AC_CACHE_CHECK([for pw_gecos in struct passwd], wx_cv_struct_pw_gecos,
4128     [
4129         AC_TRY_COMPILE([#include <pwd.h>],
4130              [
4131                 char *p;
4132                 struct passwd *pw;
4133                 p = pw->pw_gecos;
4134              ],
4135              [
4136                 wx_cv_struct_pw_gecos=yes
4137              ],
4138              [
4139                 wx_cv_struct_pw_gecos=no
4140              ]
4141         )
4142     ]
4143 )
4144
4145 if test "$wx_cv_struct_pw_gecos" = "yes"; then
4146     AC_DEFINE(HAVE_PW_GECOS)
4147 fi
4148
4149 dnl ---------------------------------------------------------------------------
4150 dnl Check for functions
4151 dnl ---------------------------------------------------------------------------
4152
4153 dnl don't check for wchar_t functions if we haven't got wchar_t itself
4154 if test "$wxUSE_WCHAR_T" = "yes"; then
4155     AC_DEFINE(wxUSE_WCHAR_T)
4156
4157     dnl check for wcslen in all possible places
4158     WCSLEN_FOUND=0
4159     WCHAR_LINK=
4160     AC_CHECK_FUNCS(wcslen, WCSLEN_FOUND=1)
4161
4162     if test "$WCSLEN_FOUND" = 0; then
4163         if test "$TOOLKIT" = "MSW"; then
4164             AC_CHECK_LIB(msvcrt, wcslen, WCHAR_OK=1)
4165         else
4166             AC_CHECK_LIB(w, wcslen, [
4167                             WCHAR_LINK=" -lw"
4168                             WCSLEN_FOUND=1
4169                         ])
4170         fi
4171     fi
4172
4173     if test "$WCSLEN_FOUND" = 1; then
4174         AC_DEFINE(HAVE_WCSLEN)
4175     fi
4176
4177     dnl On HP-UX aCC need this define to find mbstrtowcs() &c
4178     dnl Can't be used for g++ since the mbstate_t in wchar.h can conflict
4179     dnl with g++'s in <cwchar> (unless -D_INCLUDE__STDC_A1_SOURCE is in the
4180     dnl flags when g++ is configured, it will declare it's own).
4181     if test "$USE_HPUX" = 1 -a "$GCC" != "yes"; then
4182         CPPFLAGS="-D_INCLUDE__STDC_A1_SOURCE $CPPFLAGS"
4183     fi
4184
4185     dnl Try to use wcsrtombs instead of wcstombs which is buggy in old GNU
4186     dnl libc versions if possible. AC_CHECK_FUNCS only checks it's in the
4187     dnl library, not the header, so do a header check for mbstate_t first.
4188     AC_CHECK_TYPES([mbstate_t],
4189                    [AC_CHECK_FUNCS(wcsrtombs)],
4190                    [],
4191                    [#include <wchar.h>])
4192 else
4193     AC_MSG_WARN([Wide character support is unavailable])
4194 fi
4195
4196 dnl check for vsnprintf() -- a safe version of vsprintf())
4197 dnl
4198 dnl the trouble here is that on some systems (e.g HP-UX 10) this function is
4199 dnl present in libc but not in the system headers and so AC_CHECK_FUNCS (which,
4200 dnl stupidly, provides a dummy function declaration inside its extension)
4201 dnl succeeds, even with C++ compiler, but the compilation of wxWidgets fails
4202 dnl
4203 dnl so we first check if the function is in the library
4204 AC_CHECK_FUNCS(snprintf vsnprintf)
4205
4206 if test "$ac_cv_func_vsnprintf" = "yes"; then
4207     dnl yes it is -- now check if it is in the headers
4208     AC_CACHE_CHECK([for vsnprintf declaration], wx_cv_func_vsnprintf_decl,
4209         [
4210             dnl our troubles are not over: HP-UX 11 prototypes vsnprintf() as
4211             dnl taking "char *" and not "const char *" while Metrowerks does
4212             dnl provide a correct vsnprintf declaration but in C++ mode it's
4213             dnl always in std namespace and so we have to bring it in scope
4214             AC_TRY_COMPILE(
4215                 [
4216                     #include <stdio.h>
4217                     #include <stdarg.h>
4218                     #ifdef __MSL__
4219                     #if __MSL__ >= 0x6000
4220                     namespace std {}
4221                     using namespace std;
4222                     #endif
4223                     #endif
4224                 ],
4225                 [
4226                     char *buf;
4227                     va_list ap;
4228                     vsnprintf(buf, 10u, "%s", ap);
4229                 ],
4230                 wx_cv_func_vsnprintf_decl=yes,
4231                 wx_cv_func_vsnprintf_decl=no
4232             )
4233         ]
4234     )
4235
4236     if test "$wx_cv_func_vsnprintf_decl" = "yes"; then
4237         AC_DEFINE(HAVE_VSNPRINTF_DECL)
4238
4239         dnl we know there is a vsnprintf declaration, but some old headers
4240         dnl may have one taking a "char *" format instead of "const char *"
4241         AC_CACHE_CHECK([if vsnprintf declaration is broken], wx_cv_func_broken_vsnprintf_decl,
4242             [
4243                 AC_TRY_COMPILE(
4244                     [
4245                         #include <stdio.h>
4246                         #include <stdarg.h>
4247                         #ifdef __MSL__
4248                         #if __MSL__ >= 0x6000
4249                         namespace std {}
4250                         using namespace std;
4251                         #endif
4252                         #endif
4253                     ],
4254                     [
4255                         char *buf;
4256                         va_list ap;
4257                         const char *fmt = "%s";
4258                         vsnprintf(buf, 10u, fmt, ap);
4259                     ],
4260                     wx_cv_func_broken_vsnprintf_decl=no,
4261                     wx_cv_func_broken_vsnprintf_decl=yes
4262                 )
4263             ]
4264         )
4265
4266         if test "$wx_cv_func_broken_vsnprintf_decl" = "yes"; then
4267             AC_DEFINE(HAVE_BROKEN_VSNPRINTF_DECL)
4268         fi
4269     fi
4270 fi
4271
4272 dnl the same as above but for snprintf() now: it's not present in at least AIX
4273 dnl 4.2 headers
4274 if test "$ac_cv_func_snprintf" = "yes"; then
4275     AC_CACHE_CHECK([for snprintf declaration], wx_cv_func_snprintf_decl,
4276         [
4277             AC_TRY_COMPILE(
4278                 [
4279                     #include <stdio.h>
4280                     #include <stdarg.h>
4281                     #ifdef __MSL__
4282                     #if __MSL__ >= 0x6000
4283                     namespace std {}
4284                     using namespace std;
4285                     #endif
4286                     #endif
4287                 ],
4288                 [
4289                     char *buf;
4290                     snprintf(buf, 10u, "%s", "wx");
4291                 ],
4292                 wx_cv_func_snprintf_decl=yes,
4293                 wx_cv_func_snprintf_decl=no
4294             )
4295         ]
4296     )
4297
4298     if test "$wx_cv_func_snprintf_decl" = "yes"; then
4299         AC_DEFINE(HAVE_SNPRINTF_DECL)
4300
4301         dnl we know there is an snprintf declaration, but some old headers
4302         dnl may have one taking a "char *" format instead of "const char *"
4303         AC_CACHE_CHECK([if snprintf declaration is broken], wx_cv_func_broken_snprintf_decl,
4304             [
4305                 AC_TRY_COMPILE(
4306                     [
4307                         #include <stdio.h>
4308                         #include <stdarg.h>
4309                         #ifdef __MSL__
4310                         #if __MSL__ >= 0x6000
4311                         namespace std {}
4312                         using namespace std;
4313                         #endif
4314                         #endif
4315                     ],
4316                     [
4317                         char *buf;
4318                         const char *fmt = "%s";
4319                         snprintf(buf, 10u, fmt, "wx");
4320                     ],
4321                     wx_cv_func_broken_snprintf_decl=no,
4322                     wx_cv_func_broken_snprintf_decl=yes
4323                 )
4324             ]
4325         )
4326
4327         if test "$wx_cv_func_broken_snprintf_decl" = "yes"; then
4328             AC_DEFINE(HAVE_BROKEN_SNPRINTF_DECL)
4329         fi
4330     fi
4331
4332     if test "$wxUSE_PRINTF_POS_PARAMS" = "yes"; then
4333
4334         dnl check if snprintf() has support for positional arguments
4335         dnl NB: if snprintf() has positional support we can safely suppose that also
4336         dnl     other *printf() functions support them as they all belong to the same
4337         dnl     family and they all fallback to the same implementation
4338         AC_CACHE_CHECK([if snprintf supports positional arguments], wx_cv_func_snprintf_pos_params,
4339             [
4340                 AC_TRY_RUN(
4341                     [
4342                         #include <stdio.h>
4343
4344                         int main (void)
4345                         {
4346                             char buffer[128];
4347                             snprintf (buffer, 128, "%2\$d %3\$d %1\$d", 1, 2, 3);
4348                             if (strcmp ("2 3 1", buffer) == 0)
4349                                 exit (0);
4350                             exit (1);
4351                         }
4352                     ],
4353                     wx_cv_func_snprintf_pos_params=no,
4354                     wx_cv_func_snprintf_pos_params=yes
4355                 )
4356             ]
4357         )
4358
4359         if test "$wx_cv_func_snprintf_pos_params" = "yes"; then
4360             AC_DEFINE(HAVE_UNIX98_PRINTF)
4361         fi
4362     fi
4363 fi
4364
4365
4366 if test "$wxUSE_UNICODE" = yes; then
4367     dnl also look if we have wide char IO functions
4368     AC_CHECK_FUNCS(wputc wputchar putws fputws wprintf vswprintf)
4369
4370     dnl MinGW has a vswprintf with a different prototype, and
4371     dnl a _vsnwprintf with the correct prototype, but AC_CHECK_FUNCS
4372     dnl finds it even if it is not declared in some versions...
4373     AC_MSG_CHECKING([for _vsnwprintf])
4374     AC_TRY_COMPILE([#include <wchar.h>],
4375                    [&_vsnwprintf;],
4376                    [AC_MSG_RESULT([yes])
4377                     AC_DEFINE(HAVE__VSNWPRINTF)],
4378                    [AC_MSG_RESULT([no])]);
4379 fi
4380
4381 if test "x$ac_cv_header_fnmatch_h" = "xyes"; then
4382     AC_CHECK_FUNCS(fnmatch)
4383 fi
4384
4385 if test "$wxUSE_FILE" = "yes"; then
4386     AC_CHECK_FUNCS(fsync)
4387 fi
4388
4389
4390 dnl the following tests are for Unix(like) systems only
4391 if test "$TOOLKIT" != "MSW"; then
4392
4393 dnl check for available version of iconv()
4394
4395 AM_ICONV
4396 LIBS="$LIBICONV $LIBS"
4397
4398 dnl check for POSIX signals if we need them
4399 if test "$wxUSE_ON_FATAL_EXCEPTION" = "yes" -a "$wxUSE_UNIX" = "yes"; then
4400     AC_CHECK_FUNCS(sigaction)
4401
4402     if test "$ac_cv_func_sigaction" = "no"; then
4403         AC_MSG_WARN([No POSIX signal functions on this system, wxApp::OnFatalException will not be called])
4404         wxUSE_ON_FATAL_EXCEPTION=no
4405     fi
4406
4407     if test "$wxUSE_ON_FATAL_EXCEPTION" = "yes"; then
4408       AC_CACHE_CHECK([for sa_handler type], wx_cv_type_sa_handler,
4409       [
4410         AC_TRY_COMPILE([#include <signal.h>],
4411                      [
4412                         extern void testSigHandler(int);
4413
4414                         struct sigaction sa;
4415                         sa.sa_handler = testSigHandler;
4416                      ], [
4417                         wx_cv_type_sa_handler=int
4418                      ], [
4419                         wx_cv_type_sa_handler=void
4420                      ])
4421       ])
4422
4423       AC_DEFINE_UNQUOTED(wxTYPE_SA_HANDLER, $wx_cv_type_sa_handler)
4424     fi
4425 fi
4426
4427 dnl backtrace() and backtrace_symbols() for wxStackWalker
4428 if test "$wxUSE_STACKWALKER" = "yes" -a "$wxUSE_UNIX" = "yes"; then
4429     AC_CACHE_CHECK([for backtrace() in <execinfo.h>], wx_cv_func_backtrace,
4430         [
4431             AC_TRY_COMPILE([#include <execinfo.h>],
4432                 [
4433                     void *trace[1];
4434                     char **messages;
4435
4436                     backtrace(trace, 1);
4437                     messages = backtrace_symbols(trace, 1);
4438                 ],
4439                 wx_cv_func_backtrace=yes,
4440                 wx_cv_func_backtrace=no
4441             )
4442         ]
4443     )
4444
4445
4446     if test "$wx_cv_func_backtrace" = "no"; then
4447         AC_MSG_WARN([backtrace() is not available, wxStackWalker will not be available])
4448         wxUSE_STACKWALKER=no
4449     else
4450         AC_CACHE_CHECK([for __cxa_demangle() in <cxxabi.h>], wx_cv_func_cxa_demangle,
4451             [
4452                 AC_TRY_LINK([#include <cxxabi.h>],
4453                     [
4454                         int rc;
4455                         __cxxabiv1::__cxa_demangle("foo", 0, 0, &rc);
4456                     ],
4457                     wx_cv_func_cxa_demangle=yes,
4458                     wx_cv_func_cxa_demangle=no
4459                 )
4460             ]
4461         )
4462
4463         if test "$wx_cv_func_cxa_demangle" = "yes"; then
4464             AC_DEFINE(HAVE_CXA_DEMANGLE)
4465         fi
4466     fi
4467 fi
4468
4469 if test "$wxUSE_STACKWALKER" = "yes" -a "$USE_WIN32" != "1" -a "$USE_UNIX" != "1"; then
4470     AC_MSG_WARN([wxStackWalker is only available on Win32 and UNIX... disabled])
4471     wxUSE_STACKWALKER=no
4472 fi
4473
4474
4475 dnl check for the function for temp files creation
4476 AC_CHECK_FUNCS(mkstemp mktemp, break)
4477
4478 dnl get the library function to use for wxGetDiskSpace(): it is statfs() under
4479 dnl Linux and *BSD and statvfs() under Solaris
4480 AC_CACHE_CHECK(for statfs, wx_cv_func_statfs,
4481     AC_TRY_COMPILE(
4482         [
4483              #if defined(__BSD__)
4484              #include <sys/param.h>
4485              #include <sys/mount.h>
4486              #else
4487              #include <sys/vfs.h>
4488              #endif
4489         ],
4490         [
4491              long l;
4492              struct statfs fs;
4493              statfs("/", &fs);
4494              l = fs.f_bsize;
4495              l += fs.f_blocks;
4496              l += fs.f_bavail;
4497         ],
4498          wx_cv_func_statfs=yes,
4499          wx_cv_func_statfs=no
4500     )
4501 )
4502
4503 if test "$wx_cv_func_statfs" = "yes"; then
4504     dnl check whether we have its dcelaration too: some systems (AIX 4) lack it
4505     AC_CACHE_CHECK(for statfs declaration, wx_cv_func_statfs_decl,
4506         AC_TRY_COMPILE(
4507             [
4508                  #if defined(__BSD__)
4509                  #include <sys/param.h>
4510                  #include <sys/mount.h>
4511                  #else
4512                  #include <sys/vfs.h>
4513                  #endif
4514             ],
4515             [
4516                 struct statfs fs;
4517                 statfs("", &fs);
4518             ],
4519             wx_cv_func_statfs_decl=yes,
4520             wx_cv_func_statfs_decl=no
4521         )
4522     )
4523
4524     if test "$wx_cv_func_statfs_decl" = "yes"; then
4525         AC_DEFINE(HAVE_STATFS_DECL)
4526     fi
4527
4528     wx_cv_type_statvfs_t="struct statfs"
4529     AC_DEFINE(HAVE_STATFS)
4530 else
4531     AC_CACHE_CHECK(for statvfs, wx_cv_func_statvfs,
4532         AC_TRY_COMPILE(
4533             [
4534                 #include <stddef.h>
4535                 #include <sys/statvfs.h>
4536             ],
4537             [
4538                 statvfs("/", NULL);
4539             ],
4540             wx_cv_func_statvfs=yes,
4541             wx_cv_func_statvfs=no
4542         )
4543     )
4544
4545     if test "$wx_cv_func_statvfs" = "yes"; then
4546         dnl we also have to check whether we should use statvfs_t (works under
4547         dnl Solaris 8, doesn't work under Solaris 7) or "struct statvfs" (vice
4548         dnl versa) as the argument for statvfs in 64 bit off_t mode (in 32 bit
4549         dnl mode both work fine)
4550         dnl
4551         dnl for this check C++ compiler has to be used as passing incompatible
4552         dnl pointers is just a warning and not an error in C
4553         AC_CACHE_CHECK(for statvfs argument type, wx_cv_type_statvfs_t,
4554             AC_TRY_COMPILE(
4555                 [
4556                     #include <sys/statvfs.h>
4557                 ],
4558                 [
4559                     long l;
4560                     statvfs_t fs;
4561                     statvfs("/", &fs);
4562                     l = fs.f_bsize;
4563                     l += fs.f_blocks;
4564                     l += fs.f_bavail;
4565                 ],
4566                 wx_cv_type_statvfs_t=statvfs_t,
4567                 [
4568                     AC_TRY_COMPILE(
4569                         [
4570                             #include <sys/statvfs.h>
4571                         ],
4572                         [
4573                             long l;
4574                             struct statvfs fs;
4575                             statvfs("/", &fs);
4576                             l = fs.f_bsize;
4577                             l += fs.f_blocks;
4578                             l += fs.f_bavail;
4579                         ],
4580                         wx_cv_type_statvfs_t="struct statvfs",
4581                         wx_cv_type_statvfs_t="unknown"
4582                     )
4583                 ]
4584             )
4585         )
4586
4587         if test "$wx_cv_type_statvfs_t" != "unknown"; then
4588             AC_DEFINE(HAVE_STATVFS)
4589         fi
4590     else
4591         dnl set it for the test below
4592         wx_cv_type_statvfs_t="unknown"
4593     fi
4594 fi
4595
4596 if test "$wx_cv_type_statvfs_t" != "unknown"; then
4597     AC_DEFINE_UNQUOTED(WX_STATFS_T, $wx_cv_type_statvfs_t)
4598 else
4599     AC_MSG_WARN([wxGetDiskSpace() function won't work without statfs()])
4600 fi
4601
4602 dnl check for fcntl() or at least flock() needed by Unix implementation of
4603 dnl wxSingleInstanceChecker
4604 if test "$wxUSE_SNGLINST_CHECKER" = "yes"; then
4605     AC_CHECK_FUNCS(fcntl flock, break)
4606
4607     if test "$ac_cv_func_fcntl" != "yes" -a "$ac_cv_func_flock" != "yes"; then
4608         AC_MSG_WARN(wxSingleInstanceChecker not available)
4609         wxUSE_SNGLINST_CHECKER=no
4610     fi
4611 fi
4612
4613 dnl check for timegm() used by datetime.cpp
4614 AC_CHECK_FUNCS(timegm)
4615
4616 dnl look for a function to modify the environment
4617 AC_CHECK_FUNCS(putenv setenv, break)
4618
4619 HAVE_SOME_SLEEP_FUNC=0
4620 if test "$USE_BEOS" = 1; then
4621     dnl BeOS has its own (wonder where did they get it from) sleep() function
4622     dnl in unistd.h
4623     AC_DEFINE(HAVE_SLEEP)
4624     HAVE_SOME_SLEEP_FUNC=1
4625 fi
4626
4627 if test "$USE_DARWIN" = 1; then
4628     dnl Mac OS X/Darwin has both nanosleep and usleep
4629     dnl but only usleep is defined in unistd.h
4630     AC_DEFINE(HAVE_USLEEP)
4631     HAVE_SOME_SLEEP_FUNC=1
4632 fi
4633
4634 if test "$HAVE_SOME_SLEEP_FUNC" != 1; then
4635     dnl try nanosleep() in libc and libposix4, if this fails - usleep()
4636     POSIX4_LINK=
4637     AC_CHECK_FUNCS(nanosleep,
4638         AC_DEFINE(HAVE_NANOSLEEP),
4639         [
4640             AC_CHECK_LIB(posix4, nanosleep,
4641                 [
4642                     AC_DEFINE(HAVE_NANOSLEEP)
4643                     POSIX4_LINK=" -lposix4"
4644                 ],
4645                 [
4646                     AC_CHECK_FUNCS(usleep,
4647                         AC_DEFINE(HAVE_USLEEP),
4648                         AC_MSG_WARN([wxSleep() function will not work])
4649                     )
4650                 ]
4651             )
4652         ]
4653     )
4654 fi
4655
4656 dnl check for uname (POSIX) and gethostname (BSD)
4657 AC_CHECK_FUNCS(uname gethostname, break)
4658
4659 AC_CHECK_FUNCS(strtok_r)
4660
4661 dnl check for inet_addr and inet_aton (these may live either in libc, or in
4662 dnl libnsl or libresolv or libsocket)
4663 INET_LINK=
4664 AC_CHECK_FUNCS(inet_addr,
4665     AC_DEFINE(HAVE_INET_ADDR),
4666     [
4667         AC_CHECK_LIB(nsl, inet_addr,
4668             INET_LINK="nsl",
4669             [
4670                 AC_CHECK_LIB(resolv, inet_addr,
4671                     INET_LINK="resolv",
4672                     [
4673                         AC_CHECK_LIB(socket, inet_addr,
4674                             INET_LINK="socket"
4675                         )
4676                     ]
4677                 )
4678             ]
4679         )
4680     ]
4681 )
4682
4683 AC_CHECK_FUNCS(inet_aton,
4684         AC_DEFINE(HAVE_INET_ATON),
4685         [
4686             dnl only check it in the same lib
4687             AC_CHECK_LIB($INET_LINK, inet_aton, AC_DEFINE(HAVE_INET_ATON))
4688         ])
4689
4690 if test "x$INET_LINK" != "x"; then
4691     AC_DEFINE(HAVE_INET_ADDR)
4692     INET_LINK=" -l$INET_LINK"
4693 fi
4694
4695 fi
4696 dnl if !MSW
4697
4698
4699 dnl ------------------------------------------
4700 dnl Checks specific to contrib libs (MMedia)
4701 dnl ------------------------------------------
4702
4703 dnl Check for ESD:
4704 EXTRALIBS_ESD=
4705 AC_CHECK_LIB(esd, esd_close, [
4706     AC_CHECK_HEADERS([esd.h], [
4707     EXTRALIBS_ESD="-lesd"
4708   ])
4709 ])
4710 AC_SUBST(EXTRALIBS_ESD)
4711
4712 dnl check for known CD-ROM interface
4713 AC_MSG_CHECKING([for known CD-ROM interface])
4714 AC_TRY_COMPILE([#ifdef __linux__
4715                 #include <linux/cdrom.h>
4716                 #else
4717                 /* For Solaris */
4718                 #include <sys/cdio.h>
4719                 #endif
4720                 ],
4721                [struct cdrom_tocentry entry, old_entry;],
4722                [AC_MSG_RESULT([yes])
4723                 AC_DEFINE(HAVE_KNOWN_CDROM_INTERFACE)],
4724                [AC_MSG_RESULT([no])])
4725
4726 dnl ===========================================================================
4727 dnl Now we have all the info we need - use it!
4728 dnl ===========================================================================
4729
4730 dnl flush the cache
4731 AC_CACHE_SAVE
4732
4733 dnl ---------------------------------------------------------------------------
4734 dnl thread support for Unix (for Win32 and OS/2 see past
4735 dnl                          the next matching "else")
4736 dnl ---------------------------------------------------------------------------
4737
4738 dnl under MSW (except mingw32) we always have thread support
4739 if test "$TOOLKIT" != "MSW" -a "$USE_OS2" != 1; then
4740
4741     dnl the code below:
4742     dnl
4743     dnl   defines THREADS_LINK and THREADS_CXXFLAGS which are the options
4744     dnl   necessary to build the MT programs for the linker and compiler
4745     dnl   respectively
4746     dnl
4747     dnl   sets wxUSE_THREADS=1 if thread support is activated
4748
4749     THREADS_LINK=
4750     THREADS_CXXFLAGS=
4751
4752     if test "$wxUSE_THREADS" = "yes" ; then
4753         if test "$USE_BEOS" = 1; then
4754             AC_MSG_WARN([BeOS threads are not yet supported... disabled])
4755             wxUSE_THREADS="no"
4756         fi
4757     fi
4758
4759     if test "$wxUSE_THREADS" = "yes" ; then
4760         dnl find if POSIX threads are available
4761         dnl
4762         dnl the tests here are based on ACX_PTHREAD macro from autoconf macro
4763         dnl archive from http://ac-archive.sourceforge.net/
4764         dnl
4765         dnl thanks to Steven G. Johnson <stevenj@alum.mit.edu> and Alejandro
4766         dnl Forero Cuervo <bachue@bachue.com> for the original code
4767
4768         dnl TODO: cache the result
4769
4770         dnl define the list of the thread options to try in the loop below
4771         dnl with the convention that anything starting with '-' is a cpp flag
4772         dnl while anything else is a library (i.e. there is an implicit "-l")
4773         THREAD_OPTS="-pthread"
4774         case "${host}" in
4775           *-*-solaris2* | *-*-sunos4* )
4776                 if test "x$GCC" = "xyes"; then
4777                     dnl Solaris/gcc combination use this one for some reason
4778                     THREAD_OPTS="-pthreads $THREAD_OPTS"
4779                 else
4780                     THREAD_OPTS="-mt $THREAD_OPTS"
4781                 fi
4782                 ;;
4783           *-*-freebsd*)
4784                 dnl look, in order, for the kernel threads, then Linux threads
4785                 dnl and finally the userland threads
4786                 THREAD_OPTS="-kthread lthread $THREAD_OPTS c_r"
4787                 ;;
4788           *-*-darwin* | *-*-cygwin* )
4789                 dnl Darwin / Mac OS X just uses -lpthread tested below
4790                 dnl and so does Cygwin
4791                 THREAD_OPTS=""
4792                 ;;
4793           *-*-aix*)
4794                 dnl AIX calls the library libpthreads - thanks IBM!
4795                 THREAD_OPTS="pthreads"
4796                 ;;
4797           *-hp-hpux* )
4798                 if test "x$GCC" = "xyes"; then
4799                     dnl g++ versions before 3.3.2 don't support -pthread.
4800                     $CXX -dumpspecs | grep 'pthread:' >/dev/null ||
4801                         THREAD_OPTS=""
4802                 else
4803                     dnl HP-UX aCC (tested with version B3910B A.06.05 [Jul 25
4804                     dnl 2005]) supports -mt
4805                     THREAD_OPTS="-mt"
4806                 fi
4807                 ;;
4808
4809           *-*-irix* )
4810                 dnl gcc under IRIX doesn't seem to like -pthread, but it
4811                 dnl doesn't give an error for it neither, just a warning
4812                 dnl message -- but this is still very annoying
4813                 if test "x$GCC" = "xyes"; then
4814                     THREAD_OPTS=""
4815                 fi
4816                 ;;
4817
4818           *-*-*UnixWare*)
4819                 dnl flying by man pages here: Caldera online docs use this
4820                 if test "x$GCC" != "xyes"; then
4821                     THREAD_OPTS="-Ethread"
4822                 fi
4823                 ;;
4824         esac
4825
4826         dnl simply linking with libpthread should make the test below work but
4827         dnl it's far from certain that the threaded programs compiled without
4828         dnl any special switches actually work, so try it after all the others
4829         THREAD_OPTS="$THREAD_OPTS pthread none"
4830
4831         dnl now test for all possibilities
4832         THREADS_OK=no
4833         for flag in $THREAD_OPTS; do
4834             case $flag in
4835                 none)
4836                     AC_MSG_CHECKING([whether pthreads work without any flags])
4837                     ;;
4838
4839                 -*)
4840                     AC_MSG_CHECKING([whether pthreads work with $flag])
4841                     THREADS_CXXFLAGS="$flag"
4842                     ;;
4843
4844                 *)
4845                     AC_MSG_CHECKING([for the pthreads library -l$flag])
4846                     THREADS_LINK="-l$flag"
4847                     ;;
4848               esac
4849
4850               save_LIBS="$LIBS"
4851               save_CXXFLAGS="$CXXFLAGS"
4852               LIBS="$THREADS_LINK $LIBS"
4853               CXXFLAGS="$THREADS_CXXFLAGS $CXXFLAGS"
4854
4855               AC_TRY_LINK([#include <pthread.h>],
4856                           [pthread_create(0,0,0,0);],
4857                           THREADS_OK=yes)
4858
4859               LIBS="$save_LIBS"
4860               CXXFLAGS="$save_CXXFLAGS"
4861
4862               AC_MSG_RESULT($THREADS_OK)
4863               if test "x$THREADS_OK" = "xyes"; then
4864                       break;
4865               fi
4866
4867               THREADS_LINK=""
4868               THREADS_CXXFLAGS=""
4869       done
4870
4871       if test "x$THREADS_OK" != "xyes"; then
4872           wxUSE_THREADS=no
4873           AC_MSG_WARN([No thread support on this system... disabled])
4874       else
4875           dnl yes, these special compiler flags should be used with the
4876           dnl linker as well
4877           LDFLAGS="$THREADS_CXXFLAGS $LDFLAGS"
4878           LIBS="$THREADS_LINK $LIBS"
4879
4880           AC_MSG_CHECKING([if more special flags are required for pthreads])
4881           flag=no
4882           case "${host}" in
4883             *-aix*)
4884                 dnl again quoting from
4885                 dnl http://www-1.ibm.com/servers/esdd/articles/gnu.html:
4886                 dnl
4887                 dnl     When compiling and linking with -pthread, the library
4888                 dnl     search path should include -L/usr/lib/threads at the
4889                 dnl     beginning of the path.
4890                 LDFLAGS="-L/usr/lib/threads $LDFLAGS"
4891                 flag="-D_THREAD_SAFE"
4892                 ;;
4893             *-freebsd*)
4894                 flag="-D_THREAD_SAFE"
4895                 ;;
4896             *-hp-hpux* )
4897                 flag="-D_REENTRANT"
4898                 if test "x$GCC" != "xyes"; then
4899                     dnl see http://docs.hp.com/hpux/onlinedocs/2213/threads.htm
4900                     flag="$flag -D_RWSTD_MULTI_THREAD"
4901                 fi
4902                 ;;
4903             *solaris* | alpha*-osf*)
4904                 flag="-D_REENTRANT"
4905                 ;;
4906           esac
4907           AC_MSG_RESULT(${flag})
4908           if test "x$flag" != xno; then
4909               THREADS_CXXFLAGS="$THREADS_CXXFLAGS $flag"
4910           fi
4911
4912           dnl don't add these options to CPPFLAGS as cpp might not know them
4913           WXCONFIG_CXXFLAGS="$WXCONFIG_CXXFLAGS $THREADS_CXXFLAGS"
4914       fi
4915     fi
4916
4917     dnl do other tests only if we are using threads
4918     if test "$wxUSE_THREADS" = "yes" ; then
4919       AC_CHECK_FUNCS(thr_setconcurrency)
4920
4921       dnl can't use AC_CHECK_FUNCS for this one as it's usually a macro and so
4922       dnl wouldn't be found by it
4923       AC_CACHE_CHECK([for pthread_cleanup_push/pop], wx_cv_func_pthread_cleanup,
4924       [
4925         AC_TRY_COMPILE([#include <pthread.h>
4926                void ThreadCleanupFunc(void *p);
4927             ],
4928             [
4929                 void *p;
4930                 pthread_cleanup_push(ThreadCleanupFunc, p);
4931                 pthread_cleanup_pop(0);
4932             ], [
4933                wx_cv_func_pthread_cleanup=yes
4934             ], [
4935                wx_cv_func_pthread_cleanup=no
4936             ]
4937         )
4938       ])
4939       if test "x$wx_cv_func_pthread_cleanup" = "xyes"; then
4940         AC_DEFINE(wxHAVE_PTHREAD_CLEANUP)
4941       fi
4942
4943       AC_CHECK_HEADERS(sched.h)
4944       if test "$ac_cv_header_sched_h" = "yes"; then
4945           AC_CHECK_FUNC(sched_yield,
4946             AC_DEFINE(HAVE_SCHED_YIELD),
4947             [
4948                 AC_CHECK_LIB(posix4,
4949                     sched_yield,
4950                     [AC_DEFINE(HAVE_SCHED_YIELD) POSIX4_LINK=" -lposix4"],
4951                     AC_MSG_WARN(wxThread::Yield will not work properly)
4952                 )
4953             ]
4954           )
4955       fi
4956
4957       dnl to be able to set the thread priority, we need to have all of the
4958       dnl following functions:
4959       dnl   1. pthread_attr_getschedpolicy
4960       dnl   2. sched_get_priority_min and sched_get_priority_max
4961       dnl      (this one can be in either libpthread or libposix4 (under Solaris))
4962       dnl   3. pthread_attr_getschedparam and pthread_attr_setschedparam
4963       HAVE_PRIOR_FUNCS=0
4964       AC_CHECK_FUNC(pthread_attr_getschedpolicy,
4965                      [AC_CHECK_FUNC(pthread_attr_setschedparam,
4966                        [AC_CHECK_FUNC(sched_get_priority_max,
4967                            HAVE_PRIOR_FUNCS=1,
4968                            [AC_CHECK_LIB([posix4], sched_get_priority_max,
4969                              [
4970                                 HAVE_PRIOR_FUNCS=1
4971                                 POSIX4_LINK=" -lposix4"
4972                              ],
4973                            )]
4974                        )]
4975                      )]
4976                    )
4977
4978       if test "$HAVE_PRIOR_FUNCS" = 1; then
4979         AC_DEFINE(HAVE_THREAD_PRIORITY_FUNCTIONS)
4980       else
4981         AC_MSG_WARN(Setting thread priority will not work)
4982       fi
4983
4984       AC_CHECK_FUNC(pthread_cancel,
4985                     AC_DEFINE(HAVE_PTHREAD_CANCEL),
4986                     AC_MSG_WARN([wxThread::Kill() will not work properly]))
4987
4988       AC_CHECK_FUNC(pthread_attr_setstacksize,
4989                     AC_DEFINE(HAVE_PTHREAD_ATTR_SETSTACKSIZE))
4990
4991       dnl mutexattr_t initialization is done in quite different ways on different
4992       dnl platforms, so check for a few things:
4993       dnl
4994       dnl HAVE_MUTEX_RECURSIVE means that we can create recursive mutexes
4995       dnl HAVE_MUTEXATTR_SETTYPE means that we do it using
4996       dnl pthread_mutexattr_settype(PTHREAD_MUTEX_RECURSIVE) and if it is not
4997       dnl defined, we do it by directly assigned
4998       dnl PTHREAD_MUTEX_RECURSIVE_MUTEX_INITIALIZER_NP to attr
4999
5000       AC_CACHE_CHECK([for pthread_mutexattr_t], wx_cv_type_pthread_mutexattr_t,
5001       [
5002         AC_TRY_COMPILE([#include <pthread.h>],
5003             [
5004                pthread_mutexattr_t attr;
5005                pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
5006             ],
5007             wx_cv_type_pthread_mutexattr_t=yes,
5008             wx_cv_type_pthread_mutexattr_t=no
5009         )
5010       ])
5011
5012       if test "$wx_cv_type_pthread_mutexattr_t" = "yes"; then
5013         AC_DEFINE(HAVE_PTHREAD_MUTEXATTR_T)
5014
5015         dnl check if we already have the declaration we need, it is not
5016         dnl present in some systems' headers
5017         AC_CACHE_CHECK([for pthread_mutexattr_settype declaration],
5018                        wx_cv_func_pthread_mutexattr_settype_decl, [
5019                        AC_TRY_COMPILE([#include <pthread.h>],
5020                            [
5021                                pthread_mutexattr_t attr;
5022                                pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
5023                            ],
5024                            wx_cv_func_pthread_mutexattr_settype_decl=yes,
5025                            wx_cv_func_pthread_mutexattr_settype_decl=no
5026                        )
5027         ])
5028         if test "$wx_cv_func_pthread_mutexattr_settype_decl" = "yes"; then
5029             AC_DEFINE(HAVE_PTHREAD_MUTEXATTR_SETTYPE_DECL)
5030         fi
5031       else
5032         dnl don't despair, there may be another way to do it
5033         AC_CACHE_CHECK([for PTHREAD_RECURSIVE_MUTEX_INITIALIZER],
5034                        wx_cv_type_pthread_rec_mutex_init,
5035         [
5036             AC_TRY_COMPILE([#include <pthread.h>],
5037                 [
5038                     pthread_mutex_t attr = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP;
5039                 ], [
5040                     wx_cv_type_pthread_rec_mutex_init=yes
5041                 ], [
5042                     wx_cv_type_pthread_rec_mutex_init=no
5043                 ]
5044             )
5045         ])
5046         if test "$wx_cv_type_pthread_rec_mutex_init" = "yes"; then
5047           AC_DEFINE(HAVE_PTHREAD_RECURSIVE_MUTEX_INITIALIZER)
5048         else
5049           dnl this may break code working elsewhere, so at least warn about it
5050           AC_MSG_WARN([wxMutex won't be recursive on this platform])
5051         fi
5052       fi
5053     fi
5054
5055 dnl from if !MSW
5056 else
5057     if test "$wxUSE_THREADS" = "yes" ; then
5058       case "${host}" in
5059         *-*-mingw32* )
5060             dnl check if the compiler accepts -mthreads
5061             AC_CACHE_CHECK([if compiler supports -mthreads],
5062                 wx_cv_cflags_mthread,
5063                 [
5064                     CXXFLAGS_OLD="$CXXFLAGS"
5065                     CXXFLAGS="-mthreads $CXXFLAGS"
5066                     AC_TRY_COMPILE([], [],
5067                         wx_cv_cflags_mthread=yes,
5068                         wx_cv_cflags_mthread=no
5069                     )
5070                 ]
5071             )
5072
5073             if test "$wx_cv_cflags_mthread" = "yes"; then
5074                 dnl it does, use it
5075                 WXCONFIG_CXXFLAGS="$WXCONFIG_CXXFLAGS -mthreads"
5076                 LDFLAGS="$LDFLAGS -mthreads"
5077             else
5078                 dnl it doesn't
5079                 CXXFLAGS="$CXXFLAGS_OLD"
5080             fi
5081         ;;
5082         *-pc-os2*emx )
5083             WXCONFIG_CFLAGS="$WXCONFIG_CFLAGS -Zmt -D__ST_MT_ERRNO__"
5084             WXCONFIG_CXXFLAGS="$WXCONFIG_CXXFLAGS -Zmt -D__ST_MT_ERRNO__"
5085             LDFLAGS="$LDFLAGS -Zmt"
5086         ;;
5087       esac
5088     fi
5089 fi
5090
5091 AC_CHECK_FUNC(localtime_r, [ AC_DEFINE(HAVE_LOCALTIME_R) ])
5092 AC_CHECK_FUNC(gmtime_r, [ AC_DEFINE(HAVE_GMTIME_R) ])
5093 AC_CHECK_FUNC(readdir_r, [ AC_DEFINE(HAVE_READDIR_R) ])
5094 dnl By preference, we probably should use getaddrinfo which avoids thread
5095 dnl safety issues and supports IPv6, however there currently is no code
5096 dnl for it, so testing for it is temporarily disabled and we are restricted
5097 dnl to gethostbyname_r/gethostbyaddr_r  and getservbyname_r
5098
5099 dnl AC_CHECK_FUNC(getaddrinfo, AC_DEFINE(HAVE_GETADDRINFO), [
5100     dnl no getaddrinfo, so check for gethostbyname_r and
5101     dnl related functions (taken from python's configure.in)
5102     dnl sigh -- gethostbyname_r is a mess; it can have 3, 5 or 6 arguments
5103       AX_FUNC_WHICH_GETHOSTBYNAME_R
5104       if test "x$ac_cv_func_which_gethostbyname_r" = "xno" -o \
5105               "x$ac_cv_func_which_gethostbyname_r" = "xunknown" ; then
5106           AC_CHECK_FUNC(gethostbyname, [ AC_DEFINE(HAVE_GETHOSTBYNAME) ])
5107       fi
5108       dnl A similar test for getservbyname_r
5109       dnl I'm tempted to just not do this test which is taking much time and
5110       dnl do something similar as for gethostbyaddr_r, but OTOH the macro
5111       dnl doing the test already exists, so using it is easy enough.     - SN
5112       AC_raf_FUNC_WHICH_GETSERVBYNAME_R
5113       if test "x$ac_cv_func_which_getservbyname_r" = "xno" -o \
5114               "x$ac_cv_func_which_getservbyname_r" = "xunknown" ; then
5115           AC_CHECK_FUNCS(getservbyname,[ AC_DEFINE(HAVE_GETSERVBYNAME) ])
5116       fi
5117       dnl For gethostbyaddr_r, we currently do no separate test, instead, we
5118       dnl silently assume it's available exactly if gethostbyname_r is
5119       dnl available and always requires two more arguments than
5120       dnl gethostbyname_r.
5121       dnl (also, I'm lazy and there no m4 file that's ready for use for this
5122       dnl  function, although it should be easy to rewrite the gethostbyname_r
5123       dnl  check to fit this case, if it's really needed.                - SN )
5124 dnl    ]
5125 dnl )
5126
5127 if test "$wxUSE_THREADS" = "yes"; then
5128   AC_DEFINE(wxUSE_THREADS)
5129
5130   SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS thread"
5131 else
5132   dnl on some systems, _REENTRANT should be defined if we want to use any _r()
5133   dnl functions - add tests for other functions here as well
5134   if test "$ac_cv_func_strtok_r" = "yes"; then
5135     AC_MSG_CHECKING(if -D_REENTRANT is needed)
5136     if test "$NEEDS_D_REENTRANT_FOR_R_FUNCS" = 1; then
5137         WXCONFIG_CPPFLAGS="$WXCONFIG_CPPFLAGS -D_REENTRANT"
5138         AC_MSG_RESULT(yes)
5139     else
5140         AC_MSG_RESULT(no)
5141     fi
5142   fi
5143 fi
5144
5145 if test "$WXGTK20" = 1 ; then
5146   AC_DEFINE_UNQUOTED(__WXGTK20__,$WXGTK20)
5147   WXGTK12=1
5148 fi
5149
5150 if test "$WXGTK12" = 1 ; then
5151   AC_DEFINE_UNQUOTED(__WXGTK12__,$WXGTK12)
5152 fi
5153
5154 if test "$WXGTK127" = 1 ; then
5155   AC_DEFINE_UNQUOTED(__WXGTK127__,$WXGTK127)
5156 fi
5157
5158 if test "$WXGPE" = 1 ; then
5159   AC_DEFINE_UNQUOTED(__WXGPE__,$WXGPE)
5160 fi
5161
5162 dnl DEBUG_CFLAGS contains debugging options (supposed to be the same for C and C++
5163 dnl compilers: we'd need a separate DEBUG_CXXFLAGS if this is ever not the case)
5164 DEBUG_CFLAGS=
5165 if test "$wxUSE_DEBUG_INFO" = "yes" ; then
5166     DEBUG_CFLAGS="-g"
5167     wxUSE_OPTIMISE=no
5168 fi
5169
5170 if test "$wxUSE_DEBUG_GDB" = "yes" ; then
5171     wxUSE_DEBUG_INFO=yes
5172     if test "$GCC" = yes; then
5173         DEBUG_CFLAGS="-ggdb"
5174     fi
5175 fi
5176
5177 if test "$wxUSE_DEBUG_FLAG" = "yes" ; then
5178     AC_DEFINE(WXDEBUG)
5179     WXCONFIG_CPPFLAGS="$WXCONFIG_CPPFLAGS -D__WXDEBUG__"
5180 else
5181     if test "$wxUSE_GTK" = 1 ; then
5182         if test "x$wxGTK_VERSION" = "x1" ; then
5183             CPPFLAGS="-DGTK_NO_CHECK_CASTS $CPPFLAGS"
5184         fi
5185     fi
5186 fi
5187
5188 if test "$wxUSE_MEM_TRACING" = "yes" ; then
5189     AC_DEFINE(wxUSE_MEMORY_TRACING)
5190     AC_DEFINE(wxUSE_GLOBAL_MEMORY_OPERATORS)
5191     AC_DEFINE(wxUSE_DEBUG_NEW_ALWAYS)
5192     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS memcheck"
5193 fi
5194
5195 if test "$wxUSE_DMALLOC" = "yes" ; then
5196     DMALLOC_LIBS="-ldmallocthcxx"
5197 fi
5198
5199 dnl cc/cxx/ld option for profiling
5200 PROFILE_FLAGS=
5201 if test "$wxUSE_PROFILE" = "yes" ; then
5202     PROFILE_FLAGS=" -pg"
5203 fi
5204
5205 if test "$GCC" = "yes" ; then
5206     if test "$wxUSE_NO_RTTI" = "yes" ; then
5207         WXCONFIG_CXXFLAGS="$WXCONFIG_CXXFLAGS -fno-rtti"
5208     fi
5209     if test "$wxUSE_NO_EXCEPTIONS" = "yes" ; then
5210         WXCONFIG_CXXFLAGS="$WXCONFIG_CXXFLAGS -fno-exceptions"
5211     fi
5212     if test "$wxUSE_PERMISSIVE" = "yes" ; then
5213         WXCONFIG_CFLAGS="$WXCONFIG_CFLAGS -fpermissive"
5214     fi
5215
5216     dnl Ian Brown <ian.brown@printsoft.de> reports that versions of gcc before
5217     dnl 3.0 overflow the table of contents on rs6000 as they create an entry
5218     dnl for each subroutine by default -- using the switch below only creates
5219     dnl one entry per file instead at the price of minor performance penalty
5220     dnl
5221     dnl As of wx2.4 a bug in the hppa gcc compiler causes a similar problem
5222     dnl without -ffunction-sections.  No idea how long we'll need to maintain
5223     dnl this, or even the extent of gcc/wx version combinations affected, but
5224     dnl also as above, this 'fix' does not come without side effects.
5225     dnl
5226     dnl TODO: test for the gcc version here (how?)
5227     case "${host}" in
5228       powerpc*-*-aix* )
5229         WXCONFIG_CFLAGS="$WXCONFIG_CFLAGS -mminimal-toc"
5230         ;;
5231       *-hppa* )
5232         WXCONFIG_CFLAGS="$WXCONFIG_CFLAGS -ffunction-sections"
5233         ;;
5234     esac
5235 fi
5236
5237 dnl C/C++ compiler option for optimization (supposed to be the same for both)
5238 OPTIMISE_CFLAGS=
5239 if test "$wxUSE_OPTIMISE" = "no" ; then
5240     if test "$GCC" = yes ; then
5241         dnl use -O0 because compiling with it is faster than compiling with no
5242         dnl optimization options at all (at least with g++ 3.2)
5243         OPTIMISE_CFLAGS="-O0"
5244     fi
5245 else
5246     if test "$GCC" = yes ; then
5247         case "${host}" in
5248             *-pc-os2_emx | *-pc-os2-emx )
5249                 dnl Not all of the supported gcc versions understand
5250                 dnl -fstrict-aliasing and none actually needs it (yet).
5251                 OPTIMISE_CFLAGS="-O2"
5252             ;;
5253             *)
5254                 dnl Switch on optimisation but keep strict-aliasing off for
5255                 dnl now (see -fstrict-aliasing in the gcc manual). When it is
5256                 dnl switched back on consider using -Wstrict-aliasing=2.
5257                 OPTIMISE_CFLAGS="-O2 -fno-strict-aliasing"
5258             ;;
5259         esac
5260     else
5261         OPTIMISE_CFLAGS="-O"
5262     fi
5263 fi
5264
5265 dnl ---------------------------------------------------------------------------
5266 dnl compatibility level
5267 dnl ---------------------------------------------------------------------------
5268
5269 if test "x$WXWIN_COMPATIBILITY_2_4" = "xyes"; then
5270     AC_DEFINE(WXWIN_COMPATIBILITY_2_4)
5271
5272     WXWIN_COMPATIBILITY_2_6="yes"
5273 fi
5274
5275 if test "x$WXWIN_COMPATIBILITY_2_6" != "xno"; then
5276     AC_DEFINE(WXWIN_COMPATIBILITY_2_6)
5277 fi
5278
5279 dnl ---------------------------------------------------------------------------
5280 dnl the library may be built without GUI classes at all
5281 dnl ---------------------------------------------------------------------------
5282
5283 if test "$wxUSE_GUI" = "yes"; then
5284     AC_DEFINE(wxUSE_GUI)
5285
5286     dnl the things we always pull in the GUI version of the library:
5287     dnl 1. basic things like wxApp, wxWindow, wxControl, wxFrame, wxDialog (the
5288     dnl    library really can't be built without those)
5289     dnl 2. basic controls: wxButton, wxStaticText, wxTextCtrl (these are used in
5290     dnl    almost any program and the first 2 are needed to show a message box
5291     dnl    which want to be always able to do)
5292     dnl 3. GDI stuff: icon, cursors and all that. Although it would be very nice
5293     dnl    to compile without them (if the app doesn't do any drawing, it doesn't
5294     dnl    need the dcs, pens, brushes, ...), this just can't be done now
5295     dnl 4. menu stuff: wxMenu, wxMenuBar, wxMenuItem
5296     dnl 5. misc stuff: timers, settings, message box
5297 fi
5298
5299 dnl ---------------------------------------------------------------------------
5300 dnl Unix/Windows
5301 dnl ---------------------------------------------------------------------------
5302
5303 if test "$wxUSE_UNIX" = "yes"; then
5304   AC_DEFINE(wxUSE_UNIX)
5305 fi
5306
5307 dnl ------------------------------------------------------------------------
5308 dnl DLL support
5309 dnl ------------------------------------------------------------------------
5310
5311 dnl under MSW we always have LoadLibrary/GetProcAddress
5312 if test "$TOOLKIT" != "MSW" -a "$USE_OS2" != 1; then
5313
5314     HAVE_DL_FUNCS=0
5315     HAVE_SHL_FUNCS=0
5316     if test "$wxUSE_DYNAMIC_LOADER" = "yes" -o "$wxUSE_DYNLIB_CLASS" = "yes" ; then
5317         if test "$USE_DARWIN" = 1; then
5318             dnl dlopen/dlerror is implemented in dynlib.cpp for Darwin/Mac OS X
5319             HAVE_DL_FUNCS=1
5320         elif test "$USE_DOS" = 1; then
5321             HAVE_DL_FUNCS=0
5322         else
5323             dnl the test is a bit complicated because we check for dlopen() both with
5324             dnl and without -ldl and we also try to find shl_load() if there is no
5325             dnl dlopen() on this system
5326             AC_CHECK_FUNCS(dlopen,
5327             [
5328                 AC_DEFINE(HAVE_DLOPEN)
5329                 HAVE_DL_FUNCS=1
5330             ],
5331             [
5332                 AC_CHECK_LIB(dl, dlopen,
5333                             [
5334                                 AC_DEFINE(HAVE_DLOPEN)
5335                                 HAVE_DL_FUNCS=1
5336                                 DL_LINK=" -ldl$DL_LINK"
5337                             ],
5338                             [
5339                                 AC_CHECK_FUNCS(shl_load,
5340                                               [
5341                                                 AC_DEFINE(HAVE_SHL_LOAD)
5342                                                 HAVE_SHL_FUNCS=1
5343                                               ],
5344                                               [
5345                                                 AC_CHECK_LIB(shl_load, dld,
5346                                                              [
5347                                                                 HAVE_SHL_FUNCS=1
5348                                                                 DL_LINK=" -ldld$DL_LINK"
5349                                                              ])
5350                                               ])
5351                             ])
5352             ])
5353
5354         dnl check also for dlerror()
5355         if test "$HAVE_DL_FUNCS" = 1; then
5356             AC_CHECK_FUNCS(dlerror,
5357                 AC_DEFINE(HAVE_DLERROR),
5358                 [
5359                     AC_CHECK_LIB(dl, dlerror, AC_DEFINE(HAVE_DLERROR))
5360                 ]
5361             )
5362         fi
5363         fi
5364
5365         if test "$HAVE_DL_FUNCS" = 0; then
5366             if test "$HAVE_SHL_FUNCS" = 0; then
5367               if test "$USE_UNIX" = 1 -o "$USE_DOS" = 1; then
5368                   AC_MSG_WARN([Missing dynamic loading support, several features will be disabled])
5369                   wxUSE_DYNAMIC_LOADER=no
5370                   wxUSE_DYNLIB_CLASS=no
5371               else
5372                   AC_MSG_WARN([Assuming wxLibrary class works on this platform])
5373               fi
5374             fi
5375         fi
5376     fi
5377 fi
5378
5379 if test "$wxUSE_DYNAMIC_LOADER" = "yes" ; then
5380     AC_DEFINE(wxUSE_DYNAMIC_LOADER)
5381 fi
5382 if test "$wxUSE_DYNLIB_CLASS" = "yes" ; then
5383     AC_DEFINE(wxUSE_DYNLIB_CLASS)
5384 fi
5385
5386
5387 dnl ---------------------------------------------------------------------------
5388 dnl Verify consistency of plugins/monolithic/shared settings:
5389 dnl ---------------------------------------------------------------------------
5390
5391 if test "$wxUSE_PLUGINS" = "yes" ; then
5392     if test "$wxUSE_SHARED" = "no" ; then
5393         AC_MSG_WARN([plugins supported only in shared build, disabling])
5394         wxUSE_PLUGINS=no
5395     fi
5396     if test "$wxUSE_MONOLITHIC" = "yes" ; then
5397         AC_MSG_WARN([plugins not supported monolithic build, disabling])
5398         wxUSE_PLUGINS=no
5399     fi
5400     if test "$wxUSE_DYNLIB_CLASS" = "no" ; then
5401         AC_MSG_WARN([plugins require wxDynamicLibrary, disabling])
5402         wxUSE_PLUGINS=no
5403     fi
5404     if test "$wxUSE_PLUGINS" = "yes" ; then
5405         AC_DEFINE(wxUSE_PLUGINS)
5406     fi
5407 fi
5408
5409 dnl ---------------------------------------------------------------------------
5410 dnl Register non-GUI class options for makefiles and setup.h
5411 dnl ---------------------------------------------------------------------------
5412
5413 if test "$wxUSE_STL" = "yes"; then
5414   AC_DEFINE(wxUSE_STL)
5415 fi
5416
5417 if test "$wxUSE_APPLE_IEEE" = "yes"; then
5418   AC_DEFINE(wxUSE_APPLE_IEEE)
5419 fi
5420
5421 if test "$wxUSE_TIMER" = "yes"; then
5422   AC_DEFINE(wxUSE_TIMER)
5423 fi
5424
5425 dnl Unix implementation needs additional checks because audio support
5426 dnl comes in many favours:
5427 if test "$USE_UNIX" = "1" ; then
5428     dnl it's not enough to check for just the header because OSS under NetBSD
5429     dnl redefines ioctl as oss_ioctrl inside it and so we also need to test
5430     dnl whether we need -lossaudio at link-time
5431     AC_CACHE_CHECK([for SNDCTL_DSP_SPEED in sys/soundcard.h], ac_cv_header_sys_soundcard, [
5432         AC_TRY_LINK([
5433                 #include <sys/ioctl.h>
5434                 #include <sys/soundcard.h>
5435             ],
5436             [
5437                 ioctl(0, SNDCTL_DSP_SPEED, 0);
5438             ],
5439             ac_cv_header_sys_soundcard=yes,
5440             [
5441                 saveLibs="$LIBS"
5442                 LIBS="$saveLibs -lossaudio"
5443                 AC_TRY_LINK([
5444                         #include <sys/ioctl.h>
5445                         #include <sys/soundcard.h>
5446                     ],
5447                     [
5448                         ioctl(0, SNDCTL_DSP_SPEED, 0);
5449                     ],
5450                     ac_cv_header_sys_soundcard=yes,
5451                     [
5452                         LIBS="$saveLibs"
5453                         ac_cv_header_sys_soundcard=no
5454                     ]
5455                 )
5456             ]
5457         )
5458     ])
5459
5460     if test "$ac_cv_header_sys_soundcard" = "yes"; then
5461         AC_DEFINE(HAVE_SYS_SOUNDCARD_H)
5462     else
5463         DISABLED_CONTRIB="$DISABLED_CONTRIB mmedia"
5464     fi
5465 fi
5466 WITH_PLUGIN_SDL=0
5467 if test "$wxUSE_SOUND" = "yes"; then
5468   if test "$USE_UNIX" = "1" ; then
5469     if test "$wxUSE_LIBSDL" != "no"; then
5470       AM_PATH_SDL([1.2.0],
5471                   [
5472                     EXTRALIBS_SDL="$SDL_LIBS"
5473                     CXXFLAGS="$SDL_CFLAGS $CXXFLAGS"
5474                     AC_DEFINE(wxUSE_LIBSDL)
5475                   ],
5476                   [wxUSE_LIBSDL="no"])
5477       if test "$wxUSE_LIBSDL" = "yes" -a "$wxUSE_PLUGINS" = "yes" ; then
5478         WITH_PLUGIN_SDL=1
5479       fi
5480     fi
5481   fi
5482
5483   AC_DEFINE(wxUSE_SOUND)
5484   SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS sound"
5485 fi
5486
5487 if test "$WXGTK20" = 1; then
5488     if test "$wxUSE_PRINTING_ARCHITECTURE" = "yes" ; then
5489         if test "$wxUSE_LIBGNOMEPRINT" = "yes" ; then
5490
5491                 PKG_CHECK_MODULES(LIBGNOMEPRINTUI,
5492                                   [libgnomeprintui-2.2 >= 2.8],
5493                     [
5494 dnl                     EXTRALIBS_GNOMEPRINT="$LIBGNOMEPRINTUI_LIBS"
5495                         CXXFLAGS="$LIBGNOMEPRINTUI_CFLAGS $CXXFLAGS"
5496                         AC_DEFINE(wxUSE_LIBGNOMEPRINT)
5497                     ],
5498                     [
5499                         AC_MSG_WARN([libgnomeprintui not found, library will use standard PostScript printing])
5500                         wxUSE_LIBGNOMEPRINT="no"
5501                     ]
5502                 )
5503         fi
5504     fi
5505 fi
5506
5507 if test "$WXGTK20" = 1; then
5508     if test "$wxUSE_MIMETYPE" = "yes" ; then
5509         if test "$wxUSE_LIBGNOMEVFS" = "yes" ; then
5510
5511                 PKG_CHECK_MODULES(GNOMEVFS,
5512                                   [gnome-vfs-2.0 >= 2.0],
5513                     [
5514 dnl                     EXTRALIBS_GNOMEVFS="$LIBGNOMEVFS_LIBS"
5515                         CXXFLAGS="$GNOMEVFS_CFLAGS $CXXFLAGS"
5516                         AC_DEFINE(wxUSE_LIBGNOMEVFS)
5517                     ],
5518                     [
5519                         AC_MSG_WARN([libgnomevfs not found, library won't be able to associate MIME type])
5520                         wxUSE_LIBGNOMEVFS="no"
5521                     ]
5522                 )
5523         fi
5524     fi
5525 fi
5526
5527 if test "$WXGTK20" = 1; then
5528     if test "$wxUSE_LIBHILDON" = "yes" ; then
5529         PKG_CHECK_MODULES(HILDON, 
5530                           [hildon-lgpl >= 0.9],
5531             [
5532                 EXTRALIBS_HILDON="$HILDON_LIBS"
5533                 CXXFLAGS="$CXXFLAGS $HILDON_CFLAGS"
5534                 AC_DEFINE(wxUSE_LIBHILDON)
5535             ],
5536             [
5537                 AC_MSG_WARN([libhildon_lgpl not found])
5538                         wxUSE_LIBHILDON="no"
5539             ]
5540         )
5541     fi
5542 fi
5543
5544 if test "$wxUSE_CMDLINE_PARSER" = "yes"; then
5545   AC_DEFINE(wxUSE_CMDLINE_PARSER)
5546 fi
5547
5548 if test "$wxUSE_STOPWATCH" = "yes"; then
5549   AC_DEFINE(wxUSE_STOPWATCH)
5550 fi
5551
5552 if test "$wxUSE_DATETIME" = "yes"; then
5553   AC_DEFINE(wxUSE_DATETIME)
5554 fi
5555
5556 if test "$wxUSE_FILE" = "yes"; then
5557   AC_DEFINE(wxUSE_FILE)
5558 fi
5559
5560 if test "$wxUSE_FFILE" = "yes"; then
5561   AC_DEFINE(wxUSE_FFILE)
5562 fi
5563
5564 if test "$wxUSE_FILESYSTEM" = "yes"; then
5565   AC_DEFINE(wxUSE_FILESYSTEM)
5566 fi
5567
5568 if test "$wxUSE_FS_ZIP" = "yes"; then
5569   AC_DEFINE(wxUSE_FS_ZIP)
5570 fi
5571
5572 if test "$wxUSE_ARCHIVE_STREAMS" = "yes"; then
5573   AC_DEFINE(wxUSE_ARCHIVE_STREAMS)
5574 fi
5575
5576 if test "$wxUSE_ZIPSTREAM" = "yes"; then
5577   if test "$wxUSE_ARCHIVE_STREAMS" != "yes"; then
5578     AC_MSG_WARN(wxZip requires wxArchive... disabled)
5579   elif test "$wxUSE_ZLIB" = "no"; then
5580     AC_MSG_WARN(wxZip requires wxZlib... disabled)
5581   else
5582     AC_DEFINE(wxUSE_ZIPSTREAM)
5583   fi
5584 fi
5585
5586 if test "$wxUSE_ON_FATAL_EXCEPTION" = "yes"; then
5587   if test "$USE_UNIX" != 1; then
5588     AC_MSG_WARN([Catching fatal exceptions not currently supported on this system, wxApp::OnFatalException will not be called])
5589     wxUSE_ON_FATAL_EXCEPTION=no
5590   else
5591     AC_DEFINE(wxUSE_ON_FATAL_EXCEPTION)
5592   fi
5593 fi
5594
5595 if test "$wxUSE_STACKWALKER" = "yes"; then
5596     AC_DEFINE(wxUSE_STACKWALKER)
5597 fi
5598
5599 if test "$wxUSE_DEBUGREPORT" = "yes"; then
5600     if test "$USE_UNIX" != "1" -a "$USE_WIN32" != "1"; then
5601         AC_MSG_WARN([Creating debug reports not currently supported on this system, disabled])
5602         wxUSE_DEBUGREPORT=no
5603     else
5604         AC_DEFINE(wxUSE_DEBUGREPORT)
5605         if test "$wxUSE_ON_FATAL_EXCEPTION" = "yes"; then
5606             SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS debugrpt"
5607         fi
5608     fi
5609 fi
5610
5611 if test "$wxUSE_SNGLINST_CHECKER" = "yes"; then
5612   AC_DEFINE(wxUSE_SNGLINST_CHECKER)
5613 fi
5614
5615 if test "$wxUSE_BUSYINFO" = "yes"; then
5616   AC_DEFINE(wxUSE_BUSYINFO)
5617 fi
5618
5619 if test "$wxUSE_STD_IOSTREAM" = "yes"; then
5620   AC_DEFINE(wxUSE_STD_IOSTREAM)
5621 fi
5622
5623 if test "$wxUSE_STD_STRING" = "yes"; then
5624   AC_DEFINE(wxUSE_STD_STRING)
5625 fi
5626
5627 if test "$wxUSE_STDPATHS" = "yes"; then
5628   AC_DEFINE(wxUSE_STDPATHS)
5629 fi
5630
5631 if test "$wxUSE_TEXTBUFFER" = "yes"; then
5632     AC_DEFINE(wxUSE_TEXTBUFFER)
5633 fi
5634
5635 if test "$wxUSE_TEXTFILE" = "yes"; then
5636   if test "$wxUSE_FILE" != "yes" -o "$wxUSE_TEXTBUFFER" != "yes" ; then
5637     AC_MSG_WARN(wxTextFile requires wxFile and wxTextBuffer... disabled)
5638   else
5639     AC_DEFINE(wxUSE_TEXTFILE)
5640   fi
5641 fi
5642
5643 if test "$wxUSE_CONFIG" = "yes" ; then
5644   if test "$wxUSE_TEXTFILE" != "yes"; then
5645     AC_MSG_WARN(wxConfig requires wxTextFile... disabled)
5646   else
5647     AC_DEFINE(wxUSE_CONFIG)
5648     AC_DEFINE(wxUSE_CONFIG_NATIVE)
5649     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS config"
5650   fi
5651 fi
5652
5653 if test "$wxUSE_INTL" = "yes" ; then
5654   if test "$wxUSE_FILE" != "yes"; then
5655     AC_MSG_WARN(I18n code requires wxFile... disabled)
5656   else
5657     AC_DEFINE(wxUSE_INTL)
5658     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS internat"
5659     GUIDIST="$GUIDIST INTL_DIST"
5660   fi
5661 fi
5662
5663 if test "$wxUSE_LOG" = "yes"; then
5664   AC_DEFINE(wxUSE_LOG)
5665
5666     if test "$wxUSE_LOGGUI" = "yes"; then
5667       AC_DEFINE(wxUSE_LOGGUI)
5668     fi
5669
5670     if test "$wxUSE_LOGWINDOW" = "yes"; then
5671       AC_DEFINE(wxUSE_LOGWINDOW)
5672     fi
5673
5674     if test "$wxUSE_LOGDIALOG" = "yes"; then
5675       AC_DEFINE(wxUSE_LOG_DIALOG)
5676     fi
5677
5678     dnl the keyboard sample requires wxUSE_LOG
5679     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS keyboard"
5680 fi
5681
5682 if test "$wxUSE_LONGLONG" = "yes"; then
5683   AC_DEFINE(wxUSE_LONGLONG)
5684 fi
5685
5686 if test "$wxUSE_GEOMETRY" = "yes"; then
5687   AC_DEFINE(wxUSE_GEOMETRY)
5688 fi
5689
5690 if test "$wxUSE_STREAMS" = "yes" ; then
5691   AC_DEFINE(wxUSE_STREAMS)
5692 fi
5693
5694 if test "$wxUSE_PRINTF_POS_PARAMS" = "yes"; then
5695   AC_DEFINE(wxUSE_PRINTF_POS_PARAMS)
5696 fi
5697
5698
5699 dnl ---------------------------------------------------------------------------
5700 dnl time/date functions
5701 dnl ---------------------------------------------------------------------------
5702
5703 if test "$wxUSE_DATETIME" = "yes"; then
5704     dnl check for strptime and for its declaration as some systems lack it
5705     AC_CHECK_FUNCS(strptime)
5706     if test "$ac_cv_func_strptime" = "yes"; then
5707         AC_CACHE_CHECK([for strptime declaration], wx_cv_func_strptime_decl,
5708             [
5709                 AC_TRY_COMPILE(
5710                     [
5711                         #include <time.h>
5712                     ],
5713                     [
5714                         struct tm t;
5715                         strptime("foo", "bar", &t);
5716                     ],
5717                     wx_cv_func_strptime_decl=yes,
5718                     wx_cv_func_strptime_decl=no
5719                 )
5720             ]
5721         )
5722     fi
5723     if test "$wx_cv_func_strptime_decl" = "yes"; then
5724         AC_DEFINE(HAVE_STRPTIME_DECL)
5725     fi
5726
5727     dnl check for timezone variable
5728     dnl   doesn't exist under Darwin / Mac OS X which uses tm_gmtoff instead
5729     AC_CACHE_CHECK(for timezone variable in <time.h>,
5730                    wx_cv_var_timezone,
5731                    [
5732                         AC_TRY_COMPILE(
5733                             [
5734                                 #include <time.h>
5735                             ],
5736                             [
5737                                 int tz;
5738                                 tz = timezone;
5739                             ],
5740                             [
5741                                 wx_cv_var_timezone=timezone
5742                             ],
5743                             [
5744                                 AC_TRY_COMPILE(
5745                                     [
5746                                         #include <time.h>
5747                                     ],
5748                                     [
5749                                         int tz;
5750                                         tz = _timezone;
5751                                     ],
5752                                     [
5753                                         wx_cv_var_timezone=_timezone
5754                                     ],
5755                                     [
5756                                         AC_TRY_COMPILE(
5757                                             [
5758                                                 #include <time.h>
5759                                             ],
5760                                             [
5761                                                 int tz;
5762                                                 tz = __timezone;
5763                                             ],
5764                                             [
5765                                                 wx_cv_var_timezone=__timezone
5766                                             ],
5767                                             [
5768                                                 if test "$USE_DOS" = 0 ; then
5769                                                     AC_MSG_WARN(no timezone variable, will use tm_gmtoff instead)
5770                                                 fi
5771                                             ]
5772                                         )
5773                                     ]
5774                                 )
5775                             ]
5776                         )
5777                    ]
5778     )
5779
5780     dnl as we want $wx_cv_var_timezone to be expanded, use AC_DEFINE_UNQUOTED
5781     if test "x$wx_cv_var_timezone" != x ; then
5782         AC_DEFINE_UNQUOTED(WX_TIMEZONE, $wx_cv_var_timezone)
5783     fi
5784
5785     dnl check for localtime (it's POSIX, but the check can do no harm...)
5786     AC_CHECK_FUNCS(localtime)
5787
5788     if test "$ac_cv_func_localtime" = "yes"; then
5789         AC_CACHE_CHECK(for tm_gmtoff in struct tm,
5790                        wx_cv_struct_tm_has_gmtoff,
5791         [
5792             AC_TRY_COMPILE(
5793                 [
5794                     #include <time.h>
5795                 ],
5796                 [
5797                     struct tm tm;
5798                     tm.tm_gmtoff++;
5799                 ],
5800                 [
5801                     wx_cv_struct_tm_has_gmtoff=yes
5802                 ],
5803                 wx_cv_struct_tm_has_gmtoff=no
5804             )
5805         ])
5806     fi
5807
5808     if test "$wx_cv_struct_tm_has_gmtoff" = "yes"; then
5809         AC_DEFINE(WX_GMTOFF_IN_TM)
5810     fi
5811
5812     dnl check for gettimeofday (SVr4, BSD 4.3) and ftime (V7, BSD 4.3) for the
5813     dnl function to be used for high resolution timers
5814     AC_CHECK_FUNCS(gettimeofday ftime, break)
5815
5816     if test "$ac_cv_func_gettimeofday" = "yes"; then
5817         AC_CACHE_CHECK([whether gettimeofday takes two arguments],
5818                        wx_cv_func_gettimeofday_has_2_args,
5819         [
5820             dnl on some _really_ old systems it takes only 1 argument
5821             AC_TRY_COMPILE(
5822                 [
5823                     #include <sys/time.h>
5824                     #include <unistd.h>
5825                 ],
5826                 [
5827                     struct timeval tv;
5828                     gettimeofday(&tv, NULL);
5829                 ],
5830                 wx_cv_func_gettimeofday_has_2_args=yes,
5831                 AC_TRY_COMPILE(
5832                     [
5833                         #include <sys/time.h>
5834                         #include <unistd.h>
5835                     ],
5836                     [
5837                         struct timeval tv;
5838                         gettimeofday(&tv);
5839                     ],
5840                     wx_cv_func_gettimeofday_has_2_args=no,
5841                     [
5842                         AC_MSG_WARN([failed to determine number of gettimeofday() arguments])
5843                         wx_cv_func_gettimeofday_has_2_args=unknown
5844                     ]
5845                 )
5846             )
5847         ])
5848
5849         if test "$wx_cv_func_gettimeofday_has_2_args" != "yes"; then
5850             AC_DEFINE(WX_GETTIMEOFDAY_NO_TZ)
5851         fi
5852     fi
5853
5854     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS typetest"
5855 fi
5856
5857 dnl ------------------------------------------------------------------------
5858 dnl wxSocket
5859 dnl ------------------------------------------------------------------------
5860
5861 dnl VZ: the GUI hooks wxSocket needs are not implemented yet in some toolkits
5862 if test "$wxUSE_SOCKETS" = "yes"; then
5863     if test "$wxUSE_MGL" = "1"; then
5864         AC_MSG_WARN([wxSocket not yet supported under MGL... disabled])
5865         wxUSE_SOCKETS="no"
5866     fi
5867 fi
5868
5869 if test "$wxUSE_SOCKETS" = "yes"; then
5870     dnl under MSW we always have sockets
5871     if test "$TOOLKIT" != "MSW"; then
5872         dnl under Solaris and OS/2, socket functions live in -lsocket
5873         AC_CHECK_FUNC(socket,,
5874             [
5875                 AC_CHECK_LIB(socket, socket,
5876                     if test "$INET_LINK" != " -lsocket"; then
5877                         INET_LINK="$INET_LINK -lsocket"
5878                     fi,
5879                     [
5880                         AC_MSG_WARN([socket library not found - sockets will be disabled])
5881                         wxUSE_SOCKETS=no
5882                     ]
5883                 )
5884             ]
5885         )
5886     fi
5887 fi
5888
5889 if test "$wxUSE_SOCKETS" = "yes" ; then
5890     dnl this test may be appropriate if building under cygwin
5891     dnl right now I'm assuming it also uses the winsock stuff
5892     dnl like mingw does..  -- RL
5893     if test "$TOOLKIT" != "MSW"; then
5894         dnl determine the type of third argument for getsockname
5895         dnl This test needs to be done in C++ mode since gsocket.cpp now
5896         dnl is C++ code and pointer cast that are possible even without
5897         dnl warning in C still fail in C++.
5898         AC_CACHE_CHECK([what is the type of the third argument of getsockname],
5899                        wx_cv_type_getsockname3,
5900             [
5901                 AC_TRY_COMPILE(
5902                     [
5903                         #include <sys/types.h>
5904                         #include <sys/socket.h>
5905                     ],
5906                     [
5907                         socklen_t len;
5908                         getsockname(0, 0, &len);
5909                     ],
5910                     wx_cv_type_getsockname3=socklen_t,
5911                     [
5912                         dnl the compiler will compile the version with size_t
5913                         dnl even if the real type of the last parameter is int
5914                         dnl but it should give at least a warning about
5915                         dnl converting between incompatible pointer types, so
5916                         dnl try to use it to get the correct behaviour at
5917                         dnl least with gcc (otherwise we'd always use size_t)
5918                         CXXFLAGS_OLD="$CXXFLAGS"
5919                         if test "$GCC" = yes ; then
5920                             CXXFLAGS="-Werror $CXXFLAGS"
5921                         fi
5922
5923                         AC_TRY_COMPILE(
5924                             [
5925                                 #include <sys/types.h>
5926                                 #include <sys/socket.h>
5927                             ],
5928                             [
5929                                 size_t len;
5930                                 getsockname(0, 0, &len);
5931                             ],
5932                             wx_cv_type_getsockname3=size_t,
5933                             AC_TRY_COMPILE(
5934                                 [
5935                                     #include <sys/types.h>
5936                                     #include <sys/socket.h>
5937                                 ],
5938                                 [
5939                                     int len;
5940                                     getsockname(0, 0, &len);
5941                                 ],
5942                                 wx_cv_type_getsockname3=int,
5943                                 wx_cv_type_getsockname3=unknown
5944                             )
5945                         )
5946
5947                         CXXFLAGS="$CXXFLAGS_OLD"
5948                     ]
5949                 )
5950             ])
5951
5952         if test "$wx_cv_type_getsockname3" = "unknown"; then
5953             wxUSE_SOCKETS=no
5954             AC_MSG_WARN([Couldn't find socklen_t synonym for this system])
5955         else
5956             AC_DEFINE_UNQUOTED(WX_SOCKLEN_T, $wx_cv_type_getsockname3)
5957         fi
5958         dnl Do this again for getsockopt as it may be different
5959         AC_CACHE_CHECK([what is the type of the fifth argument of getsockopt],
5960                        wx_cv_type_getsockopt5,
5961             [
5962                 AC_TRY_COMPILE(
5963                     [
5964                         #include <sys/types.h>
5965                         #include <sys/socket.h>
5966                     ],
5967                     [
5968                         socklen_t len;
5969                         getsockopt(0, 0, 0, 0, &len);
5970                     ],
5971                     wx_cv_type_getsockopt5=socklen_t,
5972                     [
5973                         dnl the compiler will compile the version with size_t
5974                         dnl even if the real type of the last parameter is int
5975                         dnl but it should give at least a warning about
5976                         dnl converting between incompatible pointer types, so
5977                         dnl try to use it to get the correct behaviour at
5978                         dnl least with gcc (otherwise we'd always use size_t)
5979                         CXXFLAGS_OLD="$CXXFLAGS"
5980                         if test "$GCC" = yes ; then
5981                             CXXFLAGS="-Werror $CXXFLAGS"
5982                         fi
5983
5984                         AC_TRY_COMPILE(
5985                             [
5986                                 #include <sys/types.h>
5987                                 #include <sys/socket.h>
5988                             ],
5989                             [
5990                                 size_t len;
5991                                 getsockopt(0, 0, 0, 0, &len);
5992                             ],
5993                             wx_cv_type_getsockopt5=size_t,
5994                             AC_TRY_COMPILE(
5995                                 [
5996                                     #include <sys/types.h>
5997                                     #include <sys/socket.h>
5998                                 ],
5999                                 [
6000                                     int len;
6001                                     getsockopt(0, 0, 0, 0, &len);
6002                                 ],
6003                                 wx_cv_type_getsockopt5=int,
6004                                 wx_cv_type_getsockopt5=unknown
6005                             )
6006                         )
6007
6008                         CXXFLAGS="$CXXFLAGS_OLD"
6009                     ]
6010                 )
6011             ])
6012
6013         if test "$wx_cv_type_getsockopt5" = "unknown"; then
6014             wxUSE_SOCKETS=no
6015             AC_MSG_WARN([Couldn't find socklen_t synonym for this system])
6016         else
6017             AC_DEFINE_UNQUOTED(SOCKOPTLEN_T, $wx_cv_type_getsockopt5)
6018         fi
6019     fi
6020 fi
6021
6022 if test "$wxUSE_SOCKETS" = "yes" ; then
6023     AC_DEFINE(wxUSE_SOCKETS)
6024     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS sockets"
6025 fi
6026
6027 if test "$wxUSE_PROTOCOL" = "yes"; then
6028     if test "$wxUSE_SOCKETS" != "yes"; then
6029         AC_MSG_WARN(Protocol classes require sockets... disabled)
6030         wxUSE_PROTOCOL=no
6031     fi
6032 fi
6033
6034 if test "$wxUSE_PROTOCOL" = "yes"; then
6035     AC_DEFINE(wxUSE_PROTOCOL)
6036
6037     if test "$wxUSE_PROTOCOL_HTTP" = "yes"; then
6038         AC_DEFINE(wxUSE_PROTOCOL_HTTP)
6039     fi
6040     if test "$wxUSE_PROTOCOL_FTP" = "yes"; then
6041         AC_DEFINE(wxUSE_PROTOCOL_FTP)
6042     fi
6043     if test "$wxUSE_PROTOCOL_FILE" = "yes"; then
6044         AC_DEFINE(wxUSE_PROTOCOL_FILE)
6045     fi
6046 else
6047     if test "$wxUSE_FS_INET" = "yes"; then
6048         AC_MSG_WARN([HTTP filesystem require protocol classes... disabled])
6049         wxUSE_FS_INET="no"
6050     fi
6051 fi
6052
6053 if test "$wxUSE_URL" = "yes"; then
6054     if test "$wxUSE_PROTOCOL" != "yes"; then
6055         AC_MSG_WARN(wxURL class requires wxProtocol... disabled)
6056         wxUSE_URL=no
6057     fi
6058     if test "$wxUSE_URL" = "yes"; then
6059         AC_DEFINE(wxUSE_URL)
6060     fi
6061 fi
6062
6063 if test "$wxUSE_FS_INET" = "yes"; then
6064   AC_DEFINE(wxUSE_FS_INET)
6065 fi
6066
6067 dnl ---------------------------------------------------------------------------
6068 dnl Joystick support
6069 dnl ---------------------------------------------------------------------------
6070
6071 if test "$wxUSE_GUI" = "yes" -a "$wxUSE_JOYSTICK" = "yes"; then
6072     wxUSE_JOYSTICK=no
6073
6074     dnl under MSW we always have joystick support
6075     if test "$TOOLKIT" = "MSW"; then
6076         wxUSE_JOYSTICK=yes
6077
6078     dnl mac only available on darwin
6079     elif test "$TOOLKIT" = "MAC" -o "$TOOLKIT" = "COCOA"; then
6080         if test "$USE_DARWIN" = 1; then
6081             dnl check for a bug in the headers, some have bad setEventCallout
6082             AC_MSG_CHECKING([headers have declarations needed for joystick support])
6083             AC_TRY_COMPILE( [ #include <IOKit/hid/IOHIDLib.h> ],
6084                             [ IOHIDQueueInterface *qi = NULL;
6085                               IOHIDCallbackFunction cb = NULL;
6086                               qi->setEventCallout(NULL, cb, NULL, NULL); ],
6087                             [ wxUSE_JOYSTICK=yes ]
6088                           )
6089             AC_MSG_RESULT($wxUSE_JOYSTICK)
6090         fi
6091
6092     dnl joystick support is only for Linux 2.1.x or greater
6093     else
6094         AC_CHECK_HEADERS(linux/joystick.h, wxUSE_JOYSTICK=yes)
6095     fi
6096
6097     if test "$wxUSE_JOYSTICK" = "yes"; then
6098         AC_DEFINE(wxUSE_JOYSTICK)
6099         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS joytest"
6100     else
6101         AC_MSG_WARN(Joystick not supported by this system... disabled)
6102     fi
6103 fi
6104
6105
6106 dnl ---------------------------------------------------------------------------
6107 dnl String stuff
6108 dnl ---------------------------------------------------------------------------
6109
6110 if test "$wxUSE_FONTMAP" = "yes" ; then
6111   AC_DEFINE(wxUSE_FONTMAP)
6112 fi
6113
6114 if test "$wxUSE_UNICODE" = "yes" ; then
6115   AC_DEFINE(wxUSE_UNICODE)
6116
6117   if test "$USE_WIN32" != 1; then
6118       wxUSE_UNICODE_MSLU=no
6119   fi
6120
6121   if test "$USE_WIN32" = 1 -a "$wxUSE_UNICODE_MSLU" = "yes"; then
6122         AC_CHECK_LIB(unicows,main,
6123             [
6124                 AC_DEFINE(wxUSE_UNICODE_MSLU)
6125             ],
6126             [
6127                 AC_MSG_WARN([Compiler doesn't support MSLU (libunicows.a), disabled.
6128                              Applications will only run on Windows NT/2000/XP!])
6129                 wxUSE_UNICODE_MSLU=no
6130             ])
6131     fi
6132 fi
6133
6134 if test "$wxUSE_wxUSE_EXPERIMENTAL_PRINTF" = "yes"; then
6135   AC_DEFINE(wxUSE_EXPERIMENTAL_PRINTF)
6136 fi
6137
6138 dnl ----------------------------------------------------------------
6139 dnl Register PostScript options for makefiles and setup.h
6140 dnl ----------------------------------------------------------------
6141
6142 if test "$wxUSE_POSTSCRIPT" = "yes" ; then
6143   AC_DEFINE(wxUSE_POSTSCRIPT)
6144 fi
6145
6146 AC_DEFINE(wxUSE_AFM_FOR_POSTSCRIPT)
6147
6148 AC_DEFINE(wxUSE_NORMALIZED_PS_FONTS)
6149
6150 dnl ---------------------------------------------------------------------------
6151 dnl big GUI components: MDI, doc/view, printing, help, ...
6152 dnl ---------------------------------------------------------------------------
6153
6154 if test "$wxUSE_CONSTRAINTS" = "yes"; then
6155     AC_DEFINE(wxUSE_CONSTRAINTS)
6156     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS layout"
6157 fi
6158
6159 if test "$wxUSE_MDI" = "yes"; then
6160     AC_DEFINE(wxUSE_MDI)
6161
6162     if test "$wxUSE_MDI_ARCHITECTURE" = "yes"; then
6163         AC_DEFINE(wxUSE_MDI_ARCHITECTURE)
6164         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS mdi"
6165     fi
6166 fi
6167
6168 if test "$wxUSE_DOC_VIEW_ARCHITECTURE" = "yes" ; then
6169     AC_DEFINE(wxUSE_DOC_VIEW_ARCHITECTURE)
6170     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS docview"
6171     if test "$wxUSE_MDI_ARCHITECTURE" = "yes"; then
6172         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS docvwmdi"
6173     fi
6174 fi
6175
6176 if test "$wxUSE_HELP" = "yes"; then
6177     AC_DEFINE(wxUSE_HELP)
6178     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS help"
6179
6180     if test "$wxUSE_MSW" = 1; then
6181       if test "$wxUSE_MS_HTML_HELP" = "yes"; then
6182         AC_DEFINE(wxUSE_MS_HTML_HELP)
6183       fi
6184     fi
6185
6186     if test "$wxUSE_WXHTML_HELP" = "yes"; then
6187       if test "$wxUSE_HTML" = "yes"; then
6188         AC_DEFINE(wxUSE_WXHTML_HELP)
6189       else
6190         AC_MSG_WARN(Cannot use wxHTML-based help without wxHTML so it won't be compiled)
6191         wxUSE_WXHTML_HELP=no
6192       fi
6193     fi
6194 fi
6195
6196 if test "$wxUSE_PRINTING_ARCHITECTURE" = "yes" ; then
6197     if test "$wxUSE_CONSTRAINTS" != "yes"; then
6198         AC_MSG_WARN(Printing support cannot be used without constraints so it won't be compiled without it)
6199     else
6200         AC_DEFINE(wxUSE_PRINTING_ARCHITECTURE)
6201     fi
6202     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS printing"
6203 fi
6204
6205 if test "$wxUSE_PROLOGIO" = "yes" -o  "$wxUSE_RESOURCES" = "yes"; then
6206     AC_MSG_ERROR([wxExpr and old-style resources are now available in contrib only])
6207 fi
6208
6209 dnl ---------------------------------------------------------------------------
6210 dnl wxMetafile availability
6211 dnl ---------------------------------------------------------------------------
6212
6213 if test "$wxUSE_METAFILE" = "yes"; then
6214     if test "$wxUSE_MSW" != 1 -a "$wxUSE_MAC" != 1 -a "$wxUSE_PM" != 1; then
6215         AC_MSG_WARN([wxMetafile is not available on this system... disabled])
6216         wxUSE_METAFILE=no
6217     fi
6218 fi
6219
6220 dnl ---------------------------------------------------------------------------
6221 dnl IPC: IPC, Drag'n'Drop, Clipboard, ...
6222 dnl ---------------------------------------------------------------------------
6223
6224 dnl check for ole headers and disable a few features requiring it if not
6225 dnl present (earlier versions of mingw32 don't have ole2.h)
6226 if test "$USE_WIN32" = 1 -a \( "$wxUSE_DATAOBJ"       = "yes" \
6227                           -o "$wxUSE_CLIPBOARD"     = "yes" \
6228                           -o "$wxUSE_OLE"     = "yes" \
6229                           -o "$wxUSE_DRAG_AND_DROP" = "yes" \) ; then
6230     AC_CHECK_HEADERS(ole2.h)
6231
6232     if test "$ac_cv_header_ole2_h" = "yes" ; then
6233         if test "$GCC" = yes ; then
6234             AC_MSG_CHECKING([if g++ requires -fvtable-thunks])
6235             AC_TRY_COMPILE([#include <windows.h>
6236                             #include <ole2.h>],
6237                            [],
6238                            [AC_MSG_RESULT(no)],
6239                            [AC_MSG_RESULT(yes)
6240                             WXCONFIG_CXXFLAGS="$WXCONFIG_CXXFLAGS -fvtable-thunks"])
6241             LIBS=" -lrpcrt4 -loleaut32 -lole32 -luuid$LIBS"
6242             if test "$wxUSE_OLE" = "yes" ; then
6243                 AC_DEFINE(wxUSE_OLE)
6244                 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS oleauto"
6245             fi
6246         fi
6247
6248         dnl for OLE clipboard and dnd
6249         if test "$wxUSE_DATAOBJ" = "yes" ; then
6250             AC_DEFINE(wxUSE_DATAOBJ)
6251         fi
6252     else
6253         AC_MSG_WARN([Some features disabled because OLE headers not found])
6254
6255         wxUSE_CLIPBOARD=no
6256         wxUSE_DRAG_AND_DROP=no
6257         wxUSE_DATAOBJ=no
6258         wxUSE_OLE=no
6259     fi
6260
6261     if test "$wxUSE_METAFILE" = "yes"; then
6262         AC_DEFINE(wxUSE_METAFILE)
6263
6264         dnl this one should probably be made separately configurable
6265         AC_DEFINE(wxUSE_ENH_METAFILE)
6266     fi
6267 fi
6268
6269 if test "$wxUSE_IPC" = "yes"; then
6270     if test "$wxUSE_SOCKETS" != "yes" -a "$USE_WIN32" != 1; then
6271         AC_MSG_WARN(wxWidgets IPC classes require sockets... disabled)
6272         wxUSE_IPC=no
6273     fi
6274
6275     if test "$wxUSE_IPC" = "yes"; then
6276         AC_DEFINE(wxUSE_IPC)
6277         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS ipc"
6278     fi
6279 fi
6280
6281 if test "$wxUSE_DATAOBJ" = "yes"; then
6282     if test "$wxUSE_MGL" = 1; then
6283         AC_MSG_WARN([wxDataObject not yet supported under MGL... disabled])
6284         wxUSE_DATAOBJ=no
6285     else
6286         AC_DEFINE(wxUSE_DATAOBJ)
6287     fi
6288 else
6289     AC_MSG_WARN([Clipboard and drag-and-drop require wxDataObject -- disabled])
6290     wxUSE_CLIPBOARD=no
6291     wxUSE_DRAG_AND_DROP=no
6292 fi
6293
6294 if test "$wxUSE_CLIPBOARD" = "yes"; then
6295     if test "$wxUSE_MGL" = 1; then
6296         AC_MSG_WARN([Clipboard not yet supported under MGL... disabled])
6297         wxUSE_CLIPBOARD=no
6298     fi
6299
6300     if test "$wxUSE_CLIPBOARD" = "yes"; then
6301         AC_DEFINE(wxUSE_CLIPBOARD)
6302     fi
6303 fi
6304
6305 if test "$wxUSE_DRAG_AND_DROP" = "yes" ; then
6306     if test "$wxUSE_GTK" = 1; then
6307         if test "$WXGTK12" != 1; then
6308             AC_MSG_WARN([Drag and drop is only supported under GTK+ 1.2... disabled])
6309             wxUSE_DRAG_AND_DROP=no
6310         fi
6311     fi
6312
6313     if test "$wxUSE_MOTIF" = 1; then
6314         AC_MSG_WARN([Drag and drop not yet supported under Motif... disabled])
6315         wxUSE_DRAG_AND_DROP=no
6316     fi
6317
6318     if test "$wxUSE_X11" = 1; then
6319         AC_MSG_WARN([Drag and drop not yet supported under X11... disabled])
6320         wxUSE_DRAG_AND_DROP=no
6321     fi
6322
6323     if test "$wxUSE_MGL" = 1; then
6324         AC_MSG_WARN([Drag and drop not yet supported under MGL... disabled])
6325         wxUSE_DRAG_AND_DROP=no
6326     fi
6327
6328     if test "$wxUSE_DRAG_AND_DROP" = "yes"; then
6329         AC_DEFINE(wxUSE_DRAG_AND_DROP)
6330     fi
6331
6332 fi
6333
6334 if test "$wxUSE_DRAG_AND_DROP" = "yes" -o "$wxUSE_CLIPBOARD" = "yes"; then
6335     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS dnd"
6336 fi
6337
6338 if test "$wxUSE_SPLINES" = "yes" ; then
6339   AC_DEFINE(wxUSE_SPLINES)
6340 fi
6341
6342 if test "$wxUSE_MOUSEWHEEL" = "yes" ; then
6343   AC_DEFINE(wxUSE_MOUSEWHEEL)
6344 fi
6345
6346 dnl ---------------------------------------------------------------------------
6347 dnl GUI controls
6348 dnl ---------------------------------------------------------------------------
6349
6350 USES_CONTROLS=0
6351 if test "$wxUSE_CONTROLS" = "yes"; then
6352   USES_CONTROLS=1
6353 fi
6354
6355 if test "$wxUSE_ACCEL" = "yes"; then
6356   AC_DEFINE(wxUSE_ACCEL)
6357   USES_CONTROLS=1
6358 fi
6359
6360 if test "$wxUSE_BUTTON" = "yes"; then
6361   AC_DEFINE(wxUSE_BUTTON)
6362   USES_CONTROLS=1
6363 fi
6364
6365 if test "$wxUSE_BMPBUTTON" = "yes"; then
6366   AC_DEFINE(wxUSE_BMPBUTTON)
6367   USES_CONTROLS=1
6368 fi
6369
6370 if test "$wxUSE_CALCTRL" = "yes"; then
6371   AC_DEFINE(wxUSE_CALENDARCTRL)
6372   USES_CONTROLS=1
6373   SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS calendar"
6374 fi
6375
6376 if test "$wxUSE_CARET" = "yes"; then
6377   AC_DEFINE(wxUSE_CARET)
6378   USES_CONTROLS=1
6379   SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS caret"
6380 fi
6381
6382 if test "$wxUSE_COMBOBOX" = "yes"; then
6383   AC_DEFINE(wxUSE_COMBOBOX)
6384   USES_CONTROLS=1
6385 fi
6386
6387 if test "$wxUSE_COMBOCTRL" = "yes"; then
6388   AC_DEFINE(wxUSE_COMBOCTRL)
6389   USES_CONTROLS=1
6390 fi
6391
6392 if test "$wxUSE_CHOICE" = "yes"; then
6393   AC_DEFINE(wxUSE_CHOICE)
6394   USES_CONTROLS=1
6395 fi
6396
6397 if test "$wxUSE_CHOICEBOOK" = "yes"; then
6398     AC_DEFINE(wxUSE_CHOICEBOOK)
6399     USES_CONTROLS=1
6400 fi
6401
6402 if test "$wxUSE_CHECKBOX" = "yes"; then
6403   AC_DEFINE(wxUSE_CHECKBOX)
6404   USES_CONTROLS=1
6405 fi
6406
6407 if test "$wxUSE_CHECKLST" = "yes"; then
6408   AC_DEFINE(wxUSE_CHECKLISTBOX)
6409   USES_CONTROLS=1
6410   SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS checklst"
6411 fi
6412
6413 if test "$wxUSE_COLOURPICKERCTRL" = "yes"; then
6414   AC_DEFINE(wxUSE_COLOURPICKERCTRL)
6415   USES_CONTROLS=1
6416 fi
6417
6418 if test "$wxUSE_DATEPICKCTRL" = "yes"; then
6419   AC_DEFINE(wxUSE_DATEPICKCTRL)
6420   USES_CONTROLS=1
6421 fi
6422
6423 if test "$wxUSE_DIRPICKERCTRL" = "yes"; then
6424   AC_DEFINE(wxUSE_DIRPICKERCTRL)
6425   USES_CONTROLS=1
6426 fi
6427
6428 if test "$wxUSE_FILEPICKERCTRL" = "yes"; then
6429   AC_DEFINE(wxUSE_FILEPICKERCTRL)
6430   USES_CONTROLS=1
6431 fi
6432
6433 if test "$wxUSE_FONTPICKERCTRL" = "yes"; then
6434   AC_DEFINE(wxUSE_FONTPICKERCTRL)
6435   USES_CONTROLS=1
6436 fi
6437
6438 if test "$wxUSE_DISPLAY" = "yes"; then
6439     AC_DEFINE(wxUSE_DISPLAY)
6440     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS display multimon"
6441 fi
6442
6443 if test "$wxUSE_GAUGE" = "yes"; then
6444   AC_DEFINE(wxUSE_GAUGE)
6445   USES_CONTROLS=1
6446 fi
6447
6448 if test "$wxUSE_GRID" = "yes"; then
6449   AC_DEFINE(wxUSE_GRID)
6450   USES_CONTROLS=1
6451   SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS grid"
6452 fi
6453
6454 if test "$wxUSE_HYPERLINKCTRL" = "yes"; then
6455   AC_DEFINE(wxUSE_HYPERLINKCTRL)
6456   USES_CONTROLS=1
6457 fi
6458
6459 if test "$wxUSE_DATAVIEWCTRL" = "yes"; then
6460   AC_DEFINE(wxUSE_DATAVIEWCTRL)
6461   USES_CONTROLS=1
6462   SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS dataview"
6463 fi
6464
6465 if test "$wxUSE_IMAGLIST" = "yes"; then
6466     AC_DEFINE(wxUSE_IMAGLIST)
6467 fi
6468
6469 if test "$wxUSE_LISTBOOK" = "yes"; then
6470     AC_DEFINE(wxUSE_LISTBOOK)
6471     USES_CONTROLS=1
6472 fi
6473
6474 if test "$wxUSE_LISTBOX" = "yes"; then
6475     AC_DEFINE(wxUSE_LISTBOX)
6476     USES_CONTROLS=1
6477     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS listbox"
6478 fi
6479
6480 if test "$wxUSE_LISTCTRL" = "yes"; then
6481     if test "$wxUSE_IMAGLIST" = "yes"; then
6482         AC_DEFINE(wxUSE_LISTCTRL)
6483         USES_CONTROLS=1
6484         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS listctrl"
6485     else
6486         AC_MSG_WARN([wxListCtrl requires wxImageList and won't be compiled without it])
6487     fi
6488 fi
6489
6490 if test "$wxUSE_NOTEBOOK" = "yes"; then
6491     AC_DEFINE(wxUSE_NOTEBOOK)
6492     USES_CONTROLS=1
6493     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS notebook"
6494 fi
6495
6496 if test "$wxUSE_ODCOMBOBOX" = "yes"; then
6497   AC_DEFINE(wxUSE_ODCOMBOBOX)
6498   USES_CONTROLS=1
6499   SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS combo"
6500 fi
6501
6502 dnl if test "$wxUSE_PROPSHEET" = "yes"; then
6503 dnl     AC_DEFINE(wxUSE_PROPSHEET)
6504 dnl     USES_CONTROLS=1
6505 dnl     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS proplist"
6506 dnl fi
6507
6508 if test "$wxUSE_RADIOBOX" = "yes"; then
6509     AC_DEFINE(wxUSE_RADIOBOX)
6510     USES_CONTROLS=1
6511 fi
6512
6513 if test "$wxUSE_RADIOBTN" = "yes"; then
6514     AC_DEFINE(wxUSE_RADIOBTN)
6515     USES_CONTROLS=1
6516 fi
6517
6518 if test "$wxUSE_SASH" = "yes"; then
6519     AC_DEFINE(wxUSE_SASH)
6520     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS sashtest"
6521 fi
6522
6523 if test "$wxUSE_SCROLLBAR" = "yes"; then
6524     AC_DEFINE(wxUSE_SCROLLBAR)
6525     USES_CONTROLS=1
6526     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS scroll scrollsub"
6527 fi
6528
6529 if test "$wxUSE_SLIDER" = "yes"; then
6530     AC_DEFINE(wxUSE_SLIDER)
6531     USES_CONTROLS=1
6532 fi
6533
6534 if test "$wxUSE_SPINBTN" = "yes"; then
6535     AC_DEFINE(wxUSE_SPINBTN)
6536     USES_CONTROLS=1
6537 fi
6538
6539 if test "$wxUSE_SPINCTRL" = "yes"; then
6540     AC_DEFINE(wxUSE_SPINCTRL)
6541     USES_CONTROLS=1
6542 fi
6543
6544 if test "$wxUSE_SPLITTER" = "yes"; then
6545     AC_DEFINE(wxUSE_SPLITTER)
6546     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS splitter"
6547 fi
6548
6549 if test "$wxUSE_STATBMP" = "yes"; then
6550     AC_DEFINE(wxUSE_STATBMP)
6551     USES_CONTROLS=1
6552 fi
6553
6554 if test "$wxUSE_STATBOX" = "yes"; then
6555     AC_DEFINE(wxUSE_STATBOX)
6556     USES_CONTROLS=1
6557 fi
6558
6559 if test "$wxUSE_STATTEXT" = "yes"; then
6560     AC_DEFINE(wxUSE_STATTEXT)
6561     USES_CONTROLS=1
6562 fi
6563
6564 if test "$wxUSE_STATLINE" = "yes"; then
6565     AC_DEFINE(wxUSE_STATLINE)
6566     USES_CONTROLS=1
6567 fi
6568
6569 if test "$wxUSE_STATUSBAR" = "yes"; then
6570     dnl this will get undefined in wx/chkconf.h if it's not supported
6571     AC_DEFINE(wxUSE_NATIVE_STATUSBAR)
6572     AC_DEFINE(wxUSE_STATUSBAR)
6573     USES_CONTROLS=1
6574
6575     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS statbar"
6576 fi
6577
6578 if test "$wxUSE_TAB_DIALOG" = "yes"; then
6579     AC_DEFINE(wxUSE_TAB_DIALOG)
6580 fi
6581
6582 if test "$wxUSE_TEXTCTRL" = "yes"; then
6583     AC_DEFINE(wxUSE_TEXTCTRL)
6584     USES_CONTROLS=1
6585     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS text"
6586 fi
6587
6588 if test "$wxUSE_TOGGLEBTN" = "yes"; then
6589     if test "$wxUSE_COCOA" = 1 ; then
6590         AC_MSG_WARN([Toggle button not yet supported under Mac OS X... disabled])
6591         wxUSE_TOGGLEBTN=no
6592     fi
6593
6594     if test "$wxUSE_TOGGLEBTN" = "yes"; then
6595         AC_DEFINE(wxUSE_TOGGLEBTN)
6596         USES_CONTROLS=1
6597     fi
6598 fi
6599
6600 if test "$wxUSE_TOOLBAR_SIMPLE" = "yes"; then
6601     AC_DEFINE(wxUSE_TOOLBAR_SIMPLE)
6602     wxUSE_TOOLBAR="yes"
6603     USES_CONTROLS=1
6604 fi
6605
6606 if test "$wxUSE_TOOLBAR" = "yes"; then
6607     AC_DEFINE(wxUSE_TOOLBAR)
6608     USES_CONTROLS=1
6609
6610     dnl if wxUSE_TOOLBAR and !wxUSE_TOOLBAR_SIMPLE => wxUSE_TOOLBAR_NATIVE
6611     if test "$wxUSE_TOOLBAR_SIMPLE" != "yes"; then
6612         wxUSE_TOOLBAR_NATIVE="yes"
6613     fi
6614
6615     if test "$wxUSE_TOOLBAR_NATIVE" = "yes"; then
6616         AC_DEFINE(wxUSE_TOOLBAR_NATIVE)
6617         USES_CONTROLS=1
6618     fi
6619
6620     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS toolbar"
6621 fi
6622
6623 if test "$wxUSE_TOOLTIPS" = "yes"; then
6624     if test "$wxUSE_MOTIF" = 1; then
6625         AC_MSG_WARN([wxTooltip not supported yet under Motif... disabled])
6626     else
6627         if test "$wxUSE_UNIVERSAL" = "yes"; then
6628             AC_MSG_WARN([wxTooltip not supported yet in wxUniversal... disabled])
6629         else
6630             AC_DEFINE(wxUSE_TOOLTIPS)
6631         fi
6632     fi
6633 fi
6634
6635 if test "$wxUSE_TREEBOOK" = "yes"; then
6636     AC_DEFINE(wxUSE_TREEBOOK)
6637     USES_CONTROLS=1
6638 fi
6639
6640 if test "$wxUSE_TOOLBOOK" = "yes"; then
6641     AC_DEFINE(wxUSE_TOOLBOOK)
6642     USES_CONTROLS=1
6643 fi
6644
6645 if test "$wxUSE_TREECTRL" = "yes"; then
6646     if test "$wxUSE_IMAGLIST" = "yes"; then
6647         AC_DEFINE(wxUSE_TREECTRL)
6648         USES_CONTROLS=1
6649         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS treectrl"
6650     else
6651         AC_MSG_WARN([wxTreeCtrl requires wxImageList and won't be compiled without it])
6652     fi
6653 fi
6654
6655 if test "$wxUSE_POPUPWIN" = "yes"; then
6656     if test "$wxUSE_MAC" = 1 -o "$wxUSE_COCOA" = 1 ; then
6657         AC_MSG_WARN([Popup window not yet supported under Mac OS X... disabled])
6658     else
6659         if test "$wxUSE_PM" = 1; then
6660             AC_MSG_WARN([wxPopupWindow not yet supported under PM... disabled])
6661         else
6662             AC_DEFINE(wxUSE_POPUPWIN)
6663             SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS popup"
6664
6665             USES_CONTROLS=1
6666         fi
6667     fi
6668 fi
6669
6670 if test "$wxUSE_DIALUP_MANAGER" = "yes"; then
6671     if test "$wxUSE_MAC" = 1 -o "$wxUSE_COCOA" = 1 ; then
6672         AC_MSG_WARN([Dialup manager not yet supported under Mac OS X... disabled])
6673     else
6674         AC_DEFINE(wxUSE_DIALUP_MANAGER)
6675         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS dialup"
6676     fi
6677 fi
6678
6679 if test "$wxUSE_TIPWINDOW" = "yes"; then
6680     if test "$wxUSE_PM" = 1; then
6681         AC_MSG_WARN([wxTipWindow not yet supported under PM... disabled])
6682     else
6683         AC_DEFINE(wxUSE_TIPWINDOW)
6684     fi
6685 fi
6686
6687 if test "$USES_CONTROLS" = 1; then
6688     AC_DEFINE(wxUSE_CONTROLS)
6689 fi
6690
6691 dnl ---------------------------------------------------------------------------
6692 dnl misc options
6693 dnl ---------------------------------------------------------------------------
6694
6695 dnl please keep the settings below in alphabetical order
6696 if test "$wxUSE_ACCESSIBILITY" = "yes"; then
6697     AC_DEFINE(wxUSE_ACCESSIBILITY)
6698     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS access"
6699 fi
6700
6701 if test "$wxUSE_DC_CACHEING" = "yes"; then
6702     AC_DEFINE(wxUSE_DC_CACHEING)
6703 fi
6704
6705 if test "$wxUSE_DRAGIMAGE" = "yes"; then
6706     AC_DEFINE(wxUSE_DRAGIMAGE)
6707     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS dragimag"
6708 fi
6709
6710 if test "$wxUSE_EXCEPTIONS" = "yes"; then
6711     if test "$wxUSE_NO_EXCEPTIONS" = "yes" ; then
6712         AC_MSG_WARN([--enable-exceptions can't be used with --enable-no_exceptions])
6713     else
6714         AC_DEFINE(wxUSE_EXCEPTIONS)
6715         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS except"
6716     fi
6717 fi
6718
6719 USE_HTML=0
6720 if test "$wxUSE_HTML" = "yes"; then
6721     AC_DEFINE(wxUSE_HTML)
6722     USE_HTML=1
6723     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS html html/about html/help html/helpview html/printing html/test html/virtual html/widget html/zip htlbox"
6724     if test "$wxUSE_MAC" = 1; then
6725         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS html/htmlctrl"
6726     fi
6727 fi
6728 if test "$wxUSE_WEBKIT" = "yes"; then
6729     if test "$wxUSE_MAC" = 1 -a "$USE_DARWIN" = 1; then
6730         old_CPPFLAGS="$CPPFLAGS"
6731         CPPFLAGS="-x objective-c++ $CPPFLAGS"
6732         AC_CHECK_HEADER([WebKit/HIWebView.h],
6733                         [
6734                            AC_DEFINE(wxUSE_WEBKIT)
6735                            WEBKIT_LINK="-framework WebKit"
6736                         ],
6737                         [
6738                            AC_MSG_WARN([WebKit headers not found; disabling wxWebKit])
6739                            wxUSE_WEBKIT=no
6740                         ],
6741                         [#include <Carbon/Carbon.h>])
6742         CPPFLAGS="$old_CPPFLAGS"
6743     elif test "$wxUSE_COCOA" = 1; then
6744         AC_DEFINE(wxUSE_WEBKIT)
6745     else
6746         wxUSE_WEBKIT=no
6747     fi
6748 fi
6749
6750 USE_XRC=0
6751 if test "$wxUSE_XRC" = "yes"; then
6752     if test "$wxUSE_XML" != "yes"; then
6753         AC_MSG_WARN([XML library not built, XRC resources disabled])
6754         wxUSE_XRC=no
6755     else
6756         AC_DEFINE(wxUSE_XRC)
6757         USE_XRC=1
6758         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS xrc"
6759     fi
6760 fi
6761
6762 USE_AUI=0
6763 if test "$wxUSE_AUI" = "yes"; then
6764    AC_DEFINE(wxUSE_AUI)
6765    USE_AUI=1
6766    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS aui"
6767 fi
6768
6769 if test "$wxUSE_MENUS" = "yes"; then
6770     AC_DEFINE(wxUSE_MENUS)
6771     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS menu"
6772 fi
6773
6774 if test "$wxUSE_METAFILE" = "yes"; then
6775     AC_DEFINE(wxUSE_METAFILE)
6776 fi
6777
6778 if test "$wxUSE_MIMETYPE" = "yes"; then
6779     AC_DEFINE(wxUSE_MIMETYPE)
6780 fi
6781
6782 if test "$wxUSE_MINIFRAME" = "yes"; then
6783     AC_DEFINE(wxUSE_MINIFRAME)
6784     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS minifram"
6785 fi
6786
6787 if test "$wxUSE_SYSTEM_OPTIONS" = "yes"; then
6788     AC_DEFINE(wxUSE_SYSTEM_OPTIONS)
6789     if test "$TOOLKIT" = "MSW" -o "$TOOLKIT" = "GTK" -o "$TOOLKIT" = "X11" -o \
6790         "$TOOLKIT" = "MOTIF" -o "$TOOLKIT" = "COCOA"; then
6791         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS taskbar"
6792     fi
6793 fi
6794
6795
6796 if test "$wxUSE_VALIDATORS" = "yes"; then
6797     AC_DEFINE(wxUSE_VALIDATORS)
6798     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS validate"
6799 fi
6800
6801 if test "$wxUSE_PALETTE" = "yes" ; then
6802   AC_DEFINE(wxUSE_PALETTE)
6803 fi
6804
6805 if test "$wxUSE_UNICODE" = "yes" -a "$wxUSE_UNICODE_MSLU" = "yes" ; then
6806   dnl Must be done this late because -lunicows must be before all the other libs
6807   LIBS=" -lunicows $LIBS"
6808 fi
6809
6810 USE_RICHTEXT=0
6811 if test "$wxUSE_RICHTEXT" = "yes"; then
6812     AC_DEFINE(wxUSE_RICHTEXT)
6813     USE_RICHTEXT=1
6814     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS richtext"
6815 fi
6816
6817 dnl ---------------------------------------------------------------------------
6818 dnl wxImage options
6819 dnl ---------------------------------------------------------------------------
6820
6821 if test "$wxUSE_IMAGE" = "yes" ; then
6822     AC_DEFINE(wxUSE_IMAGE)
6823
6824     if test "$wxUSE_GIF" = "yes" ; then
6825       AC_DEFINE(wxUSE_GIF)
6826     fi
6827
6828     if test "$wxUSE_PCX" = "yes" ; then
6829       AC_DEFINE(wxUSE_PCX)
6830     fi
6831
6832     if test "$wxUSE_IFF" = "yes" ; then
6833       AC_DEFINE(wxUSE_IFF)
6834     fi
6835
6836     if test "$wxUSE_PNM" = "yes" ; then
6837       AC_DEFINE(wxUSE_PNM)
6838     fi
6839
6840     if test "$wxUSE_XPM" = "yes" ; then
6841       AC_DEFINE(wxUSE_XPM)
6842     fi
6843
6844     if test "$wxUSE_ICO_CUR" = "yes" ; then
6845       AC_DEFINE(wxUSE_ICO_CUR)
6846     fi
6847 fi
6848
6849 dnl ---------------------------------------------------------------------------
6850 dnl common dialogs
6851 dnl ---------------------------------------------------------------------------
6852
6853 if test "$wxUSE_CHOICEDLG" = "yes"; then
6854     AC_DEFINE(wxUSE_CHOICEDLG)
6855 fi
6856
6857 if test "$wxUSE_COLOURDLG" = "yes"; then
6858     AC_DEFINE(wxUSE_COLOURDLG)
6859 fi
6860
6861 if test "$wxUSE_FILEDLG" = "yes"; then
6862     AC_DEFINE(wxUSE_FILEDLG)
6863 fi
6864
6865 if test "$wxUSE_FINDREPLDLG" = "yes"; then
6866     AC_DEFINE(wxUSE_FINDREPLDLG)
6867 fi
6868
6869 if test "$wxUSE_FONTDLG" = "yes"; then
6870     AC_DEFINE(wxUSE_FONTDLG)
6871 fi
6872
6873 if test "$wxUSE_DIRDLG" = "yes"; then
6874     if test "$wxUSE_TREECTRL" != "yes"; then
6875         AC_MSG_WARN(wxDirDialog requires wxTreeCtrl so it won't be compiled without it)
6876     else
6877         AC_DEFINE(wxUSE_DIRDLG)
6878     fi
6879 fi
6880
6881 if test "$wxUSE_MSGDLG" = "yes"; then
6882     AC_DEFINE(wxUSE_MSGDLG)
6883 fi
6884
6885 if test "$wxUSE_NUMBERDLG" = "yes"; then
6886     AC_DEFINE(wxUSE_NUMBERDLG)
6887 fi
6888
6889 if test "$wxUSE_PROGRESSDLG" = "yes"; then
6890     if test "$wxUSE_CONSTRAINTS" != "yes"; then
6891        AC_MSG_WARN(wxProgressDialog requires constraints so it won't be compiled without them)
6892     else
6893         AC_DEFINE(wxUSE_PROGRESSDLG)
6894     fi
6895 fi
6896
6897 if test "$wxUSE_SPLASH" = "yes"; then
6898     AC_DEFINE(wxUSE_SPLASH)
6899     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS splash"
6900 fi
6901
6902 if test "$wxUSE_STARTUP_TIPS" = "yes"; then
6903     if test "$wxUSE_CONSTRAINTS" != "yes"; then
6904        AC_MSG_WARN(Startup tips requires constraints and won't be compiled without them)
6905     else
6906         AC_DEFINE(wxUSE_STARTUP_TIPS)
6907     fi
6908 fi
6909
6910 if test "$wxUSE_TEXTDLG" = "yes"; then
6911     AC_DEFINE(wxUSE_TEXTDLG)
6912 fi
6913
6914 if test "$wxUSE_WIZARDDLG" = "yes"; then
6915     AC_DEFINE(wxUSE_WIZARDDLG)
6916     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS wizard"
6917 fi
6918
6919 dnl ---------------------------------------------------------------------------
6920 dnl wxMediaCtrl
6921 dnl ---------------------------------------------------------------------------
6922
6923 USE_MEDIA=0
6924
6925 if test "$wxUSE_MEDIACTRL" = "yes"; then
6926     USE_MEDIA=1
6927
6928     dnl -----------------------------------------------------------------------
6929     dnl GStreamer
6930     dnl -----------------------------------------------------------------------
6931     if test "$wxUSE_GTK" = 1; then
6932         wxUSE_GSTREAMER="no"
6933
6934         dnl -------------------------------------------------------------------
6935         dnl Test for at least 0.8 gstreamer module from pkg-config
6936         dnl Even totem doesn't accept 0.9 evidently.
6937         dnl
6938         dnl So, we first check to see if 0.10 if available - if not we
6939         dnl try the older 0.8 version
6940         dnl -------------------------------------------------------------------
6941         GST_VERSION_MAJOR=0
6942         GST_VERSION_MINOR=10
6943         GST_VERSION=$GST_VERSION_MAJOR.$GST_VERSION_MINOR
6944
6945         if test "$wxUSE_GSTREAMER8" = "no"; then
6946             PKG_CHECK_MODULES(GST,
6947                 [gstreamer-$GST_VERSION gstreamer-plugins-base-$GST_VERSION gconf-2.0],
6948                 [
6949                     wxUSE_GSTREAMER="yes"
6950                     GST_LIBS="$GST_LIBS -lgstinterfaces-$GST_VERSION"
6951                 ],
6952                 [
6953                     AC_MSG_WARN([GStreamer 0.10 not available, falling back to 0.8])
6954                     GST_VERSION_MINOR=8
6955                 ]
6956             )
6957         else
6958             dnl check only for 0.8
6959             GST_VERSION_MINOR=8
6960         fi
6961
6962         if test $GST_VERSION_MINOR = "8"; then
6963             GST_VERSION=$GST_VERSION_MAJOR.$GST_VERSION_MINOR
6964             PKG_CHECK_MODULES(GST,
6965                 [gstreamer-$GST_VERSION gstreamer-interfaces-$GST_VERSION gstreamer-gconf-$GST_VERSION],
6966                 wxUSE_GSTREAMER="yes",
6967                 [
6968                     AC_MSG_WARN([GStreamer 0.8/0.10 not available.])
6969                 ])
6970         fi
6971
6972
6973         if test "$wxUSE_GSTREAMER" = "yes"; then
6974             dnl system gstreamer package is compiled with Sun CC and outputs
6975             dnl CC-specific "-mt" in its flags, remove it for gcc compilation
6976             case "${host}" in
6977                 *-*-solaris2* )
6978                     if "$GCC" = yes; then
6979                         GST_CFLAGS=`echo $GST_CFLAGS | sed 's/-mt//'`
6980                         GST_LIBS=`echo $GST_LIBS | sed 's/-mt//'`
6981                     fi
6982             esac
6983
6984             CPPFLAGS="$GST_CFLAGS $CPPFLAGS"
6985             LIBS="$GST_LIBS $LIBS"
6986
6987             AC_DEFINE(wxUSE_GSTREAMER)
6988         else
6989             USE_MEDIA=0
6990         fi
6991     fi
6992
6993     if test $USE_MEDIA = 1; then
6994         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS mediaplayer"
6995         AC_DEFINE(wxUSE_MEDIACTRL)
6996     fi
6997 fi
6998
6999 dnl ---------------------------------------------------------------------------
7000 dnl get the string with OS info - used by wxGetOsDescription() on MacOS X
7001 dnl ---------------------------------------------------------------------------
7002
7003 if test "$cross_compiling" = "yes"; then
7004     dnl Use best guess from host as we can't use uname when cross compiling
7005     OSINFO="\"$host\""
7006 else
7007     dnl attualy work out OS version
7008     OSINFO=`uname -s -r -m`
7009     OSINFO="\"$OSINFO\""
7010 fi
7011
7012 AC_DEFINE_UNQUOTED(WXWIN_OS_DESCRIPTION, $OSINFO)
7013
7014 dnl ---------------------------------------------------------------------------
7015 dnl define the variable containing the installation prefix (used in dcpsg.cpp)
7016 dnl ---------------------------------------------------------------------------
7017
7018 if test "x$prefix" != "xNONE"; then
7019     wxPREFIX=$prefix
7020 else
7021     wxPREFIX=$ac_default_prefix
7022 fi
7023
7024 AC_DEFINE_UNQUOTED(wxINSTALL_PREFIX, "$wxPREFIX")
7025
7026
7027 dnl ---------------------------------------------------------------------------
7028 dnl define variables with all built libraries for wx-config
7029 dnl ---------------------------------------------------------------------------
7030
7031 CORE_BASE_LIBS="net base"
7032 CORE_GUI_LIBS="adv core"
7033
7034 if test "$wxUSE_XML" = "yes" ; then
7035     CORE_BASE_LIBS="xml $CORE_BASE_LIBS"
7036 fi
7037 if test "$wxUSE_ODBC" != "no" ; then
7038     CORE_BASE_LIBS="odbc $CORE_BASE_LIBS"
7039     CORE_GUI_LIBS="dbgrid $CORE_GUI_LIBS"
7040 fi
7041 if test "$wxUSE_HTML" = "yes" ; then
7042     CORE_GUI_LIBS="html $CORE_GUI_LIBS"
7043 fi
7044 if test "$wxUSE_DEBUGREPORT" = "yes" ; then
7045     CORE_GUI_LIBS="qa $CORE_GUI_LIBS"
7046 fi
7047 if test "$wxUSE_XRC" = "yes" ; then
7048     CORE_GUI_LIBS="xrc $CORE_GUI_LIBS"
7049 fi
7050 if test "$wxUSE_AUI" = "yes" ; then
7051     CORE_GUI_LIBS="aui $CORE_GUI_LIBS"
7052 fi
7053
7054 if test "$wxUSE_GUI" != "yes"; then
7055     CORE_GUI_LIBS=""
7056 fi
7057
7058 AC_SUBST(CORE_BASE_LIBS)
7059 AC_SUBST(CORE_GUI_LIBS)
7060
7061 dnl ---------------------------------------------------------------------------
7062 dnl Output the makefiles and such from the results found above
7063 dnl ---------------------------------------------------------------------------
7064
7065 dnl no more tests from here
7066 AC_LANG_POP
7067
7068 dnl all additional libraries (except wxWidgets itself) we link with
7069
7070 if test "$wxUSE_MAC" = 1 ; then
7071     if test "$wxUSE_SOUND" = "yes" || test "$wxUSE_MEDIACTRL" = "yes"; then
7072         if test "$USE_DARWIN" = 1; then
7073             LDFLAGS="$LDFLAGS -framework QuickTime"
7074         else
7075             LDFLAGS="$LDFLAGS -lQuickTimeLib"
7076         fi
7077     fi
7078     if test "$USE_DARWIN" = 1; then
7079         LDFLAGS="$LDFLAGS -framework IOKit -framework Carbon -framework Cocoa -framework System"
7080     else
7081         LDFLAGS="$LDFLAGS -lCarbonLib"
7082     fi
7083 fi
7084 if test "$wxUSE_COCOA" = 1 ; then
7085     LDFLAGS="$LDFLAGS -framework IOKit -framework Cocoa"
7086     if test "$wxUSE_MEDIACTRL" = "yes"; then
7087         LDFLAGS="$LDFLAGS -framework QuickTime"
7088     fi
7089 fi
7090 if test "$USE_DARWIN" = 1 -a "$wxUSE_MAC" != 1 -a "$wxUSE_COCOA" != 1 ; then
7091     LDFLAGS="$LDFLAGS -framework IOKit -framework CoreServices -framework System -framework ApplicationServices"
7092 fi
7093
7094 LIBS="$ZLIB_LINK $POSIX4_LINK $INET_LINK $WCHAR_LINK $DL_LINK $LIBS"
7095
7096 if test "$wxUSE_GUI" = "yes"; then
7097
7098     dnl TODO add checks that these samples will really compile (i.e. all the
7099     dnl      library features they need are present)
7100
7101     dnl TODO some samples are never built so far: mfc (requires VC++)
7102     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS artprov controls dialogs drawing \
7103                      dynamic erase event exec font image minimal mobile \
7104                      mobile/wxedit mobile/styles propsize render \
7105                      rotate shaped vscroll widgets"
7106
7107     if test "$wxUSE_MONOLITHIC" != "yes"; then
7108         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS console"
7109     fi
7110     if test "$TOOLKIT" = "MSW"; then
7111         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS regtest"
7112         if test "$wxUSE_UNIVERSAL" != "yes"; then
7113             SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS ownerdrw nativdlg"
7114         fi
7115     fi
7116     if test "$TOOLKIT" = "PM" -a "$wxUSE_UNIVERSAL" != "yes"; then
7117         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS ownerdrw"
7118     fi
7119 else
7120     SAMPLES_SUBDIRS="console"
7121 fi
7122
7123
7124 dnl C/C++ compiler options used to compile wxWidgets
7125 dnl
7126 dnl check for icc before gcc as icc is also recognized as gcc
7127 if test "x$INTELCC" = "xyes" ; then
7128     dnl Warnings which can't be easily suppressed in C code are disabled:
7129     dnl
7130     dnl     remark #810: conversion from "x" to "y" may lose significant bits
7131     dnl     remark #869: parameter "foo" was never referenced
7132     dnl     remark #1572: floating-point equality and inequality comparisons
7133     dnl                   are unreliable
7134     dnl     remark #1684: conversion from pointer to same-sized integral type
7135     dnl
7136     dnl (for others see below)
7137     CWARNINGS="-Wall -wd810,869,981,1418,1572,1684"
7138 elif test "$GCC" = yes ; then
7139     CWARNINGS="-Wall -Wundef"
7140 fi
7141
7142 if test "x$INTELCXX" = "xyes" ; then
7143     dnl Intel compiler gives some warnings which simply can't be worked
7144     dnl around or of which we have too many (810, 869) so it's impractical to
7145     dnl keep them enabled even if in theory it would be nice and some others
7146     dnl (279) are generated for standard macros and so there is nothing we can
7147     dnl do about them
7148     dnl
7149     dnl     remark #279: controlling expression is constant
7150     dnl     remark #383: value copied to temporary, reference to temporary used
7151     dnl     remark #444: destructor for base class "xxx" is not virtual
7152     dnl     remark #810: conversion from "x" to "y" may lose significant bits
7153     dnl     remark #869: parameter "foo" was never referenced
7154     dnl     remark #981: operands are evaluated in unspecified order
7155     dnl     remark #1418: external definition with no prior declaration
7156     dnl     remark #1419: external declaration in primary source file
7157     CXXWARNINGS="-Wall -wd279,383,444,810,869,981,1418,1419"
7158 elif test "$GXX" = yes ; then
7159     dnl CXXWARNINGS="-Wall -W -Wcast-qual -Werror"
7160     CXXWARNINGS="-Wall -Wundef -Wno-ctor-dtor-privacy"
7161 fi
7162
7163
7164 dnl combine everything together and remove the extra white space while doing it
7165 WXCONFIG_CFLAGS=`echo $WXCONFIG_CFLAGS`
7166 WXCONFIG_CXXFLAGS=`echo $WXCONFIG_CFLAGS $WXCONFIG_CXXFLAGS`
7167
7168
7169 dnl add -I options we use during library compilation
7170 dnl
7171 dnl note that the order is somewhat important: wxWidgets headers should
7172 dnl come first and the one with setup.h should be before $(top_srcdir)/include
7173 dnl in case the latter contains setup.h used by non-autoconf makefiles (e.g.
7174 dnl CodeWarrior):
7175 CPPFLAGS=`echo $WXCONFIG_CPPFLAGS \
7176  -I\\${top_builddir}lib/wx/include/${TOOLCHAIN_FULLNAME} \
7177  -I\\${top_srcdir}/include $TOOLKIT_INCLUDE \
7178  $CPPFLAGS `
7179
7180 C_AND_CXX_FLAGS="$DEBUG_CFLAGS $PROFILE_FLAGS $OPTIMISE_CFLAGS"
7181 CFLAGS=`echo $WXCONFIG_CFLAGS $CWARNINGS $C_AND_CXX_FLAGS $CFLAGS `
7182 CXXFLAGS=`echo $WXCONFIG_CXXFLAGS $CXXWARNINGS $C_AND_CXX_FLAGS $CXXFLAGS `
7183
7184 dnl now that we added WXCONFIG_CPPFLAGS to CPPFLAGS we can add the wx-config
7185 dnl only stuff to it
7186 WXCONFIG_CPPFLAGS=`echo $WXCONFIG_CPPFLAGS $WXCONFIG_ONLY_CPPFLAGS`
7187
7188
7189 if test "x$MWCC" = "xyes"; then
7190     dnl Correct MW 8.3 to be more similar to GCC.  In particular we
7191     dnl must use <regex.h> from system not our local copy on OS X,
7192     dnl but must use local not system on OS 9.
7193     dnl The following should make all -I paths usable for <> includes
7194     dnl while first checking in real system paths.  With 8.3 using
7195     dnl -gccincludes it will actually check local paths before system
7196     dnl even for <> which is totally wrong.
7197
7198     dnl Note that because this absolutely needs to be before any -I
7199     dnl that we have to tack it on to the end of the compiler commandline.
7200     CC="$CC -cwd source -I-"
7201     CXX="$CXX -cwd source -I-"
7202 fi
7203
7204
7205 LIBS=`echo $LIBS`
7206 EXTRALIBS="$LDFLAGS $LDFLAGS_VERSIONING $LIBS $DMALLOC_LIBS"
7207 EXTRALIBS_XML="$EXPAT_LINK"
7208 EXTRALIBS_HTML="$MSPACK_LINK"
7209 EXTRALIBS_ODBC="$ODBC_LINK"
7210 if test "$wxUSE_GUI" = "yes"; then
7211     EXTRALIBS_GUI=`echo $GUI_TK_LIBRARY $PNG_LINK $JPEG_LINK $TIFF_LINK $WEBKIT_LINK $EXTRALIBS_HILDON $EXTRALIBS_GNOMEVFS $EXTRALIBS_GNOMEPRINT`
7212 fi
7213 if test "$wxUSE_OPENGL" = "yes"; then
7214     EXTRALIBS_OPENGL="$LDFLAGS_GL $OPENGL_LIBS"
7215 fi
7216
7217 LDFLAGS="$LDFLAGS $PROFILE_FLAGS"
7218
7219 WXCONFIG_LIBS="$LIBS"
7220
7221 dnl wx-config must output builtin 3rd party libs in --libs in static build:
7222 if test "$wxUSE_REGEX" = "builtin" ; then
7223     wxconfig_3rdparty="regex${lib_unicode_suffix} $wxconfig_3rdparty"
7224 fi
7225 if test "$wxUSE_EXPAT" = "builtin" ; then
7226     wxconfig_3rdparty="expat $wxconfig_3rdparty"
7227 fi
7228 if test "$wxUSE_ODBC" = "builtin" ; then
7229     wxconfig_3rdparty="odbc $wxconfig_3rdparty"
7230 fi
7231 if test "$wxUSE_LIBTIFF" = "builtin" ; then
7232     wxconfig_3rdparty="tiff $wxconfig_3rdparty"
7233 fi
7234 if test "$wxUSE_LIBJPEG" = "builtin" ; then
7235     wxconfig_3rdparty="jpeg $wxconfig_3rdparty"
7236 fi
7237 if test "$wxUSE_LIBPNG" = "builtin" ; then
7238     wxconfig_3rdparty="png $wxconfig_3rdparty"
7239 fi
7240 if test "$wxUSE_ZLIB" = "builtin" ; then
7241     wxconfig_3rdparty="zlib $wxconfig_3rdparty"
7242 fi
7243
7244 for i in $wxconfig_3rdparty ; do
7245     WXCONFIG_LIBS="-lwx${i}${lib_debug_suffix}${WX_LIB_FLAVOUR}-${WX_RELEASE}${HOST_SUFFIX} $WXCONFIG_LIBS"
7246 done
7247
7248
7249 if test "x$wxUSE_UNIVERSAL" = "xyes" ; then
7250     WXUNIV=1
7251 else
7252     WXUNIV=0
7253 fi
7254
7255 AC_SUBST(wxUSE_ZLIB)
7256 AC_SUBST(wxUSE_REGEX)
7257 AC_SUBST(wxUSE_EXPAT)
7258 AC_SUBST(wxUSE_ODBC)
7259 AC_SUBST(wxUSE_LIBJPEG)
7260 AC_SUBST(wxUSE_LIBPNG)
7261 AC_SUBST(wxUSE_LIBTIFF)
7262
7263 if test $wxUSE_MONOLITHIC = "yes" ; then
7264     MONOLITHIC=1
7265 else
7266     MONOLITHIC=0
7267 fi
7268
7269 if test $wxUSE_PLUGINS = "yes" ; then
7270     USE_PLUGINS=1
7271 else
7272     USE_PLUGINS=0
7273 fi
7274
7275 if test $wxUSE_ODBC != "no" ; then
7276     USE_ODBC=1
7277 else
7278     USE_ODBC=0
7279 fi
7280
7281 if test "$wxUSE_DEBUGREPORT" = "yes" ; then
7282     USE_QA=1
7283 else
7284     USE_QA=0
7285 fi
7286
7287 if test $wxUSE_OFFICIAL_BUILD = "yes" ; then
7288     OFFICIAL_BUILD=1
7289 else
7290     OFFICIAL_BUILD=0
7291 fi
7292
7293 AC_SUBST(VENDOR)
7294 AC_SUBST(OFFICIAL_BUILD)
7295 AC_SUBST(WX_FLAVOUR)
7296 AC_SUBST(WX_LIB_FLAVOUR)
7297
7298 AC_SUBST(WXUNIV)
7299 AC_SUBST(MONOLITHIC)
7300 AC_SUBST(USE_PLUGINS)
7301 AC_SUBST(LIBS)
7302 AC_SUBST(EXTRALIBS)
7303 AC_SUBST(EXTRALIBS_XML)
7304 AC_SUBST(EXTRALIBS_HTML)
7305 AC_SUBST(EXTRALIBS_ODBC)
7306 AC_SUBST(EXTRALIBS_GUI)
7307 AC_SUBST(EXTRALIBS_OPENGL)
7308 AC_SUBST(EXTRALIBS_SDL)
7309 AC_SUBST(WITH_PLUGIN_SDL)
7310 AC_SUBST(EXTRALIBS_GNOMEPRINT)
7311 AC_SUBST(EXTRALIBS_GNOMEVFS)
7312 AC_SUBST(EXTRALIBS_HILDON)
7313 AC_SUBST(UNICODE)
7314 AC_SUBST(BUILD)
7315 AC_SUBST(DEBUG_INFO)
7316 AC_SUBST(DEBUG_FLAG)
7317 TOOLKIT_LOWERCASE=`echo $TOOLKIT | tr "[[A-Z]]" "[[a-z]]"`
7318 AC_SUBST(TOOLKIT_LOWERCASE)
7319 AC_SUBST(TOOLKIT_VERSION)
7320 AC_SUBST(SAMPLES_RPATH_FLAG)
7321 AC_SUBST(SAMPLES_RPATH_POSTLINK)
7322 AC_SUBST(HOST_SUFFIX)
7323 AC_SUBST(CPPUNIT_CFLAGS)
7324 AC_SUBST(CPPUNIT_LIBS)
7325
7326 case "$TOOLKIT" in
7327     GTK)
7328         TOOLKIT_USER="GTK+"
7329         if test "$WXGTK20" = 1; then
7330             TOOLKIT_USER="$TOOLKIT_USER 2"
7331         fi
7332         ;;
7333
7334     *)
7335         TOOLKIT_USER=$TOOLKIT_LOWERCASE
7336         ;;
7337 esac
7338
7339 if test "$wxUSE_WINE" = "yes"; then
7340     BAKEFILE_FORCE_PLATFORM=win32
7341 fi
7342
7343 dnl ---------------------------------------------------------------------------
7344 dnl Add Universal binary support 
7345 dnl Note we don't do this earlier because adding these cpp/ld flags could
7346 dnl cause configure tests to fail.
7347 dnl ---------------------------------------------------------------------------
7348 if test "$wxUSE_MAC" = 1 ; then
7349     if test "x$wxUSE_UNIVERSAL_BINARY" != xno ; then
7350         dnl --enable-universal_binary uses a default SDK (currently 10.4u)
7351         dnl --enable-universal_binary=SDK names a path to an SDK
7352         if test "x$wxUSE_UNIVERSAL_BINARY" == xyes; then
7353             OSX_UNIV_OPTS="-isysroot /Developer/SDKs/MacOSX10.4u.sdk"
7354         else 
7355             dnl '' would mean universal with no SDK, which may be the case if
7356             dnl the compiler uses a sysroot by default
7357             OSX_UNIV_OPTS=${wxUSE_UNIVERSAL_BINARY:+"-isysroot '$wxUSE_UNIVERSAL_BINARY'"}
7358         fi
7359         OSX_UNIV_OPTS="$OSX_UNIV_OPTS -arch ppc -arch i386"
7360         CXXFLAGS="$OSX_UNIV_OPTS $CXXFLAGS"
7361         CFLAGS="$OSX_UNIV_OPTS $CFLAGS"
7362         LDFLAGS="$OSX_UNIV_OPTS $LDFLAGS"
7363         bk_use_pch=no
7364     fi
7365     # TODO: where do we add "-syslibroot,/Developer/SDKs/MacOSX10.4u.sdk" for libtool (static builds only)?
7366     #       The makefile currently uses AR and RANLIB, which libtool apparently supercedes.
7367 fi
7368
7369 AC_BAKEFILE([m4_include(autoconf_inc.m4)])
7370
7371 dnl HACK ALERT!! 
7372 dnl For now, we need to alter bk-deps not to generate deps
7373 dnl when we've configured a Universal binary build.
7374 dnl The next version of Bakefile will have the correct fix for this
7375 dnl at which time, this hack can be removed.
7376
7377 if test "$wxUSE_MAC" = 1 ; then
7378     if test "x$wxUSE_UNIVERSAL_BINARY" != "xno" ; then
7379         sed "s/DEPSMODE=gcc/DEPSMODE=none/" < bk-deps > temp
7380         mv temp bk-deps
7381         chmod +x bk-deps
7382     fi
7383 fi
7384
7385 if test "$wxUSE_SHARED" = "yes"; then
7386
7387     dnl We get the shared build linker from bakefile, since it
7388     dnl moved all the logic for this out of this file and into
7389     dnl its own macro.  But it can't decide on whether to return
7390     dnl us $(VAR), ${VAR}, or the present expansion of VAR.
7391     dnl So normalise and expand everything here now, because its
7392     dnl not going to change inside wx-config anyway.
7393     sanitised_bakefile_mess=`echo "$SHARED_LD_CXX" | tr -d '()'`
7394     EXE_LINKER=`eval echo "$sanitised_bakefile_mess"`
7395
7396     dnl Need addtional flag on OS/2, so override bakefiles value
7397     dnl (there currently is no suitable variable to which the
7398     dnl  missing flags could be added, AFAICS. SN, 18.12.2004. )
7399     case "${host}" in
7400       *-pc-os2_emx | *-pc-os2-emx )
7401         SHARED_LD_CC="`pwd`/dllar.sh -name-mangler-script ./dllnames.sh -libf INITINSTANCE -libf TERMINSTANCE -o"
7402         SHARED_LD_CXX="`pwd`/dllar.sh -name-mangler-script ./dllnames.sh -libf INITINSTANCE -libf TERMINSTANCE -o"
7403         cp -p ${srcdir}/src/os2/dllnames.sh .
7404         cp -p ${srcdir}/src/os2/dllar.sh .
7405       ;;
7406     esac
7407 else
7408
7409     dnl No bakefile support for static builds, but this should be ok for most.
7410     EXE_LINKER="$CXX -o"
7411
7412 fi
7413 if test "$wxUSE_OMF" = "yes"; then
7414     case "${host}" in
7415       *-pc-os2_emx | *-pc-os2-emx )
7416         LDFLAGS="$LDFLAGS -Zlinker /EXEPACK"
7417         LDFLAGS_GUI="-Zlinker /PMTYPE:PM"
7418         WXCONFIG_LDFLAGS_GUI="-Zlinker /PMTYPE:PM"
7419       ;;
7420     esac
7421 fi
7422
7423 dnl find out if the compiler supports PCH
7424 dnl
7425 dnl TODO: this should be in bakefile
7426 if test $GCC_PCH = 1 ; then
7427     CPPFLAGS="-DWX_PRECOMP $CPPFLAGS"
7428 fi
7429
7430 dnl TOOLCHAIN_DEFS should be used for both wx and client code
7431 WXCONFIG_CPPFLAGS="$WXCONFIG_CPPFLAGS $TOOLCHAIN_DEFS"
7432
7433 dnl for convenience, sort the samples in alphabetical order
7434 dnl
7435 dnl FIXME For some mysterious reasons, sometimes the directories are duplicated
7436 dnl       in this list - hence uniq. But normally, this shouldn't be needed!
7437 dnl
7438 dnl       Unfortunately, there is a bug in OS/2's tr, such that
7439 dnl       tr ' ' '\n' introduces DOS-like line breaks, whereas tr '\n' ' '
7440 dnl       only removes the Unix-like part of the introduced line break.
7441 SAMPLES_SUBDIRS="`echo $SAMPLES_SUBDIRS | tr -s ' ' | tr ' ' '\n' | sort | uniq | tr '\n' ' '| tr -d '\r'`"
7442
7443 dnl subtle bakefile goop.
7444 dnl Used in wx-config now too, as its STATIC_FLAG with different makeup.
7445 dnl I wish we would have called it something less likely to clash with
7446 dnl things though.
7447 AC_SUBST(SHARED)
7448
7449 dnl global options
7450 AC_SUBST(WX_LIBRARY_BASENAME_NOGUI)
7451 AC_SUBST(WX_LIBRARY_BASENAME_GUI)
7452
7453 dnl toolkit options
7454 AC_SUBST(USE_GUI)
7455 AC_SUBST(AFMINSTALL)
7456 AC_SUBST(WIN32INSTALL)
7457 AC_SUBST(TOOLKIT)
7458 AC_SUBST(TOOLKIT_DIR)
7459 AC_SUBST(TOOLCHAIN_NAME)
7460 AC_SUBST(TOOLCHAIN_FULLNAME)
7461
7462 dnl wx-config options
7463 AC_SUBST(host_alias)
7464 AC_SUBST(cross_compiling)
7465 AC_SUBST(WIDGET_SET)
7466 AC_SUBST(WX_RELEASE)
7467 AC_SUBST(WX_VERSION)
7468 AC_SUBST(WX_SUBVERSION)
7469 AC_SUBST(WX_CHARTYPE)
7470 AC_SUBST(WX_DEBUGTYPE)
7471
7472 dnl note that in addition to the usual CPP/C/CXXFLAGS which are used for
7473 dnl building the library itself, we also have WXCONFIG_-prefixed variants which
7474 dnl are used when building the libraries using the library
7475 dnl
7476 dnl so put anything which should be used only during the library build in, e.g.
7477 dnl CXXFLAGS, but put everything else (by default) into WXCONFIG_CXXFLAGS
7478 dnl
7479 dnl and, finally, for some things which should be only used by wx-config but
7480 dnl not during the library compilation, use WXCONFIG_ONLY_CPPFLAGS which is
7481 dnl added to WXCONFIG_CPPFLAGS after adding the latter to CPPFLAGS
7482 AC_SUBST(WXCONFIG_CPPFLAGS)
7483 AC_SUBST(WXCONFIG_CFLAGS)
7484 AC_SUBST(WXCONFIG_CXXFLAGS)
7485
7486 AC_SUBST(WXCONFIG_LIBS)
7487 AC_SUBST(WXCONFIG_RPATH)
7488 AC_SUBST(WXCONFIG_LDFLAGS_GUI)
7489 AC_SUBST(WXCONFIG_RESFLAGS)
7490 AC_SUBST(EXE_LINKER)
7491
7492 dnl distribution vars
7493 AC_SUBST(GUIDIST)
7494 AC_SUBST(DISTDIR)
7495
7496 dnl additional subdirectories where we will build
7497 AC_SUBST(SAMPLES_SUBDIRS)
7498
7499 dnl additional libraries and linker settings
7500 AC_SUBST(LDFLAGS)
7501 AC_SUBST(LDFLAGS_GL)
7502 AC_SUBST(OPENGL_LIBS)
7503 AC_SUBST(DMALLOC_LIBS)
7504 AC_SUBST(WX_VERSION_TAG)
7505
7506 dnl additional resurces settings
7507 AC_SUBST(RESCOMP)
7508 AC_SUBST(WINDRES)
7509 AC_SUBST(REZ)
7510 AC_SUBST(RESFLAGS)
7511 AC_SUBST(RESPROGRAMOBJ)
7512 AC_SUBST(WX_RESOURCES_MACOSX_ASCII)
7513 AC_SUBST(WX_RESOURCES_MACOSX_DATA)
7514
7515 dnl additional for Mac OS X
7516 AC_SUBST(DEREZ)
7517 AC_SUBST(LIBWXMACRES)
7518 AC_SUBST(POSTLINK_COMMAND)
7519 AC_SUBST(MACSETFILE)
7520
7521 dnl other tools
7522 AC_SUBST(GCC)
7523 AC_SUBST(DLLTOOL)
7524
7525
7526 dnl MAKE_SET will be replaced with "MAKE=..." or nothing if make sets MAKE
7527 dnl itself (this macro is required if SUBDIRS variable is used in Makefile.am
7528 dnl - and we do use it)
7529 AC_PROG_MAKE_SET
7530
7531
7532 AC_CONFIG_HEADERS([lib/wx/include/${TOOLCHAIN_FULLNAME}/wx/setup.h:setup.h.in])
7533
7534 if test "$USE_WIN32" = 1; then
7535     AC_CONFIG_COMMANDS(
7536         [
7537             rcdefs.h
7538         ],
7539         [
7540             mkdir -p $outdir &&
7541             $CPP $infile | sed 's/^# *[1-9].*//;s/^ *//;/./,/^$/!d' > $outdir/rcdefs.h
7542         ],
7543         [
7544             CPP="$CPP"
7545             infile="$srcdir/include/wx/msw/genrcdefs.h"
7546             outdir="lib/wx/include/$TOOLCHAIN_FULLNAME/wx/msw"
7547         ]
7548     )
7549 fi
7550
7551 AC_CONFIG_FILES([ lib/wx/config/${TOOLCHAIN_FULLNAME}:wx-config.in ],
7552                 [ chmod +x lib/wx/config/${TOOLCHAIN_FULLNAME} ],
7553                 [ TOOLCHAIN_FULLNAME="${TOOLCHAIN_FULLNAME}" ])
7554
7555 AC_CONFIG_FILES([ lib/wx/config/inplace-${TOOLCHAIN_FULLNAME}:wx-config-inplace.in ],
7556                 [ chmod +x lib/wx/config/inplace-${TOOLCHAIN_FULLNAME} ],
7557                 [ TOOLCHAIN_FULLNAME="${TOOLCHAIN_FULLNAME}" ])
7558
7559 AC_CONFIG_FILES([ version-script Makefile ])
7560
7561 AC_CONFIG_COMMANDS([wx-config],
7562                    [ rm -f wx-config
7563                      ${LN_S} lib/wx/config/inplace-${TOOLCHAIN_FULLNAME} wx-config
7564                    ],
7565                    [ TOOLCHAIN_FULLNAME="${TOOLCHAIN_FULLNAME}"
7566                      LN_S="${LN_S}"
7567                    ])
7568
7569 dnl This would give us us build dir that in every significant way
7570 dnl resembles an installed wx in prefix=$builddir.  It is troublesome
7571 dnl though in this form because AC_CONFIG_LINKS will fail for directories
7572 dnl on platforms that do not have symlinks.
7573 dnl AC_CONFIG_LINKS([ include/wx-$WX_RELEASE$WX_FLAVOUR:include ])
7574 dnl AC_CONFIG_LINKS([ contrib/include ])
7575
7576 if test "$wxWITH_SUBDIRS" != "no"; then
7577 dnl Configure samples, contrib etc. directories, but only if they are present:
7578 if test "$wxUSE_GUI" = "yes"; then
7579     SUBDIRS="samples demos utils contrib"
7580 else dnl we build wxBase only
7581     dnl there are no wxBase programs in contrib nor demos
7582     SUBDIRS="samples utils"
7583 fi
7584 dnl Add tests to the list of subdirs if cppunit 1.8.0+ is detected
7585 AM_PATH_CPPUNIT(1.8.0, [SUBDIRS="$SUBDIRS tests"])
7586
7587 for subdir in `echo $SUBDIRS`; do
7588     if test -d ${srcdir}/${subdir} ; then
7589         if test "$wxUSE_GUI" = "yes"; then
7590             if test ${subdir} = "samples"; then
7591                 dnl only take those samples which compile in the current
7592                 dnl configuration and which exist
7593                 makefiles="samples/Makefile.in $makefiles"
7594                 for sample in `echo $SAMPLES_SUBDIRS`; do
7595                     if test -d $srcdir/samples/$sample; then
7596                         makefiles="samples/$sample/Makefile.in $makefiles"
7597                     fi
7598                 done
7599             else
7600                 dnl assume that everything compiles for utils &c
7601                 dnl any that shouldn't be built can be added to
7602                 dnl DISABLED_UTILS, DISABLED_CONTRIB or DISABLED_DEMOS
7603                 disabled_var=DISABLED_`echo $subdir | tr [[a-z]] [[A-Z]]`;
7604                 eval "disabled=\$$disabled_var"
7605                 disabled=/`echo X $disabled | sed 's@ @/|/@g'`/
7606                 makefiles=`(cd $srcdir ; find $subdir -name Makefile.in) | egrep -v "$disabled"`
7607             fi
7608         else dnl we build wxBase only
7609             dnl don't take all samples/utils, just those which build with
7610             dnl wxBase
7611             if test ${subdir} = "samples"; then
7612                 makefiles="samples/Makefile.in samples/console/Makefile.in"
7613             elif test ${subdir} = "utils"; then
7614                 makefiles=""
7615                 for util in HelpGen tex2rtf ; do
7616                     if test -d $srcdir/utils/$util ; then
7617                         makefiles="utils/$util/Makefile.in \
7618                                    utils/$util/src/Makefile.in \
7619                                    $makefiles"
7620                     fi
7621                 done
7622             else dnl assume that everything compiles for tests
7623                 makefiles=`(cd $srcdir ; find $subdir -name Makefile.in)`
7624             fi
7625         fi
7626
7627         for mkin in $makefiles ; do
7628             mk=`echo $mkin | sed 's/Makefile\.in/Makefile/g'`
7629             AC_CONFIG_FILES([$mk])
7630         done
7631     fi
7632 done
7633 fi dnl wxWITH_SUBDIRS
7634
7635 AC_OUTPUT
7636
7637 dnl report how we have been configured
7638 echo
7639 echo "Configured wxWidgets ${WX_VERSION} for \`${host}'"
7640 echo ""
7641 echo "  Which GUI toolkit should wxWidgets use?                 ${TOOLKIT_USER:-base only}"
7642 echo "  Should wxWidgets be compiled into single library?       ${wxUSE_MONOLITHIC:-yes}"
7643
7644 echo "  Should wxWidgets be compiled in debug mode?             ${wxUSE_DEBUG:-no}"
7645 echo "  Should wxWidgets be linked as a shared library?         ${wxUSE_SHARED:-no}"
7646 echo "  Should wxWidgets be compiled in Unicode mode?           ${wxUSE_UNICODE:-no}"
7647
7648 echo "  What level of wxWidgets compatibility should be enabled?"
7649 echo "                                       wxWidgets 2.4      ${WXWIN_COMPATIBILITY_2_4:-no}"
7650 echo "                                       wxWidgets 2.6      ${WXWIN_COMPATIBILITY_2_6:-yes}"
7651
7652 echo "  Which libraries should wxWidgets use?"
7653 echo "                                       jpeg               ${wxUSE_LIBJPEG-none}"
7654 echo "                                       png                ${wxUSE_LIBPNG-none}"
7655 echo "                                       regex              ${wxUSE_REGEX}"
7656 echo "                                       tiff               ${wxUSE_LIBTIFF-none}"
7657 if test "$wxUSE_X11" = 1 -o "$wxUSE_MOTIF" = 1; then
7658 echo "                                       xpm                ${wxUSE_LIBXPM-none}"
7659 fi
7660 echo "                                       zlib               ${wxUSE_ZLIB}"
7661 echo "                                       odbc               ${wxUSE_ODBC}"
7662 echo "                                       expat              ${wxUSE_EXPAT}"
7663 echo "                                       libmspack          ${wxUSE_LIBMSPACK}"
7664 echo "                                       sdl                ${wxUSE_LIBSDL}"
7665 echo "                                       gnomeprint         ${wxUSE_LIBGNOMEPRINT-none}"
7666 echo "                                       gnomevfs           ${wxUSE_LIBGNOMEVFS-none}"
7667 echo "                                       hildon             ${wxUSE_LIBHILDON-none}"
7668
7669 echo ""
7670
7671 dnl vi: set et sts=4 sw=4 com=\:dnl: