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