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