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