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