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