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