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