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