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