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