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