continue even if the system name is not recognized
[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 ioctl() in sys/soundcard.h], ac_cv_header_sys_soundcard, [
5427         AC_TRY_LINK([
5428                 #include <sys/soundcard.h>
5429             ],
5430             [
5431                 ioctl(0, SNDCTL_DSP_SYNC, 0);
5432             ],
5433             ac_cv_header_sys_soundcard=yes,
5434             [
5435                 saveLibs="$LIBS"
5436                 LIBS="$saveLibs -lossaudio"
5437                 AC_TRY_LINK([
5438                         #include <sys/soundcard.h>
5439                     ],
5440                     [
5441                         ioctl(0, SNDCTL_DSP_SYNC, 0);
5442                     ],
5443                     ac_cv_header_sys_soundcard=yes,
5444                     [
5445                         LIBS="$saveLibs"
5446                         ac_cv_header_sys_soundcard=no
5447                     ]
5448                 )
5449             ]
5450         )
5451     ])
5452
5453     if test "$ac_cv_header_sys_soundcard" = "yes"; then
5454         AC_DEFINE(HAVE_SYS_SOUNDCARD_H)
5455     else
5456         DISABLED_CONTRIB="$DISABLED_CONTRIB mmedia"
5457     fi
5458 fi
5459 WITH_PLUGIN_SDL=0
5460 if test "$wxUSE_SOUND" = "yes"; then
5461   if test "$USE_UNIX" = "1" ; then
5462     if test "$wxUSE_LIBSDL" != "no"; then
5463       AM_PATH_SDL([1.2.0],
5464                   [
5465                     EXTRALIBS_SDL="$SDL_LIBS"
5466                     CXXFLAGS="$SDL_CFLAGS $CXXFLAGS"
5467                     AC_DEFINE(wxUSE_LIBSDL)
5468                   ],
5469                   [wxUSE_LIBSDL="no"])
5470       if test "$wxUSE_LIBSDL" = "yes" -a "$wxUSE_PLUGINS" = "yes" ; then
5471         WITH_PLUGIN_SDL=1
5472       fi
5473     fi
5474   fi
5475
5476   AC_DEFINE(wxUSE_SOUND)
5477   SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS sound"
5478 fi
5479
5480 if test "$WXGTK20" = 1; then
5481     if test "$wxUSE_PRINTING_ARCHITECTURE" = "yes" ; then
5482         if test "$wxUSE_LIBGNOMEPRINT" = "yes" ; then
5483
5484                 PKG_CHECK_MODULES(LIBGNOMEPRINTUI,
5485                                   [libgnomeprintui-2.2 >= 2.8],
5486                     [
5487 dnl                     EXTRALIBS_GNOMEPRINT="$LIBGNOMEPRINTUI_LIBS"
5488                         CXXFLAGS="$LIBGNOMEPRINTUI_CFLAGS $CXXFLAGS"
5489                         AC_DEFINE(wxUSE_LIBGNOMEPRINT)
5490                     ],
5491                     [
5492                         AC_MSG_WARN([libgnomeprintui not found, library will use standard PostScript printing])
5493                         wxUSE_LIBGNOMEPRINT="no"
5494                     ]
5495                 )
5496         fi
5497     fi
5498 fi
5499
5500 if test "$WXGTK20" = 1; then
5501     if test "$wxUSE_MIMETYPE" = "yes" ; then
5502         if test "$wxUSE_LIBGNOMEVFS" = "yes" ; then
5503
5504                 PKG_CHECK_MODULES(GNOMEVFS,
5505                                   [gnome-vfs-2.0 >= 2.0],
5506                     [
5507 dnl                     EXTRALIBS_GNOMEVFS="$LIBGNOMEVFS_LIBS"
5508                         CXXFLAGS="$GNOMEVFS_CFLAGS $CXXFLAGS"
5509                         AC_DEFINE(wxUSE_LIBGNOMEVFS)
5510                     ],
5511                     [
5512                         AC_MSG_WARN([libgnomevfs not found, library won't be able to associate MIME type])
5513                         wxUSE_LIBGNOMEVFS="no"
5514                     ]
5515                 )
5516         fi
5517     fi
5518 fi
5519
5520 if test "$WXGTK20" = 1; then
5521     if test "$wxUSE_LIBHILDON" = "yes" ; then
5522         PKG_CHECK_MODULES(HILDON, 
5523                           [hildon-lgpl >= 0.9],
5524             [
5525                 EXTRALIBS_HILDON="$HILDON_LIBS"
5526                 CXXFLAGS="$CXXFLAGS $HILDON_CFLAGS"
5527                 AC_DEFINE(wxUSE_LIBHILDON)
5528             ],
5529             [
5530                 AC_MSG_WARN([libhildon_lgpl not found])
5531                         wxUSE_LIBHILDON="no"
5532             ]
5533         )
5534     fi
5535 fi
5536
5537 if test "$wxUSE_CMDLINE_PARSER" = "yes"; then
5538   AC_DEFINE(wxUSE_CMDLINE_PARSER)
5539 fi
5540
5541 if test "$wxUSE_STOPWATCH" = "yes"; then
5542   AC_DEFINE(wxUSE_STOPWATCH)
5543 fi
5544
5545 if test "$wxUSE_DATETIME" = "yes"; then
5546   AC_DEFINE(wxUSE_DATETIME)
5547 fi
5548
5549 if test "$wxUSE_FILE" = "yes"; then
5550   AC_DEFINE(wxUSE_FILE)
5551 fi
5552
5553 if test "$wxUSE_FFILE" = "yes"; then
5554   AC_DEFINE(wxUSE_FFILE)
5555 fi
5556
5557 if test "$wxUSE_FILESYSTEM" = "yes"; then
5558   AC_DEFINE(wxUSE_FILESYSTEM)
5559 fi
5560
5561 if test "$wxUSE_FS_ZIP" = "yes"; then
5562   AC_DEFINE(wxUSE_FS_ZIP)
5563 fi
5564
5565 if test "$wxUSE_ARCHIVE_STREAMS" = "yes"; then
5566   AC_DEFINE(wxUSE_ARCHIVE_STREAMS)
5567 fi
5568
5569 if test "$wxUSE_ZIPSTREAM" = "yes"; then
5570   if test "$wxUSE_ARCHIVE_STREAMS" != "yes"; then
5571     AC_MSG_WARN(wxZip requires wxArchive... disabled)
5572   elif test "$wxUSE_ZLIB" = "no"; then
5573     AC_MSG_WARN(wxZip requires wxZlib... disabled)
5574   else
5575     AC_DEFINE(wxUSE_ZIPSTREAM)
5576   fi
5577 fi
5578
5579 if test "$wxUSE_ON_FATAL_EXCEPTION" = "yes"; then
5580   if test "$USE_UNIX" != 1; then
5581     AC_MSG_WARN([Catching fatal exceptions not currently supported on this system, wxApp::OnFatalException will not be called])
5582     wxUSE_ON_FATAL_EXCEPTION=no
5583   else
5584     AC_DEFINE(wxUSE_ON_FATAL_EXCEPTION)
5585   fi
5586 fi
5587
5588 if test "$wxUSE_STACKWALKER" = "yes"; then
5589     AC_DEFINE(wxUSE_STACKWALKER)
5590 fi
5591
5592 if test "$wxUSE_DEBUGREPORT" = "yes"; then
5593     if test "$USE_UNIX" != "1" -a "$USE_WIN32" != "1"; then
5594         AC_MSG_WARN([Creating debug reports not currently supported on this system, disabled])
5595         wxUSE_DEBUGREPORT=no
5596     else
5597         AC_DEFINE(wxUSE_DEBUGREPORT)
5598         if test "$wxUSE_ON_FATAL_EXCEPTION" = "yes"; then
5599             SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS debugrpt"
5600         fi
5601     fi
5602 fi
5603
5604 if test "$wxUSE_SNGLINST_CHECKER" = "yes"; then
5605   AC_DEFINE(wxUSE_SNGLINST_CHECKER)
5606 fi
5607
5608 if test "$wxUSE_BUSYINFO" = "yes"; then
5609   AC_DEFINE(wxUSE_BUSYINFO)
5610 fi
5611
5612 if test "$wxUSE_STD_IOSTREAM" = "yes"; then
5613   AC_DEFINE(wxUSE_STD_IOSTREAM)
5614 fi
5615
5616 if test "$wxUSE_STD_STRING" = "yes"; then
5617   AC_DEFINE(wxUSE_STD_STRING)
5618 fi
5619
5620 if test "$wxUSE_STDPATHS" = "yes"; then
5621   AC_DEFINE(wxUSE_STDPATHS)
5622 fi
5623
5624 if test "$wxUSE_TEXTBUFFER" = "yes"; then
5625     AC_DEFINE(wxUSE_TEXTBUFFER)
5626 fi
5627
5628 if test "$wxUSE_TEXTFILE" = "yes"; then
5629   if test "$wxUSE_FILE" != "yes" -o "$wxUSE_TEXTBUFFER" != "yes" ; then
5630     AC_MSG_WARN(wxTextFile requires wxFile and wxTextBuffer... disabled)
5631   else
5632     AC_DEFINE(wxUSE_TEXTFILE)
5633   fi
5634 fi
5635
5636 if test "$wxUSE_CONFIG" = "yes" ; then
5637   if test "$wxUSE_TEXTFILE" != "yes"; then
5638     AC_MSG_WARN(wxConfig requires wxTextFile... disabled)
5639   else
5640     AC_DEFINE(wxUSE_CONFIG)
5641     AC_DEFINE(wxUSE_CONFIG_NATIVE)
5642     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS config"
5643   fi
5644 fi
5645
5646 if test "$wxUSE_INTL" = "yes" ; then
5647   if test "$wxUSE_FILE" != "yes"; then
5648     AC_MSG_WARN(I18n code requires wxFile... disabled)
5649   else
5650     AC_DEFINE(wxUSE_INTL)
5651     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS internat"
5652     GUIDIST="$GUIDIST INTL_DIST"
5653   fi
5654 fi
5655
5656 if test "$wxUSE_LOG" = "yes"; then
5657   AC_DEFINE(wxUSE_LOG)
5658
5659     if test "$wxUSE_LOGGUI" = "yes"; then
5660       AC_DEFINE(wxUSE_LOGGUI)
5661     fi
5662
5663     if test "$wxUSE_LOGWINDOW" = "yes"; then
5664       AC_DEFINE(wxUSE_LOGWINDOW)
5665     fi
5666
5667     if test "$wxUSE_LOGDIALOG" = "yes"; then
5668       AC_DEFINE(wxUSE_LOG_DIALOG)
5669     fi
5670
5671     dnl the keyboard sample requires wxUSE_LOG
5672     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS keyboard"
5673 fi
5674
5675 if test "$wxUSE_LONGLONG" = "yes"; then
5676   AC_DEFINE(wxUSE_LONGLONG)
5677 fi
5678
5679 if test "$wxUSE_GEOMETRY" = "yes"; then
5680   AC_DEFINE(wxUSE_GEOMETRY)
5681 fi
5682
5683 if test "$wxUSE_STREAMS" = "yes" ; then
5684   AC_DEFINE(wxUSE_STREAMS)
5685 fi
5686
5687 if test "$wxUSE_PRINTF_POS_PARAMS" = "yes"; then
5688   AC_DEFINE(wxUSE_PRINTF_POS_PARAMS)
5689 fi
5690
5691
5692 dnl ---------------------------------------------------------------------------
5693 dnl time/date functions
5694 dnl ---------------------------------------------------------------------------
5695
5696 if test "$wxUSE_DATETIME" = "yes"; then
5697     dnl check for strptime and for its declaration as some systems lack it
5698     AC_CHECK_FUNCS(strptime)
5699     if test "$ac_cv_func_strptime" = "yes"; then
5700         AC_CACHE_CHECK([for strptime declaration], wx_cv_func_strptime_decl,
5701             [
5702                 AC_TRY_COMPILE(
5703                     [
5704                         #include <time.h>
5705                     ],
5706                     [
5707                         struct tm t;
5708                         strptime("foo", "bar", &t);
5709                     ],
5710                     wx_cv_func_strptime_decl=yes,
5711                     wx_cv_func_strptime_decl=no
5712                 )
5713             ]
5714         )
5715     fi
5716     if test "$wx_cv_func_strptime_decl" = "yes"; then
5717         AC_DEFINE(HAVE_STRPTIME_DECL)
5718     fi
5719
5720     dnl check for timezone variable
5721     dnl   doesn't exist under Darwin / Mac OS X which uses tm_gmtoff instead
5722     AC_CACHE_CHECK(for timezone variable in <time.h>,
5723                    wx_cv_var_timezone,
5724                    [
5725                         AC_TRY_COMPILE(
5726                             [
5727                                 #include <time.h>
5728                             ],
5729                             [
5730                                 int tz;
5731                                 tz = timezone;
5732                             ],
5733                             [
5734                                 wx_cv_var_timezone=timezone
5735                             ],
5736                             [
5737                                 AC_TRY_COMPILE(
5738                                     [
5739                                         #include <time.h>
5740                                     ],
5741                                     [
5742                                         int tz;
5743                                         tz = _timezone;
5744                                     ],
5745                                     [
5746                                         wx_cv_var_timezone=_timezone
5747                                     ],
5748                                     [
5749                                         AC_TRY_COMPILE(
5750                                             [
5751                                                 #include <time.h>
5752                                             ],
5753                                             [
5754                                                 int tz;
5755                                                 tz = __timezone;
5756                                             ],
5757                                             [
5758                                                 wx_cv_var_timezone=__timezone
5759                                             ],
5760                                             [
5761                                                 if test "$USE_DOS" = 0 ; then
5762                                                     AC_MSG_WARN(no timezone variable, will use tm_gmtoff instead)
5763                                                 fi
5764                                             ]
5765                                         )
5766                                     ]
5767                                 )
5768                             ]
5769                         )
5770                    ]
5771     )
5772
5773     dnl as we want $wx_cv_var_timezone to be expanded, use AC_DEFINE_UNQUOTED
5774     if test "x$wx_cv_var_timezone" != x ; then
5775         AC_DEFINE_UNQUOTED(WX_TIMEZONE, $wx_cv_var_timezone)
5776     fi
5777
5778     dnl check for localtime (it's POSIX, but the check can do no harm...)
5779     AC_CHECK_FUNCS(localtime)
5780
5781     if test "$ac_cv_func_localtime" = "yes"; then
5782         AC_CACHE_CHECK(for tm_gmtoff in struct tm,
5783                        wx_cv_struct_tm_has_gmtoff,
5784         [
5785             AC_TRY_COMPILE(
5786                 [
5787                     #include <time.h>
5788                 ],
5789                 [
5790                     struct tm tm;
5791                     tm.tm_gmtoff++;
5792                 ],
5793                 [
5794                     wx_cv_struct_tm_has_gmtoff=yes
5795                 ],
5796                 wx_cv_struct_tm_has_gmtoff=no
5797             )
5798         ])
5799     fi
5800
5801     if test "$wx_cv_struct_tm_has_gmtoff" = "yes"; then
5802         AC_DEFINE(WX_GMTOFF_IN_TM)
5803     fi
5804
5805     dnl check for gettimeofday (SVr4, BSD 4.3) and ftime (V7, BSD 4.3) for the
5806     dnl function to be used for high resolution timers
5807     AC_CHECK_FUNCS(gettimeofday ftime, break)
5808
5809     if test "$ac_cv_func_gettimeofday" = "yes"; then
5810         AC_CACHE_CHECK([whether gettimeofday takes two arguments],
5811                        wx_cv_func_gettimeofday_has_2_args,
5812         [
5813             dnl on some _really_ old systems it takes only 1 argument
5814             AC_TRY_COMPILE(
5815                 [
5816                     #include <sys/time.h>
5817                     #include <unistd.h>
5818                 ],
5819                 [
5820                     struct timeval tv;
5821                     gettimeofday(&tv, NULL);
5822                 ],
5823                 wx_cv_func_gettimeofday_has_2_args=yes,
5824                 AC_TRY_COMPILE(
5825                     [
5826                         #include <sys/time.h>
5827                         #include <unistd.h>
5828                     ],
5829                     [
5830                         struct timeval tv;
5831                         gettimeofday(&tv);
5832                     ],
5833                     wx_cv_func_gettimeofday_has_2_args=no,
5834                     [
5835                         AC_MSG_WARN([failed to determine number of gettimeofday() arguments])
5836                         wx_cv_func_gettimeofday_has_2_args=unknown
5837                     ]
5838                 )
5839             )
5840         ])
5841
5842         if test "$wx_cv_func_gettimeofday_has_2_args" != "yes"; then
5843             AC_DEFINE(WX_GETTIMEOFDAY_NO_TZ)
5844         fi
5845     fi
5846
5847     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS typetest"
5848 fi
5849
5850 dnl ------------------------------------------------------------------------
5851 dnl wxSocket
5852 dnl ------------------------------------------------------------------------
5853
5854 dnl VZ: the GUI hooks wxSocket needs are not implemented yet in some toolkits
5855 if test "$wxUSE_SOCKETS" = "yes"; then
5856     if test "$wxUSE_MGL" = "1"; then
5857         AC_MSG_WARN([wxSocket not yet supported under MGL... disabled])
5858         wxUSE_SOCKETS="no"
5859     fi
5860 fi
5861
5862 if test "$wxUSE_SOCKETS" = "yes"; then
5863     dnl under MSW we always have sockets
5864     if test "$TOOLKIT" != "MSW"; then
5865         dnl under Solaris and OS/2, socket functions live in -lsocket
5866         AC_CHECK_FUNC(socket,,
5867             [
5868                 AC_CHECK_LIB(socket, socket,
5869                     if test "$INET_LINK" != " -lsocket"; then
5870                         INET_LINK="$INET_LINK -lsocket"
5871                     fi,
5872                     [
5873                         AC_MSG_WARN([socket library not found - sockets will be disabled])
5874                         wxUSE_SOCKETS=no
5875                     ]
5876                 )
5877             ]
5878         )
5879     fi
5880 fi
5881
5882 if test "$wxUSE_SOCKETS" = "yes" ; then
5883     dnl this test may be appropriate if building under cygwin
5884     dnl right now I'm assuming it also uses the winsock stuff
5885     dnl like mingw does..  -- RL
5886     if test "$TOOLKIT" != "MSW"; then
5887         dnl determine the type of third argument for getsockname
5888         dnl This test needs to be done in C++ mode since gsocket.cpp now
5889         dnl is C++ code and pointer cast that are possible even without
5890         dnl warning in C still fail in C++.
5891         AC_CACHE_CHECK([what is the type of the third argument of getsockname],
5892                        wx_cv_type_getsockname3,
5893             [
5894                 AC_TRY_COMPILE(
5895                     [
5896                         #include <sys/types.h>
5897                         #include <sys/socket.h>
5898                     ],
5899                     [
5900                         socklen_t len;
5901                         getsockname(0, 0, &len);
5902                     ],
5903                     wx_cv_type_getsockname3=socklen_t,
5904                     [
5905                         dnl the compiler will compile the version with size_t
5906                         dnl even if the real type of the last parameter is int
5907                         dnl but it should give at least a warning about
5908                         dnl converting between incompatible pointer types, so
5909                         dnl try to use it to get the correct behaviour at
5910                         dnl least with gcc (otherwise we'd always use size_t)
5911                         CXXFLAGS_OLD="$CXXFLAGS"
5912                         if test "$GCC" = yes ; then
5913                             CXXFLAGS="-Werror $CXXFLAGS"
5914                         fi
5915
5916                         AC_TRY_COMPILE(
5917                             [
5918                                 #include <sys/types.h>
5919                                 #include <sys/socket.h>
5920                             ],
5921                             [
5922                                 size_t len;
5923                                 getsockname(0, 0, &len);
5924                             ],
5925                             wx_cv_type_getsockname3=size_t,
5926                             AC_TRY_COMPILE(
5927                                 [
5928                                     #include <sys/types.h>
5929                                     #include <sys/socket.h>
5930                                 ],
5931                                 [
5932                                     int len;
5933                                     getsockname(0, 0, &len);
5934                                 ],
5935                                 wx_cv_type_getsockname3=int,
5936                                 wx_cv_type_getsockname3=unknown
5937                             )
5938                         )
5939
5940                         CXXFLAGS="$CXXFLAGS_OLD"
5941                     ]
5942                 )
5943             ])
5944
5945         if test "$wx_cv_type_getsockname3" = "unknown"; then
5946             wxUSE_SOCKETS=no
5947             AC_MSG_WARN([Couldn't find socklen_t synonym for this system])
5948         else
5949             AC_DEFINE_UNQUOTED(WX_SOCKLEN_T, $wx_cv_type_getsockname3)
5950         fi
5951         dnl Do this again for getsockopt as it may be different
5952         AC_CACHE_CHECK([what is the type of the fifth argument of getsockopt],
5953                        wx_cv_type_getsockopt5,
5954             [
5955                 AC_TRY_COMPILE(
5956                     [
5957                         #include <sys/types.h>
5958                         #include <sys/socket.h>
5959                     ],
5960                     [
5961                         socklen_t len;
5962                         getsockopt(0, 0, 0, 0, &len);
5963                     ],
5964                     wx_cv_type_getsockopt5=socklen_t,
5965                     [
5966                         dnl the compiler will compile the version with size_t
5967                         dnl even if the real type of the last parameter is int
5968                         dnl but it should give at least a warning about
5969                         dnl converting between incompatible pointer types, so
5970                         dnl try to use it to get the correct behaviour at
5971                         dnl least with gcc (otherwise we'd always use size_t)
5972                         CXXFLAGS_OLD="$CXXFLAGS"
5973                         if test "$GCC" = yes ; then
5974                             CXXFLAGS="-Werror $CXXFLAGS"
5975                         fi
5976
5977                         AC_TRY_COMPILE(
5978                             [
5979                                 #include <sys/types.h>
5980                                 #include <sys/socket.h>
5981                             ],
5982                             [
5983                                 size_t len;
5984                                 getsockopt(0, 0, 0, 0, &len);
5985                             ],
5986                             wx_cv_type_getsockopt5=size_t,
5987                             AC_TRY_COMPILE(
5988                                 [
5989                                     #include <sys/types.h>
5990                                     #include <sys/socket.h>
5991                                 ],
5992                                 [
5993                                     int len;
5994                                     getsockopt(0, 0, 0, 0, &len);
5995                                 ],
5996                                 wx_cv_type_getsockopt5=int,
5997                                 wx_cv_type_getsockopt5=unknown
5998                             )
5999                         )
6000
6001                         CXXFLAGS="$CXXFLAGS_OLD"
6002                     ]
6003                 )
6004             ])
6005
6006         if test "$wx_cv_type_getsockopt5" = "unknown"; then
6007             wxUSE_SOCKETS=no
6008             AC_MSG_WARN([Couldn't find socklen_t synonym for this system])
6009         else
6010             AC_DEFINE_UNQUOTED(SOCKOPTLEN_T, $wx_cv_type_getsockopt5)
6011         fi
6012     fi
6013 fi
6014
6015 if test "$wxUSE_SOCKETS" = "yes" ; then
6016     AC_DEFINE(wxUSE_SOCKETS)
6017     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS sockets"
6018 fi
6019
6020 if test "$wxUSE_PROTOCOL" = "yes"; then
6021     if test "$wxUSE_SOCKETS" != "yes"; then
6022         AC_MSG_WARN(Protocol classes require sockets... disabled)
6023         wxUSE_PROTOCOL=no
6024     fi
6025 fi
6026
6027 if test "$wxUSE_PROTOCOL" = "yes"; then
6028     AC_DEFINE(wxUSE_PROTOCOL)
6029
6030     if test "$wxUSE_PROTOCOL_HTTP" = "yes"; then
6031         AC_DEFINE(wxUSE_PROTOCOL_HTTP)
6032     fi
6033     if test "$wxUSE_PROTOCOL_FTP" = "yes"; then
6034         AC_DEFINE(wxUSE_PROTOCOL_FTP)
6035     fi
6036     if test "$wxUSE_PROTOCOL_FILE" = "yes"; then
6037         AC_DEFINE(wxUSE_PROTOCOL_FILE)
6038     fi
6039 else
6040     if test "$wxUSE_FS_INET" = "yes"; then
6041         AC_MSG_WARN([HTTP filesystem require protocol classes... disabled])
6042         wxUSE_FS_INET="no"
6043     fi
6044 fi
6045
6046 if test "$wxUSE_URL" = "yes"; then
6047     if test "$wxUSE_PROTOCOL" != "yes"; then
6048         AC_MSG_WARN(wxURL class requires wxProtocol... disabled)
6049         wxUSE_URL=no
6050     fi
6051     if test "$wxUSE_URL" = "yes"; then
6052         AC_DEFINE(wxUSE_URL)
6053     fi
6054 fi
6055
6056 if test "$wxUSE_FS_INET" = "yes"; then
6057   AC_DEFINE(wxUSE_FS_INET)
6058 fi
6059
6060 dnl ---------------------------------------------------------------------------
6061 dnl Joystick support
6062 dnl ---------------------------------------------------------------------------
6063
6064 if test "$wxUSE_GUI" = "yes" -a "$wxUSE_JOYSTICK" = "yes"; then
6065     wxUSE_JOYSTICK=no
6066
6067     dnl under MSW we always have joystick support
6068     if test "$TOOLKIT" = "MSW"; then
6069         wxUSE_JOYSTICK=yes
6070
6071     dnl mac only available on darwin
6072     elif test "$TOOLKIT" = "MAC" -o "$TOOLKIT" = "COCOA"; then
6073         if test "$USE_DARWIN" = 1; then
6074             dnl check for a bug in the headers, some have bad setEventCallout
6075             AC_MSG_CHECKING([headers have declarations needed for joystick support])
6076             AC_TRY_COMPILE( [ #include <IOKit/hid/IOHIDLib.h> ],
6077                             [ IOHIDQueueInterface *qi = NULL;
6078                               IOHIDCallbackFunction cb = NULL;
6079                               qi->setEventCallout(NULL, cb, NULL, NULL); ],
6080                             [ wxUSE_JOYSTICK=yes ]
6081                           )
6082             AC_MSG_RESULT($wxUSE_JOYSTICK)
6083         fi
6084
6085     dnl joystick support is only for Linux 2.1.x or greater
6086     else
6087         AC_CHECK_HEADERS(linux/joystick.h, wxUSE_JOYSTICK=yes)
6088     fi
6089
6090     if test "$wxUSE_JOYSTICK" = "yes"; then
6091         AC_DEFINE(wxUSE_JOYSTICK)
6092         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS joytest"
6093     else
6094         AC_MSG_WARN(Joystick not supported by this system... disabled)
6095     fi
6096 fi
6097
6098
6099 dnl ---------------------------------------------------------------------------
6100 dnl String stuff
6101 dnl ---------------------------------------------------------------------------
6102
6103 if test "$wxUSE_FONTMAP" = "yes" ; then
6104   AC_DEFINE(wxUSE_FONTMAP)
6105 fi
6106
6107 if test "$wxUSE_UNICODE" = "yes" ; then
6108   AC_DEFINE(wxUSE_UNICODE)
6109
6110   if test "$USE_WIN32" != 1; then
6111       wxUSE_UNICODE_MSLU=no
6112   fi
6113
6114   if test "$USE_WIN32" = 1 -a "$wxUSE_UNICODE_MSLU" = "yes"; then
6115         AC_CHECK_LIB(unicows,main,
6116             [
6117                 AC_DEFINE(wxUSE_UNICODE_MSLU)
6118             ],
6119             [
6120                 AC_MSG_WARN([Compiler doesn't support MSLU (libunicows.a), disabled.
6121                              Applications will only run on Windows NT/2000/XP!])
6122                 wxUSE_UNICODE_MSLU=no
6123             ])
6124     fi
6125 fi
6126
6127 if test "$wxUSE_wxUSE_EXPERIMENTAL_PRINTF" = "yes"; then
6128   AC_DEFINE(wxUSE_EXPERIMENTAL_PRINTF)
6129 fi
6130
6131 dnl ----------------------------------------------------------------
6132 dnl Register PostScript options for makefiles and setup.h
6133 dnl ----------------------------------------------------------------
6134
6135 if test "$wxUSE_POSTSCRIPT" = "yes" ; then
6136   AC_DEFINE(wxUSE_POSTSCRIPT)
6137 fi
6138
6139 AC_DEFINE(wxUSE_AFM_FOR_POSTSCRIPT)
6140
6141 AC_DEFINE(wxUSE_NORMALIZED_PS_FONTS)
6142
6143 dnl ---------------------------------------------------------------------------
6144 dnl big GUI components: MDI, doc/view, printing, help, ...
6145 dnl ---------------------------------------------------------------------------
6146
6147 if test "$wxUSE_CONSTRAINTS" = "yes"; then
6148     AC_DEFINE(wxUSE_CONSTRAINTS)
6149     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS layout"
6150 fi
6151
6152 if test "$wxUSE_MDI" = "yes"; then
6153     AC_DEFINE(wxUSE_MDI)
6154
6155     if test "$wxUSE_MDI_ARCHITECTURE" = "yes"; then
6156         AC_DEFINE(wxUSE_MDI_ARCHITECTURE)
6157         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS mdi"
6158     fi
6159 fi
6160
6161 if test "$wxUSE_DOC_VIEW_ARCHITECTURE" = "yes" ; then
6162     AC_DEFINE(wxUSE_DOC_VIEW_ARCHITECTURE)
6163     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS docview"
6164     if test "$wxUSE_MDI_ARCHITECTURE" = "yes"; then
6165         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS docvwmdi"
6166     fi
6167 fi
6168
6169 if test "$wxUSE_HELP" = "yes"; then
6170     AC_DEFINE(wxUSE_HELP)
6171     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS help"
6172
6173     if test "$wxUSE_MSW" = 1; then
6174       if test "$wxUSE_MS_HTML_HELP" = "yes"; then
6175         AC_DEFINE(wxUSE_MS_HTML_HELP)
6176       fi
6177     fi
6178
6179     if test "$wxUSE_WXHTML_HELP" = "yes"; then
6180       if test "$wxUSE_HTML" = "yes"; then
6181         AC_DEFINE(wxUSE_WXHTML_HELP)
6182       else
6183         AC_MSG_WARN(Cannot use wxHTML-based help without wxHTML so it won't be compiled)
6184         wxUSE_WXHTML_HELP=no
6185       fi
6186     fi
6187 fi
6188
6189 if test "$wxUSE_PRINTING_ARCHITECTURE" = "yes" ; then
6190     if test "$wxUSE_CONSTRAINTS" != "yes"; then
6191         AC_MSG_WARN(Printing support cannot be used without constraints so it won't be compiled without it)
6192     else
6193         AC_DEFINE(wxUSE_PRINTING_ARCHITECTURE)
6194     fi
6195     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS printing"
6196 fi
6197
6198 if test "$wxUSE_PROLOGIO" = "yes" -o  "$wxUSE_RESOURCES" = "yes"; then
6199     AC_MSG_ERROR([wxExpr and old-style resources are now available in contrib only])
6200 fi
6201
6202 dnl ---------------------------------------------------------------------------
6203 dnl wxMetafile availability
6204 dnl ---------------------------------------------------------------------------
6205
6206 if test "$wxUSE_METAFILE" = "yes"; then
6207     if test "$wxUSE_MSW" != 1 -a "$wxUSE_MAC" != 1 -a "$wxUSE_PM" != 1; then
6208         AC_MSG_WARN([wxMetafile is not available on this system... disabled])
6209         wxUSE_METAFILE=no
6210     fi
6211 fi
6212
6213 dnl ---------------------------------------------------------------------------
6214 dnl IPC: IPC, Drag'n'Drop, Clipboard, ...
6215 dnl ---------------------------------------------------------------------------
6216
6217 dnl check for ole headers and disable a few features requiring it if not
6218 dnl present (earlier versions of mingw32 don't have ole2.h)
6219 if test "$USE_WIN32" = 1 -a \( "$wxUSE_DATAOBJ"       = "yes" \
6220                           -o "$wxUSE_CLIPBOARD"     = "yes" \
6221                           -o "$wxUSE_OLE"     = "yes" \
6222                           -o "$wxUSE_DRAG_AND_DROP" = "yes" \) ; then
6223     AC_CHECK_HEADERS(ole2.h)
6224
6225     if test "$ac_cv_header_ole2_h" = "yes" ; then
6226         if test "$GCC" = yes ; then
6227             AC_MSG_CHECKING([if g++ requires -fvtable-thunks])
6228             AC_TRY_COMPILE([#include <windows.h>
6229                             #include <ole2.h>],
6230                            [],
6231                            [AC_MSG_RESULT(no)],
6232                            [AC_MSG_RESULT(yes)
6233                             WXCONFIG_CXXFLAGS="$WXCONFIG_CXXFLAGS -fvtable-thunks"])
6234             LIBS=" -lrpcrt4 -loleaut32 -lole32 -luuid$LIBS"
6235             if test "$wxUSE_OLE" = "yes" ; then
6236                 AC_DEFINE(wxUSE_OLE)
6237                 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS oleauto"
6238             fi
6239         fi
6240
6241         dnl for OLE clipboard and dnd
6242         if test "$wxUSE_DATAOBJ" = "yes" ; then
6243             AC_DEFINE(wxUSE_DATAOBJ)
6244         fi
6245     else
6246         AC_MSG_WARN([Some features disabled because OLE headers not found])
6247
6248         wxUSE_CLIPBOARD=no
6249         wxUSE_DRAG_AND_DROP=no
6250         wxUSE_DATAOBJ=no
6251         wxUSE_OLE=no
6252     fi
6253
6254     if test "$wxUSE_METAFILE" = "yes"; then
6255         AC_DEFINE(wxUSE_METAFILE)
6256
6257         dnl this one should probably be made separately configurable
6258         AC_DEFINE(wxUSE_ENH_METAFILE)
6259     fi
6260 fi
6261
6262 if test "$wxUSE_IPC" = "yes"; then
6263     if test "$wxUSE_SOCKETS" != "yes" -a "$USE_WIN32" != 1; then
6264         AC_MSG_WARN(wxWidgets IPC classes require sockets... disabled)
6265         wxUSE_IPC=no
6266     fi
6267
6268     if test "$wxUSE_IPC" = "yes"; then
6269         AC_DEFINE(wxUSE_IPC)
6270         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS ipc"
6271     fi
6272 fi
6273
6274 if test "$wxUSE_DATAOBJ" = "yes"; then
6275     if test "$wxUSE_MGL" = 1; then
6276         AC_MSG_WARN([wxDataObject not yet supported under MGL... disabled])
6277         wxUSE_DATAOBJ=no
6278     else
6279         AC_DEFINE(wxUSE_DATAOBJ)
6280     fi
6281 else
6282     AC_MSG_WARN([Clipboard and drag-and-drop require wxDataObject -- disabled])
6283     wxUSE_CLIPBOARD=no
6284     wxUSE_DRAG_AND_DROP=no
6285 fi
6286
6287 if test "$wxUSE_CLIPBOARD" = "yes"; then
6288     if test "$wxUSE_MGL" = 1; then
6289         AC_MSG_WARN([Clipboard not yet supported under MGL... disabled])
6290         wxUSE_CLIPBOARD=no
6291     fi
6292
6293     if test "$wxUSE_CLIPBOARD" = "yes"; then
6294         AC_DEFINE(wxUSE_CLIPBOARD)
6295     fi
6296 fi
6297
6298 if test "$wxUSE_DRAG_AND_DROP" = "yes" ; then
6299     if test "$wxUSE_GTK" = 1; then
6300         if test "$WXGTK12" != 1; then
6301             AC_MSG_WARN([Drag and drop is only supported under GTK+ 1.2... disabled])
6302             wxUSE_DRAG_AND_DROP=no
6303         fi
6304     fi
6305
6306     if test "$wxUSE_MOTIF" = 1; then
6307         AC_MSG_WARN([Drag and drop not yet supported under Motif... disabled])
6308         wxUSE_DRAG_AND_DROP=no
6309     fi
6310
6311     if test "$wxUSE_X11" = 1; then
6312         AC_MSG_WARN([Drag and drop not yet supported under X11... disabled])
6313         wxUSE_DRAG_AND_DROP=no
6314     fi
6315
6316     if test "$wxUSE_MGL" = 1; then
6317         AC_MSG_WARN([Drag and drop not yet supported under MGL... disabled])
6318         wxUSE_DRAG_AND_DROP=no
6319     fi
6320
6321     if test "$wxUSE_DRAG_AND_DROP" = "yes"; then
6322         AC_DEFINE(wxUSE_DRAG_AND_DROP)
6323     fi
6324
6325 fi
6326
6327 if test "$wxUSE_DRAG_AND_DROP" = "yes" -o "$wxUSE_CLIPBOARD" = "yes"; then
6328     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS dnd"
6329 fi
6330
6331 if test "$wxUSE_SPLINES" = "yes" ; then
6332   AC_DEFINE(wxUSE_SPLINES)
6333 fi
6334
6335 if test "$wxUSE_MOUSEWHEEL" = "yes" ; then
6336   AC_DEFINE(wxUSE_MOUSEWHEEL)
6337 fi
6338
6339 dnl ---------------------------------------------------------------------------
6340 dnl GUI controls
6341 dnl ---------------------------------------------------------------------------
6342
6343 USES_CONTROLS=0
6344 if test "$wxUSE_CONTROLS" = "yes"; then
6345   USES_CONTROLS=1
6346 fi
6347
6348 if test "$wxUSE_ACCEL" = "yes"; then
6349   AC_DEFINE(wxUSE_ACCEL)
6350   USES_CONTROLS=1
6351 fi
6352
6353 if test "$wxUSE_BUTTON" = "yes"; then
6354   AC_DEFINE(wxUSE_BUTTON)
6355   USES_CONTROLS=1
6356 fi
6357
6358 if test "$wxUSE_BMPBUTTON" = "yes"; then
6359   AC_DEFINE(wxUSE_BMPBUTTON)
6360   USES_CONTROLS=1
6361 fi
6362
6363 if test "$wxUSE_CALCTRL" = "yes"; then
6364   AC_DEFINE(wxUSE_CALENDARCTRL)
6365   USES_CONTROLS=1
6366   SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS calendar"
6367 fi
6368
6369 if test "$wxUSE_CARET" = "yes"; then
6370   AC_DEFINE(wxUSE_CARET)
6371   USES_CONTROLS=1
6372   SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS caret"
6373 fi
6374
6375 if test "$wxUSE_COMBOBOX" = "yes"; then
6376   AC_DEFINE(wxUSE_COMBOBOX)
6377   USES_CONTROLS=1
6378 fi
6379
6380 if test "$wxUSE_COMBOCTRL" = "yes"; then
6381   AC_DEFINE(wxUSE_COMBOCTRL)
6382   USES_CONTROLS=1
6383 fi
6384
6385 if test "$wxUSE_CHOICE" = "yes"; then
6386   AC_DEFINE(wxUSE_CHOICE)
6387   USES_CONTROLS=1
6388 fi
6389
6390 if test "$wxUSE_CHOICEBOOK" = "yes"; then
6391     AC_DEFINE(wxUSE_CHOICEBOOK)
6392     USES_CONTROLS=1
6393 fi
6394
6395 if test "$wxUSE_CHECKBOX" = "yes"; then
6396   AC_DEFINE(wxUSE_CHECKBOX)
6397   USES_CONTROLS=1
6398 fi
6399
6400 if test "$wxUSE_CHECKLST" = "yes"; then
6401   AC_DEFINE(wxUSE_CHECKLISTBOX)
6402   USES_CONTROLS=1
6403   SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS checklst"
6404 fi
6405
6406 if test "$wxUSE_COLOURPICKERCTRL" = "yes"; then
6407   AC_DEFINE(wxUSE_COLOURPICKERCTRL)
6408   USES_CONTROLS=1
6409 fi
6410
6411 if test "$wxUSE_DATEPICKCTRL" = "yes"; then
6412   AC_DEFINE(wxUSE_DATEPICKCTRL)
6413   USES_CONTROLS=1
6414 fi
6415
6416 if test "$wxUSE_DIRPICKERCTRL" = "yes"; then
6417   AC_DEFINE(wxUSE_DIRPICKERCTRL)
6418   USES_CONTROLS=1
6419 fi
6420
6421 if test "$wxUSE_FILEPICKERCTRL" = "yes"; then
6422   AC_DEFINE(wxUSE_FILEPICKERCTRL)
6423   USES_CONTROLS=1
6424 fi
6425
6426 if test "$wxUSE_FONTPICKERCTRL" = "yes"; then
6427   AC_DEFINE(wxUSE_FONTPICKERCTRL)
6428   USES_CONTROLS=1
6429 fi
6430
6431 if test "$wxUSE_DISPLAY" = "yes"; then
6432     AC_DEFINE(wxUSE_DISPLAY)
6433     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS display multimon"
6434 fi
6435
6436 if test "$wxUSE_GAUGE" = "yes"; then
6437   AC_DEFINE(wxUSE_GAUGE)
6438   USES_CONTROLS=1
6439 fi
6440
6441 if test "$wxUSE_GRID" = "yes"; then
6442   AC_DEFINE(wxUSE_GRID)
6443   USES_CONTROLS=1
6444   SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS grid"
6445 fi
6446
6447 if test "$wxUSE_HYPERLINKCTRL" = "yes"; then
6448   AC_DEFINE(wxUSE_HYPERLINKCTRL)
6449   USES_CONTROLS=1
6450 fi
6451
6452 if test "$wxUSE_DATAVIEWCTRL" = "yes"; then
6453   AC_DEFINE(wxUSE_DATAVIEWCTRL)
6454   USES_CONTROLS=1
6455   SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS dataview"
6456 fi
6457
6458 if test "$wxUSE_IMAGLIST" = "yes"; then
6459     AC_DEFINE(wxUSE_IMAGLIST)
6460 fi
6461
6462 if test "$wxUSE_LISTBOOK" = "yes"; then
6463     AC_DEFINE(wxUSE_LISTBOOK)
6464     USES_CONTROLS=1
6465 fi
6466
6467 if test "$wxUSE_LISTBOX" = "yes"; then
6468     AC_DEFINE(wxUSE_LISTBOX)
6469     USES_CONTROLS=1
6470     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS listbox"
6471 fi
6472
6473 if test "$wxUSE_LISTCTRL" = "yes"; then
6474     if test "$wxUSE_IMAGLIST" = "yes"; then
6475         AC_DEFINE(wxUSE_LISTCTRL)
6476         USES_CONTROLS=1
6477         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS listctrl"
6478     else
6479         AC_MSG_WARN([wxListCtrl requires wxImageList and won't be compiled without it])
6480     fi
6481 fi
6482
6483 if test "$wxUSE_NOTEBOOK" = "yes"; then
6484     AC_DEFINE(wxUSE_NOTEBOOK)
6485     USES_CONTROLS=1
6486     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS notebook"
6487 fi
6488
6489 if test "$wxUSE_ODCOMBOBOX" = "yes"; then
6490   AC_DEFINE(wxUSE_ODCOMBOBOX)
6491   USES_CONTROLS=1
6492   SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS combo"
6493 fi
6494
6495 dnl if test "$wxUSE_PROPSHEET" = "yes"; then
6496 dnl     AC_DEFINE(wxUSE_PROPSHEET)
6497 dnl     USES_CONTROLS=1
6498 dnl     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS proplist"
6499 dnl fi
6500
6501 if test "$wxUSE_RADIOBOX" = "yes"; then
6502     AC_DEFINE(wxUSE_RADIOBOX)
6503     USES_CONTROLS=1
6504 fi
6505
6506 if test "$wxUSE_RADIOBTN" = "yes"; then
6507     AC_DEFINE(wxUSE_RADIOBTN)
6508     USES_CONTROLS=1
6509 fi
6510
6511 if test "$wxUSE_SASH" = "yes"; then
6512     AC_DEFINE(wxUSE_SASH)
6513     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS sashtest"
6514 fi
6515
6516 if test "$wxUSE_SCROLLBAR" = "yes"; then
6517     AC_DEFINE(wxUSE_SCROLLBAR)
6518     USES_CONTROLS=1
6519     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS scroll scrollsub"
6520 fi
6521
6522 if test "$wxUSE_SLIDER" = "yes"; then
6523     AC_DEFINE(wxUSE_SLIDER)
6524     USES_CONTROLS=1
6525 fi
6526
6527 if test "$wxUSE_SPINBTN" = "yes"; then
6528     AC_DEFINE(wxUSE_SPINBTN)
6529     USES_CONTROLS=1
6530 fi
6531
6532 if test "$wxUSE_SPINCTRL" = "yes"; then
6533     AC_DEFINE(wxUSE_SPINCTRL)
6534     USES_CONTROLS=1
6535 fi
6536
6537 if test "$wxUSE_SPLITTER" = "yes"; then
6538     AC_DEFINE(wxUSE_SPLITTER)
6539     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS splitter"
6540 fi
6541
6542 if test "$wxUSE_STATBMP" = "yes"; then
6543     AC_DEFINE(wxUSE_STATBMP)
6544     USES_CONTROLS=1
6545 fi
6546
6547 if test "$wxUSE_STATBOX" = "yes"; then
6548     AC_DEFINE(wxUSE_STATBOX)
6549     USES_CONTROLS=1
6550 fi
6551
6552 if test "$wxUSE_STATTEXT" = "yes"; then
6553     AC_DEFINE(wxUSE_STATTEXT)
6554     USES_CONTROLS=1
6555 fi
6556
6557 if test "$wxUSE_STATLINE" = "yes"; then
6558     AC_DEFINE(wxUSE_STATLINE)
6559     USES_CONTROLS=1
6560 fi
6561
6562 if test "$wxUSE_STATUSBAR" = "yes"; then
6563     dnl this will get undefined in wx/chkconf.h if it's not supported
6564     AC_DEFINE(wxUSE_NATIVE_STATUSBAR)
6565     AC_DEFINE(wxUSE_STATUSBAR)
6566     USES_CONTROLS=1
6567
6568     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS statbar"
6569 fi
6570
6571 if test "$wxUSE_TAB_DIALOG" = "yes"; then
6572     AC_DEFINE(wxUSE_TAB_DIALOG)
6573 fi
6574
6575 if test "$wxUSE_TEXTCTRL" = "yes"; then
6576     AC_DEFINE(wxUSE_TEXTCTRL)
6577     USES_CONTROLS=1
6578     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS text"
6579 fi
6580
6581 if test "$wxUSE_TOGGLEBTN" = "yes"; then
6582     if test "$wxUSE_COCOA" = 1 ; then
6583         AC_MSG_WARN([Toggle button not yet supported under Mac OS X... disabled])
6584         wxUSE_TOGGLEBTN=no
6585     fi
6586
6587     if test "$wxUSE_TOGGLEBTN" = "yes"; then
6588         AC_DEFINE(wxUSE_TOGGLEBTN)
6589         USES_CONTROLS=1
6590     fi
6591 fi
6592
6593 if test "$wxUSE_TOOLBAR_SIMPLE" = "yes"; then
6594     AC_DEFINE(wxUSE_TOOLBAR_SIMPLE)
6595     wxUSE_TOOLBAR="yes"
6596     USES_CONTROLS=1
6597 fi
6598
6599 if test "$wxUSE_TOOLBAR" = "yes"; then
6600     AC_DEFINE(wxUSE_TOOLBAR)
6601     USES_CONTROLS=1
6602
6603     dnl if wxUSE_TOOLBAR and !wxUSE_TOOLBAR_SIMPLE => wxUSE_TOOLBAR_NATIVE
6604     if test "$wxUSE_TOOLBAR_SIMPLE" != "yes"; then
6605         wxUSE_TOOLBAR_NATIVE="yes"
6606     fi
6607
6608     if test "$wxUSE_TOOLBAR_NATIVE" = "yes"; then
6609         AC_DEFINE(wxUSE_TOOLBAR_NATIVE)
6610         USES_CONTROLS=1
6611     fi
6612
6613     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS toolbar"
6614 fi
6615
6616 if test "$wxUSE_TOOLTIPS" = "yes"; then
6617     if test "$wxUSE_MOTIF" = 1; then
6618         AC_MSG_WARN([wxTooltip not supported yet under Motif... disabled])
6619     else
6620         if test "$wxUSE_UNIVERSAL" = "yes"; then
6621             AC_MSG_WARN([wxTooltip not supported yet in wxUniversal... disabled])
6622         else
6623             AC_DEFINE(wxUSE_TOOLTIPS)
6624         fi
6625     fi
6626 fi
6627
6628 if test "$wxUSE_TREEBOOK" = "yes"; then
6629     AC_DEFINE(wxUSE_TREEBOOK)
6630     USES_CONTROLS=1
6631 fi
6632
6633 if test "$wxUSE_TOOLBOOK" = "yes"; then
6634     AC_DEFINE(wxUSE_TOOLBOOK)
6635     USES_CONTROLS=1
6636 fi
6637
6638 if test "$wxUSE_TREECTRL" = "yes"; then
6639     if test "$wxUSE_IMAGLIST" = "yes"; then
6640         AC_DEFINE(wxUSE_TREECTRL)
6641         USES_CONTROLS=1
6642         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS treectrl"
6643     else
6644         AC_MSG_WARN([wxTreeCtrl requires wxImageList and won't be compiled without it])
6645     fi
6646 fi
6647
6648 if test "$wxUSE_POPUPWIN" = "yes"; then
6649     if test "$wxUSE_MAC" = 1 -o "$wxUSE_COCOA" = 1 ; then
6650         AC_MSG_WARN([Popup window not yet supported under Mac OS X... disabled])
6651     else
6652         if test "$wxUSE_PM" = 1; then
6653             AC_MSG_WARN([wxPopupWindow not yet supported under PM... disabled])
6654         else
6655             AC_DEFINE(wxUSE_POPUPWIN)
6656             SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS popup"
6657
6658             USES_CONTROLS=1
6659         fi
6660     fi
6661 fi
6662
6663 if test "$wxUSE_DIALUP_MANAGER" = "yes"; then
6664     if test "$wxUSE_MAC" = 1 -o "$wxUSE_COCOA" = 1 ; then
6665         AC_MSG_WARN([Dialup manager not yet supported under Mac OS X... disabled])
6666     else
6667         AC_DEFINE(wxUSE_DIALUP_MANAGER)
6668         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS dialup"
6669     fi
6670 fi
6671
6672 if test "$wxUSE_TIPWINDOW" = "yes"; then
6673     if test "$wxUSE_PM" = 1; then
6674         AC_MSG_WARN([wxTipWindow not yet supported under PM... disabled])
6675     else
6676         AC_DEFINE(wxUSE_TIPWINDOW)
6677     fi
6678 fi
6679
6680 if test "$USES_CONTROLS" = 1; then
6681     AC_DEFINE(wxUSE_CONTROLS)
6682 fi
6683
6684 dnl ---------------------------------------------------------------------------
6685 dnl misc options
6686 dnl ---------------------------------------------------------------------------
6687
6688 dnl please keep the settings below in alphabetical order
6689 if test "$wxUSE_ACCESSIBILITY" = "yes"; then
6690     AC_DEFINE(wxUSE_ACCESSIBILITY)
6691     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS access"
6692 fi
6693
6694 if test "$wxUSE_DC_CACHEING" = "yes"; then
6695     AC_DEFINE(wxUSE_DC_CACHEING)
6696 fi
6697
6698 if test "$wxUSE_DRAGIMAGE" = "yes"; then
6699     AC_DEFINE(wxUSE_DRAGIMAGE)
6700     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS dragimag"
6701 fi
6702
6703 if test "$wxUSE_EXCEPTIONS" = "yes"; then
6704     if test "$wxUSE_NO_EXCEPTIONS" = "yes" ; then
6705         AC_MSG_WARN([--enable-exceptions can't be used with --enable-no_exceptions])
6706     else
6707         AC_DEFINE(wxUSE_EXCEPTIONS)
6708         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS except"
6709     fi
6710 fi
6711
6712 USE_HTML=0
6713 if test "$wxUSE_HTML" = "yes"; then
6714     AC_DEFINE(wxUSE_HTML)
6715     USE_HTML=1
6716     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS html html/about html/help html/helpview html/printing html/test html/virtual html/widget html/zip htlbox"
6717     if test "$wxUSE_MAC" = 1; then
6718         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS html/htmlctrl"
6719     fi
6720 fi
6721 if test "$wxUSE_WEBKIT" = "yes"; then
6722     if test "$wxUSE_MAC" = 1 -a "$USE_DARWIN" = 1; then
6723         old_CPPFLAGS="$CPPFLAGS"
6724         CPPFLAGS="-x objective-c++ $CPPFLAGS"
6725         AC_CHECK_HEADER([WebKit/HIWebView.h],
6726                         [
6727                            AC_DEFINE(wxUSE_WEBKIT)
6728                            WEBKIT_LINK="-framework WebKit"
6729                         ],
6730                         [
6731                            AC_MSG_WARN([WebKit headers not found; disabling wxWebKit])
6732                            wxUSE_WEBKIT=no
6733                         ],
6734                         [#include <Carbon/Carbon.h>])
6735         CPPFLAGS="$old_CPPFLAGS"
6736     elif test "$wxUSE_COCOA" = 1; then
6737         AC_DEFINE(wxUSE_WEBKIT)
6738     else
6739         wxUSE_WEBKIT=no
6740     fi
6741 fi
6742
6743 USE_XRC=0
6744 if test "$wxUSE_XRC" = "yes"; then
6745     if test "$wxUSE_XML" != "yes"; then
6746         AC_MSG_WARN([XML library not built, XRC resources disabled])
6747         wxUSE_XRC=no
6748     else
6749         AC_DEFINE(wxUSE_XRC)
6750         USE_XRC=1
6751         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS xrc"
6752     fi
6753 fi
6754
6755 USE_AUI=0
6756 if test "$wxUSE_AUI" = "yes"; then
6757    AC_DEFINE(wxUSE_AUI)
6758    USE_AUI=1
6759    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS aui"
6760 fi
6761
6762 if test "$wxUSE_MENUS" = "yes"; then
6763     AC_DEFINE(wxUSE_MENUS)
6764     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS menu"
6765 fi
6766
6767 if test "$wxUSE_METAFILE" = "yes"; then
6768     AC_DEFINE(wxUSE_METAFILE)
6769 fi
6770
6771 if test "$wxUSE_MIMETYPE" = "yes"; then
6772     AC_DEFINE(wxUSE_MIMETYPE)
6773 fi
6774
6775 if test "$wxUSE_MINIFRAME" = "yes"; then
6776     AC_DEFINE(wxUSE_MINIFRAME)
6777     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS minifram"
6778 fi
6779
6780 if test "$wxUSE_SYSTEM_OPTIONS" = "yes"; then
6781     AC_DEFINE(wxUSE_SYSTEM_OPTIONS)
6782     if test "$TOOLKIT" = "MSW" -o "$TOOLKIT" = "GTK" -o "$TOOLKIT" = "X11" -o \
6783         "$TOOLKIT" = "MOTIF" -o "$TOOLKIT" = "COCOA"; then
6784         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS taskbar"
6785     fi
6786 fi
6787
6788
6789 if test "$wxUSE_VALIDATORS" = "yes"; then
6790     AC_DEFINE(wxUSE_VALIDATORS)
6791     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS validate"
6792 fi
6793
6794 if test "$wxUSE_PALETTE" = "yes" ; then
6795   AC_DEFINE(wxUSE_PALETTE)
6796 fi
6797
6798 if test "$wxUSE_UNICODE" = "yes" -a "$wxUSE_UNICODE_MSLU" = "yes" ; then
6799   dnl Must be done this late because -lunicows must be before all the other libs
6800   LIBS=" -lunicows $LIBS"
6801 fi
6802
6803 USE_RICHTEXT=0
6804 if test "$wxUSE_RICHTEXT" = "yes"; then
6805     AC_DEFINE(wxUSE_RICHTEXT)
6806     USE_RICHTEXT=1
6807     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS richtext"
6808 fi
6809
6810 dnl ---------------------------------------------------------------------------
6811 dnl wxImage options
6812 dnl ---------------------------------------------------------------------------
6813
6814 if test "$wxUSE_IMAGE" = "yes" ; then
6815     AC_DEFINE(wxUSE_IMAGE)
6816
6817     if test "$wxUSE_GIF" = "yes" ; then
6818       AC_DEFINE(wxUSE_GIF)
6819     fi
6820
6821     if test "$wxUSE_PCX" = "yes" ; then
6822       AC_DEFINE(wxUSE_PCX)
6823     fi
6824
6825     if test "$wxUSE_IFF" = "yes" ; then
6826       AC_DEFINE(wxUSE_IFF)
6827     fi
6828
6829     if test "$wxUSE_PNM" = "yes" ; then
6830       AC_DEFINE(wxUSE_PNM)
6831     fi
6832
6833     if test "$wxUSE_XPM" = "yes" ; then
6834       AC_DEFINE(wxUSE_XPM)
6835     fi
6836
6837     if test "$wxUSE_ICO_CUR" = "yes" ; then
6838       AC_DEFINE(wxUSE_ICO_CUR)
6839     fi
6840 fi
6841
6842 dnl ---------------------------------------------------------------------------
6843 dnl common dialogs
6844 dnl ---------------------------------------------------------------------------
6845
6846 if test "$wxUSE_CHOICEDLG" = "yes"; then
6847     AC_DEFINE(wxUSE_CHOICEDLG)
6848 fi
6849
6850 if test "$wxUSE_COLOURDLG" = "yes"; then
6851     AC_DEFINE(wxUSE_COLOURDLG)
6852 fi
6853
6854 if test "$wxUSE_FILEDLG" = "yes"; then
6855     AC_DEFINE(wxUSE_FILEDLG)
6856 fi
6857
6858 if test "$wxUSE_FINDREPLDLG" = "yes"; then
6859     AC_DEFINE(wxUSE_FINDREPLDLG)
6860 fi
6861
6862 if test "$wxUSE_FONTDLG" = "yes"; then
6863     AC_DEFINE(wxUSE_FONTDLG)
6864 fi
6865
6866 if test "$wxUSE_DIRDLG" = "yes"; then
6867     if test "$wxUSE_TREECTRL" != "yes"; then
6868         AC_MSG_WARN(wxDirDialog requires wxTreeCtrl so it won't be compiled without it)
6869     else
6870         AC_DEFINE(wxUSE_DIRDLG)
6871     fi
6872 fi
6873
6874 if test "$wxUSE_MSGDLG" = "yes"; then
6875     AC_DEFINE(wxUSE_MSGDLG)
6876 fi
6877
6878 if test "$wxUSE_NUMBERDLG" = "yes"; then
6879     AC_DEFINE(wxUSE_NUMBERDLG)
6880 fi
6881
6882 if test "$wxUSE_PROGRESSDLG" = "yes"; then
6883     if test "$wxUSE_CONSTRAINTS" != "yes"; then
6884        AC_MSG_WARN(wxProgressDialog requires constraints so it won't be compiled without them)
6885     else
6886         AC_DEFINE(wxUSE_PROGRESSDLG)
6887     fi
6888 fi
6889
6890 if test "$wxUSE_SPLASH" = "yes"; then
6891     AC_DEFINE(wxUSE_SPLASH)
6892     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS splash"
6893 fi
6894
6895 if test "$wxUSE_STARTUP_TIPS" = "yes"; then
6896     if test "$wxUSE_CONSTRAINTS" != "yes"; then
6897        AC_MSG_WARN(Startup tips requires constraints and won't be compiled without them)
6898     else
6899         AC_DEFINE(wxUSE_STARTUP_TIPS)
6900     fi
6901 fi
6902
6903 if test "$wxUSE_TEXTDLG" = "yes"; then
6904     AC_DEFINE(wxUSE_TEXTDLG)
6905 fi
6906
6907 if test "$wxUSE_WIZARDDLG" = "yes"; then
6908     AC_DEFINE(wxUSE_WIZARDDLG)
6909     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS wizard"
6910 fi
6911
6912 dnl ---------------------------------------------------------------------------
6913 dnl wxMediaCtrl
6914 dnl ---------------------------------------------------------------------------
6915
6916 USE_MEDIA=0
6917
6918 if test "$wxUSE_MEDIACTRL" = "yes"; then
6919     dnl -----------------------------------------------------------------------
6920     dnl GStreamer
6921     dnl -----------------------------------------------------------------------
6922     if test "$wxUSE_GTK" = 1; then
6923         wxUSE_GSTREAMER="no"
6924
6925         dnl -------------------------------------------------------------------
6926         dnl Test for at least 0.8 gstreamer module from pkg-config
6927         dnl Even totem doesn't accept 0.9 evidently.
6928         dnl
6929         dnl So, we first check to see if 0.10 if available - if not we
6930         dnl try the older 0.8 version
6931         dnl -------------------------------------------------------------------
6932         GST_VERSION_MAJOR=0
6933         GST_VERSION_MINOR=10
6934         GST_VERSION_RELEASE=0
6935         GSTREAMER_REQ=$GST_VERSION_MAJOR.$GST_VERSION_MINOR.$GST_VERSION_RELEASE
6936         GST_MAJORMINOR=$GST_VERSION_MAJOR.$GST_VERSION_MINOR
6937
6938         if test "$wxUSE_GSTREAMER8" = "no"; then
6939             PKG_CHECK_MODULES(GST, gstreamer-$GST_MAJORMINOR
6940                                gstreamer-plugins-base-$GST_MAJORMINOR
6941                                gconf-2.0,
6942         [
6943             wxUSE_GSTREAMER="yes"
6944             GST_LIBS="$GST_LIBS -lgstinterfaces-$GST_MAJORMINOR"
6945         ],
6946         [
6947                     GST_VERSION_MINOR=8
6948         ])
6949             else
6950             GST_VERSION_MINOR=8
6951         fi
6952
6953         GSTREAMER_REQ=$GST_VERSION_MAJOR.$GST_VERSION_MINOR.$GST_VERSION_RELEASE
6954         GST_MAJORMINOR=$GST_VERSION_MAJOR.$GST_VERSION_MINOR
6955
6956         if test x$GST_VERSION_MINOR = x8; then
6957             PKG_CHECK_MODULES(GST, gstreamer-$GST_MAJORMINOR
6958                 gstreamer-interfaces-$GST_MAJORMINOR
6959                 gstreamer-gconf-$GST_MAJORMINOR,
6960                         [
6961                 wxUSE_GSTREAMER="yes"
6962                         ],
6963                 [
6964                     AC_MSG_WARN([Proper GStreamer .8/.10 installation not found])
6965                 ])
6966         fi
6967
6968
6969         if test "$wxUSE_GSTREAMER" = "yes"; then
6970             dnl system gstreamer package is compiled with Sun CC and outputs
6971             dnl CC-specific "-mt" in its flags, remove it for gcc compilation
6972             case "${host}" in
6973                 *-*-solaris2* )
6974                     if "$GCC" = yes; then
6975                         GST_CFLAGS=`echo $GST_CFLAGS | sed 's/-mt//'`
6976                         GST_LIBS=`echo $GST_LIBS | sed 's/-mt//'`
6977                     fi
6978             esac
6979
6980             CPPFLAGS="$GST_CFLAGS $CPPFLAGS"
6981             LIBS="$GST_LIBS $LIBS"
6982
6983             AC_DEFINE(wxUSE_GSTREAMER)
6984             AC_MSG_RESULT([GStreamer detection successful])
6985         fi
6986     fi
6987     USE_MEDIA=1
6988     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS mediaplayer"
6989     AC_DEFINE(wxUSE_MEDIACTRL)
6990 fi
6991
6992 dnl ---------------------------------------------------------------------------
6993 dnl get the string with OS info - used by wxGetOsDescription() on MacOS X
6994 dnl ---------------------------------------------------------------------------
6995
6996 if test "$cross_compiling" = "yes"; then
6997     dnl Use best guess from host as we can't use uname when cross compiling
6998     OSINFO="\"$host\""
6999 else
7000     dnl attualy work out OS version
7001     OSINFO=`uname -s -r -m`
7002     OSINFO="\"$OSINFO\""
7003 fi
7004
7005 AC_DEFINE_UNQUOTED(WXWIN_OS_DESCRIPTION, $OSINFO)
7006
7007 dnl ---------------------------------------------------------------------------
7008 dnl define the variable containing the installation prefix (used in dcpsg.cpp)
7009 dnl ---------------------------------------------------------------------------
7010
7011 if test "x$prefix" != "xNONE"; then
7012     wxPREFIX=$prefix
7013 else
7014     wxPREFIX=$ac_default_prefix
7015 fi
7016
7017 AC_DEFINE_UNQUOTED(wxINSTALL_PREFIX, "$wxPREFIX")
7018
7019
7020 dnl ---------------------------------------------------------------------------
7021 dnl define variables with all built libraries for wx-config
7022 dnl ---------------------------------------------------------------------------
7023
7024 CORE_BASE_LIBS="net base"
7025 CORE_GUI_LIBS="adv core"
7026
7027 if test "$wxUSE_XML" = "yes" ; then
7028     CORE_BASE_LIBS="xml $CORE_BASE_LIBS"
7029 fi
7030 if test "$wxUSE_ODBC" != "no" ; then
7031     CORE_BASE_LIBS="odbc $CORE_BASE_LIBS"
7032     CORE_GUI_LIBS="dbgrid $CORE_GUI_LIBS"
7033 fi
7034 if test "$wxUSE_HTML" = "yes" ; then
7035     CORE_GUI_LIBS="html $CORE_GUI_LIBS"
7036 fi
7037 if test "$wxUSE_DEBUGREPORT" = "yes" ; then
7038     CORE_GUI_LIBS="qa $CORE_GUI_LIBS"
7039 fi
7040 if test "$wxUSE_XRC" = "yes" ; then
7041     CORE_GUI_LIBS="xrc $CORE_GUI_LIBS"
7042 fi
7043 if test "$wxUSE_AUI" = "yes" ; then
7044     CORE_GUI_LIBS="aui $CORE_GUI_LIBS"
7045 fi
7046
7047 if test "$wxUSE_GUI" != "yes"; then
7048     CORE_GUI_LIBS=""
7049 fi
7050
7051 AC_SUBST(CORE_BASE_LIBS)
7052 AC_SUBST(CORE_GUI_LIBS)
7053
7054 dnl ---------------------------------------------------------------------------
7055 dnl Output the makefiles and such from the results found above
7056 dnl ---------------------------------------------------------------------------
7057
7058 dnl no more tests from here
7059 AC_LANG_POP
7060
7061 dnl all additional libraries (except wxWidgets itself) we link with
7062
7063 if test "$wxUSE_MAC" = 1 ; then
7064     if test "$wxUSE_SOUND" = "yes" || test "$wxUSE_MEDIACTRL" = "yes"; then
7065         if test "$USE_DARWIN" = 1; then
7066             LDFLAGS="$LDFLAGS -framework QuickTime"
7067         else
7068             LDFLAGS="$LDFLAGS -lQuickTimeLib"
7069         fi
7070     fi
7071     if test "$USE_DARWIN" = 1; then
7072         LDFLAGS="$LDFLAGS -framework IOKit -framework Carbon -framework Cocoa -framework System"
7073     else
7074         LDFLAGS="$LDFLAGS -lCarbonLib"
7075     fi
7076 fi
7077 if test "$wxUSE_COCOA" = 1 ; then
7078     LDFLAGS="$LDFLAGS -framework IOKit -framework Cocoa"
7079     if test "$wxUSE_MEDIACTRL" = "yes"; then
7080         LDFLAGS="$LDFLAGS -framework QuickTime"
7081     fi
7082 fi
7083 if test "$USE_DARWIN" = 1 -a "$wxUSE_MAC" != 1 -a "$wxUSE_COCOA" != 1 ; then
7084     LDFLAGS="$LDFLAGS -framework IOKit -framework CoreServices -framework System -framework ApplicationServices"
7085 fi
7086
7087 LIBS="$ZLIB_LINK $POSIX4_LINK $INET_LINK $WCHAR_LINK $DL_LINK $LIBS"
7088
7089 if test "$wxUSE_GUI" = "yes"; then
7090
7091     dnl TODO add checks that these samples will really compile (i.e. all the
7092     dnl      library features they need are present)
7093
7094     dnl TODO some samples are never built so far: mfc (requires VC++)
7095     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS artprov controls dialogs drawing \
7096                      dynamic erase event exec font image minimal mobile \
7097                      mobile/wxedit mobile/styles propsize render \
7098                      rotate shaped vscroll widgets"
7099
7100     if test "$wxUSE_MONOLITHIC" != "yes"; then
7101         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS console"
7102     fi
7103     if test "$TOOLKIT" = "MSW"; then
7104         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS regtest"
7105         if test "$wxUSE_UNIVERSAL" != "yes"; then
7106             SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS ownerdrw nativdlg"
7107         fi
7108     fi
7109     if test "$TOOLKIT" = "PM" -a "$wxUSE_UNIVERSAL" != "yes"; then
7110         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS ownerdrw"
7111     fi
7112 else
7113     SAMPLES_SUBDIRS="console"
7114 fi
7115
7116
7117 dnl C/C++ compiler options used to compile wxWidgets
7118 dnl
7119 dnl check for icc before gcc as icc is also recognized as gcc
7120 if test "x$INTELCC" = "xyes" ; then
7121     dnl Warnings which can't be easily suppressed in C code are disabled:
7122     dnl
7123     dnl     remark #810: conversion from "x" to "y" may lose significant bits
7124     dnl     remark #869: parameter "foo" was never referenced
7125     dnl     remark #1572: floating-point equality and inequality comparisons
7126     dnl                   are unreliable
7127     dnl     remark #1684: conversion from pointer to same-sized integral type
7128     dnl
7129     dnl (for others see below)
7130     CWARNINGS="-Wall -wd810,869,981,1418,1572,1684"
7131 elif test "$GCC" = yes ; then
7132     CWARNINGS="-Wall -Wundef"
7133 fi
7134
7135 if test "x$INTELCXX" = "xyes" ; then
7136     dnl Intel compiler gives some warnings which simply can't be worked
7137     dnl around or of which we have too many (810, 869) so it's impractical to
7138     dnl keep them enabled even if in theory it would be nice and some others
7139     dnl (279) are generated for standard macros and so there is nothing we can
7140     dnl do about them
7141     dnl
7142     dnl     remark #279: controlling expression is constant
7143     dnl     remark #383: value copied to temporary, reference to temporary used
7144     dnl     remark #444: destructor for base class "xxx" is not virtual
7145     dnl     remark #810: conversion from "x" to "y" may lose significant bits
7146     dnl     remark #869: parameter "foo" was never referenced
7147     dnl     remark #981: operands are evaluated in unspecified order
7148     dnl     remark #1418: external definition with no prior declaration
7149     dnl     remark #1419: external declaration in primary source file
7150     CXXWARNINGS="-Wall -wd279,383,444,810,869,981,1418,1419"
7151 elif test "$GXX" = yes ; then
7152     dnl CXXWARNINGS="-Wall -W -Wcast-qual -Werror"
7153     CXXWARNINGS="-Wall -Wundef -Wno-ctor-dtor-privacy"
7154 fi
7155
7156
7157 dnl combine everything together and remove the extra white space while doing it
7158 WXCONFIG_CFLAGS=`echo $WXCONFIG_CFLAGS`
7159 WXCONFIG_CXXFLAGS=`echo $WXCONFIG_CFLAGS $WXCONFIG_CXXFLAGS`
7160
7161
7162 dnl add -I options we use during library compilation
7163 dnl
7164 dnl note that the order is somewhat important: wxWidgets headers should
7165 dnl come first and the one with setup.h should be before $(top_srcdir)/include
7166 dnl in case the latter contains setup.h used by non-autoconf makefiles (e.g.
7167 dnl CodeWarrior):
7168 CPPFLAGS=`echo $WXCONFIG_CPPFLAGS \
7169  -I\\${top_builddir}lib/wx/include/${TOOLCHAIN_FULLNAME} \
7170  -I\\${top_srcdir}/include $TOOLKIT_INCLUDE \
7171  $CPPFLAGS `
7172
7173 C_AND_CXX_FLAGS="$DEBUG_CFLAGS $PROFILE_FLAGS $OPTIMISE_CFLAGS"
7174 CFLAGS=`echo $WXCONFIG_CFLAGS $CWARNINGS $C_AND_CXX_FLAGS $CFLAGS `
7175 CXXFLAGS=`echo $WXCONFIG_CXXFLAGS $CXXWARNINGS $C_AND_CXX_FLAGS $CXXFLAGS `
7176
7177 dnl now that we added WXCONFIG_CPPFLAGS to CPPFLAGS we can add the wx-config
7178 dnl only stuff to it
7179 WXCONFIG_CPPFLAGS=`echo $WXCONFIG_CPPFLAGS $WXCONFIG_ONLY_CPPFLAGS`
7180
7181
7182 if test "x$MWCC" = "xyes"; then
7183     dnl Correct MW 8.3 to be more similar to GCC.  In particular we
7184     dnl must use <regex.h> from system not our local copy on OS X,
7185     dnl but must use local not system on OS 9.
7186     dnl The following should make all -I paths usable for <> includes
7187     dnl while first checking in real system paths.  With 8.3 using
7188     dnl -gccincludes it will actually check local paths before system
7189     dnl even for <> which is totally wrong.
7190
7191     dnl Note that because this absolutely needs to be before any -I
7192     dnl that we have to tack it on to the end of the compiler commandline.
7193     CC="$CC -cwd source -I-"
7194     CXX="$CXX -cwd source -I-"
7195 fi
7196
7197
7198 LIBS=`echo $LIBS`
7199 EXTRALIBS="$LDFLAGS $LDFLAGS_VERSIONING $LIBS $DMALLOC_LIBS"
7200 EXTRALIBS_XML="$EXPAT_LINK"
7201 EXTRALIBS_HTML="$MSPACK_LINK"
7202 EXTRALIBS_ODBC="$ODBC_LINK"
7203 if test "$wxUSE_GUI" = "yes"; then
7204     EXTRALIBS_GUI=`echo $GUI_TK_LIBRARY $PNG_LINK $JPEG_LINK $TIFF_LINK $WEBKIT_LINK $EXTRALIBS_HILDON $EXTRALIBS_GNOMEVFS $EXTRALIBS_GNOMEPRINT`
7205 fi
7206 if test "$wxUSE_OPENGL" = "yes"; then
7207     EXTRALIBS_OPENGL="$LDFLAGS_GL $OPENGL_LIBS"
7208 fi
7209
7210 LDFLAGS="$LDFLAGS $PROFILE_FLAGS"
7211
7212 WXCONFIG_LIBS="$LIBS"
7213
7214 dnl wx-config must output builtin 3rd party libs in --libs in static build:
7215 if test "$wxUSE_REGEX" = "builtin" ; then
7216     wxconfig_3rdparty="regex${lib_unicode_suffix} $wxconfig_3rdparty"
7217 fi
7218 if test "$wxUSE_EXPAT" = "builtin" ; then
7219     wxconfig_3rdparty="expat $wxconfig_3rdparty"
7220 fi
7221 if test "$wxUSE_ODBC" = "builtin" ; then
7222     wxconfig_3rdparty="odbc $wxconfig_3rdparty"
7223 fi
7224 if test "$wxUSE_LIBTIFF" = "builtin" ; then
7225     wxconfig_3rdparty="tiff $wxconfig_3rdparty"
7226 fi
7227 if test "$wxUSE_LIBJPEG" = "builtin" ; then
7228     wxconfig_3rdparty="jpeg $wxconfig_3rdparty"
7229 fi
7230 if test "$wxUSE_LIBPNG" = "builtin" ; then
7231     wxconfig_3rdparty="png $wxconfig_3rdparty"
7232 fi
7233 if test "$wxUSE_ZLIB" = "builtin" ; then
7234     wxconfig_3rdparty="zlib $wxconfig_3rdparty"
7235 fi
7236
7237 for i in $wxconfig_3rdparty ; do
7238     WXCONFIG_LIBS="-lwx${i}${lib_debug_suffix}${WX_LIB_FLAVOUR}-${WX_RELEASE}${HOST_SUFFIX} $WXCONFIG_LIBS"
7239 done
7240
7241
7242 if test "x$wxUSE_UNIVERSAL" = "xyes" ; then
7243     WXUNIV=1
7244 else
7245     WXUNIV=0
7246 fi
7247
7248 AC_SUBST(wxUSE_ZLIB)
7249 AC_SUBST(wxUSE_REGEX)
7250 AC_SUBST(wxUSE_EXPAT)
7251 AC_SUBST(wxUSE_ODBC)
7252 AC_SUBST(wxUSE_LIBJPEG)
7253 AC_SUBST(wxUSE_LIBPNG)
7254 AC_SUBST(wxUSE_LIBTIFF)
7255
7256 if test $wxUSE_MONOLITHIC = "yes" ; then
7257     MONOLITHIC=1
7258 else
7259     MONOLITHIC=0
7260 fi
7261
7262 if test $wxUSE_PLUGINS = "yes" ; then
7263     USE_PLUGINS=1
7264 else
7265     USE_PLUGINS=0
7266 fi
7267
7268 if test $wxUSE_ODBC != "no" ; then
7269     USE_ODBC=1
7270 else
7271     USE_ODBC=0
7272 fi
7273
7274 if test "$wxUSE_DEBUGREPORT" = "yes" ; then
7275     USE_QA=1
7276 else
7277     USE_QA=0
7278 fi
7279
7280 if test $wxUSE_OFFICIAL_BUILD = "yes" ; then
7281     OFFICIAL_BUILD=1
7282 else
7283     OFFICIAL_BUILD=0
7284 fi
7285
7286 AC_SUBST(VENDOR)
7287 AC_SUBST(OFFICIAL_BUILD)
7288 AC_SUBST(WX_FLAVOUR)
7289 AC_SUBST(WX_LIB_FLAVOUR)
7290
7291 AC_SUBST(WXUNIV)
7292 AC_SUBST(MONOLITHIC)
7293 AC_SUBST(USE_PLUGINS)
7294 AC_SUBST(LIBS)
7295 AC_SUBST(EXTRALIBS)
7296 AC_SUBST(EXTRALIBS_XML)
7297 AC_SUBST(EXTRALIBS_HTML)
7298 AC_SUBST(EXTRALIBS_ODBC)
7299 AC_SUBST(EXTRALIBS_GUI)
7300 AC_SUBST(EXTRALIBS_OPENGL)
7301 AC_SUBST(EXTRALIBS_SDL)
7302 AC_SUBST(WITH_PLUGIN_SDL)
7303 AC_SUBST(EXTRALIBS_GNOMEPRINT)
7304 AC_SUBST(EXTRALIBS_GNOMEVFS)
7305 AC_SUBST(EXTRALIBS_HILDON)
7306 AC_SUBST(UNICODE)
7307 AC_SUBST(BUILD)
7308 AC_SUBST(DEBUG_INFO)
7309 AC_SUBST(DEBUG_FLAG)
7310 TOOLKIT_LOWERCASE=`echo $TOOLKIT | tr "[[A-Z]]" "[[a-z]]"`
7311 AC_SUBST(TOOLKIT_LOWERCASE)
7312 AC_SUBST(TOOLKIT_VERSION)
7313 AC_SUBST(SAMPLES_RPATH_FLAG)
7314 AC_SUBST(SAMPLES_RPATH_POSTLINK)
7315 AC_SUBST(HOST_SUFFIX)
7316 AC_SUBST(CPPUNIT_CFLAGS)
7317 AC_SUBST(CPPUNIT_LIBS)
7318
7319 case "$TOOLKIT" in
7320     GTK)
7321         TOOLKIT_USER="GTK+"
7322         if test "$WXGTK20" = 1; then
7323             TOOLKIT_USER="$TOOLKIT_USER 2"
7324         fi
7325         ;;
7326
7327     *)
7328         TOOLKIT_USER=$TOOLKIT_LOWERCASE
7329         ;;
7330 esac
7331
7332 if test "$wxUSE_WINE" = "yes"; then
7333     BAKEFILE_FORCE_PLATFORM=win32
7334 fi
7335
7336 dnl ---------------------------------------------------------------------------
7337 dnl Add Universal binary support 
7338 dnl Note we don't do this earlier because adding these cpp/ld flags could
7339 dnl cause configure tests to fail.
7340 dnl ---------------------------------------------------------------------------
7341 if test "$wxUSE_MAC" = 1 ; then
7342     if test "$wxUSE_UNIVERSAL_BINARY" = "yes" ; then
7343         CXXFLAGS="-isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch ppc -arch i386 $CXXFLAGS"
7344         CFLAGS="-isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch ppc -arch i386 $CFLAGS"
7345         LDFLAGS="-isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch ppc -arch i386 $LDFLAGS"
7346         bk_use_pch=no
7347     fi
7348     # TODO: where do we add "-syslibroot,/Developer/SDKs/MacOSX10.4u.sdk" for libtool (static builds only)?
7349     #       The makefile currently uses AR and RANLIB, which libtool apparently supercedes.
7350     # TODO: how can we avoid a hardwired reference to the SDK, above? (Someone used -lSystemStubs to avoid it)
7351 fi
7352
7353 AC_BAKEFILE([m4_include(autoconf_inc.m4)])
7354
7355 dnl HACK ALERT!! 
7356 dnl For now, we need to alter bk-deps not to generate deps
7357 dnl when we've configured a Universal binary build.
7358 dnl The next version of Bakefile will have the correct fix for this
7359 dnl at which time, this hack can be removed.
7360
7361 if test "$wxUSE_MAC" = 1 ; then
7362     if test "$wxUSE_UNIVERSAL_BINARY" = "yes" ; then
7363         sed "s/DEPSMODE=gcc/DEPSMODE=none/" < bk-deps > temp
7364         mv temp bk-deps
7365         chmod +x bk-deps
7366     fi
7367 fi
7368
7369 if test "$wxUSE_SHARED" = "yes"; then
7370
7371     dnl We get the shared build linker from bakefile, since it
7372     dnl moved all the logic for this out of this file and into
7373     dnl its own macro.  But it can't decide on whether to return
7374     dnl us $(VAR), ${VAR}, or the present expansion of VAR.
7375     dnl So normalise and expand everything here now, because its
7376     dnl not going to change inside wx-config anyway.
7377     sanitised_bakefile_mess=`echo "$SHARED_LD_CXX" | tr -d '()'`
7378     EXE_LINKER=`eval echo "$sanitised_bakefile_mess"`
7379
7380     dnl Need addtional flag on OS/2, so override bakefiles value
7381     dnl (there currently is no suitable variable to which the
7382     dnl  missing flags could be added, AFAICS. SN, 18.12.2004. )
7383     case "${host}" in
7384       *-pc-os2_emx | *-pc-os2-emx )
7385         SHARED_LD_CC="`pwd`/dllar.sh -name-mangler-script ./dllnames.sh -libf INITINSTANCE -libf TERMINSTANCE -o"
7386         SHARED_LD_CXX="`pwd`/dllar.sh -name-mangler-script ./dllnames.sh -libf INITINSTANCE -libf TERMINSTANCE -o"
7387         cp -p ${srcdir}/src/os2/dllnames.sh .
7388         cp -p ${srcdir}/src/os2/dllar.sh .
7389       ;;
7390     esac
7391 else
7392
7393     dnl No bakefile support for static builds, but this should be ok for most.
7394     EXE_LINKER="$CXX -o"
7395
7396 fi
7397 if test "$wxUSE_OMF" = "yes"; then
7398     case "${host}" in
7399       *-pc-os2_emx | *-pc-os2-emx )
7400         LDFLAGS="$LDFLAGS -Zlinker /EXEPACK"
7401         LDFLAGS_GUI="-Zlinker /PMTYPE:PM"
7402         WXCONFIG_LDFLAGS_GUI="-Zlinker /PMTYPE:PM"
7403       ;;
7404     esac
7405 fi
7406
7407 dnl find out if the compiler supports PCH
7408 dnl
7409 dnl TODO: this should be in bakefile
7410 if test $GCC_PCH = 1 ; then
7411     CPPFLAGS="-DWX_PRECOMP $CPPFLAGS"
7412 fi
7413
7414 dnl TOOLCHAIN_DEFS should be used for both wx and client code
7415 WXCONFIG_CPPFLAGS="$WXCONFIG_CPPFLAGS $TOOLCHAIN_DEFS"
7416
7417 dnl for convenience, sort the samples in alphabetical order
7418 dnl
7419 dnl FIXME For some mysterious reasons, sometimes the directories are duplicated
7420 dnl       in this list - hence uniq. But normally, this shouldn't be needed!
7421 dnl
7422 dnl       Unfortunately, there is a bug in OS/2's tr, such that
7423 dnl       tr ' ' '\n' introduces DOS-like line breaks, whereas tr '\n' ' '
7424 dnl       only removes the Unix-like part of the introduced line break.
7425 SAMPLES_SUBDIRS="`echo $SAMPLES_SUBDIRS | tr -s ' ' | tr ' ' '\n' | sort | uniq | tr '\n' ' '| tr -d '\r'`"
7426
7427 dnl subtle bakefile goop.
7428 dnl Used in wx-config now too, as its STATIC_FLAG with different makeup.
7429 dnl I wish we would have called it something less likely to clash with
7430 dnl things though.
7431 AC_SUBST(SHARED)
7432
7433 dnl global options
7434 AC_SUBST(WX_LIBRARY_BASENAME_NOGUI)
7435 AC_SUBST(WX_LIBRARY_BASENAME_GUI)
7436
7437 dnl toolkit options
7438 AC_SUBST(USE_GUI)
7439 AC_SUBST(AFMINSTALL)
7440 AC_SUBST(WIN32INSTALL)
7441 AC_SUBST(TOOLKIT)
7442 AC_SUBST(TOOLKIT_DIR)
7443 AC_SUBST(TOOLCHAIN_NAME)
7444 AC_SUBST(TOOLCHAIN_FULLNAME)
7445
7446 dnl wx-config options
7447 AC_SUBST(host_alias)
7448 AC_SUBST(cross_compiling)
7449 AC_SUBST(WIDGET_SET)
7450 AC_SUBST(WX_RELEASE)
7451 AC_SUBST(WX_VERSION)
7452 AC_SUBST(WX_SUBVERSION)
7453 AC_SUBST(WX_CHARTYPE)
7454 AC_SUBST(WX_DEBUGTYPE)
7455
7456 dnl note that in addition to the usual CPP/C/CXXFLAGS which are used for
7457 dnl building the library itself, we also have WXCONFIG_-prefixed variants which
7458 dnl are used when building the libraries using the library
7459 dnl
7460 dnl so put anything which should be used only during the library build in, e.g.
7461 dnl CXXFLAGS, but put everything else (by default) into WXCONFIG_CXXFLAGS
7462 dnl
7463 dnl and, finally, for some things which should be only used by wx-config but
7464 dnl not during the library compilation, use WXCONFIG_ONLY_CPPFLAGS which is
7465 dnl added to WXCONFIG_CPPFLAGS after adding the latter to CPPFLAGS
7466 AC_SUBST(WXCONFIG_CPPFLAGS)
7467 AC_SUBST(WXCONFIG_CFLAGS)
7468 AC_SUBST(WXCONFIG_CXXFLAGS)
7469
7470 AC_SUBST(WXCONFIG_LIBS)
7471 AC_SUBST(WXCONFIG_RPATH)
7472 AC_SUBST(WXCONFIG_LDFLAGS_GUI)
7473 AC_SUBST(WXCONFIG_RESFLAGS)
7474 AC_SUBST(EXE_LINKER)
7475
7476 dnl distribution vars
7477 AC_SUBST(GUIDIST)
7478 AC_SUBST(DISTDIR)
7479
7480 dnl additional subdirectories where we will build
7481 AC_SUBST(SAMPLES_SUBDIRS)
7482
7483 dnl additional libraries and linker settings
7484 AC_SUBST(LDFLAGS)
7485 AC_SUBST(LDFLAGS_GL)
7486 AC_SUBST(OPENGL_LIBS)
7487 AC_SUBST(DMALLOC_LIBS)
7488 AC_SUBST(WX_VERSION_TAG)
7489
7490 dnl additional resurces settings
7491 AC_SUBST(RESCOMP)
7492 AC_SUBST(WINDRES)
7493 AC_SUBST(REZ)
7494 AC_SUBST(RESFLAGS)
7495 AC_SUBST(RESPROGRAMOBJ)
7496 AC_SUBST(WX_RESOURCES_MACOSX_ASCII)
7497 AC_SUBST(WX_RESOURCES_MACOSX_DATA)
7498
7499 dnl additional for Mac OS X
7500 AC_SUBST(DEREZ)
7501 AC_SUBST(LIBWXMACRES)
7502 AC_SUBST(POSTLINK_COMMAND)
7503 AC_SUBST(MACSETFILE)
7504
7505 dnl other tools
7506 AC_SUBST(GCC)
7507 AC_SUBST(DLLTOOL)
7508
7509
7510 dnl MAKE_SET will be replaced with "MAKE=..." or nothing if make sets MAKE
7511 dnl itself (this macro is required if SUBDIRS variable is used in Makefile.am
7512 dnl - and we do use it)
7513 AC_PROG_MAKE_SET
7514
7515
7516 AC_CONFIG_HEADERS([lib/wx/include/${TOOLCHAIN_FULLNAME}/wx/setup.h:setup.h.in])
7517
7518 if test "$USE_WIN32" = 1; then
7519     AC_CONFIG_COMMANDS(
7520         [
7521             rcdefs.h
7522         ],
7523         [
7524             mkdir -p $outdir &&
7525             $CPP $infile | sed 's/^# *[1-9].*//;s/^ *//;/./,/^$/!d' > $outdir/rcdefs.h
7526         ],
7527         [
7528             CPP="$CPP"
7529             infile="$srcdir/include/wx/msw/genrcdefs.h"
7530             outdir="lib/wx/include/$TOOLCHAIN_FULLNAME/wx/msw"
7531         ]
7532     )
7533 fi
7534
7535 AC_CONFIG_FILES([ lib/wx/config/${TOOLCHAIN_FULLNAME}:wx-config.in ],
7536                 [ chmod +x lib/wx/config/${TOOLCHAIN_FULLNAME} ],
7537                 [ TOOLCHAIN_FULLNAME="${TOOLCHAIN_FULLNAME}" ])
7538
7539 AC_CONFIG_FILES([ lib/wx/config/inplace-${TOOLCHAIN_FULLNAME}:wx-config-inplace.in ],
7540                 [ chmod +x lib/wx/config/inplace-${TOOLCHAIN_FULLNAME} ],
7541                 [ TOOLCHAIN_FULLNAME="${TOOLCHAIN_FULLNAME}" ])
7542
7543 AC_CONFIG_FILES([ version-script Makefile ])
7544
7545 AC_CONFIG_COMMANDS([wx-config],
7546                    [ rm -f wx-config
7547                      ${LN_S} lib/wx/config/inplace-${TOOLCHAIN_FULLNAME} wx-config
7548                    ],
7549                    [ TOOLCHAIN_FULLNAME="${TOOLCHAIN_FULLNAME}"
7550                      LN_S="${LN_S}"
7551                    ])
7552
7553 dnl This would give us us build dir that in every significant way
7554 dnl resembles an installed wx in prefix=$builddir.  It is troublesome
7555 dnl though in this form because AC_CONFIG_LINKS will fail for directories
7556 dnl on platforms that do not have symlinks.
7557 dnl AC_CONFIG_LINKS([ include/wx-$WX_RELEASE$WX_FLAVOUR:include ])
7558 dnl AC_CONFIG_LINKS([ contrib/include ])
7559
7560 if test "$wxWITH_SUBDIRS" != "no"; then
7561 dnl Configure samples, contrib etc. directories, but only if they are present:
7562 if test "$wxUSE_GUI" = "yes"; then
7563     SUBDIRS="samples demos utils contrib"
7564 else dnl we build wxBase only
7565     dnl there are no wxBase programs in contrib nor demos
7566     SUBDIRS="samples utils"
7567 fi
7568 dnl Add tests to the list of subdirs if cppunit 1.8.0+ is detected
7569 AM_PATH_CPPUNIT(1.8.0, [SUBDIRS="$SUBDIRS tests"])
7570
7571 for subdir in `echo $SUBDIRS`; do
7572     if test -d ${srcdir}/${subdir} ; then
7573         if test "$wxUSE_GUI" = "yes"; then
7574             if test ${subdir} = "samples"; then
7575                 dnl only take those samples which compile in the current
7576                 dnl configuration and which exist
7577                 makefiles="samples/Makefile.in $makefiles"
7578                 for sample in `echo $SAMPLES_SUBDIRS`; do
7579                     if test -d $srcdir/samples/$sample; then
7580                         makefiles="samples/$sample/Makefile.in $makefiles"
7581                     fi
7582                 done
7583             else
7584                 dnl assume that everything compiles for utils &c
7585                 dnl any that shouldn't be built can be added to
7586                 dnl DISABLED_UTILS, DISABLED_CONTRIB or DISABLED_DEMOS
7587                 disabled_var=DISABLED_`echo $subdir | tr [[a-z]] [[A-Z]]`;
7588                 eval "disabled=\$$disabled_var"
7589                 disabled=/`echo X $disabled | sed 's@ @/|/@g'`/
7590                 makefiles=`(cd $srcdir ; find $subdir -name Makefile.in) | egrep -v "$disabled"`
7591             fi
7592         else dnl we build wxBase only
7593             dnl don't take all samples/utils, just those which build with
7594             dnl wxBase
7595             if test ${subdir} = "samples"; then
7596                 makefiles="samples/Makefile.in samples/console/Makefile.in"
7597             elif test ${subdir} = "utils"; then
7598                 makefiles=""
7599                 for util in HelpGen tex2rtf ; do
7600                     if test -d $srcdir/utils/$util ; then
7601                         makefiles="utils/$util/Makefile.in \
7602                                    utils/$util/src/Makefile.in \
7603                                    $makefiles"
7604                     fi
7605                 done
7606             else dnl assume that everything compiles for tests
7607                 makefiles=`(cd $srcdir ; find $subdir -name Makefile.in)`
7608             fi
7609         fi
7610
7611         for mkin in $makefiles ; do
7612             mk=`echo $mkin | sed 's/Makefile\.in/Makefile/g'`
7613             AC_CONFIG_FILES([$mk])
7614         done
7615     fi
7616 done
7617 fi dnl wxWITH_SUBDIRS
7618
7619 AC_OUTPUT
7620
7621 dnl report how we have been configured
7622 echo
7623 echo "Configured wxWidgets ${WX_VERSION} for \`${host}'"
7624 echo ""
7625 echo "  Which GUI toolkit should wxWidgets use?                 ${TOOLKIT_USER:-base only}"
7626 echo "  Should wxWidgets be compiled into single library?       ${wxUSE_MONOLITHIC:-yes}"
7627
7628 echo "  Should wxWidgets be compiled in debug mode?             ${wxUSE_DEBUG:-no}"
7629 echo "  Should wxWidgets be linked as a shared library?         ${wxUSE_SHARED:-no}"
7630 echo "  Should wxWidgets be compiled in Unicode mode?           ${wxUSE_UNICODE:-no}"
7631
7632 echo "  What level of wxWidgets compatibility should be enabled?"
7633 echo "                                       wxWidgets 2.4      ${WXWIN_COMPATIBILITY_2_4:-no}"
7634 echo "                                       wxWidgets 2.6      ${WXWIN_COMPATIBILITY_2_6:-yes}"
7635
7636 echo "  Which libraries should wxWidgets use?"
7637 echo "                                       jpeg               ${wxUSE_LIBJPEG-none}"
7638 echo "                                       png                ${wxUSE_LIBPNG-none}"
7639 echo "                                       regex              ${wxUSE_REGEX}"
7640 echo "                                       tiff               ${wxUSE_LIBTIFF-none}"
7641 if test "$wxUSE_X11" = 1 -o "$wxUSE_MOTIF" = 1; then
7642 echo "                                       xpm                ${wxUSE_LIBXPM-none}"
7643 fi
7644 echo "                                       zlib               ${wxUSE_ZLIB}"
7645 echo "                                       odbc               ${wxUSE_ODBC}"
7646 echo "                                       expat              ${wxUSE_EXPAT}"
7647 echo "                                       libmspack          ${wxUSE_LIBMSPACK}"
7648 echo "                                       sdl                ${wxUSE_LIBSDL}"
7649 echo "                                       gnomeprint         ${wxUSE_LIBGNOMEPRINT-none}"
7650 echo "                                       gnomevfs           ${wxUSE_LIBGNOMEVFS-none}"
7651 echo "                                       hildon             ${wxUSE_LIBHILDON-none}"
7652
7653 echo ""
7654
7655 dnl vi: set et sts=4 sw=4 com=\:dnl: