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