test for sys/soundcard.h was failing because of missing sys/ioctl.h
[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_PARAM=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_PARAM=yes
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(universal_binary, [  --enable-universal_binary 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 ---------------------------------------------------------------------------
1805 dnl Checks for compiler characteristics
1806 dnl ---------------------------------------------------------------------------
1807
1808 dnl defines const to be empty if c-compiler does not support const fully
1809 AC_C_CONST
1810 dnl defines inline to a sensible value for the c-compiler
1811 AC_C_INLINE
1812
1813 dnl check the sizes of integral types (give some reasonable default values for
1814 dnl cross-compiling)
1815 dnl   defines the size of certain types of variables in SIZEOF_<TYPE>
1816 AC_CHECK_SIZEOF(char, 1)
1817 AC_CHECK_SIZEOF(short, 2)
1818 AC_CHECK_SIZEOF(void *, 4)
1819 AC_CHECK_SIZEOF(int, 4)
1820 AC_CHECK_SIZEOF(long, 4)
1821 AC_CHECK_SIZEOF(size_t, 4)
1822
1823 case "${host}" in
1824     arm-*-linux* )
1825         AC_CHECK_SIZEOF(long long, 8)
1826     ;;
1827     *-hp-hpux* )
1828         AC_CHECK_SIZEOF(long long, 0)
1829         if test "$ac_cv_sizeof_long_long" != "0"; then
1830             dnl HPUX 10.20 headers need this define in order to use long long definitions
1831             CPPFLAGS="-D_INCLUDE_LONGLONG $CPPFLAGS"
1832         fi
1833     ;;
1834     * )
1835         AC_CHECK_SIZEOF(long long, 0)
1836 esac
1837
1838 dnl SGI/Irix's stdio.h does not include wchar_t. Mac OS X does not provide
1839 dnl wchar.h and wchar_t is defined by stdlib.h (GD)
1840 AC_CHECK_SIZEOF(wchar_t, 0,
1841     [
1842         /* DJGPP's wchar_t is now a keyword in C++ (still not C though) */
1843         #if defined(__DJGPP__) && !( (__GNUC_MINOR__ >= 8 && __GNUC__ == 2 ) || __GNUC__ >= 3 )
1844         #  error "fake wchar_t"
1845         #endif
1846         #ifdef HAVE_WCHAR_H
1847         #  ifdef __CYGWIN__
1848         #    include <stddef.h>
1849         #  endif
1850         #  include <wchar.h>
1851         #endif
1852         #ifdef HAVE_STDLIB_H
1853         #  include <stdlib.h>
1854         #endif
1855         #include <stdio.h>
1856     ]
1857 )
1858 if test "$ac_cv_sizeof_wchar_t" != "0"; then
1859     wxUSE_WCHAR_T=yes
1860 else
1861     wxUSE_WCHAR_T=no
1862 fi
1863
1864 dnl checks needed to define wxVaCopy
1865 AC_CACHE_CHECK([for va_copy],
1866     wx_cv_func_va_copy,
1867     [
1868         AC_LINK_IFELSE([
1869             #include <stdarg.h>
1870             void foo(char *f, ...)
1871             {
1872                 va_list ap1, ap2;
1873                 va_start(ap1, f);
1874                 va_copy(ap2, ap1);
1875                 va_end(ap2);
1876                 va_end(ap1);
1877             }
1878             int main()
1879             {
1880                 foo("hi", 17);
1881                 return 0;
1882             }],
1883             wx_cv_func_va_copy=yes,
1884             wx_cv_func_va_copy=no
1885         )
1886     ]
1887 )
1888
1889 if test $wx_cv_func_va_copy = "yes"; then
1890     AC_DEFINE(HAVE_VA_COPY)
1891 else
1892     dnl try to understand how can we copy va_lists
1893     AC_CACHE_CHECK([if va_list can be copied by value],
1894         wx_cv_type_va_list_lvalue,
1895         [
1896             AC_RUN_IFELSE([
1897                 #include <stdarg.h>
1898                 int foo(char *f, ...)
1899                 {
1900                     va_list ap1, ap2;
1901                     va_start(ap1, f);
1902                     ap2 = ap1;
1903                     if ( va_arg(ap1, int) != 17 || va_arg(ap2, int) != 17 )
1904                         return 1;
1905                     va_end(ap2);
1906                     va_end(ap1);
1907                     return 0;
1908                 }
1909                 int main()
1910                 {
1911                     return foo("hi", 17);
1912                 }],
1913                 wx_cv_type_va_list_lvalue=yes,
1914                 wx_cv_type_va_list_lvalue=no,
1915                 dnl assume most common case for cross-compiling...
1916                 wx_cv_type_va_list_lvalue=yes
1917             )
1918         ]
1919     )
1920
1921     if test $wx_cv_type_va_list_lvalue != "yes"; then
1922         dnl we suppose that the only thing which can't be copied like this
1923         dnl are arrays... only experience will show whether this is really true
1924         AC_DEFINE(VA_LIST_IS_ARRAY)
1925     fi
1926 fi
1927
1928 dnl check for large file support
1929 AC_SYS_LARGEFILE
1930
1931 dnl we need to define _FILE_OFFSET_BITS or _LARGE_FILES on the compiler command
1932 dnl line because otherwise the system headers risk being included before
1933 dnl wx/defs.h which defines these constants leading to inconsistent
1934 dnl sizeof(off_t) in different source files of the same program and linking
1935 dnl problems
1936 if test "x$wx_largefile" = "xyes"; then
1937     if test "x$ac_cv_sys_file_offset_bits" = "x64"; then
1938         WXCONFIG_CPPFLAGS="$WXCONFIG_CPPFLAGS -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES"
1939
1940         dnl We get "Large Files (ILP32) not supported in strict ANSI mode."
1941         dnl #error from HP standard headers unless __STDC_EXT__ is defined.
1942         dnl The compiler should define it automatically, but some old g++
1943         dnl versions don't define it, so test and add it if necessary. AFAIK
1944         dnl the problem only affects the C++ compiler so it is added to
1945         dnl CXXFLAGS only.
1946         if test "$USE_HPUX" = 1 -a "$GXX" = "yes"; then
1947             AC_CACHE_CHECK(
1948                 [if -D__STDC_EXT__ is required],
1949                 wx_cv_STDC_EXT_required,
1950                 [
1951                     AC_TRY_COMPILE(
1952                         [],
1953                         [
1954                             #ifndef __STDC_EXT__
1955                                 choke me
1956                             #endif
1957                         ],
1958                         wx_cv_STDC_EXT_required=no,
1959                         wx_cv_STDC_EXT_required=yes
1960                     )
1961                 ]
1962             )
1963             if test "x$wx_cv_STDC_EXT_required" = "xyes"; then
1964                 WXCONFIG_CXXFLAGS="$WXCONFIG_CXXFLAGS -D__STDC_EXT__"
1965             fi
1966         fi
1967     else
1968         WXCONFIG_CPPFLAGS="$WXCONFIG_CPPFLAGS -D_LARGE_FILES"
1969     fi
1970     dnl AC_FUNC_FSEEKO sets HAVE_FSEEKO and $ac_cv_sys_largefile_source
1971     AC_FUNC_FSEEKO
1972     if test "$ac_cv_sys_largefile_source" != no; then
1973         WXCONFIG_CPPFLAGS="$WXCONFIG_CPPFLAGS -D_LARGEFILE_SOURCE=$ac_cv_sys_largefile_source"
1974     fi
1975 fi
1976
1977 dnl check for bytesex stuff (don't use AC_C_BIGENDIAN to allow cross-compiling)
1978 WX_C_BIGENDIAN
1979
1980 dnl check for iostream (as opposed to iostream.h) standard header
1981 WX_CPP_NEW_HEADERS(, AC_DEFINE(wxUSE_IOSTREAMH))
1982
1983 dnl check whether C++ compiler supports bool built-in type
1984 WX_CPP_BOOL
1985
1986 dnl check whether C++ compiler supports explicit keyword
1987 WX_CPP_EXPLICIT
1988
1989 dnl check whether C++ compiler supports C++ casts
1990 AC_CXX_CONST_CAST
1991 AC_CXX_REINTERPRET_CAST
1992 AC_CXX_STATIC_CAST
1993 dnl we don't use HAVE_DYNAMIC_CAST anywhere right now...
1994 dnl AC_CXX_DYNAMIC_CAST
1995
1996 dnl With Sun CC, temporaries have block scope by default. This flag is needed
1997 dnl to get the expression scope behaviour that conforms to the standard.
1998 if test "x$SUNCXX" = xyes; then
1999     CXXFLAGS="-features=tmplife $CXXFLAGS"
2000 fi
2001
2002 dnl Sun X11 headers are (still, in 2005!) non-ANSI and the best they could do
2003 dnl was to hack their C++ compiler to accept them silently -- but C compiler
2004 dnl still spits out dozens of warnings for each X include file, so suppress
2005 dnl them
2006 if test "x$SUNCC" = xyes; then
2007     CFLAGS="-erroff=E_NO_EXPLICIT_TYPE_GIVEN $CFLAGS"
2008 fi
2009
2010 dnl SGI mipsPro compiler gives this warning for "conversion from pointer to
2011 dnl same-sized integral type" even when there is an explicit cast and as there
2012 dnl is no way to turn it off and there are hundreds of these warnings in wx
2013 dnl sources, just turn it off for now
2014 dnl
2015 dnl a better long term solution would be to use #pragma set/reset woff in
2016 dnl wxPtrToUInt() and use it instead of casts elsewhere
2017 if test "x$SGICC" = "xyes"; then
2018     CFLAGS="-woff 3970 $CFLAGS"
2019 fi
2020 if test "x$SGICXX" = "xyes"; then
2021     CXXFLAGS="-woff 3970 $CXXFLAGS"
2022 fi
2023
2024 dnl HP-UX c89/aCC compiler warnings
2025 if test "x$HPCC" = "xyes"; then
2026     dnl 2011: "unrecognized preprocessor directive": nice warning but it's given
2027     dnl       even for directives inside #if which is not true (i.e. which are
2028     dnl       used for other compilers/OS) and so we have no way to get rid of it
2029     dnl 2450: "long long is non standard" -- yes, we know
2030     CFLAGS="+W 2011,2450 $CFLAGS"
2031 fi
2032 if test "x$HPCXX" = "xyes"; then
2033     dnl 2340: "value copied to temporary, reference to temporary used": very
2034     dnl       painful as triggered by any occurrence of user-defined conversion
2035     CXXFLAGS="+W 2340 $CXXFLAGS"
2036 fi
2037
2038 dnl DEC/Compaq/HP cxx warnings
2039 if test "x$COMPAQCXX" = "xyes"; then
2040     dnl -w0 enables all warnings, then we disable some of them:
2041     dnl basclsnondto: base class dtor non virtual (sometimes we do want this)
2042     dnl unrimpret:  "end of routine block may be unreachable" is given for
2043     dnl             every "if ( ) return ...; else return ...;"
2044     dnl intconlosbit: "conversion to integral type of smaller size could lose
2045     dnl               data" this is a useful warning but there are too many of
2046     dnl               them for now
2047     CXXFLAGS="-w0 -msg_disable basclsnondto,unrimpret,intconlosbit"
2048 fi
2049
2050 dnl check for std::string or std::wstring
2051 if test "$wxUSE_STD_STRING" = "yes" -o "$wxUSE_STL" = "yes"; then
2052     if test "$wxUSE_UNICODE" = "yes"; then
2053         std_string="std::wstring"
2054         char_type="wchar_t"
2055     else
2056         std_string="std::string"
2057         char_type="char"
2058     fi
2059
2060     dnl check if <string> declares std::wstring
2061     AC_MSG_CHECKING([for $std_string in <string>])
2062     AC_TRY_COMPILE([#include <string>],
2063                    [$std_string foo;],
2064                    [AC_MSG_RESULT(yes)
2065                     AC_DEFINE(HAVE_STD_WSTRING)],
2066                    [AC_MSG_RESULT(no)
2067                     AC_MSG_CHECKING([if std::basic_string<$char_type> works])
2068                     AC_TRY_COMPILE([
2069                         #ifdef HAVE_WCHAR_H
2070                         #  ifdef __CYGWIN__
2071                         #    include <stddef.h>
2072                         #  endif
2073                         #  include <wchar.h>
2074                         #endif
2075                         #ifdef HAVE_STDLIB_H
2076                         #  include <stdlib.h>
2077                         #endif
2078                         #include <stdio.h>
2079                         #include <string>
2080                         ],
2081                         [std::basic_string<$char_type> foo;
2082                          const $char_type* dummy = foo.c_str();],
2083                         [AC_MSG_RESULT(yes)],
2084                         [AC_MSG_RESULT([no])
2085                          if test "$wxUSE_STL" = "yes"; then
2086                              AC_MSG_ERROR([Can't use --enable-stl without $std_string or std::basic_string<$char_type>])
2087                          elif grep wxUSE_STD_STRING $wx_arg_cache_file >/dev/null; then
2088                              AC_MSG_ERROR([Can't use --enable-std_string without $std_string or std::basic_string<$char_type>])
2089                          else
2090                              AC_MSG_WARN([No $std_string or std::basic_string<$char_type>, switching to --disable-std_string])
2091                              wxUSE_STD_STRING=no
2092                          fi
2093                         ]
2094                     )
2095                     ])
2096 fi
2097
2098 if test "$wxUSE_STD_IOSTREAM" = "yes"; then
2099     AC_CHECK_TYPES([std::istream, std::ostream],,
2100                    [wxUSE_STD_IOSTREAM=no],
2101                    [#include <iostream>])
2102
2103     if test "$wxUSE_STD_IOSTREAM" != "yes"; then
2104         if grep wxUSE_STD_IOSTREAM $wx_arg_cache_file >/dev/null; then
2105             AC_MSG_ERROR([Can't use --enable-std_iostreams without std::istream and std::ostream])
2106         else
2107             AC_MSG_WARN([No std::iostreams, switching to --disable-std_iostreams])
2108         fi
2109     fi
2110 fi
2111
2112 if test "$wxUSE_STL" = "yes"; then
2113     dnl check for basic STL functionality
2114     AC_MSG_CHECKING([for basic STL functionality])
2115     AC_TRY_COMPILE([#include <string>
2116                     #include <functional>
2117                     #include <algorithm>
2118                     #include <vector>
2119                     #include <list>],
2120                     [std::vector<int> moo;
2121                      std::list<int> foo;
2122                      std::vector<int>::iterator it =
2123                          std::find_if(moo.begin(), moo.end(),
2124                                       std::bind2nd(std::less<int>(), 3));],
2125                     [AC_MSG_RESULT([yes])],
2126                     [AC_MSG_RESULT([no])
2127                      AC_MSG_ERROR([Basic STL functionality missing])])
2128
2129     dnl check for compliant std::string::compare
2130     AC_MSG_CHECKING([for compliant std::string::compare])
2131     AC_TRY_COMPILE([#include <string>],
2132                    [std::string foo, bar;
2133                     foo.compare(bar);
2134                     foo.compare(1, 1, bar);
2135                     foo.compare(1, 1, bar, 1, 1);
2136                     foo.compare("");
2137                     foo.compare(1, 1, "");
2138                     foo.compare(1, 1, "", 2);],
2139                    [AC_MSG_RESULT(yes)
2140                     AC_DEFINE(HAVE_STD_STRING_COMPARE)],
2141                    [AC_MSG_RESULT(no)])
2142
2143     dnl check for hash_map and hash_set headers
2144     AC_CHECK_HEADER([hash_map],
2145                     [AC_MSG_CHECKING([for hash_map and hash_set])
2146                      AC_TRY_COMPILE([#include <hash_map>
2147                                      #include <hash_set>],
2148                                     [std::hash_map<double*, char*, std::hash<double*>, std::equal_to<double*> > test1;
2149                                      std::hash_set<char*, std::hash<char*>, std::equal_to<char*> > test2;],
2150                                     [AC_MSG_RESULT(yes)
2151                                      AC_DEFINE(HAVE_HASH_MAP)
2152                                      AC_DEFINE(HAVE_STD_HASH_MAP)],
2153                                     [AC_MSG_RESULT(no)])
2154                      ])
2155
2156     AC_CHECK_HEADER([ext/hash_map],
2157                     [AC_MSG_CHECKING([for hash_map and hash_set])
2158                      AC_TRY_COMPILE([#include <ext/hash_map>
2159                                      #include <ext/hash_set>],
2160                                     [__gnu_cxx::hash_map<double*, char*, __gnu_cxx::hash<double*>, std::equal_to<double*> > test1;
2161                                      __gnu_cxx::hash_set<char*, __gnu_cxx::hash<char*>, std::equal_to<char*> > test2;],
2162                                     [AC_MSG_RESULT(yes)
2163                                      AC_DEFINE(HAVE_EXT_HASH_MAP)
2164                                      AC_DEFINE(HAVE_GNU_CXX_HASH_MAP)],
2165                                     [AC_MSG_RESULT(no)])
2166                      ])
2167 fi
2168
2169 dnl ---------------------------------------------------------------------------
2170 dnl Define search path for includes and libraries: all headers and libs will be
2171 dnl looked for in all directories of this path
2172 dnl ---------------------------------------------------------------------------
2173
2174 dnl Notice that /usr/include should *not* be in this list, otherwise it breaks
2175 dnl compilation on Solaris/AIX/... with gcc because standard (non ANSI C)
2176 dnl headers are included instead of the "fixed" (ANSI-fied) gcc ones.
2177 dnl
2178 dnl Also try to put all directories which may contain X11R6 before those which
2179 dnl may contain X11R5/4 - we want to use R6 on machines which have both!
2180 dnl
2181 dnl In the same vein. Motif 2.1 should be tried before Motif 1.2 for the
2182 dnl systems which have both (AIX 4.x does)
2183 SEARCH_INCLUDE="\
2184     /usr/local/include        \
2185                               \
2186     /usr/Motif-2.1/include    \
2187     /usr/Motif-1.2/include    \
2188     /usr/include/Motif1.2     \
2189                               \
2190     /usr/dt/include           \
2191     /usr/openwin/include      \
2192                               \
2193     /usr/include/Xm           \
2194                               \
2195     /usr/X11R6/include        \
2196     /usr/X11R6.4/include      \
2197     /usr/X11R5/include        \
2198     /usr/X11R4/include        \
2199                               \
2200     /usr/include/X11R6        \
2201     /usr/include/X11R5        \
2202     /usr/include/X11R4        \
2203                               \
2204     /usr/local/X11R6/include  \
2205     /usr/local/X11R5/include  \
2206     /usr/local/X11R4/include  \
2207                               \
2208     /usr/local/include/X11R6  \
2209     /usr/local/include/X11R5  \
2210     /usr/local/include/X11R4  \
2211                               \
2212     /usr/X11/include          \
2213     /usr/include/X11          \
2214     /usr/local/X11/include    \
2215     /usr/local/include/X11    \
2216                               \
2217     /usr/XFree86/include/X11  \
2218     /usr/pkg/include          \
2219                               \
2220     /usr/openwin/share/include"
2221
2222 dnl try to find out the standard lib locations for the systems with multiple
2223 dnl ABIs
2224 AC_MSG_CHECKING([for libraries directory])
2225
2226 case "${host}" in
2227     *-*-irix6* )
2228         AC_CACHE_VAL(
2229             wx_cv_std_libpath,
2230             [
2231                 for d in WX_STD_LIBPATH(); do
2232                     for e in a so sl dylib dll.a; do
2233                         libc="$d/libc.$e"
2234                         if test -f $libc; then
2235                             save_LIBS="$LIBS"
2236                             LIBS="$libc"
2237                             AC_LINK_IFELSE([int main() { return 0; }],
2238                                 wx_cv_std_libpath=`echo $d | sed s@/usr/@@`)
2239                             LIBS="$save_LIBS"
2240                             if test "x$wx_cv_std_libpath" != "x"; then
2241                                 break 2
2242                             fi
2243                         fi
2244                     done
2245                 done
2246                 if test "x$wx_cv_std_libpath" = "x"; then
2247                     wx_cv_std_libpath="lib"
2248                 fi
2249             ]
2250         )
2251         ;;
2252
2253     *-*-solaris2* )
2254         dnl use ../lib or ../lib/64 depending on the size of void*
2255         if test "$ac_cv_sizeof_void_p" = 8 -a -d "/usr/lib/64"; then
2256             wx_cv_std_libpath="lib/64"
2257         else
2258             wx_cv_std_libpath="lib"
2259         fi
2260         ;;
2261
2262     *-*-linux* )
2263         dnl use ../lib or ../lib64 depending on the size of void*
2264         if test "$ac_cv_sizeof_void_p" = 8 -a \
2265                 -d "/usr/lib64" -a ! -h "/usr/lib64"; then
2266             wx_cv_std_libpath="lib64"
2267         else
2268             wx_cv_std_libpath="lib"
2269         fi
2270         ;;
2271
2272     *)
2273         wx_cv_std_libpath="lib";
2274         ;;
2275 esac
2276
2277 AC_MSG_RESULT($wx_cv_std_libpath)
2278
2279 SEARCH_LIB="`echo "$SEARCH_INCLUDE" | sed s@include@$wx_cv_std_libpath@g` /usr/$wx_cv_std_libpath"
2280
2281 dnl Cross compiling with gcc?
2282 if test "$build" != "$host" -a "$GCC" = yes; then
2283     dnl for gcc cross-compilers "$CC -print-prog-name=ld" prints the path to
2284     dnl the linker. Stripping off the trailing '/bin/ld' gives us a candiate
2285     dnl for a 'root' below which libraries and headers for the target system
2286     dnl might be installed.
2287     if cross_root=`$CC -print-prog-name=ld 2>/dev/null`; then
2288         cross_root=`dirname $cross_root`
2289         cross_root=`dirname $cross_root`
2290
2291         dnl substitute this candiate root for '^/usr' in the search lists,
2292         dnl strip out any that don't start '^/usr'.
2293         SEARCH_LIB=`for x in $SEARCH_LIB; do echo $x; done | sed -ne "s|^/usr|$cross_root|p"`
2294         SEARCH_INCLUDE=`for x in $SEARCH_INCLUDE; do echo $x; done | sed -ne "s|^/usr|$cross_root|p"`
2295         SEARCH_INCLUDE="$SEARCH_INCLUDE $cross_root/include"
2296
2297         dnl also have pkg-config search for *.pc files under this 'root'
2298         if test -z "$PKG_CONFIG_PATH"; then
2299             PKG_CONFIG_PATH="$cross_root/local/lib/pkgconfig:$cross_root/lib/pkgconfig"
2300             export PKG_CONFIG_PATH
2301         fi
2302
2303         dnl AC_PATH_XTRA doesn't work currently unless -x-includes and
2304         dnl -x-libraries are given on the command line. So if they are not
2305         dnl set then set them here to plausible defaults.
2306         if test -z "$x_includes" -o "$x_includes" = NONE; then
2307             WX_PATH_FIND_INCLUDES($SEARCH_INCLUDE, X11/Intrinsic.h)
2308             x_includes=$ac_find_includes
2309         fi
2310         if test -z "$x_libraries" -o "$x_libraries" = NONE; then
2311             WX_PATH_FIND_LIBRARIES($SEARCH_LIB, Xt)
2312             x_libraries=$ac_find_libraries
2313         fi
2314     fi
2315 fi
2316
2317 dnl ------------------------------------------------------------------------
2318 dnl Check for libraries
2319 dnl ------------------------------------------------------------------------
2320
2321 dnl flush the cache because checking for libraries below might abort
2322 AC_CACHE_SAVE
2323
2324 dnl check for glibc version
2325 dnl
2326 dnl VZ: I have no idea why had this check been there originally, but now
2327 dnl     we could probably do without it by just always adding _GNU_SOURCE
2328 if test "$USE_LINUX" = 1 -o "$USE_GNU" = 1; then
2329     AC_CACHE_CHECK([for glibc 2.1 or later], wx_cv_lib_glibc21,[
2330         AC_TRY_COMPILE([#include <features.h>],
2331             [
2332                 #if (__GLIBC__ < 2) || (__GLIBC_MINOR__ < 1)
2333                 not glibc 2.1
2334                 #endif
2335             ],
2336             [
2337                 wx_cv_lib_glibc21=yes
2338             ],
2339             [
2340                 wx_cv_lib_glibc21=no
2341             ]
2342         )
2343     ])
2344     if test "$wx_cv_lib_glibc21" = "yes"; then
2345         AC_DEFINE(wxHAVE_GLIBC2)
2346     fi
2347 fi
2348
2349 dnl we may need _GNU_SOURCE for 2 things:
2350 dnl
2351 dnl  1. to get PTHREAD_MUTEX_RECURSIVE with glibc 2.1+ (strictly speaking we
2352 dnl  only need _XOPEN_SOURCE=500 but just defining this disables _BSD_SOURCE
2353 dnl  which breaks libtiff compilation, so it is simpler to just define
2354 dnl  _GNU_SOURCE to get everything)
2355 dnl
2356 dnl  2. for Unicode functions
2357 if test "x$wx_cv_lib_glibc21" = "xyes"; then
2358     if test "$wxUSE_UNICODE" = "yes" -o "$wxUSE_THREADS" = "yes"; then
2359         AC_DEFINE(_GNU_SOURCE)
2360     fi
2361 fi
2362
2363 dnl Only add the -lm library if floating point functions cannot be used
2364 dnl without it.  This check is important on cygwin because of the bizarre
2365 dnl way that they have organized functions into libraries.  On cygwin, both
2366 dnl libc.a and libm.a are symbolic links to a single lib libcygwin.a.  This
2367 dnl means that
2368 dnl   1) linking with -lm is not necessary, and
2369 dnl   2) linking with -lm is dangerous if the order of libraries is wrong
2370 dnl In particular, if you compile any program with -mno-cygwin and link with
2371 dnl -lm, it will crash instantly when it is run.  This happens because the
2372 dnl linker incorrectly links the Cygwin libm.a (==libcygwin.a), which replaces
2373 dnl the ___main function instead of allowing it to be defined by
2374 dnl /usr/lib/mingw/libmingw32.a as it should be.
2375 dnl
2376 dnl On MacOS X, this test will find that -lm is unnecessary and leave it out.
2377 dnl
2378 dnl Just check a few floating point functions. If they are all found without
2379 dnl -lm, then we must not need -lm.
2380 have_cos=0
2381 have_floor=0
2382 AC_CHECK_FUNCS(cos, have_cos=1)
2383 AC_CHECK_FUNCS(floor, have_floor=1)
2384 AC_MSG_CHECKING(if floating point functions link without -lm)
2385 if test "$have_cos" = 1 -a "$have_floor" = 1; then
2386     AC_MSG_RESULT(yes)
2387 else
2388     AC_MSG_RESULT(no)
2389     LIBS="$LIBS -lm"
2390     # use different functions to avoid configure caching
2391     have_sin=0
2392     have_ceil=0
2393     AC_CHECK_FUNCS(sin, have_sin=1)
2394     AC_CHECK_FUNCS(ceil, have_ceil=1)
2395     AC_MSG_CHECKING(if floating point functions link with -lm)
2396     if test "$have_sin" = 1 -a "$have_ceil" = 1; then
2397         AC_MSG_RESULT(yes)
2398     else
2399         AC_MSG_RESULT(no)
2400         # not sure we should warn the user, crash, etc.
2401     fi
2402 fi
2403
2404 dnl ---------------------------------------------------------------------------
2405 dnl Optional libraries
2406 dnl
2407 dnl   --with-<lib>=sys
2408 dnl       looks for system library and fails if not found
2409 dnl
2410 dnl   --with-<lib>
2411 dnl   --with-<lib>=yes
2412 dnl       looks for system library and, if not found, prints a warning,
2413 dnl       falls back to the builtin wx version, and continues configuration
2414 dnl
2415 dnl   --with-<lib>=builtin
2416 dnl       uses builtin wx version without searching for system library
2417 dnl
2418 dnl   --with-<lib>=no
2419 dnl   --without-<lib>
2420 dnl       do not use library (neither system nor builtin wx version)
2421 dnl
2422 dnl ---------------------------------------------------------------------------
2423
2424 dnl ------------------------------------------------------------------------
2425 dnl Check for regex libraries
2426 dnl ------------------------------------------------------------------------
2427
2428 if test "$wxUSE_REGEX" != "no"; then
2429     AC_DEFINE(wxUSE_REGEX)
2430
2431     if test "$wxUSE_UNICODE" = "yes" -a "$wxUSE_REGEX" = "yes"; then
2432         AC_MSG_WARN([Defaulting to the the builtin regex library for Unicode build.])
2433         wxUSE_REGEX=builtin
2434     fi
2435
2436     if test "$wxUSE_REGEX" = "sys" -o "$wxUSE_REGEX" = "yes" ; then
2437         dnl according to Unix 98 specs, regcomp() is in libc but I believe that
2438         dnl on some old systems it may be in libregex - check for it too?
2439         AC_CHECK_HEADER(regex.h, [AC_CHECK_FUNCS(regcomp re_search)])
2440
2441         if test "x$ac_cv_func_regcomp" != "xyes"; then
2442             if test "$wxUSE_REGEX" = "sys" ; then
2443                 AC_MSG_ERROR([system regex library not found! Use --with-regex to use built-in version])
2444             else
2445                 AC_MSG_WARN([system regex library not found, will use built-in instead])
2446                 wxUSE_REGEX=builtin
2447             fi
2448         else
2449             dnl we are using the system library
2450             wxUSE_REGEX=sys
2451             dnl only the built-in supports advanced REs
2452             AC_DEFINE(WX_NO_REGEX_ADVANCED)
2453         fi
2454     fi
2455 fi
2456
2457 dnl ------------------------------------------------------------------------
2458 dnl Check for zlib compression library
2459 dnl ------------------------------------------------------------------------
2460
2461 ZLIB_LINK=
2462 if test "$wxUSE_ZLIB" != "no" ; then
2463     AC_DEFINE(wxUSE_ZLIB)
2464
2465     if test "$wxUSE_ZLIB" = "sys" -o "$wxUSE_ZLIB" = "yes" ; then
2466         dnl don't test for zlib under Mac -- its verson there is 1.1.3 but we
2467         dnl should still use it because hopefully (can someone confirm this?)
2468         dnl Apple did fix the security problem in it and not using the system
2469         dnl library results in a whole bunch of warnings when linking with
2470         dnl Carbon framework
2471         if test "$USE_DARWIN" = 1; then
2472             system_zlib_h_ok="yes"
2473         else
2474             dnl we have troubles with ancient zlib versions (e.g. 1.0.4 is
2475             dnl known to not work) and although I don't know which is
2476             dnl the minimal required version it's safer to test for 1.1.4 as
2477             dnl it fixes a security problem in 1.1.3 -- and hopefully nobody
2478             dnl has anything more ancient (1.1.3 was released in July 1998)
2479             dnl anyhow
2480             AC_CACHE_CHECK([for zlib.h >= 1.1.4], ac_cv_header_zlib_h,
2481                 [AC_TRY_RUN(
2482                     dnl zlib.h defines ZLIB_VERSION="x.y.z"
2483                     [
2484                         #include <zlib.h>
2485                         #include <stdio.h>
2486
2487                         int main()
2488                         {
2489                             FILE *f=fopen("conftestval", "w");
2490                             if (!f) exit(1);
2491                             fprintf(f, "%s",
2492                                     ZLIB_VERSION[0] == '1' &&
2493                                     (ZLIB_VERSION[2] > '1' ||
2494                                     (ZLIB_VERSION[2] == '1' &&
2495                                      ZLIB_VERSION[4] >= '4')) ? "yes" : "no");
2496                             exit(0);
2497                         }
2498                     ],
2499                     ac_cv_header_zlib_h=`cat conftestval`,
2500                     ac_cv_header_zlib_h=no,
2501                     dnl cross-compiling: don't have an answer, try later
2502                     unset ac_cv_header_zlib_h
2503                 )]
2504             )
2505             dnl If the test above did not come up with a value (e.g. cross
2506             dnl compiling) then this should give a definitive answer
2507             AC_CHECK_HEADER(zlib.h)
2508
2509             system_zlib_h_ok=$ac_cv_header_zlib_h
2510         fi
2511
2512         if test "$system_zlib_h_ok" = "yes"; then
2513             AC_CHECK_LIB(z, deflate, ZLIB_LINK=" -lz")
2514         fi
2515
2516         if test "x$ZLIB_LINK" = "x" ; then
2517             if test "$wxUSE_ZLIB" = "sys" ; then
2518                 AC_MSG_ERROR([zlib library not found or too old! Use --with-zlib=builtin to use built-in version])
2519             else
2520                 AC_MSG_WARN([zlib library not found or too old, will use built-in instead])
2521                 wxUSE_ZLIB=builtin
2522             fi
2523         else
2524             dnl we are using the system library
2525             wxUSE_ZLIB=sys
2526         fi
2527     fi
2528 fi
2529
2530 dnl ------------------------------------------------------------------------
2531 dnl Check for png library
2532 dnl ------------------------------------------------------------------------
2533
2534 PNG_LINK=
2535 if test "$wxUSE_LIBPNG" != "no" ; then
2536     AC_DEFINE(wxUSE_LIBPNG)
2537
2538     if test "$wxUSE_MGL" = 1 -a "$wxUSE_LIBPNG" = "builtin" ; then
2539         AC_MSG_WARN([wxMGL doesn't work with builtin png library, will use MGL one instead])
2540         wxUSE_LIBPNG=sys
2541     fi
2542
2543     dnl for the check below to have a chance to succeed, we must already have
2544     dnl libz somewhere (don't do this when bulding wxMGL since its libpng
2545     dnl doesn't depend on zlib)
2546     if test "$wxUSE_MGL" != 1 -a "$wxUSE_LIBPNG" = "sys" -a "$wxUSE_ZLIB" != "sys" ; then
2547         AC_MSG_WARN([system png library doesn't work without system zlib, will use built-in instead])
2548         wxUSE_LIBPNG=builtin
2549     fi
2550
2551     if test "$wxUSE_MGL" != 1 ; then
2552         dnl Don't check for libpng when building wxMGL, libmgl contains it
2553         if test "$wxUSE_LIBPNG" = "sys" -o "$wxUSE_LIBPNG" = "yes" ; then
2554             dnl libpng version 0.9 is known to not work, if an even newer
2555             dnl version is required, just bump it up in the test below
2556             AC_CACHE_CHECK([for png.h > 0.90], ac_cv_header_png_h,
2557                 [AC_TRY_RUN(
2558                     dnl png.h defines PNG_LIBPNG_VER=number
2559                     [
2560                         #include <png.h>
2561                         #include <stdio.h>
2562
2563                         int main()
2564                         {
2565                             FILE *f=fopen("conftestval", "w");
2566                             if (!f) exit(1);
2567                             fprintf(f, "%s",
2568                                      PNG_LIBPNG_VER > 90 ? "yes" : "no");
2569                             exit(0);
2570                         }
2571                     ],
2572                     ac_cv_header_png_h=`cat conftestval`,
2573                     ac_cv_header_png_h=no,
2574                     dnl cross-compiling: test (later) if we have any png.h
2575                     unset ac_cv_header_png_h
2576                 )]
2577             )
2578             AC_CHECK_HEADER(png.h)
2579
2580             if test "$ac_cv_header_png_h" = "yes"; then
2581                 AC_CHECK_LIB(png, png_check_sig, PNG_LINK=" -lpng -lz", , [-lz -lm])
2582             fi
2583
2584             if test "x$PNG_LINK" = "x" ; then
2585                 if test "$wxUSE_LIBPNG" = "sys" ; then
2586                     AC_MSG_ERROR([system png library not found or too old! Use --with-libpng=builtin to use built-in version])
2587                 else
2588                     AC_MSG_WARN([system png library not found or too old, will use built-in instead])
2589                     wxUSE_LIBPNG=builtin
2590                 fi
2591             else
2592                 dnl we are using the system library
2593                 wxUSE_LIBPNG=sys
2594             fi
2595         fi
2596     fi
2597
2598     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS png"
2599 fi
2600
2601 dnl ------------------------------------------------------------------------
2602 dnl Check for jpeg library
2603 dnl ------------------------------------------------------------------------
2604
2605 JPEG_LINK=
2606 if test "$wxUSE_LIBJPEG" != "no" ; then
2607     AC_DEFINE(wxUSE_LIBJPEG)
2608
2609     if test "$wxUSE_MGL" = 1 -a "$wxUSE_LIBJPEG" = "builtin" ; then
2610         AC_MSG_WARN([wxMGL doesn't work with builtin jpeg library, will use MGL one instead])
2611         wxUSE_LIBJPEG=sys
2612     fi
2613
2614     if test "$wxUSE_MGL" != 1 ; then
2615         dnl Don't check for libjpeg when building wxMGL, libmgl contains it
2616         if test "$wxUSE_LIBJPEG" = "sys" -o "$wxUSE_LIBJPEG" = "yes" ; then
2617             dnl can't use AC_CHECK_HEADER as jconfig.h defines things like
2618             dnl HAVE_STDLIB_H which are already defined and this provokes
2619             dnl a compiler warning which configure considers as an error...
2620             AC_MSG_CHECKING(for jpeglib.h)
2621             AC_CACHE_VAL(ac_cv_header_jpeglib_h,
2622                 AC_TRY_COMPILE(
2623                     [
2624                         #undef HAVE_STDLIB_H
2625                         #include <stdio.h>
2626                         #include <jpeglib.h>
2627                     ],
2628                     [
2629                     ],
2630                     ac_cv_header_jpeglib_h=yes,
2631                     ac_cv_header_jpeglib_h=no
2632                 )
2633             )
2634             AC_MSG_RESULT($ac_cv_header_jpeglib_h)
2635
2636             if test "$ac_cv_header_jpeglib_h" = "yes"; then
2637                 AC_CHECK_LIB(jpeg, jpeg_read_header, JPEG_LINK=" -ljpeg")
2638             fi
2639
2640             if test "x$JPEG_LINK" = "x" ; then
2641                 if test "$wxUSE_LIBJPEG" = "sys" ; then
2642                     AC_MSG_ERROR([system jpeg library not found! Use --with-libjpeg=builtin to use built-in version])
2643                 else
2644                     AC_MSG_WARN([system jpeg library not found, will use built-in instead])
2645                     wxUSE_LIBJPEG=builtin
2646                 fi
2647             else
2648                 dnl we are using the system library
2649                 wxUSE_LIBJPEG=sys
2650             fi
2651         fi
2652     fi
2653 fi
2654
2655 dnl ------------------------------------------------------------------------
2656 dnl Check for tiff library
2657 dnl ------------------------------------------------------------------------
2658
2659 TIFF_LINK=
2660 TIFF_PREREQ_LINKS=-lm
2661 if test "$wxUSE_LIBTIFF" != "no" ; then
2662     AC_DEFINE(wxUSE_LIBTIFF)
2663
2664     if test "$wxUSE_LIBTIFF" = "sys" -o "$wxUSE_LIBTIFF" = "yes" ; then
2665         dnl libtiff may depend on libjpeg and libz so use them in the test
2666         dnl below or it would fail
2667         if test "$wxUSE_LIBJPEG" = "sys"; then
2668             TIFF_PREREQ_LINKS="$TIFF_PREREQ_LINKS $JPEG_LINK"
2669         fi
2670         if test "$wxUSE_ZLIB" = "sys"; then
2671             TIFF_PREREQ_LINKS="$TIFF_PREREQ_LINKS $ZLIB_LINK"
2672         fi
2673         AC_CHECK_HEADER(tiffio.h,
2674                         [
2675                             AC_CHECK_LIB(tiff, TIFFError,
2676                                          TIFF_LINK=" -ltiff",
2677                                          ,
2678                                          $TIFF_PREREQ_LINKS)
2679                         ]
2680                        )
2681
2682         if test "x$TIFF_LINK" = "x" ; then
2683             if test "$wxUSE_LIBTIFF" = "sys" ; then
2684                 AC_MSG_ERROR([system tiff library not found! Use --with-libtiff=builtin to use built-in version])
2685             else
2686                 AC_MSG_WARN([system tiff library not found, will use built-in instead])
2687                 wxUSE_LIBTIFF=builtin
2688             fi
2689         else
2690             dnl we are using the system library
2691             wxUSE_LIBTIFF=sys
2692         fi
2693     fi
2694 fi
2695
2696 dnl ------------------------------------------------------------------------
2697 dnl Check for expat libraries
2698 dnl ------------------------------------------------------------------------
2699
2700 if test "$wxUSE_WCHAR_T" != "yes"; then
2701     if test "$wxUSE_EXPAT" != "no"; then
2702         AC_MSG_WARN([wxWidgets requires wchar_t to use expat, disabling])
2703         wxUSE_EXPAT=no
2704     fi
2705     if test "$wxUSE_XML" != "no"; then
2706         AC_MSG_WARN([wxWidgets requires wchar_t to use xml, disabling])
2707         wxUSE_XML=no
2708     fi
2709 fi
2710
2711 if test "$wxUSE_EXPAT" != "no"; then
2712     wxUSE_XML=yes
2713     AC_DEFINE(wxUSE_EXPAT)
2714     AC_DEFINE(wxUSE_XML)
2715
2716     if test "$wxUSE_EXPAT" = "sys" -o "$wxUSE_EXPAT" = "yes" ; then
2717         AC_CHECK_HEADER([expat.h], [found_expat_h=1])
2718         if test "x$found_expat_h" = "x1"; then
2719             dnl Expat 1.95.6 comes with broken expat.h:
2720             AC_CACHE_CHECK([if expat.h is valid C++ header],
2721                 wx_cv_expat_is_not_broken,
2722                 [
2723                 AC_TRY_COMPILE([#include <expat.h>],[],
2724                     wx_cv_expat_is_not_broken=yes,
2725                     wx_cv_expat_is_not_broken=no
2726                 )
2727                 ]
2728             )
2729             if test "$wx_cv_expat_is_not_broken" = "yes" ; then
2730                 AC_CHECK_LIB(expat, XML_ParserCreate, EXPAT_LINK=" -lexpat")
2731             fi
2732         fi
2733         if test "x$EXPAT_LINK" = "x" ; then
2734             if test "$wxUSE_EXPAT" = "sys" ; then
2735                 AC_MSG_ERROR([system expat library not found! Use --with-expat=builtin to use built-in version])
2736             else
2737                 AC_MSG_WARN([system expat library not found, will use built-in instead])
2738                 wxUSE_EXPAT=builtin
2739             fi
2740         else
2741             dnl we are using the system library
2742             wxUSE_EXPAT=sys
2743         fi
2744     fi
2745     if test "$wxUSE_EXPAT" = "builtin" ; then
2746         dnl Expat needs this:
2747         AC_CONFIG_SUBDIRS([src/expat])
2748     fi
2749 fi
2750
2751
2752 dnl ------------------------------------------------------------------------
2753 dnl Check for libmspack
2754 dnl ------------------------------------------------------------------------
2755
2756 if test "$wxUSE_LIBMSPACK" != "no"; then
2757     AC_CHECK_HEADER([mspack.h], [found_mspack_h=1])
2758     if test "x$found_mspack_h" = "x1"; then
2759         AC_CHECK_LIB(mspack, mspack_create_chm_decompressor,
2760                      MSPACK_LINK=" -lmspack")
2761     fi
2762     if test "x$MSPACK_LINK" = "x" ; then
2763         wxUSE_LIBMSPACK=no
2764     fi
2765 fi
2766
2767 if test "$wxUSE_LIBMSPACK" != "no"; then
2768     AC_DEFINE(wxUSE_LIBMSPACK)
2769 fi
2770
2771
2772 dnl ----------------------------------------------------------------
2773 dnl search for toolkit (widget sets)
2774 dnl ----------------------------------------------------------------
2775
2776 AFMINSTALL=
2777 WIN32INSTALL=
2778
2779 TOOLKIT=
2780 TOOLKIT_INCLUDE=
2781 WIDGET_SET=
2782
2783 dnl are we building for a win32 target environment?
2784 dnl If so, setup common stuff needed for both GUI and Base libs.
2785 if test "$USE_WIN32" = 1 ; then
2786     AC_CHECK_HEADERS(w32api.h)
2787     AC_CHECK_HEADER(windows.h, [],
2788     [
2789         AC_MSG_ERROR(please set CFLAGS to contain the location of windows.h)
2790     ])
2791
2792     dnl --- FIXME: This is still a somewhat random list of libs,
2793     dnl ---        some of them should probably be included conditionally.
2794     LIBS="$LIBS -lwinspool -lwinmm -lshell32 -lcomctl32 -lcomdlg32 -lctl3d32 -ladvapi32 -lwsock32 -lgdi32"
2795
2796     if test "$wxUSE_ACCESSIBILITY" = "yes" ; then
2797         LIBS="$LIBS -loleacc"
2798     fi
2799
2800     case "${host}" in
2801         *-*-cygwin* )
2802             dnl Cygwin doesn't include these by default
2803             LIBS="$LIBS -lkernel32 -luser32"
2804     esac
2805
2806     dnl add extra odbc libs if we have compiled in odbc
2807     if test "$wxUSE_ODBC" = "sys" ; then
2808         wxUSE_ODBC = "yes"
2809     fi
2810     if test "$wxUSE_ODBC" = "yes" ; then
2811         LIBS=" -lodbc32 -lole32 -loleaut32 $LIBS"
2812         AC_DEFINE(wxUSE_ODBC)
2813     fi
2814     dnl We might want to abort here if wxUSE_ODBC="builtin" isn't supported on msw.
2815
2816     dnl This one is still used by some sample makefiles.
2817     RESFLAGS="--include-dir \$(top_srcdir)/include --include-dir \$(top_srcdir)/\$(program_dir) --define __WIN32__ --define __WIN95__ --define __GNUWIN32__"
2818     RESPROGRAMOBJ="\$(PROGRAM)_resources.o"
2819
2820     dnl This lot we export to wx-config.  It must add the relevant
2821     dnl include directories at the point when they can be known.
2822     dnl (but are these (still) required anyway?)
2823     WXCONFIG_RESFLAGS="--define __WIN32__ --define __WIN95__ --define __GNUWIN32__"
2824
2825     dnl install Win32-specific files in "make install"
2826     WIN32INSTALL=win32install
2827 fi
2828
2829 if test "$wxUSE_GUI" = "yes"; then
2830     USE_GUI=1
2831
2832     GUI_TK_LIBRARY=
2833
2834     WXGTK12=
2835     WXGTK127=
2836     WXGTK20=
2837     WXGPE=
2838
2839     if test "$wxUSE_COCOA" = 1 ; then
2840         if test "$wxUSE_PRINTING_ARCHITECTURE" = "yes"; then
2841             AC_MSG_WARN([Printing not supported under wxCocoa yet, disabled])
2842             wxUSE_PRINTING_ARCHITECTURE=no
2843         fi
2844         if test "$wxUSE_DRAG_AND_DROP" = "yes"; then
2845             AC_MSG_WARN([Drag and Drop not supported under wxCocoa yet, disabled])
2846             wxUSE_DRAG_AND_DROP=no
2847         fi
2848         if test "$wxUSE_DRAGIMAGE" = "yes"; then
2849             AC_MSG_WARN([Drag Image and DandD not supported under wxCocoa yet, disabled])
2850             wxUSE_DRAGIMAGE=no
2851         fi
2852     fi
2853
2854     if test "$wxUSE_MSW" = 1 ; then
2855         TOOLKIT=MSW
2856         GUIDIST=MSW_DIST
2857
2858         dnl -mwindows causes a heap of other default gui libs to be linked in.
2859         case "${host}" in
2860             *-*-mingw32* )
2861                 WXCONFIG_LDFLAGS_GUI="$LDFLAGS -Wl,--subsystem,windows -mwindows"
2862         esac
2863     fi
2864
2865     if test "$wxUSE_GTK" = 1; then
2866         dnl GTK+ test program must be compiled with C compiler
2867         AC_LANG_PUSH(C)
2868
2869         AC_MSG_CHECKING([for GTK+ version])
2870
2871         gtk_version_cached=1
2872         AC_CACHE_VAL(wx_cv_lib_gtk,
2873             [
2874                 dnl stupid GTK+ AM macros produce their own messages, so we
2875                 dnl have to pass to the next line
2876                 gtk_version_cached=0
2877                 AC_MSG_RESULT()
2878
2879                 dnl we must link against lgthread unless the user
2880                 dnl used --disable-threads
2881                 GTK_MODULES=
2882                 if test "$wxUSE_THREADS" = "yes"; then
2883                     GTK_MODULES=gthread
2884                 fi
2885
2886                 dnl detect GTK2
2887                 wx_cv_lib_gtk=
2888                 if test "x$wxGTK_VERSION" != "x1"
2889                 then
2890                     dnl The gthread.pc that ships with solaris returns '-mt',
2891                     dnl it's correct for Sun CC, but gcc requires '-pthreads'.
2892                     dnl So disable the compile check and remove the -mt below.
2893                     case "${host}" in
2894                         *-*-solaris2* )
2895                             if test "$wxUSE_THREADS" = "yes" -a "$GCC" = yes; then
2896                             enable_gtktest=no
2897                             fi
2898                     esac
2899
2900                     AM_PATH_GTK_2_0(2.0.0, wx_cv_lib_gtk=2.0, , $GTK_MODULES)
2901
2902                     dnl Remove the '-mt' for gcc on solaris
2903                     case "${host}" in
2904                         *-*-solaris2* )
2905                             if test "$wxUSE_THREADS" = "yes" -a "$GCC" = yes; then
2906                                 GTK_CFLAGS=`echo $GTK_CFLAGS | sed 's/-mt//'`
2907                                 GTK_LIBS=`echo $GTK_LIBS | sed 's/-mt//'`
2908                             fi
2909                             dnl solaris also requires -lX11 for static lib
2910                             if test "$wxUSE_SHARED" != "yes"; then
2911                                 GTK_LIBS="$GTK_LIBS -lX11"
2912                             fi
2913                     esac
2914                 fi
2915
2916                 dnl detect GTK1.x
2917                 if test -z "$wx_cv_lib_gtk"; then
2918                     if test "x$wxGTK_VERSION" = "x1" -o "x$wxGTK_VERSION" = "xany" ; then
2919                         AM_PATH_GTK(1.2.7, wx_cv_lib_gtk=1.2.7, , $GTK_MODULES)
2920
2921                         if test -z "$wx_cv_lib_gtk"; then
2922                             AM_PATH_GTK(1.2.3, wx_cv_lib_gtk=1.2.3, , $GTK_MODULES)
2923                         fi
2924                     fi
2925                 fi
2926
2927                 if test -z "$wx_cv_lib_gtk"; then
2928                     dnl looks better in AC_MSG_RESULT
2929                     wx_cv_lib_gtk=none
2930                 else
2931                     dnl we need to cache GTK_CFLAGS and GTK_LIBS for the
2932                     dnl subsequent runs
2933                     wx_cv_cflags_gtk=$GTK_CFLAGS
2934                     wx_cv_libs_gtk=`echo $GTK_LIBS | sed -e 's/ -l[[^ ]]*cairo[[^ ]]*//g'`
2935                 fi
2936             ]
2937         )
2938
2939         dnl if it wasn't cached, the messages from AM_PATH_GTK() above are
2940         dnl enough
2941         if test "$gtk_version_cached" = 1; then
2942             AC_MSG_RESULT($wx_cv_lib_gtk)
2943         fi
2944
2945         case "$wx_cv_lib_gtk" in
2946             2.0)    WXGTK20=1
2947                     TOOLKIT_VERSION=2
2948                     ;;
2949             1.2.7)  WXGTK127=1
2950                     WXGTK12=1
2951                     ;;
2952             1.2.3)  WXGTK12=1
2953                     ;;
2954             *)      AC_MSG_ERROR([
2955 The development files for GTK+ were not found. For GTK+ 2, please
2956 ensure that pkg-config is in the path and that gtk+-2.0.pc is
2957 installed. For GTK+ 1.2 please check that gtk-config is in the path,
2958 and that the version is 1.2.3 or above. Also check that the
2959 libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
2960 --libs' are in the LD_LIBRARY_PATH or equivalent.
2961                             ])
2962                     ;;
2963         esac
2964
2965         if test "$WXGTK20" = 1; then
2966             save_CFLAGS="$CFLAGS"
2967             save_LIBS="$LIBS"
2968             CFLAGS="$wx_cv_cflags_gtk $CFLAGS"
2969             LIBS="$LIBS $wx_cv_libs_gtk"
2970
2971             dnl gtk_icon_size_lookup is not available in the GTK+ headers
2972             dnl that have shipped with some versions of Sun's JDS. Not using
2973             dnl AC_CHECK_FUNCS here since it only checks the function exists
2974             dnl in the lib (not the header).
2975             AC_MSG_CHECKING([if gtk_icon_size_lookup is missing])
2976             AC_TRY_COMPILE([
2977                             #include <gtk/gtk.h>
2978                            ],
2979                            [
2980                             void *f = gtk_icon_size_lookup;
2981                            ],
2982                            [
2983                             AC_MSG_RESULT([no])
2984                            ],
2985                            [
2986                             AC_DEFINE(NEED_GTK_ICON_SIZE_LOOKUP)
2987                             AC_MSG_RESULT([yes])
2988                            ])
2989
2990             dnl test if we have at least GTK+ 2.6:
2991             AC_MSG_CHECKING([if GTK+ is version >= 2.6])
2992             AC_TRY_COMPILE([
2993                             #include <gtk/gtk.h>
2994                            ],
2995                            [
2996                             #if !GTK_CHECK_VERSION(2,6,0)
2997                             Not GTK+ 2.6
2998                             #endif
2999                            ],
3000                            [
3001                             AC_DEFINE(__WXGTK26__)
3002                             AC_DEFINE(__WXGTK24__)
3003                             AC_MSG_RESULT([yes])
3004                             ac_wxgtk26=1
3005                            ],
3006                            [
3007                             AC_MSG_RESULT([no])
3008                             ac_wxgtk26=0
3009                            ])
3010
3011             if test "$ac_wxgtk26" = 0; then
3012             dnl test if we have at least GTK+ 2.4:
3013             AC_MSG_CHECKING([if GTK+ is version >= 2.4])
3014             AC_TRY_COMPILE([
3015                             #include <gtk/gtk.h>
3016                            ],
3017                            [
3018                             #if !GTK_CHECK_VERSION(2,4,0)
3019                             Not GTK+ 2.4
3020                             #endif
3021                            ],
3022                            [
3023                             AC_DEFINE(__WXGTK24__)
3024                             AC_MSG_RESULT([yes])
3025                            ],
3026                            [
3027                             AC_MSG_RESULT([no])
3028                            ])
3029             fi
3030
3031             CFLAGS="$save_CFLAGS"
3032             LIBS="$save_LIBS"
3033         else
3034             if test "$wxUSE_UNICODE" = "yes"; then
3035                 AC_MSG_WARN([Unicode configuration not supported with GTK+ 1.x])
3036                 wxUSE_UNICODE=no
3037             fi
3038         fi
3039
3040         AC_LANG_POP
3041
3042         dnl we need poll() in src/gtk/app.cpp (we know that Darwin doesn't
3043         dnl have it but we do the check for the others)
3044         if test "$USE_DARWIN" != 1; then
3045             AC_CHECK_FUNCS(poll)
3046         fi
3047
3048         TOOLKIT_INCLUDE="$wx_cv_cflags_gtk"
3049         GUI_TK_LIBRARY="$wx_cv_libs_gtk $GUI_TK_LIBRARY"
3050
3051         AFMINSTALL=afminstall
3052         TOOLKIT=GTK
3053         GUIDIST=GTK_DIST
3054
3055         dnl test for XIM support in libgdk
3056         AC_CHECK_LIB(gdk, gdk_im_open, AC_DEFINE(HAVE_XIM))
3057
3058
3059         dnl test for external libxpm if we're configured to use it
3060         if test "$wxUSE_GPE" = "yes"; then
3061             AC_MSG_CHECKING(for gpewidget library)
3062             WX_PATH_FIND_LIBRARIES($SEARCH_LIB,gpewidget)
3063             if test "$ac_find_libraries" != "" ; then
3064                 WX_LINK_PATH_EXIST($ac_find_libraries,$GUI_TK_LIBRARY)
3065                 dnl -lgpewidget must be before all GTK libs and
3066                 dnl we guess its path from the prefix
3067                 GUI_TK_LIBRARY="-L${prefix}/lib -lgpewidget $GUI_TK_LIBRARY"
3068                 WXGPE=1
3069                 AC_MSG_RESULT([found in $ac_find_libraries])
3070             else
3071                 AC_MSG_RESULT(not found)
3072             fi
3073
3074             dnl AC_MSG_CHECKING(for gpe library)
3075             dnl WX_PATH_FIND_LIBRARIES($SEARCH_LIB,gpe)
3076             dnl if test "$ac_find_libraries" != "" ; then
3077             dnl     WX_LINK_PATH_EXIST($ac_find_libraries,$GUI_TK_LIBRARY)
3078             dnl     GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lgpe"
3079             dnl     AC_MSG_RESULT(found in $ac_find_libraries)
3080             dnl else
3081             dnl     AC_MSG_RESULT(not found)
3082             dnl fi
3083         fi
3084     fi
3085
3086     if test "$wxUSE_MGL" = 1; then
3087        AC_MSG_CHECKING(for SciTech MGL library)
3088         if test "x$MGL_ROOT" = x ; then
3089             AC_MSG_RESULT(not found)
3090             AC_MSG_ERROR([Cannot find MGL library. Make sure MGL_ROOT is set.])
3091         else
3092             AC_MSG_RESULT($MGL_ROOT)
3093         fi
3094
3095         AC_MSG_CHECKING(for libmgl location)
3096         dnl Find MGL library that we want
3097         dnl FIXME_MGL - test for MGL variants for freebsd etc.;
3098         dnl             and for non-x86 versions
3099         case "${host}" in
3100             *-*-linux* )
3101               dnl glibc.so, glibc are for older versions of MGL,
3102               dnl x86/a, x86/so are used by >= 5.0 R11
3103               if test "x$wxUSE_SHARED" = xyes ; then
3104                   mgl_os_candidates="linux/gcc/x86/so linux/gcc/x86/a linux/gcc/glibc.so linux/gcc/glibc"
3105               else
3106                   mgl_os_candidates="linux/gcc/x86/a linux/gcc/x86/so linux/gcc/glibc linux/gcc/glibc.so"
3107               fi
3108               ;;
3109             *-pc-msdosdjgpp )
3110               mgl_os_candidates="dos32/dj2"
3111               ;;
3112             *)
3113               AC_MSG_ERROR(This system type ${host} is not yet supported by wxMGL.)
3114         esac
3115
3116         mgl_lib_type=""
3117         mgl_os=""
3118
3119         for mgl_os_i in $mgl_os_candidates ; do
3120             if test "x$mgl_os" = x ; then
3121                 if test "$wxUSE_DEBUG_FLAG" = yes ; then
3122                     if test -f $MGL_ROOT/lib/debug/$mgl_os_i/libmgl.a -o \
3123                             -f $MGL_ROOT/lib/debug/$mgl_os_i/libmgl.so; then
3124                         mgl_lib_type=debug
3125                         mgl_os=$mgl_os_i
3126                     fi
3127                 fi
3128                 if test "x$mgl_lib_type" = x ; then
3129                     if test -f $MGL_ROOT/lib/release/$mgl_os_i/libmgl.a -o \
3130                             -f $MGL_ROOT/lib/release/$mgl_os_i/libmgl.so; then
3131                         mgl_lib_type=release
3132                         mgl_os=$mgl_os_i
3133                     fi
3134                 fi
3135             fi
3136         done
3137
3138         if test "x$mgl_os" = x ; then
3139             AC_MSG_RESULT(not found)
3140             AC_MSG_ERROR([Cannot find MGL libraries, make sure they are compiled.])
3141         fi
3142         AC_MSG_RESULT("$MGL_ROOT/lib/$mgl_lib_type/$mgl_os")
3143
3144         wxUSE_UNIVERSAL="yes"
3145
3146         TOOLKIT_INCLUDE="-I$MGL_ROOT/include"
3147         GUI_TK_LIBRARY="-L$MGL_ROOT/lib/$mgl_lib_type/$mgl_os -lmgl -lmglcpp -lpm"
3148
3149         AFMINSTALL=afminstall
3150         TOOLKIT=MGL
3151         GUIDIST=MGL_DIST
3152     fi
3153
3154     if test "$wxUSE_MICROWIN" = 1; then
3155         AC_MSG_CHECKING(for MicroWindows)
3156         if test "x$MICROWINDOWS" = x ; then
3157             AC_MSG_RESULT(not found)
3158             AC_MSG_ERROR([Cannot find MicroWindows library. Make sure MICROWINDOWS is set.])
3159         else
3160             AC_MSG_RESULT($MICROWINDOWS)
3161         fi
3162
3163         if test -f $MICROWINDOWS/lib/libmwin.a; then
3164             AC_MSG_RESULT(MicroWindows' libraries found.)
3165         else
3166             AC_MSG_ERROR([Cannot find MicroWindows libraries, make sure they are compiled.])
3167         fi
3168
3169         TOOLKIT_INCLUDE="-I$MICROWINDOWS/include"
3170         GUI_TK_LIBRARY="-L$MICROWINDOWS/lib -lmwin -lmwengine -mwfonts -mwdrivers -mwinlib"
3171
3172         wxUSE_UNIVERSAL="yes"
3173
3174         AFMINSTALL=afminstall
3175         TOOLKIT=MICROWIN
3176         GUIDIST=MICROWIN_DIST
3177
3178         TOOLCHAIN_DEFS="${TOOLCHAIN_DEFS} -D__WXMSW__ -D__WIN95__ -D__WIN32__ -DMWIN -DMICROWIN_NOCONTROLS -DMICROWIN_TODO=1"
3179     fi
3180
3181     dnl common part of X11 and Motif port checks
3182     if test "$wxUSE_X11" = 1 -o "$wxUSE_MOTIF" = 1; then
3183         dnl use standard macros to check for X headers/libs, this brings
3184         dnl support for the standard configure options --x-includes,
3185         dnl --x-libraries and --no-x
3186         AC_PATH_XTRA
3187
3188         if test "$no_x" = "yes"; then
3189           AC_MSG_ERROR([X11 not found, please use --x-includes and/or --x-libraries options (see config.log for details)])
3190         fi
3191
3192         dnl for some reason AC_PATH_XTRA seems to add -INONE and -LNONE (and
3193         dnl also sometimes -RNONE) to X_CFLAGS and X_LIBS respectively, filter
3194         dnl this junk out
3195         GUI_TK_LIBRARY=`echo $X_LIBS | sed 's/ -LNONE//' | sed 's/ -RNONE//'`
3196         TOOLKIT_INCLUDE=`echo $X_CFLAGS | sed 's/ -INONE//'`
3197         AFMINSTALL=afminstall
3198         COMPILED_X_PROGRAM=0
3199
3200     fi
3201
3202     if test "$wxUSE_X11" = 1; then
3203         if test "$wxUSE_NANOX" = "yes"; then
3204             AC_MSG_CHECKING(for MicroWindows/NanoX distribution)
3205             if test "x$MICROWIN" = x ; then
3206                 AC_MSG_RESULT(not found)
3207                 AC_MSG_ERROR([Cannot find MicroWindows library. Make sure MICROWIN is set.])
3208             else
3209                 AC_MSG_RESULT($MICROWIN)
3210                 AC_DEFINE(wxUSE_NANOX)
3211             fi
3212         fi
3213
3214         if test "$wxUSE_UNICODE" = "yes"; then
3215                 PKG_CHECK_MODULES(PANGOX, pangox,
3216                     [
3217                         CXXFLAGS="$PANGOX_CFLAGS $CXXFLAGS"
3218                         GUI_TK_LIBRARY="$GUI_TK_LIBRARY $PANGOX_LIBS"
3219                     ],
3220                     [
3221                         AC_MSG_ERROR([pangox library not found, library cannot be compiled in Unicode mode])
3222                     ]
3223                 )
3224                 PKG_CHECK_MODULES(PANGOFT2, pangoft2,
3225                     [
3226                         CXXFLAGS="$PANGOFT2_CFLAGS $CXXFLAGS"
3227                         GUI_TK_LIBRARY="$GUI_TK_LIBRARY $PANGOFT2_LIBS"
3228                     ],
3229                     [
3230                         AC_MSG_WARN([pangoft2 library not found, library will be compiled without printing support])
3231                         wxUSE_PRINTING_ARCHITECTURE="no"
3232                     ]
3233                 )
3234                 PKG_CHECK_MODULES(PANGOXFT, pangoxft,
3235                     [
3236                         AC_DEFINE(HAVE_PANGO_XFT)
3237                         CXXFLAGS="$PANGOXFT_CFLAGS $CXXFLAGS"
3238                         GUI_TK_LIBRARY="$GUI_TK_LIBRARY $PANGOXFT_LIBS"
3239                     ],
3240                     [
3241                         AC_MSG_WARN([pangoxft library not found, library will be compiled without anti-aliasing support])
3242                     ]
3243                 )
3244                 save_CXXFLAGS="$CXXFLAGS"
3245                 save_LIBS="$LIBS"
3246                 CXXFLAGS="$PANGOX_CFLAGS $CXXFLAGS"
3247                 LIBS="$LIBS $PANGOX_LIBS"
3248                 AC_CHECK_FUNCS([pango_font_family_is_monospace])
3249                 CXXFLAGS="$save_CXXFLAGS"
3250                 LIBS="$save_LIBS"
3251         fi
3252
3253         wxUSE_UNIVERSAL="yes"
3254
3255         if test "$wxUSE_NANOX" = "yes"; then
3256             TOOLKIT_INCLUDE="-I\$(top_srcdir)/include/wx/x11/nanox -I\$(MICROWIN)/src/include $TOOLKIT_INCLUDE"
3257             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"
3258             GUI_TK_LIBRARY="$GUI_TK_LIBRARY \$(MICROWIN)/src/lib/libnano-X.a"
3259         else
3260             GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lX11"
3261         fi
3262
3263         TOOLKIT=X11
3264         GUIDIST=X11_DIST
3265     fi
3266
3267     if test "$wxUSE_MOTIF" = 1; then
3268         if test "$wxUSE_UNICODE" = "yes"; then
3269             AC_MSG_ERROR([Unicode configuration not supported with Motif])
3270         fi
3271
3272         AC_MSG_CHECKING(for Motif/Lesstif headers)
3273         WX_PATH_FIND_INCLUDES($SEARCH_INCLUDE, Xm/Xm.h)
3274         if test "$ac_find_includes" != "" ; then
3275             AC_MSG_RESULT(found in $ac_find_includes)
3276             WX_INCLUDE_PATH_EXIST($ac_find_includes, $TOOLKIT_INCLUDE)
3277             TOOLKIT_INCLUDE="$TOOLKIT_INCLUDE$ac_path_to_include"
3278         else
3279             save_CXXFLAGS=$CXXFLAGS
3280             CXXFLAGS="$TOOLKIT_INCLUDE $CXXFLAGS"
3281
3282             AC_TRY_COMPILE(
3283                 [
3284                     #include <Xm/Xm.h>
3285                 ],
3286                 [
3287                     int version;
3288                     version = xmUseVersion;
3289                 ],
3290                 [
3291                     AC_MSG_RESULT(found in default search path)
3292                     COMPILED_X_PROGRAM=1
3293                 ],
3294                 [
3295                     AC_MSG_RESULT(no)
3296                     AC_MSG_ERROR(please set CPPFLAGS to contain the location of Xm/Xm.h)
3297                 ]
3298             )
3299
3300             CXXFLAGS=$save_CXXFLAGS
3301         fi
3302
3303
3304         AC_MSG_CHECKING(for Motif/Lesstif library)
3305         WX_PATH_FIND_LIBRARIES($SEARCH_LIB, Xm)
3306
3307         if test "x$ac_find_libraries" != "x" ; then
3308             AC_MSG_RESULT(found in $ac_find_libraries)
3309
3310             WX_LINK_PATH_EXIST($ac_find_libraries, $GUI_TK_LIBRARY)
3311             GUI_TK_LIBRARY="$GUI_TK_LIBRARY$ac_path_to_link"
3312         else
3313             dnl it might happen that we found headers in one of the standard
3314             dnl paths but the libs are elsewhere but still in default (linker)
3315             dnl path -- try to compile a test program to check for this
3316             save_CXXFLAGS=$CXXFLAGS
3317             CXXFLAGS="$TOOLKIT_INCLUDE $CXXFLAGS"
3318             save_LIBS="$LIBS"
3319             LIBS="$GUI_TK_LIBRARY -lXm -lXmu -lXext -lX11"
3320
3321             AC_TRY_LINK(
3322                 [
3323                     #include <Xm/Xm.h>
3324                 ],
3325                 [
3326                     int version;
3327                     version = xmUseVersion;
3328                 ],
3329                 [
3330                     AC_MSG_RESULT(found in default search path)
3331                     COMPILED_X_PROGRAM=1
3332                 ],
3333                 [
3334                     AC_MSG_RESULT(no)
3335                     AC_MSG_ERROR(please set LDFLAGS to contain the location of libXm)
3336                 ]
3337             )
3338
3339             CXXFLAGS=$save_CXXFLAGS
3340             LIBS="$save_LIBS"
3341         fi
3342
3343         AC_MSG_CHECKING([if we need -lXp and/or -lSM -lICE])
3344         libp_link=""
3345         libsm_ice_link=""
3346         libs_found=0
3347         for libp in "" " -lXp"; do
3348             if test "$libs_found" = "0"; then
3349                 for libsm_ice in "" " -lSM -lICE"; do
3350                     if test "$libs_found" = "0"; then
3351                         save_LIBS="$LIBS"
3352                         LIBS="$GUI_TK_LIBRARY -lXm ${libp} -lXmu -lXext -lXt${libsm_ice} -lX11"
3353                         save_CXXFLAGS=$CXXFLAGS
3354                         CXXFLAGS="$TOOLKIT_INCLUDE $CXXFLAGS"
3355
3356                         AC_TRY_LINK(
3357                             [
3358                                 #include <Xm/Xm.h>
3359                                 #include <Xm/List.h>
3360                             ],
3361                             [
3362                                 XmString string = NULL;
3363                                 Widget w = NULL;
3364                                 int position = 0;
3365                                 XmListAddItem(w, string, position);
3366                             ],
3367                             [
3368                                 libp_link="$libp"
3369                                 libsm_ice_link="$libsm_ice"
3370                                 AC_MSG_RESULT(
3371                                     [need${libp_link}${libsm_ice_link}])
3372                                 libs_found=1
3373                             ], []
3374                         )
3375
3376                         LIBS="$save_LIBS"
3377                         CXXFLAGS=$save_CXXFLAGS
3378                     fi
3379                 done
3380             fi
3381         done
3382
3383         if test "$libs_found" = "0"; then
3384             AC_MSG_RESULT([can't find the right libraries])
3385             AC_MSG_ERROR([can't link a simple motif program])
3386         fi
3387
3388         dnl this seems to be needed under IRIX and shouldn't do any harm
3389         dnl elsewhere
3390         AC_CHECK_LIB(Sgm, [SgCreateList], [libsgm_link=" -lSgm"])
3391
3392         save_CXXFLAGS=$CXXFLAGS
3393         CXXFLAGS="$TOOLKIT_INCLUDE $CXXFLAGS"
3394
3395         AC_CACHE_CHECK([for Motif 2],
3396             wx_cv_lib_motif2,
3397             AC_TRY_COMPILE([
3398                             #include <Xm/Xm.h>
3399                            ],
3400                            [
3401                             #if XmVersion < 2000
3402                             Not Motif 2
3403                             #endif
3404                            ],
3405                            wx_cv_lib_motif2="yes",
3406                            wx_cv_lib_motif2="no"))
3407         if test "$wx_cv_lib_motif2" = "yes"; then
3408             AC_DEFINE(__WXMOTIF20__,1)
3409         else
3410             AC_DEFINE(__WXMOTIF20__,0)
3411         fi
3412
3413         AC_CACHE_CHECK([whether Motif is Lesstif],
3414             wx_cv_lib_lesstif,
3415             AC_TRY_COMPILE([
3416                             #include <Xm/Xm.h>
3417                            ],
3418                            [
3419                             #if !defined(LesstifVersion) || LesstifVersion <= 0
3420                             Not Lesstif
3421                             #endif
3422                            ],
3423                            wx_cv_lib_lesstif="yes",
3424                            wx_cv_lib_lesstif="no")
3425         )
3426         if test "$wx_cv_lib_lesstif" = "yes"; then
3427             AC_DEFINE(__WXLESSTIF__,1)
3428         else
3429             AC_DEFINE(__WXLESSTIF__,0)
3430         fi
3431
3432         CXXFLAGS=$save_CXXFLAGS
3433
3434         GUI_TK_LIBRARY="$GUI_TK_LIBRARY${libsgm_link} -lXm${libp_link} -lXmu -lXext -lXt${libsm_ice_link} -lX11"
3435         TOOLKIT=MOTIF
3436         GUIDIST=MOTIF_DIST
3437     fi
3438
3439     dnl more tests common to X11 and Motif:
3440     if test "$wxUSE_X11" = 1 -o "$wxUSE_MOTIF" = 1; then
3441         dnl test for external libxpm if we're configured to use it
3442         if test "$wxUSE_LIBXPM" = "sys"; then
3443             AC_MSG_CHECKING(for Xpm library)
3444             WX_PATH_FIND_LIBRARIES($SEARCH_LIB,Xpm)
3445             if test "$ac_find_libraries" != "" ; then
3446                 WX_LINK_PATH_EXIST($ac_find_libraries,$GUI_TK_LIBRARY)
3447                 GUI_TK_LIBRARY="$GUI_TK_LIBRARY$ac_path_to_link"
3448                 AC_MSG_RESULT(found in $ac_find_libraries)
3449
3450                 AC_CACHE_CHECK([for X11/xpm.h],
3451                     wx_cv_x11_xpm_h,
3452                     [
3453                         save_CXXFLAGS=$CXXFLAGS
3454                         CXXFLAGS="$TOOLKIT_INCLUDE $CXXFLAGS"
3455
3456                         AC_TRY_COMPILE(
3457                             [
3458                                 #include <X11/xpm.h>
3459                             ],
3460                             [
3461                                 int version;
3462                                 version = XpmLibraryVersion();
3463                             ],
3464                             wx_cv_x11_xpm_h=yes,
3465                             wx_cv_x11_xpm_h=no
3466                         )
3467
3468                         CXXFLAGS=$save_CXXFLAGS
3469                     ]
3470                 )
3471
3472                 if test $wx_cv_x11_xpm_h = "yes"; then
3473                     GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lXpm"
3474                     AC_DEFINE(wxHAVE_LIB_XPM)
3475                 else
3476                     AC_MSG_WARN([built-in less efficient XPM decoder will be used])
3477                 fi
3478             fi
3479
3480         fi
3481
3482         dnl XShapeQueryExtension checks: first the library, then prototype
3483         AC_CHECK_LIB([Xext], [XShapeQueryExtension],
3484                      [
3485                       GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lXext"
3486                       wxHAVE_XEXT_LIB=1
3487                      ],
3488                      [], [$GUI_TK_LIBRARY -lX11])
3489
3490         if test "$wxHAVE_XEXT_LIB" = 1; then
3491             save_CXXFLAGS="$CXXFLAGS"
3492             CXXFLAGS="$TOOLKIT_INCLUDE $CXXFLAGS"
3493
3494             AC_MSG_CHECKING([for X11/extensions/shape.h])
3495             AC_TRY_COMPILE([
3496                             #include <X11/Xlib.h>
3497                             #include <X11/extensions/shape.h>
3498                            ],
3499                            [
3500                             int dummy1, dummy2;
3501                             XShapeQueryExtension((Display*)NULL,
3502                                                  (int*)NULL, (int*)NULL);
3503                            ],
3504                            [
3505                             AC_DEFINE(HAVE_XSHAPE)
3506                             AC_MSG_RESULT([found])
3507                            ],
3508                            [
3509                             AC_MSG_RESULT([not found])
3510                            ])
3511             CXXFLAGS="$save_CXXFLAGS"
3512
3513         fi
3514     fi
3515
3516     if test "$wxUSE_MAC" = 1; then
3517         AC_MSG_CHECKING([for compiler syntax to enable Pascal strings])
3518         if test "$GCC" = yes; then
3519             AC_MSG_RESULT([gcc])
3520             CPPFLAGS_PASCAL="-fpascal-strings"
3521         elif test "`echo $CXX | sed -e 's@.*/@@'`" = "xlC"; then
3522             AC_MSG_RESULT([xlc])
3523             CPPFLAGS_PASCAL="-qmacpstr"
3524         else
3525             AC_MSG_RESULT([none])
3526         fi
3527
3528         if test "x$wxUSE_UNIX" = "xyes"; then
3529             CPPFLAGS="$CPPFLAGS_PASCAL -I\${top_srcdir}/src/mac/carbon/morefilex -I/Developer/Headers/FlatCarbon $CPPFLAGS"
3530         else
3531             dnl platform.h needs TARGET_CARBON before setup.h
3532             CPPFLAGS="$CPPFLAGS_PASCAL -I\${top_srcdir}/src/mac/carbon/morefilex -DTARGET_CARBON $CPPFLAGS"
3533         fi
3534
3535         TOOLKIT=MAC
3536         dnl we can't call this MAC_DIST or autoconf thinks its a macro
3537         GUIDIST=MACX_DIST
3538         dnl wxMac version of wxBase and wxCocoa or wxBase-only built on Darwin
3539         dnl are different, so they need different names:
3540         WXBASEPORT="_carbon"
3541     fi
3542
3543     if test "$wxUSE_COCOA" = 1; then
3544         TOOLKIT=COCOA
3545         GUIDIST=COCOA_DIST
3546     fi
3547
3548     if test "$wxUSE_PM" = 1; then
3549         TOOLKIT=PM
3550         GUIDIST=PM_DIST
3551         AC_CACHE_CHECK([for type SPBCDATA],
3552             wx_cv_spbcdata,
3553             [
3554                 AC_TRY_COMPILE(
3555                     [
3556                         #define INCL_PM
3557                         #include <os2.h>
3558                     ],
3559                     [
3560                         SPBCDATA test;
3561                     ],
3562                     wx_cv_spbcdata=yes,
3563                     wx_cv_spbcdata=no
3564                 )
3565             ]
3566         )
3567
3568         if test $wx_cv_spbcdata = "yes"; then
3569             AC_DEFINE(HAVE_SPBCDATA)
3570         fi
3571     fi
3572
3573     dnl the name of the directory where the files for this toolkit live
3574     if test "$TOOLKIT" = "PM" ; then
3575         TOOLKIT_DIR="os2"
3576     else
3577         TOOLKIT_DIR=`echo ${TOOLKIT} | tr "[[A-Z]]" "[[a-z]]"`
3578     fi
3579
3580     if test "$wxUSE_UNIVERSAL" = "yes"; then
3581         TOOLCHAIN_DEFS="${TOOLCHAIN_DEFS} -D__WXUNIVERSAL__"
3582         WIDGET_SET=univ
3583     fi
3584
3585     dnl distribute samples/demos/utils with GUI versions
3586     GUIDIST="${GUIDIST} SAMPLES_DIST DEMOS_DIST UTILS_DIST MISC_DIST"
3587     DISTDIR="wx\$(TOOLKIT)"
3588 else
3589     USE_GUI=0
3590
3591     dnl this doesn't quite work right for wxBase, but the places
3592     dnl where it is wrong aren't fatal (yet) though.
3593     TOOLKIT_DIR="base"
3594
3595     dnl the sources, their dependenices and the headers
3596     if test "$USE_WIN32" = 1 ; then
3597         dnl yes, the toolkit for wxBase on win32 is actually MSW
3598         dnl wxBase on unix does not need a 'TOOLKIT' defined.
3599         TOOLKIT="MSW"
3600     fi
3601
3602     dnl distribute only wxBase sources/headers
3603     GUIDIST="BASE_DIST"
3604     DISTDIR="wxBase"
3605 fi
3606
3607 dnl ---------------------------------------------------------------------------
3608 dnl Optional libraries included when system library is not used
3609 dnl ---------------------------------------------------------------------------
3610
3611 dnl do this after test for X11 above so that we have a chance of finding Xlib.h
3612 if test "$wxUSE_GUI" = "yes"; then
3613     if test "$wxUSE_UNIX" = "yes" -a "$wxUSE_PM" != 1; then
3614         dnl defines HAVE_X11_XKBLIB_H
3615         AC_CHECK_HEADERS(X11/Xlib.h)
3616         AC_CHECK_HEADERS([X11/XKBlib.h], [], [],
3617                          [
3618                           #if HAVE_X11_XLIB_H
3619                             #include <X11/Xlib.h>
3620                           #endif
3621                          ])
3622     fi
3623 fi
3624
3625
3626 dnl ----------------------------------------------------------------
3627 dnl iODBC support
3628 dnl ----------------------------------------------------------------
3629
3630 IODBC_C_SRC=""
3631
3632
3633 dnl ODBC is handled separately for MSW
3634 if test "$TOOLKIT" != "MSW" ; then
3635
3636     if test "$wxUSE_ODBC" = "sys" -o "$wxUSE_ODBC" = "yes" ; then
3637         dnl This is not ideal we really ough to use the unixodbc-config
3638         dnl  or iodbc-config if they exist.
3639
3640         AC_CHECK_HEADER([sql.h], [found_sql_h=1])
3641         if test "x$found_sql_h" = "x1" ; then
3642             AC_CHECK_LIB(iodbc, SQLAllocEnv, ODBC_LINK=" -liodbc",
3643             [
3644                 AC_CHECK_LIB(unixodbc, SQLAllocEnv, ODBC_LINK=" -lunixodbc",
3645                 [
3646                     AC_CHECK_LIB(odbc, SQLAllocEnv, ODBC_LINK=" -lodbc")
3647                 ])
3648             ])
3649         fi
3650         if test "x$ODBC_LINK" = "x" ; then
3651             if test "$wxUSE_ODBC" = "sys" ; then
3652                 AC_MSG_ERROR([system ODBC library not found! Use --with-odbc=builtin to use built-in version])
3653             else
3654                 AC_MSG_WARN([system ODBC library not found, will use built-in instead])
3655                 wxUSE_ODBC=builtin
3656             fi
3657         else
3658             dnl we are using the system library
3659             wxUSE_ODBC=sys
3660         fi
3661     fi
3662
3663     if test "$wxUSE_ODBC" = "builtin" ; then
3664         AC_DEFINE(wxUSE_BUILTIN_IODBC)
3665     fi
3666 fi
3667
3668 if test "$wxUSE_ODBC" != "no" ; then
3669     AC_DEFINE(wxUSE_ODBC)
3670     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS db"
3671
3672     dnl is this still necessary?
3673     WXCONFIG_CPPFLAGS="$WXCONFIG_CPPFLAGS -D_IODBC_"
3674 fi
3675
3676 dnl ---------------------------------------------------------------------------
3677 dnl wxDisplay Sanity checks
3678 dnl ---------------------------------------------------------------------------
3679
3680 if test "$wxUSE_DISPLAY" = "yes"; then
3681 dnl ---------------------------------------------------------------------------
3682 dnl Xinerama (for unix ) - Brian Victor
3683 dnl ---------------------------------------------------------------------------
3684     if test "$wxUSE_UNIX" = "yes" -a "$wxUSE_MAC" != 1 -a "$wxUSE_COCOA" != 1; then
3685         AC_MSG_CHECKING([for Xinerama])
3686         WX_PATH_FIND_LIBRARIES([$SEARCH_LIB],Xinerama)
3687         if test "$ac_find_libraries" != "" ; then
3688             WX_LINK_PATH_EXIST([$ac_find_libraries],[$LDFLAGS])
3689             if test "$ac_path_to_link" != " -L/usr/lib" ; then
3690                 LDFLAGS="$LDFLAGS $ac_path_to_link"
3691             fi
3692             GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lXinerama"
3693             AC_MSG_RESULT([yes])
3694
3695             AC_MSG_CHECKING([for Xxf86vm extension])
3696             WX_PATH_FIND_LIBRARIES([$SEARCH_LIB],Xxf86vm)
3697             if test "$ac_find_libraries" != "" ; then
3698                 AC_MSG_RESULT([yes])
3699                 AC_CHECK_HEADERS([X11/extensions/xf86vmode.h],
3700                                  [
3701                                   GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lXxf86vm"
3702                                  ],
3703                                  [],
3704                                  [
3705                                       #if HAVE_X11_XLIB_H
3706                                         #include <X11/Xlib.h>
3707                                       #endif
3708                                  ])
3709             else
3710                 AC_MSG_RESULT([no])
3711             fi
3712
3713         else
3714             AC_MSG_RESULT([no])
3715             AC_MSG_WARN([Xinerama not found; disabling wxDisplay])
3716             wxUSE_DISPLAY="no"
3717         fi
3718     elif test "$wxUSE_MSW" = 1; then
3719 dnl ---------------------------------------------------------------------------
3720 dnl DirectDraw for MSW - optionally used by WxDisplay.
3721 dnl ---------------------------------------------------------------------------
3722         AC_CHECK_HEADERS([ddraw.h], [], [], [#include <windows.h>])
3723     fi
3724 fi
3725
3726 dnl ---------------------------------------------------------------------------
3727 dnl OpenGL libraries
3728 dnl ---------------------------------------------------------------------------
3729
3730 USE_OPENGL=0
3731 if test "$wxUSE_OPENGL" = "yes"; then
3732     if test "$wxUSE_MAC" = 1 -o "$wxUSE_COCOA" = "1"; then
3733         OPENGL_LIBS="-framework OpenGL -framework AGL"
3734     elif test "$wxUSE_MSW" = 1; then
3735         OPENGL_LIBS="-lopengl32 -lglu32"
3736     else
3737         dnl David Elliott: Without this snippet AC_CHECK_HEADER fails to find
3738         dnl GL/gl.h on Mac OS X where it is located in
3739         dnl /usr/X11R6/include/GL/gl.h:
3740
3741         WX_PATH_FIND_INCLUDES($SEARCH_INCLUDE, GL/gl.h)
3742         if test "$ac_find_includes" != "" ; then
3743             AC_MSG_RESULT(found in $ac_find_includes)
3744             WX_INCLUDE_PATH_EXIST($ac_find_includes, $CPPFLAGS)
3745             CPPFLAGS="$ac_path_to_include $CPPFLAGS"
3746         fi
3747
3748         AC_CHECK_HEADER(GL/gl.h,
3749             [
3750                 found_gl=0
3751
3752                 AC_MSG_CHECKING([for -lGL])
3753                 WX_PATH_FIND_LIBRARIES([$SEARCH_LIB],GL)
3754                 if test "$ac_find_libraries" != "" ; then
3755                     AC_MSG_RESULT([yes])
3756
3757                     WX_LINK_PATH_EXIST([$ac_find_libraries],[$LDFLAGS])
3758                     if test "$ac_path_to_link" != " -L/usr/lib" ; then
3759                         LDFLAGS_GL="$ac_path_to_link"
3760                     fi
3761
3762                     dnl don't suppose that libGL and libGLU are always in the
3763                     dnl same directory -- this is not true for some common
3764                     dnl distributions
3765                     AC_MSG_CHECKING([for -lGLU])
3766                     WX_PATH_FIND_LIBRARIES([$SEARCH_LIB],GLU)
3767                     if test "$ac_find_libraries" != "" ; then
3768                         WX_LINK_PATH_EXIST([$ac_find_libraries],[$LDFLAGS])
3769                         if test "$ac_path_to_link" != " -L/usr/lib" -a \
3770                                     "$ac_path_to_link" != "$LDFLAGS_GL"; then
3771                             LDFLAGS_GL="$LDFLAGS_GL$ac_path_to_link"
3772                         fi
3773
3774                         found_gl=1
3775                         OPENGL_LIBS="-lGL -lGLU"
3776                         AC_MSG_RESULT([yes])
3777                     else
3778                         AC_MSG_RESULT([no])
3779                     fi
3780                 else
3781                     AC_MSG_RESULT([no])
3782                 fi
3783
3784                 if test "$found_gl" != 1; then
3785                     AC_MSG_CHECKING([for -lMesaGL])
3786                     WX_PATH_FIND_LIBRARIES([$SEARCH_LIB],MesaGL)
3787                     if test "$ac_find_libraries" != "" ; then
3788                         WX_LINK_PATH_EXIST([$ac_find_libraries],[$LDFLAGS])
3789                         LDFLAGS_GL="$LDFLAGS$ac_path_to_link"
3790                         OPENGL_LIBS="-lMesaGL -lMesaGLU"
3791                         AC_MSG_RESULT([yes])
3792                     else
3793                         AC_MSG_RESULT([no])
3794                     fi
3795                 fi
3796             ])
3797
3798         if test "x$OPENGL_LIBS" = "x"; then
3799             dnl it should be an error and not a warning because OpenGL is not on
3800             dnl by default and so if it had been explicitly requested, we
3801             dnl shouldn't just fall back to compiling the library without it
3802             AC_MSG_ERROR(OpenGL libraries not available)
3803         fi
3804     fi
3805
3806     if test "$wxUSE_OPENGL" = "yes"; then
3807         USE_OPENGL=1
3808         AC_DEFINE(wxUSE_OPENGL)
3809         AC_DEFINE(wxUSE_GLCANVAS)
3810         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS opengl opengl/cube opengl/penguin opengl/isosurf"
3811     fi
3812 fi
3813
3814
3815 dnl the symbol which allows conditional compilation for the given toolkit
3816 if test -n "$TOOLKIT" ; then
3817     TOOLCHAIN_DEFS="${TOOLCHAIN_DEFS} -D__WX${TOOLKIT}__"
3818 fi
3819
3820
3821 dnl --- the marker for quick search, leave it here: SHARED_LIB_SETUP ---
3822
3823 if test "$wxUSE_SHARED" = "yes"; then
3824     case "${host}" in
3825       *-pc-msdosdjgpp )
3826         dnl only static for now
3827         wxUSE_SHARED=no
3828         AC_MSG_WARN([Host system doesn't support shared libraries, disabling])
3829       ;;
3830     esac
3831 fi
3832
3833 if test "$wxUSE_SHARED" = "yes"; then
3834
3835     dnl use versioned symbols if available on the platform
3836     WX_VERSIONED_SYMBOLS([\$(top_builddir)version-script])
3837
3838     case "${host}" in
3839       *-*-linux* | *-*-gnu* )
3840         SAMPLES_RPATH_FLAG="-Wl,-rpath,\$(top_builddir)lib"
3841         WXCONFIG_RPATH="-Wl,-rpath,\$libdir"
3842         ;;
3843
3844       *-*-solaris2* )
3845         if test "$GCC" = yes ; then
3846             dnl newer versions of gcc need -isystem to compile X headers on
3847             dnl Solaris (which use old style C syntax)
3848             CPPFLAGS="-isystem /usr/openwin/include $CPPFLAGS"
3849
3850             dnl gcc may use Sun's ld, in which case -rpath gives a confusing
3851             dnl error message. We have to try both -Wl,-rpath and -Wl,-R:
3852             saveLdflags="$LDFLAGS"
3853             LDFLAGS="$saveLdflags -Wl,-rpath,/"
3854             AC_MSG_CHECKING([if the linker accepts -rpath])
3855             AC_TRY_LINK(
3856                 [],[],
3857                 [
3858                     AC_MSG_RESULT([yes])
3859                     SAMPLES_RPATH_FLAG="-Wl,-rpath,\$(top_builddir)lib"
3860                     WXCONFIG_RPATH="-Wl,-rpath,\$libdir"
3861                 ],[
3862                     AC_MSG_RESULT([no])
3863                     AC_MSG_CHECKING([if the linker accepts -R])
3864                     LDFLAGS="$saveLdflags -Wl,-R,/"
3865                     AC_TRY_LINK(
3866                         [],[],
3867                         [
3868                             AC_MSG_RESULT([yes])
3869                             SAMPLES_RPATH_FLAG="-Wl,-R,\$(top_builddir)lib"
3870                             WXCONFIG_RPATH="-Wl,-R,\$libdir"
3871                         ],[
3872                             AC_MSG_RESULT([no])
3873                         ])
3874                 ])
3875             LDFLAGS="$saveLdflags"
3876         else
3877             SAMPLES_RPATH_FLAG="-R\$(top_builddir)lib"
3878             WXCONFIG_RPATH="-R\$libdir"
3879         fi
3880       ;;
3881
3882       *-*-darwin* )
3883         install_name_tool=`which install_name_tool`
3884         if test "$install_name_tool" -a -x "$install_name_tool"; then
3885             SAMPLES_RPATH_POSTLINK="\$(top_builddir)change-install-names \$(LIBDIRNAME) \$(prefix) \$@"
3886             cat <<EOF >change-install-names
3887 #!/bin/sh
3888 libnames=\`cd \${1} ; ls -1 | grep '\.[[0-9]][[0-9]]*\.dylib\$'\`
3889 inst_cmd="install_name_tool "
3890 for i in \${libnames} ; do
3891     inst_cmd="\${inst_cmd} -change \${2}/lib/\${i} \${1}/\${i}"
3892 done
3893 \${inst_cmd} \${3}
3894 EOF
3895             chmod +x change-install-names
3896         fi
3897       ;;
3898
3899       *-*-cygwin* | *-*-mingw32* )
3900         dnl this one shouldn't be used for the library build so put it in a
3901         dnl separate variable from WXCONFIG_CPPFLAGS
3902         WXCONFIG_ONLY_CPPFLAGS="$WXCONFIG_ONLY_CPPFLAGS -DWXUSINGDLL"
3903         ;;
3904
3905       *-*-hpux* )
3906         SAMPLES_RPATH_FLAG="-Wl,+b,\$(top_builddir)lib"
3907         WXCONFIG_RPATH="-Wl,+b,\$libdir"
3908         ;;
3909
3910     esac
3911
3912     if test $wxUSE_RPATH = "no"; then
3913         SAMPLES_RPATH_FLAG=''
3914         SAMPLES_RPATH_POSTLINK=''
3915         WXCONFIG_RPATH=''
3916     fi
3917
3918     SHARED=1
3919
3920 else
3921
3922     config_linkage_component="-static"
3923     SHARED=0
3924
3925 fi
3926
3927
3928 UNICODE=0
3929 lib_unicode_suffix=
3930 WX_CHARTYPE="ansi"
3931 if test "$wxUSE_UNICODE" = "yes"; then
3932     lib_unicode_suffix=u
3933     WX_CHARTYPE="unicode"
3934     UNICODE=1
3935 fi
3936
3937 lib_debug_suffix=
3938 WX_DEBUGTYPE="release"
3939 DEBUG_FLAG=0
3940 if test "$wxUSE_DEBUG_FLAG" = "yes"; then
3941     lib_debug_suffix=d
3942     WX_DEBUGTYPE="debug"
3943     DEBUG_FLAG=1
3944 fi
3945
3946 WX_FLAVOUR=${WX_FLAVOUR:+-$WX_FLAVOUR}
3947 WX_LIB_FLAVOUR=`echo $WX_FLAVOUR | tr '-' '_'`
3948
3949 DEBUG_INFO=0
3950 if test "$wxUSE_DEBUG_INFO" = "yes"; then
3951     DEBUG_INFO=1
3952 fi
3953
3954 WX_VERSION_TAG=`echo WX${lib_unicode_suffix}${lib_debug_suffix}${WX_LIB_FLAVOUR}_${WX_RELEASE} | tr "[[a-z]]" "[[A-Z]]"`
3955
3956 TOOLCHAIN_NAME="${TOOLKIT_DIR}${TOOLKIT_VERSION}${WIDGET_SET}${lib_unicode_suffix}${lib_debug_suffix}${WX_LIB_FLAVOUR}-${WX_RELEASE}"
3957
3958 TOOLCHAIN_FULLNAME="${TOOLKIT_DIR}${TOOLKIT_VERSION}${WIDGET_SET}-${WX_CHARTYPE}-${WX_DEBUGTYPE}${config_linkage_component}-${WX_RELEASE}${WX_FLAVOUR}"
3959
3960 if test "$cross_compiling" = "yes"; then
3961     HOST_SUFFIX="-$host_alias"
3962     TOOLCHAIN_NAME="$TOOLCHAIN_NAME$HOST_SUFFIX"
3963     TOOLCHAIN_FULLNAME="${host_alias}-$TOOLCHAIN_FULLNAME"
3964 fi
3965
3966 dnl library link name
3967 dnl These just save us from exporting lib_{unicode,debug,flavour}_suffix.
3968 dnl If we ever need to do that, we won't need to keep these.
3969 WX_LIBRARY_BASENAME_NOGUI="wx_base${WXBASEPORT}${lib_unicode_suffix}${lib_debug_suffix}${WX_LIB_FLAVOUR}"
3970 if test "${TOOLKIT_DIR}" = "os2"; then
3971     WX_LIBRARY_BASENAME_GUI="wx_pm${WIDGET_SET}${lib_unicode_suffix}${lib_debug_suffix}${WX_LIB_FLAVOUR}"
3972 else
3973     WX_LIBRARY_BASENAME_GUI="wx_${TOOLKIT_DIR}${TOOLKIT_VERSION}${WIDGET_SET}${lib_unicode_suffix}${lib_debug_suffix}${WX_LIB_FLAVOUR}"
3974 fi
3975
3976
3977
3978 if test "$wxUSE_COCOA" = 1; then
3979     AC_LANG_SAVE
3980     AC_WX_LANG_OBJECTIVEC
3981 dnl Recent AppKit/NSEvent.h include parts of IOKit which eventually
3982 dnl gets IOKit/graphics/IOGraphicsTypes.h included which typedefs
3983 dnl Point but only if MacTypes.h was not included first.  Of course,
3984 dnl if MacTypes.h is included later then you're screwed when it
3985 dnl tries to typedef Point.  Defining __Point__ will cause IOGraphicsTypes.h
3986 dnl to not typedef Point and thus fix the problem.
3987     AC_MSG_CHECKING([if AppKit/NSEvent.h conflicts with CoreFoundation])
3988     AC_TRY_COMPILE([#include <AppKit/NSEvent.h>
3989 #include <CoreFoundation/CoreFoundation.h>
3990         ],[],
3991         [AC_MSG_RESULT([no])],
3992         [AC_MSG_RESULT([yes])
3993         AC_MSG_CHECKING([if defining __Point__ will fix it])
3994         AC_TRY_COMPILE([#define __Point__ 1
3995 #include <AppKit/NSEvent.h>
3996 #include <CoreFoundation/CoreFoundation.h>
3997             ],[],
3998             [AC_MSG_RESULT([yes])
3999             AC_DEFINE(__Point__)
4000             ],
4001             [AC_MSG_FAILURE([no])]
4002         )]
4003     )
4004     AC_LANG_RESTORE
4005 fi
4006
4007 if test "$wxUSE_MAC" = 1 -o "$wxUSE_COCOA" = 1; then
4008     dnl base name of the resource file for wxMac must be the same
4009     dnl as library installation base name (-install_name)
4010     WX_RESOURCES_MACOSX_ASCII="libwx_${TOOLCHAIN_NAME}.${wx_release_number}.r"
4011     WX_RESOURCES_MACOSX_DATA="libwx_${TOOLCHAIN_NAME}.${wx_release_number}.rsrc"
4012
4013     dnl add the resources target for wxMac
4014     LIBWXMACRES="\$(top_builddir)lib/${WX_RESOURCES_MACOSX_ASCII}"
4015
4016     AC_CHECK_PROG(REZ, Rez, Rez, /Developer/Tools/Rez)
4017     AC_CHECK_PROG(DEREZ, DeRez, DeRez, /Developer/Tools/DeRez)
4018     AC_CHECK_PROG(SETFILE, SetFile, SetFile, /Developer/Tools/SetFile)
4019
4020     MACSETFILE="\$(SETFILE)"
4021
4022     dnl resources are bundled both with shared library and applications
4023     dnl since the carb resource *must* be included in the application
4024     if test "$wxUSE_MAC" = 1; then
4025         POSTLINK_COMMAND="\$(REZ) -d __DARWIN__ -t APPL Carbon.r -o"
4026         RESCOMP="$REZ"
4027         WXCONFIG_RESFLAGS="-d __DARWIN__ -t APPL Carbon.r -o"
4028     else
4029         POSTLINK_COMMAND="echo -n | \$(REZ) -d __DARWIN__ -t APPL ${LIBWXMACRES}"
4030         RESCOMP="echo -n \| $REZ"
4031         WXCONFIG_RESFLAGS="-d __DARWIN__ -t APPL \$libdir/$WX_RESOURCES_MACOSX_ASCII"
4032     fi
4033
4034 else
4035     dnl default value is to (silently) do nothing in the makefile
4036     MACSETFILE="@true"
4037
4038     if test "$wxUSE_PM" = 1; then
4039         RESCOMP="emxbind"
4040         WXCONFIG_RESFLAGS="-ep"
4041
4042         dnl Is this one really used anywhere for pm?
4043         POSTLINK_COMMAND="$RESCOMP $WXCONFIG_RESFLAGS"
4044     else
4045         POSTLINK_COMMAND="@true"
4046     fi
4047
4048 fi
4049
4050
4051 dnl ---------------------------------------------------------------------------
4052 dnl Checks for typedefs
4053 dnl ---------------------------------------------------------------------------
4054
4055 dnl   defines mode_t if not already defined
4056 AC_TYPE_MODE_T
4057 dnl   defines off_t if not already defined
4058 AC_TYPE_OFF_T
4059 dnl   defines pid_t if not already defined
4060 AC_TYPE_PID_T
4061 dnl   defines size_t if not already defined
4062 AC_TYPE_SIZE_T
4063 dnl   defines uid_t and gid_t if not already defined
4064 AC_TYPE_UID_T
4065
4066 dnl sets HAVE_SSIZE_T if ssize_t is defined
4067 AC_CHECK_TYPES(ssize_t)
4068
4069 dnl check what exactly size_t is on this machine - this is necessary to avoid
4070 dnl ambiguous overloads in several places, notably wx/string.h and wx/array.h
4071 AC_CACHE_CHECK([if size_t is unsigned int],
4072     wx_cv_size_t_is_uint,
4073     [
4074     dnl an obvious check like AC_TRY_COMPILE[struct Foo { ... };] doesn't work
4075     dnl with egcs (at least) up to 1.1.1 as it allows you to compile duplicate
4076     dnl methods in a local class (i.e. class inside a function) declaration
4077     dnl without any objections!!
4078     dnl
4079     dnl hence the hack below: we must have Foo at global scope!
4080     AC_TRY_COMPILE([#include <stddef.h>],
4081         [
4082             return 0; }
4083
4084             struct Foo { void foo(size_t); void foo(unsigned int); };
4085
4086             int bar() {
4087         ],
4088         wx_cv_size_t_is_uint=no,
4089         wx_cv_size_t_is_uint=yes
4090     )
4091     ]
4092 )
4093
4094 if test "$wx_cv_size_t_is_uint" = "yes"; then
4095     AC_DEFINE(wxSIZE_T_IS_UINT)
4096 else
4097     AC_CACHE_CHECK([if size_t is unsigned long],
4098         wx_cv_size_t_is_ulong,
4099         AC_TRY_COMPILE([#include <stddef.h>],
4100             [
4101                 return 0; }
4102
4103                 struct Foo { void foo(size_t); void foo(unsigned long); };
4104
4105                 int bar() {
4106             ],
4107             wx_cv_size_t_is_ulong=no,
4108             wx_cv_size_t_is_ulong=yes
4109         )
4110     )
4111
4112     if test "$wx_cv_size_t_is_ulong" = "yes"; then
4113         AC_DEFINE(wxSIZE_T_IS_ULONG)
4114     fi
4115 fi
4116
4117 dnl ---------------------------------------------------------------------------
4118 dnl Checks for structures
4119 dnl ---------------------------------------------------------------------------
4120
4121 dnl does passwd struct has the pw_gecos field?
4122 AC_CACHE_CHECK([for pw_gecos in struct passwd], wx_cv_struct_pw_gecos,
4123     [
4124         AC_TRY_COMPILE([#include <pwd.h>],
4125              [
4126                 char *p;
4127                 struct passwd *pw;
4128                 p = pw->pw_gecos;
4129              ],
4130              [
4131                 wx_cv_struct_pw_gecos=yes
4132              ],
4133              [
4134                 wx_cv_struct_pw_gecos=no
4135              ]
4136         )
4137     ]
4138 )
4139
4140 if test "$wx_cv_struct_pw_gecos" = "yes"; then
4141     AC_DEFINE(HAVE_PW_GECOS)
4142 fi
4143
4144 dnl ---------------------------------------------------------------------------
4145 dnl Check for functions
4146 dnl ---------------------------------------------------------------------------
4147
4148 dnl don't check for wchar_t functions if we haven't got wchar_t itself
4149 if test "$wxUSE_WCHAR_T" = "yes"; then
4150     AC_DEFINE(wxUSE_WCHAR_T)
4151
4152     dnl check for wcslen in all possible places
4153     WCSLEN_FOUND=0
4154     WCHAR_LINK=
4155     AC_CHECK_FUNCS(wcslen, WCSLEN_FOUND=1)
4156
4157     if test "$WCSLEN_FOUND" = 0; then
4158         if test "$TOOLKIT" = "MSW"; then
4159             AC_CHECK_LIB(msvcrt, wcslen, WCHAR_OK=1)
4160         else
4161             AC_CHECK_LIB(w, wcslen, [
4162                             WCHAR_LINK=" -lw"
4163                             WCSLEN_FOUND=1
4164                         ])
4165         fi
4166     fi
4167
4168     if test "$WCSLEN_FOUND" = 1; then
4169         AC_DEFINE(HAVE_WCSLEN)
4170     fi
4171
4172     dnl On HP-UX aCC need this define to find mbstrtowcs() &c
4173     dnl Can't be used for g++ since the mbstate_t in wchar.h can conflict
4174     dnl with g++'s in <cwchar> (unless -D_INCLUDE__STDC_A1_SOURCE is in the
4175     dnl flags when g++ is configured, it will declare it's own).
4176     if test "$USE_HPUX" = 1 -a "$GCC" != "yes"; then
4177         CPPFLAGS="-D_INCLUDE__STDC_A1_SOURCE $CPPFLAGS"
4178     fi
4179
4180     dnl Try to use wcsrtombs instead of wcstombs which is buggy in old GNU
4181     dnl libc versions if possible. AC_CHECK_FUNCS only checks it's in the
4182     dnl library, not the header, so do a header check for mbstate_t first.
4183     AC_CHECK_TYPES([mbstate_t],
4184                    [AC_CHECK_FUNCS(wcsrtombs)],
4185                    [],
4186                    [#include <wchar.h>])
4187 else
4188     AC_MSG_WARN([Wide character support is unavailable])
4189 fi
4190
4191 dnl check for vsnprintf() -- a safe version of vsprintf())
4192 dnl
4193 dnl the trouble here is that on some systems (e.g HP-UX 10) this function is
4194 dnl present in libc but not in the system headers and so AC_CHECK_FUNCS (which,
4195 dnl stupidly, provides a dummy function declaration inside its extension)
4196 dnl succeeds, even with C++ compiler, but the compilation of wxWidgets fails
4197 dnl
4198 dnl so we first check if the function is in the library
4199 AC_CHECK_FUNCS(snprintf vsnprintf)
4200
4201 if test "$ac_cv_func_vsnprintf" = "yes"; then
4202     dnl yes it is -- now check if it is in the headers
4203     AC_CACHE_CHECK([for vsnprintf declaration], wx_cv_func_vsnprintf_decl,
4204         [
4205             dnl our troubles are not over: HP-UX 11 prototypes vsnprintf() as
4206             dnl taking "char *" and not "const char *" while Metrowerks does
4207             dnl provide a correct vsnprintf declaration but in C++ mode it's
4208             dnl always in std namespace and so we have to bring it in scope
4209             AC_TRY_COMPILE(
4210                 [
4211                     #include <stdio.h>
4212                     #include <stdarg.h>
4213                     #ifdef __MSL__
4214                     #if __MSL__ >= 0x6000
4215                     namespace std {}
4216                     using namespace std;
4217                     #endif
4218                     #endif
4219                 ],
4220                 [
4221                     char *buf;
4222                     va_list ap;
4223                     vsnprintf(buf, 10u, "%s", ap);
4224                 ],
4225                 wx_cv_func_vsnprintf_decl=yes,
4226                 wx_cv_func_vsnprintf_decl=no
4227             )
4228         ]
4229     )
4230
4231     if test "$wx_cv_func_vsnprintf_decl" = "yes"; then
4232         AC_DEFINE(HAVE_VSNPRINTF_DECL)
4233
4234         dnl we know there is a vsnprintf declaration, but some old headers
4235         dnl may have one taking a "char *" format instead of "const char *"
4236         AC_CACHE_CHECK([if vsnprintf declaration is broken], wx_cv_func_broken_vsnprintf_decl,
4237             [
4238                 AC_TRY_COMPILE(
4239                     [
4240                         #include <stdio.h>
4241                         #include <stdarg.h>
4242                         #ifdef __MSL__
4243                         #if __MSL__ >= 0x6000
4244                         namespace std {}
4245                         using namespace std;
4246                         #endif
4247                         #endif
4248                     ],
4249                     [
4250                         char *buf;
4251                         va_list ap;
4252                         const char *fmt = "%s";
4253                         vsnprintf(buf, 10u, fmt, ap);
4254                     ],
4255                     wx_cv_func_broken_vsnprintf_decl=no,
4256                     wx_cv_func_broken_vsnprintf_decl=yes
4257                 )
4258             ]
4259         )
4260
4261         if test "$wx_cv_func_broken_vsnprintf_decl" = "yes"; then
4262             AC_DEFINE(HAVE_BROKEN_VSNPRINTF_DECL)
4263         fi
4264     fi
4265 fi
4266
4267 dnl the same as above but for snprintf() now: it's not present in at least AIX
4268 dnl 4.2 headers
4269 if test "$ac_cv_func_snprintf" = "yes"; then
4270     AC_CACHE_CHECK([for snprintf declaration], wx_cv_func_snprintf_decl,
4271         [
4272             AC_TRY_COMPILE(
4273                 [
4274                     #include <stdio.h>
4275                     #include <stdarg.h>
4276                     #ifdef __MSL__
4277                     #if __MSL__ >= 0x6000
4278                     namespace std {}
4279                     using namespace std;
4280                     #endif
4281                     #endif
4282                 ],
4283                 [
4284                     char *buf;
4285                     snprintf(buf, 10u, "%s", "wx");
4286                 ],
4287                 wx_cv_func_snprintf_decl=yes,
4288                 wx_cv_func_snprintf_decl=no
4289             )
4290         ]
4291     )
4292
4293     if test "$wx_cv_func_snprintf_decl" = "yes"; then
4294         AC_DEFINE(HAVE_SNPRINTF_DECL)
4295
4296         dnl we know there is an snprintf declaration, but some old headers
4297         dnl may have one taking a "char *" format instead of "const char *"
4298         AC_CACHE_CHECK([if snprintf declaration is broken], wx_cv_func_broken_snprintf_decl,
4299             [
4300                 AC_TRY_COMPILE(
4301                     [
4302                         #include <stdio.h>
4303                         #include <stdarg.h>
4304                         #ifdef __MSL__
4305                         #if __MSL__ >= 0x6000
4306                         namespace std {}
4307                         using namespace std;
4308                         #endif
4309                         #endif
4310                     ],
4311                     [
4312                         char *buf;
4313                         const char *fmt = "%s";
4314                         snprintf(buf, 10u, fmt, "wx");
4315                     ],
4316                     wx_cv_func_broken_snprintf_decl=no,
4317                     wx_cv_func_broken_snprintf_decl=yes
4318                 )
4319             ]
4320         )
4321
4322         if test "$wx_cv_func_broken_snprintf_decl" = "yes"; then
4323             AC_DEFINE(HAVE_BROKEN_SNPRINTF_DECL)
4324         fi
4325     fi
4326
4327     if test "$wxUSE_PRINTF_POS_PARAMS" = "yes"; then
4328
4329         dnl check if snprintf() has support for positional arguments
4330         dnl NB: if snprintf() has positional support we can safely suppose that also
4331         dnl     other *printf() functions support them as they all belong to the same
4332         dnl     family and they all fallback to the same implementation
4333         AC_CACHE_CHECK([if snprintf supports positional arguments], wx_cv_func_snprintf_pos_params,
4334             [
4335                 AC_TRY_RUN(
4336                     [
4337                         #include <stdio.h>
4338
4339                         int main (void)
4340                         {
4341                             char buffer[128];
4342                             snprintf (buffer, 128, "%2\$d %3\$d %1\$d", 1, 2, 3);
4343                             if (strcmp ("2 3 1", buffer) == 0)
4344                                 exit (0);
4345                             exit (1);
4346                         }
4347                     ],
4348                     wx_cv_func_snprintf_pos_params=no,
4349                     wx_cv_func_snprintf_pos_params=yes
4350                 )
4351             ]
4352         )
4353
4354         if test "$wx_cv_func_snprintf_pos_params" = "yes"; then
4355             AC_DEFINE(HAVE_UNIX98_PRINTF)
4356         fi
4357     fi
4358 fi
4359
4360
4361 if test "$wxUSE_UNICODE" = yes; then
4362     dnl also look if we have wide char IO functions
4363     AC_CHECK_FUNCS(wputc wputchar putws fputws wprintf vswprintf)
4364
4365     dnl MinGW has a vswprintf with a different prototype, and
4366     dnl a _vsnwprintf with the correct prototype, but AC_CHECK_FUNCS
4367     dnl finds it even if it is not declared in some versions...
4368     AC_MSG_CHECKING([for _vsnwprintf])
4369     AC_TRY_COMPILE([#include <wchar.h>],
4370                    [&_vsnwprintf;],
4371                    [AC_MSG_RESULT([yes])
4372                     AC_DEFINE(HAVE__VSNWPRINTF)],
4373                    [AC_MSG_RESULT([no])]);
4374 fi
4375
4376 if test "x$ac_cv_header_fnmatch_h" = "xyes"; then
4377     AC_CHECK_FUNCS(fnmatch)
4378 fi
4379
4380 if test "$wxUSE_FILE" = "yes"; then
4381     AC_CHECK_FUNCS(fsync)
4382 fi
4383
4384
4385 dnl the following tests are for Unix(like) systems only
4386 if test "$TOOLKIT" != "MSW"; then
4387
4388 dnl check for available version of iconv()
4389
4390 AM_ICONV
4391 LIBS="$LIBICONV $LIBS"
4392
4393 dnl check for POSIX signals if we need them
4394 if test "$wxUSE_ON_FATAL_EXCEPTION" = "yes" -a "$wxUSE_UNIX" = "yes"; then
4395     AC_CHECK_FUNCS(sigaction)
4396
4397     if test "$ac_cv_func_sigaction" = "no"; then
4398         AC_MSG_WARN([No POSIX signal functions on this system, wxApp::OnFatalException will not be called])
4399         wxUSE_ON_FATAL_EXCEPTION=no
4400     fi
4401
4402     if test "$wxUSE_ON_FATAL_EXCEPTION" = "yes"; then
4403       AC_CACHE_CHECK([for sa_handler type], wx_cv_type_sa_handler,
4404       [
4405         AC_TRY_COMPILE([#include <signal.h>],
4406                      [
4407                         extern void testSigHandler(int);
4408
4409                         struct sigaction sa;
4410                         sa.sa_handler = testSigHandler;
4411                      ], [
4412                         wx_cv_type_sa_handler=int
4413                      ], [
4414                         wx_cv_type_sa_handler=void
4415                      ])
4416       ])
4417
4418       AC_DEFINE_UNQUOTED(wxTYPE_SA_HANDLER, $wx_cv_type_sa_handler)
4419     fi
4420 fi
4421
4422 dnl backtrace() and backtrace_symbols() for wxStackWalker
4423 if test "$wxUSE_STACKWALKER" = "yes" -a "$wxUSE_UNIX" = "yes"; then
4424     AC_CACHE_CHECK([for backtrace() in <execinfo.h>], wx_cv_func_backtrace,
4425         [
4426             AC_TRY_COMPILE([#include <execinfo.h>],
4427                 [
4428                     void *trace[1];
4429                     char **messages;
4430
4431                     backtrace(trace, 1);
4432                     messages = backtrace_symbols(trace, 1);
4433                 ],
4434                 wx_cv_func_backtrace=yes,
4435                 wx_cv_func_backtrace=no
4436             )
4437         ]
4438     )
4439
4440
4441     if test "$wx_cv_func_backtrace" = "no"; then
4442         AC_MSG_WARN([backtrace() is not available, wxStackWalker will not be available])
4443         wxUSE_STACKWALKER=no
4444     else
4445         AC_CACHE_CHECK([for __cxa_demangle() in <cxxabi.h>], wx_cv_func_cxa_demangle,
4446             [
4447                 AC_TRY_LINK([#include <cxxabi.h>],
4448                     [
4449                         int rc;
4450                         __cxxabiv1::__cxa_demangle("foo", 0, 0, &rc);
4451                     ],
4452                     wx_cv_func_cxa_demangle=yes,
4453                     wx_cv_func_cxa_demangle=no
4454                 )
4455             ]
4456         )
4457
4458         if test "$wx_cv_func_cxa_demangle" = "yes"; then
4459             AC_DEFINE(HAVE_CXA_DEMANGLE)
4460         fi
4461     fi
4462 fi
4463
4464 if test "$wxUSE_STACKWALKER" = "yes" -a "$USE_WIN32" != "1" -a "$USE_UNIX" != "1"; then
4465     AC_MSG_WARN([wxStackWalker is only available on Win32 and UNIX... disabled])
4466     wxUSE_STACKWALKER=no
4467 fi
4468
4469
4470 dnl check for the function for temp files creation
4471 AC_CHECK_FUNCS(mkstemp mktemp, break)
4472
4473 dnl get the library function to use for wxGetDiskSpace(): it is statfs() under
4474 dnl Linux and *BSD and statvfs() under Solaris
4475 AC_CACHE_CHECK(for statfs, wx_cv_func_statfs,
4476     AC_TRY_COMPILE(
4477         [
4478              #if defined(__BSD__)
4479              #include <sys/param.h>
4480              #include <sys/mount.h>
4481              #else
4482              #include <sys/vfs.h>
4483              #endif
4484         ],
4485         [
4486              long l;
4487              struct statfs fs;
4488              statfs("/", &fs);
4489              l = fs.f_bsize;
4490              l += fs.f_blocks;
4491              l += fs.f_bavail;
4492         ],
4493          wx_cv_func_statfs=yes,
4494          wx_cv_func_statfs=no
4495     )
4496 )
4497
4498 if test "$wx_cv_func_statfs" = "yes"; then
4499     dnl check whether we have its dcelaration too: some systems (AIX 4) lack it
4500     AC_CACHE_CHECK(for statfs declaration, wx_cv_func_statfs_decl,
4501         AC_TRY_COMPILE(
4502             [
4503                  #if defined(__BSD__)
4504                  #include <sys/param.h>
4505                  #include <sys/mount.h>
4506                  #else
4507                  #include <sys/vfs.h>
4508                  #endif
4509             ],
4510             [
4511                 struct statfs fs;
4512                 statfs("", &fs);
4513             ],
4514             wx_cv_func_statfs_decl=yes,
4515             wx_cv_func_statfs_decl=no
4516         )
4517     )
4518
4519     if test "$wx_cv_func_statfs_decl" = "yes"; then
4520         AC_DEFINE(HAVE_STATFS_DECL)
4521     fi
4522
4523     wx_cv_type_statvfs_t="struct statfs"
4524     AC_DEFINE(HAVE_STATFS)
4525 else
4526     AC_CACHE_CHECK(for statvfs, wx_cv_func_statvfs,
4527         AC_TRY_COMPILE(
4528             [
4529                 #include <stddef.h>
4530                 #include <sys/statvfs.h>
4531             ],
4532             [
4533                 statvfs("/", NULL);
4534             ],
4535             wx_cv_func_statvfs=yes,
4536             wx_cv_func_statvfs=no
4537         )
4538     )
4539
4540     if test "$wx_cv_func_statvfs" = "yes"; then
4541         dnl we also have to check whether we should use statvfs_t (works under
4542         dnl Solaris 8, doesn't work under Solaris 7) or "struct statvfs" (vice
4543         dnl versa) as the argument for statvfs in 64 bit off_t mode (in 32 bit
4544         dnl mode both work fine)
4545         dnl
4546         dnl for this check C++ compiler has to be used as passing incompatible
4547         dnl pointers is just a warning and not an error in C
4548         AC_CACHE_CHECK(for statvfs argument type, wx_cv_type_statvfs_t,
4549             AC_TRY_COMPILE(
4550                 [
4551                     #include <sys/statvfs.h>
4552                 ],
4553                 [
4554                     long l;
4555                     statvfs_t fs;
4556                     statvfs("/", &fs);
4557                     l = fs.f_bsize;
4558                     l += fs.f_blocks;
4559                     l += fs.f_bavail;
4560                 ],
4561                 wx_cv_type_statvfs_t=statvfs_t,
4562                 [
4563                     AC_TRY_COMPILE(
4564                         [
4565                             #include <sys/statvfs.h>
4566                         ],
4567                         [
4568                             long l;
4569                             struct statvfs fs;
4570                             statvfs("/", &fs);
4571                             l = fs.f_bsize;
4572                             l += fs.f_blocks;
4573                             l += fs.f_bavail;
4574                         ],
4575                         wx_cv_type_statvfs_t="struct statvfs",
4576                         wx_cv_type_statvfs_t="unknown"
4577                     )
4578                 ]
4579             )
4580         )
4581
4582         if test "$wx_cv_type_statvfs_t" != "unknown"; then
4583             AC_DEFINE(HAVE_STATVFS)
4584         fi
4585     else
4586         dnl set it for the test below
4587         wx_cv_type_statvfs_t="unknown"
4588     fi
4589 fi
4590
4591 if test "$wx_cv_type_statvfs_t" != "unknown"; then
4592     AC_DEFINE_UNQUOTED(WX_STATFS_T, $wx_cv_type_statvfs_t)
4593 else
4594     AC_MSG_WARN([wxGetDiskSpace() function won't work without statfs()])
4595 fi
4596
4597 dnl check for fcntl() or at least flock() needed by Unix implementation of
4598 dnl wxSingleInstanceChecker
4599 if test "$wxUSE_SNGLINST_CHECKER" = "yes"; then
4600     AC_CHECK_FUNCS(fcntl flock, break)
4601
4602     if test "$ac_cv_func_fcntl" != "yes" -a "$ac_cv_func_flock" != "yes"; then
4603         AC_MSG_WARN(wxSingleInstanceChecker not available)
4604         wxUSE_SNGLINST_CHECKER=no
4605     fi
4606 fi
4607
4608 dnl check for timegm() used by datetime.cpp
4609 AC_CHECK_FUNCS(timegm)
4610
4611 dnl look for a function to modify the environment
4612 AC_CHECK_FUNCS(putenv setenv, break)
4613
4614 HAVE_SOME_SLEEP_FUNC=0
4615 if test "$USE_BEOS" = 1; then
4616     dnl BeOS has its own (wonder where did they get it from) sleep() function
4617     dnl in unistd.h
4618     AC_DEFINE(HAVE_SLEEP)
4619     HAVE_SOME_SLEEP_FUNC=1
4620 fi
4621
4622 if test "$USE_DARWIN" = 1; then
4623     dnl Mac OS X/Darwin has both nanosleep and usleep
4624     dnl but only usleep is defined in unistd.h
4625     AC_DEFINE(HAVE_USLEEP)
4626     HAVE_SOME_SLEEP_FUNC=1
4627 fi
4628
4629 if test "$HAVE_SOME_SLEEP_FUNC" != 1; then
4630     dnl try nanosleep() in libc and libposix4, if this fails - usleep()
4631     POSIX4_LINK=
4632     AC_CHECK_FUNCS(nanosleep,
4633         AC_DEFINE(HAVE_NANOSLEEP),
4634         [
4635             AC_CHECK_LIB(posix4, nanosleep,
4636                 [
4637                     AC_DEFINE(HAVE_NANOSLEEP)
4638                     POSIX4_LINK=" -lposix4"
4639                 ],
4640                 [
4641                     AC_CHECK_FUNCS(usleep,
4642                         AC_DEFINE(HAVE_USLEEP),
4643                         AC_MSG_WARN([wxSleep() function will not work])
4644                     )
4645                 ]
4646             )
4647         ]
4648     )
4649 fi
4650
4651 dnl check for uname (POSIX) and gethostname (BSD)
4652 AC_CHECK_FUNCS(uname gethostname, break)
4653
4654 AC_CHECK_FUNCS(strtok_r)
4655
4656 dnl check for inet_addr and inet_aton (these may live either in libc, or in
4657 dnl libnsl or libresolv or libsocket)
4658 INET_LINK=
4659 AC_CHECK_FUNCS(inet_addr,
4660     AC_DEFINE(HAVE_INET_ADDR),
4661     [
4662         AC_CHECK_LIB(nsl, inet_addr,
4663             INET_LINK="nsl",
4664             [
4665                 AC_CHECK_LIB(resolv, inet_addr,
4666                     INET_LINK="resolv",
4667                     [
4668                         AC_CHECK_LIB(socket, inet_addr,
4669                             INET_LINK="socket"
4670                         )
4671                     ]
4672                 )
4673             ]
4674         )
4675     ]
4676 )
4677
4678 AC_CHECK_FUNCS(inet_aton,
4679         AC_DEFINE(HAVE_INET_ATON),
4680         [
4681             dnl only check it in the same lib
4682             AC_CHECK_LIB($INET_LINK, inet_aton, AC_DEFINE(HAVE_INET_ATON))
4683         ])
4684
4685 if test "x$INET_LINK" != "x"; then
4686     AC_DEFINE(HAVE_INET_ADDR)
4687     INET_LINK=" -l$INET_LINK"
4688 fi
4689
4690 fi
4691 dnl if !MSW
4692
4693
4694 dnl ------------------------------------------
4695 dnl Checks specific to contrib libs (MMedia)
4696 dnl ------------------------------------------
4697
4698 dnl Check for ESD:
4699 EXTRALIBS_ESD=
4700 AC_CHECK_LIB(esd, esd_close, [
4701     AC_CHECK_HEADERS([esd.h], [
4702     EXTRALIBS_ESD="-lesd"
4703   ])
4704 ])
4705 AC_SUBST(EXTRALIBS_ESD)
4706
4707 dnl check for known CD-ROM interface
4708 AC_MSG_CHECKING([for known CD-ROM interface])
4709 AC_TRY_COMPILE([#ifdef __linux__
4710                 #include <linux/cdrom.h>
4711                 #else
4712                 /* For Solaris */
4713                 #include <sys/cdio.h>
4714                 #endif
4715                 ],
4716                [struct cdrom_tocentry entry, old_entry;],
4717                [AC_MSG_RESULT([yes])
4718                 AC_DEFINE(HAVE_KNOWN_CDROM_INTERFACE)],
4719                [AC_MSG_RESULT([no])])
4720
4721 dnl ===========================================================================
4722 dnl Now we have all the info we need - use it!
4723 dnl ===========================================================================
4724
4725 dnl flush the cache
4726 AC_CACHE_SAVE
4727
4728 dnl ---------------------------------------------------------------------------
4729 dnl thread support for Unix (for Win32 and OS/2 see past
4730 dnl                          the next matching "else")
4731 dnl ---------------------------------------------------------------------------
4732
4733 dnl under MSW (except mingw32) we always have thread support
4734 if test "$TOOLKIT" != "MSW" -a "$USE_OS2" != 1; then
4735
4736     dnl the code below:
4737     dnl
4738     dnl   defines THREADS_LINK and THREADS_CXXFLAGS which are the options
4739     dnl   necessary to build the MT programs for the linker and compiler
4740     dnl   respectively
4741     dnl
4742     dnl   sets wxUSE_THREADS=1 if thread support is activated
4743
4744     THREADS_LINK=
4745     THREADS_CXXFLAGS=
4746
4747     if test "$wxUSE_THREADS" = "yes" ; then
4748         if test "$USE_BEOS" = 1; then
4749             AC_MSG_WARN([BeOS threads are not yet supported... disabled])
4750             wxUSE_THREADS="no"
4751         fi
4752     fi
4753
4754     if test "$wxUSE_THREADS" = "yes" ; then
4755         dnl find if POSIX threads are available
4756         dnl
4757         dnl the tests here are based on ACX_PTHREAD macro from autoconf macro
4758         dnl archive from http://ac-archive.sourceforge.net/
4759         dnl
4760         dnl thanks to Steven G. Johnson <stevenj@alum.mit.edu> and Alejandro
4761         dnl Forero Cuervo <bachue@bachue.com> for the original code
4762
4763         dnl TODO: cache the result
4764
4765         dnl define the list of the thread options to try in the loop below
4766         dnl with the convention that anything starting with '-' is a cpp flag
4767         dnl while anything else is a library (i.e. there is an implicit "-l")
4768         THREAD_OPTS="-pthread"
4769         case "${host}" in
4770           *-*-solaris2* | *-*-sunos4* )
4771                 if test "x$GCC" = "xyes"; then
4772                     dnl Solaris/gcc combination use this one for some reason
4773                     THREAD_OPTS="-pthreads $THREAD_OPTS"
4774                 else
4775                     THREAD_OPTS="-mt $THREAD_OPTS"
4776                 fi
4777                 ;;
4778           *-*-freebsd*)
4779                 dnl look, in order, for the kernel threads, then Linux threads
4780                 dnl and finally the userland threads
4781                 THREAD_OPTS="-kthread lthread $THREAD_OPTS c_r"
4782                 ;;
4783           *-*-darwin* | *-*-cygwin* )
4784                 dnl Darwin / Mac OS X just uses -lpthread tested below
4785                 dnl and so does Cygwin
4786                 THREAD_OPTS=""
4787                 ;;
4788           *-*-aix*)
4789                 dnl AIX calls the library libpthreads - thanks IBM!
4790                 THREAD_OPTS="pthreads"
4791                 ;;
4792           *-hp-hpux* )
4793                 if test "x$GCC" = "xyes"; then
4794                     dnl g++ versions before 3.3.2 don't support -pthread.
4795                     $CXX -dumpspecs | grep 'pthread:' >/dev/null ||
4796                         THREAD_OPTS=""
4797                 else
4798                     dnl HP-UX aCC (tested with version B3910B A.06.05 [Jul 25
4799                     dnl 2005]) supports -mt
4800                     THREAD_OPTS="-mt"
4801                 fi
4802                 ;;
4803
4804           *-*-irix* )
4805                 dnl gcc under IRIX doesn't seem to like -pthread, but it
4806                 dnl doesn't give an error for it neither, just a warning
4807                 dnl message -- but this is still very annoying
4808                 if test "x$GCC" = "xyes"; then
4809                     THREAD_OPTS=""
4810                 fi
4811                 ;;
4812
4813           *-*-*UnixWare*)
4814                 dnl flying by man pages here: Caldera online docs use this
4815                 if test "x$GCC" != "xyes"; then
4816                     THREAD_OPTS="-Ethread"
4817                 fi
4818                 ;;
4819         esac
4820
4821         dnl simply linking with libpthread should make the test below work but
4822         dnl it's far from certain that the threaded programs compiled without
4823         dnl any special switches actually work, so try it after all the others
4824         THREAD_OPTS="$THREAD_OPTS pthread none"
4825
4826         dnl now test for all possibilities
4827         THREADS_OK=no
4828         for flag in $THREAD_OPTS; do
4829             case $flag in
4830                 none)
4831                     AC_MSG_CHECKING([whether pthreads work without any flags])
4832                     ;;
4833
4834                 -*)
4835                     AC_MSG_CHECKING([whether pthreads work with $flag])
4836                     THREADS_CXXFLAGS="$flag"
4837                     ;;
4838
4839                 *)
4840                     AC_MSG_CHECKING([for the pthreads library -l$flag])
4841                     THREADS_LINK="-l$flag"
4842                     ;;
4843               esac
4844
4845               save_LIBS="$LIBS"
4846               save_CXXFLAGS="$CXXFLAGS"
4847               LIBS="$THREADS_LINK $LIBS"
4848               CXXFLAGS="$THREADS_CXXFLAGS $CXXFLAGS"
4849
4850               AC_TRY_LINK([#include <pthread.h>],
4851                           [pthread_create(0,0,0,0);],
4852                           THREADS_OK=yes)
4853
4854               LIBS="$save_LIBS"
4855               CXXFLAGS="$save_CXXFLAGS"
4856
4857               AC_MSG_RESULT($THREADS_OK)
4858               if test "x$THREADS_OK" = "xyes"; then
4859                       break;
4860               fi
4861
4862               THREADS_LINK=""
4863               THREADS_CXXFLAGS=""
4864       done
4865
4866       if test "x$THREADS_OK" != "xyes"; then
4867           wxUSE_THREADS=no
4868           AC_MSG_WARN([No thread support on this system... disabled])
4869       else
4870           dnl yes, these special compiler flags should be used with the
4871           dnl linker as well
4872           LDFLAGS="$THREADS_CXXFLAGS $LDFLAGS"
4873           LIBS="$THREADS_LINK $LIBS"
4874
4875           AC_MSG_CHECKING([if more special flags are required for pthreads])
4876           flag=no
4877           case "${host}" in
4878             *-aix*)
4879                 dnl again quoting from
4880                 dnl http://www-1.ibm.com/servers/esdd/articles/gnu.html:
4881                 dnl
4882                 dnl     When compiling and linking with -pthread, the library
4883                 dnl     search path should include -L/usr/lib/threads at the
4884                 dnl     beginning of the path.
4885                 LDFLAGS="-L/usr/lib/threads $LDFLAGS"
4886                 flag="-D_THREAD_SAFE"
4887                 ;;
4888             *-freebsd*)
4889                 flag="-D_THREAD_SAFE"
4890                 ;;
4891             *-hp-hpux* )
4892                 flag="-D_REENTRANT"
4893                 if test "x$GCC" != "xyes"; then
4894                     dnl see http://docs.hp.com/hpux/onlinedocs/2213/threads.htm
4895                     flag="$flag -D_RWSTD_MULTI_THREAD"
4896                 fi
4897                 ;;
4898             *solaris* | alpha*-osf*)
4899                 flag="-D_REENTRANT"
4900                 ;;
4901           esac
4902           AC_MSG_RESULT(${flag})
4903           if test "x$flag" != xno; then
4904               THREADS_CXXFLAGS="$THREADS_CXXFLAGS $flag"
4905           fi
4906
4907           dnl don't add these options to CPPFLAGS as cpp might not know them
4908           WXCONFIG_CXXFLAGS="$WXCONFIG_CXXFLAGS $THREADS_CXXFLAGS"
4909       fi
4910     fi
4911
4912     dnl do other tests only if we are using threads
4913     if test "$wxUSE_THREADS" = "yes" ; then
4914       AC_CHECK_FUNCS(thr_setconcurrency)
4915
4916       dnl can't use AC_CHECK_FUNCS for this one as it's usually a macro and so
4917       dnl wouldn't be found by it
4918       AC_CACHE_CHECK([for pthread_cleanup_push/pop], wx_cv_func_pthread_cleanup,
4919       [
4920         AC_TRY_COMPILE([#include <pthread.h>
4921                void ThreadCleanupFunc(void *p);
4922             ],
4923             [
4924                 void *p;
4925                 pthread_cleanup_push(ThreadCleanupFunc, p);
4926                 pthread_cleanup_pop(0);
4927             ], [
4928                wx_cv_func_pthread_cleanup=yes
4929             ], [
4930                wx_cv_func_pthread_cleanup=no
4931             ]
4932         )
4933       ])
4934       if test "x$wx_cv_func_pthread_cleanup" = "xyes"; then
4935         AC_DEFINE(wxHAVE_PTHREAD_CLEANUP)
4936       fi
4937
4938       AC_CHECK_HEADERS(sched.h)
4939       if test "$ac_cv_header_sched_h" = "yes"; then
4940           AC_CHECK_FUNC(sched_yield,
4941             AC_DEFINE(HAVE_SCHED_YIELD),
4942             [
4943                 AC_CHECK_LIB(posix4,
4944                     sched_yield,
4945                     [AC_DEFINE(HAVE_SCHED_YIELD) POSIX4_LINK=" -lposix4"],
4946                     AC_MSG_WARN(wxThread::Yield will not work properly)
4947                 )
4948             ]
4949           )
4950       fi
4951
4952       dnl to be able to set the thread priority, we need to have all of the
4953       dnl following functions:
4954       dnl   1. pthread_attr_getschedpolicy
4955       dnl   2. sched_get_priority_min and sched_get_priority_max
4956       dnl      (this one can be in either libpthread or libposix4 (under Solaris))
4957       dnl   3. pthread_attr_getschedparam and pthread_attr_setschedparam
4958       HAVE_PRIOR_FUNCS=0
4959       AC_CHECK_FUNC(pthread_attr_getschedpolicy,
4960                      [AC_CHECK_FUNC(pthread_attr_setschedparam,
4961                        [AC_CHECK_FUNC(sched_get_priority_max,
4962                            HAVE_PRIOR_FUNCS=1,
4963                            [AC_CHECK_LIB([posix4], sched_get_priority_max,
4964                              [
4965                                 HAVE_PRIOR_FUNCS=1
4966                                 POSIX4_LINK=" -lposix4"
4967                              ],
4968                            )]
4969                        )]
4970                      )]
4971                    )
4972
4973       if test "$HAVE_PRIOR_FUNCS" = 1; then
4974         AC_DEFINE(HAVE_THREAD_PRIORITY_FUNCTIONS)
4975       else
4976         AC_MSG_WARN(Setting thread priority will not work)
4977       fi
4978
4979       AC_CHECK_FUNC(pthread_cancel,
4980                     AC_DEFINE(HAVE_PTHREAD_CANCEL),
4981                     AC_MSG_WARN([wxThread::Kill() will not work properly]))
4982
4983       AC_CHECK_FUNC(pthread_attr_setstacksize,
4984                     AC_DEFINE(HAVE_PTHREAD_ATTR_SETSTACKSIZE))
4985
4986       dnl mutexattr_t initialization is done in quite different ways on different
4987       dnl platforms, so check for a few things:
4988       dnl
4989       dnl HAVE_MUTEX_RECURSIVE means that we can create recursive mutexes
4990       dnl HAVE_MUTEXATTR_SETTYPE means that we do it using
4991       dnl pthread_mutexattr_settype(PTHREAD_MUTEX_RECURSIVE) and if it is not
4992       dnl defined, we do it by directly assigned
4993       dnl PTHREAD_MUTEX_RECURSIVE_MUTEX_INITIALIZER_NP to attr
4994
4995       AC_CACHE_CHECK([for pthread_mutexattr_t], wx_cv_type_pthread_mutexattr_t,
4996       [
4997         AC_TRY_COMPILE([#include <pthread.h>],
4998             [
4999                pthread_mutexattr_t attr;
5000                pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
5001             ],
5002             wx_cv_type_pthread_mutexattr_t=yes,
5003             wx_cv_type_pthread_mutexattr_t=no
5004         )
5005       ])
5006
5007       if test "$wx_cv_type_pthread_mutexattr_t" = "yes"; then
5008         AC_DEFINE(HAVE_PTHREAD_MUTEXATTR_T)
5009
5010         dnl check if we already have the declaration we need, it is not
5011         dnl present in some systems' headers
5012         AC_CACHE_CHECK([for pthread_mutexattr_settype declaration],
5013                        wx_cv_func_pthread_mutexattr_settype_decl, [
5014                        AC_TRY_COMPILE([#include <pthread.h>],
5015                            [
5016                                pthread_mutexattr_t attr;
5017                                pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
5018                            ],
5019                            wx_cv_func_pthread_mutexattr_settype_decl=yes,
5020                            wx_cv_func_pthread_mutexattr_settype_decl=no
5021                        )
5022         ])
5023         if test "$wx_cv_func_pthread_mutexattr_settype_decl" = "yes"; then
5024             AC_DEFINE(HAVE_PTHREAD_MUTEXATTR_SETTYPE_DECL)
5025         fi
5026       else
5027         dnl don't despair, there may be another way to do it
5028         AC_CACHE_CHECK([for PTHREAD_RECURSIVE_MUTEX_INITIALIZER],
5029                        wx_cv_type_pthread_rec_mutex_init,
5030         [
5031             AC_TRY_COMPILE([#include <pthread.h>],
5032                 [
5033                     pthread_mutex_t attr = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP;
5034                 ], [
5035                     wx_cv_type_pthread_rec_mutex_init=yes
5036                 ], [
5037                     wx_cv_type_pthread_rec_mutex_init=no
5038                 ]
5039             )
5040         ])
5041         if test "$wx_cv_type_pthread_rec_mutex_init" = "yes"; then
5042           AC_DEFINE(HAVE_PTHREAD_RECURSIVE_MUTEX_INITIALIZER)
5043         else
5044           dnl this may break code working elsewhere, so at least warn about it
5045           AC_MSG_WARN([wxMutex won't be recursive on this platform])
5046         fi
5047       fi
5048     fi
5049
5050 dnl from if !MSW
5051 else
5052     if test "$wxUSE_THREADS" = "yes" ; then
5053       case "${host}" in
5054         *-*-mingw32* )
5055             dnl check if the compiler accepts -mthreads
5056             AC_CACHE_CHECK([if compiler supports -mthreads],
5057                 wx_cv_cflags_mthread,
5058                 [
5059                     CXXFLAGS_OLD="$CXXFLAGS"
5060                     CXXFLAGS="-mthreads $CXXFLAGS"
5061                     AC_TRY_COMPILE([], [],
5062                         wx_cv_cflags_mthread=yes,
5063                         wx_cv_cflags_mthread=no
5064                     )
5065                 ]
5066             )
5067
5068             if test "$wx_cv_cflags_mthread" = "yes"; then
5069                 dnl it does, use it
5070                 WXCONFIG_CXXFLAGS="$WXCONFIG_CXXFLAGS -mthreads"
5071                 LDFLAGS="$LDFLAGS -mthreads"
5072             else
5073                 dnl it doesn't
5074                 CXXFLAGS="$CXXFLAGS_OLD"
5075             fi
5076         ;;
5077         *-pc-os2*emx )
5078             WXCONFIG_CFLAGS="$WXCONFIG_CFLAGS -Zmt -D__ST_MT_ERRNO__"
5079             WXCONFIG_CXXFLAGS="$WXCONFIG_CXXFLAGS -Zmt -D__ST_MT_ERRNO__"
5080             LDFLAGS="$LDFLAGS -Zmt"
5081         ;;
5082       esac
5083     fi
5084 fi
5085
5086 AC_CHECK_FUNC(localtime_r, [ AC_DEFINE(HAVE_LOCALTIME_R) ])
5087 AC_CHECK_FUNC(gmtime_r, [ AC_DEFINE(HAVE_GMTIME_R) ])
5088 AC_CHECK_FUNC(readdir_r, [ AC_DEFINE(HAVE_READDIR_R) ])
5089 dnl By preference, we probably should use getaddrinfo which avoids thread
5090 dnl safety issues and supports IPv6, however there currently is no code
5091 dnl for it, so testing for it is temporarily disabled and we are restricted
5092 dnl to gethostbyname_r/gethostbyaddr_r  and getservbyname_r
5093
5094 dnl AC_CHECK_FUNC(getaddrinfo, AC_DEFINE(HAVE_GETADDRINFO), [
5095     dnl no getaddrinfo, so check for gethostbyname_r and
5096     dnl related functions (taken from python's configure.in)
5097     dnl sigh -- gethostbyname_r is a mess; it can have 3, 5 or 6 arguments
5098       AX_FUNC_WHICH_GETHOSTBYNAME_R
5099       if test "x$ac_cv_func_which_gethostbyname_r" = "xno" -o \
5100               "x$ac_cv_func_which_gethostbyname_r" = "xunknown" ; then
5101           AC_CHECK_FUNC(gethostbyname, [ AC_DEFINE(HAVE_GETHOSTBYNAME) ])
5102       fi
5103       dnl A similar test for getservbyname_r
5104       dnl I'm tempted to just not do this test which is taking much time and
5105       dnl do something similar as for gethostbyaddr_r, but OTOH the macro
5106       dnl doing the test already exists, so using it is easy enough.     - SN
5107       AC_raf_FUNC_WHICH_GETSERVBYNAME_R
5108       if test "x$ac_cv_func_which_getservbyname_r" = "xno" -o \
5109               "x$ac_cv_func_which_getservbyname_r" = "xunknown" ; then
5110           AC_CHECK_FUNCS(getservbyname,[ AC_DEFINE(HAVE_GETSERVBYNAME) ])
5111       fi
5112       dnl For gethostbyaddr_r, we currently do no separate test, instead, we
5113       dnl silently assume it's available exactly if gethostbyname_r is
5114       dnl available and always requires two more arguments than
5115       dnl gethostbyname_r.
5116       dnl (also, I'm lazy and there no m4 file that's ready for use for this
5117       dnl  function, although it should be easy to rewrite the gethostbyname_r
5118       dnl  check to fit this case, if it's really needed.                - SN )
5119 dnl    ]
5120 dnl )
5121
5122 if test "$wxUSE_THREADS" = "yes"; then
5123   AC_DEFINE(wxUSE_THREADS)
5124
5125   SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS thread"
5126 else
5127   dnl on some systems, _REENTRANT should be defined if we want to use any _r()
5128   dnl functions - add tests for other functions here as well
5129   if test "$ac_cv_func_strtok_r" = "yes"; then
5130     AC_MSG_CHECKING(if -D_REENTRANT is needed)
5131     if test "$NEEDS_D_REENTRANT_FOR_R_FUNCS" = 1; then
5132         WXCONFIG_CPPFLAGS="$WXCONFIG_CPPFLAGS -D_REENTRANT"
5133         AC_MSG_RESULT(yes)
5134     else
5135         AC_MSG_RESULT(no)
5136     fi
5137   fi
5138 fi
5139
5140 if test "$WXGTK20" = 1 ; then
5141   AC_DEFINE_UNQUOTED(__WXGTK20__,$WXGTK20)
5142   WXGTK12=1
5143 fi
5144
5145 if test "$WXGTK12" = 1 ; then
5146   AC_DEFINE_UNQUOTED(__WXGTK12__,$WXGTK12)
5147 fi
5148
5149 if test "$WXGTK127" = 1 ; then
5150   AC_DEFINE_UNQUOTED(__WXGTK127__,$WXGTK127)
5151 fi
5152
5153 if test "$WXGPE" = 1 ; then
5154   AC_DEFINE_UNQUOTED(__WXGPE__,$WXGPE)
5155 fi
5156
5157 dnl DEBUG_CFLAGS contains debugging options (supposed to be the same for C and C++
5158 dnl compilers: we'd need a separate DEBUG_CXXFLAGS if this is ever not the case)
5159 DEBUG_CFLAGS=
5160 if test "$wxUSE_DEBUG_INFO" = "yes" ; then
5161     DEBUG_CFLAGS="-g"
5162     wxUSE_OPTIMISE=no
5163 fi
5164
5165 if test "$wxUSE_DEBUG_GDB" = "yes" ; then
5166     wxUSE_DEBUG_INFO=yes
5167     if test "$GCC" = yes; then
5168         DEBUG_CFLAGS="-ggdb"
5169     fi
5170 fi
5171
5172 if test "$wxUSE_DEBUG_FLAG" = "yes" ; then
5173     AC_DEFINE(WXDEBUG)
5174     WXCONFIG_CPPFLAGS="$WXCONFIG_CPPFLAGS -D__WXDEBUG__"
5175 else
5176     if test "$wxUSE_GTK" = 1 ; then
5177         if test "x$wxGTK_VERSION" = "x1" ; then
5178             CPPFLAGS="-DGTK_NO_CHECK_CASTS $CPPFLAGS"
5179         fi
5180     fi
5181 fi
5182
5183 if test "$wxUSE_MEM_TRACING" = "yes" ; then
5184     AC_DEFINE(wxUSE_MEMORY_TRACING)
5185     AC_DEFINE(wxUSE_GLOBAL_MEMORY_OPERATORS)
5186     AC_DEFINE(wxUSE_DEBUG_NEW_ALWAYS)
5187     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS memcheck"
5188 fi
5189
5190 if test "$wxUSE_DMALLOC" = "yes" ; then
5191     DMALLOC_LIBS="-ldmallocthcxx"
5192 fi
5193
5194 dnl cc/cxx/ld option for profiling
5195 PROFILE_FLAGS=
5196 if test "$wxUSE_PROFILE" = "yes" ; then
5197     PROFILE_FLAGS=" -pg"
5198 fi
5199
5200 if test "$GCC" = "yes" ; then
5201     if test "$wxUSE_NO_RTTI" = "yes" ; then
5202         WXCONFIG_CXXFLAGS="$WXCONFIG_CXXFLAGS -fno-rtti"
5203     fi
5204     if test "$wxUSE_NO_EXCEPTIONS" = "yes" ; then
5205         WXCONFIG_CXXFLAGS="$WXCONFIG_CXXFLAGS -fno-exceptions"
5206     fi
5207     if test "$wxUSE_PERMISSIVE" = "yes" ; then
5208         WXCONFIG_CFLAGS="$WXCONFIG_CFLAGS -fpermissive"
5209     fi
5210
5211     dnl Ian Brown <ian.brown@printsoft.de> reports that versions of gcc before
5212     dnl 3.0 overflow the table of contents on rs6000 as they create an entry
5213     dnl for each subroutine by default -- using the switch below only creates
5214     dnl one entry per file instead at the price of minor performance penalty
5215     dnl
5216     dnl As of wx2.4 a bug in the hppa gcc compiler causes a similar problem
5217     dnl without -ffunction-sections.  No idea how long we'll need to maintain
5218     dnl this, or even the extent of gcc/wx version combinations affected, but
5219     dnl also as above, this 'fix' does not come without side effects.
5220     dnl
5221     dnl TODO: test for the gcc version here (how?)
5222     case "${host}" in
5223       powerpc*-*-aix* )
5224         WXCONFIG_CFLAGS="$WXCONFIG_CFLAGS -mminimal-toc"
5225         ;;
5226       *-hppa* )
5227         WXCONFIG_CFLAGS="$WXCONFIG_CFLAGS -ffunction-sections"
5228         ;;
5229     esac
5230 fi
5231
5232 dnl C/C++ compiler option for optimization (supposed to be the same for both)
5233 OPTIMISE_CFLAGS=
5234 if test "$wxUSE_OPTIMISE" = "no" ; then
5235     if test "$GCC" = yes ; then
5236         dnl use -O0 because compiling with it is faster than compiling with no
5237         dnl optimization options at all (at least with g++ 3.2)
5238         OPTIMISE_CFLAGS="-O0"
5239     fi
5240 else
5241     if test "$GCC" = yes ; then
5242         case "${host}" in
5243             *-pc-os2_emx | *-pc-os2-emx )
5244                 dnl Not all of the supported gcc versions understand
5245                 dnl -fstrict-aliasing and none actually needs it (yet).
5246                 OPTIMISE_CFLAGS="-O2"
5247             ;;
5248             *)
5249                 dnl Switch on optimisation but keep strict-aliasing off for
5250                 dnl now (see -fstrict-aliasing in the gcc manual). When it is
5251                 dnl switched back on consider using -Wstrict-aliasing=2.
5252                 OPTIMISE_CFLAGS="-O2 -fno-strict-aliasing"
5253             ;;
5254         esac
5255     else
5256         OPTIMISE_CFLAGS="-O"
5257     fi
5258 fi
5259
5260 dnl ---------------------------------------------------------------------------
5261 dnl compatibility level
5262 dnl ---------------------------------------------------------------------------
5263
5264 if test "x$WXWIN_COMPATIBILITY_2_4" = "xyes"; then
5265     AC_DEFINE(WXWIN_COMPATIBILITY_2_4)
5266
5267     WXWIN_COMPATIBILITY_2_6="yes"
5268 fi
5269
5270 if test "x$WXWIN_COMPATIBILITY_2_6" != "xno"; then
5271     AC_DEFINE(WXWIN_COMPATIBILITY_2_6)
5272 fi
5273
5274 dnl ---------------------------------------------------------------------------
5275 dnl the library may be built without GUI classes at all
5276 dnl ---------------------------------------------------------------------------
5277
5278 if test "$wxUSE_GUI" = "yes"; then
5279     AC_DEFINE(wxUSE_GUI)
5280
5281     dnl the things we always pull in the GUI version of the library:
5282     dnl 1. basic things like wxApp, wxWindow, wxControl, wxFrame, wxDialog (the
5283     dnl    library really can't be built without those)
5284     dnl 2. basic controls: wxButton, wxStaticText, wxTextCtrl (these are used in
5285     dnl    almost any program and the first 2 are needed to show a message box
5286     dnl    which want to be always able to do)
5287     dnl 3. GDI stuff: icon, cursors and all that. Although it would be very nice
5288     dnl    to compile without them (if the app doesn't do any drawing, it doesn't
5289     dnl    need the dcs, pens, brushes, ...), this just can't be done now
5290     dnl 4. menu stuff: wxMenu, wxMenuBar, wxMenuItem
5291     dnl 5. misc stuff: timers, settings, message box
5292 fi
5293
5294 dnl ---------------------------------------------------------------------------
5295 dnl Unix/Windows
5296 dnl ---------------------------------------------------------------------------
5297
5298 if test "$wxUSE_UNIX" = "yes"; then
5299   AC_DEFINE(wxUSE_UNIX)
5300 fi
5301
5302 dnl ------------------------------------------------------------------------
5303 dnl DLL support
5304 dnl ------------------------------------------------------------------------
5305
5306 dnl under MSW we always have LoadLibrary/GetProcAddress
5307 if test "$TOOLKIT" != "MSW" -a "$USE_OS2" != 1; then
5308
5309     HAVE_DL_FUNCS=0
5310     HAVE_SHL_FUNCS=0
5311     if test "$wxUSE_DYNAMIC_LOADER" = "yes" -o "$wxUSE_DYNLIB_CLASS" = "yes" ; then
5312         if test "$USE_DARWIN" = 1; then
5313             dnl dlopen/dlerror is implemented in dynlib.cpp for Darwin/Mac OS X
5314             HAVE_DL_FUNCS=1
5315         elif test "$USE_DOS" = 1; then
5316             HAVE_DL_FUNCS=0
5317         else
5318             dnl the test is a bit complicated because we check for dlopen() both with
5319             dnl and without -ldl and we also try to find shl_load() if there is no
5320             dnl dlopen() on this system
5321             AC_CHECK_FUNCS(dlopen,
5322             [
5323                 AC_DEFINE(HAVE_DLOPEN)
5324                 HAVE_DL_FUNCS=1
5325             ],
5326             [
5327                 AC_CHECK_LIB(dl, dlopen,
5328                             [
5329                                 AC_DEFINE(HAVE_DLOPEN)
5330                                 HAVE_DL_FUNCS=1
5331                                 DL_LINK=" -ldl$DL_LINK"
5332                             ],
5333                             [
5334                                 AC_CHECK_FUNCS(shl_load,
5335                                               [
5336                                                 AC_DEFINE(HAVE_SHL_LOAD)
5337                                                 HAVE_SHL_FUNCS=1
5338                                               ],
5339                                               [
5340                                                 AC_CHECK_LIB(shl_load, dld,
5341                                                              [
5342                                                                 HAVE_SHL_FUNCS=1
5343                                                                 DL_LINK=" -ldld$DL_LINK"
5344                                                              ])
5345                                               ])
5346                             ])
5347             ])
5348
5349         dnl check also for dlerror()
5350         if test "$HAVE_DL_FUNCS" = 1; then
5351             AC_CHECK_FUNCS(dlerror,
5352                 AC_DEFINE(HAVE_DLERROR),
5353                 [
5354                     AC_CHECK_LIB(dl, dlerror, AC_DEFINE(HAVE_DLERROR))
5355                 ]
5356             )
5357         fi
5358         fi
5359
5360         if test "$HAVE_DL_FUNCS" = 0; then
5361             if test "$HAVE_SHL_FUNCS" = 0; then
5362               if test "$USE_UNIX" = 1 -o "$USE_DOS" = 1; then
5363                   AC_MSG_WARN([Missing dynamic loading support, several features will be disabled])
5364                   wxUSE_DYNAMIC_LOADER=no
5365                   wxUSE_DYNLIB_CLASS=no
5366               else
5367                   AC_MSG_WARN([Assuming wxLibrary class works on this platform])
5368               fi
5369             fi
5370         fi
5371     fi
5372 fi
5373
5374 if test "$wxUSE_DYNAMIC_LOADER" = "yes" ; then
5375     AC_DEFINE(wxUSE_DYNAMIC_LOADER)
5376 fi
5377 if test "$wxUSE_DYNLIB_CLASS" = "yes" ; then
5378     AC_DEFINE(wxUSE_DYNLIB_CLASS)
5379 fi
5380
5381
5382 dnl ---------------------------------------------------------------------------
5383 dnl Verify consistency of plugins/monolithic/shared settings:
5384 dnl ---------------------------------------------------------------------------
5385
5386 if test "$wxUSE_PLUGINS" = "yes" ; then
5387     if test "$wxUSE_SHARED" = "no" ; then
5388         AC_MSG_WARN([plugins supported only in shared build, disabling])
5389         wxUSE_PLUGINS=no
5390     fi
5391     if test "$wxUSE_MONOLITHIC" = "yes" ; then
5392         AC_MSG_WARN([plugins not supported monolithic build, disabling])
5393         wxUSE_PLUGINS=no
5394     fi
5395     if test "$wxUSE_DYNLIB_CLASS" = "no" ; then
5396         AC_MSG_WARN([plugins require wxDynamicLibrary, disabling])
5397         wxUSE_PLUGINS=no
5398     fi
5399     if test "$wxUSE_PLUGINS" = "yes" ; then
5400         AC_DEFINE(wxUSE_PLUGINS)
5401     fi
5402 fi
5403
5404 dnl ---------------------------------------------------------------------------
5405 dnl Register non-GUI class options for makefiles and setup.h
5406 dnl ---------------------------------------------------------------------------
5407
5408 if test "$wxUSE_STL" = "yes"; then
5409   AC_DEFINE(wxUSE_STL)
5410 fi
5411
5412 if test "$wxUSE_APPLE_IEEE" = "yes"; then
5413   AC_DEFINE(wxUSE_APPLE_IEEE)
5414 fi
5415
5416 if test "$wxUSE_TIMER" = "yes"; then
5417   AC_DEFINE(wxUSE_TIMER)
5418 fi
5419
5420 dnl Unix implementation needs additional checks because audio support
5421 dnl comes in many favours:
5422 if test "$USE_UNIX" = "1" ; then
5423     dnl it's not enough to check for just the header because OSS under NetBSD
5424     dnl redefines ioctl as oss_ioctrl inside it and so we also need to test
5425     dnl whether we need -lossaudio at link-time
5426     AC_CACHE_CHECK([for SNDCTL_DSP_SPEED in sys/soundcard.h], ac_cv_header_sys_soundcard, [
5427         AC_TRY_LINK([
5428                 #include <sys/ioctl.h>
5429                 #include <sys/soundcard.h>
5430             ],
5431             [
5432                 ioctl(0, SNDCTL_DSP_SPEED, 0);
5433             ],
5434             ac_cv_header_sys_soundcard=yes,
5435             [
5436                 saveLibs="$LIBS"
5437                 LIBS="$saveLibs -lossaudio"
5438                 AC_TRY_LINK([
5439                         #include <sys/ioctl.h>
5440                         #include <sys/soundcard.h>
5441                     ],
5442                     [
5443                         ioctl(0, SNDCTL_DSP_SPEED, 0);
5444                     ],
5445                     ac_cv_header_sys_soundcard=yes,
5446                     [
5447                         LIBS="$saveLibs"
5448                         ac_cv_header_sys_soundcard=no
5449                     ]
5450                 )
5451             ]
5452         )
5453     ])
5454
5455     if test "$ac_cv_header_sys_soundcard" = "yes"; then
5456         AC_DEFINE(HAVE_SYS_SOUNDCARD_H)
5457     else
5458         DISABLED_CONTRIB="$DISABLED_CONTRIB mmedia"
5459     fi
5460 fi
5461 WITH_PLUGIN_SDL=0
5462 if test "$wxUSE_SOUND" = "yes"; then
5463   if test "$USE_UNIX" = "1" ; then
5464     if test "$wxUSE_LIBSDL" != "no"; then
5465       AM_PATH_SDL([1.2.0],
5466                   [
5467                     EXTRALIBS_SDL="$SDL_LIBS"
5468                     CXXFLAGS="$SDL_CFLAGS $CXXFLAGS"
5469                     AC_DEFINE(wxUSE_LIBSDL)
5470                   ],
5471                   [wxUSE_LIBSDL="no"])
5472       if test "$wxUSE_LIBSDL" = "yes" -a "$wxUSE_PLUGINS" = "yes" ; then
5473         WITH_PLUGIN_SDL=1
5474       fi
5475     fi
5476   fi
5477
5478   AC_DEFINE(wxUSE_SOUND)
5479   SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS sound"
5480 fi
5481
5482 if test "$WXGTK20" = 1; then
5483     if test "$wxUSE_PRINTING_ARCHITECTURE" = "yes" ; then
5484         if test "$wxUSE_LIBGNOMEPRINT" = "yes" ; then
5485
5486                 PKG_CHECK_MODULES(LIBGNOMEPRINTUI,
5487                                   [libgnomeprintui-2.2 >= 2.8],
5488                     [
5489 dnl                     EXTRALIBS_GNOMEPRINT="$LIBGNOMEPRINTUI_LIBS"
5490                         CXXFLAGS="$LIBGNOMEPRINTUI_CFLAGS $CXXFLAGS"
5491                         AC_DEFINE(wxUSE_LIBGNOMEPRINT)
5492                     ],
5493                     [
5494                         AC_MSG_WARN([libgnomeprintui not found, library will use standard PostScript printing])
5495                         wxUSE_LIBGNOMEPRINT="no"
5496                     ]
5497                 )
5498         fi
5499     fi
5500 fi
5501
5502 if test "$WXGTK20" = 1; then
5503     if test "$wxUSE_MIMETYPE" = "yes" ; then
5504         if test "$wxUSE_LIBGNOMEVFS" = "yes" ; then
5505
5506                 PKG_CHECK_MODULES(GNOMEVFS,
5507                                   [gnome-vfs-2.0 >= 2.0],
5508                     [
5509 dnl                     EXTRALIBS_GNOMEVFS="$LIBGNOMEVFS_LIBS"
5510                         CXXFLAGS="$GNOMEVFS_CFLAGS $CXXFLAGS"
5511                         AC_DEFINE(wxUSE_LIBGNOMEVFS)
5512                     ],
5513                     [
5514                         AC_MSG_WARN([libgnomevfs not found, library won't be able to associate MIME type])
5515                         wxUSE_LIBGNOMEVFS="no"
5516                     ]
5517                 )
5518         fi
5519     fi
5520 fi
5521
5522 if test "$WXGTK20" = 1; then
5523     if test "$wxUSE_LIBHILDON" = "yes" ; then
5524         PKG_CHECK_MODULES(HILDON, 
5525                           [hildon-lgpl >= 0.9],
5526             [
5527                 EXTRALIBS_HILDON="$HILDON_LIBS"
5528                 CXXFLAGS="$CXXFLAGS $HILDON_CFLAGS"
5529                 AC_DEFINE(wxUSE_LIBHILDON)
5530             ],
5531             [
5532                 AC_MSG_WARN([libhildon_lgpl not found])
5533                         wxUSE_LIBHILDON="no"
5534             ]
5535         )
5536     fi
5537 fi
5538
5539 if test "$wxUSE_CMDLINE_PARSER" = "yes"; then
5540   AC_DEFINE(wxUSE_CMDLINE_PARSER)
5541 fi
5542
5543 if test "$wxUSE_STOPWATCH" = "yes"; then
5544   AC_DEFINE(wxUSE_STOPWATCH)
5545 fi
5546
5547 if test "$wxUSE_DATETIME" = "yes"; then
5548   AC_DEFINE(wxUSE_DATETIME)
5549 fi
5550
5551 if test "$wxUSE_FILE" = "yes"; then
5552   AC_DEFINE(wxUSE_FILE)
5553 fi
5554
5555 if test "$wxUSE_FFILE" = "yes"; then
5556   AC_DEFINE(wxUSE_FFILE)
5557 fi
5558
5559 if test "$wxUSE_FILESYSTEM" = "yes"; then
5560   AC_DEFINE(wxUSE_FILESYSTEM)
5561 fi
5562
5563 if test "$wxUSE_FS_ZIP" = "yes"; then
5564   AC_DEFINE(wxUSE_FS_ZIP)
5565 fi
5566
5567 if test "$wxUSE_ARCHIVE_STREAMS" = "yes"; then
5568   AC_DEFINE(wxUSE_ARCHIVE_STREAMS)
5569 fi
5570
5571 if test "$wxUSE_ZIPSTREAM" = "yes"; then
5572   if test "$wxUSE_ARCHIVE_STREAMS" != "yes"; then
5573     AC_MSG_WARN(wxZip requires wxArchive... disabled)
5574   elif test "$wxUSE_ZLIB" = "no"; then
5575     AC_MSG_WARN(wxZip requires wxZlib... disabled)
5576   else
5577     AC_DEFINE(wxUSE_ZIPSTREAM)
5578   fi
5579 fi
5580
5581 if test "$wxUSE_ON_FATAL_EXCEPTION" = "yes"; then
5582   if test "$USE_UNIX" != 1; then
5583     AC_MSG_WARN([Catching fatal exceptions not currently supported on this system, wxApp::OnFatalException will not be called])
5584     wxUSE_ON_FATAL_EXCEPTION=no
5585   else
5586     AC_DEFINE(wxUSE_ON_FATAL_EXCEPTION)
5587   fi
5588 fi
5589
5590 if test "$wxUSE_STACKWALKER" = "yes"; then
5591     AC_DEFINE(wxUSE_STACKWALKER)
5592 fi
5593
5594 if test "$wxUSE_DEBUGREPORT" = "yes"; then
5595     if test "$USE_UNIX" != "1" -a "$USE_WIN32" != "1"; then
5596         AC_MSG_WARN([Creating debug reports not currently supported on this system, disabled])
5597         wxUSE_DEBUGREPORT=no
5598     else
5599         AC_DEFINE(wxUSE_DEBUGREPORT)
5600         if test "$wxUSE_ON_FATAL_EXCEPTION" = "yes"; then
5601             SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS debugrpt"
5602         fi
5603     fi
5604 fi
5605
5606 if test "$wxUSE_SNGLINST_CHECKER" = "yes"; then
5607   AC_DEFINE(wxUSE_SNGLINST_CHECKER)
5608 fi
5609
5610 if test "$wxUSE_BUSYINFO" = "yes"; then
5611   AC_DEFINE(wxUSE_BUSYINFO)
5612 fi
5613
5614 if test "$wxUSE_STD_IOSTREAM" = "yes"; then
5615   AC_DEFINE(wxUSE_STD_IOSTREAM)
5616 fi
5617
5618 if test "$wxUSE_STD_STRING" = "yes"; then
5619   AC_DEFINE(wxUSE_STD_STRING)
5620 fi
5621
5622 if test "$wxUSE_STDPATHS" = "yes"; then
5623   AC_DEFINE(wxUSE_STDPATHS)
5624 fi
5625
5626 if test "$wxUSE_TEXTBUFFER" = "yes"; then
5627     AC_DEFINE(wxUSE_TEXTBUFFER)
5628 fi
5629
5630 if test "$wxUSE_TEXTFILE" = "yes"; then
5631   if test "$wxUSE_FILE" != "yes" -o "$wxUSE_TEXTBUFFER" != "yes" ; then
5632     AC_MSG_WARN(wxTextFile requires wxFile and wxTextBuffer... disabled)
5633   else
5634     AC_DEFINE(wxUSE_TEXTFILE)
5635   fi
5636 fi
5637
5638 if test "$wxUSE_CONFIG" = "yes" ; then
5639   if test "$wxUSE_TEXTFILE" != "yes"; then
5640     AC_MSG_WARN(wxConfig requires wxTextFile... disabled)
5641   else
5642     AC_DEFINE(wxUSE_CONFIG)
5643     AC_DEFINE(wxUSE_CONFIG_NATIVE)
5644     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS config"
5645   fi
5646 fi
5647
5648 if test "$wxUSE_INTL" = "yes" ; then
5649   if test "$wxUSE_FILE" != "yes"; then
5650     AC_MSG_WARN(I18n code requires wxFile... disabled)
5651   else
5652     AC_DEFINE(wxUSE_INTL)
5653     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS internat"
5654     GUIDIST="$GUIDIST INTL_DIST"
5655   fi
5656 fi
5657
5658 if test "$wxUSE_LOG" = "yes"; then
5659   AC_DEFINE(wxUSE_LOG)
5660
5661     if test "$wxUSE_LOGGUI" = "yes"; then
5662       AC_DEFINE(wxUSE_LOGGUI)
5663     fi
5664
5665     if test "$wxUSE_LOGWINDOW" = "yes"; then
5666       AC_DEFINE(wxUSE_LOGWINDOW)
5667     fi
5668
5669     if test "$wxUSE_LOGDIALOG" = "yes"; then
5670       AC_DEFINE(wxUSE_LOG_DIALOG)
5671     fi
5672
5673     dnl the keyboard sample requires wxUSE_LOG
5674     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS keyboard"
5675 fi
5676
5677 if test "$wxUSE_LONGLONG" = "yes"; then
5678   AC_DEFINE(wxUSE_LONGLONG)
5679 fi
5680
5681 if test "$wxUSE_GEOMETRY" = "yes"; then
5682   AC_DEFINE(wxUSE_GEOMETRY)
5683 fi
5684
5685 if test "$wxUSE_STREAMS" = "yes" ; then
5686   AC_DEFINE(wxUSE_STREAMS)
5687 fi
5688
5689 if test "$wxUSE_PRINTF_POS_PARAMS" = "yes"; then
5690   AC_DEFINE(wxUSE_PRINTF_POS_PARAMS)
5691 fi
5692
5693
5694 dnl ---------------------------------------------------------------------------
5695 dnl time/date functions
5696 dnl ---------------------------------------------------------------------------
5697
5698 if test "$wxUSE_DATETIME" = "yes"; then
5699     dnl check for strptime and for its declaration as some systems lack it
5700     AC_CHECK_FUNCS(strptime)
5701     if test "$ac_cv_func_strptime" = "yes"; then
5702         AC_CACHE_CHECK([for strptime declaration], wx_cv_func_strptime_decl,
5703             [
5704                 AC_TRY_COMPILE(
5705                     [
5706                         #include <time.h>
5707                     ],
5708                     [
5709                         struct tm t;
5710                         strptime("foo", "bar", &t);
5711                     ],
5712                     wx_cv_func_strptime_decl=yes,
5713                     wx_cv_func_strptime_decl=no
5714                 )
5715             ]
5716         )
5717     fi
5718     if test "$wx_cv_func_strptime_decl" = "yes"; then
5719         AC_DEFINE(HAVE_STRPTIME_DECL)
5720     fi
5721
5722     dnl check for timezone variable
5723     dnl   doesn't exist under Darwin / Mac OS X which uses tm_gmtoff instead
5724     AC_CACHE_CHECK(for timezone variable in <time.h>,
5725                    wx_cv_var_timezone,
5726                    [
5727                         AC_TRY_COMPILE(
5728                             [
5729                                 #include <time.h>
5730                             ],
5731                             [
5732                                 int tz;
5733                                 tz = timezone;
5734                             ],
5735                             [
5736                                 wx_cv_var_timezone=timezone
5737                             ],
5738                             [
5739                                 AC_TRY_COMPILE(
5740                                     [
5741                                         #include <time.h>
5742                                     ],
5743                                     [
5744                                         int tz;
5745                                         tz = _timezone;
5746                                     ],
5747                                     [
5748                                         wx_cv_var_timezone=_timezone
5749                                     ],
5750                                     [
5751                                         AC_TRY_COMPILE(
5752                                             [
5753                                                 #include <time.h>
5754                                             ],
5755                                             [
5756                                                 int tz;
5757                                                 tz = __timezone;
5758                                             ],
5759                                             [
5760                                                 wx_cv_var_timezone=__timezone
5761                                             ],
5762                                             [
5763                                                 if test "$USE_DOS" = 0 ; then
5764                                                     AC_MSG_WARN(no timezone variable, will use tm_gmtoff instead)
5765                                                 fi
5766                                             ]
5767                                         )
5768                                     ]
5769                                 )
5770                             ]
5771                         )
5772                    ]
5773     )
5774
5775     dnl as we want $wx_cv_var_timezone to be expanded, use AC_DEFINE_UNQUOTED
5776     if test "x$wx_cv_var_timezone" != x ; then
5777         AC_DEFINE_UNQUOTED(WX_TIMEZONE, $wx_cv_var_timezone)
5778     fi
5779
5780     dnl check for localtime (it's POSIX, but the check can do no harm...)
5781     AC_CHECK_FUNCS(localtime)
5782
5783     if test "$ac_cv_func_localtime" = "yes"; then
5784         AC_CACHE_CHECK(for tm_gmtoff in struct tm,
5785                        wx_cv_struct_tm_has_gmtoff,
5786         [
5787             AC_TRY_COMPILE(
5788                 [
5789                     #include <time.h>
5790                 ],
5791                 [
5792                     struct tm tm;
5793                     tm.tm_gmtoff++;
5794                 ],
5795                 [
5796                     wx_cv_struct_tm_has_gmtoff=yes
5797                 ],
5798                 wx_cv_struct_tm_has_gmtoff=no
5799             )
5800         ])
5801     fi
5802
5803     if test "$wx_cv_struct_tm_has_gmtoff" = "yes"; then
5804         AC_DEFINE(WX_GMTOFF_IN_TM)
5805     fi
5806
5807     dnl check for gettimeofday (SVr4, BSD 4.3) and ftime (V7, BSD 4.3) for the
5808     dnl function to be used for high resolution timers
5809     AC_CHECK_FUNCS(gettimeofday ftime, break)
5810
5811     if test "$ac_cv_func_gettimeofday" = "yes"; then
5812         AC_CACHE_CHECK([whether gettimeofday takes two arguments],
5813                        wx_cv_func_gettimeofday_has_2_args,
5814         [
5815             dnl on some _really_ old systems it takes only 1 argument
5816             AC_TRY_COMPILE(
5817                 [
5818                     #include <sys/time.h>
5819                     #include <unistd.h>
5820                 ],
5821                 [
5822                     struct timeval tv;
5823                     gettimeofday(&tv, NULL);
5824                 ],
5825                 wx_cv_func_gettimeofday_has_2_args=yes,
5826                 AC_TRY_COMPILE(
5827                     [
5828                         #include <sys/time.h>
5829                         #include <unistd.h>
5830                     ],
5831                     [
5832                         struct timeval tv;
5833                         gettimeofday(&tv);
5834                     ],
5835                     wx_cv_func_gettimeofday_has_2_args=no,
5836                     [
5837                         AC_MSG_WARN([failed to determine number of gettimeofday() arguments])
5838                         wx_cv_func_gettimeofday_has_2_args=unknown
5839                     ]
5840                 )
5841             )
5842         ])
5843
5844         if test "$wx_cv_func_gettimeofday_has_2_args" != "yes"; then
5845             AC_DEFINE(WX_GETTIMEOFDAY_NO_TZ)
5846         fi
5847     fi
5848
5849     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS typetest"
5850 fi
5851
5852 dnl ------------------------------------------------------------------------
5853 dnl wxSocket
5854 dnl ------------------------------------------------------------------------
5855
5856 dnl VZ: the GUI hooks wxSocket needs are not implemented yet in some toolkits
5857 if test "$wxUSE_SOCKETS" = "yes"; then
5858     if test "$wxUSE_MGL" = "1"; then
5859         AC_MSG_WARN([wxSocket not yet supported under MGL... disabled])
5860         wxUSE_SOCKETS="no"
5861     fi
5862 fi
5863
5864 if test "$wxUSE_SOCKETS" = "yes"; then
5865     dnl under MSW we always have sockets
5866     if test "$TOOLKIT" != "MSW"; then
5867         dnl under Solaris and OS/2, socket functions live in -lsocket
5868         AC_CHECK_FUNC(socket,,
5869             [
5870                 AC_CHECK_LIB(socket, socket,
5871                     if test "$INET_LINK" != " -lsocket"; then
5872                         INET_LINK="$INET_LINK -lsocket"
5873                     fi,
5874                     [
5875                         AC_MSG_WARN([socket library not found - sockets will be disabled])
5876                         wxUSE_SOCKETS=no
5877                     ]
5878                 )
5879             ]
5880         )
5881     fi
5882 fi
5883
5884 if test "$wxUSE_SOCKETS" = "yes" ; then
5885     dnl this test may be appropriate if building under cygwin
5886     dnl right now I'm assuming it also uses the winsock stuff
5887     dnl like mingw does..  -- RL
5888     if test "$TOOLKIT" != "MSW"; then
5889         dnl determine the type of third argument for getsockname
5890         dnl This test needs to be done in C++ mode since gsocket.cpp now
5891         dnl is C++ code and pointer cast that are possible even without
5892         dnl warning in C still fail in C++.
5893         AC_CACHE_CHECK([what is the type of the third argument of getsockname],
5894                        wx_cv_type_getsockname3,
5895             [
5896                 AC_TRY_COMPILE(
5897                     [
5898                         #include <sys/types.h>
5899                         #include <sys/socket.h>
5900                     ],
5901                     [
5902                         socklen_t len;
5903                         getsockname(0, 0, &len);
5904                     ],
5905                     wx_cv_type_getsockname3=socklen_t,
5906                     [
5907                         dnl the compiler will compile the version with size_t
5908                         dnl even if the real type of the last parameter is int
5909                         dnl but it should give at least a warning about
5910                         dnl converting between incompatible pointer types, so
5911                         dnl try to use it to get the correct behaviour at
5912                         dnl least with gcc (otherwise we'd always use size_t)
5913                         CXXFLAGS_OLD="$CXXFLAGS"
5914                         if test "$GCC" = yes ; then
5915                             CXXFLAGS="-Werror $CXXFLAGS"
5916                         fi
5917
5918                         AC_TRY_COMPILE(
5919                             [
5920                                 #include <sys/types.h>
5921                                 #include <sys/socket.h>
5922                             ],
5923                             [
5924                                 size_t len;
5925                                 getsockname(0, 0, &len);
5926                             ],
5927                             wx_cv_type_getsockname3=size_t,
5928                             AC_TRY_COMPILE(
5929                                 [
5930                                     #include <sys/types.h>
5931                                     #include <sys/socket.h>
5932                                 ],
5933                                 [
5934                                     int len;
5935                                     getsockname(0, 0, &len);
5936                                 ],
5937                                 wx_cv_type_getsockname3=int,
5938                                 wx_cv_type_getsockname3=unknown
5939                             )
5940                         )
5941
5942                         CXXFLAGS="$CXXFLAGS_OLD"
5943                     ]
5944                 )
5945             ])
5946
5947         if test "$wx_cv_type_getsockname3" = "unknown"; then
5948             wxUSE_SOCKETS=no
5949             AC_MSG_WARN([Couldn't find socklen_t synonym for this system])
5950         else
5951             AC_DEFINE_UNQUOTED(WX_SOCKLEN_T, $wx_cv_type_getsockname3)
5952         fi
5953         dnl Do this again for getsockopt as it may be different
5954         AC_CACHE_CHECK([what is the type of the fifth argument of getsockopt],
5955                        wx_cv_type_getsockopt5,
5956             [
5957                 AC_TRY_COMPILE(
5958                     [
5959                         #include <sys/types.h>
5960                         #include <sys/socket.h>
5961                     ],
5962                     [
5963                         socklen_t len;
5964                         getsockopt(0, 0, 0, 0, &len);
5965                     ],
5966                     wx_cv_type_getsockopt5=socklen_t,
5967                     [
5968                         dnl the compiler will compile the version with size_t
5969                         dnl even if the real type of the last parameter is int
5970                         dnl but it should give at least a warning about
5971                         dnl converting between incompatible pointer types, so
5972                         dnl try to use it to get the correct behaviour at
5973                         dnl least with gcc (otherwise we'd always use size_t)
5974                         CXXFLAGS_OLD="$CXXFLAGS"
5975                         if test "$GCC" = yes ; then
5976                             CXXFLAGS="-Werror $CXXFLAGS"
5977                         fi
5978
5979                         AC_TRY_COMPILE(
5980                             [
5981                                 #include <sys/types.h>
5982                                 #include <sys/socket.h>
5983                             ],
5984                             [
5985                                 size_t len;
5986                                 getsockopt(0, 0, 0, 0, &len);
5987                             ],
5988                             wx_cv_type_getsockopt5=size_t,
5989                             AC_TRY_COMPILE(
5990                                 [
5991                                     #include <sys/types.h>
5992                                     #include <sys/socket.h>
5993                                 ],
5994                                 [
5995                                     int len;
5996                                     getsockopt(0, 0, 0, 0, &len);
5997                                 ],
5998                                 wx_cv_type_getsockopt5=int,
5999                                 wx_cv_type_getsockopt5=unknown
6000                             )
6001                         )
6002
6003                         CXXFLAGS="$CXXFLAGS_OLD"
6004                     ]
6005                 )
6006             ])
6007
6008         if test "$wx_cv_type_getsockopt5" = "unknown"; then
6009             wxUSE_SOCKETS=no
6010             AC_MSG_WARN([Couldn't find socklen_t synonym for this system])
6011         else
6012             AC_DEFINE_UNQUOTED(SOCKOPTLEN_T, $wx_cv_type_getsockopt5)
6013         fi
6014     fi
6015 fi
6016
6017 if test "$wxUSE_SOCKETS" = "yes" ; then
6018     AC_DEFINE(wxUSE_SOCKETS)
6019     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS sockets"
6020 fi
6021
6022 if test "$wxUSE_PROTOCOL" = "yes"; then
6023     if test "$wxUSE_SOCKETS" != "yes"; then
6024         AC_MSG_WARN(Protocol classes require sockets... disabled)
6025         wxUSE_PROTOCOL=no
6026     fi
6027 fi
6028
6029 if test "$wxUSE_PROTOCOL" = "yes"; then
6030     AC_DEFINE(wxUSE_PROTOCOL)
6031
6032     if test "$wxUSE_PROTOCOL_HTTP" = "yes"; then
6033         AC_DEFINE(wxUSE_PROTOCOL_HTTP)
6034     fi
6035     if test "$wxUSE_PROTOCOL_FTP" = "yes"; then
6036         AC_DEFINE(wxUSE_PROTOCOL_FTP)
6037     fi
6038     if test "$wxUSE_PROTOCOL_FILE" = "yes"; then
6039         AC_DEFINE(wxUSE_PROTOCOL_FILE)
6040     fi
6041 else
6042     if test "$wxUSE_FS_INET" = "yes"; then
6043         AC_MSG_WARN([HTTP filesystem require protocol classes... disabled])
6044         wxUSE_FS_INET="no"
6045     fi
6046 fi
6047
6048 if test "$wxUSE_URL" = "yes"; then
6049     if test "$wxUSE_PROTOCOL" != "yes"; then
6050         AC_MSG_WARN(wxURL class requires wxProtocol... disabled)
6051         wxUSE_URL=no
6052     fi
6053     if test "$wxUSE_URL" = "yes"; then
6054         AC_DEFINE(wxUSE_URL)
6055     fi
6056 fi
6057
6058 if test "$wxUSE_FS_INET" = "yes"; then
6059   AC_DEFINE(wxUSE_FS_INET)
6060 fi
6061
6062 dnl ---------------------------------------------------------------------------
6063 dnl Joystick support
6064 dnl ---------------------------------------------------------------------------
6065
6066 if test "$wxUSE_GUI" = "yes" -a "$wxUSE_JOYSTICK" = "yes"; then
6067     wxUSE_JOYSTICK=no
6068
6069     dnl under MSW we always have joystick support
6070     if test "$TOOLKIT" = "MSW"; then
6071         wxUSE_JOYSTICK=yes
6072
6073     dnl mac only available on darwin
6074     elif test "$TOOLKIT" = "MAC" -o "$TOOLKIT" = "COCOA"; then
6075         if test "$USE_DARWIN" = 1; then
6076             dnl check for a bug in the headers, some have bad setEventCallout
6077             AC_MSG_CHECKING([headers have declarations needed for joystick support])
6078             AC_TRY_COMPILE( [ #include <IOKit/hid/IOHIDLib.h> ],
6079                             [ IOHIDQueueInterface *qi = NULL;
6080                               IOHIDCallbackFunction cb = NULL;
6081                               qi->setEventCallout(NULL, cb, NULL, NULL); ],
6082                             [ wxUSE_JOYSTICK=yes ]
6083                           )
6084             AC_MSG_RESULT($wxUSE_JOYSTICK)
6085         fi
6086
6087     dnl joystick support is only for Linux 2.1.x or greater
6088     else
6089         AC_CHECK_HEADERS(linux/joystick.h, wxUSE_JOYSTICK=yes)
6090     fi
6091
6092     if test "$wxUSE_JOYSTICK" = "yes"; then
6093         AC_DEFINE(wxUSE_JOYSTICK)
6094         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS joytest"
6095     else
6096         AC_MSG_WARN(Joystick not supported by this system... disabled)
6097     fi
6098 fi
6099
6100
6101 dnl ---------------------------------------------------------------------------
6102 dnl String stuff
6103 dnl ---------------------------------------------------------------------------
6104
6105 if test "$wxUSE_FONTMAP" = "yes" ; then
6106   AC_DEFINE(wxUSE_FONTMAP)
6107 fi
6108
6109 if test "$wxUSE_UNICODE" = "yes" ; then
6110   AC_DEFINE(wxUSE_UNICODE)
6111
6112   if test "$USE_WIN32" != 1; then
6113       wxUSE_UNICODE_MSLU=no
6114   fi
6115
6116   if test "$USE_WIN32" = 1 -a "$wxUSE_UNICODE_MSLU" = "yes"; then
6117         AC_CHECK_LIB(unicows,main,
6118             [
6119                 AC_DEFINE(wxUSE_UNICODE_MSLU)
6120             ],
6121             [
6122                 AC_MSG_WARN([Compiler doesn't support MSLU (libunicows.a), disabled.
6123                              Applications will only run on Windows NT/2000/XP!])
6124                 wxUSE_UNICODE_MSLU=no
6125             ])
6126     fi
6127 fi
6128
6129 if test "$wxUSE_wxUSE_EXPERIMENTAL_PRINTF" = "yes"; then
6130   AC_DEFINE(wxUSE_EXPERIMENTAL_PRINTF)
6131 fi
6132
6133 dnl ----------------------------------------------------------------
6134 dnl Register PostScript options for makefiles and setup.h
6135 dnl ----------------------------------------------------------------
6136
6137 if test "$wxUSE_POSTSCRIPT" = "yes" ; then
6138   AC_DEFINE(wxUSE_POSTSCRIPT)
6139 fi
6140
6141 AC_DEFINE(wxUSE_AFM_FOR_POSTSCRIPT)
6142
6143 AC_DEFINE(wxUSE_NORMALIZED_PS_FONTS)
6144
6145 dnl ---------------------------------------------------------------------------
6146 dnl big GUI components: MDI, doc/view, printing, help, ...
6147 dnl ---------------------------------------------------------------------------
6148
6149 if test "$wxUSE_CONSTRAINTS" = "yes"; then
6150     AC_DEFINE(wxUSE_CONSTRAINTS)
6151     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS layout"
6152 fi
6153
6154 if test "$wxUSE_MDI" = "yes"; then
6155     AC_DEFINE(wxUSE_MDI)
6156
6157     if test "$wxUSE_MDI_ARCHITECTURE" = "yes"; then
6158         AC_DEFINE(wxUSE_MDI_ARCHITECTURE)
6159         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS mdi"
6160     fi
6161 fi
6162
6163 if test "$wxUSE_DOC_VIEW_ARCHITECTURE" = "yes" ; then
6164     AC_DEFINE(wxUSE_DOC_VIEW_ARCHITECTURE)
6165     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS docview"
6166     if test "$wxUSE_MDI_ARCHITECTURE" = "yes"; then
6167         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS docvwmdi"
6168     fi
6169 fi
6170
6171 if test "$wxUSE_HELP" = "yes"; then
6172     AC_DEFINE(wxUSE_HELP)
6173     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS help"
6174
6175     if test "$wxUSE_MSW" = 1; then
6176       if test "$wxUSE_MS_HTML_HELP" = "yes"; then
6177         AC_DEFINE(wxUSE_MS_HTML_HELP)
6178       fi
6179     fi
6180
6181     if test "$wxUSE_WXHTML_HELP" = "yes"; then
6182       if test "$wxUSE_HTML" = "yes"; then
6183         AC_DEFINE(wxUSE_WXHTML_HELP)
6184       else
6185         AC_MSG_WARN(Cannot use wxHTML-based help without wxHTML so it won't be compiled)
6186         wxUSE_WXHTML_HELP=no
6187       fi
6188     fi
6189 fi
6190
6191 if test "$wxUSE_PRINTING_ARCHITECTURE" = "yes" ; then
6192     if test "$wxUSE_CONSTRAINTS" != "yes"; then
6193         AC_MSG_WARN(Printing support cannot be used without constraints so it won't be compiled without it)
6194     else
6195         AC_DEFINE(wxUSE_PRINTING_ARCHITECTURE)
6196     fi
6197     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS printing"
6198 fi
6199
6200 if test "$wxUSE_PROLOGIO" = "yes" -o  "$wxUSE_RESOURCES" = "yes"; then
6201     AC_MSG_ERROR([wxExpr and old-style resources are now available in contrib only])
6202 fi
6203
6204 dnl ---------------------------------------------------------------------------
6205 dnl wxMetafile availability
6206 dnl ---------------------------------------------------------------------------
6207
6208 if test "$wxUSE_METAFILE" = "yes"; then
6209     if test "$wxUSE_MSW" != 1 -a "$wxUSE_MAC" != 1 -a "$wxUSE_PM" != 1; then
6210         AC_MSG_WARN([wxMetafile is not available on this system... disabled])
6211         wxUSE_METAFILE=no
6212     fi
6213 fi
6214
6215 dnl ---------------------------------------------------------------------------
6216 dnl IPC: IPC, Drag'n'Drop, Clipboard, ...
6217 dnl ---------------------------------------------------------------------------
6218
6219 dnl check for ole headers and disable a few features requiring it if not
6220 dnl present (earlier versions of mingw32 don't have ole2.h)
6221 if test "$USE_WIN32" = 1 -a \( "$wxUSE_DATAOBJ"       = "yes" \
6222                           -o "$wxUSE_CLIPBOARD"     = "yes" \
6223                           -o "$wxUSE_OLE"     = "yes" \
6224                           -o "$wxUSE_DRAG_AND_DROP" = "yes" \) ; then
6225     AC_CHECK_HEADERS(ole2.h)
6226
6227     if test "$ac_cv_header_ole2_h" = "yes" ; then
6228         if test "$GCC" = yes ; then
6229             AC_MSG_CHECKING([if g++ requires -fvtable-thunks])
6230             AC_TRY_COMPILE([#include <windows.h>
6231                             #include <ole2.h>],
6232                            [],
6233                            [AC_MSG_RESULT(no)],
6234                            [AC_MSG_RESULT(yes)
6235                             WXCONFIG_CXXFLAGS="$WXCONFIG_CXXFLAGS -fvtable-thunks"])
6236             LIBS=" -lrpcrt4 -loleaut32 -lole32 -luuid$LIBS"
6237             if test "$wxUSE_OLE" = "yes" ; then
6238                 AC_DEFINE(wxUSE_OLE)
6239                 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS oleauto"
6240             fi
6241         fi
6242
6243         dnl for OLE clipboard and dnd
6244         if test "$wxUSE_DATAOBJ" = "yes" ; then
6245             AC_DEFINE(wxUSE_DATAOBJ)
6246         fi
6247     else
6248         AC_MSG_WARN([Some features disabled because OLE headers not found])
6249
6250         wxUSE_CLIPBOARD=no
6251         wxUSE_DRAG_AND_DROP=no
6252         wxUSE_DATAOBJ=no
6253         wxUSE_OLE=no
6254     fi
6255
6256     if test "$wxUSE_METAFILE" = "yes"; then
6257         AC_DEFINE(wxUSE_METAFILE)
6258
6259         dnl this one should probably be made separately configurable
6260         AC_DEFINE(wxUSE_ENH_METAFILE)
6261     fi
6262 fi
6263
6264 if test "$wxUSE_IPC" = "yes"; then
6265     if test "$wxUSE_SOCKETS" != "yes" -a "$USE_WIN32" != 1; then
6266         AC_MSG_WARN(wxWidgets IPC classes require sockets... disabled)
6267         wxUSE_IPC=no
6268     fi
6269
6270     if test "$wxUSE_IPC" = "yes"; then
6271         AC_DEFINE(wxUSE_IPC)
6272         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS ipc"
6273     fi
6274 fi
6275
6276 if test "$wxUSE_DATAOBJ" = "yes"; then
6277     if test "$wxUSE_MGL" = 1; then
6278         AC_MSG_WARN([wxDataObject not yet supported under MGL... disabled])
6279         wxUSE_DATAOBJ=no
6280     else
6281         AC_DEFINE(wxUSE_DATAOBJ)
6282     fi
6283 else
6284     AC_MSG_WARN([Clipboard and drag-and-drop require wxDataObject -- disabled])
6285     wxUSE_CLIPBOARD=no
6286     wxUSE_DRAG_AND_DROP=no
6287 fi
6288
6289 if test "$wxUSE_CLIPBOARD" = "yes"; then
6290     if test "$wxUSE_MGL" = 1; then
6291         AC_MSG_WARN([Clipboard not yet supported under MGL... disabled])
6292         wxUSE_CLIPBOARD=no
6293     fi
6294
6295     if test "$wxUSE_CLIPBOARD" = "yes"; then
6296         AC_DEFINE(wxUSE_CLIPBOARD)
6297     fi
6298 fi
6299
6300 if test "$wxUSE_DRAG_AND_DROP" = "yes" ; then
6301     if test "$wxUSE_GTK" = 1; then
6302         if test "$WXGTK12" != 1; then
6303             AC_MSG_WARN([Drag and drop is only supported under GTK+ 1.2... disabled])
6304             wxUSE_DRAG_AND_DROP=no
6305         fi
6306     fi
6307
6308     if test "$wxUSE_MOTIF" = 1; then
6309         AC_MSG_WARN([Drag and drop not yet supported under Motif... disabled])
6310         wxUSE_DRAG_AND_DROP=no
6311     fi
6312
6313     if test "$wxUSE_X11" = 1; then
6314         AC_MSG_WARN([Drag and drop not yet supported under X11... disabled])
6315         wxUSE_DRAG_AND_DROP=no
6316     fi
6317
6318     if test "$wxUSE_MGL" = 1; then
6319         AC_MSG_WARN([Drag and drop not yet supported under MGL... disabled])
6320         wxUSE_DRAG_AND_DROP=no
6321     fi
6322
6323     if test "$wxUSE_DRAG_AND_DROP" = "yes"; then
6324         AC_DEFINE(wxUSE_DRAG_AND_DROP)
6325     fi
6326
6327 fi
6328
6329 if test "$wxUSE_DRAG_AND_DROP" = "yes" -o "$wxUSE_CLIPBOARD" = "yes"; then
6330     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS dnd"
6331 fi
6332
6333 if test "$wxUSE_SPLINES" = "yes" ; then
6334   AC_DEFINE(wxUSE_SPLINES)
6335 fi
6336
6337 if test "$wxUSE_MOUSEWHEEL" = "yes" ; then
6338   AC_DEFINE(wxUSE_MOUSEWHEEL)
6339 fi
6340
6341 dnl ---------------------------------------------------------------------------
6342 dnl GUI controls
6343 dnl ---------------------------------------------------------------------------
6344
6345 USES_CONTROLS=0
6346 if test "$wxUSE_CONTROLS" = "yes"; then
6347   USES_CONTROLS=1
6348 fi
6349
6350 if test "$wxUSE_ACCEL" = "yes"; then
6351   AC_DEFINE(wxUSE_ACCEL)
6352   USES_CONTROLS=1
6353 fi
6354
6355 if test "$wxUSE_BUTTON" = "yes"; then
6356   AC_DEFINE(wxUSE_BUTTON)
6357   USES_CONTROLS=1
6358 fi
6359
6360 if test "$wxUSE_BMPBUTTON" = "yes"; then
6361   AC_DEFINE(wxUSE_BMPBUTTON)
6362   USES_CONTROLS=1
6363 fi
6364
6365 if test "$wxUSE_CALCTRL" = "yes"; then
6366   AC_DEFINE(wxUSE_CALENDARCTRL)
6367   USES_CONTROLS=1
6368   SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS calendar"
6369 fi
6370
6371 if test "$wxUSE_CARET" = "yes"; then
6372   AC_DEFINE(wxUSE_CARET)
6373   USES_CONTROLS=1
6374   SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS caret"
6375 fi
6376
6377 if test "$wxUSE_COMBOBOX" = "yes"; then
6378   AC_DEFINE(wxUSE_COMBOBOX)
6379   USES_CONTROLS=1
6380 fi
6381
6382 if test "$wxUSE_COMBOCTRL" = "yes"; then
6383   AC_DEFINE(wxUSE_COMBOCTRL)
6384   USES_CONTROLS=1
6385 fi
6386
6387 if test "$wxUSE_CHOICE" = "yes"; then
6388   AC_DEFINE(wxUSE_CHOICE)
6389   USES_CONTROLS=1
6390 fi
6391
6392 if test "$wxUSE_CHOICEBOOK" = "yes"; then
6393     AC_DEFINE(wxUSE_CHOICEBOOK)
6394     USES_CONTROLS=1
6395 fi
6396
6397 if test "$wxUSE_CHECKBOX" = "yes"; then
6398   AC_DEFINE(wxUSE_CHECKBOX)
6399   USES_CONTROLS=1
6400 fi
6401
6402 if test "$wxUSE_CHECKLST" = "yes"; then
6403   AC_DEFINE(wxUSE_CHECKLISTBOX)
6404   USES_CONTROLS=1
6405   SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS checklst"
6406 fi
6407
6408 if test "$wxUSE_COLOURPICKERCTRL" = "yes"; then
6409   AC_DEFINE(wxUSE_COLOURPICKERCTRL)
6410   USES_CONTROLS=1
6411 fi
6412
6413 if test "$wxUSE_DATEPICKCTRL" = "yes"; then
6414   AC_DEFINE(wxUSE_DATEPICKCTRL)
6415   USES_CONTROLS=1
6416 fi
6417
6418 if test "$wxUSE_DIRPICKERCTRL" = "yes"; then
6419   AC_DEFINE(wxUSE_DIRPICKERCTRL)
6420   USES_CONTROLS=1
6421 fi
6422
6423 if test "$wxUSE_FILEPICKERCTRL" = "yes"; then
6424   AC_DEFINE(wxUSE_FILEPICKERCTRL)
6425   USES_CONTROLS=1
6426 fi
6427
6428 if test "$wxUSE_FONTPICKERCTRL" = "yes"; then
6429   AC_DEFINE(wxUSE_FONTPICKERCTRL)
6430   USES_CONTROLS=1
6431 fi
6432
6433 if test "$wxUSE_DISPLAY" = "yes"; then
6434     AC_DEFINE(wxUSE_DISPLAY)
6435     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS display multimon"
6436 fi
6437
6438 if test "$wxUSE_GAUGE" = "yes"; then
6439   AC_DEFINE(wxUSE_GAUGE)
6440   USES_CONTROLS=1
6441 fi
6442
6443 if test "$wxUSE_GRID" = "yes"; then
6444   AC_DEFINE(wxUSE_GRID)
6445   USES_CONTROLS=1
6446   SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS grid"
6447 fi
6448
6449 if test "$wxUSE_HYPERLINKCTRL" = "yes"; then
6450   AC_DEFINE(wxUSE_HYPERLINKCTRL)
6451   USES_CONTROLS=1
6452 fi
6453
6454 if test "$wxUSE_DATAVIEWCTRL" = "yes"; then
6455   AC_DEFINE(wxUSE_DATAVIEWCTRL)
6456   USES_CONTROLS=1
6457   SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS dataview"
6458 fi
6459
6460 if test "$wxUSE_IMAGLIST" = "yes"; then
6461     AC_DEFINE(wxUSE_IMAGLIST)
6462 fi
6463
6464 if test "$wxUSE_LISTBOOK" = "yes"; then
6465     AC_DEFINE(wxUSE_LISTBOOK)
6466     USES_CONTROLS=1
6467 fi
6468
6469 if test "$wxUSE_LISTBOX" = "yes"; then
6470     AC_DEFINE(wxUSE_LISTBOX)
6471     USES_CONTROLS=1
6472     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS listbox"
6473 fi
6474
6475 if test "$wxUSE_LISTCTRL" = "yes"; then
6476     if test "$wxUSE_IMAGLIST" = "yes"; then
6477         AC_DEFINE(wxUSE_LISTCTRL)
6478         USES_CONTROLS=1
6479         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS listctrl"
6480     else
6481         AC_MSG_WARN([wxListCtrl requires wxImageList and won't be compiled without it])
6482     fi
6483 fi
6484
6485 if test "$wxUSE_NOTEBOOK" = "yes"; then
6486     AC_DEFINE(wxUSE_NOTEBOOK)
6487     USES_CONTROLS=1
6488     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS notebook"
6489 fi
6490
6491 if test "$wxUSE_ODCOMBOBOX" = "yes"; then
6492   AC_DEFINE(wxUSE_ODCOMBOBOX)
6493   USES_CONTROLS=1
6494   SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS combo"
6495 fi
6496
6497 dnl if test "$wxUSE_PROPSHEET" = "yes"; then
6498 dnl     AC_DEFINE(wxUSE_PROPSHEET)
6499 dnl     USES_CONTROLS=1
6500 dnl     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS proplist"
6501 dnl fi
6502
6503 if test "$wxUSE_RADIOBOX" = "yes"; then
6504     AC_DEFINE(wxUSE_RADIOBOX)
6505     USES_CONTROLS=1
6506 fi
6507
6508 if test "$wxUSE_RADIOBTN" = "yes"; then
6509     AC_DEFINE(wxUSE_RADIOBTN)
6510     USES_CONTROLS=1
6511 fi
6512
6513 if test "$wxUSE_SASH" = "yes"; then
6514     AC_DEFINE(wxUSE_SASH)
6515     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS sashtest"
6516 fi
6517
6518 if test "$wxUSE_SCROLLBAR" = "yes"; then
6519     AC_DEFINE(wxUSE_SCROLLBAR)
6520     USES_CONTROLS=1
6521     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS scroll scrollsub"
6522 fi
6523
6524 if test "$wxUSE_SLIDER" = "yes"; then
6525     AC_DEFINE(wxUSE_SLIDER)
6526     USES_CONTROLS=1
6527 fi
6528
6529 if test "$wxUSE_SPINBTN" = "yes"; then
6530     AC_DEFINE(wxUSE_SPINBTN)
6531     USES_CONTROLS=1
6532 fi
6533
6534 if test "$wxUSE_SPINCTRL" = "yes"; then
6535     AC_DEFINE(wxUSE_SPINCTRL)
6536     USES_CONTROLS=1
6537 fi
6538
6539 if test "$wxUSE_SPLITTER" = "yes"; then
6540     AC_DEFINE(wxUSE_SPLITTER)
6541     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS splitter"
6542 fi
6543
6544 if test "$wxUSE_STATBMP" = "yes"; then
6545     AC_DEFINE(wxUSE_STATBMP)
6546     USES_CONTROLS=1
6547 fi
6548
6549 if test "$wxUSE_STATBOX" = "yes"; then
6550     AC_DEFINE(wxUSE_STATBOX)
6551     USES_CONTROLS=1
6552 fi
6553
6554 if test "$wxUSE_STATTEXT" = "yes"; then
6555     AC_DEFINE(wxUSE_STATTEXT)
6556     USES_CONTROLS=1
6557 fi
6558
6559 if test "$wxUSE_STATLINE" = "yes"; then
6560     AC_DEFINE(wxUSE_STATLINE)
6561     USES_CONTROLS=1
6562 fi
6563
6564 if test "$wxUSE_STATUSBAR" = "yes"; then
6565     dnl this will get undefined in wx/chkconf.h if it's not supported
6566     AC_DEFINE(wxUSE_NATIVE_STATUSBAR)
6567     AC_DEFINE(wxUSE_STATUSBAR)
6568     USES_CONTROLS=1
6569
6570     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS statbar"
6571 fi
6572
6573 if test "$wxUSE_TAB_DIALOG" = "yes"; then
6574     AC_DEFINE(wxUSE_TAB_DIALOG)
6575 fi
6576
6577 if test "$wxUSE_TEXTCTRL" = "yes"; then
6578     AC_DEFINE(wxUSE_TEXTCTRL)
6579     USES_CONTROLS=1
6580     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS text"
6581 fi
6582
6583 if test "$wxUSE_TOGGLEBTN" = "yes"; then
6584     if test "$wxUSE_COCOA" = 1 ; then
6585         AC_MSG_WARN([Toggle button not yet supported under Mac OS X... disabled])
6586         wxUSE_TOGGLEBTN=no
6587     fi
6588
6589     if test "$wxUSE_TOGGLEBTN" = "yes"; then
6590         AC_DEFINE(wxUSE_TOGGLEBTN)
6591         USES_CONTROLS=1
6592     fi
6593 fi
6594
6595 if test "$wxUSE_TOOLBAR_SIMPLE" = "yes"; then
6596     AC_DEFINE(wxUSE_TOOLBAR_SIMPLE)
6597     wxUSE_TOOLBAR="yes"
6598     USES_CONTROLS=1
6599 fi
6600
6601 if test "$wxUSE_TOOLBAR" = "yes"; then
6602     AC_DEFINE(wxUSE_TOOLBAR)
6603     USES_CONTROLS=1
6604
6605     dnl if wxUSE_TOOLBAR and !wxUSE_TOOLBAR_SIMPLE => wxUSE_TOOLBAR_NATIVE
6606     if test "$wxUSE_TOOLBAR_SIMPLE" != "yes"; then
6607         wxUSE_TOOLBAR_NATIVE="yes"
6608     fi
6609
6610     if test "$wxUSE_TOOLBAR_NATIVE" = "yes"; then
6611         AC_DEFINE(wxUSE_TOOLBAR_NATIVE)
6612         USES_CONTROLS=1
6613     fi
6614
6615     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS toolbar"
6616 fi
6617
6618 if test "$wxUSE_TOOLTIPS" = "yes"; then
6619     if test "$wxUSE_MOTIF" = 1; then
6620         AC_MSG_WARN([wxTooltip not supported yet under Motif... disabled])
6621     else
6622         if test "$wxUSE_UNIVERSAL" = "yes"; then
6623             AC_MSG_WARN([wxTooltip not supported yet in wxUniversal... disabled])
6624         else
6625             AC_DEFINE(wxUSE_TOOLTIPS)
6626         fi
6627     fi
6628 fi
6629
6630 if test "$wxUSE_TREEBOOK" = "yes"; then
6631     AC_DEFINE(wxUSE_TREEBOOK)
6632     USES_CONTROLS=1
6633 fi
6634
6635 if test "$wxUSE_TOOLBOOK" = "yes"; then
6636     AC_DEFINE(wxUSE_TOOLBOOK)
6637     USES_CONTROLS=1
6638 fi
6639
6640 if test "$wxUSE_TREECTRL" = "yes"; then
6641     if test "$wxUSE_IMAGLIST" = "yes"; then
6642         AC_DEFINE(wxUSE_TREECTRL)
6643         USES_CONTROLS=1
6644         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS treectrl"
6645     else
6646         AC_MSG_WARN([wxTreeCtrl requires wxImageList and won't be compiled without it])
6647     fi
6648 fi
6649
6650 if test "$wxUSE_POPUPWIN" = "yes"; then
6651     if test "$wxUSE_MAC" = 1 -o "$wxUSE_COCOA" = 1 ; then
6652         AC_MSG_WARN([Popup window not yet supported under Mac OS X... disabled])
6653     else
6654         if test "$wxUSE_PM" = 1; then
6655             AC_MSG_WARN([wxPopupWindow not yet supported under PM... disabled])
6656         else
6657             AC_DEFINE(wxUSE_POPUPWIN)
6658             SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS popup"
6659
6660             USES_CONTROLS=1
6661         fi
6662     fi
6663 fi
6664
6665 if test "$wxUSE_DIALUP_MANAGER" = "yes"; then
6666     if test "$wxUSE_MAC" = 1 -o "$wxUSE_COCOA" = 1 ; then
6667         AC_MSG_WARN([Dialup manager not yet supported under Mac OS X... disabled])
6668     else
6669         AC_DEFINE(wxUSE_DIALUP_MANAGER)
6670         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS dialup"
6671     fi
6672 fi
6673
6674 if test "$wxUSE_TIPWINDOW" = "yes"; then
6675     if test "$wxUSE_PM" = 1; then
6676         AC_MSG_WARN([wxTipWindow not yet supported under PM... disabled])
6677     else
6678         AC_DEFINE(wxUSE_TIPWINDOW)
6679     fi
6680 fi
6681
6682 if test "$USES_CONTROLS" = 1; then
6683     AC_DEFINE(wxUSE_CONTROLS)
6684 fi
6685
6686 dnl ---------------------------------------------------------------------------
6687 dnl misc options
6688 dnl ---------------------------------------------------------------------------
6689
6690 dnl please keep the settings below in alphabetical order
6691 if test "$wxUSE_ACCESSIBILITY" = "yes"; then
6692     AC_DEFINE(wxUSE_ACCESSIBILITY)
6693     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS access"
6694 fi
6695
6696 if test "$wxUSE_DC_CACHEING" = "yes"; then
6697     AC_DEFINE(wxUSE_DC_CACHEING)
6698 fi
6699
6700 if test "$wxUSE_DRAGIMAGE" = "yes"; then
6701     AC_DEFINE(wxUSE_DRAGIMAGE)
6702     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS dragimag"
6703 fi
6704
6705 if test "$wxUSE_EXCEPTIONS" = "yes"; then
6706     if test "$wxUSE_NO_EXCEPTIONS" = "yes" ; then
6707         AC_MSG_WARN([--enable-exceptions can't be used with --enable-no_exceptions])
6708     else
6709         AC_DEFINE(wxUSE_EXCEPTIONS)
6710         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS except"
6711     fi
6712 fi
6713
6714 USE_HTML=0
6715 if test "$wxUSE_HTML" = "yes"; then
6716     AC_DEFINE(wxUSE_HTML)
6717     USE_HTML=1
6718     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS html html/about html/help html/helpview html/printing html/test html/virtual html/widget html/zip htlbox"
6719     if test "$wxUSE_MAC" = 1; then
6720         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS html/htmlctrl"
6721     fi
6722 fi
6723 if test "$wxUSE_WEBKIT" = "yes"; then
6724     if test "$wxUSE_MAC" = 1 -a "$USE_DARWIN" = 1; then
6725         old_CPPFLAGS="$CPPFLAGS"
6726         CPPFLAGS="-x objective-c++ $CPPFLAGS"
6727         AC_CHECK_HEADER([WebKit/HIWebView.h],
6728                         [
6729                            AC_DEFINE(wxUSE_WEBKIT)
6730                            WEBKIT_LINK="-framework WebKit"
6731                         ],
6732                         [
6733                            AC_MSG_WARN([WebKit headers not found; disabling wxWebKit])
6734                            wxUSE_WEBKIT=no
6735                         ],
6736                         [#include <Carbon/Carbon.h>])
6737         CPPFLAGS="$old_CPPFLAGS"
6738     elif test "$wxUSE_COCOA" = 1; then
6739         AC_DEFINE(wxUSE_WEBKIT)
6740     else
6741         wxUSE_WEBKIT=no
6742     fi
6743 fi
6744
6745 USE_XRC=0
6746 if test "$wxUSE_XRC" = "yes"; then
6747     if test "$wxUSE_XML" != "yes"; then
6748         AC_MSG_WARN([XML library not built, XRC resources disabled])
6749         wxUSE_XRC=no
6750     else
6751         AC_DEFINE(wxUSE_XRC)
6752         USE_XRC=1
6753         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS xrc"
6754     fi
6755 fi
6756
6757 USE_AUI=0
6758 if test "$wxUSE_AUI" = "yes"; then
6759    AC_DEFINE(wxUSE_AUI)
6760    USE_AUI=1
6761    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS aui"
6762 fi
6763
6764 if test "$wxUSE_MENUS" = "yes"; then
6765     AC_DEFINE(wxUSE_MENUS)
6766     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS menu"
6767 fi
6768
6769 if test "$wxUSE_METAFILE" = "yes"; then
6770     AC_DEFINE(wxUSE_METAFILE)
6771 fi
6772
6773 if test "$wxUSE_MIMETYPE" = "yes"; then
6774     AC_DEFINE(wxUSE_MIMETYPE)
6775 fi
6776
6777 if test "$wxUSE_MINIFRAME" = "yes"; then
6778     AC_DEFINE(wxUSE_MINIFRAME)
6779     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS minifram"
6780 fi
6781
6782 if test "$wxUSE_SYSTEM_OPTIONS" = "yes"; then
6783     AC_DEFINE(wxUSE_SYSTEM_OPTIONS)
6784     if test "$TOOLKIT" = "MSW" -o "$TOOLKIT" = "GTK" -o "$TOOLKIT" = "X11" -o \
6785         "$TOOLKIT" = "MOTIF" -o "$TOOLKIT" = "COCOA"; then
6786         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS taskbar"
6787     fi
6788 fi
6789
6790
6791 if test "$wxUSE_VALIDATORS" = "yes"; then
6792     AC_DEFINE(wxUSE_VALIDATORS)
6793     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS validate"
6794 fi
6795
6796 if test "$wxUSE_PALETTE" = "yes" ; then
6797   AC_DEFINE(wxUSE_PALETTE)
6798 fi
6799
6800 if test "$wxUSE_UNICODE" = "yes" -a "$wxUSE_UNICODE_MSLU" = "yes" ; then
6801   dnl Must be done this late because -lunicows must be before all the other libs
6802   LIBS=" -lunicows $LIBS"
6803 fi
6804
6805 USE_RICHTEXT=0
6806 if test "$wxUSE_RICHTEXT" = "yes"; then
6807     AC_DEFINE(wxUSE_RICHTEXT)
6808     USE_RICHTEXT=1
6809     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS richtext"
6810 fi
6811
6812 dnl ---------------------------------------------------------------------------
6813 dnl wxImage options
6814 dnl ---------------------------------------------------------------------------
6815
6816 if test "$wxUSE_IMAGE" = "yes" ; then
6817     AC_DEFINE(wxUSE_IMAGE)
6818
6819     if test "$wxUSE_GIF" = "yes" ; then
6820       AC_DEFINE(wxUSE_GIF)
6821     fi
6822
6823     if test "$wxUSE_PCX" = "yes" ; then
6824       AC_DEFINE(wxUSE_PCX)
6825     fi
6826
6827     if test "$wxUSE_IFF" = "yes" ; then
6828       AC_DEFINE(wxUSE_IFF)
6829     fi
6830
6831     if test "$wxUSE_PNM" = "yes" ; then
6832       AC_DEFINE(wxUSE_PNM)
6833     fi
6834
6835     if test "$wxUSE_XPM" = "yes" ; then
6836       AC_DEFINE(wxUSE_XPM)
6837     fi
6838
6839     if test "$wxUSE_ICO_CUR" = "yes" ; then
6840       AC_DEFINE(wxUSE_ICO_CUR)
6841     fi
6842 fi
6843
6844 dnl ---------------------------------------------------------------------------
6845 dnl common dialogs
6846 dnl ---------------------------------------------------------------------------
6847
6848 if test "$wxUSE_CHOICEDLG" = "yes"; then
6849     AC_DEFINE(wxUSE_CHOICEDLG)
6850 fi
6851
6852 if test "$wxUSE_COLOURDLG" = "yes"; then
6853     AC_DEFINE(wxUSE_COLOURDLG)
6854 fi
6855
6856 if test "$wxUSE_FILEDLG" = "yes"; then
6857     AC_DEFINE(wxUSE_FILEDLG)
6858 fi
6859
6860 if test "$wxUSE_FINDREPLDLG" = "yes"; then
6861     AC_DEFINE(wxUSE_FINDREPLDLG)
6862 fi
6863
6864 if test "$wxUSE_FONTDLG" = "yes"; then
6865     AC_DEFINE(wxUSE_FONTDLG)
6866 fi
6867
6868 if test "$wxUSE_DIRDLG" = "yes"; then
6869     if test "$wxUSE_TREECTRL" != "yes"; then
6870         AC_MSG_WARN(wxDirDialog requires wxTreeCtrl so it won't be compiled without it)
6871     else
6872         AC_DEFINE(wxUSE_DIRDLG)
6873     fi
6874 fi
6875
6876 if test "$wxUSE_MSGDLG" = "yes"; then
6877     AC_DEFINE(wxUSE_MSGDLG)
6878 fi
6879
6880 if test "$wxUSE_NUMBERDLG" = "yes"; then
6881     AC_DEFINE(wxUSE_NUMBERDLG)
6882 fi
6883
6884 if test "$wxUSE_PROGRESSDLG" = "yes"; then
6885     if test "$wxUSE_CONSTRAINTS" != "yes"; then
6886        AC_MSG_WARN(wxProgressDialog requires constraints so it won't be compiled without them)
6887     else
6888         AC_DEFINE(wxUSE_PROGRESSDLG)
6889     fi
6890 fi
6891
6892 if test "$wxUSE_SPLASH" = "yes"; then
6893     AC_DEFINE(wxUSE_SPLASH)
6894     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS splash"
6895 fi
6896
6897 if test "$wxUSE_STARTUP_TIPS" = "yes"; then
6898     if test "$wxUSE_CONSTRAINTS" != "yes"; then
6899        AC_MSG_WARN(Startup tips requires constraints and won't be compiled without them)
6900     else
6901         AC_DEFINE(wxUSE_STARTUP_TIPS)
6902     fi
6903 fi
6904
6905 if test "$wxUSE_TEXTDLG" = "yes"; then
6906     AC_DEFINE(wxUSE_TEXTDLG)
6907 fi
6908
6909 if test "$wxUSE_WIZARDDLG" = "yes"; then
6910     AC_DEFINE(wxUSE_WIZARDDLG)
6911     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS wizard"
6912 fi
6913
6914 dnl ---------------------------------------------------------------------------
6915 dnl wxMediaCtrl
6916 dnl ---------------------------------------------------------------------------
6917
6918 USE_MEDIA=0
6919
6920 if test "$wxUSE_MEDIACTRL" = "yes"; then
6921     USE_MEDIA=1
6922
6923     dnl -----------------------------------------------------------------------
6924     dnl GStreamer
6925     dnl -----------------------------------------------------------------------
6926     if test "$wxUSE_GTK" = 1; then
6927         wxUSE_GSTREAMER="no"
6928
6929         dnl -------------------------------------------------------------------
6930         dnl Test for at least 0.8 gstreamer module from pkg-config
6931         dnl Even totem doesn't accept 0.9 evidently.
6932         dnl
6933         dnl So, we first check to see if 0.10 if available - if not we
6934         dnl try the older 0.8 version
6935         dnl -------------------------------------------------------------------
6936         GST_VERSION_MAJOR=0
6937         GST_VERSION_MINOR=10
6938         GST_VERSION=$GST_VERSION_MAJOR.$GST_VERSION_MINOR
6939
6940         if test "$wxUSE_GSTREAMER8" = "no"; then
6941             PKG_CHECK_MODULES(GST,
6942                 [gstreamer-$GST_VERSION gstreamer-plugins-base-$GST_VERSION gconf-2.0],
6943                 [
6944                     wxUSE_GSTREAMER="yes"
6945                     GST_LIBS="$GST_LIBS -lgstinterfaces-$GST_VERSION"
6946                 ],
6947                 [
6948                     AC_MSG_WARN([GStreamer 0.10 not available, falling back to 0.8])
6949                     GST_VERSION_MINOR=8
6950                 ]
6951             )
6952         else
6953             dnl check only for 0.8
6954             GST_VERSION_MINOR=8
6955         fi
6956
6957         if test $GST_VERSION_MINOR = "8"; then
6958             GST_VERSION=$GST_VERSION_MAJOR.$GST_VERSION_MINOR
6959             PKG_CHECK_MODULES(GST,
6960                 [gstreamer-$GST_VERSION gstreamer-interfaces-$GST_VERSION gstreamer-gconf-$GST_VERSION],
6961                 wxUSE_GSTREAMER="yes",
6962                 [
6963                     AC_MSG_WARN([GStreamer 0.8/0.10 not available.])
6964                 ])
6965         fi
6966
6967
6968         if test "$wxUSE_GSTREAMER" = "yes"; then
6969             dnl system gstreamer package is compiled with Sun CC and outputs
6970             dnl CC-specific "-mt" in its flags, remove it for gcc compilation
6971             case "${host}" in
6972                 *-*-solaris2* )
6973                     if "$GCC" = yes; then
6974                         GST_CFLAGS=`echo $GST_CFLAGS | sed 's/-mt//'`
6975                         GST_LIBS=`echo $GST_LIBS | sed 's/-mt//'`
6976                     fi
6977             esac
6978
6979             CPPFLAGS="$GST_CFLAGS $CPPFLAGS"
6980             LIBS="$GST_LIBS $LIBS"
6981
6982             AC_DEFINE(wxUSE_GSTREAMER)
6983         else
6984             USE_MEDIA=0
6985         fi
6986     fi
6987
6988     if test $USE_MEDIA = 1; then
6989         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS mediaplayer"
6990         AC_DEFINE(wxUSE_MEDIACTRL)
6991     fi
6992 fi
6993
6994 dnl ---------------------------------------------------------------------------
6995 dnl get the string with OS info - used by wxGetOsDescription() on MacOS X
6996 dnl ---------------------------------------------------------------------------
6997
6998 if test "$cross_compiling" = "yes"; then
6999     dnl Use best guess from host as we can't use uname when cross compiling
7000     OSINFO="\"$host\""
7001 else
7002     dnl attualy work out OS version
7003     OSINFO=`uname -s -r -m`
7004     OSINFO="\"$OSINFO\""
7005 fi
7006
7007 AC_DEFINE_UNQUOTED(WXWIN_OS_DESCRIPTION, $OSINFO)
7008
7009 dnl ---------------------------------------------------------------------------
7010 dnl define the variable containing the installation prefix (used in dcpsg.cpp)
7011 dnl ---------------------------------------------------------------------------
7012
7013 if test "x$prefix" != "xNONE"; then
7014     wxPREFIX=$prefix
7015 else
7016     wxPREFIX=$ac_default_prefix
7017 fi
7018
7019 AC_DEFINE_UNQUOTED(wxINSTALL_PREFIX, "$wxPREFIX")
7020
7021
7022 dnl ---------------------------------------------------------------------------
7023 dnl define variables with all built libraries for wx-config
7024 dnl ---------------------------------------------------------------------------
7025
7026 CORE_BASE_LIBS="net base"
7027 CORE_GUI_LIBS="adv core"
7028
7029 if test "$wxUSE_XML" = "yes" ; then
7030     CORE_BASE_LIBS="xml $CORE_BASE_LIBS"
7031 fi
7032 if test "$wxUSE_ODBC" != "no" ; then
7033     CORE_BASE_LIBS="odbc $CORE_BASE_LIBS"
7034     CORE_GUI_LIBS="dbgrid $CORE_GUI_LIBS"
7035 fi
7036 if test "$wxUSE_HTML" = "yes" ; then
7037     CORE_GUI_LIBS="html $CORE_GUI_LIBS"
7038 fi
7039 if test "$wxUSE_DEBUGREPORT" = "yes" ; then
7040     CORE_GUI_LIBS="qa $CORE_GUI_LIBS"
7041 fi
7042 if test "$wxUSE_XRC" = "yes" ; then
7043     CORE_GUI_LIBS="xrc $CORE_GUI_LIBS"
7044 fi
7045 if test "$wxUSE_AUI" = "yes" ; then
7046     CORE_GUI_LIBS="aui $CORE_GUI_LIBS"
7047 fi
7048
7049 if test "$wxUSE_GUI" != "yes"; then
7050     CORE_GUI_LIBS=""
7051 fi
7052
7053 AC_SUBST(CORE_BASE_LIBS)
7054 AC_SUBST(CORE_GUI_LIBS)
7055
7056 dnl ---------------------------------------------------------------------------
7057 dnl Output the makefiles and such from the results found above
7058 dnl ---------------------------------------------------------------------------
7059
7060 dnl no more tests from here
7061 AC_LANG_POP
7062
7063 dnl all additional libraries (except wxWidgets itself) we link with
7064
7065 if test "$wxUSE_MAC" = 1 ; then
7066     if test "$wxUSE_SOUND" = "yes" || test "$wxUSE_MEDIACTRL" = "yes"; then
7067         if test "$USE_DARWIN" = 1; then
7068             LDFLAGS="$LDFLAGS -framework QuickTime"
7069         else
7070             LDFLAGS="$LDFLAGS -lQuickTimeLib"
7071         fi
7072     fi
7073     if test "$USE_DARWIN" = 1; then
7074         LDFLAGS="$LDFLAGS -framework IOKit -framework Carbon -framework Cocoa -framework System"
7075     else
7076         LDFLAGS="$LDFLAGS -lCarbonLib"
7077     fi
7078 fi
7079 if test "$wxUSE_COCOA" = 1 ; then
7080     LDFLAGS="$LDFLAGS -framework IOKit -framework Cocoa"
7081     if test "$wxUSE_MEDIACTRL" = "yes"; then
7082         LDFLAGS="$LDFLAGS -framework QuickTime"
7083     fi
7084 fi
7085 if test "$USE_DARWIN" = 1 -a "$wxUSE_MAC" != 1 -a "$wxUSE_COCOA" != 1 ; then
7086     LDFLAGS="$LDFLAGS -framework IOKit -framework CoreServices -framework System -framework ApplicationServices"
7087 fi
7088
7089 LIBS="$ZLIB_LINK $POSIX4_LINK $INET_LINK $WCHAR_LINK $DL_LINK $LIBS"
7090
7091 if test "$wxUSE_GUI" = "yes"; then
7092
7093     dnl TODO add checks that these samples will really compile (i.e. all the
7094     dnl      library features they need are present)
7095
7096     dnl TODO some samples are never built so far: mfc (requires VC++)
7097     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS artprov controls dialogs drawing \
7098                      dynamic erase event exec font image minimal mobile \
7099                      mobile/wxedit mobile/styles propsize render \
7100                      rotate shaped vscroll widgets"
7101
7102     if test "$wxUSE_MONOLITHIC" != "yes"; then
7103         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS console"
7104     fi
7105     if test "$TOOLKIT" = "MSW"; then
7106         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS regtest"
7107         if test "$wxUSE_UNIVERSAL" != "yes"; then
7108             SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS ownerdrw nativdlg"
7109         fi
7110     fi
7111     if test "$TOOLKIT" = "PM" -a "$wxUSE_UNIVERSAL" != "yes"; then
7112         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS ownerdrw"
7113     fi
7114 else
7115     SAMPLES_SUBDIRS="console"
7116 fi
7117
7118
7119 dnl C/C++ compiler options used to compile wxWidgets
7120 dnl
7121 dnl check for icc before gcc as icc is also recognized as gcc
7122 if test "x$INTELCC" = "xyes" ; then
7123     dnl Warnings which can't be easily suppressed in C code are disabled:
7124     dnl
7125     dnl     remark #810: conversion from "x" to "y" may lose significant bits
7126     dnl     remark #869: parameter "foo" was never referenced
7127     dnl     remark #1572: floating-point equality and inequality comparisons
7128     dnl                   are unreliable
7129     dnl     remark #1684: conversion from pointer to same-sized integral type
7130     dnl
7131     dnl (for others see below)
7132     CWARNINGS="-Wall -wd810,869,981,1418,1572,1684"
7133 elif test "$GCC" = yes ; then
7134     CWARNINGS="-Wall -Wundef"
7135 fi
7136
7137 if test "x$INTELCXX" = "xyes" ; then
7138     dnl Intel compiler gives some warnings which simply can't be worked
7139     dnl around or of which we have too many (810, 869) so it's impractical to
7140     dnl keep them enabled even if in theory it would be nice and some others
7141     dnl (279) are generated for standard macros and so there is nothing we can
7142     dnl do about them
7143     dnl
7144     dnl     remark #279: controlling expression is constant
7145     dnl     remark #383: value copied to temporary, reference to temporary used
7146     dnl     remark #444: destructor for base class "xxx" is not virtual
7147     dnl     remark #810: conversion from "x" to "y" may lose significant bits
7148     dnl     remark #869: parameter "foo" was never referenced
7149     dnl     remark #981: operands are evaluated in unspecified order
7150     dnl     remark #1418: external definition with no prior declaration
7151     dnl     remark #1419: external declaration in primary source file
7152     CXXWARNINGS="-Wall -wd279,383,444,810,869,981,1418,1419"
7153 elif test "$GXX" = yes ; then
7154     dnl CXXWARNINGS="-Wall -W -Wcast-qual -Werror"
7155     CXXWARNINGS="-Wall -Wundef -Wno-ctor-dtor-privacy"
7156 fi
7157
7158
7159 dnl combine everything together and remove the extra white space while doing it
7160 WXCONFIG_CFLAGS=`echo $WXCONFIG_CFLAGS`
7161 WXCONFIG_CXXFLAGS=`echo $WXCONFIG_CFLAGS $WXCONFIG_CXXFLAGS`
7162
7163
7164 dnl add -I options we use during library compilation
7165 dnl
7166 dnl note that the order is somewhat important: wxWidgets headers should
7167 dnl come first and the one with setup.h should be before $(top_srcdir)/include
7168 dnl in case the latter contains setup.h used by non-autoconf makefiles (e.g.
7169 dnl CodeWarrior):
7170 CPPFLAGS=`echo $WXCONFIG_CPPFLAGS \
7171  -I\\${top_builddir}lib/wx/include/${TOOLCHAIN_FULLNAME} \
7172  -I\\${top_srcdir}/include $TOOLKIT_INCLUDE \
7173  $CPPFLAGS `
7174
7175 C_AND_CXX_FLAGS="$DEBUG_CFLAGS $PROFILE_FLAGS $OPTIMISE_CFLAGS"
7176 CFLAGS=`echo $WXCONFIG_CFLAGS $CWARNINGS $C_AND_CXX_FLAGS $CFLAGS `
7177 CXXFLAGS=`echo $WXCONFIG_CXXFLAGS $CXXWARNINGS $C_AND_CXX_FLAGS $CXXFLAGS `
7178
7179 dnl now that we added WXCONFIG_CPPFLAGS to CPPFLAGS we can add the wx-config
7180 dnl only stuff to it
7181 WXCONFIG_CPPFLAGS=`echo $WXCONFIG_CPPFLAGS $WXCONFIG_ONLY_CPPFLAGS`
7182
7183
7184 if test "x$MWCC" = "xyes"; then
7185     dnl Correct MW 8.3 to be more similar to GCC.  In particular we
7186     dnl must use <regex.h> from system not our local copy on OS X,
7187     dnl but must use local not system on OS 9.
7188     dnl The following should make all -I paths usable for <> includes
7189     dnl while first checking in real system paths.  With 8.3 using
7190     dnl -gccincludes it will actually check local paths before system
7191     dnl even for <> which is totally wrong.
7192
7193     dnl Note that because this absolutely needs to be before any -I
7194     dnl that we have to tack it on to the end of the compiler commandline.
7195     CC="$CC -cwd source -I-"
7196     CXX="$CXX -cwd source -I-"
7197 fi
7198
7199
7200 LIBS=`echo $LIBS`
7201 EXTRALIBS="$LDFLAGS $LDFLAGS_VERSIONING $LIBS $DMALLOC_LIBS"
7202 EXTRALIBS_XML="$EXPAT_LINK"
7203 EXTRALIBS_HTML="$MSPACK_LINK"
7204 EXTRALIBS_ODBC="$ODBC_LINK"
7205 if test "$wxUSE_GUI" = "yes"; then
7206     EXTRALIBS_GUI=`echo $GUI_TK_LIBRARY $PNG_LINK $JPEG_LINK $TIFF_LINK $WEBKIT_LINK $EXTRALIBS_HILDON $EXTRALIBS_GNOMEVFS $EXTRALIBS_GNOMEPRINT`
7207 fi
7208 if test "$wxUSE_OPENGL" = "yes"; then
7209     EXTRALIBS_OPENGL="$LDFLAGS_GL $OPENGL_LIBS"
7210 fi
7211
7212 LDFLAGS="$LDFLAGS $PROFILE_FLAGS"
7213
7214 WXCONFIG_LIBS="$LIBS"
7215
7216 dnl wx-config must output builtin 3rd party libs in --libs in static build:
7217 if test "$wxUSE_REGEX" = "builtin" ; then
7218     wxconfig_3rdparty="regex${lib_unicode_suffix} $wxconfig_3rdparty"
7219 fi
7220 if test "$wxUSE_EXPAT" = "builtin" ; then
7221     wxconfig_3rdparty="expat $wxconfig_3rdparty"
7222 fi
7223 if test "$wxUSE_ODBC" = "builtin" ; then
7224     wxconfig_3rdparty="odbc $wxconfig_3rdparty"
7225 fi
7226 if test "$wxUSE_LIBTIFF" = "builtin" ; then
7227     wxconfig_3rdparty="tiff $wxconfig_3rdparty"
7228 fi
7229 if test "$wxUSE_LIBJPEG" = "builtin" ; then
7230     wxconfig_3rdparty="jpeg $wxconfig_3rdparty"
7231 fi
7232 if test "$wxUSE_LIBPNG" = "builtin" ; then
7233     wxconfig_3rdparty="png $wxconfig_3rdparty"
7234 fi
7235 if test "$wxUSE_ZLIB" = "builtin" ; then
7236     wxconfig_3rdparty="zlib $wxconfig_3rdparty"
7237 fi
7238
7239 for i in $wxconfig_3rdparty ; do
7240     WXCONFIG_LIBS="-lwx${i}${lib_debug_suffix}${WX_LIB_FLAVOUR}-${WX_RELEASE}${HOST_SUFFIX} $WXCONFIG_LIBS"
7241 done
7242
7243
7244 if test "x$wxUSE_UNIVERSAL" = "xyes" ; then
7245     WXUNIV=1
7246 else
7247     WXUNIV=0
7248 fi
7249
7250 AC_SUBST(wxUSE_ZLIB)
7251 AC_SUBST(wxUSE_REGEX)
7252 AC_SUBST(wxUSE_EXPAT)
7253 AC_SUBST(wxUSE_ODBC)
7254 AC_SUBST(wxUSE_LIBJPEG)
7255 AC_SUBST(wxUSE_LIBPNG)
7256 AC_SUBST(wxUSE_LIBTIFF)
7257
7258 if test $wxUSE_MONOLITHIC = "yes" ; then
7259     MONOLITHIC=1
7260 else
7261     MONOLITHIC=0
7262 fi
7263
7264 if test $wxUSE_PLUGINS = "yes" ; then
7265     USE_PLUGINS=1
7266 else
7267     USE_PLUGINS=0
7268 fi
7269
7270 if test $wxUSE_ODBC != "no" ; then
7271     USE_ODBC=1
7272 else
7273     USE_ODBC=0
7274 fi
7275
7276 if test "$wxUSE_DEBUGREPORT" = "yes" ; then
7277     USE_QA=1
7278 else
7279     USE_QA=0
7280 fi
7281
7282 if test $wxUSE_OFFICIAL_BUILD = "yes" ; then
7283     OFFICIAL_BUILD=1
7284 else
7285     OFFICIAL_BUILD=0
7286 fi
7287
7288 AC_SUBST(VENDOR)
7289 AC_SUBST(OFFICIAL_BUILD)
7290 AC_SUBST(WX_FLAVOUR)
7291 AC_SUBST(WX_LIB_FLAVOUR)
7292
7293 AC_SUBST(WXUNIV)
7294 AC_SUBST(MONOLITHIC)
7295 AC_SUBST(USE_PLUGINS)
7296 AC_SUBST(LIBS)
7297 AC_SUBST(EXTRALIBS)
7298 AC_SUBST(EXTRALIBS_XML)
7299 AC_SUBST(EXTRALIBS_HTML)
7300 AC_SUBST(EXTRALIBS_ODBC)
7301 AC_SUBST(EXTRALIBS_GUI)
7302 AC_SUBST(EXTRALIBS_OPENGL)
7303 AC_SUBST(EXTRALIBS_SDL)
7304 AC_SUBST(WITH_PLUGIN_SDL)
7305 AC_SUBST(EXTRALIBS_GNOMEPRINT)
7306 AC_SUBST(EXTRALIBS_GNOMEVFS)
7307 AC_SUBST(EXTRALIBS_HILDON)
7308 AC_SUBST(UNICODE)
7309 AC_SUBST(BUILD)
7310 AC_SUBST(DEBUG_INFO)
7311 AC_SUBST(DEBUG_FLAG)
7312 TOOLKIT_LOWERCASE=`echo $TOOLKIT | tr "[[A-Z]]" "[[a-z]]"`
7313 AC_SUBST(TOOLKIT_LOWERCASE)
7314 AC_SUBST(TOOLKIT_VERSION)
7315 AC_SUBST(SAMPLES_RPATH_FLAG)
7316 AC_SUBST(SAMPLES_RPATH_POSTLINK)
7317 AC_SUBST(HOST_SUFFIX)
7318 AC_SUBST(CPPUNIT_CFLAGS)
7319 AC_SUBST(CPPUNIT_LIBS)
7320
7321 case "$TOOLKIT" in
7322     GTK)
7323         TOOLKIT_USER="GTK+"
7324         if test "$WXGTK20" = 1; then
7325             TOOLKIT_USER="$TOOLKIT_USER 2"
7326         fi
7327         ;;
7328
7329     *)
7330         TOOLKIT_USER=$TOOLKIT_LOWERCASE
7331         ;;
7332 esac
7333
7334 if test "$wxUSE_WINE" = "yes"; then
7335     BAKEFILE_FORCE_PLATFORM=win32
7336 fi
7337
7338 dnl ---------------------------------------------------------------------------
7339 dnl Add Universal binary support 
7340 dnl Note we don't do this earlier because adding these cpp/ld flags could
7341 dnl cause configure tests to fail.
7342 dnl ---------------------------------------------------------------------------
7343 if test "$wxUSE_MAC" = 1 ; then
7344     if test "$wxUSE_UNIVERSAL_BINARY" = "yes" ; then
7345         CXXFLAGS="-isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch ppc -arch i386 $CXXFLAGS"
7346         CFLAGS="-isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch ppc -arch i386 $CFLAGS"
7347         LDFLAGS="-isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch ppc -arch i386 $LDFLAGS"
7348         bk_use_pch=no
7349     fi
7350     # TODO: where do we add "-syslibroot,/Developer/SDKs/MacOSX10.4u.sdk" for libtool (static builds only)?
7351     #       The makefile currently uses AR and RANLIB, which libtool apparently supercedes.
7352     # TODO: how can we avoid a hardwired reference to the SDK, above? (Someone used -lSystemStubs to avoid it)
7353 fi
7354
7355 AC_BAKEFILE([m4_include(autoconf_inc.m4)])
7356
7357 dnl HACK ALERT!! 
7358 dnl For now, we need to alter bk-deps not to generate deps
7359 dnl when we've configured a Universal binary build.
7360 dnl The next version of Bakefile will have the correct fix for this
7361 dnl at which time, this hack can be removed.
7362
7363 if test "$wxUSE_MAC" = 1 ; then
7364     if test "$wxUSE_UNIVERSAL_BINARY" = "yes" ; then
7365         sed "s/DEPSMODE=gcc/DEPSMODE=none/" < bk-deps > temp
7366         mv temp bk-deps
7367         chmod +x bk-deps
7368     fi
7369 fi
7370
7371 if test "$wxUSE_SHARED" = "yes"; then
7372
7373     dnl We get the shared build linker from bakefile, since it
7374     dnl moved all the logic for this out of this file and into
7375     dnl its own macro.  But it can't decide on whether to return
7376     dnl us $(VAR), ${VAR}, or the present expansion of VAR.
7377     dnl So normalise and expand everything here now, because its
7378     dnl not going to change inside wx-config anyway.
7379     sanitised_bakefile_mess=`echo "$SHARED_LD_CXX" | tr -d '()'`
7380     EXE_LINKER=`eval echo "$sanitised_bakefile_mess"`
7381
7382     dnl Need addtional flag on OS/2, so override bakefiles value
7383     dnl (there currently is no suitable variable to which the
7384     dnl  missing flags could be added, AFAICS. SN, 18.12.2004. )
7385     case "${host}" in
7386       *-pc-os2_emx | *-pc-os2-emx )
7387         SHARED_LD_CC="`pwd`/dllar.sh -name-mangler-script ./dllnames.sh -libf INITINSTANCE -libf TERMINSTANCE -o"
7388         SHARED_LD_CXX="`pwd`/dllar.sh -name-mangler-script ./dllnames.sh -libf INITINSTANCE -libf TERMINSTANCE -o"
7389         cp -p ${srcdir}/src/os2/dllnames.sh .
7390         cp -p ${srcdir}/src/os2/dllar.sh .
7391       ;;
7392     esac
7393 else
7394
7395     dnl No bakefile support for static builds, but this should be ok for most.
7396     EXE_LINKER="$CXX -o"
7397
7398 fi
7399 if test "$wxUSE_OMF" = "yes"; then
7400     case "${host}" in
7401       *-pc-os2_emx | *-pc-os2-emx )
7402         LDFLAGS="$LDFLAGS -Zlinker /EXEPACK"
7403         LDFLAGS_GUI="-Zlinker /PMTYPE:PM"
7404         WXCONFIG_LDFLAGS_GUI="-Zlinker /PMTYPE:PM"
7405       ;;
7406     esac
7407 fi
7408
7409 dnl find out if the compiler supports PCH
7410 dnl
7411 dnl TODO: this should be in bakefile
7412 if test $GCC_PCH = 1 ; then
7413     CPPFLAGS="-DWX_PRECOMP $CPPFLAGS"
7414 fi
7415
7416 dnl TOOLCHAIN_DEFS should be used for both wx and client code
7417 WXCONFIG_CPPFLAGS="$WXCONFIG_CPPFLAGS $TOOLCHAIN_DEFS"
7418
7419 dnl for convenience, sort the samples in alphabetical order
7420 dnl
7421 dnl FIXME For some mysterious reasons, sometimes the directories are duplicated
7422 dnl       in this list - hence uniq. But normally, this shouldn't be needed!
7423 dnl
7424 dnl       Unfortunately, there is a bug in OS/2's tr, such that
7425 dnl       tr ' ' '\n' introduces DOS-like line breaks, whereas tr '\n' ' '
7426 dnl       only removes the Unix-like part of the introduced line break.
7427 SAMPLES_SUBDIRS="`echo $SAMPLES_SUBDIRS | tr -s ' ' | tr ' ' '\n' | sort | uniq | tr '\n' ' '| tr -d '\r'`"
7428
7429 dnl subtle bakefile goop.
7430 dnl Used in wx-config now too, as its STATIC_FLAG with different makeup.
7431 dnl I wish we would have called it something less likely to clash with
7432 dnl things though.
7433 AC_SUBST(SHARED)
7434
7435 dnl global options
7436 AC_SUBST(WX_LIBRARY_BASENAME_NOGUI)
7437 AC_SUBST(WX_LIBRARY_BASENAME_GUI)
7438
7439 dnl toolkit options
7440 AC_SUBST(USE_GUI)
7441 AC_SUBST(AFMINSTALL)
7442 AC_SUBST(WIN32INSTALL)
7443 AC_SUBST(TOOLKIT)
7444 AC_SUBST(TOOLKIT_DIR)
7445 AC_SUBST(TOOLCHAIN_NAME)
7446 AC_SUBST(TOOLCHAIN_FULLNAME)
7447
7448 dnl wx-config options
7449 AC_SUBST(host_alias)
7450 AC_SUBST(cross_compiling)
7451 AC_SUBST(WIDGET_SET)
7452 AC_SUBST(WX_RELEASE)
7453 AC_SUBST(WX_VERSION)
7454 AC_SUBST(WX_SUBVERSION)
7455 AC_SUBST(WX_CHARTYPE)
7456 AC_SUBST(WX_DEBUGTYPE)
7457
7458 dnl note that in addition to the usual CPP/C/CXXFLAGS which are used for
7459 dnl building the library itself, we also have WXCONFIG_-prefixed variants which
7460 dnl are used when building the libraries using the library
7461 dnl
7462 dnl so put anything which should be used only during the library build in, e.g.
7463 dnl CXXFLAGS, but put everything else (by default) into WXCONFIG_CXXFLAGS
7464 dnl
7465 dnl and, finally, for some things which should be only used by wx-config but
7466 dnl not during the library compilation, use WXCONFIG_ONLY_CPPFLAGS which is
7467 dnl added to WXCONFIG_CPPFLAGS after adding the latter to CPPFLAGS
7468 AC_SUBST(WXCONFIG_CPPFLAGS)
7469 AC_SUBST(WXCONFIG_CFLAGS)
7470 AC_SUBST(WXCONFIG_CXXFLAGS)
7471
7472 AC_SUBST(WXCONFIG_LIBS)
7473 AC_SUBST(WXCONFIG_RPATH)
7474 AC_SUBST(WXCONFIG_LDFLAGS_GUI)
7475 AC_SUBST(WXCONFIG_RESFLAGS)
7476 AC_SUBST(EXE_LINKER)
7477
7478 dnl distribution vars
7479 AC_SUBST(GUIDIST)
7480 AC_SUBST(DISTDIR)
7481
7482 dnl additional subdirectories where we will build
7483 AC_SUBST(SAMPLES_SUBDIRS)
7484
7485 dnl additional libraries and linker settings
7486 AC_SUBST(LDFLAGS)
7487 AC_SUBST(LDFLAGS_GL)
7488 AC_SUBST(OPENGL_LIBS)
7489 AC_SUBST(DMALLOC_LIBS)
7490 AC_SUBST(WX_VERSION_TAG)
7491
7492 dnl additional resurces settings
7493 AC_SUBST(RESCOMP)
7494 AC_SUBST(WINDRES)
7495 AC_SUBST(REZ)
7496 AC_SUBST(RESFLAGS)
7497 AC_SUBST(RESPROGRAMOBJ)
7498 AC_SUBST(WX_RESOURCES_MACOSX_ASCII)
7499 AC_SUBST(WX_RESOURCES_MACOSX_DATA)
7500
7501 dnl additional for Mac OS X
7502 AC_SUBST(DEREZ)
7503 AC_SUBST(LIBWXMACRES)
7504 AC_SUBST(POSTLINK_COMMAND)
7505 AC_SUBST(MACSETFILE)
7506
7507 dnl other tools
7508 AC_SUBST(GCC)
7509 AC_SUBST(DLLTOOL)
7510
7511
7512 dnl MAKE_SET will be replaced with "MAKE=..." or nothing if make sets MAKE
7513 dnl itself (this macro is required if SUBDIRS variable is used in Makefile.am
7514 dnl - and we do use it)
7515 AC_PROG_MAKE_SET
7516
7517
7518 AC_CONFIG_HEADERS([lib/wx/include/${TOOLCHAIN_FULLNAME}/wx/setup.h:setup.h.in])
7519
7520 if test "$USE_WIN32" = 1; then
7521     AC_CONFIG_COMMANDS(
7522         [
7523             rcdefs.h
7524         ],
7525         [
7526             mkdir -p $outdir &&
7527             $CPP $infile | sed 's/^# *[1-9].*//;s/^ *//;/./,/^$/!d' > $outdir/rcdefs.h
7528         ],
7529         [
7530             CPP="$CPP"
7531             infile="$srcdir/include/wx/msw/genrcdefs.h"
7532             outdir="lib/wx/include/$TOOLCHAIN_FULLNAME/wx/msw"
7533         ]
7534     )
7535 fi
7536
7537 AC_CONFIG_FILES([ lib/wx/config/${TOOLCHAIN_FULLNAME}:wx-config.in ],
7538                 [ chmod +x lib/wx/config/${TOOLCHAIN_FULLNAME} ],
7539                 [ TOOLCHAIN_FULLNAME="${TOOLCHAIN_FULLNAME}" ])
7540
7541 AC_CONFIG_FILES([ lib/wx/config/inplace-${TOOLCHAIN_FULLNAME}:wx-config-inplace.in ],
7542                 [ chmod +x lib/wx/config/inplace-${TOOLCHAIN_FULLNAME} ],
7543                 [ TOOLCHAIN_FULLNAME="${TOOLCHAIN_FULLNAME}" ])
7544
7545 AC_CONFIG_FILES([ version-script Makefile ])
7546
7547 AC_CONFIG_COMMANDS([wx-config],
7548                    [ rm -f wx-config
7549                      ${LN_S} lib/wx/config/inplace-${TOOLCHAIN_FULLNAME} wx-config
7550                    ],
7551                    [ TOOLCHAIN_FULLNAME="${TOOLCHAIN_FULLNAME}"
7552                      LN_S="${LN_S}"
7553                    ])
7554
7555 dnl This would give us us build dir that in every significant way
7556 dnl resembles an installed wx in prefix=$builddir.  It is troublesome
7557 dnl though in this form because AC_CONFIG_LINKS will fail for directories
7558 dnl on platforms that do not have symlinks.
7559 dnl AC_CONFIG_LINKS([ include/wx-$WX_RELEASE$WX_FLAVOUR:include ])
7560 dnl AC_CONFIG_LINKS([ contrib/include ])
7561
7562 if test "$wxWITH_SUBDIRS" != "no"; then
7563 dnl Configure samples, contrib etc. directories, but only if they are present:
7564 if test "$wxUSE_GUI" = "yes"; then
7565     SUBDIRS="samples demos utils contrib"
7566 else dnl we build wxBase only
7567     dnl there are no wxBase programs in contrib nor demos
7568     SUBDIRS="samples utils"
7569 fi
7570 dnl Add tests to the list of subdirs if cppunit 1.8.0+ is detected
7571 AM_PATH_CPPUNIT(1.8.0, [SUBDIRS="$SUBDIRS tests"])
7572
7573 for subdir in `echo $SUBDIRS`; do
7574     if test -d ${srcdir}/${subdir} ; then
7575         if test "$wxUSE_GUI" = "yes"; then
7576             if test ${subdir} = "samples"; then
7577                 dnl only take those samples which compile in the current
7578                 dnl configuration and which exist
7579                 makefiles="samples/Makefile.in $makefiles"
7580                 for sample in `echo $SAMPLES_SUBDIRS`; do
7581                     if test -d $srcdir/samples/$sample; then
7582                         makefiles="samples/$sample/Makefile.in $makefiles"
7583                     fi
7584                 done
7585             else
7586                 dnl assume that everything compiles for utils &c
7587                 dnl any that shouldn't be built can be added to
7588                 dnl DISABLED_UTILS, DISABLED_CONTRIB or DISABLED_DEMOS
7589                 disabled_var=DISABLED_`echo $subdir | tr [[a-z]] [[A-Z]]`;
7590                 eval "disabled=\$$disabled_var"
7591                 disabled=/`echo X $disabled | sed 's@ @/|/@g'`/
7592                 makefiles=`(cd $srcdir ; find $subdir -name Makefile.in) | egrep -v "$disabled"`
7593             fi
7594         else dnl we build wxBase only
7595             dnl don't take all samples/utils, just those which build with
7596             dnl wxBase
7597             if test ${subdir} = "samples"; then
7598                 makefiles="samples/Makefile.in samples/console/Makefile.in"
7599             elif test ${subdir} = "utils"; then
7600                 makefiles=""
7601                 for util in HelpGen tex2rtf ; do
7602                     if test -d $srcdir/utils/$util ; then
7603                         makefiles="utils/$util/Makefile.in \
7604                                    utils/$util/src/Makefile.in \
7605                                    $makefiles"
7606                     fi
7607                 done
7608             else dnl assume that everything compiles for tests
7609                 makefiles=`(cd $srcdir ; find $subdir -name Makefile.in)`
7610             fi
7611         fi
7612
7613         for mkin in $makefiles ; do
7614             mk=`echo $mkin | sed 's/Makefile\.in/Makefile/g'`
7615             AC_CONFIG_FILES([$mk])
7616         done
7617     fi
7618 done
7619 fi dnl wxWITH_SUBDIRS
7620
7621 AC_OUTPUT
7622
7623 dnl report how we have been configured
7624 echo
7625 echo "Configured wxWidgets ${WX_VERSION} for \`${host}'"
7626 echo ""
7627 echo "  Which GUI toolkit should wxWidgets use?                 ${TOOLKIT_USER:-base only}"
7628 echo "  Should wxWidgets be compiled into single library?       ${wxUSE_MONOLITHIC:-yes}"
7629
7630 echo "  Should wxWidgets be compiled in debug mode?             ${wxUSE_DEBUG:-no}"
7631 echo "  Should wxWidgets be linked as a shared library?         ${wxUSE_SHARED:-no}"
7632 echo "  Should wxWidgets be compiled in Unicode mode?           ${wxUSE_UNICODE:-no}"
7633
7634 echo "  What level of wxWidgets compatibility should be enabled?"
7635 echo "                                       wxWidgets 2.4      ${WXWIN_COMPATIBILITY_2_4:-no}"
7636 echo "                                       wxWidgets 2.6      ${WXWIN_COMPATIBILITY_2_6:-yes}"
7637
7638 echo "  Which libraries should wxWidgets use?"
7639 echo "                                       jpeg               ${wxUSE_LIBJPEG-none}"
7640 echo "                                       png                ${wxUSE_LIBPNG-none}"
7641 echo "                                       regex              ${wxUSE_REGEX}"
7642 echo "                                       tiff               ${wxUSE_LIBTIFF-none}"
7643 if test "$wxUSE_X11" = 1 -o "$wxUSE_MOTIF" = 1; then
7644 echo "                                       xpm                ${wxUSE_LIBXPM-none}"
7645 fi
7646 echo "                                       zlib               ${wxUSE_ZLIB}"
7647 echo "                                       odbc               ${wxUSE_ODBC}"
7648 echo "                                       expat              ${wxUSE_EXPAT}"
7649 echo "                                       libmspack          ${wxUSE_LIBMSPACK}"
7650 echo "                                       sdl                ${wxUSE_LIBSDL}"
7651 echo "                                       gnomeprint         ${wxUSE_LIBGNOMEPRINT-none}"
7652 echo "                                       gnomevfs           ${wxUSE_LIBGNOMEVFS-none}"
7653 echo "                                       hildon             ${wxUSE_LIBHILDON-none}"
7654
7655 echo ""
7656
7657 dnl vi: set et sts=4 sw=4 com=\:dnl: