removed png and propsize samples from SAMPLES_SUBDIRS too (patch 1763216)
[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 fi
2530
2531 dnl ------------------------------------------------------------------------
2532 dnl Check for jpeg library
2533 dnl ------------------------------------------------------------------------
2534
2535 JPEG_LINK=
2536 if test "$wxUSE_LIBJPEG" != "no" ; then
2537     AC_DEFINE(wxUSE_LIBJPEG)
2538
2539     if test "$wxUSE_MGL" = 1 -a "$wxUSE_LIBJPEG" = "builtin" ; then
2540         AC_MSG_WARN([wxMGL doesn't work with builtin jpeg library, will use MGL one instead])
2541         wxUSE_LIBJPEG=sys
2542     fi
2543
2544     if test "$wxUSE_MGL" != 1 ; then
2545         dnl Don't check for libjpeg when building wxMGL, libmgl contains it
2546         if test "$wxUSE_LIBJPEG" = "sys" -o "$wxUSE_LIBJPEG" = "yes" ; then
2547             dnl can't use AC_CHECK_HEADER as jconfig.h defines things like
2548             dnl HAVE_STDLIB_H which are already defined and this provokes
2549             dnl a compiler warning which configure considers as an error...
2550             AC_MSG_CHECKING(for jpeglib.h)
2551             AC_CACHE_VAL(ac_cv_header_jpeglib_h,
2552                 AC_TRY_COMPILE(
2553                     [
2554                         #undef HAVE_STDLIB_H
2555                         #include <stdio.h>
2556                         #include <jpeglib.h>
2557                     ],
2558                     [
2559                     ],
2560                     ac_cv_header_jpeglib_h=yes,
2561                     ac_cv_header_jpeglib_h=no
2562                 )
2563             )
2564             AC_MSG_RESULT($ac_cv_header_jpeglib_h)
2565
2566             if test "$ac_cv_header_jpeglib_h" = "yes"; then
2567                 AC_CHECK_LIB(jpeg, jpeg_read_header, JPEG_LINK=" -ljpeg")
2568             fi
2569
2570             if test "x$JPEG_LINK" = "x" ; then
2571                 if test "$wxUSE_LIBJPEG" = "sys" ; then
2572                     AC_MSG_ERROR([system jpeg library not found! Use --with-libjpeg=builtin to use built-in version])
2573                 else
2574                     AC_MSG_WARN([system jpeg library not found, will use built-in instead])
2575                     wxUSE_LIBJPEG=builtin
2576                 fi
2577             else
2578                 dnl we are using the system library
2579                 wxUSE_LIBJPEG=sys
2580
2581                 if test "$wxUSE_MSW" = 1; then
2582                     dnl boolean is defined by the jpeg headers and also by the
2583                     dnl Windows headers of some compilers. This type has been
2584                     dnl renamed in the builtin, so it is only an issue when
2585                     dnl using an external jpeg lib on Windows.
2586                     AC_CHECK_TYPES(
2587                         [boolean],
2588                         [
2589                             AC_CHECK_SIZEOF(
2590                                 [boolean],
2591                                 [],
2592                                 [
2593                                     #undef HAVE_BOOLEAN
2594                                     #include <stdio.h>
2595                                     #include <jpeglib.h>
2596                                 ])
2597                             AC_DEFINE_UNQUOTED(
2598                                 [wxHACK_BOOLEAN],
2599                                 [wxInt`expr 8 \* $ac_cv_sizeof_boolean`])
2600                         ],
2601                         [],
2602                         [#include <windows.h>])
2603                 fi
2604             fi
2605         fi
2606     fi
2607 fi
2608
2609 dnl ------------------------------------------------------------------------
2610 dnl Check for tiff library
2611 dnl ------------------------------------------------------------------------
2612
2613 TIFF_LINK=
2614 TIFF_PREREQ_LINKS=-lm
2615 if test "$wxUSE_LIBTIFF" != "no" ; then
2616     AC_DEFINE(wxUSE_LIBTIFF)
2617
2618     if test "$wxUSE_LIBTIFF" = "sys" -o "$wxUSE_LIBTIFF" = "yes" ; then
2619         dnl libtiff may depend on libjpeg and libz so use them in the test
2620         dnl below or it would fail
2621         if test "$wxUSE_LIBJPEG" = "sys"; then
2622             TIFF_PREREQ_LINKS="$TIFF_PREREQ_LINKS $JPEG_LINK"
2623         fi
2624         if test "$wxUSE_ZLIB" = "sys"; then
2625             TIFF_PREREQ_LINKS="$TIFF_PREREQ_LINKS $ZLIB_LINK"
2626         fi
2627         AC_CHECK_HEADER(tiffio.h,
2628                         [
2629                             AC_CHECK_LIB(tiff, TIFFError,
2630                                          TIFF_LINK=" -ltiff",
2631                                          ,
2632                                          $TIFF_PREREQ_LINKS)
2633                         ],
2634                         [],
2635                         [ ]
2636                        )
2637
2638         if test "x$TIFF_LINK" = "x" ; then
2639             if test "$wxUSE_LIBTIFF" = "sys" ; then
2640                 AC_MSG_ERROR([system tiff library not found! Use --with-libtiff=builtin to use built-in version])
2641             else
2642                 AC_MSG_WARN([system tiff library not found, will use built-in instead])
2643                 wxUSE_LIBTIFF=builtin
2644             fi
2645         else
2646             dnl we are using the system library
2647             wxUSE_LIBTIFF=sys
2648         fi
2649     fi
2650 fi
2651
2652 dnl ------------------------------------------------------------------------
2653 dnl Check for expat libraries
2654 dnl ------------------------------------------------------------------------
2655
2656 if test "$wxUSE_WCHAR_T" != "yes"; then
2657     if test "$wxUSE_EXPAT" != "no"; then
2658         AC_MSG_WARN([wxWidgets requires wchar_t to use expat, disabling])
2659         wxUSE_EXPAT=no
2660     fi
2661     if test "$wxUSE_XML" != "no"; then
2662         AC_MSG_WARN([wxWidgets requires wchar_t to use xml, disabling])
2663         wxUSE_XML=no
2664     fi
2665 fi
2666
2667 if test "$wxUSE_EXPAT" != "no"; then
2668     wxUSE_XML=yes
2669     AC_DEFINE(wxUSE_EXPAT)
2670     AC_DEFINE(wxUSE_XML)
2671
2672     if test "$wxUSE_EXPAT" = "sys" -o "$wxUSE_EXPAT" = "yes" ; then
2673         AC_CHECK_HEADER([expat.h], [found_expat_h=1],, [ ])
2674         if test "x$found_expat_h" = "x1"; then
2675             dnl Expat 1.95.6 comes with broken expat.h:
2676             AC_CACHE_CHECK([if expat.h is valid C++ header],
2677                 wx_cv_expat_is_not_broken,
2678                 [
2679                 AC_LANG_PUSH(C++)
2680                 AC_TRY_COMPILE([#include <expat.h>],[],
2681                     wx_cv_expat_is_not_broken=yes,
2682                     wx_cv_expat_is_not_broken=no
2683                 )
2684                 AC_LANG_POP()
2685                 ]
2686             )
2687             if test "$wx_cv_expat_is_not_broken" = "yes" ; then
2688                 AC_CHECK_LIB(expat, XML_ParserCreate, EXPAT_LINK=" -lexpat")
2689             fi
2690         fi
2691         if test "x$EXPAT_LINK" = "x" ; then
2692             if test "$wxUSE_EXPAT" = "sys" ; then
2693                 AC_MSG_ERROR([system expat library not found! Use --with-expat=builtin to use built-in version])
2694             else
2695                 AC_MSG_WARN([system expat library not found, will use built-in instead])
2696                 wxUSE_EXPAT=builtin
2697             fi
2698         else
2699             dnl we are using the system library
2700             wxUSE_EXPAT=sys
2701         fi
2702     fi
2703     if test "$wxUSE_EXPAT" = "builtin" ; then
2704         dnl Expat needs this:
2705         AC_CONFIG_SUBDIRS([src/expat])
2706     fi
2707 fi
2708
2709
2710 dnl ------------------------------------------------------------------------
2711 dnl Check for libmspack
2712 dnl ------------------------------------------------------------------------
2713
2714 if test "$wxUSE_LIBMSPACK" != "no"; then
2715     AC_CHECK_HEADER([mspack.h], [found_mspack_h=1],, [ ])
2716     if test "x$found_mspack_h" = "x1"; then
2717         AC_CHECK_LIB(mspack, mspack_create_chm_decompressor,
2718                      MSPACK_LINK=" -lmspack")
2719     fi
2720     if test "x$MSPACK_LINK" = "x" ; then
2721         wxUSE_LIBMSPACK=no
2722     fi
2723 fi
2724
2725 if test "$wxUSE_LIBMSPACK" != "no"; then
2726     AC_DEFINE(wxUSE_LIBMSPACK)
2727 fi
2728
2729
2730 dnl ----------------------------------------------------------------
2731 dnl search for toolkit (widget sets)
2732 dnl ----------------------------------------------------------------
2733
2734 AFMINSTALL=
2735 WIN32INSTALL=
2736
2737 TOOLKIT=
2738 TOOLKIT_INCLUDE=
2739 WIDGET_SET=
2740
2741 dnl are we building for a win32 target environment?
2742 dnl If so, setup common stuff needed for both GUI and Base libs.
2743 if test "$USE_WIN32" = 1 ; then
2744     AC_CHECK_HEADERS(w32api.h,,, [ ])
2745     AC_CHECK_HEADER(windows.h,,
2746     [
2747         AC_MSG_ERROR(please set CFLAGS to contain the location of windows.h)
2748     ],
2749     [ ])
2750
2751     dnl --- FIXME: This is still a somewhat random list of libs,
2752     dnl ---        some of them should probably be included conditionally.
2753     LIBS="$LIBS -lwinspool -lwinmm -lshell32 -lcomctl32 -lcomdlg32 -lctl3d32 -ladvapi32 -lwsock32 -lgdi32"
2754
2755     if test "$wxUSE_ACCESSIBILITY" = "yes" ; then
2756         LIBS="$LIBS -loleacc"
2757     fi
2758
2759     case "${host}" in
2760         *-*-cygwin* )
2761             dnl Cygwin doesn't include these by default
2762             LIBS="$LIBS -lkernel32 -luser32"
2763     esac
2764
2765     dnl add extra odbc libs if we have compiled in odbc
2766     if test "$wxUSE_ODBC" = "sys" ; then
2767         wxUSE_ODBC = "yes"
2768     fi
2769     if test "$wxUSE_ODBC" = "yes" ; then
2770         LIBS=" -lodbc32 -lole32 -loleaut32 $LIBS"
2771         AC_DEFINE(wxUSE_ODBC)
2772     fi
2773     dnl We might want to abort here if wxUSE_ODBC="builtin" isn't supported on msw.
2774
2775     dnl This one is still used by some sample makefiles.
2776     RESFLAGS="--include-dir \$(top_srcdir)/include --include-dir \$(top_srcdir)/\$(program_dir) --define __WIN32__ --define __WIN95__ --define __GNUWIN32__"
2777     RESPROGRAMOBJ="\$(PROGRAM)_resources.o"
2778
2779     dnl This lot we export to wx-config.  It must add the relevant
2780     dnl include directories at the point when they can be known.
2781     dnl (but are these (still) required anyway?)
2782     WXCONFIG_RESFLAGS="--define __WIN32__ --define __WIN95__ --define __GNUWIN32__"
2783
2784     dnl install Win32-specific files in "make install"
2785     WIN32INSTALL=win32install
2786
2787     dnl pbt.h is missing on Wine at least
2788     AC_CHECK_HEADER([pbt.h],, [AC_DEFINE(NEED_PBT_H)], [ ])
2789 fi
2790
2791 if test "$wxUSE_GUI" = "yes"; then
2792     USE_GUI=1
2793
2794     GUI_TK_LIBRARY=
2795
2796     WXGTK12=
2797     WXGTK127=
2798     WXGTK20=
2799     WXGPE=
2800
2801     if test "$wxUSE_COCOA" = 1 ; then
2802         if test "$wxUSE_PRINTING_ARCHITECTURE" = "yes"; then
2803             AC_MSG_WARN([Printing not supported under wxCocoa yet, disabled])
2804             wxUSE_PRINTING_ARCHITECTURE=no
2805         fi
2806         if test "$wxUSE_DRAG_AND_DROP" = "yes"; then
2807             AC_MSG_WARN([Drag and Drop not supported under wxCocoa yet, disabled])
2808             wxUSE_DRAG_AND_DROP=no
2809         fi
2810         if test "$wxUSE_DRAGIMAGE" = "yes"; then
2811             AC_MSG_WARN([wxDragImage not supported under wxCocoa yet, disabled])
2812             wxUSE_DRAGIMAGE=no
2813         fi
2814     fi
2815
2816     if test "$wxUSE_MSW" = 1 ; then
2817         TOOLKIT=MSW
2818         GUIDIST=MSW_DIST
2819
2820         dnl -mwindows causes a heap of other default gui libs to be linked in.
2821         case "${host}" in
2822             *-*-mingw32* )
2823                 WXCONFIG_LDFLAGS_GUI="$LDFLAGS -Wl,--subsystem,windows -mwindows"
2824         esac
2825     fi
2826
2827     if test "$wxUSE_GTK" = 1; then
2828         dnl GTK+ test program must be compiled with C compiler
2829         AC_MSG_CHECKING([for GTK+ version])
2830
2831         gtk_version_cached=1
2832         AC_CACHE_VAL(wx_cv_lib_gtk,
2833             [
2834                 dnl stupid GTK+ AM macros produce their own messages, so we
2835                 dnl have to pass to the next line
2836                 gtk_version_cached=0
2837                 AC_MSG_RESULT()
2838
2839                 dnl we must link against lgthread unless the user
2840                 dnl used --disable-threads
2841                 GTK_MODULES=
2842                 if test "$wxUSE_THREADS" = "yes"; then
2843                     GTK_MODULES=gthread
2844                 fi
2845
2846                 dnl detect GTK2
2847                 wx_cv_lib_gtk=
2848                 if test "x$wxGTK_VERSION" != "x1"
2849                 then
2850                     dnl The gthread.pc that ships with Solaris returns '-mt',
2851                     dnl it's correct for Sun CC, but gcc requires '-pthreads'.
2852                     dnl So disable the compile check and remove the -mt below.
2853                     case "${host}" in
2854                         *-*-solaris2* )
2855                             if test "$wxUSE_THREADS" = "yes" -a "$GCC" = yes; then
2856                                 enable_gtktest=no
2857                             fi
2858                     esac
2859
2860                     AM_PATH_GTK_2_0(2.0.0, wx_cv_lib_gtk=2.0, , $GTK_MODULES)
2861
2862                     dnl Solaris also requires -lX11 for static lib
2863                     case "${host}" in
2864                         *-*-solaris2* )
2865                             if test "$wxUSE_SHARED" != "yes"; then
2866                                 GTK_LIBS="$GTK_LIBS -lX11"
2867                             fi
2868                     esac
2869                 fi
2870
2871                 dnl detect GTK1.x
2872                 if test -z "$wx_cv_lib_gtk"; then
2873                     if test "x$wxGTK_VERSION" = "x1" -o "x$wxGTK_VERSION" = "xany" ; then
2874                         AM_PATH_GTK(1.2.7, wx_cv_lib_gtk=1.2.7, , $GTK_MODULES)
2875
2876                         if test -z "$wx_cv_lib_gtk"; then
2877                             AM_PATH_GTK(1.2.3, wx_cv_lib_gtk=1.2.3, , $GTK_MODULES)
2878                         fi
2879                     fi
2880                 fi
2881
2882                 if test -z "$wx_cv_lib_gtk"; then
2883                     dnl looks better in AC_MSG_RESULT
2884                     wx_cv_lib_gtk=none
2885                 else
2886                     dnl we need to cache GTK_CFLAGS and GTK_LIBS for the
2887                     dnl subsequent runs
2888                     wx_cv_cflags_gtk=$GTK_CFLAGS
2889                     wx_cv_libs_gtk=`echo $GTK_LIBS | sed -e 's/ -l[[^ ]]*cairo[[^ ]]*//g'`
2890                 fi
2891             ]
2892         )
2893
2894         dnl if it wasn't cached, the messages from AM_PATH_GTK() above are
2895         dnl enough
2896         if test "$gtk_version_cached" = 1; then
2897             AC_MSG_RESULT($wx_cv_lib_gtk)
2898         fi
2899
2900         case "$wx_cv_lib_gtk" in
2901             2.0)    WXGTK20=1
2902                     TOOLKIT_VERSION=2
2903                     ;;
2904             1.2.7)  WXGTK127=1
2905                     WXGTK12=1
2906                     ;;
2907             1.2.3)  WXGTK12=1
2908                     ;;
2909             *)      AC_MSG_ERROR([
2910 The development files for GTK+ were not found. For GTK+ 2, please
2911 ensure that pkg-config is in the path and that gtk+-2.0.pc is
2912 installed. For GTK+ 1.2 please check that gtk-config is in the path,
2913 and that the version is 1.2.3 or above. Also check that the
2914 libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
2915 --libs' are in the LD_LIBRARY_PATH or equivalent.
2916                             ])
2917                     ;;
2918         esac
2919
2920         if test "$WXGTK20" = 1; then
2921             save_CFLAGS="$CFLAGS"
2922             save_LIBS="$LIBS"
2923             CFLAGS="$wx_cv_cflags_gtk $CFLAGS"
2924             LIBS="$LIBS $wx_cv_libs_gtk"
2925
2926             dnl gtk_icon_size_lookup is not available in the GTK+ headers
2927             dnl that have shipped with some versions of Sun's JDS. Not using
2928             dnl AC_CHECK_FUNCS here since it only checks the function exists
2929             dnl in the lib (not the header).
2930             AC_CHECK_DECLS([gtk_icon_size_lookup], [],
2931                            [AC_DEFINE(NEED_GTK_ICON_SIZE_LOOKUP)],
2932                            [#include <gtk/gtk.h>])
2933
2934
2935             dnl test if we have at least GTK+ 2.10:
2936             AC_MSG_CHECKING([if GTK+ is version >= 2.10])
2937             AC_TRY_COMPILE([
2938                             #include <gtk/gtk.h>
2939                            ],
2940                            [
2941                             #if !GTK_CHECK_VERSION(2,10,0)
2942                             Not GTK+ 2.10
2943                             #endif
2944                            ],
2945                            [
2946                             AC_DEFINE(__WXGTK210__)
2947                             AC_DEFINE(__WXGTK26__)
2948                             AC_DEFINE(__WXGTK24__)
2949                             AC_MSG_RESULT([yes])
2950                             ac_wxgtk210=1
2951                            ],
2952                            [
2953                             AC_MSG_RESULT([no])
2954                             ac_wxgtk210=0
2955                            ])
2956
2957             if test "$ac_wxgtk210" = 0; then
2958                 dnl test if we have at least GTK+ 2.6:
2959                 AC_MSG_CHECKING([if GTK+ is version >= 2.6])
2960                 AC_TRY_COMPILE([
2961                                 #include <gtk/gtk.h>
2962                             ],
2963                             [
2964                                 #if !GTK_CHECK_VERSION(2,6,0)
2965                                 Not GTK+ 2.6
2966                                 #endif
2967                             ],
2968                             [
2969                                 AC_DEFINE(__WXGTK26__)
2970                                 AC_DEFINE(__WXGTK24__)
2971                                 AC_MSG_RESULT([yes])
2972                                 ac_wxgtk26=1
2973                             ],
2974                             [
2975                                 AC_MSG_RESULT([no])
2976                                 ac_wxgtk26=0
2977                             ])
2978             fi
2979
2980             if test "$ac_wxgtk26" = 0; then
2981                 dnl test if we have at least GTK+ 2.4:
2982                 AC_MSG_CHECKING([if GTK+ is version >= 2.4])
2983                 AC_TRY_COMPILE([
2984                                 #include <gtk/gtk.h>
2985                             ],
2986                             [
2987                                 #if !GTK_CHECK_VERSION(2,4,0)
2988                                 Not GTK+ 2.4
2989                                 #endif
2990                             ],
2991                             [
2992                                 AC_DEFINE(__WXGTK24__)
2993                                 AC_MSG_RESULT([yes])
2994                             ],
2995                             [
2996                                 AC_MSG_RESULT([no])
2997                             ])
2998             fi
2999
3000             CFLAGS="$save_CFLAGS"
3001             LIBS="$save_LIBS"
3002         else
3003             if test "$wxUSE_UNICODE" = "yes"; then
3004                 AC_MSG_WARN([Unicode configuration not supported with GTK+ 1.x])
3005                 wxUSE_UNICODE=no
3006             fi
3007
3008             dnl test for XIM support in libgdk
3009             AC_CHECK_LIB(gdk, gdk_im_open, AC_DEFINE(HAVE_XIM))
3010
3011             dnl we need poll() in src/gtk1/app.cpp (we know that Darwin doesn't
3012             dnl have it but we do the check for the others)
3013             if test "$USE_DARWIN" != 1; then
3014                 AC_CHECK_FUNCS(poll)
3015             fi
3016         fi
3017
3018         TOOLKIT_INCLUDE="$wx_cv_cflags_gtk"
3019         GUI_TK_LIBRARY="$wx_cv_libs_gtk $GUI_TK_LIBRARY"
3020
3021         AFMINSTALL=afminstall
3022         TOOLKIT=GTK
3023         GUIDIST=GTK_DIST
3024
3025         dnl test for external libxpm if we're configured to use it
3026         if test "$wxUSE_GPE" = "yes"; then
3027             AC_MSG_CHECKING(for gpewidget library)
3028             WX_PATH_FIND_LIBRARIES($SEARCH_LIB,gpewidget)
3029             if test "$ac_find_libraries" != "" ; then
3030                 WX_LINK_PATH_EXIST($ac_find_libraries,$GUI_TK_LIBRARY)
3031                 dnl -lgpewidget must be before all GTK libs and
3032                 dnl we guess its path from the prefix
3033                 GUI_TK_LIBRARY="-L${prefix}/lib -lgpewidget $GUI_TK_LIBRARY"
3034                 WXGPE=1
3035                 AC_MSG_RESULT([found in $ac_find_libraries])
3036             else
3037                 AC_MSG_RESULT(not found)
3038             fi
3039
3040             dnl AC_MSG_CHECKING(for gpe library)
3041             dnl WX_PATH_FIND_LIBRARIES($SEARCH_LIB,gpe)
3042             dnl if test "$ac_find_libraries" != "" ; then
3043             dnl     WX_LINK_PATH_EXIST($ac_find_libraries,$GUI_TK_LIBRARY)
3044             dnl     GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lgpe"
3045             dnl     AC_MSG_RESULT(found in $ac_find_libraries)
3046             dnl else
3047             dnl     AC_MSG_RESULT(not found)
3048             dnl fi
3049         fi
3050     fi
3051
3052     if test "$wxUSE_MGL" = 1; then
3053        AC_MSG_CHECKING(for SciTech MGL library)
3054         if test "x$MGL_ROOT" = x ; then
3055             AC_MSG_RESULT(not found)
3056             AC_MSG_ERROR([Cannot find MGL library. Make sure MGL_ROOT is set.])
3057         else
3058             AC_MSG_RESULT($MGL_ROOT)
3059         fi
3060
3061         AC_MSG_CHECKING(for libmgl location)
3062         dnl Find MGL library that we want
3063         dnl FIXME_MGL - test for MGL variants for freebsd etc.;
3064         dnl             and for non-x86 versions
3065         case "${host}" in
3066             *-*-linux* )
3067               dnl glibc.so, glibc are for older versions of MGL,
3068               dnl x86/a, x86/so are used by >= 5.0 R11
3069               if test "x$wxUSE_SHARED" = xyes ; then
3070                   mgl_os_candidates="linux/gcc/x86/so linux/gcc/x86/a linux/gcc/glibc.so linux/gcc/glibc"
3071               else
3072                   mgl_os_candidates="linux/gcc/x86/a linux/gcc/x86/so linux/gcc/glibc linux/gcc/glibc.so"
3073               fi
3074               ;;
3075             *-pc-msdosdjgpp )
3076               mgl_os_candidates="dos32/dj2"
3077               ;;
3078             *)
3079               AC_MSG_ERROR(This system type ${host} is not yet supported by wxMGL.)
3080         esac
3081
3082         mgl_lib_type=""
3083         mgl_os=""
3084
3085         for mgl_os_i in $mgl_os_candidates ; do
3086             if test "x$mgl_os" = x ; then
3087                 if test "$wxUSE_DEBUG_FLAG" = yes ; then
3088                     if test -f $MGL_ROOT/lib/debug/$mgl_os_i/libmgl.a -o \
3089                             -f $MGL_ROOT/lib/debug/$mgl_os_i/libmgl.so; then
3090                         mgl_lib_type=debug
3091                         mgl_os=$mgl_os_i
3092                     fi
3093                 fi
3094                 if test "x$mgl_lib_type" = x ; then
3095                     if test -f $MGL_ROOT/lib/release/$mgl_os_i/libmgl.a -o \
3096                             -f $MGL_ROOT/lib/release/$mgl_os_i/libmgl.so; then
3097                         mgl_lib_type=release
3098                         mgl_os=$mgl_os_i
3099                     fi
3100                 fi
3101             fi
3102         done
3103
3104         if test "x$mgl_os" = x ; then
3105             AC_MSG_RESULT(not found)
3106             AC_MSG_ERROR([Cannot find MGL libraries, make sure they are compiled.])
3107         fi
3108         AC_MSG_RESULT("$MGL_ROOT/lib/$mgl_lib_type/$mgl_os")
3109
3110         wxUSE_UNIVERSAL="yes"
3111
3112         TOOLKIT_INCLUDE="-I$MGL_ROOT/include"
3113         GUI_TK_LIBRARY="-L$MGL_ROOT/lib/$mgl_lib_type/$mgl_os -lmgl -lmglcpp -lpm"
3114
3115         AFMINSTALL=afminstall
3116         TOOLKIT=MGL
3117         GUIDIST=MGL_DIST
3118     fi
3119
3120     if test "$wxUSE_DFB" = 1; then
3121        PKG_PROG_PKG_CONFIG()
3122
3123        PKG_CHECK_MODULES(DIRECTFB,
3124                          [directfb >= 0.9.23],
3125                          [
3126                            wxUSE_UNIVERSAL="yes"
3127                            TOOLKIT_INCLUDE="$DIRECTFB_CFLAGS"
3128                            GUI_TK_LIBRARY="$DIRECTFB_LIBS"
3129                            TOOLKIT=DFB
3130                            GUIDIST=DFB_DIST
3131                          ],
3132                          [
3133                            AC_MSG_ERROR([DirectFB not found.])
3134                          ]
3135                          )
3136     fi
3137
3138     if test "$wxUSE_MICROWIN" = 1; then
3139         AC_MSG_CHECKING(for MicroWindows)
3140         if test "x$MICROWINDOWS" = x ; then
3141             AC_MSG_RESULT(not found)
3142             AC_MSG_ERROR([Cannot find MicroWindows library. Make sure MICROWINDOWS is set.])
3143         else
3144             AC_MSG_RESULT($MICROWINDOWS)
3145         fi
3146
3147         if test -f $MICROWINDOWS/lib/libmwin.a; then
3148             AC_MSG_RESULT(MicroWindows' libraries found.)
3149         else
3150             AC_MSG_ERROR([Cannot find MicroWindows libraries, make sure they are compiled.])
3151         fi
3152
3153         TOOLKIT_INCLUDE="-I$MICROWINDOWS/include"
3154         GUI_TK_LIBRARY="-L$MICROWINDOWS/lib -lmwin -lmwengine -mwfonts -mwdrivers -mwinlib"
3155
3156         wxUSE_UNIVERSAL="yes"
3157
3158         AFMINSTALL=afminstall
3159         TOOLKIT=MICROWIN
3160         GUIDIST=MICROWIN_DIST
3161
3162         TOOLCHAIN_DEFS="${TOOLCHAIN_DEFS} -D__WXMSW__ -D__WIN95__ -D__WIN32__ -DMWIN -DMICROWIN_NOCONTROLS -DMICROWIN_TODO=1"
3163     fi
3164
3165     dnl common part of X11 and Motif port checks
3166     if test "$wxUSE_X11" = 1 -o "$wxUSE_MOTIF" = 1; then
3167         dnl use standard macros to check for X headers/libs, this brings
3168         dnl support for the standard configure options --x-includes,
3169         dnl --x-libraries and --no-x
3170         AC_PATH_XTRA
3171
3172         if test "$no_x" = "yes"; then
3173           AC_MSG_ERROR([X11 not found, please use --x-includes and/or --x-libraries options (see config.log for details)])
3174         fi
3175
3176         dnl for some reason AC_PATH_XTRA seems to add -INONE and -LNONE (and
3177         dnl also sometimes -RNONE) to X_CFLAGS and X_LIBS respectively, filter
3178         dnl this junk out
3179         GUI_TK_LIBRARY=`echo $X_LIBS | sed 's/ -LNONE//' | sed 's/ -RNONE//'`
3180         TOOLKIT_INCLUDE=`echo $X_CFLAGS | sed 's/ -INONE//'`
3181         AFMINSTALL=afminstall
3182         COMPILED_X_PROGRAM=0
3183
3184     fi
3185
3186     if test "$wxUSE_X11" = 1; then
3187         if test "$wxUSE_NANOX" = "yes"; then
3188             AC_MSG_CHECKING(for MicroWindows/NanoX distribution)
3189             if test "x$MICROWIN" = x ; then
3190                 AC_MSG_RESULT(not found)
3191                 AC_MSG_ERROR([Cannot find MicroWindows library. Make sure MICROWIN is set.])
3192             else
3193                 AC_MSG_RESULT($MICROWIN)
3194                 AC_DEFINE(wxUSE_NANOX)
3195             fi
3196         fi
3197
3198         if test "$wxUSE_UNICODE" = "yes"; then
3199             PKG_PROG_PKG_CONFIG()
3200
3201             PKG_CHECK_MODULES(PANGOX, pangox,
3202                 [
3203                     CFLAGS="$PANGOX_CFLAGS $CFLAGS"
3204                     CXXFLAGS="$PANGOX_CFLAGS $CXXFLAGS"
3205                     GUI_TK_LIBRARY="$GUI_TK_LIBRARY $PANGOX_LIBS"
3206                 ],
3207                 [
3208                     AC_MSG_ERROR([pangox library not found, library cannot be compiled in Unicode mode])
3209                 ]
3210             )
3211             PKG_CHECK_MODULES(PANGOFT2, pangoft2,
3212                 [
3213                     CFLAGS="$PANGOFT2_CFLAGS $CFLAGS"
3214                     CXXFLAGS="$PANGOFT2_CFLAGS $CXXFLAGS"
3215                     GUI_TK_LIBRARY="$GUI_TK_LIBRARY $PANGOFT2_LIBS"
3216                 ],
3217                 [
3218                     AC_MSG_WARN([pangoft2 library not found, library will be compiled without printing support])
3219                     wxUSE_PRINTING_ARCHITECTURE="no"
3220                 ]
3221             )
3222             PKG_CHECK_MODULES(PANGOXFT, pangoxft,
3223                 [
3224                     AC_DEFINE(HAVE_PANGO_XFT)
3225                     CFLAGS="$PANGOXFT_CFLAGS $CFLAGS"
3226                     CXXFLAGS="$PANGOXFT_CFLAGS $CXXFLAGS"
3227                     GUI_TK_LIBRARY="$GUI_TK_LIBRARY $PANGOXFT_LIBS"
3228                 ],
3229                 [
3230                     AC_MSG_WARN([pangoxft library not found, library will be compiled without anti-aliasing support])
3231                 ]
3232             )
3233             save_LIBS="$LIBS"
3234             LIBS="$LIBS $PANGOX_LIBS"
3235             AC_CHECK_FUNCS([pango_font_family_is_monospace])
3236             LIBS="$save_LIBS"
3237         fi
3238
3239         wxUSE_UNIVERSAL="yes"
3240
3241         if test "$wxUSE_NANOX" = "yes"; then
3242             TOOLKIT_INCLUDE="-I\$(top_srcdir)/include/wx/x11/nanox -I\$(MICROWIN)/src/include $TOOLKIT_INCLUDE"
3243             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"
3244             GUI_TK_LIBRARY="$GUI_TK_LIBRARY \$(MICROWIN)/src/lib/libnano-X.a"
3245         else
3246             GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lX11"
3247         fi
3248
3249         TOOLKIT=X11
3250         GUIDIST=X11_DIST
3251     fi
3252
3253     if test "$wxUSE_MOTIF" = 1; then
3254         AC_MSG_CHECKING(for Motif/Lesstif headers)
3255         WX_PATH_FIND_INCLUDES($SEARCH_INCLUDE, Xm/Xm.h)
3256         if test "$ac_find_includes" != "" ; then
3257             AC_MSG_RESULT(found in $ac_find_includes)
3258             WX_INCLUDE_PATH_EXIST($ac_find_includes, $TOOLKIT_INCLUDE)
3259             TOOLKIT_INCLUDE="$TOOLKIT_INCLUDE$ac_path_to_include"
3260         else
3261             save_CFLAGS=$CFLAGS
3262             CFLAGS="$TOOLKIT_INCLUDE $CFLAGS"
3263
3264             AC_TRY_COMPILE(
3265                 [
3266                     #include <Xm/Xm.h>
3267                 ],
3268                 [
3269                     int version;
3270                     version = xmUseVersion;
3271                 ],
3272                 [
3273                     AC_MSG_RESULT(found in default search path)
3274                     COMPILED_X_PROGRAM=1
3275                 ],
3276                 [
3277                     AC_MSG_RESULT(no)
3278                     AC_MSG_ERROR(please set CPPFLAGS to contain the location of Xm/Xm.h)
3279                 ]
3280             )
3281
3282             CFLAGS=$save_CFLAGS
3283         fi
3284
3285
3286         AC_MSG_CHECKING(for Motif/Lesstif library)
3287         WX_PATH_FIND_LIBRARIES($SEARCH_LIB, Xm)
3288
3289         if test "x$ac_find_libraries" != "x" ; then
3290             AC_MSG_RESULT(found in $ac_find_libraries)
3291
3292             WX_LINK_PATH_EXIST($ac_find_libraries, $GUI_TK_LIBRARY)
3293             GUI_TK_LIBRARY="$GUI_TK_LIBRARY$ac_path_to_link"
3294         else
3295             dnl it might happen that we found headers in one of the standard
3296             dnl paths but the libs are elsewhere but still in default (linker)
3297             dnl path -- try to compile a test program to check for this
3298             save_CFLAGS=$CFLAGS
3299             CFLAGS="$TOOLKIT_INCLUDE $CFLAGS"
3300             save_LIBS="$LIBS"
3301             LIBS="$GUI_TK_LIBRARY -lXm -lXmu -lXext -lX11"
3302
3303             AC_TRY_LINK(
3304                 [
3305                     #include <Xm/Xm.h>
3306                 ],
3307                 [
3308                     int version;
3309                     version = xmUseVersion;
3310                 ],
3311                 [
3312                     AC_MSG_RESULT(found in default search path)
3313                     COMPILED_X_PROGRAM=1
3314                 ],
3315                 [
3316                     AC_MSG_RESULT(no)
3317                     AC_MSG_ERROR(please set LDFLAGS to contain the location of libXm)
3318                 ]
3319             )
3320
3321             CFLAGS=$save_CFLAGS
3322             LIBS="$save_LIBS"
3323         fi
3324
3325         AC_MSG_CHECKING([if we need -lXp and/or -lSM -lICE])
3326         libp_link=""
3327         libsm_ice_link=""
3328         libs_found=0
3329         for libp in "" " -lXp"; do
3330             if test "$libs_found" = "0"; then
3331                 for libsm_ice in "" " -lSM -lICE"; do
3332                     if test "$libs_found" = "0"; then
3333                         save_LIBS="$LIBS"
3334                         LIBS="$GUI_TK_LIBRARY -lXm ${libp} -lXmu -lXext -lXt${libsm_ice} -lX11"
3335                         save_CFLAGS=$CFLAGS
3336                         CFLAGS="$TOOLKIT_INCLUDE $CFLAGS"
3337
3338                         AC_TRY_LINK(
3339                             [
3340                                 #include <Xm/Xm.h>
3341                                 #include <Xm/List.h>
3342                             ],
3343                             [
3344                                 XmString string = NULL;
3345                                 Widget w = NULL;
3346                                 int position = 0;
3347                                 XmListAddItem(w, string, position);
3348                             ],
3349                             [
3350                                 libp_link="$libp"
3351                                 libsm_ice_link="$libsm_ice"
3352                                 AC_MSG_RESULT(
3353                                     [need${libp_link}${libsm_ice_link}])
3354                                 libs_found=1
3355                             ], []
3356                         )
3357
3358                         LIBS="$save_LIBS"
3359                         CFLAGS=$save_CFLAGS
3360                     fi
3361                 done
3362             fi
3363         done
3364
3365         if test "$libs_found" = "0"; then
3366             AC_MSG_RESULT([can't find the right libraries])
3367             AC_MSG_ERROR([can't link a simple motif program])
3368         fi
3369
3370         dnl this seems to be needed under IRIX and shouldn't do any harm
3371         dnl elsewhere
3372         AC_CHECK_LIB(Sgm, [SgCreateList], [libsgm_link=" -lSgm"])
3373
3374         save_CFLAGS=$CFLAGS
3375         CFLAGS="$TOOLKIT_INCLUDE $CFLAGS"
3376
3377         AC_CACHE_CHECK([for Motif 2],
3378             wx_cv_lib_motif2,
3379             AC_TRY_COMPILE([
3380                             #include <Xm/Xm.h>
3381                            ],
3382                            [
3383                             #if XmVersion < 2000
3384                             Not Motif 2
3385                             #endif
3386                            ],
3387                            wx_cv_lib_motif2="yes",
3388                            wx_cv_lib_motif2="no"))
3389         if test "$wx_cv_lib_motif2" = "yes"; then
3390             AC_DEFINE(__WXMOTIF20__,1)
3391         else
3392             AC_DEFINE(__WXMOTIF20__,0)
3393         fi
3394
3395         AC_CACHE_CHECK([whether Motif is Lesstif],
3396             wx_cv_lib_lesstif,
3397             AC_TRY_COMPILE([
3398                             #include <Xm/Xm.h>
3399                            ],
3400                            [
3401                             #if !defined(LesstifVersion) || LesstifVersion <= 0
3402                             Not Lesstif
3403                             #endif
3404                            ],
3405                            wx_cv_lib_lesstif="yes",
3406                            wx_cv_lib_lesstif="no")
3407         )
3408         if test "$wx_cv_lib_lesstif" = "yes"; then
3409             AC_DEFINE(__WXLESSTIF__,1)
3410         else
3411             AC_DEFINE(__WXLESSTIF__,0)
3412         fi
3413
3414         CFLAGS=$save_CFLAGS
3415
3416         GUI_TK_LIBRARY="$GUI_TK_LIBRARY${libsgm_link} -lXm${libp_link} -lXmu -lXext -lXt${libsm_ice_link} -lX11"
3417         TOOLKIT=MOTIF
3418         GUIDIST=MOTIF_DIST
3419     fi
3420
3421     dnl more tests common to X11 and Motif:
3422     if test "$wxUSE_X11" = 1 -o "$wxUSE_MOTIF" = 1; then
3423         dnl test for external libxpm if we're configured to use it
3424         if test "$wxUSE_LIBXPM" = "sys"; then
3425             AC_MSG_CHECKING(for Xpm library)
3426             WX_PATH_FIND_LIBRARIES($SEARCH_LIB,Xpm)
3427             if test "$ac_find_libraries" != "" ; then
3428                 WX_LINK_PATH_EXIST($ac_find_libraries,$GUI_TK_LIBRARY)
3429                 GUI_TK_LIBRARY="$GUI_TK_LIBRARY$ac_path_to_link"
3430                 AC_MSG_RESULT(found in $ac_find_libraries)
3431
3432                 AC_CACHE_CHECK([for X11/xpm.h],
3433                     wx_cv_x11_xpm_h,
3434                     [
3435                         save_CFLAGS=$CFLAGS
3436                         CFLAGS="$TOOLKIT_INCLUDE $CFLAGS"
3437
3438                         AC_TRY_COMPILE(
3439                             [
3440                                 #include <X11/xpm.h>
3441                             ],
3442                             [
3443                                 int version;
3444                                 version = XpmLibraryVersion();
3445                             ],
3446                             wx_cv_x11_xpm_h=yes,
3447                             wx_cv_x11_xpm_h=no
3448                         )
3449
3450                         CFLAGS=$save_CFLAGS
3451                     ]
3452                 )
3453
3454                 if test $wx_cv_x11_xpm_h = "yes"; then
3455                     GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lXpm"
3456                     AC_DEFINE(wxHAVE_LIB_XPM)
3457                 else
3458                     AC_MSG_WARN([built-in less efficient XPM decoder will be used])
3459                 fi
3460             fi
3461
3462         fi
3463
3464         dnl XShapeQueryExtension checks: first the library, then prototype
3465         AC_CHECK_LIB([Xext], [XShapeQueryExtension],
3466                      [
3467                       GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lXext"
3468                       wxHAVE_XEXT_LIB=1
3469                      ],
3470                      [], [$GUI_TK_LIBRARY -lX11])
3471
3472         if test "$wxHAVE_XEXT_LIB" = 1; then
3473             save_CFLAGS="$CFLAGS"
3474             CFLAGS="$TOOLKIT_INCLUDE $CFLAGS"
3475
3476             AC_MSG_CHECKING([for X11/extensions/shape.h])
3477             AC_TRY_COMPILE([
3478                             #include <X11/Xlib.h>
3479                             #include <X11/extensions/shape.h>
3480                            ],
3481                            [
3482                             int dummy1, dummy2;
3483                             XShapeQueryExtension((Display*)NULL,
3484                                                  (int*)NULL, (int*)NULL);
3485                            ],
3486                            [
3487                             AC_DEFINE(HAVE_XSHAPE)
3488                             AC_MSG_RESULT([found])
3489                            ],
3490                            [
3491                             AC_MSG_RESULT([not found])
3492                            ])
3493             CFLAGS="$save_CFLAGS"
3494
3495         fi
3496     fi
3497
3498     if test "$wxUSE_MAC" = 1; then
3499         AC_MSG_CHECKING([for compiler syntax to enable Pascal strings])
3500         if test "$GCC" = yes; then
3501             AC_MSG_RESULT([gcc])
3502             CPPFLAGS_PASCAL="-fpascal-strings"
3503         elif test "`echo $CXX | sed -e 's@.*/@@'`" = "xlC"; then
3504             AC_MSG_RESULT([xlc])
3505             CPPFLAGS_PASCAL="-qmacpstr"
3506         else
3507             AC_MSG_RESULT([none])
3508         fi
3509
3510         if test "x$wxUSE_UNIX" = "xyes"; then
3511             CPPFLAGS="$CPPFLAGS_PASCAL -I\${top_srcdir}/src/mac/carbon/morefilex -I/Developer/Headers/FlatCarbon $CPPFLAGS"
3512         else
3513             dnl platform.h needs TARGET_CARBON before setup.h
3514             CPPFLAGS="$CPPFLAGS_PASCAL -I\${top_srcdir}/src/mac/carbon/morefilex -DTARGET_CARBON $CPPFLAGS"
3515         fi
3516
3517         TOOLKIT=MAC
3518         dnl we can't call this MAC_DIST or autoconf thinks its a macro
3519         GUIDIST=MACX_DIST
3520         dnl wxMac version of wxBase and wxCocoa or wxBase-only built on Darwin
3521         dnl are different, so they need different names:
3522         WXBASEPORT="_carbon"
3523     fi
3524
3525     if test "$wxUSE_COCOA" = 1; then
3526         TOOLKIT=COCOA
3527         GUIDIST=COCOA_DIST
3528     fi
3529
3530     if test "$wxUSE_PM" = 1; then
3531         TOOLKIT=PM
3532         GUIDIST=PM_DIST
3533         AC_CACHE_CHECK([for type SPBCDATA],
3534             wx_cv_spbcdata,
3535             [
3536                 AC_TRY_COMPILE(
3537                     [
3538                         #define INCL_PM
3539                         #include <os2.h>
3540                     ],
3541                     [
3542                         SPBCDATA test;
3543                     ],
3544                     wx_cv_spbcdata=yes,
3545                     wx_cv_spbcdata=no
3546                 )
3547             ]
3548         )
3549
3550         if test $wx_cv_spbcdata = "yes"; then
3551             AC_DEFINE(HAVE_SPBCDATA)
3552         fi
3553     fi
3554
3555     dnl the name of the directory where the files for this toolkit live
3556     if test "$TOOLKIT" = "PM" ; then
3557         TOOLKIT_DIR="os2"
3558     else
3559         TOOLKIT_DIR=`echo ${TOOLKIT} | tr "[[A-Z]]" "[[a-z]]"`
3560     fi
3561
3562     if test "$wxUSE_UNIVERSAL" = "yes"; then
3563         TOOLCHAIN_DEFS="${TOOLCHAIN_DEFS} -D__WXUNIVERSAL__"
3564         WIDGET_SET=univ
3565     fi
3566
3567     dnl distribute samples/demos/utils with GUI versions
3568     GUIDIST="${GUIDIST} SAMPLES_DIST DEMOS_DIST UTILS_DIST MISC_DIST"
3569     DISTDIR="wx\$(TOOLKIT)"
3570 else
3571     USE_GUI=0
3572
3573     dnl this doesn't quite work right for wxBase, but the places
3574     dnl where it is wrong aren't fatal (yet) though.
3575     TOOLKIT_DIR="base"
3576
3577     dnl the sources, their dependenices and the headers
3578     if test "$USE_WIN32" = 1 ; then
3579         dnl yes, the toolkit for wxBase on win32 is actually MSW
3580         dnl wxBase on unix does not need a 'TOOLKIT' defined.
3581         TOOLKIT="MSW"
3582     fi
3583
3584     dnl distribute only wxBase sources/headers
3585     GUIDIST="BASE_DIST"
3586     DISTDIR="wxBase"
3587 fi
3588
3589
3590 dnl ---------------------------------------------------------------------------
3591 dnl UTF-8 support
3592 dnl ---------------------------------------------------------------------------
3593
3594 dnl If UTF-8 support wasn't explicitly enabled or disabled, enable it only
3595 dnl for ports where it makes sense by default (GTK+, DirectFB):
3596 if test "$wxUSE_UNICODE" = "yes" -a "$wxUSE_UNICODE_UTF8" = "auto" ; then
3597     if test "$TOOLKIT" = "DFB" ; then
3598         wxUSE_UNICODE_UTF8=yes
3599     elif test "$TOOLKIT" = "GTK" -a "$WXGTK20" = "1" ; then
3600         wxUSE_UNICODE_UTF8=yes
3601     elif test "$USE_OS2" = "1" ; then
3602         dnl wide char support is quite incomplete in libc;
3603         dnl UTF-8 might actually work when evaluating/setting
3604         dnl code pages correctly, even for ports other than GTK20.
3605         wxUSE_UNICODE_UTF8=yes
3606     else
3607         wxUSE_UNICODE_UTF8=no
3608     fi
3609 fi
3610
3611 dnl ---------------------------------------------------------------------------
3612 dnl Optional libraries included when system library is not used
3613 dnl ---------------------------------------------------------------------------
3614
3615 dnl do this after test for X11 above so that we have a chance of finding Xlib.h
3616 if test "$wxUSE_GUI" = "yes"; then
3617     if test "$wxUSE_UNIX" = "yes" -a "$wxUSE_PM" != 1; then
3618         dnl defines HAVE_X11_XKBLIB_H
3619         AC_CHECK_HEADERS([X11/Xlib.h],,, [ ])
3620         AC_CHECK_HEADERS([X11/XKBlib.h],,,
3621                          [
3622                           #if HAVE_X11_XLIB_H
3623                             #include <X11/Xlib.h>
3624                           #endif
3625                          ])
3626     fi
3627 fi
3628
3629
3630 dnl ----------------------------------------------------------------
3631 dnl iODBC support
3632 dnl ----------------------------------------------------------------
3633
3634 IODBC_C_SRC=""
3635
3636
3637 dnl ODBC is handled separately for MSW
3638 if test "$TOOLKIT" != "MSW" ; then
3639
3640     if test "$wxUSE_ODBC" = "sys" -o "$wxUSE_ODBC" = "yes" ; then
3641         dnl This is not ideal we really ough to use the unixodbc-config
3642         dnl  or iodbc-config if they exist.
3643
3644         AC_CHECK_HEADER([sql.h], [found_sql_h=1],, [ ])
3645         if test "x$found_sql_h" = "x1" ; then
3646             AC_CHECK_LIB(iodbc, SQLAllocEnv, ODBC_LINK=" -liodbc",
3647             [
3648                 AC_CHECK_LIB(unixodbc, SQLAllocEnv, ODBC_LINK=" -lunixodbc",
3649                 [
3650                     AC_CHECK_LIB(odbc, SQLAllocEnv, ODBC_LINK=" -lodbc")
3651                 ])
3652             ])
3653         fi
3654         if test "x$ODBC_LINK" = "x" ; then
3655             if test "$wxUSE_ODBC" = "sys" ; then
3656                 AC_MSG_ERROR([system ODBC library not found! Use --with-odbc=builtin to use built-in version])
3657             else
3658                 AC_MSG_WARN([system ODBC library not found, will use built-in instead])
3659                 wxUSE_ODBC=builtin
3660             fi
3661         else
3662             dnl we are using the system library
3663             wxUSE_ODBC=sys
3664         fi
3665     fi
3666
3667     if test "$wxUSE_ODBC" = "builtin" ; then
3668         AC_DEFINE(wxUSE_BUILTIN_IODBC)
3669     fi
3670 fi
3671
3672 if test "$wxUSE_ODBC" != "no" ; then
3673     AC_DEFINE(wxUSE_ODBC)
3674     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS db"
3675
3676     dnl is this still necessary?
3677     WXCONFIG_CPPFLAGS="$WXCONFIG_CPPFLAGS -D_IODBC_"
3678 fi
3679
3680 dnl ---------------------------------------------------------------------------
3681 dnl wxDisplay Sanity checks
3682 dnl ---------------------------------------------------------------------------
3683
3684 if test "$wxUSE_DISPLAY" = "yes"; then
3685 dnl ---------------------------------------------------------------------------
3686 dnl Xinerama (for unix ) - Brian Victor
3687 dnl ---------------------------------------------------------------------------
3688     if test "$wxUSE_UNIX" = "yes" -a "$wxUSE_MAC" != 1 -a "$wxUSE_COCOA" != 1; then
3689         AC_MSG_CHECKING([for Xinerama])
3690         WX_PATH_FIND_LIBRARIES([$SEARCH_LIB],Xinerama)
3691         if test "$ac_find_libraries" != "" ; then
3692             WX_LINK_PATH_EXIST([$ac_find_libraries],[$LDFLAGS])
3693             if test "$ac_path_to_link" != " -L/usr/lib" ; then
3694                 LDFLAGS="$LDFLAGS $ac_path_to_link"
3695             fi
3696             GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lXinerama"
3697             AC_MSG_RESULT([yes])
3698
3699             AC_MSG_CHECKING([for Xxf86vm extension])
3700             WX_PATH_FIND_LIBRARIES([$SEARCH_LIB],Xxf86vm)
3701             if test "$ac_find_libraries" != "" ; then
3702                 AC_MSG_RESULT([yes])
3703                 AC_CHECK_HEADERS([X11/extensions/xf86vmode.h],
3704                                  [
3705                                   GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lXxf86vm"
3706                                  ],
3707                                  [],
3708                                  [
3709                                       #if HAVE_X11_XLIB_H
3710                                         #include <X11/Xlib.h>
3711                                       #endif
3712                                  ])
3713             else
3714                 AC_MSG_RESULT([no])
3715             fi
3716
3717         else
3718             AC_MSG_RESULT([no])
3719             AC_MSG_WARN([Xinerama not found; disabling wxDisplay])
3720             wxUSE_DISPLAY="no"
3721         fi
3722     elif test "$wxUSE_MSW" = 1; then
3723 dnl ---------------------------------------------------------------------------
3724 dnl DirectDraw for MSW - optionally used by WxDisplay.
3725 dnl ---------------------------------------------------------------------------
3726         AC_CHECK_HEADER([ddraw.h], [], [], [#include <windows.h>])
3727     fi
3728 fi
3729
3730 dnl ---------------------------------------------------------------------------
3731 dnl X11 session management
3732 dnl ---------------------------------------------------------------------------
3733 if test "$wxUSE_DETECT_SM" = "yes"; then
3734     if test "$wxUSE_UNIX" = "yes" -a "$wxUSE_MAC" != 1 -a "$wxUSE_COCOA" != 1; then
3735         AC_MSG_CHECKING([for -lSM - X11 session management])
3736         WX_PATH_FIND_LIBRARIES([$SEARCH_LIB],SM)
3737         if test "$ac_find_libraries" != "" ; then
3738             WX_LINK_PATH_EXIST([$ac_find_libraries],[$LDFLAGS])
3739             if test "$ac_path_to_link" != " -L/usr/lib" ; then
3740                 LDFLAGS="$LDFLAGS $ac_path_to_link"
3741             fi
3742             GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lSM"
3743             AC_MSG_RESULT([yes])
3744         else
3745             AC_MSG_RESULT([no])
3746             AC_MSG_WARN([libSM not found; disabling session management detection])
3747             wxUSE_DETECT_SM="no"
3748         fi
3749     else
3750         wxUSE_DETECT_SM="no"
3751     fi
3752 fi
3753
3754
3755 dnl ---------------------------------------------------------------------------
3756 dnl OpenGL libraries
3757 dnl ---------------------------------------------------------------------------
3758
3759 USE_OPENGL=0
3760 if test "$wxUSE_OPENGL" = "yes"; then
3761     if test "$wxUSE_MGL" = 1 -o "$wxUSE_DFB" = "1"; then
3762         AC_MSG_WARN([wxGLCanvas not implemented for this port, library will be compiled without it.])
3763         wxUSE_OPENGL="no"
3764     elif test "$wxUSE_MAC" = 1 -o "$wxUSE_COCOA" = "1"; then
3765         OPENGL_LIBS="-framework OpenGL -framework AGL"
3766     elif test "$wxUSE_MSW" = 1; then
3767         OPENGL_LIBS="-lopengl32 -lglu32"
3768     else
3769         dnl adjust CPPFLAGS to include GL/gl.h location if necessary
3770         dnl (/opt/graphics/OpenGL is for HP-UX systems, bug 925307)
3771         AC_MSG_CHECKING([for OpenGL headers])
3772         WX_PATH_FIND_INCLUDES([$SEARCH_INCLUDE /opt/graphics/OpenGL/include], GL/gl.h)
3773         if test "$ac_find_includes" != "" ; then
3774             AC_MSG_RESULT(found in $ac_find_includes)
3775             WX_INCLUDE_PATH_EXIST($ac_find_includes, $CPPFLAGS)
3776             CPPFLAGS="$ac_path_to_include $CPPFLAGS"
3777         else
3778             AC_MSG_RESULT([not found])
3779         fi
3780
3781         AC_CHECK_HEADER(GL/gl.h, [
3782             AC_CHECK_HEADER(GL/glu.h, [
3783                 found_gl=0
3784
3785                 AC_MSG_CHECKING([for -lGL])
3786                 WX_PATH_FIND_LIBRARIES([$SEARCH_LIB /opt/graphics/OpenGL/lib],GL)
3787                 if test "$ac_find_libraries" != "" ; then
3788                     AC_MSG_RESULT([found in $ac_find_libraries])
3789
3790                     WX_LINK_PATH_EXIST([$ac_find_libraries],[$LDFLAGS])
3791                     if test "$ac_path_to_link" != " -L/usr/lib" ; then
3792                         LDFLAGS_GL="$ac_path_to_link"
3793                     fi
3794
3795                     dnl don't suppose that libGL and libGLU are always in the
3796                     dnl same directory -- this is not true for some common
3797                     dnl distributions
3798                     AC_MSG_CHECKING([for -lGLU])
3799                     WX_PATH_FIND_LIBRARIES([$SEARCH_LIB],GLU)
3800                     if test "$ac_find_libraries" != "" ; then
3801                         WX_LINK_PATH_EXIST([$ac_find_libraries],[$LDFLAGS])
3802                         if test "$ac_path_to_link" != " -L/usr/lib" -a \
3803                                     "$ac_path_to_link" != "$LDFLAGS_GL"; then
3804                             LDFLAGS_GL="$LDFLAGS_GL$ac_path_to_link"
3805                         fi
3806
3807                         found_gl=1
3808                         OPENGL_LIBS="-lGL -lGLU"
3809                         AC_MSG_RESULT([yes])
3810                     else
3811                         AC_MSG_RESULT([no])
3812                     fi
3813                 else
3814                     AC_MSG_RESULT([no])
3815                 fi
3816
3817                 if test "$found_gl" != 1; then
3818                     AC_MSG_CHECKING([for -lMesaGL])
3819                     WX_PATH_FIND_LIBRARIES([$SEARCH_LIB],MesaGL)
3820                     if test "$ac_find_libraries" != "" ; then
3821                         WX_LINK_PATH_EXIST([$ac_find_libraries],[$LDFLAGS])
3822                         LDFLAGS_GL="$LDFLAGS$ac_path_to_link"
3823                         OPENGL_LIBS="-lMesaGL -lMesaGLU"
3824                         AC_MSG_RESULT([yes])
3825                     else
3826                         AC_MSG_RESULT([no])
3827                     fi
3828                 fi
3829             ],, [ ])
3830         ],
3831         [],
3832         [ ])
3833
3834         if test "x$OPENGL_LIBS" = "x"; then
3835             dnl it should be an error and not a warning because OpenGL is not on
3836             dnl by default and so if it had been explicitly requested, we
3837             dnl shouldn't just fall back to compiling the library without it
3838             AC_MSG_ERROR(OpenGL libraries not available)
3839         fi
3840     fi
3841
3842     if test "$wxUSE_OPENGL" = "yes"; then
3843         USE_OPENGL=1
3844         AC_DEFINE(wxUSE_OPENGL)
3845         AC_DEFINE(wxUSE_GLCANVAS)
3846         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS opengl opengl/cube opengl/penguin opengl/isosurf"
3847     fi
3848 fi
3849
3850
3851 dnl the symbol which allows conditional compilation for the given toolkit
3852 if test -n "$TOOLKIT" ; then
3853     TOOLCHAIN_DEFS="${TOOLCHAIN_DEFS} -D__WX${TOOLKIT}__"
3854 fi
3855
3856
3857 dnl --- the marker for quick search, leave it here: SHARED_LIB_SETUP ---
3858
3859 if test "$wxUSE_SHARED" = "yes"; then
3860     case "${host}" in
3861       *-pc-msdosdjgpp )
3862         dnl only static for now
3863         wxUSE_SHARED=no
3864         AC_MSG_WARN([Host system doesn't support shared libraries, disabling])
3865       ;;
3866     esac
3867 fi
3868
3869 if test "$wxUSE_SHARED" = "yes"; then
3870
3871     dnl use versioned symbols if available on the platform
3872     WX_VERSIONED_SYMBOLS([\$(wx_top_builddir)/version-script])
3873
3874     dnl test for GCC's visibility support (sets CFLAGS_VISIBILITY, which is
3875     dnl assigned to CFLAGS and CXXFLAGS below)
3876     if test "$wxUSE_VISIBILITY" != "no"; then
3877         WX_VISIBILITY
3878     fi
3879
3880     dnl test for Sun CC which can be used under both Solaris and Linux
3881     if test "x$SUNCXX" = xyes; then
3882         SAMPLES_RPATH_FLAG="-R\$(wx_top_builddir)/lib"
3883         WXCONFIG_RPATH="-R\$libdir"
3884     else
3885     case "${host}" in
3886       *-*-linux* | *-*-gnu* )
3887         SAMPLES_RPATH_FLAG="-Wl,-rpath,\$(wx_top_builddir)/lib"
3888         WXCONFIG_RPATH="-Wl,-rpath,\$libdir"
3889         ;;
3890
3891       *-*-solaris2* )
3892         dnl here we know that Sun CC is not used as we tested for it above,
3893         dnl hence we must be using gcc
3894
3895         dnl newer versions of gcc need -isystem to compile X headers on
3896         dnl Solaris (which use old style C syntax)
3897         CPPFLAGS="-isystem /usr/openwin/include $CPPFLAGS"
3898
3899         dnl gcc may use Sun's ld, in which case -rpath gives a confusing
3900         dnl error message. We have to try both -Wl,-rpath and -Wl,-R:
3901         saveLdflags="$LDFLAGS"
3902         LDFLAGS="$saveLdflags -Wl,-rpath,/"
3903         AC_MSG_CHECKING([if the linker accepts -rpath])
3904         AC_TRY_LINK(
3905             [],[],
3906             [
3907                 AC_MSG_RESULT([yes])
3908                 SAMPLES_RPATH_FLAG="-Wl,-rpath,\$(wx_top_builddir)/lib"
3909                 WXCONFIG_RPATH="-Wl,-rpath,\$libdir"
3910             ],[
3911                 AC_MSG_RESULT([no])
3912                 AC_MSG_CHECKING([if the linker accepts -R])
3913                 LDFLAGS="$saveLdflags -Wl,-R,/"
3914                 AC_TRY_LINK(
3915                     [],[],
3916                     [
3917                         AC_MSG_RESULT([yes])
3918                         SAMPLES_RPATH_FLAG="-Wl,-R,\$(wx_top_builddir)/lib"
3919                         WXCONFIG_RPATH="-Wl,-R,\$libdir"
3920                     ],[
3921                         AC_MSG_RESULT([no])
3922                     ])
3923             ])
3924         LDFLAGS="$saveLdflags"
3925       ;;
3926
3927       *-*-darwin* )
3928         install_name_tool=`which install_name_tool`
3929         if test "$install_name_tool" -a -x "$install_name_tool"; then
3930             SAMPLES_RPATH_POSTLINK="\$(wx_top_builddir)/change-install-names \$(LIBDIRNAME) \$(prefix) \$@"
3931             cat <<EOF >change-install-names
3932 #!/bin/sh
3933 libnames=\`cd \${1} ; ls -1 | grep '\.[[0-9]][[0-9]]*\.dylib\$'\`
3934 inst_cmd="install_name_tool "
3935 for i in \${libnames} ; do
3936     inst_cmd="\${inst_cmd} -change \${2}/lib/\${i} \${1}/\${i}"
3937 done
3938 \${inst_cmd} \${3}
3939 EOF
3940             chmod +x change-install-names
3941         fi
3942       ;;
3943
3944       *-*-cygwin* | *-*-mingw32* )
3945         dnl this one shouldn't be used for the library build so put it in a
3946         dnl separate variable from WXCONFIG_CPPFLAGS
3947         WXCONFIG_ONLY_CPPFLAGS="$WXCONFIG_ONLY_CPPFLAGS -DWXUSINGDLL"
3948         ;;
3949
3950       *-*-hpux* )
3951         SAMPLES_RPATH_FLAG="-Wl,+b,\$(wx_top_builddir)/lib"
3952         WXCONFIG_RPATH="-Wl,+b,\$libdir"
3953         ;;
3954
3955     esac
3956     fi
3957
3958     if test $wxUSE_RPATH = "no"; then
3959         SAMPLES_RPATH_FLAG=''
3960         SAMPLES_RPATH_POSTLINK=''
3961         WXCONFIG_RPATH=''
3962     fi
3963
3964     SHARED=1
3965
3966 else
3967
3968     config_linkage_component="-static"
3969     SHARED=0
3970
3971 fi
3972
3973
3974 UNICODE=0
3975 lib_unicode_suffix=
3976 WX_CHARTYPE="ansi"
3977 if test "$wxUSE_UNICODE" = "yes"; then
3978     lib_unicode_suffix=u
3979     WX_CHARTYPE="unicode"
3980     UNICODE=1
3981 fi
3982
3983 lib_debug_suffix=
3984 WX_DEBUGTYPE="release"
3985 DEBUG_FLAG=0
3986 if test "$wxUSE_DEBUG_FLAG" = "yes"; then
3987     lib_debug_suffix=d
3988     WX_DEBUGTYPE="debug"
3989     DEBUG_FLAG=1
3990 fi
3991
3992 WX_FLAVOUR=${WX_FLAVOUR:+-$WX_FLAVOUR}
3993 WX_LIB_FLAVOUR=`echo $WX_FLAVOUR | tr '-' '_'`
3994
3995 DEBUG_INFO=0
3996 if test "$wxUSE_DEBUG_INFO" = "yes"; then
3997     DEBUG_INFO=1
3998 fi
3999
4000 WX_VERSION_TAG=`echo WX${lib_unicode_suffix}${lib_debug_suffix}${WX_LIB_FLAVOUR}_${WX_RELEASE} | tr "[[a-z]]" "[[A-Z]]"`
4001
4002 TOOLCHAIN_NAME="${TOOLKIT_DIR}${TOOLKIT_VERSION}${WIDGET_SET}${lib_unicode_suffix}${lib_debug_suffix}${WX_LIB_FLAVOUR}-${WX_RELEASE}"
4003
4004 TOOLCHAIN_FULLNAME="${TOOLKIT_DIR}${TOOLKIT_VERSION}${WIDGET_SET}-${WX_CHARTYPE}-${WX_DEBUGTYPE}${config_linkage_component}-${WX_RELEASE}${WX_FLAVOUR}"
4005
4006 if test "$cross_compiling" = "yes"; then
4007     HOST_SUFFIX="-$host_alias"
4008     TOOLCHAIN_NAME="$TOOLCHAIN_NAME$HOST_SUFFIX"
4009     TOOLCHAIN_FULLNAME="${host_alias}-$TOOLCHAIN_FULLNAME"
4010 fi
4011
4012 dnl library link name
4013 dnl These just save us from exporting lib_{unicode,debug,flavour}_suffix.
4014 dnl If we ever need to do that, we won't need to keep these.
4015 WX_LIBRARY_BASENAME_NOGUI="wx_base${WXBASEPORT}${lib_unicode_suffix}${lib_debug_suffix}${WX_LIB_FLAVOUR}"
4016 if test "${TOOLKIT_DIR}" = "os2"; then
4017     WX_LIBRARY_BASENAME_GUI="wx_pm${WIDGET_SET}${lib_unicode_suffix}${lib_debug_suffix}${WX_LIB_FLAVOUR}"
4018 else
4019     WX_LIBRARY_BASENAME_GUI="wx_${TOOLKIT_DIR}${TOOLKIT_VERSION}${WIDGET_SET}${lib_unicode_suffix}${lib_debug_suffix}${WX_LIB_FLAVOUR}"
4020 fi
4021
4022
4023
4024 if test "$wxUSE_COCOA" = 1; then
4025     AC_LANG_SAVE
4026     AC_WX_LANG_OBJECTIVEC
4027 dnl Recent AppKit/NSEvent.h include parts of IOKit which eventually
4028 dnl gets IOKit/graphics/IOGraphicsTypes.h included which typedefs
4029 dnl Point but only if MacTypes.h was not included first.  Of course,
4030 dnl if MacTypes.h is included later then you're screwed when it
4031 dnl tries to typedef Point.  Defining __Point__ will cause IOGraphicsTypes.h
4032 dnl to not typedef Point and thus fix the problem.
4033     AC_MSG_CHECKING([if AppKit/NSEvent.h conflicts with CoreFoundation])
4034     AC_TRY_COMPILE([#include <AppKit/NSEvent.h>
4035 #include <CoreFoundation/CoreFoundation.h>
4036         ],[],
4037         [AC_MSG_RESULT([no])],
4038         [AC_MSG_RESULT([yes])
4039         AC_MSG_CHECKING([if defining __Point__ will fix it])
4040         AC_TRY_COMPILE([#define __Point__ 1
4041 #include <AppKit/NSEvent.h>
4042 #include <CoreFoundation/CoreFoundation.h>
4043             ],[],
4044             [AC_MSG_RESULT([yes])
4045             AC_DEFINE(__Point__)
4046             ],
4047             [AC_MSG_FAILURE([no])]
4048         )]
4049     )
4050     AC_LANG_RESTORE
4051 fi
4052
4053 if test "$wxUSE_MAC" = 1 -o "$wxUSE_COCOA" = 1; then
4054     dnl base name of the resource file for wxMac must be the same
4055     dnl as library installation base name (-install_name)
4056     WX_RESOURCES_MACOSX_ASCII="libwx_${TOOLCHAIN_NAME}.${wx_release_number}.r"
4057     WX_RESOURCES_MACOSX_DATA="libwx_${TOOLCHAIN_NAME}.${wx_release_number}.rsrc"
4058
4059     dnl add the resources target for wxMac
4060     LIBWXMACRES="\$(wx_top_builddir)/lib/${WX_RESOURCES_MACOSX_ASCII}"
4061
4062     AC_CHECK_PROG(REZ, Rez, Rez, /Developer/Tools/Rez)
4063     AC_CHECK_PROG(DEREZ, DeRez, DeRez, /Developer/Tools/DeRez)
4064     AC_CHECK_PROG(SETFILE, SetFile, SetFile, /Developer/Tools/SetFile)
4065
4066     MACSETFILE="\$(SETFILE)"
4067
4068     dnl resources are bundled both with shared library and applications
4069     dnl since the carb resource *must* be included in the application
4070     if test "$wxUSE_MAC" = 1; then
4071         POSTLINK_COMMAND="\$(REZ) -d __DARWIN__ -t APPL Carbon.r -o"
4072         RESCOMP="$REZ"
4073         WXCONFIG_RESFLAGS="-d __DARWIN__ -t APPL Carbon.r -o"
4074     else
4075         POSTLINK_COMMAND="cat /dev/null | \$(REZ) -d __DARWIN__ -t APPL ${LIBWXMACRES}"
4076         RESCOMP="cat /dev/null \| $REZ"
4077         WXCONFIG_RESFLAGS="-d __DARWIN__ -t APPL \$libdir/$WX_RESOURCES_MACOSX_ASCII"
4078     fi
4079
4080 else
4081     dnl default value is to (silently) do nothing in the makefile
4082     MACSETFILE="@true"
4083
4084     if test "$wxUSE_PM" = 1; then
4085         RESCOMP="emxbind"
4086         WXCONFIG_RESFLAGS="-ep"
4087
4088         dnl Is this one really used anywhere for pm?
4089         POSTLINK_COMMAND="$RESCOMP $WXCONFIG_RESFLAGS"
4090     else
4091         POSTLINK_COMMAND="@true"
4092     fi
4093
4094 fi
4095
4096
4097 dnl ---------------------------------------------------------------------------
4098 dnl Checks for typedefs
4099 dnl ---------------------------------------------------------------------------
4100
4101 dnl   defines mode_t if not already defined
4102 AC_TYPE_MODE_T
4103 dnl   defines off_t if not already defined
4104 AC_TYPE_OFF_T
4105 dnl   defines pid_t if not already defined
4106 AC_TYPE_PID_T
4107 dnl   defines size_t if not already defined
4108 AC_TYPE_SIZE_T
4109 dnl   defines uid_t and gid_t if not already defined
4110 AC_TYPE_UID_T
4111
4112 dnl sets HAVE_SSIZE_T if ssize_t is defined
4113 AC_CHECK_TYPES(ssize_t)
4114
4115 dnl check what exactly size_t is on this machine - this is necessary to avoid
4116 dnl ambiguous overloads in several places, notably wx/string.h and wx/array.h
4117 AC_LANG_PUSH(C++) dnl tests below use overloaded functions and so need C++
4118 AC_CACHE_CHECK([if size_t is unsigned int],
4119     wx_cv_size_t_is_uint,
4120     [
4121     dnl an obvious check like AC_TRY_COMPILE[struct Foo { ... };] doesn't work
4122     dnl with egcs (at least) up to 1.1.1 as it allows you to compile duplicate
4123     dnl methods in a local class (i.e. class inside a function) declaration
4124     dnl without any objections!!
4125     dnl
4126     dnl hence the hack below: we must have Foo at global scope!
4127     AC_TRY_COMPILE([#include <stddef.h>],
4128         [
4129             return 0; }
4130
4131             struct Foo { void foo(size_t); void foo(unsigned int); };
4132
4133             int bar() {
4134         ],
4135         wx_cv_size_t_is_uint=no,
4136         wx_cv_size_t_is_uint=yes
4137     )
4138     ]
4139 )
4140
4141 if test "$wx_cv_size_t_is_uint" = "yes"; then
4142     AC_DEFINE(wxSIZE_T_IS_UINT)
4143 else
4144     AC_CACHE_CHECK([if size_t is unsigned long],
4145         wx_cv_size_t_is_ulong,
4146         AC_TRY_COMPILE([#include <stddef.h>],
4147             [
4148                 return 0; }
4149
4150                 struct Foo { void foo(size_t); void foo(unsigned long); };
4151
4152                 int bar() {
4153             ],
4154             wx_cv_size_t_is_ulong=no,
4155             wx_cv_size_t_is_ulong=yes
4156         )
4157     )
4158
4159     if test "$wx_cv_size_t_is_ulong" = "yes"; then
4160         AC_DEFINE(wxSIZE_T_IS_ULONG)
4161     fi
4162 fi
4163
4164 AC_CACHE_CHECK([if wchar_t is separate type],
4165     wx_cv_wchar_t_is_separate_type,
4166     AC_TRY_COMPILE([#include <wchar.h>],
4167         [
4168             return 0; }
4169
4170             struct Foo { void foo(wchar_t);
4171                          void foo(unsigned short);
4172                          void foo(unsigned int);
4173                          void foo(unsigned long); };
4174
4175             int bar() {
4176         ],
4177         wx_cv_wchar_t_is_separate_type=yes,
4178         wx_cv_wchar_t_is_separate_type=no
4179     )
4180 )
4181
4182 if test "$wx_cv_wchar_t_is_separate_type" = "yes"; then
4183     AC_DEFINE(wxWCHAR_T_IS_REAL_TYPE, 1)
4184 else
4185     AC_DEFINE(wxWCHAR_T_IS_REAL_TYPE, 0)
4186 fi
4187
4188 AC_LANG_POP() dnl C++
4189
4190 dnl ---------------------------------------------------------------------------
4191 dnl Checks for structures
4192 dnl ---------------------------------------------------------------------------
4193
4194 dnl does passwd struct has the pw_gecos field?
4195 AC_CACHE_CHECK([for pw_gecos in struct passwd], wx_cv_struct_pw_gecos,
4196     [
4197         AC_TRY_COMPILE([#include <pwd.h>],
4198              [
4199                 char *p;
4200                 struct passwd *pw;
4201                 p = pw->pw_gecos;
4202              ],
4203              [
4204                 wx_cv_struct_pw_gecos=yes
4205              ],
4206              [
4207                 wx_cv_struct_pw_gecos=no
4208              ]
4209         )
4210     ]
4211 )
4212
4213 if test "$wx_cv_struct_pw_gecos" = "yes"; then
4214     AC_DEFINE(HAVE_PW_GECOS)
4215 fi
4216
4217 dnl ---------------------------------------------------------------------------
4218 dnl Check for functions
4219 dnl ---------------------------------------------------------------------------
4220
4221 dnl don't check for wchar_t functions if we haven't got wchar_t itself
4222 if test "$wxUSE_WCHAR_T" = "yes"; then
4223     AC_DEFINE(wxUSE_WCHAR_T)
4224
4225     dnl check for wcslen in all possible places
4226     WCSLEN_FOUND=0
4227     WCHAR_LINK=
4228     AC_CHECK_FUNCS(wcslen, WCSLEN_FOUND=1)
4229
4230     if test "$WCSLEN_FOUND" = 0; then
4231         if test "$TOOLKIT" = "MSW"; then
4232             AC_CHECK_LIB(msvcrt, wcslen, WCHAR_OK=1)
4233         else
4234             AC_CHECK_LIB(w, wcslen, [
4235                             WCHAR_LINK=" -lw"
4236                             WCSLEN_FOUND=1
4237                         ])
4238         fi
4239     fi
4240
4241     if test "$WCSLEN_FOUND" = 1; then
4242         AC_DEFINE(HAVE_WCSLEN)
4243     fi
4244
4245     AC_CHECK_FUNCS([wcsdup])
4246
4247     dnl On HP-UX aCC need this define to find mbstrtowcs() &c
4248     dnl Can't be used for g++ since the mbstate_t in wchar.h can conflict
4249     dnl with g++'s in <cwchar> (unless -D_INCLUDE__STDC_A1_SOURCE is in the
4250     dnl flags when g++ is configured, it will declare it's own).
4251     if test "$USE_HPUX" = 1 -a "$GCC" != "yes"; then
4252         CPPFLAGS="-D_INCLUDE__STDC_A1_SOURCE $CPPFLAGS"
4253     fi
4254
4255     dnl Try to use wcsrtombs instead of wcstombs which is buggy in old GNU
4256     dnl libc versions if possible. AC_CHECK_FUNCS only checks it's in the
4257     dnl library, not the header, so do a header check for mbstate_t first.
4258     AC_CHECK_TYPES([mbstate_t],
4259                    [AC_CHECK_FUNCS(wcsrtombs)],
4260                    [],
4261                    [#include <wchar.h>])
4262 else
4263     AC_MSG_WARN([Wide character support is unavailable])
4264 fi
4265
4266 dnl check for vsnprintf() -- a safe version of vsprintf())
4267 dnl
4268 dnl the trouble here is that on some systems (e.g HP-UX 10) this function is
4269 dnl present in libc but not in the system headers and so AC_CHECK_FUNCS (which,
4270 dnl stupidly, provides a dummy function declaration inside its extension)
4271 dnl succeeds, even with C++ compiler, but the compilation of wxWidgets fails
4272 dnl
4273 dnl so we first check if the function is in the library
4274 dnl
4275 dnl FIXME: replace this mess with WX_CHECK_FUNCS()
4276 AC_CHECK_FUNCS(snprintf vsnprintf)
4277
4278 if test "$ac_cv_func_vsnprintf" = "yes"; then
4279     dnl yes it is -- now check if it is in the headers
4280     AC_CACHE_CHECK([for vsnprintf declaration], wx_cv_func_vsnprintf_decl,
4281         [
4282             dnl our troubles are not over: HP-UX 11 prototypes vsnprintf() as
4283             dnl taking "char *" and not "const char *" while Metrowerks does
4284             dnl provide a correct vsnprintf declaration but in C++ mode it's
4285             dnl always in std namespace and so we have to bring it in scope
4286             AC_TRY_COMPILE(
4287                 [
4288                     #include <stdio.h>
4289                     #include <stdarg.h>
4290                     #ifdef __MSL__
4291                     #if __MSL__ >= 0x6000
4292                     namespace std {}
4293                     using namespace std;
4294                     #endif
4295                     #endif
4296                 ],
4297                 [
4298                     char *buf;
4299                     va_list ap;
4300                     vsnprintf(buf, 10u, "%s", ap);
4301                 ],
4302                 wx_cv_func_vsnprintf_decl=yes,
4303                 wx_cv_func_vsnprintf_decl=no
4304             )
4305         ]
4306     )
4307
4308     if test "$wx_cv_func_vsnprintf_decl" = "yes"; then
4309         AC_DEFINE(HAVE_VSNPRINTF_DECL)
4310
4311         dnl we know there is a vsnprintf declaration, but some old headers
4312         dnl may have one taking a "char *" format instead of "const char *"
4313         AC_CACHE_CHECK([if vsnprintf declaration is broken], wx_cv_func_broken_vsnprintf_decl,
4314             [
4315                 AC_TRY_COMPILE(
4316                     [
4317                         #include <stdio.h>
4318                         #include <stdarg.h>
4319                         #ifdef __MSL__
4320                         #if __MSL__ >= 0x6000
4321                         namespace std {}
4322                         using namespace std;
4323                         #endif
4324                         #endif
4325                     ],
4326                     [
4327                         char *buf;
4328                         va_list ap;
4329                         const char *fmt = "%s";
4330                         vsnprintf(buf, 10u, fmt, ap);
4331                     ],
4332                     wx_cv_func_broken_vsnprintf_decl=no,
4333                     wx_cv_func_broken_vsnprintf_decl=yes
4334                 )
4335             ]
4336         )
4337
4338         if test "$wx_cv_func_broken_vsnprintf_decl" = "yes"; then
4339             AC_DEFINE(HAVE_BROKEN_VSNPRINTF_DECL)
4340         fi
4341     fi
4342 fi
4343
4344 dnl the same as above but for snprintf() now: it's not present in at least AIX
4345 dnl 4.2 headers
4346 if test "$ac_cv_func_snprintf" = "yes"; then
4347     AC_CACHE_CHECK([for snprintf declaration], wx_cv_func_snprintf_decl,
4348         [
4349             AC_TRY_COMPILE(
4350                 [
4351                     #include <stdio.h>
4352                     #include <stdarg.h>
4353                     #ifdef __MSL__
4354                     #if __MSL__ >= 0x6000
4355                     namespace std {}
4356                     using namespace std;
4357                     #endif
4358                     #endif
4359                 ],
4360                 [
4361                     char *buf;
4362                     snprintf(buf, 10u, "%s", "wx");
4363                 ],
4364                 wx_cv_func_snprintf_decl=yes,
4365                 wx_cv_func_snprintf_decl=no
4366             )
4367         ]
4368     )
4369
4370     if test "$wx_cv_func_snprintf_decl" = "yes"; then
4371         AC_DEFINE(HAVE_SNPRINTF_DECL)
4372
4373         dnl we know there is an snprintf declaration, but some old headers
4374         dnl may have one taking a "char *" format instead of "const char *"
4375         AC_CACHE_CHECK([if snprintf declaration is broken], wx_cv_func_broken_snprintf_decl,
4376             [
4377                 AC_TRY_COMPILE(
4378                     [
4379                         #include <stdio.h>
4380                         #include <stdarg.h>
4381                         #ifdef __MSL__
4382                         #if __MSL__ >= 0x6000
4383                         namespace std {}
4384                         using namespace std;
4385                         #endif
4386                         #endif
4387                     ],
4388                     [
4389                         char *buf;
4390                         const char *fmt = "%s";
4391                         snprintf(buf, 10u, fmt, "wx");
4392                     ],
4393                     wx_cv_func_broken_snprintf_decl=no,
4394                     wx_cv_func_broken_snprintf_decl=yes
4395                 )
4396             ]
4397         )
4398
4399         if test "$wx_cv_func_broken_snprintf_decl" = "yes"; then
4400             AC_DEFINE(HAVE_BROKEN_SNPRINTF_DECL)
4401         fi
4402     fi
4403
4404     if test "$wxUSE_PRINTF_POS_PARAMS" = "yes"; then
4405
4406         dnl check if snprintf() has support for positional arguments
4407         dnl NB: if snprintf() has positional support we can safely suppose that also
4408         dnl     other *printf() functions support them as they all belong to the same
4409         dnl     family and they all fallback to the same implementation
4410         AC_CACHE_CHECK([if snprintf supports positional arguments], wx_cv_func_snprintf_pos_params,
4411             [
4412                 AC_TRY_RUN(
4413                     [
4414                         #include <stdio.h>
4415
4416                         int main (void)
4417                         {
4418                             char buffer[128];
4419                             snprintf (buffer, 128, "%2$d %3$d %1$d", 1, 2, 3);
4420                             if (strcmp ("2 3 1", buffer) == 0)
4421                                 exit (0);
4422                             exit (1);
4423                         }
4424                     ],
4425                     wx_cv_func_snprintf_pos_params=no,
4426                     wx_cv_func_snprintf_pos_params=yes,
4427                     dnl be pessimistic when cross-compiling
4428                     [
4429                         AC_MSG_WARN([Assuming Unix98 printf() is not available,
4430 define HAVE_UNIX98_PRINTF as 1 in setup.h if it is available.])
4431                         wx_cv_func_snprintf_pos_params=no
4432                     ]
4433                 )
4434             ]
4435         )
4436
4437         if test "$wx_cv_func_snprintf_pos_params" = "yes"; then
4438             AC_DEFINE(HAVE_UNIX98_PRINTF)
4439         fi
4440     fi
4441 fi
4442
4443 if test "$wxUSE_UNICODE" = yes; then
4444
4445     dnl our wxVsnprintf() implementation needs to use the system swprintf() in Unicode
4446     dnl builds so let's check if swprintf() is declared as C99 imposes:
4447     dnl     int swprintf(wchar_t *s, size_t n, const wchar_t *format, ...);
4448     dnl or rather as:
4449     dnl     int swprintf(wchar_t *s, const wchar_t *format, ...);
4450     AC_CHECK_FUNCS(swprintf)
4451
4452     if test "$ac_cv_func_swprintf" = "yes"; then
4453         AC_CACHE_CHECK([if swprintf declaration is broken], wx_cv_func_broken_swprintf_decl,
4454             [
4455                 AC_TRY_COMPILE(
4456                     [
4457                         #include <stdio.h>
4458                         #include <stdarg.h>
4459                         #include <wchar.h>
4460                     ],
4461                     [
4462                         wchar_t *buf;
4463                         const wchar_t *fmt = L"test";
4464                         swprintf(buf, 10u, fmt);
4465                     ],
4466                     wx_cv_func_broken_swprintf_decl=no,
4467                     wx_cv_func_broken_swprintf_decl=yes
4468                 )
4469             ]
4470         )
4471
4472         if test "$wx_cv_func_broken_swprintf_decl" = "yes"; then
4473             AC_DEFINE(HAVE_BROKEN_SWPRINTF_DECL)
4474         fi
4475     fi
4476
4477     dnl also look if we have wide char IO functions, notice that [f]putws are
4478     dnl declared in special widec.h under Solaris
4479     wchar_headers="#include <stdio.h>
4480 #include <wchar.h>"
4481     case "${host}" in
4482         *-*-solaris2* )
4483             AC_CHECK_HEADERS(widec.h,,, [AC_INCLUDES_DEFAULT()])
4484             if test "$ac_cv_header_widec_h" = "yes"; then
4485                 wchar_headers="$wchar_headers
4486 #include <widec.h>"
4487             fi
4488     esac
4489
4490     WX_CHECK_FUNCS(wputc wputchar putws fputws wprintf vswprintf,,,
4491                    [$wchar_headers])
4492
4493     dnl MinGW has a vswprintf with a different prototype, and
4494     dnl a _vsnwprintf with the correct prototype, but AC_CHECK_FUNCS
4495     dnl finds it even if it is not declared in some versions...
4496     AC_MSG_CHECKING([for _vsnwprintf])
4497     AC_TRY_COMPILE([#include <wchar.h>],
4498                    [&_vsnwprintf;],
4499                    [AC_MSG_RESULT([yes])
4500                     AC_DEFINE(HAVE__VSNWPRINTF)],
4501                    [AC_MSG_RESULT([no])]);
4502 fi
4503
4504 if test "x$ac_cv_header_fnmatch_h" = "xyes"; then
4505     WX_CHECK_FUNCS(fnmatch,,,[#include <fnmatch.h>])
4506 fi
4507
4508 if test "$wxUSE_FILE" = "yes"; then
4509     WX_CHECK_FUNCS(fsync)
4510 fi
4511
4512 dnl at least under IRIX with mipsPro the C99 round() function is available when
4513 dnl building using the C compiler but not when using C++ one
4514 AC_LANG_PUSH(C++)
4515 WX_CHECK_FUNCS(round,,,[#include <math.h>])
4516 AC_LANG_POP()
4517
4518 dnl the following tests are for Unix(like) systems only
4519 if test "$TOOLKIT" != "MSW"; then
4520
4521 dnl check for available version of iconv()
4522
4523 AM_ICONV
4524 LIBS="$LIBICONV $LIBS"
4525
4526 dnl check for POSIX signals if we need them
4527 if test "$wxUSE_ON_FATAL_EXCEPTION" = "yes" -a "$wxUSE_UNIX" = "yes"; then
4528     AC_CHECK_FUNCS(sigaction)
4529
4530     if test "$ac_cv_func_sigaction" = "no"; then
4531         AC_MSG_WARN([No POSIX signal functions on this system, wxApp::OnFatalException will not be called])
4532         wxUSE_ON_FATAL_EXCEPTION=no
4533     fi
4534
4535     if test "$wxUSE_ON_FATAL_EXCEPTION" = "yes"; then
4536       AC_CACHE_CHECK([for sa_handler type], wx_cv_type_sa_handler,
4537       [
4538         dnl C compiler happily compiles the code even if there is type mismatch
4539         AC_LANG_PUSH(C++)
4540         AC_TRY_COMPILE([#include <signal.h>],
4541                      [
4542                         extern void testSigHandler(int);
4543
4544                         struct sigaction sa;
4545                         sa.sa_handler = testSigHandler;
4546                      ], [
4547                         wx_cv_type_sa_handler=int
4548                      ], [
4549                         wx_cv_type_sa_handler=void
4550                      ])
4551         AC_LANG_POP()
4552       ])
4553
4554       AC_DEFINE_UNQUOTED(wxTYPE_SA_HANDLER, $wx_cv_type_sa_handler)
4555     fi
4556 fi
4557
4558 dnl backtrace() and backtrace_symbols() for wxStackWalker
4559 if test "$wxUSE_STACKWALKER" = "yes" -a "$wxUSE_UNIX" = "yes"; then
4560     AC_CACHE_CHECK([for backtrace() in <execinfo.h>], wx_cv_func_backtrace,
4561         [
4562             AC_LANG_PUSH(C++)
4563             AC_TRY_COMPILE([#include <execinfo.h>],
4564                 [
4565                     void *trace[1];
4566                     char **messages;
4567
4568                     backtrace(trace, 1);
4569                     messages = backtrace_symbols(trace, 1);
4570                 ],
4571                 wx_cv_func_backtrace=yes,
4572                 wx_cv_func_backtrace=no
4573             )
4574             AC_LANG_POP()
4575         ]
4576     )
4577
4578
4579     if test "$wx_cv_func_backtrace" = "no"; then
4580         AC_MSG_WARN([backtrace() is not available, wxStackWalker will not be available])
4581         wxUSE_STACKWALKER=no
4582     else
4583         AC_CACHE_CHECK([for __cxa_demangle() in <cxxabi.h>], wx_cv_func_cxa_demangle,
4584             [
4585                 AC_LANG_PUSH(C++)
4586                 AC_TRY_LINK([#include <cxxabi.h>],
4587                     [
4588                         int rc;
4589                         __cxxabiv1::__cxa_demangle("foo", 0, 0, &rc);
4590                     ],
4591                     wx_cv_func_cxa_demangle=yes,
4592                     wx_cv_func_cxa_demangle=no
4593                 )
4594                 AC_LANG_POP()
4595             ]
4596         )
4597
4598         if test "$wx_cv_func_cxa_demangle" = "yes"; then
4599             AC_DEFINE(HAVE_CXA_DEMANGLE)
4600         fi
4601     fi
4602 fi
4603
4604 if test "$wxUSE_STACKWALKER" = "yes" -a "$USE_WIN32" != "1" -a "$USE_UNIX" != "1"; then
4605     AC_MSG_WARN([wxStackWalker is only available on Win32 and UNIX... disabled])
4606     wxUSE_STACKWALKER=no
4607 fi
4608
4609
4610 dnl check for the function for temp files creation
4611 AC_CHECK_FUNCS(mkstemp mktemp, break)
4612
4613 dnl get the library function to use for wxGetDiskSpace(): it is statfs() under
4614 dnl Linux and *BSD and statvfs() under Solaris
4615 AC_CACHE_CHECK(for statfs, wx_cv_func_statfs,
4616     AC_TRY_COMPILE(
4617         [
4618              #if defined(__BSD__)
4619              #include <sys/param.h>
4620              #include <sys/mount.h>
4621              #else
4622              #include <sys/vfs.h>
4623              #endif
4624         ],
4625         [
4626              long l;
4627              struct statfs fs;
4628              statfs("/", &fs);
4629              l = fs.f_bsize;
4630              l += fs.f_blocks;
4631              l += fs.f_bavail;
4632         ],
4633          wx_cv_func_statfs=yes,
4634          wx_cv_func_statfs=no
4635     )
4636 )
4637
4638 if test "$wx_cv_func_statfs" = "yes"; then
4639     dnl check whether we have its dcelaration too: some systems (AIX 4) lack it
4640     AC_CACHE_CHECK(for statfs declaration, wx_cv_func_statfs_decl,
4641         AC_LANG_PUSH(C++)
4642         AC_TRY_COMPILE(
4643             [
4644                  #if defined(__BSD__)
4645                  #include <sys/param.h>
4646                  #include <sys/mount.h>
4647                  #else
4648                  #include <sys/vfs.h>
4649                  #endif
4650             ],
4651             [
4652                 struct statfs fs;
4653                 statfs("", &fs);
4654             ],
4655             wx_cv_func_statfs_decl=yes,
4656             wx_cv_func_statfs_decl=no
4657         )
4658         AC_LANG_POP()
4659     )
4660
4661     if test "$wx_cv_func_statfs_decl" = "yes"; then
4662         AC_DEFINE(HAVE_STATFS_DECL)
4663     fi
4664
4665     wx_cv_type_statvfs_t="struct statfs"
4666     AC_DEFINE(HAVE_STATFS)
4667 else
4668     AC_CACHE_CHECK(for statvfs, wx_cv_func_statvfs,
4669         AC_TRY_COMPILE(
4670             [
4671                 #include <stddef.h>
4672                 #include <sys/statvfs.h>
4673             ],
4674             [
4675                 statvfs("/", NULL);
4676             ],
4677             wx_cv_func_statvfs=yes,
4678             wx_cv_func_statvfs=no
4679         )
4680     )
4681
4682     if test "$wx_cv_func_statvfs" = "yes"; then
4683         dnl we also have to check whether we should use statvfs_t (works under
4684         dnl Solaris 8, doesn't work under Solaris 7) or "struct statvfs" (vice
4685         dnl versa) as the argument for statvfs in 64 bit off_t mode (in 32 bit
4686         dnl mode both work fine)
4687         dnl
4688         dnl for this check C++ compiler has to be used as passing incompatible
4689         dnl pointers is just a warning and not an error in C
4690         AC_CACHE_CHECK(for statvfs argument type, wx_cv_type_statvfs_t,
4691             AC_LANG_PUSH(C++)
4692             AC_TRY_COMPILE(
4693                 [
4694                     #include <sys/statvfs.h>
4695                 ],
4696                 [
4697                     long l;
4698                     statvfs_t fs;
4699                     statvfs("/", &fs);
4700                     l = fs.f_bsize;
4701                     l += fs.f_blocks;
4702                     l += fs.f_bavail;
4703                 ],
4704                 wx_cv_type_statvfs_t=statvfs_t,
4705                 [
4706                     AC_TRY_COMPILE(
4707                         [
4708                             #include <sys/statvfs.h>
4709                         ],
4710                         [
4711                             long l;
4712                             struct statvfs fs;
4713                             statvfs("/", &fs);
4714                             l = fs.f_bsize;
4715                             l += fs.f_blocks;
4716                             l += fs.f_bavail;
4717                         ],
4718                         wx_cv_type_statvfs_t="struct statvfs",
4719                         wx_cv_type_statvfs_t="unknown"
4720                     )
4721                 ]
4722             )
4723             AC_LANG_POP()
4724         )
4725
4726         if test "$wx_cv_type_statvfs_t" != "unknown"; then
4727             AC_DEFINE(HAVE_STATVFS)
4728         fi
4729     else
4730         dnl set it for the test below
4731         wx_cv_type_statvfs_t="unknown"
4732     fi
4733 fi
4734
4735 if test "$wx_cv_type_statvfs_t" != "unknown"; then
4736     AC_DEFINE_UNQUOTED(WX_STATFS_T, $wx_cv_type_statvfs_t)
4737 else
4738     AC_MSG_WARN([wxGetDiskSpace() function won't work without statfs()])
4739 fi
4740
4741 dnl check for fcntl() or at least flock() needed by Unix implementation of
4742 dnl wxSingleInstanceChecker
4743 if test "$wxUSE_SNGLINST_CHECKER" = "yes"; then
4744     AC_CHECK_FUNCS(fcntl flock, break)
4745
4746     if test "$ac_cv_func_fcntl" != "yes" -a "$ac_cv_func_flock" != "yes"; then
4747         AC_MSG_WARN(wxSingleInstanceChecker not available)
4748         wxUSE_SNGLINST_CHECKER=no
4749     fi
4750 fi
4751
4752 dnl check for timegm() used by datetime.cpp
4753 AC_CHECK_FUNCS(timegm)
4754
4755 dnl look for a function to modify the environment
4756 AC_CHECK_FUNCS(setenv putenv, break)
4757
4758 HAVE_SOME_SLEEP_FUNC=0
4759 if test "$USE_BEOS" = 1; then
4760     dnl BeOS has its own (wonder where did they get it from) sleep() function
4761     dnl in unistd.h
4762     AC_DEFINE(HAVE_SLEEP)
4763     HAVE_SOME_SLEEP_FUNC=1
4764 fi
4765
4766 if test "$USE_DARWIN" = 1; then
4767     dnl Mac OS X/Darwin has both nanosleep and usleep
4768     dnl but only usleep is defined in unistd.h
4769     AC_DEFINE(HAVE_USLEEP)
4770     HAVE_SOME_SLEEP_FUNC=1
4771 fi
4772
4773 if test "$HAVE_SOME_SLEEP_FUNC" != 1; then
4774     dnl try nanosleep() in libc and libposix4, if this fails - usleep()
4775     POSIX4_LINK=
4776     AC_CHECK_FUNCS(nanosleep,
4777         AC_DEFINE(HAVE_NANOSLEEP),
4778         [
4779             AC_CHECK_LIB(posix4, nanosleep,
4780                 [
4781                     AC_DEFINE(HAVE_NANOSLEEP)
4782                     POSIX4_LINK=" -lposix4"
4783                 ],
4784                 [
4785                     WX_CHECK_FUNCS(usleep,,
4786                                     AC_MSG_WARN([wxSleep() function will not work])
4787                     )
4788                 ]
4789             )
4790         ]
4791     )
4792 fi
4793
4794 dnl check for uname (POSIX) and gethostname (BSD)
4795 WX_CHECK_FUNCS(uname,,,[#include <sys/utsname.h>])
4796 if test "$wx_cv_func_uname" != yes; then
4797     WX_CHECK_FUNCS(gethostname)
4798 fi
4799
4800 WX_CHECK_FUNCS(strtok_r, [], [], [#define _REENTRANT])
4801
4802 dnl check for inet_addr and inet_aton (these may live either in libc, or in
4803 dnl libnsl or libresolv or libsocket)
4804 INET_LINK=
4805 AC_CHECK_FUNCS(inet_addr,
4806     AC_DEFINE(HAVE_INET_ADDR),
4807     [
4808         AC_CHECK_LIB(nsl, inet_addr,
4809             INET_LINK="nsl",
4810             [
4811                 AC_CHECK_LIB(resolv, inet_addr,
4812                     INET_LINK="resolv",
4813                     [
4814                         AC_CHECK_LIB(socket, inet_addr,
4815                             INET_LINK="socket"
4816                         )
4817                     ]
4818                 )
4819             ]
4820         )
4821     ]
4822 )
4823
4824 AC_CHECK_FUNCS(inet_aton,
4825         AC_DEFINE(HAVE_INET_ATON),
4826         [
4827             dnl only check it in the same lib
4828             AC_CHECK_LIB($INET_LINK, inet_aton, AC_DEFINE(HAVE_INET_ATON))
4829         ])
4830
4831 if test "x$INET_LINK" != "x"; then
4832     AC_DEFINE(HAVE_INET_ADDR)
4833     INET_LINK=" -l$INET_LINK"
4834 fi
4835
4836 WX_CHECK_FUNCS(fdopen)
4837
4838 fi
4839
4840
4841 dnl ===========================================================================
4842 dnl Now we have all the info we need - use it!
4843 dnl ===========================================================================
4844
4845 dnl flush the cache
4846 AC_CACHE_SAVE
4847
4848 dnl ---------------------------------------------------------------------------
4849 dnl thread support for Unix (for Win32 and OS/2 see past
4850 dnl                          the next matching "else")
4851 dnl ---------------------------------------------------------------------------
4852
4853 dnl under MSW (except mingw32) we always have thread support
4854 if test "$TOOLKIT" != "MSW" -a "$USE_OS2" != 1; then
4855
4856     dnl the code below:
4857     dnl
4858     dnl   defines THREADS_LINK and THREADS_CFLAGS which are the options
4859     dnl   necessary to build the MT programs for the linker and compiler
4860     dnl   respectively
4861     dnl
4862     dnl   sets wxUSE_THREADS=1 if thread support is activated
4863
4864     THREADS_LINK=
4865     THREADS_CFLAGS=
4866
4867     if test "$wxUSE_THREADS" = "yes" ; then
4868         if test "$USE_BEOS" = 1; then
4869             AC_MSG_WARN([BeOS threads are not yet supported... disabled])
4870             wxUSE_THREADS="no"
4871         fi
4872     fi
4873
4874     if test "$wxUSE_THREADS" = "yes" ; then
4875         dnl find if POSIX threads are available
4876         dnl
4877         dnl the tests here are based on ACX_PTHREAD macro from autoconf macro
4878         dnl archive from http://ac-archive.sourceforge.net/
4879         dnl
4880         dnl thanks to Steven G. Johnson <stevenj@alum.mit.edu> and Alejandro
4881         dnl Forero Cuervo <bachue@bachue.com> for the original code
4882
4883         dnl TODO: cache the result
4884
4885         dnl define the list of the thread options to try in the loop below
4886         dnl with the convention that anything starting with '-' is a cpp flag
4887         dnl while anything else is a library (i.e. there is an implicit "-l")
4888         THREAD_OPTS="-pthread"
4889         if test "x$SUNCXX" = xyes; then
4890             THREAD_OPTS="-mt lthread $THREAD_OPTS"
4891         fi
4892
4893         case "${host}" in
4894           *-*-solaris2* | *-*-sunos4* )
4895                 if test "x$GCC" = "xyes"; then
4896                     dnl Solaris/gcc combination use this one for some reason
4897                     THREAD_OPTS="-pthreads $THREAD_OPTS"
4898                 fi
4899                 ;;
4900           *-*-freebsd*)
4901                 dnl look, in order, for the kernel threads, then Linux threads
4902                 dnl and finally the userland threads
4903                 THREAD_OPTS="-kthread lthread $THREAD_OPTS c_r"
4904                 ;;
4905           *-*-darwin* | *-*-cygwin* )
4906                 dnl Darwin / Mac OS X just uses -lpthread tested below
4907                 dnl and so does Cygwin
4908                 THREAD_OPTS=""
4909                 ;;
4910           *-*-aix*)
4911                 dnl AIX calls the library libpthreads - thanks IBM!
4912                 THREAD_OPTS="pthreads"
4913                 ;;
4914           *-hp-hpux* )
4915                 if test "x$GCC" = "xyes"; then
4916                     dnl g++ versions before 3.3.2 don't support -pthread.
4917                     $CXX -dumpspecs | grep 'pthread:' >/dev/null ||
4918                         THREAD_OPTS=""
4919                 else
4920                     dnl HP-UX aCC (tested with version B3910B A.06.05 [Jul 25
4921                     dnl 2005]) supports -mt
4922                     THREAD_OPTS="-mt"
4923                 fi
4924                 ;;
4925
4926           *-*-irix* )
4927                 dnl gcc under IRIX doesn't seem to like -pthread, but it
4928                 dnl doesn't give an error for it neither, just a warning
4929                 dnl message -- but this is still very annoying
4930                 if test "x$GCC" = "xyes"; then
4931                     THREAD_OPTS=""
4932                 fi
4933                 ;;
4934
4935           *-*-*UnixWare*)
4936                 dnl flying by man pages here: Caldera online docs use this
4937                 if test "x$GCC" != "xyes"; then
4938                     THREAD_OPTS="-Ethread"
4939                 fi
4940                 ;;
4941         esac
4942
4943         dnl simply linking with libpthread should make the test below work but
4944         dnl it's far from certain that the threaded programs compiled without
4945         dnl any special switches actually work, so try it after all the others
4946         THREAD_OPTS="$THREAD_OPTS pthread none"
4947
4948         dnl now test for all possibilities
4949         THREADS_OK=no
4950         for flag in $THREAD_OPTS; do
4951             case $flag in
4952                 none)
4953                     AC_MSG_CHECKING([whether pthreads work without any flags])
4954                     ;;
4955
4956                 -*)
4957                     AC_MSG_CHECKING([whether pthreads work with $flag])
4958                     THREADS_CFLAGS="$flag"
4959                     ;;
4960
4961                 *)
4962                     AC_MSG_CHECKING([for the pthreads library -l$flag])
4963                     THREADS_LINK="-l$flag"
4964                     ;;
4965               esac
4966
4967               save_LIBS="$LIBS"
4968               save_CFLAGS="$CFLAGS"
4969               LIBS="$THREADS_LINK $LIBS"
4970               CFLAGS="$THREADS_CFLAGS $CFLAGS"
4971
4972               AC_TRY_LINK([#include <pthread.h>],
4973                           [pthread_create(0,0,0,0);],
4974                           THREADS_OK=yes)
4975
4976               LIBS="$save_LIBS"
4977               CFLAGS="$save_CFLAGS"
4978
4979               AC_MSG_RESULT($THREADS_OK)
4980               if test "x$THREADS_OK" = "xyes"; then
4981                       break;
4982               fi
4983
4984               THREADS_LINK=""
4985               THREADS_CFLAGS=""
4986       done
4987
4988       if test "x$THREADS_OK" != "xyes"; then
4989           wxUSE_THREADS=no
4990           AC_MSG_WARN([No thread support on this system... disabled])
4991       else
4992           dnl yes, these special compiler flags should be used with the
4993           dnl linker as well
4994           LDFLAGS="$THREADS_CFLAGS $LDFLAGS"
4995           LIBS="$THREADS_LINK $LIBS"
4996
4997           AC_MSG_CHECKING([if more special flags are required for pthreads])
4998           flag=no
4999           case "${host}" in
5000             *-aix*)
5001                 dnl again quoting from
5002                 dnl http://www-1.ibm.com/servers/esdd/articles/gnu.html:
5003                 dnl
5004                 dnl     When compiling and linking with -pthread, the library
5005                 dnl     search path should include -L/usr/lib/threads at the
5006                 dnl     beginning of the path.
5007                 LDFLAGS="-L/usr/lib/threads $LDFLAGS"
5008                 flag="-D_THREAD_SAFE"
5009                 ;;
5010             *-freebsd*)
5011                 flag="-D_THREAD_SAFE"
5012                 ;;
5013             *-hp-hpux* )
5014                 flag="-D_REENTRANT"
5015                 if test "x$GCC" != "xyes"; then
5016                     dnl see http://docs.hp.com/hpux/onlinedocs/2213/threads.htm
5017                     flag="$flag -D_RWSTD_MULTI_THREAD"
5018                 fi
5019                 ;;
5020             *solaris* | alpha*-osf*)
5021                 flag="-D_REENTRANT"
5022                 ;;
5023           esac
5024           AC_MSG_RESULT(${flag})
5025           if test "x$flag" != xno; then
5026               THREADS_CFLAGS="$THREADS_CFLAGS $flag"
5027           fi
5028
5029           dnl don't add these options to CPPFLAGS as cpp might not know them
5030           WXCONFIG_CFLAGS="$WXCONFIG_CFLAGS $THREADS_CFLAGS"
5031       fi
5032     fi
5033
5034     dnl do other tests only if we are using threads
5035     if test "$wxUSE_THREADS" = "yes" ; then
5036       AC_CHECK_FUNCS(thr_setconcurrency)
5037
5038       dnl can't use AC_CHECK_FUNCS for this one as it's usually a macro and so
5039       dnl wouldn't be found by it
5040       AC_CACHE_CHECK([for pthread_cleanup_push/pop], wx_cv_func_pthread_cleanup,
5041       [
5042         dnl C compiler may treat pthread_cleanup_push() as an undeclared
5043         dnl function and not give a warning even if it's unavailable, so use
5044         dnl the C++ one for this test
5045         AC_LANG_PUSH(C++)
5046         AC_TRY_COMPILE([#include <pthread.h>
5047                void ThreadCleanupFunc(void *p);
5048             ],
5049             [
5050                 void *p;
5051                 pthread_cleanup_push(ThreadCleanupFunc, p);
5052                 pthread_cleanup_pop(0);
5053             ], [
5054                wx_cv_func_pthread_cleanup=yes
5055             ], [
5056                wx_cv_func_pthread_cleanup=no
5057             ]
5058         )
5059         AC_LANG_POP()
5060       ])
5061       if test "x$wx_cv_func_pthread_cleanup" = "xyes"; then
5062         AC_DEFINE(wxHAVE_PTHREAD_CLEANUP)
5063       fi
5064
5065       AC_CHECK_HEADERS(sched.h,,, [AC_INCLUDES_DEFAULT()])
5066       if test "$ac_cv_header_sched_h" = "yes"; then
5067           AC_CHECK_FUNC(sched_yield,
5068             AC_DEFINE(HAVE_SCHED_YIELD),
5069             [
5070                 AC_CHECK_LIB(posix4,
5071                     sched_yield,
5072                     [AC_DEFINE(HAVE_SCHED_YIELD) POSIX4_LINK=" -lposix4"],
5073                     AC_MSG_WARN(wxThread::Yield will not work properly)
5074                 )
5075             ]
5076           )
5077       fi
5078
5079       dnl to be able to set the thread priority, we need to have all of the
5080       dnl following functions:
5081       dnl   1. pthread_attr_getschedpolicy
5082       dnl   2. sched_get_priority_min and sched_get_priority_max
5083       dnl      (this one can be in either libpthread or libposix4 (under Solaris))
5084       dnl   3. pthread_attr_getschedparam and pthread_attr_setschedparam
5085       HAVE_PRIOR_FUNCS=0
5086       AC_CHECK_FUNC(pthread_attr_getschedpolicy,
5087                      [AC_CHECK_FUNC(pthread_attr_setschedparam,
5088                        [AC_CHECK_FUNC(sched_get_priority_max,
5089                            HAVE_PRIOR_FUNCS=1,
5090                            [AC_CHECK_LIB([posix4], sched_get_priority_max,
5091                              [
5092                                 HAVE_PRIOR_FUNCS=1
5093                                 POSIX4_LINK=" -lposix4"
5094                              ],
5095                            )]
5096                        )]
5097                      )]
5098                    )
5099
5100       if test "$HAVE_PRIOR_FUNCS" = 1; then
5101         AC_DEFINE(HAVE_THREAD_PRIORITY_FUNCTIONS)
5102       else
5103         AC_MSG_WARN(Setting thread priority will not work)
5104       fi
5105
5106       AC_CHECK_FUNC(pthread_cancel,
5107                     AC_DEFINE(HAVE_PTHREAD_CANCEL),
5108                     AC_MSG_WARN([wxThread::Kill() will not work properly]))
5109
5110       AC_CHECK_FUNC(pthread_mutex_timedlock,
5111                     AC_DEFINE(HAVE_PTHREAD_MUTEX_TIMEDLOCK),
5112                     AC_MSG_WARN([wxMutex::LockTimeout() will not work]))
5113
5114       AC_CHECK_FUNC(pthread_attr_setstacksize,
5115                     AC_DEFINE(HAVE_PTHREAD_ATTR_SETSTACKSIZE))
5116
5117       dnl mutexattr_t initialization is done in quite different ways on different
5118       dnl platforms, so check for a few things:
5119       dnl
5120       dnl HAVE_MUTEX_RECURSIVE means that we can create recursive mutexes
5121       dnl HAVE_MUTEXATTR_SETTYPE means that we do it using
5122       dnl pthread_mutexattr_settype(PTHREAD_MUTEX_RECURSIVE) and if it is not
5123       dnl defined, we do it by directly assigned
5124       dnl PTHREAD_MUTEX_RECURSIVE_MUTEX_INITIALIZER_NP to attr
5125
5126       AC_CACHE_CHECK([for pthread_mutexattr_t], wx_cv_type_pthread_mutexattr_t,
5127       [
5128         AC_TRY_COMPILE([#include <pthread.h>],
5129             [
5130                pthread_mutexattr_t attr;
5131                pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
5132             ],
5133             wx_cv_type_pthread_mutexattr_t=yes,
5134             wx_cv_type_pthread_mutexattr_t=no
5135         )
5136       ])
5137
5138       if test "$wx_cv_type_pthread_mutexattr_t" = "yes"; then
5139         AC_DEFINE(HAVE_PTHREAD_MUTEXATTR_T)
5140
5141         dnl check if we already have the declaration we need, it is not
5142         dnl present in some systems' headers
5143         AC_CACHE_CHECK([for pthread_mutexattr_settype declaration],
5144                        wx_cv_func_pthread_mutexattr_settype_decl, [
5145                        AC_TRY_COMPILE([#include <pthread.h>],
5146                            [
5147                                pthread_mutexattr_t attr;
5148                                pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
5149                            ],
5150                            wx_cv_func_pthread_mutexattr_settype_decl=yes,
5151                            wx_cv_func_pthread_mutexattr_settype_decl=no
5152                        )
5153         ])
5154         if test "$wx_cv_func_pthread_mutexattr_settype_decl" = "yes"; then
5155             AC_DEFINE(HAVE_PTHREAD_MUTEXATTR_SETTYPE_DECL)
5156         fi
5157       else
5158         dnl don't despair, there may be another way to do it
5159         AC_CACHE_CHECK([for PTHREAD_RECURSIVE_MUTEX_INITIALIZER],
5160                        wx_cv_type_pthread_rec_mutex_init,
5161         [
5162             AC_TRY_COMPILE([#include <pthread.h>],
5163                 [
5164                     pthread_mutex_t attr = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP;
5165                 ], [
5166                     wx_cv_type_pthread_rec_mutex_init=yes
5167                 ], [
5168                     wx_cv_type_pthread_rec_mutex_init=no
5169                 ]
5170             )
5171         ])
5172         if test "$wx_cv_type_pthread_rec_mutex_init" = "yes"; then
5173           AC_DEFINE(HAVE_PTHREAD_RECURSIVE_MUTEX_INITIALIZER)
5174         else
5175           dnl this may break code working elsewhere, so at least warn about it
5176           AC_MSG_WARN([wxMutex won't be recursive on this platform])
5177         fi
5178       fi
5179     fi
5180
5181 dnl from if !MSW
5182 else
5183     if test "$wxUSE_THREADS" = "yes" ; then
5184       case "${host}" in
5185         *-*-mingw32* )
5186             dnl check if the compiler accepts -mthreads
5187             AC_CACHE_CHECK([if compiler supports -mthreads],
5188                 wx_cv_cflags_mthread,
5189                 [
5190                     CFLAGS_OLD="$CFLAGS"
5191                     CFLAGS="-mthreads $CFLAGS"
5192                     AC_TRY_COMPILE([], [],
5193                         wx_cv_cflags_mthread=yes,
5194                         wx_cv_cflags_mthread=no
5195                     )
5196                 ]
5197             )
5198
5199             if test "$wx_cv_cflags_mthread" = "yes"; then
5200                 dnl it does, use it
5201                 WXCONFIG_CFLAGS="$WXCONFIG_CFLAGS -mthreads"
5202                 LDFLAGS="$LDFLAGS -mthreads"
5203             else
5204                 dnl it doesn't
5205                 CFLAGS="$CFLAGS_OLD"
5206             fi
5207         ;;
5208         *-pc-os2*emx )
5209             WXCONFIG_CFLAGS="$WXCONFIG_CFLAGS -Zmt -D__ST_MT_ERRNO__"
5210             LDFLAGS="$LDFLAGS -Zmt"
5211         ;;
5212       esac
5213     fi
5214 fi
5215
5216 AC_CHECK_FUNC(localtime_r, [ AC_DEFINE(HAVE_LOCALTIME_R) ])
5217 AC_CHECK_FUNC(gmtime_r, [ AC_DEFINE(HAVE_GMTIME_R) ])
5218 AC_CHECK_FUNC(readdir_r, [ AC_DEFINE(HAVE_READDIR_R) ])
5219 dnl By preference, we probably should use getaddrinfo which avoids thread
5220 dnl safety issues and supports IPv6, however there currently is no code
5221 dnl for it, so testing for it is temporarily disabled and we are restricted
5222 dnl to gethostbyname_r/gethostbyaddr_r  and getservbyname_r
5223
5224 dnl AC_CHECK_FUNC(getaddrinfo, AC_DEFINE(HAVE_GETADDRINFO), [
5225     dnl no getaddrinfo, so check for gethostbyname_r and
5226     dnl related functions (taken from python's configure.in)
5227     dnl sigh -- gethostbyname_r is a mess; it can have 3, 5 or 6 arguments
5228       AX_FUNC_WHICH_GETHOSTBYNAME_R
5229       if test "x$ac_cv_func_which_gethostbyname_r" = "xno" -o \
5230               "x$ac_cv_func_which_gethostbyname_r" = "xunknown" ; then
5231           AC_CHECK_FUNC(gethostbyname, [ AC_DEFINE(HAVE_GETHOSTBYNAME) ])
5232       fi
5233       dnl A similar test for getservbyname_r
5234       dnl I'm tempted to just not do this test which is taking much time and
5235       dnl do something similar as for gethostbyaddr_r, but OTOH the macro
5236       dnl doing the test already exists, so using it is easy enough.     - SN
5237       AC_raf_FUNC_WHICH_GETSERVBYNAME_R
5238       if test "x$ac_cv_func_which_getservbyname_r" = "xno" -o \
5239               "x$ac_cv_func_which_getservbyname_r" = "xunknown" ; then
5240           AC_CHECK_FUNCS(getservbyname,[ AC_DEFINE(HAVE_GETSERVBYNAME) ])
5241       fi
5242       dnl For gethostbyaddr_r, we currently do no separate test, instead, we
5243       dnl silently assume it's available exactly if gethostbyname_r is
5244       dnl available and always requires two more arguments than
5245       dnl gethostbyname_r.
5246       dnl (also, I'm lazy and there no m4 file that's ready for use for this
5247       dnl  function, although it should be easy to rewrite the gethostbyname_r
5248       dnl  check to fit this case, if it's really needed.                - SN )
5249 dnl    ]
5250 dnl )
5251
5252 if test "$wxUSE_THREADS" = "yes"; then
5253   AC_DEFINE(wxUSE_THREADS)
5254
5255   SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS thread"
5256 else
5257   dnl on some systems, _REENTRANT should be defined if we want to use any _r()
5258   dnl functions - add tests for other functions here as well
5259   if test "$wx_cv_func_strtok_r" = "yes"; then
5260     AC_MSG_CHECKING(if -D_REENTRANT is needed)
5261     if test "$NEEDS_D_REENTRANT_FOR_R_FUNCS" = 1; then
5262         WXCONFIG_CPPFLAGS="$WXCONFIG_CPPFLAGS -D_REENTRANT"
5263         AC_MSG_RESULT(yes)
5264     else
5265         AC_MSG_RESULT(no)
5266     fi
5267   fi
5268 fi
5269
5270 if test "$WXGTK20" = 1 ; then
5271   AC_DEFINE_UNQUOTED(__WXGTK20__,$WXGTK20)
5272   WXGTK12=1
5273 fi
5274
5275 if test "$WXGTK12" = 1 ; then
5276   AC_DEFINE_UNQUOTED(__WXGTK12__,$WXGTK12)
5277 fi
5278
5279 if test "$WXGTK127" = 1 ; then
5280   AC_DEFINE_UNQUOTED(__WXGTK127__,$WXGTK127)
5281 fi
5282
5283 if test "$WXGPE" = 1 ; then
5284   AC_DEFINE_UNQUOTED(__WXGPE__,$WXGPE)
5285 fi
5286
5287 dnl DEBUG_CFLAGS contains debugging options (supposed to be the same for C and C++
5288 dnl compilers: we'd need a separate DEBUG_CXXFLAGS if this is ever not the case)
5289 DEBUG_CFLAGS=
5290 if test "$wxUSE_DEBUG_INFO" = "yes" ; then
5291     DEBUG_CFLAGS="-g"
5292     wxUSE_OPTIMISE=no
5293 fi
5294
5295 if test "$wxUSE_DEBUG_GDB" = "yes" ; then
5296     wxUSE_DEBUG_INFO=yes
5297     if test "$GCC" = yes; then
5298         DEBUG_CFLAGS="-ggdb"
5299     fi
5300 fi
5301
5302 if test "$wxUSE_DEBUG_FLAG" = "yes" ; then
5303     AC_DEFINE(WXDEBUG)
5304     WXCONFIG_CPPFLAGS="$WXCONFIG_CPPFLAGS -D__WXDEBUG__"
5305 else
5306     if test "$wxUSE_GTK" = 1 ; then
5307         if test "x$wxGTK_VERSION" = "x1" ; then
5308             CPPFLAGS="-DGTK_NO_CHECK_CASTS $CPPFLAGS"
5309         fi
5310     fi
5311 fi
5312
5313 if test "$wxUSE_MEM_TRACING" = "yes" ; then
5314     AC_DEFINE(wxUSE_MEMORY_TRACING)
5315     AC_DEFINE(wxUSE_GLOBAL_MEMORY_OPERATORS)
5316     AC_DEFINE(wxUSE_DEBUG_NEW_ALWAYS)
5317     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS memcheck"
5318 fi
5319
5320 if test "$wxUSE_DMALLOC" = "yes" ; then
5321     DMALLOC_LIBS="-ldmallocthcxx"
5322 fi
5323
5324 dnl cc/cxx/ld option for profiling
5325 PROFILE_FLAGS=
5326 if test "$wxUSE_PROFILE" = "yes" ; then
5327     PROFILE_FLAGS=" -pg"
5328 fi
5329
5330 if test "$GCC" = "yes" ; then
5331     if test "$wxUSE_NO_RTTI" = "yes" ; then
5332         WXCONFIG_CXXFLAGS="$WXCONFIG_CXXFLAGS -fno-rtti"
5333     fi
5334     if test "$wxUSE_NO_EXCEPTIONS" = "yes" ; then
5335         WXCONFIG_CXXFLAGS="$WXCONFIG_CXXFLAGS -fno-exceptions"
5336     fi
5337     if test "$wxUSE_PERMISSIVE" = "yes" ; then
5338         WXCONFIG_CFLAGS="$WXCONFIG_CFLAGS -fpermissive"
5339     fi
5340
5341     dnl Ian Brown <ian.brown@printsoft.de> reports that versions of gcc before
5342     dnl 3.0 overflow the table of contents on rs6000 as they create an entry
5343     dnl for each subroutine by default -- using the switch below only creates
5344     dnl one entry per file instead at the price of minor performance penalty
5345     dnl
5346     dnl As of wx2.4 a bug in the hppa gcc compiler causes a similar problem
5347     dnl without -ffunction-sections.  No idea how long we'll need to maintain
5348     dnl this, or even the extent of gcc/wx version combinations affected, but
5349     dnl also as above, this 'fix' does not come without side effects.
5350     dnl
5351     dnl TODO: test for the gcc version here (how?)
5352     case "${host}" in
5353       powerpc*-*-aix* )
5354         WXCONFIG_CFLAGS="$WXCONFIG_CFLAGS -mminimal-toc"
5355         ;;
5356       *-hppa* )
5357         WXCONFIG_CFLAGS="$WXCONFIG_CFLAGS -ffunction-sections"
5358         ;;
5359     esac
5360 fi
5361
5362 dnl C/C++ compiler option for optimization (supposed to be the same for both)
5363 OPTIMISE_CFLAGS=
5364 if test "$wxUSE_OPTIMISE" = "no" ; then
5365     if test "$GCC" = yes ; then
5366         dnl use -O0 because compiling with it is faster than compiling with no
5367         dnl optimization options at all (at least with g++ 3.2)
5368         OPTIMISE_CFLAGS="-O0"
5369     fi
5370 else
5371     if test "$GCC" = yes ; then
5372         case "${host}" in
5373             *-pc-os2_emx | *-pc-os2-emx )
5374                 dnl Not all of the supported gcc versions understand
5375                 dnl -fstrict-aliasing and none actually needs it (yet).
5376                 OPTIMISE_CFLAGS="-O2"
5377             ;;
5378             *)
5379                 dnl Switch on optimisation but keep strict-aliasing off for
5380                 dnl now (see -fstrict-aliasing in the gcc manual). When it is
5381                 dnl switched back on consider using -Wstrict-aliasing=2.
5382                 OPTIMISE_CFLAGS="-O2 -fno-strict-aliasing"
5383             ;;
5384         esac
5385     else
5386         OPTIMISE_CFLAGS="-O"
5387     fi
5388 fi
5389
5390 dnl ---------------------------------------------------------------------------
5391 dnl compatibility level
5392 dnl ---------------------------------------------------------------------------
5393
5394 if test "x$WXWIN_COMPATIBILITY_2_6" = "xyes"; then
5395     AC_DEFINE(WXWIN_COMPATIBILITY_2_6)
5396
5397     WXWIN_COMPATIBILITY_2_8="yes"
5398 fi
5399
5400 if test "x$WXWIN_COMPATIBILITY_2_8" != "xno"; then
5401     AC_DEFINE(WXWIN_COMPATIBILITY_2_8)
5402 fi
5403
5404 dnl ---------------------------------------------------------------------------
5405 dnl the library may be built without GUI classes at all
5406 dnl ---------------------------------------------------------------------------
5407
5408 if test "$wxUSE_GUI" = "yes"; then
5409     AC_DEFINE(wxUSE_GUI)
5410
5411     dnl the things we always pull in the GUI version of the library:
5412     dnl 1. basic things like wxApp, wxWindow, wxControl, wxFrame, wxDialog (the
5413     dnl    library really can't be built without those)
5414     dnl 2. basic controls: wxButton, wxStaticText, wxTextCtrl (these are used in
5415     dnl    almost any program and the first 2 are needed to show a message box
5416     dnl    which want to be always able to do)
5417     dnl 3. GDI stuff: icon, cursors and all that. Although it would be very nice
5418     dnl    to compile without them (if the app doesn't do any drawing, it doesn't
5419     dnl    need the dcs, pens, brushes, ...), this just can't be done now
5420     dnl 4. menu stuff: wxMenu, wxMenuBar, wxMenuItem
5421     dnl 5. misc stuff: timers, settings, message box
5422 fi
5423
5424 dnl ---------------------------------------------------------------------------
5425 dnl Unix/Windows
5426 dnl ---------------------------------------------------------------------------
5427
5428 if test "$wxUSE_UNIX" = "yes"; then
5429   AC_DEFINE(wxUSE_UNIX)
5430 fi
5431
5432 dnl ------------------------------------------------------------------------
5433 dnl DLL support
5434 dnl ------------------------------------------------------------------------
5435
5436 dnl under MSW we always have LoadLibrary/GetProcAddress
5437 if test "$TOOLKIT" != "MSW" -a "$USE_OS2" != 1; then
5438
5439     HAVE_DL_FUNCS=0
5440     HAVE_SHL_FUNCS=0
5441     if test "$wxUSE_DYNAMIC_LOADER" = "yes" -o "$wxUSE_DYNLIB_CLASS" = "yes" ; then
5442         if test "$USE_DARWIN" = 1; then
5443             dnl dlopen/dlerror is implemented in dynlib.cpp for Darwin/Mac OS X
5444             HAVE_DL_FUNCS=1
5445         elif test "$USE_DOS" = 1; then
5446             HAVE_DL_FUNCS=0
5447         else
5448             dnl the test is a bit complicated because we check for dlopen() both with
5449             dnl and without -ldl and we also try to find shl_load() if there is no
5450             dnl dlopen() on this system
5451             AC_CHECK_FUNCS(dlopen,
5452             [
5453                 AC_DEFINE(HAVE_DLOPEN)
5454                 HAVE_DL_FUNCS=1
5455             ],
5456             [
5457                 AC_CHECK_LIB(dl, dlopen,
5458                             [
5459                                 AC_DEFINE(HAVE_DLOPEN)
5460                                 HAVE_DL_FUNCS=1
5461                                 DL_LINK=" -ldl$DL_LINK"
5462                             ],
5463                             [
5464                                 AC_CHECK_FUNCS(shl_load,
5465                                               [
5466                                                 AC_DEFINE(HAVE_SHL_LOAD)
5467                                                 HAVE_SHL_FUNCS=1
5468                                               ],
5469                                               [
5470                                                 AC_CHECK_LIB(shl_load, dld,
5471                                                              [
5472                                                                 HAVE_SHL_FUNCS=1
5473                                                                 DL_LINK=" -ldld$DL_LINK"
5474                                                              ])
5475                                               ])
5476                             ])
5477             ])
5478
5479         dnl check also for dlerror()
5480         if test "$HAVE_DL_FUNCS" = 1; then
5481             AC_CHECK_FUNCS(dlerror,
5482                 AC_DEFINE(HAVE_DLERROR),
5483                 [
5484                     AC_CHECK_LIB(dl, dlerror, AC_DEFINE(HAVE_DLERROR))
5485                 ]
5486             )
5487         fi
5488         fi
5489
5490         if test "$HAVE_DL_FUNCS" = 0; then
5491             if test "$HAVE_SHL_FUNCS" = 0; then
5492               if test "$USE_UNIX" = 1 -o "$USE_DOS" = 1; then
5493                   AC_MSG_WARN([Missing dynamic loading support, several features will be disabled])
5494                   wxUSE_DYNAMIC_LOADER=no
5495                   wxUSE_DYNLIB_CLASS=no
5496               else
5497                   AC_MSG_WARN([Assuming wxLibrary class works on this platform])
5498               fi
5499             fi
5500         fi
5501     fi
5502 fi
5503
5504 if test "$wxUSE_DYNAMIC_LOADER" = "yes" ; then
5505     AC_DEFINE(wxUSE_DYNAMIC_LOADER)
5506 fi
5507 if test "$wxUSE_DYNLIB_CLASS" = "yes" ; then
5508     AC_DEFINE(wxUSE_DYNLIB_CLASS)
5509 fi
5510
5511
5512 dnl ---------------------------------------------------------------------------
5513 dnl Verify consistency of plugins/monolithic/shared settings:
5514 dnl ---------------------------------------------------------------------------
5515
5516 if test "$wxUSE_PLUGINS" = "yes" ; then
5517     if test "$wxUSE_SHARED" = "no" ; then
5518         AC_MSG_WARN([plugins supported only in shared build, disabling])
5519         wxUSE_PLUGINS=no
5520     fi
5521     if test "$wxUSE_MONOLITHIC" = "yes" ; then
5522         AC_MSG_WARN([plugins not supported monolithic build, disabling])
5523         wxUSE_PLUGINS=no
5524     fi
5525     if test "$wxUSE_DYNLIB_CLASS" = "no" ; then
5526         AC_MSG_WARN([plugins require wxDynamicLibrary, disabling])
5527         wxUSE_PLUGINS=no
5528     fi
5529     if test "$wxUSE_PLUGINS" = "yes" ; then
5530         AC_DEFINE(wxUSE_PLUGINS)
5531     fi
5532 fi
5533
5534 dnl ---------------------------------------------------------------------------
5535 dnl Register non-GUI class options for makefiles and setup.h
5536 dnl ---------------------------------------------------------------------------
5537
5538 if test "$wxUSE_STL" = "yes"; then
5539   AC_DEFINE(wxUSE_STL)
5540 fi
5541
5542 if test "$wxUSE_EXTENDED_RTTI" = "yes"; then
5543   AC_DEFINE(wxUSE_EXTENDED_RTTI)
5544 fi
5545
5546 if test "$wxUSE_APPLE_IEEE" = "yes"; then
5547   AC_DEFINE(wxUSE_APPLE_IEEE)
5548 fi
5549
5550 if test "$wxUSE_TIMER" = "yes"; then
5551   AC_DEFINE(wxUSE_TIMER)
5552 fi
5553
5554 dnl Unix implementation needs additional checks because audio support
5555 dnl comes in many favours:
5556 if test "$USE_UNIX" = "1" ; then
5557     dnl mmedia doesn't compile with wxMGL, remove this if this is ever fixed
5558     if test "$wxUSE_MGL" != 1; then
5559         dnl it's not enough to check for just the header because OSS under NetBSD
5560         dnl redefines ioctl as oss_ioctrl inside it and so we also need to test
5561         dnl whether we need -lossaudio at link-time
5562         AC_CACHE_CHECK([for SNDCTL_DSP_SPEED in sys/soundcard.h], ac_cv_header_sys_soundcard, [
5563             AC_TRY_LINK([
5564                     #include <sys/ioctl.h>
5565                     #include <sys/soundcard.h>
5566                 ],
5567                 [
5568                     ioctl(0, SNDCTL_DSP_SPEED, 0);
5569                 ],
5570                 ac_cv_header_sys_soundcard=yes,
5571                 [
5572                     saveLibs="$LIBS"
5573                     LIBS="$saveLibs -lossaudio"
5574                     AC_TRY_LINK([
5575                             #include <sys/ioctl.h>
5576                             #include <sys/soundcard.h>
5577                         ],
5578                         [
5579                             ioctl(0, SNDCTL_DSP_SPEED, 0);
5580                         ],
5581                         ac_cv_header_sys_soundcard=yes,
5582                         [
5583                             LIBS="$saveLibs"
5584                             ac_cv_header_sys_soundcard=no
5585                         ]
5586                     )
5587                 ]
5588             )
5589         ])
5590     fi
5591
5592     if test "$ac_cv_header_sys_soundcard" = "yes"; then
5593         AC_DEFINE(HAVE_SYS_SOUNDCARD_H)
5594     fi
5595 fi
5596
5597 WITH_PLUGIN_SDL=0
5598 if test "$wxUSE_SOUND" = "yes"; then
5599   if test "$USE_UNIX" = "1" ; then
5600     if test "$wxUSE_LIBSDL" != "no"; then
5601       AM_PATH_SDL([1.2.0],
5602                   [
5603                     EXTRALIBS_SDL="$SDL_LIBS"
5604                     CFLAGS="$SDL_CFLAGS $CFLAGS"
5605                     CXXFLAGS="$SDL_CFLAGS $CXXFLAGS"
5606                     AC_DEFINE(wxUSE_LIBSDL)
5607                   ],
5608                   [wxUSE_LIBSDL="no"])
5609       if test "$wxUSE_LIBSDL" = "yes" -a "$wxUSE_PLUGINS" = "yes" ; then
5610         WITH_PLUGIN_SDL=1
5611       fi
5612     fi
5613   else
5614     dnl wxMGL doesn't support sound under DOS, only under Unix
5615     if test "$wxUSE_MGL" = 1; then
5616         AC_MSG_WARN([wxSound not supported in MGL under DOS... disabled])
5617         wxUSE_SOUND="no"
5618     fi
5619   fi
5620 fi
5621
5622 if test "$wxUSE_SOUND" = "yes"; then
5623   AC_DEFINE(wxUSE_SOUND)
5624   SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS sound"
5625 fi
5626
5627 if test "$WXGTK20" = 1; then
5628     PKG_PROG_PKG_CONFIG()
5629
5630     if test "$wxUSE_PRINTING_ARCHITECTURE" = "yes" ; then
5631         if test "$wxUSE_LIBGNOMEPRINT" = "yes" ; then
5632
5633                 PKG_CHECK_MODULES(LIBGNOMEPRINTUI,
5634                                   [libgnomeprintui-2.2 >= 2.8],
5635                     [
5636                         CFLAGS="$LIBGNOMEPRINTUI_CFLAGS $CFLAGS"
5637                         CXXFLAGS="$LIBGNOMEPRINTUI_CFLAGS $CXXFLAGS"
5638                         AC_DEFINE(wxUSE_LIBGNOMEPRINT)
5639                     ],
5640                     [
5641                         AC_MSG_WARN([libgnomeprintui not found, library will use standard PostScript printing])
5642                         wxUSE_LIBGNOMEPRINT="no"
5643                     ]
5644                 )
5645         fi
5646     fi
5647
5648     if test "$wxUSE_MIMETYPE" = "yes" ; then
5649         if test "$wxUSE_LIBGNOMEVFS" = "yes" ; then
5650
5651                 PKG_CHECK_MODULES(GNOMEVFS,
5652                                   [gnome-vfs-2.0 >= 2.0],
5653                     [
5654                         CFLAGS="$GNOMEVFS_CFLAGS $CFLAGS"
5655                         CXXFLAGS="$GNOMEVFS_CFLAGS $CXXFLAGS"
5656                         AC_DEFINE(wxUSE_LIBGNOMEVFS)
5657                     ],
5658                     [
5659                         AC_MSG_WARN([libgnomevfs not found, library won't be able to associate MIME type])
5660                         wxUSE_LIBGNOMEVFS="no"
5661                     ]
5662                 )
5663         fi
5664     fi
5665
5666     if test "$wxUSE_LIBHILDON" = "yes" ; then
5667         PKG_CHECK_MODULES(HILDON,
5668                           [hildon-lgpl >= 0.9],
5669             [
5670                 EXTRALIBS_HILDON="$HILDON_LIBS"
5671                 CFLAGS="$CFLAGS $HILDON_CFLAGS"
5672                 CXXFLAGS="$CXXFLAGS $HILDON_CFLAGS"
5673                 AC_DEFINE(wxUSE_LIBHILDON)
5674             ],
5675             [
5676                 AC_MSG_WARN([libhildon_lgpl not found])
5677                         wxUSE_LIBHILDON="no"
5678             ]
5679         )
5680     fi
5681 fi
5682
5683 if test "$wxUSE_CMDLINE_PARSER" = "yes"; then
5684   AC_DEFINE(wxUSE_CMDLINE_PARSER)
5685 fi
5686
5687 if test "$wxUSE_STOPWATCH" = "yes"; then
5688   AC_DEFINE(wxUSE_STOPWATCH)
5689 fi
5690
5691 if test "$wxUSE_DATETIME" = "yes"; then
5692   AC_DEFINE(wxUSE_DATETIME)
5693 fi
5694
5695 if test "$wxUSE_FILE" = "yes"; then
5696   AC_DEFINE(wxUSE_FILE)
5697 fi
5698
5699 if test "$wxUSE_FFILE" = "yes"; then
5700   AC_DEFINE(wxUSE_FFILE)
5701 fi
5702
5703 if test "$wxUSE_ARCHIVE_STREAMS" = "yes"; then
5704   if test "$wxUSE_STREAMS" != yes; then
5705     AC_MSG_WARN(wxArchive requires wxStreams... disabled)
5706     wxUSE_ARCHIVE_STREAMS=no
5707   else
5708     AC_DEFINE(wxUSE_ARCHIVE_STREAMS)
5709   fi
5710 fi
5711
5712 if test "$wxUSE_ZIPSTREAM" = "yes"; then
5713   if test "$wxUSE_ARCHIVE_STREAMS" != "yes"; then
5714     AC_MSG_WARN(wxZip requires wxArchive... disabled)
5715   elif test "$wxUSE_ZLIB" = "no"; then
5716     AC_MSG_WARN(wxZip requires wxZlib... disabled)
5717   else
5718     AC_DEFINE(wxUSE_ZIPSTREAM)
5719   fi
5720 fi
5721
5722 if test "$wxUSE_TARSTREAM" = "yes"; then
5723   if test "$wxUSE_ARCHIVE_STREAMS" != "yes"; then
5724     AC_MSG_WARN(wxTar requires wxArchive... disabled)
5725   else
5726     AC_DEFINE(wxUSE_TARSTREAM)
5727   fi
5728 fi
5729
5730 if test "$wxUSE_FILESYSTEM" = "yes"; then
5731   if test "$wxUSE_STREAMS" != yes -o \( "$wxUSE_FILE" != yes -a "$wxUSE_FFILE" != yes \); then
5732     AC_MSG_WARN(wxFileSystem requires wxStreams and wxFile or wxFFile... disabled)
5733     wxUSE_FILESYSTEM=no
5734   else
5735     AC_DEFINE(wxUSE_FILESYSTEM)
5736   fi
5737 fi
5738
5739 if test "$wxUSE_FS_ARCHIVE" = "yes"; then
5740   if test "$wxUSE_FILESYSTEM" != yes -o "$wxUSE_ARCHIVE_STREAMS" != yes; then
5741     AC_MSG_WARN(wxArchiveFSHandler requires wxArchive and wxFileSystem... disabled)
5742   else
5743     AC_DEFINE(wxUSE_FS_ARCHIVE)
5744   fi
5745 fi
5746
5747 if test "$wxUSE_FS_ZIP" = "yes"; then
5748   if test "$wxUSE_FS_ARCHIVE" != yes; then
5749     AC_MSG_WARN(wxZipFSHandler requires wxArchiveFSHandler... disabled)
5750   else
5751     AC_DEFINE(wxUSE_FS_ZIP)
5752   fi
5753 fi
5754
5755 if test "$wxUSE_ON_FATAL_EXCEPTION" = "yes"; then
5756   if test "$USE_UNIX" != 1; then
5757     AC_MSG_WARN([Catching fatal exceptions not currently supported on this system, wxApp::OnFatalException will not be called])
5758     wxUSE_ON_FATAL_EXCEPTION=no
5759   else
5760     AC_DEFINE(wxUSE_ON_FATAL_EXCEPTION)
5761   fi
5762 fi
5763
5764 if test "$wxUSE_STACKWALKER" = "yes"; then
5765     AC_DEFINE(wxUSE_STACKWALKER)
5766 fi
5767
5768 if test "$wxUSE_DEBUGREPORT" = "yes"; then
5769     if test "$USE_UNIX" != "1" -a "$USE_WIN32" != "1"; then
5770         AC_MSG_WARN([Creating debug reports not currently supported on this system, disabled])
5771         wxUSE_DEBUGREPORT=no
5772     else
5773         AC_DEFINE(wxUSE_DEBUGREPORT)
5774         if test "$wxUSE_ON_FATAL_EXCEPTION" = "yes"; then
5775             SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS debugrpt"
5776         fi
5777     fi
5778 fi
5779
5780 if test "$wxUSE_SNGLINST_CHECKER" = "yes"; then
5781   AC_DEFINE(wxUSE_SNGLINST_CHECKER)
5782 fi
5783
5784 if test "$wxUSE_BUSYINFO" = "yes"; then
5785   AC_DEFINE(wxUSE_BUSYINFO)
5786 fi
5787
5788 if test "$wxUSE_STD_IOSTREAM" = "yes"; then
5789   AC_DEFINE(wxUSE_STD_IOSTREAM)
5790 fi
5791
5792 if test "$wxUSE_STD_STRING" = "yes"; then
5793   AC_DEFINE(wxUSE_STD_STRING)
5794 fi
5795
5796 if test "$wxUSE_STDPATHS" = "yes"; then
5797   AC_DEFINE(wxUSE_STDPATHS)
5798 fi
5799
5800 if test "$wxUSE_TEXTBUFFER" = "yes"; then
5801     AC_DEFINE(wxUSE_TEXTBUFFER)
5802 fi
5803
5804 if test "$wxUSE_TEXTFILE" = "yes"; then
5805   if test "$wxUSE_FILE" != "yes" -o "$wxUSE_TEXTBUFFER" != "yes" ; then
5806     AC_MSG_WARN(wxTextFile requires wxFile and wxTextBuffer... disabled)
5807   else
5808     AC_DEFINE(wxUSE_TEXTFILE)
5809   fi
5810 fi
5811
5812 if test "$wxUSE_CONFIG" = "yes" ; then
5813   if test "$wxUSE_TEXTFILE" != "yes"; then
5814     AC_MSG_WARN(wxConfig requires wxTextFile... disabled)
5815   else
5816     AC_DEFINE(wxUSE_CONFIG)
5817     AC_DEFINE(wxUSE_CONFIG_NATIVE)
5818     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS config"
5819   fi
5820 fi
5821
5822 if test "$wxUSE_INTL" = "yes" ; then
5823   if test "$wxUSE_FILE" != "yes"; then
5824     AC_MSG_WARN(I18n code requires wxFile... disabled)
5825   else
5826     AC_DEFINE(wxUSE_INTL)
5827     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS internat"
5828     GUIDIST="$GUIDIST INTL_DIST"
5829   fi
5830 fi
5831
5832 if test "$wxUSE_LOG" = "yes"; then
5833   AC_DEFINE(wxUSE_LOG)
5834
5835     if test "$wxUSE_LOGGUI" = "yes"; then
5836       AC_DEFINE(wxUSE_LOGGUI)
5837     fi
5838
5839     if test "$wxUSE_LOGWINDOW" = "yes"; then
5840       AC_DEFINE(wxUSE_LOGWINDOW)
5841     fi
5842
5843     if test "$wxUSE_LOGDIALOG" = "yes"; then
5844       AC_DEFINE(wxUSE_LOG_DIALOG)
5845     fi
5846
5847     dnl the keyboard sample requires wxUSE_LOG
5848     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS keyboard"
5849 fi
5850
5851 if test "$wxUSE_LONGLONG" = "yes"; then
5852   AC_DEFINE(wxUSE_LONGLONG)
5853 fi
5854
5855 if test "$wxUSE_GEOMETRY" = "yes"; then
5856   AC_DEFINE(wxUSE_GEOMETRY)
5857 fi
5858
5859 if test "$wxUSE_BASE64" = "yes"; then
5860   AC_DEFINE(wxUSE_BASE64)
5861 fi
5862
5863 if test "$wxUSE_STREAMS" = "yes" ; then
5864   AC_DEFINE(wxUSE_STREAMS)
5865 fi
5866
5867 if test "$wxUSE_PRINTF_POS_PARAMS" = "yes"; then
5868   AC_DEFINE(wxUSE_PRINTF_POS_PARAMS)
5869 fi
5870
5871 if test "$wxUSE_OBJC_UNIQUIFYING" = "yes"; then
5872   AC_DEFINE(wxUSE_OBJC_UNIQUIFYING)
5873 fi
5874
5875 dnl ---------------------------------------------------------------------------
5876 dnl console event loop stuff
5877 dnl ---------------------------------------------------------------------------
5878
5879 if test "$wxUSE_CONSOLE_EVENTLOOP" = "yes"; then
5880     AC_DEFINE(wxUSE_CONSOLE_EVENTLOOP)
5881
5882     if test "$wxUSE_UNIX" = "yes"; then
5883         if test "$wxUSE_SELECT_DISPATCHER" = "yes"; then
5884             AC_DEFINE(wxUSE_SELECT_DISPATCHER)
5885         fi
5886
5887         if test "$wxUSE_EPOLL_DISPATCHER" = "yes"; then
5888             AC_CHECK_HEADERS(sys/epoll.h,,, [AC_INCLUDES_DEFAULT()])
5889             if test "$ac_cv_header_sys_epoll_h" = "yes"; then
5890                 AC_DEFINE(wxUSE_EPOLL_DISPATCHER)
5891             else
5892                 AC_MSG_WARN([sys/epoll.h not available, wxEpollDispatcher disabled])
5893             fi
5894         fi
5895     fi
5896 fi
5897
5898 dnl ---------------------------------------------------------------------------
5899 dnl time/date functions
5900 dnl ---------------------------------------------------------------------------
5901
5902 dnl check for gettimeofday (SVr4, BSD 4.3) and ftime (V7, BSD 4.3) for the
5903 dnl function to be used for high resolution timers
5904 AC_CHECK_FUNCS(gettimeofday ftime, break)
5905
5906 if test "$ac_cv_func_gettimeofday" = "yes"; then
5907     AC_CACHE_CHECK([whether gettimeofday takes two arguments],
5908                    wx_cv_func_gettimeofday_has_2_args,
5909     [
5910         dnl on some _really_ old systems it takes only 1 argument
5911         AC_TRY_COMPILE(
5912             [
5913                 #include <sys/time.h>
5914                 #include <unistd.h>
5915             ],
5916             [
5917                 struct timeval tv;
5918                 gettimeofday(&tv, NULL);
5919             ],
5920             wx_cv_func_gettimeofday_has_2_args=yes,
5921             AC_TRY_COMPILE(
5922                 [
5923                     #include <sys/time.h>
5924                     #include <unistd.h>
5925                 ],
5926                 [
5927                     struct timeval tv;
5928                     gettimeofday(&tv);
5929                 ],
5930                 wx_cv_func_gettimeofday_has_2_args=no,
5931                 [
5932                     AC_MSG_WARN([failed to determine number of gettimeofday() arguments])
5933                     wx_cv_func_gettimeofday_has_2_args=unknown
5934                 ]
5935             )
5936         )
5937     ])
5938
5939     if test "$wx_cv_func_gettimeofday_has_2_args" != "yes"; then
5940         AC_DEFINE(WX_GETTIMEOFDAY_NO_TZ)
5941     fi
5942 fi
5943
5944 if test "$wxUSE_DATETIME" = "yes"; then
5945     dnl check for strptime and for its declaration as some systems lack it
5946     AC_CHECK_FUNC(strptime)
5947     if test "$ac_cv_func_strptime" = "yes"; then
5948         AC_CACHE_CHECK([for strptime declaration], wx_cv_func_strptime_decl,
5949             [
5950                 AC_LANG_PUSH(C++)
5951                 AC_TRY_COMPILE(
5952                     [
5953                         #include <time.h>
5954                     ],
5955                     [
5956                         struct tm t;
5957                         strptime("foo", "bar", &t);
5958                     ],
5959                     wx_cv_func_strptime_decl=yes,
5960                     wx_cv_func_strptime_decl=no
5961                 )
5962                 AC_LANG_POP()
5963             ]
5964         )
5965     fi
5966     if test "$wx_cv_func_strptime_decl" = "yes"; then
5967         AC_DEFINE(HAVE_STRPTIME_DECL)
5968     else
5969         wx_strptime_decl="extern char *strptime(const char *, const char *, struct tm *);"
5970     fi
5971     if test "$ac_cv_func_strptime" = "yes"; then
5972         dnl strptime() behaviour doesn't conform to POSIX under Mac OS X <
5973         dnl 10.5 and possibly other BSD variants, check that strptime() we
5974         dnl have fails to parse format when the string doesn't match it instea
5975         dnl of just stopping immediately and returning non-NULL
5976         AC_CACHE_CHECK([whether strptime() fails on invalid strings],
5977             wx_cv_func_strptime_ok,
5978             [AC_RUN_IFELSE(
5979                 [
5980                     #include <stdlib.h>
5981                     #include <time.h>
5982                     #include "confdefs.h"
5983
5984                     $wx_strptime_decl
5985
5986                     int main()
5987                     {
5988                         struct tm t;
5989                         return !!strptime("", "%x", &t);
5990                     }
5991                 ],
5992                 wx_cv_func_strptime_ok=yes,
5993                 wx_cv_func_strptime_ok=no,
5994                 dnl be pessimistic when cross-compiling
5995                 wx_cv_func_strptime_ok=no
5996             )]
5997         )
5998
5999         if test "$wx_cv_func_strptime_ok" = "yes"; then
6000             AC_DEFINE(HAVE_STRPTIME)
6001         fi
6002     fi
6003
6004     dnl check for timezone variable
6005     dnl   doesn't exist under Darwin / Mac OS X which uses tm_gmtoff instead
6006     AC_CACHE_CHECK(for timezone variable in <time.h>,
6007                    wx_cv_var_timezone,
6008                    [
6009                         AC_LANG_PUSH(C++)
6010                         AC_TRY_COMPILE(
6011                             [
6012                                 #include <time.h>
6013                             ],
6014                             [
6015                                 int tz;
6016                                 tz = timezone;
6017                             ],
6018                             [
6019                                 wx_cv_var_timezone=timezone
6020                             ],
6021                             [
6022                                 AC_TRY_COMPILE(
6023                                     [
6024                                         #include <time.h>
6025                                     ],
6026                                     [
6027                                         int tz;
6028                                         tz = _timezone;
6029                                     ],
6030                                     [
6031                                         wx_cv_var_timezone=_timezone
6032                                     ],
6033                                     [
6034                                         AC_TRY_COMPILE(
6035                                             [
6036                                                 #include <time.h>
6037                                             ],
6038                                             [
6039                                                 int tz;
6040                                                 tz = __timezone;
6041                                             ],
6042                                             [
6043                                                 wx_cv_var_timezone=__timezone
6044                                             ],
6045                                             [
6046                                                 if test "$USE_DOS" = 0 ; then
6047                                                     AC_MSG_WARN(no timezone variable, will use tm_gmtoff instead)
6048                                                 fi
6049                                             ]
6050                                         )
6051                                     ]
6052                                 )
6053                             ]
6054                         )
6055                         AC_LANG_POP()
6056                    ]
6057     )
6058
6059     dnl as we want $wx_cv_var_timezone to be expanded, use AC_DEFINE_UNQUOTED
6060     if test "x$wx_cv_var_timezone" != x ; then
6061         AC_DEFINE_UNQUOTED(WX_TIMEZONE, $wx_cv_var_timezone)
6062     fi
6063
6064     dnl check for localtime (it's POSIX, but the check can do no harm...)
6065     AC_CHECK_FUNCS(localtime)
6066
6067     if test "$ac_cv_func_localtime" = "yes"; then
6068         AC_CACHE_CHECK(for tm_gmtoff in struct tm,
6069                        wx_cv_struct_tm_has_gmtoff,
6070         [
6071             AC_TRY_COMPILE(
6072                 [
6073                     #include <time.h>
6074                 ],
6075                 [
6076                     struct tm tm;
6077                     tm.tm_gmtoff++;
6078                 ],
6079                 [
6080                     wx_cv_struct_tm_has_gmtoff=yes
6081                 ],
6082                 wx_cv_struct_tm_has_gmtoff=no
6083             )
6084         ])
6085     fi
6086
6087     if test "$wx_cv_struct_tm_has_gmtoff" = "yes"; then
6088         AC_DEFINE(WX_GMTOFF_IN_TM)
6089     fi
6090
6091     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS typetest"
6092 fi
6093
6094 dnl ------------------------------------------------------------------------
6095 dnl wxSocket
6096 dnl ------------------------------------------------------------------------
6097
6098 dnl VZ: the GUI hooks wxSocket needs are not implemented yet in some toolkits
6099 if test "$wxUSE_SOCKETS" = "yes"; then
6100     if test "$wxUSE_MGL" = "1"; then
6101         AC_MSG_WARN([wxSocket not yet supported under MGL... disabled])
6102         wxUSE_SOCKETS="no"
6103     fi
6104 fi
6105
6106 if test "$wxUSE_SOCKETS" = "yes"; then
6107     dnl under MSW we always have sockets
6108     if test "$TOOLKIT" != "MSW"; then
6109         dnl under Solaris and OS/2, socket functions live in -lsocket
6110         AC_CHECK_FUNC(socket,,
6111             [
6112                 AC_CHECK_LIB(socket, socket,
6113                     if test "$INET_LINK" != " -lsocket"; then
6114                         INET_LINK="$INET_LINK -lsocket"
6115                     fi,
6116                     [
6117                         AC_MSG_WARN([socket library not found - sockets will be disabled])
6118                         wxUSE_SOCKETS=no
6119                     ]
6120                 )
6121             ]
6122         )
6123     fi
6124 fi
6125
6126 if test "$wxUSE_SOCKETS" = "yes" ; then
6127     dnl this test may be appropriate if building under cygwin
6128     dnl right now I'm assuming it also uses the winsock stuff
6129     dnl like mingw does..  -- RL
6130     if test "$TOOLKIT" != "MSW"; then
6131         dnl determine the type of third argument for getsockname
6132         dnl This test needs to be done in C++ mode since gsocket.cpp now
6133         dnl is C++ code and pointer cast that are possible even without
6134         dnl warning in C still fail in C++.
6135         AC_CACHE_CHECK([what is the type of the third argument of getsockname],
6136                        wx_cv_type_getsockname3,
6137             [
6138                 AC_LANG_PUSH(C++)
6139                 AC_TRY_COMPILE(
6140                     [
6141                         #include <sys/types.h>
6142                         #include <sys/socket.h>
6143                     ],
6144                     [
6145                         socklen_t len;
6146                         getsockname(0, 0, &len);
6147                     ],
6148                     wx_cv_type_getsockname3=socklen_t,
6149                     [
6150                         dnl the compiler will compile the version with size_t
6151                         dnl even if the real type of the last parameter is int
6152                         dnl but it should give at least a warning about
6153                         dnl converting between incompatible pointer types, so
6154                         dnl try to use it to get the correct behaviour at
6155                         dnl least with gcc (otherwise we'd always use size_t)
6156                         CFLAGS_OLD="$CFLAGS"
6157                         if test "$GCC" = yes ; then
6158                             CFLAGS="-Werror $CFLAGS"
6159                         fi
6160
6161                         AC_TRY_COMPILE(
6162                             [
6163                                 #include <sys/types.h>
6164                                 #include <sys/socket.h>
6165                             ],
6166                             [
6167                                 size_t len;
6168                                 getsockname(0, 0, &len);
6169                             ],
6170                             wx_cv_type_getsockname3=size_t,
6171                             AC_TRY_COMPILE(
6172                                 [
6173                                     #include <sys/types.h>
6174                                     #include <sys/socket.h>
6175                                 ],
6176                                 [
6177                                     int len;
6178                                     getsockname(0, 0, &len);
6179                                 ],
6180                                 wx_cv_type_getsockname3=int,
6181                                 wx_cv_type_getsockname3=unknown
6182                             )
6183                         )
6184
6185                         CFLAGS="$CFLAGS_OLD"
6186                     ]
6187                 )
6188                 AC_LANG_POP()
6189             ])
6190
6191         if test "$wx_cv_type_getsockname3" = "unknown"; then
6192             wxUSE_SOCKETS=no
6193             AC_MSG_WARN([Couldn't find socklen_t synonym for this system])
6194         else
6195             AC_DEFINE_UNQUOTED(WX_SOCKLEN_T, $wx_cv_type_getsockname3)
6196         fi
6197         dnl Do this again for getsockopt as it may be different
6198         AC_CACHE_CHECK([what is the type of the fifth argument of getsockopt],
6199                        wx_cv_type_getsockopt5,
6200             [
6201                 dnl Note that the rules for compatibility of pointers
6202                 dnl are somewhat different between C and C++, so code
6203                 dnl that fails in C++ may not even give a warning about
6204                 dnl converting between incompatible pointer types in C.
6205                 dnl So this test needs to be done in C++ mode.
6206                 AC_LANG_PUSH(C++)
6207                 AC_TRY_COMPILE(
6208                     [
6209                         #include <sys/types.h>
6210                         #include <sys/socket.h>
6211                     ],
6212                     [
6213                         socklen_t len;
6214                         getsockopt(0, 0, 0, 0, &len);
6215                     ],
6216                     wx_cv_type_getsockopt5=socklen_t,
6217                     [
6218                         AC_TRY_COMPILE(
6219                             [
6220                                 #include <sys/types.h>
6221                                 #include <sys/socket.h>
6222                             ],
6223                             [
6224                                 size_t len;
6225                                 getsockopt(0, 0, 0, 0, &len);
6226                             ],
6227                             wx_cv_type_getsockopt5=size_t,
6228                             AC_TRY_COMPILE(
6229                                 [
6230                                     #include <sys/types.h>
6231                                     #include <sys/socket.h>
6232                                 ],
6233                                 [
6234                                     int len;
6235                                     getsockopt(0, 0, 0, 0, &len);
6236                                 ],
6237                                 wx_cv_type_getsockopt5=int,
6238                                 wx_cv_type_getsockopt5=unknown
6239                             )
6240                         )
6241                     ]
6242                 )
6243                 AC_LANG_POP()
6244             ])
6245
6246         if test "$wx_cv_type_getsockopt5" = "unknown"; then
6247             wxUSE_SOCKETS=no
6248             AC_MSG_WARN([Couldn't find socklen_t synonym for this system])
6249         else
6250             AC_DEFINE_UNQUOTED(SOCKOPTLEN_T, $wx_cv_type_getsockopt5)
6251         fi
6252     fi
6253 fi
6254
6255 if test "$wxUSE_SOCKETS" = "yes" ; then
6256     AC_DEFINE(wxUSE_SOCKETS)
6257     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS sockets"
6258 fi
6259
6260 if test "$wxUSE_PROTOCOL" = "yes"; then
6261     if test "$wxUSE_SOCKETS" != "yes"; then
6262         AC_MSG_WARN(Protocol classes require sockets... disabled)
6263         wxUSE_PROTOCOL=no
6264     fi
6265 fi
6266
6267 if test "$wxUSE_PROTOCOL" = "yes"; then
6268     AC_DEFINE(wxUSE_PROTOCOL)
6269
6270     if test "$wxUSE_PROTOCOL_HTTP" = "yes"; then
6271         AC_DEFINE(wxUSE_PROTOCOL_HTTP)
6272     fi
6273     if test "$wxUSE_PROTOCOL_FTP" = "yes"; then
6274         AC_DEFINE(wxUSE_PROTOCOL_FTP)
6275     fi
6276     if test "$wxUSE_PROTOCOL_FILE" = "yes"; then
6277         AC_DEFINE(wxUSE_PROTOCOL_FILE)
6278     fi
6279 else
6280     if test "$wxUSE_FS_INET" = "yes"; then
6281         AC_MSG_WARN([HTTP filesystem require protocol classes... disabled])
6282         wxUSE_FS_INET="no"
6283     fi
6284 fi
6285
6286 if test "$wxUSE_URL" = "yes"; then
6287     if test "$wxUSE_PROTOCOL" != "yes"; then
6288         AC_MSG_WARN(wxURL class requires wxProtocol... disabled)
6289         wxUSE_URL=no
6290     fi
6291     if test "$wxUSE_URL" = "yes"; then
6292         AC_DEFINE(wxUSE_URL)
6293     fi
6294 fi
6295
6296 if test "$wxUSE_VARIANT" = "yes"; then
6297     AC_DEFINE(wxUSE_VARIANT)
6298 fi
6299
6300 if test "$wxUSE_FS_INET" = "yes"; then
6301   AC_DEFINE(wxUSE_FS_INET)
6302 fi
6303
6304 dnl ---------------------------------------------------------------------------
6305 dnl Joystick support
6306 dnl ---------------------------------------------------------------------------
6307
6308 if test "$wxUSE_GUI" = "yes" -a "$wxUSE_JOYSTICK" = "yes"; then
6309     wxUSE_JOYSTICK=no
6310
6311     dnl under MSW we always have joystick support
6312     if test "$TOOLKIT" = "MSW"; then
6313         wxUSE_JOYSTICK=yes
6314
6315     dnl mac only available on darwin
6316     elif test "$TOOLKIT" = "MAC" -o "$TOOLKIT" = "COCOA"; then
6317         if test "$USE_DARWIN" = 1; then
6318             dnl check for a bug in the headers, some have bad setEventCallout
6319             AC_MSG_CHECKING([headers have declarations needed for joystick support])
6320             AC_LANG_PUSH(C++)
6321             AC_TRY_COMPILE( [ #include <IOKit/hid/IOHIDLib.h> ],
6322                             [ IOHIDQueueInterface *qi = NULL;
6323                               IOHIDCallbackFunction cb = NULL;
6324                               qi->setEventCallout(NULL, cb, NULL, NULL); ],
6325                             [ wxUSE_JOYSTICK=yes ]
6326                           )
6327             AC_LANG_POP()
6328             AC_MSG_RESULT($wxUSE_JOYSTICK)
6329         fi
6330
6331     dnl joystick support is only for Linux 2.1.x or greater
6332     else
6333         dnl wxJoystick not supported by wxMGL at all
6334         if test "$wxUSE_MGL" != "1"; then
6335             dnl notice the dummy includes argument: without it, AC_CHECK_HEADER
6336             dnl checks only whether the header can be preprocessed, not that it
6337             dnl can be compiled and in Linux 2.6.16 joystick.h is present but
6338             dnl can't be compiled because of an error and with the default
6339             dnl AC_CHECK_HEADER semantics we'd still detect it in this case and
6340             dnl build would fail later
6341             AC_CHECK_HEADERS([linux/joystick.h], [wxUSE_JOYSTICK=yes],, [AC_INCLUDES_DEFAULT()])
6342         fi
6343     fi
6344
6345     if test "$wxUSE_JOYSTICK" = "yes"; then
6346         AC_DEFINE(wxUSE_JOYSTICK)
6347         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS joytest"
6348     else
6349         AC_MSG_WARN(Joystick not supported by this system... disabled)
6350     fi
6351 fi
6352
6353
6354 dnl ---------------------------------------------------------------------------
6355 dnl String stuff
6356 dnl ---------------------------------------------------------------------------
6357
6358 if test "$wxUSE_FONTENUM" = "yes" ; then
6359   AC_DEFINE(wxUSE_FONTENUM)
6360 fi
6361
6362 if test "$wxUSE_FONTMAP" = "yes" ; then
6363   AC_DEFINE(wxUSE_FONTMAP)
6364 fi
6365
6366 if test "$wxUSE_UNICODE" = "yes" ; then
6367   AC_DEFINE(wxUSE_UNICODE)
6368
6369   if test "$USE_WIN32" != 1; then
6370       wxUSE_UNICODE_MSLU=no
6371   fi
6372
6373   if test "$USE_WIN32" = 1 -a "$wxUSE_UNICODE_MSLU" = "yes"; then
6374         AC_CHECK_LIB(unicows,main,
6375             [
6376                 AC_DEFINE(wxUSE_UNICODE_MSLU)
6377             ],
6378             [
6379                 AC_MSG_WARN([Compiler doesn't support MSLU (libunicows.a), disabled.
6380                              Applications will only run on Windows NT/2000/XP!])
6381                 wxUSE_UNICODE_MSLU=no
6382             ])
6383     fi
6384 fi
6385
6386 if test "$wxUSE_UNICODE" = "yes" -a "$wxUSE_UNICODE_UTF8" = "yes"; then
6387     AC_DEFINE(wxUSE_UNICODE_UTF8)
6388
6389     if test "$wxUSE_UNICODE_UTF8_LOCALE" = "yes"; then
6390         AC_DEFINE(wxUSE_UTF8_LOCALE_ONLY)
6391     fi
6392 fi
6393
6394 dnl ---------------------------------------------------------------------------
6395 dnl big GUI components: MDI, doc/view, printing, help, ...
6396 dnl ---------------------------------------------------------------------------
6397
6398 if test "$wxUSE_CONSTRAINTS" = "yes"; then
6399     AC_DEFINE(wxUSE_CONSTRAINTS)
6400     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS layout"
6401 fi
6402
6403 if test "$wxUSE_MDI" = "yes"; then
6404     AC_DEFINE(wxUSE_MDI)
6405
6406     if test "$wxUSE_MDI_ARCHITECTURE" = "yes"; then
6407         AC_DEFINE(wxUSE_MDI_ARCHITECTURE)
6408         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS mdi"
6409     fi
6410 fi
6411
6412 if test "$wxUSE_DOC_VIEW_ARCHITECTURE" = "yes" ; then
6413     AC_DEFINE(wxUSE_DOC_VIEW_ARCHITECTURE)
6414     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS docview"
6415     if test "$wxUSE_MDI_ARCHITECTURE" = "yes"; then
6416         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS docvwmdi"
6417     fi
6418 fi
6419
6420 if test "$wxUSE_HELP" = "yes"; then
6421     AC_DEFINE(wxUSE_HELP)
6422     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS help"
6423
6424     if test "$wxUSE_MSW" = 1; then
6425       if test "$wxUSE_MS_HTML_HELP" = "yes"; then
6426         AC_DEFINE(wxUSE_MS_HTML_HELP)
6427       fi
6428     fi
6429
6430     if test "$wxUSE_WXHTML_HELP" = "yes"; then
6431       if test "$wxUSE_HTML" = "yes"; then
6432         AC_DEFINE(wxUSE_WXHTML_HELP)
6433       else
6434         AC_MSG_WARN(Cannot use wxHTML-based help without wxHTML so it won't be compiled)
6435         wxUSE_WXHTML_HELP=no
6436       fi
6437     fi
6438 fi
6439
6440 if test "$wxUSE_PRINTING_ARCHITECTURE" = "yes" ; then
6441     if test "$wxUSE_CONSTRAINTS" != "yes"; then
6442         AC_MSG_WARN(Printing support cannot be used without constraints so it won't be compiled without it)
6443     else
6444         AC_DEFINE(wxUSE_PRINTING_ARCHITECTURE)
6445     fi
6446     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS printing"
6447 fi
6448
6449 if test "$wxUSE_POSTSCRIPT" = "yes" ; then
6450   AC_DEFINE(wxUSE_POSTSCRIPT)
6451 fi
6452
6453 AC_DEFINE(wxUSE_AFM_FOR_POSTSCRIPT)
6454
6455 if test "$wxUSE_SVG" = "yes"; then
6456     AC_DEFINE(wxUSE_SVG)
6457 fi
6458
6459 dnl ---------------------------------------------------------------------------
6460 dnl wxMetafile availability
6461 dnl ---------------------------------------------------------------------------
6462
6463 if test "$wxUSE_METAFILE" = "yes"; then
6464     if test "$wxUSE_MSW" != 1 -a "$wxUSE_MAC" != 1 -a "$wxUSE_PM" != 1; then
6465         AC_MSG_WARN([wxMetafile is not available on this system... disabled])
6466         wxUSE_METAFILE=no
6467     fi
6468 fi
6469
6470 dnl ---------------------------------------------------------------------------
6471 dnl IPC: IPC, Drag'n'Drop, Clipboard, ...
6472 dnl ---------------------------------------------------------------------------
6473
6474 dnl check for ole headers and disable a few features requiring it if not
6475 dnl present (earlier versions of mingw32 don't have ole2.h)
6476 if test "$USE_WIN32" = 1 -a \( "$wxUSE_DATAOBJ"       = "yes" \
6477                           -o "$wxUSE_CLIPBOARD"     = "yes" \
6478                           -o "$wxUSE_OLE"     = "yes" \
6479                           -o "$wxUSE_DRAG_AND_DROP" = "yes" \) ; then
6480     AC_CHECK_HEADER(ole2.h,,, [ ])
6481
6482     if test "$ac_cv_header_ole2_h" = "yes" ; then
6483         if test "$GCC" = yes ; then
6484             AC_MSG_CHECKING([if g++ requires -fvtable-thunks])
6485             AC_TRY_COMPILE([#include <windows.h>
6486                             #include <ole2.h>],
6487                            [],
6488                            [AC_MSG_RESULT(no)],
6489                            [AC_MSG_RESULT(yes)
6490                             WXCONFIG_CXXFLAGS="$WXCONFIG_CXXFLAGS -fvtable-thunks"])
6491             LIBS=" -lrpcrt4 -loleaut32 -lole32 -luuid$LIBS"
6492             if test "$wxUSE_OLE" = "yes" ; then
6493                 AC_DEFINE(wxUSE_OLE)
6494                 AC_DEFINE(wxUSE_OLE_AUTOMATION)
6495                 AC_DEFINE(wxUSE_ACTIVEX)
6496                 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS oleauto"
6497             fi
6498         fi
6499
6500         dnl for OLE clipboard and dnd
6501         if test "$wxUSE_DATAOBJ" = "yes" ; then
6502             AC_DEFINE(wxUSE_DATAOBJ)
6503         fi
6504     else
6505         AC_MSG_WARN([Some features disabled because OLE headers not found])
6506
6507         wxUSE_CLIPBOARD=no
6508         wxUSE_DRAG_AND_DROP=no
6509         wxUSE_DATAOBJ=no
6510         wxUSE_OLE=no
6511     fi
6512
6513     if test "$wxUSE_METAFILE" = "yes"; then
6514         AC_DEFINE(wxUSE_METAFILE)
6515
6516         dnl this one should probably be made separately configurable
6517         AC_DEFINE(wxUSE_ENH_METAFILE)
6518     fi
6519 fi
6520
6521 if test "$wxUSE_IPC" = "yes"; then
6522     if test "$wxUSE_SOCKETS" != "yes" -a "$USE_WIN32" != 1; then
6523         AC_MSG_WARN(wxWidgets IPC classes require sockets... disabled)
6524         wxUSE_IPC=no
6525     fi
6526
6527     if test "$wxUSE_IPC" = "yes"; then
6528         AC_DEFINE(wxUSE_IPC)
6529         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS ipc"
6530     fi
6531 fi
6532
6533 if test "$wxUSE_DATAOBJ" = "yes"; then
6534     if test "$wxUSE_MGL" = 1 -o "$wxUSE_DFB" = 1; then
6535         AC_MSG_WARN([wxDataObject not yet supported under $TOOLKIT... disabled])
6536         wxUSE_DATAOBJ=no
6537     else
6538         AC_DEFINE(wxUSE_DATAOBJ)
6539     fi
6540 else
6541     AC_MSG_WARN([Clipboard and drag-and-drop require wxDataObject -- disabled])
6542     wxUSE_CLIPBOARD=no
6543     wxUSE_DRAG_AND_DROP=no
6544 fi
6545
6546 if test "$wxUSE_CLIPBOARD" = "yes"; then
6547     if test "$wxUSE_MGL" = 1 -o "$wxUSE_DFB" = 1; then
6548         AC_MSG_WARN([Clipboard not yet supported under $TOOLKIT... disabled])
6549         wxUSE_CLIPBOARD=no
6550     fi
6551
6552     if test "$wxUSE_CLIPBOARD" = "yes"; then
6553         AC_DEFINE(wxUSE_CLIPBOARD)
6554     fi
6555 fi
6556
6557 if test "$wxUSE_DRAG_AND_DROP" = "yes" ; then
6558     if test "$wxUSE_GTK" = 1; then
6559         if test "$WXGTK12" != 1; then
6560             AC_MSG_WARN([Drag and drop is only supported under GTK+ 1.2... disabled])
6561             wxUSE_DRAG_AND_DROP=no
6562         fi
6563     fi
6564
6565     if test "$wxUSE_MOTIF" = 1 -o "$wxUSE_X11" = 1 -o "$wxUSE_MGL" = 1 -o \
6566             "$wxUSE_DFB" = 1; then
6567         AC_MSG_WARN([Drag and drop not yet supported under $TOOLKIT... disabled])
6568         wxUSE_DRAG_AND_DROP=no
6569     fi
6570
6571     if test "$wxUSE_DRAG_AND_DROP" = "yes"; then
6572         AC_DEFINE(wxUSE_DRAG_AND_DROP)
6573     fi
6574
6575 fi
6576
6577 if test "$wxUSE_DRAG_AND_DROP" = "yes" -o "$wxUSE_CLIPBOARD" = "yes"; then
6578     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS dnd"
6579 fi
6580
6581 if test "$wxUSE_SPLINES" = "yes" ; then
6582   AC_DEFINE(wxUSE_SPLINES)
6583 fi
6584
6585 if test "$wxUSE_MOUSEWHEEL" = "yes" ; then
6586   AC_DEFINE(wxUSE_MOUSEWHEEL)
6587 fi
6588
6589 dnl ---------------------------------------------------------------------------
6590 dnl GUI controls
6591 dnl ---------------------------------------------------------------------------
6592
6593 USES_CONTROLS=0
6594 if test "$wxUSE_CONTROLS" = "yes"; then
6595   USES_CONTROLS=1
6596 fi
6597
6598 if test "$wxUSE_ACCEL" = "yes"; then
6599   AC_DEFINE(wxUSE_ACCEL)
6600   USES_CONTROLS=1
6601 fi
6602
6603 if test "$wxUSE_ANIMATIONCTRL" = "yes"; then
6604   AC_DEFINE(wxUSE_ANIMATIONCTRL)
6605   USES_CONTROLS=1
6606   SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS animate"
6607 fi
6608
6609 if test "$wxUSE_BUTTON" = "yes"; then
6610   AC_DEFINE(wxUSE_BUTTON)
6611   USES_CONTROLS=1
6612 fi
6613
6614 if test "$wxUSE_BMPBUTTON" = "yes"; then
6615   AC_DEFINE(wxUSE_BMPBUTTON)
6616   USES_CONTROLS=1
6617 fi
6618
6619 if test "$wxUSE_CALCTRL" = "yes"; then
6620   AC_DEFINE(wxUSE_CALENDARCTRL)
6621   USES_CONTROLS=1
6622   SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS calendar"
6623 fi
6624
6625 if test "$wxUSE_CARET" = "yes"; then
6626   AC_DEFINE(wxUSE_CARET)
6627   USES_CONTROLS=1
6628   SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS caret"
6629 fi
6630
6631 if test "$wxUSE_COLLPANE" = "yes"; then
6632     AC_DEFINE(wxUSE_COLLPANE)
6633     USES_CONTROLS=1
6634     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS collpane"
6635 fi
6636
6637 if test "$wxUSE_COMBOBOX" = "yes"; then
6638   AC_DEFINE(wxUSE_COMBOBOX)
6639   USES_CONTROLS=1
6640 fi
6641
6642 if test "$wxUSE_COMBOCTRL" = "yes"; then
6643   AC_DEFINE(wxUSE_COMBOCTRL)
6644   USES_CONTROLS=1
6645 fi
6646
6647 if test "$wxUSE_CHOICE" = "yes"; then
6648   AC_DEFINE(wxUSE_CHOICE)
6649   USES_CONTROLS=1
6650 fi
6651
6652 if test "$wxUSE_CHOICEBOOK" = "yes"; then
6653     AC_DEFINE(wxUSE_CHOICEBOOK)
6654     USES_CONTROLS=1
6655 fi
6656
6657 if test "$wxUSE_CHECKBOX" = "yes"; then
6658   AC_DEFINE(wxUSE_CHECKBOX)
6659   USES_CONTROLS=1
6660 fi
6661
6662 if test "$wxUSE_CHECKLST" = "yes"; then
6663   AC_DEFINE(wxUSE_CHECKLISTBOX)
6664   USES_CONTROLS=1
6665 fi
6666
6667 if test "$wxUSE_COLOURPICKERCTRL" = "yes"; then
6668   AC_DEFINE(wxUSE_COLOURPICKERCTRL)
6669   USES_CONTROLS=1
6670 fi
6671
6672 if test "$wxUSE_DATEPICKCTRL" = "yes"; then
6673   AC_DEFINE(wxUSE_DATEPICKCTRL)
6674   USES_CONTROLS=1
6675 fi
6676
6677 if test "$wxUSE_DIRPICKERCTRL" = "yes"; then
6678   AC_DEFINE(wxUSE_DIRPICKERCTRL)
6679   USES_CONTROLS=1
6680 fi
6681
6682 if test "$wxUSE_FILEPICKERCTRL" = "yes"; then
6683   AC_DEFINE(wxUSE_FILEPICKERCTRL)
6684   USES_CONTROLS=1
6685 fi
6686
6687 if test "$wxUSE_FONTPICKERCTRL" = "yes"; then
6688   AC_DEFINE(wxUSE_FONTPICKERCTRL)
6689   USES_CONTROLS=1
6690 fi
6691
6692 if test "$wxUSE_DISPLAY" = "yes"; then
6693     if test "$wxUSE_DFB" = 1 -o "$wxUSE_MGL" = 1; then
6694         AC_MSG_WARN([wxDisplay not yet supported under $TOOLKIT... disabled])
6695         wxUSE_DISPLAY=no
6696     else
6697         AC_DEFINE(wxUSE_DISPLAY)
6698         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS display"
6699     fi
6700 fi
6701
6702 if test "$wxUSE_DETECT_SM" = "yes"; then
6703     AC_DEFINE(wxUSE_DETECT_SM)
6704 fi
6705
6706 if test "$wxUSE_GAUGE" = "yes"; then
6707   AC_DEFINE(wxUSE_GAUGE)
6708   USES_CONTROLS=1
6709 fi
6710
6711 if test "$wxUSE_GRID" = "yes"; then
6712   AC_DEFINE(wxUSE_GRID)
6713   USES_CONTROLS=1
6714   SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS grid"
6715 fi
6716
6717 if test "$wxUSE_HYPERLINKCTRL" = "yes"; then
6718   AC_DEFINE(wxUSE_HYPERLINKCTRL)
6719   USES_CONTROLS=1
6720 fi
6721
6722 if test "$wxUSE_BITMAPCOMBOBOX" = "yes"; then
6723   AC_DEFINE(wxUSE_BITMAPCOMBOBOX)
6724   USES_CONTROLS=1
6725 fi
6726
6727 if test "$wxUSE_DATAVIEWCTRL" = "yes"; then
6728   AC_DEFINE(wxUSE_DATAVIEWCTRL)
6729   USES_CONTROLS=1
6730   SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS dataview"
6731 fi
6732
6733 if test "$wxUSE_IMAGLIST" = "yes"; then
6734     AC_DEFINE(wxUSE_IMAGLIST)
6735 fi
6736
6737 if test "$wxUSE_LISTBOOK" = "yes"; then
6738     AC_DEFINE(wxUSE_LISTBOOK)
6739     USES_CONTROLS=1
6740 fi
6741
6742 if test "$wxUSE_LISTBOX" = "yes"; then
6743     AC_DEFINE(wxUSE_LISTBOX)
6744     USES_CONTROLS=1
6745 fi
6746
6747 if test "$wxUSE_LISTCTRL" = "yes"; then
6748     if test "$wxUSE_IMAGLIST" = "yes"; then
6749         AC_DEFINE(wxUSE_LISTCTRL)
6750         USES_CONTROLS=1
6751         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS listctrl"
6752     else
6753         AC_MSG_WARN([wxListCtrl requires wxImageList and won't be compiled without it])
6754     fi
6755 fi
6756
6757 if test "$wxUSE_EDITABLELISTBOX" = "yes"; then
6758     AC_DEFINE(wxUSE_EDITABLELISTBOX)
6759     USES_CONTROLS=1
6760     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS editlbox"
6761 fi
6762
6763 if test "$wxUSE_NOTEBOOK" = "yes"; then
6764     AC_DEFINE(wxUSE_NOTEBOOK)
6765     USES_CONTROLS=1
6766     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS notebook"
6767 fi
6768
6769 if test "$wxUSE_ODCOMBOBOX" = "yes"; then
6770   AC_DEFINE(wxUSE_ODCOMBOBOX)
6771   USES_CONTROLS=1
6772   SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS combo"
6773 fi
6774
6775 if test "$wxUSE_RADIOBOX" = "yes"; then
6776     AC_DEFINE(wxUSE_RADIOBOX)
6777     USES_CONTROLS=1
6778 fi
6779
6780 if test "$wxUSE_RADIOBTN" = "yes"; then
6781     AC_DEFINE(wxUSE_RADIOBTN)
6782     USES_CONTROLS=1
6783 fi
6784
6785 if test "$wxUSE_SASH" = "yes"; then
6786     AC_DEFINE(wxUSE_SASH)
6787     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS sashtest"
6788 fi
6789
6790 if test "$wxUSE_SCROLLBAR" = "yes"; then
6791     AC_DEFINE(wxUSE_SCROLLBAR)
6792     USES_CONTROLS=1
6793     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS scroll scrollsub"
6794 fi
6795
6796 if test "$wxUSE_SEARCHCTRL" = "yes"; then
6797     AC_DEFINE(wxUSE_SEARCHCTRL)
6798     USES_CONTROLS=1
6799 fi
6800
6801 if test "$wxUSE_SLIDER" = "yes"; then
6802     AC_DEFINE(wxUSE_SLIDER)
6803     USES_CONTROLS=1
6804 fi
6805
6806 if test "$wxUSE_SPINBTN" = "yes"; then
6807     AC_DEFINE(wxUSE_SPINBTN)
6808     USES_CONTROLS=1
6809 fi
6810
6811 if test "$wxUSE_SPINCTRL" = "yes"; then
6812     AC_DEFINE(wxUSE_SPINCTRL)
6813     USES_CONTROLS=1
6814 fi
6815
6816 if test "$wxUSE_SPLITTER" = "yes"; then
6817     AC_DEFINE(wxUSE_SPLITTER)
6818     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS splitter"
6819 fi
6820
6821 if test "$wxUSE_STATBMP" = "yes"; then
6822     AC_DEFINE(wxUSE_STATBMP)
6823     USES_CONTROLS=1
6824 fi
6825
6826 if test "$wxUSE_STATBOX" = "yes"; then
6827     AC_DEFINE(wxUSE_STATBOX)
6828     USES_CONTROLS=1
6829 fi
6830
6831 if test "$wxUSE_STATTEXT" = "yes"; then
6832     AC_DEFINE(wxUSE_STATTEXT)
6833     USES_CONTROLS=1
6834 fi
6835
6836 if test "$wxUSE_STATLINE" = "yes"; then
6837     AC_DEFINE(wxUSE_STATLINE)
6838     USES_CONTROLS=1
6839 fi
6840
6841 if test "$wxUSE_STATUSBAR" = "yes"; then
6842     dnl this will get undefined in wx/chkconf.h if it's not supported
6843     AC_DEFINE(wxUSE_NATIVE_STATUSBAR)
6844     AC_DEFINE(wxUSE_STATUSBAR)
6845     USES_CONTROLS=1
6846
6847     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS statbar"
6848 fi
6849
6850 if test "$wxUSE_TAB_DIALOG" = "yes"; then
6851     AC_DEFINE(wxUSE_TAB_DIALOG)
6852 fi
6853
6854 if test "$wxUSE_TEXTCTRL" = "yes"; then
6855     AC_DEFINE(wxUSE_TEXTCTRL)
6856     USES_CONTROLS=1
6857     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS text"
6858 fi
6859
6860 if test "$wxUSE_TOGGLEBTN" = "yes"; then
6861     if test "$wxUSE_COCOA" = 1 ; then
6862         AC_MSG_WARN([Toggle button not yet supported under Mac OS X... disabled])
6863         wxUSE_TOGGLEBTN=no
6864     fi
6865
6866     if test "$wxUSE_TOGGLEBTN" = "yes"; then
6867         AC_DEFINE(wxUSE_TOGGLEBTN)
6868         USES_CONTROLS=1
6869     fi
6870 fi
6871
6872 if test "$wxUSE_TOOLBAR" = "yes"; then
6873     AC_DEFINE(wxUSE_TOOLBAR)
6874     USES_CONTROLS=1
6875
6876     if test "$wxUSE_UNIVERSAL" = "yes"; then
6877         wxUSE_TOOLBAR_NATIVE="no"
6878     else
6879         wxUSE_TOOLBAR_NATIVE="yes"
6880         AC_DEFINE(wxUSE_TOOLBAR_NATIVE)
6881     fi
6882
6883     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS toolbar"
6884 fi
6885
6886 if test "$wxUSE_TOOLTIPS" = "yes"; then
6887     if test "$wxUSE_MOTIF" = 1; then
6888         AC_MSG_WARN([wxTooltip not supported yet under Motif... disabled])
6889     else
6890         if test "$wxUSE_UNIVERSAL" = "yes"; then
6891             AC_MSG_WARN([wxTooltip not supported yet in wxUniversal... disabled])
6892         else
6893             AC_DEFINE(wxUSE_TOOLTIPS)
6894         fi
6895     fi
6896 fi
6897
6898 if test "$wxUSE_TREEBOOK" = "yes"; then
6899     AC_DEFINE(wxUSE_TREEBOOK)
6900     USES_CONTROLS=1
6901 fi
6902
6903 if test "$wxUSE_TOOLBOOK" = "yes"; then
6904     AC_DEFINE(wxUSE_TOOLBOOK)
6905     USES_CONTROLS=1
6906 fi
6907
6908 if test "$wxUSE_TREECTRL" = "yes"; then
6909     if test "$wxUSE_IMAGLIST" = "yes"; then
6910         AC_DEFINE(wxUSE_TREECTRL)
6911         USES_CONTROLS=1
6912         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS treectrl"
6913     else
6914         AC_MSG_WARN([wxTreeCtrl requires wxImageList and won't be compiled without it])
6915     fi
6916 fi
6917
6918 if test "$wxUSE_POPUPWIN" = "yes"; then
6919     if test "$wxUSE_MAC" = 1 -o "$wxUSE_COCOA" = 1 ; then
6920         AC_MSG_WARN([Popup window not yet supported under Mac OS X... disabled])
6921     else
6922         if test "$wxUSE_PM" = 1; then
6923             AC_MSG_WARN([wxPopupWindow not yet supported under PM... disabled])
6924         else
6925             AC_DEFINE(wxUSE_POPUPWIN)
6926             SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS popup"
6927
6928             USES_CONTROLS=1
6929         fi
6930     fi
6931 fi
6932
6933 if test "$wxUSE_DIALUP_MANAGER" = "yes"; then
6934     if test "$wxUSE_MAC" = 1 -o "$wxUSE_COCOA" = 1 -o "$wxUSE_MGL" = 1; then
6935         AC_MSG_WARN([Dialup manager not supported on this platform... disabled])
6936     else
6937         AC_DEFINE(wxUSE_DIALUP_MANAGER)
6938         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS dialup"
6939     fi
6940 fi
6941
6942 if test "$wxUSE_TIPWINDOW" = "yes"; then
6943     if test "$wxUSE_PM" = 1; then
6944         AC_MSG_WARN([wxTipWindow not yet supported under PM... disabled])
6945     else
6946         AC_DEFINE(wxUSE_TIPWINDOW)
6947     fi
6948 fi
6949
6950 if test "$USES_CONTROLS" = 1; then
6951     AC_DEFINE(wxUSE_CONTROLS)
6952 fi
6953
6954 dnl ---------------------------------------------------------------------------
6955 dnl misc options
6956 dnl ---------------------------------------------------------------------------
6957
6958 dnl please keep the settings below in alphabetical order
6959 if test "$wxUSE_ACCESSIBILITY" = "yes"; then
6960     AC_DEFINE(wxUSE_ACCESSIBILITY)
6961     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS access"
6962 fi
6963
6964 if test "$wxUSE_DRAGIMAGE" = "yes"; then
6965     AC_DEFINE(wxUSE_DRAGIMAGE)
6966     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS dragimag"
6967 fi
6968
6969 if test "$wxUSE_EXCEPTIONS" = "yes"; then
6970     if test "$wxUSE_NO_EXCEPTIONS" = "yes" ; then
6971         AC_MSG_WARN([--enable-exceptions can't be used with --enable-no_exceptions])
6972     else
6973         AC_DEFINE(wxUSE_EXCEPTIONS)
6974         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS except"
6975     fi
6976 fi
6977
6978 USE_HTML=0
6979 if test "$wxUSE_HTML" = "yes"; then
6980     AC_DEFINE(wxUSE_HTML)
6981     USE_HTML=1
6982     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS html html/about html/help html/helpview html/printing html/test html/virtual html/widget html/zip htlbox"
6983     if test "$wxUSE_MAC" = 1; then
6984         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS html/htmlctrl"
6985     fi
6986 fi
6987 if test "$wxUSE_WEBKIT" = "yes"; then
6988     if test "$wxUSE_MAC" = 1 -a "$USE_DARWIN" = 1; then
6989         old_CPPFLAGS="$CPPFLAGS"
6990         CPPFLAGS="-x objective-c++ $CPPFLAGS"
6991         AC_CHECK_HEADER([WebKit/HIWebView.h],
6992                         [
6993                            AC_DEFINE(wxUSE_WEBKIT)
6994                            WEBKIT_LINK="-framework WebKit"
6995                         ],
6996                         [
6997                            AC_MSG_WARN([WebKit headers not found; disabling wxWebKit])
6998                            wxUSE_WEBKIT=no
6999                         ],
7000                         [
7001                            #include <Carbon/Carbon.h>
7002                            #include <WebKit/WebKit.h>
7003                         ])
7004         CPPFLAGS="$old_CPPFLAGS"
7005     elif test "$wxUSE_COCOA" = 1; then
7006         AC_DEFINE(wxUSE_WEBKIT)
7007     else
7008         wxUSE_WEBKIT=no
7009     fi
7010 fi
7011
7012 USE_XRC=0
7013 if test "$wxUSE_XRC" = "yes"; then
7014     if test "$wxUSE_XML" != "yes"; then
7015         AC_MSG_WARN([XML library not built, XRC resources disabled])
7016         wxUSE_XRC=no
7017     else
7018         AC_DEFINE(wxUSE_XRC)
7019         USE_XRC=1
7020         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS xrc"
7021     fi
7022 fi
7023
7024 USE_AUI=0
7025 if test "$wxUSE_AUI" = "yes"; then
7026    AC_DEFINE(wxUSE_AUI)
7027    USE_AUI=1
7028    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS aui"
7029 fi
7030
7031 USE_STC=0
7032 if test "$wxUSE_STC" = "yes"; then
7033    AC_DEFINE(wxUSE_STC)
7034    USE_STC=1
7035    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS stc"
7036 fi
7037
7038 if test "$wxUSE_MENUS" = "yes"; then
7039     AC_DEFINE(wxUSE_MENUS)
7040     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS menu"
7041 fi
7042
7043 if test "$wxUSE_METAFILE" = "yes"; then
7044     AC_DEFINE(wxUSE_METAFILE)
7045 fi
7046
7047 if test "$wxUSE_MIMETYPE" = "yes"; then
7048     AC_DEFINE(wxUSE_MIMETYPE)
7049 fi
7050
7051 if test "$wxUSE_MINIFRAME" = "yes"; then
7052     AC_DEFINE(wxUSE_MINIFRAME)
7053 fi
7054
7055 if test "$wxUSE_SYSTEM_OPTIONS" = "yes"; then
7056     AC_DEFINE(wxUSE_SYSTEM_OPTIONS)
7057 fi
7058
7059 if test "$wxUSE_TASKBARICON" = "yes"; then
7060     AC_DEFINE(wxUSE_TASKBARICON)
7061     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS taskbar"
7062 fi
7063
7064
7065 if test "$wxUSE_VALIDATORS" = "yes"; then
7066     AC_DEFINE(wxUSE_VALIDATORS)
7067     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS validate"
7068 fi
7069
7070 if test "$wxUSE_PALETTE" = "yes" ; then
7071     if test "$wxUSE_DFB" = 1; then
7072         AC_MSG_WARN([wxPalette not yet supported under DFB... disabled])
7073         wxUSE_PALETTE=no
7074     else
7075         AC_DEFINE(wxUSE_PALETTE)
7076     fi
7077 fi
7078
7079 if test "$wxUSE_UNICODE" = "yes" -a "$wxUSE_UNICODE_MSLU" = "yes" ; then
7080   dnl Must be done this late because -lunicows must be before all the other libs
7081   LIBS=" -lunicows $LIBS"
7082 fi
7083
7084 USE_RICHTEXT=0
7085 if test "$wxUSE_RICHTEXT" = "yes"; then
7086     AC_DEFINE(wxUSE_RICHTEXT)
7087     USE_RICHTEXT=1
7088     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS richtext"
7089 fi
7090
7091 dnl ---------------------------------------------------------------------------
7092 dnl wxImage options
7093 dnl ---------------------------------------------------------------------------
7094
7095 if test "$wxUSE_IMAGE" = "yes" ; then
7096     AC_DEFINE(wxUSE_IMAGE)
7097
7098     if test "$wxUSE_GIF" = "yes" ; then
7099       AC_DEFINE(wxUSE_GIF)
7100     fi
7101
7102     if test "$wxUSE_PCX" = "yes" ; then
7103       AC_DEFINE(wxUSE_PCX)
7104     fi
7105
7106     if test "$wxUSE_TGA" = "yes" ; then
7107       AC_DEFINE(wxUSE_TGA)
7108     fi
7109
7110     if test "$wxUSE_IFF" = "yes" ; then
7111       AC_DEFINE(wxUSE_IFF)
7112     fi
7113
7114     if test "$wxUSE_PNM" = "yes" ; then
7115       AC_DEFINE(wxUSE_PNM)
7116     fi
7117
7118     if test "$wxUSE_XPM" = "yes" ; then
7119       AC_DEFINE(wxUSE_XPM)
7120     fi
7121
7122     if test "$wxUSE_ICO_CUR" = "yes" ; then
7123       AC_DEFINE(wxUSE_ICO_CUR)
7124     fi
7125 fi
7126
7127 dnl ---------------------------------------------------------------------------
7128 dnl common dialogs
7129 dnl ---------------------------------------------------------------------------
7130
7131 if test "$wxUSE_ABOUTDLG" = "yes"; then
7132     AC_DEFINE(wxUSE_ABOUTDLG)
7133 fi
7134
7135 if test "$wxUSE_CHOICEDLG" = "yes"; then
7136     AC_DEFINE(wxUSE_CHOICEDLG)
7137 fi
7138
7139 if test "$wxUSE_COLOURDLG" = "yes"; then
7140     AC_DEFINE(wxUSE_COLOURDLG)
7141 fi
7142
7143 if test "$wxUSE_FILEDLG" = "yes"; then
7144     AC_DEFINE(wxUSE_FILEDLG)
7145 fi
7146
7147 if test "$wxUSE_FINDREPLDLG" = "yes"; then
7148     AC_DEFINE(wxUSE_FINDREPLDLG)
7149 fi
7150
7151 if test "$wxUSE_FONTDLG" = "yes"; then
7152     AC_DEFINE(wxUSE_FONTDLG)
7153 fi
7154
7155 if test "$wxUSE_DIRDLG" = "yes"; then
7156     if test "$wxUSE_TREECTRL" != "yes"; then
7157         AC_MSG_WARN(wxDirDialog requires wxTreeCtrl so it won't be compiled without it)
7158     else
7159         AC_DEFINE(wxUSE_DIRDLG)
7160     fi
7161 fi
7162
7163 if test "$wxUSE_MSGDLG" = "yes"; then
7164     AC_DEFINE(wxUSE_MSGDLG)
7165 fi
7166
7167 if test "$wxUSE_NUMBERDLG" = "yes"; then
7168     AC_DEFINE(wxUSE_NUMBERDLG)
7169 fi
7170
7171 if test "$wxUSE_PROGRESSDLG" = "yes"; then
7172     if test "$wxUSE_CONSTRAINTS" != "yes"; then
7173        AC_MSG_WARN(wxProgressDialog requires constraints so it won't be compiled without them)
7174     else
7175         AC_DEFINE(wxUSE_PROGRESSDLG)
7176     fi
7177 fi
7178
7179 if test "$wxUSE_SPLASH" = "yes"; then
7180     AC_DEFINE(wxUSE_SPLASH)
7181     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS splash"
7182 fi
7183
7184 if test "$wxUSE_STARTUP_TIPS" = "yes"; then
7185     if test "$wxUSE_CONSTRAINTS" != "yes"; then
7186        AC_MSG_WARN(Startup tips requires constraints and won't be compiled without them)
7187     else
7188         AC_DEFINE(wxUSE_STARTUP_TIPS)
7189     fi
7190 fi
7191
7192 if test "$wxUSE_TEXTDLG" = "yes"; then
7193     AC_DEFINE(wxUSE_TEXTDLG)
7194 fi
7195
7196 if test "$wxUSE_WIZARDDLG" = "yes"; then
7197     AC_DEFINE(wxUSE_WIZARDDLG)
7198     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS wizard"
7199 fi
7200
7201 dnl ---------------------------------------------------------------------------
7202 dnl wxMSW-only options
7203 dnl ---------------------------------------------------------------------------
7204
7205 if test "$wxUSE_MSW" = 1 ; then
7206
7207 if test "$wxUSE_DC_CACHEING" = "yes"; then
7208     AC_DEFINE(wxUSE_DC_CACHEING)
7209 fi
7210
7211 if test "$wxUSE_INICONF" = "yes"; then
7212     AC_DEFINE(wxUSE_INICONF)
7213 fi
7214
7215 if test "$wxUSE_DIB" = "yes"; then
7216     AC_DEFINE(wxUSE_WXDIB)
7217 fi
7218
7219 if test "$wxUSE_OWNER_DRAWN" = "yes"; then
7220     AC_DEFINE(wxUSE_OWNER_DRAWN)
7221 fi
7222
7223 if test "$wxUSE_REGKEY" = "yes"; then
7224     AC_DEFINE(wxUSE_REGKEY)
7225 fi
7226
7227 if test "$wxUSE_POSTSCRIPT_ARCHITECTURE_IN_MSW" = "yes"; then
7228     AC_DEFINE(wxUSE_POSTSCRIPT_ARCHITECTURE_IN_MSW)
7229 fi
7230
7231 if test "$wxUSE_UXTHEME" = "yes"; then
7232     AC_DEFINE(wxUSE_UXTHEME)
7233 fi
7234
7235 fi
7236 dnl wxUSE_MSW = 1
7237
7238 dnl ---------------------------------------------------------------------------
7239 dnl wxGraphicsContext
7240 dnl ---------------------------------------------------------------------------
7241
7242 if test "$wxUSE_GRAPHICS_CONTEXT" = "yes"; then
7243    if test "$wxUSE_MAC" = 1 -o "$wxUSE_COCOA" = "1"; then
7244       AC_DEFINE(wxUSE_GRAPHICS_CONTEXT)
7245    elif test "$wxUSE_GTK" != 1; then
7246       dnl for other builds we'll just wing it for now...
7247       AC_DEFINE(wxUSE_GRAPHICS_CONTEXT)
7248    else
7249       dnl ...but let's check for cairo availability for wxGTK builds
7250       PKG_CHECK_MODULES(CAIRO, cairo,
7251           [AC_DEFINE(wxUSE_GRAPHICS_CONTEXT)],
7252           [AC_MSG_WARN([Cairo library not found, unable to set wxUSE_GRAPHICS_CONTEXT])]
7253       )
7254    fi
7255 fi
7256
7257 dnl ---------------------------------------------------------------------------
7258 dnl wxMediaCtrl
7259 dnl ---------------------------------------------------------------------------
7260
7261 USE_MEDIA=0
7262
7263 if test "$wxUSE_MEDIACTRL" = "yes"; then
7264     USE_MEDIA=1
7265
7266     dnl -----------------------------------------------------------------------
7267     dnl GStreamer
7268     dnl -----------------------------------------------------------------------
7269     if test "$wxUSE_GTK" = 1; then
7270         wxUSE_GSTREAMER="no"
7271
7272         dnl -------------------------------------------------------------------
7273         dnl Test for at least 0.8 gstreamer module from pkg-config
7274         dnl Even totem doesn't accept 0.9 evidently.
7275         dnl
7276         dnl So, we first check to see if 0.10 if available - if not we
7277         dnl try the older 0.8 version
7278         dnl -------------------------------------------------------------------
7279         GST_VERSION_MAJOR=0
7280         GST_VERSION_MINOR=10
7281         GST_VERSION=$GST_VERSION_MAJOR.$GST_VERSION_MINOR
7282
7283         if test "$wxUSE_GSTREAMER8" = "no"; then
7284             PKG_CHECK_MODULES(GST,
7285                 [gstreamer-$GST_VERSION gstreamer-plugins-base-$GST_VERSION gconf-2.0],
7286                 [
7287                     wxUSE_GSTREAMER="yes"
7288                     GST_LIBS="$GST_LIBS -lgstinterfaces-$GST_VERSION"
7289                 ],
7290                 [
7291                     AC_MSG_WARN([GStreamer 0.10 not available, falling back to 0.8])
7292                     GST_VERSION_MINOR=8
7293                 ]
7294             )
7295         else
7296             dnl check only for 0.8
7297             GST_VERSION_MINOR=8
7298         fi
7299
7300         if test $GST_VERSION_MINOR = "8"; then
7301             GST_VERSION=$GST_VERSION_MAJOR.$GST_VERSION_MINOR
7302             PKG_CHECK_MODULES(GST,
7303                 [gstreamer-$GST_VERSION gstreamer-interfaces-$GST_VERSION gstreamer-gconf-$GST_VERSION],
7304                 wxUSE_GSTREAMER="yes",
7305                 [
7306                     AC_MSG_WARN([GStreamer 0.8/0.10 not available.])
7307                 ])
7308         fi
7309
7310
7311         if test "$wxUSE_GSTREAMER" = "yes"; then
7312             CPPFLAGS="$GST_CFLAGS $CPPFLAGS"
7313             LIBS="$GST_LIBS $LIBS"
7314
7315             AC_DEFINE(wxUSE_GSTREAMER)
7316         else
7317             USE_MEDIA=0
7318         fi
7319     fi
7320
7321     if test $USE_MEDIA = 1; then
7322         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS mediaplayer"
7323         AC_DEFINE(wxUSE_MEDIACTRL)
7324     fi
7325 fi
7326
7327 dnl ---------------------------------------------------------------------------
7328 dnl get the string with OS info - used by wxGetOsDescription() on MacOS X
7329 dnl ---------------------------------------------------------------------------
7330
7331 if test "$cross_compiling" = "yes"; then
7332     dnl Use best guess from host as we can't use uname when cross compiling
7333     OSINFO="\"$host\""
7334 else
7335     dnl attualy work out OS version
7336     OSINFO=`uname -s -r -m`
7337     OSINFO="\"$OSINFO\""
7338 fi
7339
7340 AC_DEFINE_UNQUOTED(WXWIN_OS_DESCRIPTION, $OSINFO)
7341
7342 dnl ---------------------------------------------------------------------------
7343 dnl define the variable containing the installation prefix (used in dcpsg.cpp)
7344 dnl ---------------------------------------------------------------------------
7345
7346 if test "x$prefix" != "xNONE"; then
7347     wxPREFIX=$prefix
7348 else
7349     wxPREFIX=$ac_default_prefix
7350 fi
7351
7352 AC_DEFINE_UNQUOTED(wxINSTALL_PREFIX, "$wxPREFIX")
7353
7354
7355 dnl ---------------------------------------------------------------------------
7356 dnl define variables with all built libraries for wx-config
7357 dnl ---------------------------------------------------------------------------
7358
7359 STD_BASE_LIBS="base"
7360 STD_GUI_LIBS=""
7361 BUILT_WX_LIBS="base"
7362 ALL_WX_LIBS="xrc stc gl media dbgrid qa html adv core odbc xml net base"
7363
7364 if test "$wxUSE_SOCKETS" = "yes" ; then
7365     STD_BASE_LIBS="net $STD_BASE_LIBS"
7366     BUILT_WX_LIBS="net $BUILT_WX_LIBS"
7367 fi
7368 if test "$wxUSE_ODBC" != "no" ; then
7369     BUILT_WX_LIBS="odbc $BUILT_WX_LIBS"
7370 fi
7371 if test "$wxUSE_XML" = "yes" ; then
7372     STD_BASE_LIBS="xml $STD_BASE_LIBS"
7373     BUILT_WX_LIBS="xml $BUILT_WX_LIBS"
7374 fi
7375
7376 if test "$wxUSE_GUI" = "yes"; then
7377     STD_GUI_LIBS="adv core"
7378     BUILT_WX_LIBS="$STD_GUI_LIBS $BUILT_WX_LIBS"
7379
7380     if test "$wxUSE_DEBUGREPORT" = "yes" ; then
7381         STD_GUI_LIBS="qa $STD_GUI_LIBS"
7382         BUILT_WX_LIBS="qa $BUILT_WX_LIBS"
7383     fi
7384     if test "$wxUSE_ODBC" != "no" ; then
7385         BUILT_WX_LIBS="dbgrid $BUILT_WX_LIBS"
7386     fi
7387     if test "$wxUSE_HTML" = "yes" ; then
7388         STD_GUI_LIBS="html $STD_GUI_LIBS"
7389         BUILT_WX_LIBS="html $BUILT_WX_LIBS"
7390     fi
7391     if test "$wxUSE_MEDIACTRL" = "yes" ; then
7392         BUILT_WX_LIBS="media $BUILT_WX_LIBS"
7393     fi
7394     if test "$wxUSE_OPENGL" = "yes" ; then
7395         BUILT_WX_LIBS="gl $BUILT_WX_LIBS"
7396     fi
7397     if test "$wxUSE_AUI" = "yes" ; then
7398         BUILT_WX_LIBS="aui $BUILT_WX_LIBS"
7399     fi
7400     if test "$wxUSE_STC" = "yes" ; then
7401         BUILT_WX_LIBS="stc $BUILT_WX_LIBS"
7402     fi
7403     if test "$wxUSE_XRC" = "yes" ; then
7404         STD_GUI_LIBS="xrc $STD_GUI_LIBS"
7405         BUILT_WX_LIBS="xrc $BUILT_WX_LIBS"
7406     fi
7407 fi
7408
7409 AC_SUBST(ALL_WX_LIBS)
7410 AC_SUBST(BUILT_WX_LIBS)
7411 AC_SUBST(STD_BASE_LIBS)
7412 AC_SUBST(STD_GUI_LIBS)
7413
7414 dnl ---------------------------------------------------------------------------
7415 dnl Output the makefiles and such from the results found above
7416 dnl ---------------------------------------------------------------------------
7417
7418 dnl all additional libraries (except wxWidgets itself) we link with
7419
7420 if test "$wxUSE_MAC" = 1 ; then
7421     if test "$wxUSE_SOUND" = "yes" || test "$wxUSE_MEDIACTRL" = "yes"; then
7422         if test "$USE_DARWIN" = 1; then
7423             LDFLAGS="$LDFLAGS -framework QuickTime"
7424         else
7425             LDFLAGS="$LDFLAGS -lQuickTimeLib"
7426         fi
7427     fi
7428     if test "$USE_DARWIN" = 1; then
7429         LDFLAGS="$LDFLAGS -framework IOKit -framework Carbon -framework Cocoa -framework System"
7430     else
7431         LDFLAGS="$LDFLAGS -lCarbonLib"
7432     fi
7433 fi
7434 if test "$wxUSE_COCOA" = 1 ; then
7435     LDFLAGS="$LDFLAGS -framework IOKit -framework Cocoa"
7436     if test "$wxUSE_MEDIACTRL" = "yes"; then
7437         LDFLAGS="$LDFLAGS -framework QuickTime"
7438     fi
7439 fi
7440 if test "$USE_DARWIN" = 1 -a "$wxUSE_MAC" != 1 -a "$wxUSE_COCOA" != 1 ; then
7441     LDFLAGS="$LDFLAGS -framework IOKit -framework CoreServices -framework System -framework ApplicationServices"
7442 fi
7443
7444 LIBS="$ZLIB_LINK $POSIX4_LINK $INET_LINK $WCHAR_LINK $DL_LINK $LIBS"
7445
7446 if test "$wxUSE_GUI" = "yes"; then
7447
7448     dnl TODO add checks that these samples will really compile (i.e. all the
7449     dnl      library features they need are present)
7450
7451     dnl TODO some samples are never built so far: mfc (requires VC++)
7452     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS artprov controls dialogs drawing \
7453                      erase event exec font image minimal mobile \
7454                      mobile/wxedit mobile/styles render \
7455                      shaped svg taborder vscroll widgets"
7456
7457     if test "$wxUSE_MONOLITHIC" != "yes"; then
7458         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS console"
7459     fi
7460     if test "$TOOLKIT" = "MSW"; then
7461         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS regtest"
7462         if test "$wxUSE_UNIVERSAL" != "yes"; then
7463             SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS ownerdrw nativdlg"
7464         fi
7465     fi
7466     if test "$TOOLKIT" = "PM" -a "$wxUSE_UNIVERSAL" != "yes"; then
7467         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS ownerdrw"
7468     fi
7469 else
7470     SAMPLES_SUBDIRS="console"
7471 fi
7472
7473
7474 dnl C/C++ compiler options used to compile wxWidgets
7475 dnl
7476 dnl check for icc before gcc as icc is also recognized as gcc
7477 if test "x$INTELCC" = "xyes" ; then
7478     dnl Warnings which can't be easily suppressed in C code are disabled:
7479     dnl
7480     dnl     remark #810: conversion from "x" to "y" may lose significant bits
7481     dnl     remark #869: parameter "foo" was never referenced
7482     dnl     remark #1572: floating-point equality and inequality comparisons
7483     dnl                   are unreliable
7484     dnl     remark #1684: conversion from pointer to same-sized integral type
7485     dnl
7486     dnl (for others see below)
7487     CWARNINGS="-Wall -wd810,869,981,1418,1572,1684"
7488 elif test "$GCC" = yes ; then
7489     CWARNINGS="-Wall -Wundef"
7490 fi
7491
7492 if test "x$INTELCXX" = "xyes" ; then
7493     dnl Intel compiler gives some warnings which simply can't be worked
7494     dnl around or of which we have too many (810, 869) so it's impractical to
7495     dnl keep them enabled even if in theory it would be nice and some others
7496     dnl (279) are generated for standard macros and so there is nothing we can
7497     dnl do about them
7498     dnl
7499     dnl     remark #279: controlling expression is constant
7500     dnl     remark #383: value copied to temporary, reference to temporary used
7501     dnl     remark #444: destructor for base class "xxx" is not virtual
7502     dnl     remark #810: conversion from "x" to "y" may lose significant bits
7503     dnl     remark #869: parameter "foo" was never referenced
7504     dnl     remark #981: operands are evaluated in unspecified order
7505     dnl     remark #1418: external definition with no prior declaration
7506     dnl     remark #1419: external declaration in primary source file
7507     CXXWARNINGS="-Wall -wd279,383,444,810,869,981,1418,1419"
7508 elif test "$GXX" = yes ; then
7509     dnl CXXWARNINGS="-Wall -W -Wcast-qual -Werror"
7510     CXXWARNINGS="-Wall -Wundef -Wno-ctor-dtor-privacy"
7511 fi
7512
7513
7514 dnl combine everything together and remove the extra white space while doing it
7515 WXCONFIG_CFLAGS=`echo $WXCONFIG_CFLAGS`
7516 WXCONFIG_CXXFLAGS=`echo $WXCONFIG_CFLAGS $WXCONFIG_CXXFLAGS`
7517
7518
7519 dnl add -I options we use during library compilation
7520 dnl
7521 dnl note that the order is somewhat important: wxWidgets headers should
7522 dnl come first and the one with setup.h should be before $(top_srcdir)/include
7523 dnl in case the latter contains setup.h used by non-autoconf makefiles (e.g.
7524 dnl CodeWarrior):
7525 CPPFLAGS=`echo $WXCONFIG_CPPFLAGS \
7526  -I\\${wx_top_builddir}/lib/wx/include/${TOOLCHAIN_FULLNAME} \
7527  -I\\${top_srcdir}/include $TOOLKIT_INCLUDE \
7528  $CPPFLAGS `
7529
7530 C_AND_CXX_FLAGS="$DEBUG_CFLAGS $PROFILE_FLAGS $OPTIMISE_CFLAGS"
7531 CFLAGS=`echo $WXCONFIG_CFLAGS $CWARNINGS $C_AND_CXX_FLAGS $CFLAGS `
7532 CXXFLAGS=`echo $WXCONFIG_CXXFLAGS $C_AND_CXX_FLAGS $CXXFLAGS `
7533
7534 dnl now that we added WXCONFIG_CPPFLAGS to CPPFLAGS we can add the wx-config
7535 dnl only stuff to it
7536 WXCONFIG_CPPFLAGS=`echo $WXCONFIG_CPPFLAGS $WXCONFIG_ONLY_CPPFLAGS`
7537
7538
7539 if test "x$MWCC" = "xyes"; then
7540     dnl Correct MW 8.3 to be more similar to GCC.  In particular we
7541     dnl must use <regex.h> from system not our local copy on OS X,
7542     dnl but must use local not system on OS 9.
7543     dnl The following should make all -I paths usable for <> includes
7544     dnl while first checking in real system paths.  With 8.3 using
7545     dnl -gccincludes it will actually check local paths before system
7546     dnl even for <> which is totally wrong.
7547
7548     dnl Note that because this absolutely needs to be before any -I
7549     dnl that we have to tack it on to the end of the compiler commandline.
7550     CC="$CC -cwd source -I-"
7551     CXX="$CXX -cwd source -I-"
7552 fi
7553
7554
7555 LIBS=`echo $LIBS`
7556 EXTRALIBS="$LDFLAGS $LDFLAGS_VERSIONING $LIBS $DMALLOC_LIBS"
7557 EXTRALIBS_XML="$EXPAT_LINK"
7558 EXTRALIBS_HTML="$MSPACK_LINK"
7559 EXTRALIBS_ODBC="$ODBC_LINK"
7560 EXTRALIBS_STC="-lwxscintilla${lib_debug_suffix}${WX_LIB_FLAVOUR}-${WX_RELEASE}${HOST_SUFFIX}"
7561 if test "$wxUSE_GUI" = "yes"; then
7562     EXTRALIBS_GUI=`echo $GUI_TK_LIBRARY $PNG_LINK $JPEG_LINK $TIFF_LINK $WEBKIT_LINK $EXTRALIBS_HILDON $EXTRALIBS_GNOMEVFS $EXTRALIBS_GNOMEPRINT`
7563 fi
7564 if test "$wxUSE_OPENGL" = "yes"; then
7565     EXTRALIBS_OPENGL="$LDFLAGS_GL $OPENGL_LIBS"
7566 fi
7567
7568 LDFLAGS="$LDFLAGS $PROFILE_FLAGS"
7569
7570 WXCONFIG_LIBS="$LIBS"
7571
7572 dnl wx-config must output builtin 3rd party libs in --libs in static build:
7573 if test "$wxUSE_REGEX" = "builtin" ; then
7574     wxconfig_3rdparty="regex${lib_unicode_suffix} $wxconfig_3rdparty"
7575 fi
7576 if test "$wxUSE_EXPAT" = "builtin" ; then
7577     wxconfig_3rdparty="expat $wxconfig_3rdparty"
7578 fi
7579 if test "$wxUSE_ODBC" = "builtin" ; then
7580     wxconfig_3rdparty="odbc $wxconfig_3rdparty"
7581 fi
7582 if test "$wxUSE_LIBTIFF" = "builtin" ; then
7583     wxconfig_3rdparty="tiff $wxconfig_3rdparty"
7584 fi
7585 if test "$wxUSE_LIBJPEG" = "builtin" ; then
7586     wxconfig_3rdparty="jpeg $wxconfig_3rdparty"
7587 fi
7588 if test "$wxUSE_LIBPNG" = "builtin" ; then
7589     wxconfig_3rdparty="png $wxconfig_3rdparty"
7590 fi
7591 if test "$wxUSE_ZLIB" = "builtin" ; then
7592     wxconfig_3rdparty="zlib $wxconfig_3rdparty"
7593 fi
7594
7595 for i in $wxconfig_3rdparty ; do
7596     WXCONFIG_LIBS="-lwx${i}${lib_debug_suffix}${WX_LIB_FLAVOUR}-${WX_RELEASE}${HOST_SUFFIX} $WXCONFIG_LIBS"
7597 done
7598
7599
7600 if test "x$wxUSE_UNIVERSAL" = "xyes" ; then
7601     WXUNIV=1
7602
7603     case "$wxUNIV_THEMES" in
7604         ''|all)
7605             AC_DEFINE(wxUSE_ALL_THEMES)
7606             ;;
7607
7608         *)
7609             for t in `echo $wxUNIV_THEMES | tr , ' ' | tr a-z A-Z`; do
7610                 AC_DEFINE_UNQUOTED(wxUSE_THEME_$t)
7611             done
7612     esac
7613 else
7614     WXUNIV=0
7615 fi
7616
7617 AC_SUBST(wxUSE_ZLIB)
7618 AC_SUBST(wxUSE_REGEX)
7619 AC_SUBST(wxUSE_EXPAT)
7620 AC_SUBST(wxUSE_ODBC)
7621 AC_SUBST(wxUSE_LIBJPEG)
7622 AC_SUBST(wxUSE_LIBPNG)
7623 AC_SUBST(wxUSE_LIBTIFF)
7624
7625 if test $wxUSE_MONOLITHIC = "yes" ; then
7626     MONOLITHIC=1
7627 else
7628     MONOLITHIC=0
7629 fi
7630
7631 if test $wxUSE_PLUGINS = "yes" ; then
7632     USE_PLUGINS=1
7633 else
7634     USE_PLUGINS=0
7635 fi
7636
7637 if test $wxUSE_ODBC != "no" ; then
7638     USE_ODBC=1
7639 else
7640     USE_ODBC=0
7641 fi
7642
7643 if test "$wxUSE_DEBUGREPORT" = "yes" ; then
7644     USE_QA=1
7645 else
7646     USE_QA=0
7647 fi
7648
7649 if test $wxUSE_OFFICIAL_BUILD = "yes" ; then
7650     OFFICIAL_BUILD=1
7651 else
7652     OFFICIAL_BUILD=0
7653 fi
7654
7655 AC_SUBST(VENDOR)
7656 AC_SUBST(OFFICIAL_BUILD)
7657 AC_SUBST(WX_FLAVOUR)
7658 AC_SUBST(WX_LIB_FLAVOUR)
7659
7660 AC_SUBST(WXUNIV)
7661 AC_SUBST(MONOLITHIC)
7662 AC_SUBST(USE_PLUGINS)
7663 AC_SUBST(LIBS)
7664 AC_SUBST(CXXWARNINGS)
7665 AC_SUBST(EXTRALIBS)
7666 AC_SUBST(EXTRALIBS_XML)
7667 AC_SUBST(EXTRALIBS_HTML)
7668 AC_SUBST(EXTRALIBS_ODBC)
7669 AC_SUBST(EXTRALIBS_GUI)
7670 AC_SUBST(EXTRALIBS_OPENGL)
7671 AC_SUBST(EXTRALIBS_SDL)
7672 AC_SUBST(WITH_PLUGIN_SDL)
7673 AC_SUBST(EXTRALIBS_GNOMEPRINT)
7674 AC_SUBST(EXTRALIBS_GNOMEVFS)
7675 AC_SUBST(EXTRALIBS_HILDON)
7676 AC_SUBST(UNICODE)
7677 AC_SUBST(BUILD)
7678 AC_SUBST(DEBUG_INFO)
7679 AC_SUBST(DEBUG_FLAG)
7680 TOOLKIT_LOWERCASE=`echo $TOOLKIT | tr "[[A-Z]]" "[[a-z]]"`
7681 AC_SUBST(TOOLKIT_LOWERCASE)
7682 AC_SUBST(TOOLKIT_VERSION)
7683 AC_SUBST(SAMPLES_RPATH_FLAG)
7684 AC_SUBST(SAMPLES_RPATH_POSTLINK)
7685 AC_SUBST(HOST_SUFFIX)
7686 AC_SUBST(CPPUNIT_CFLAGS)
7687 AC_SUBST(CPPUNIT_LIBS)
7688
7689 case "$TOOLKIT" in
7690     GTK)
7691         TOOLKIT_DESC="GTK+"
7692         if test "$WXGTK20" = 1; then
7693             TOOLKIT_DESC="$TOOLKIT_DESC 2"
7694             if test "$wxUSE_LIBGNOMEPRINT" = "yes" ; then
7695                 TOOLKIT_EXTRA="$TOOLKIT_EXTRA gnomeprint";
7696             fi
7697             if test "$wxUSE_LIBGNOMEVFS" = "yes" ; then
7698                 TOOLKIT_EXTRA="$TOOLKIT_EXTRA gnomevfs"
7699             fi
7700             if test "$wxUSE_LIBHILDON" = "yes"; then
7701                 TOOLKIT_EXTRA="$TOOLKIT_EXTRA hildon"
7702             fi
7703
7704             if test "$TOOLKIT_EXTRA" != ""; then
7705                 TOOLKIT_DESC="$TOOLKIT_DESC with support for `echo $TOOLKIT_EXTRA | tr -s ' '`"
7706             fi
7707         fi
7708         ;;
7709
7710     ?*)
7711         TOOLKIT_DESC=$TOOLKIT_LOWERCASE
7712         ;;
7713
7714     *)
7715         TOOLKIT_DESC="base only"
7716         ;;
7717 esac
7718
7719 if test "$wxUSE_WINE" = "yes"; then
7720     BAKEFILE_FORCE_PLATFORM=win32
7721 fi
7722
7723 dnl gcc 3.4 has a pch bug which truncates wide character constants in headers.
7724 dnl Hopefully for a non-unicode build there aren't any wide constants in
7725 dnl headers, but for a unicode build it's best to disable pch.
7726 if test "$wxUSE_UNICODE" = yes -a "$GCC" = yes -a "$bk_use_pch" != no
7727 then
7728     AC_CACHE_CHECK(
7729         [for gcc precompiled header bug],
7730         [wx_cv_gcc_pch_bug],
7731         [[
7732             echo '#include <stdio.h>
7733                   const wchar_t test_var[] = L"awidetest";' > conftest.h
7734
7735             echo '#include "conftest.h"
7736                   int main()
7737                   {
7738                      printf("%ls", test_var);
7739                      return 0;
7740                   }' > conftest.cpp
7741
7742             wx_cv_gcc_pch_bug="pch not supported"
7743
7744             if $CXX conftest.h >/dev/null 2>&1
7745             then
7746                 wx_cv_gcc_pch_bug=
7747
7748                 if $CXX -o conftest$PROGRAM_EXT conftest.cpp >/dev/null 2>&1
7749                 then
7750                     if tr -dc '[a-z]' < conftest$PROGRAM_EXT |
7751                         grep awidetest >/dev/null
7752                     then
7753                         wx_cv_gcc_pch_bug=no
7754                     else
7755                         wx_cv_gcc_pch_bug=yes
7756                     fi
7757                 fi
7758             fi
7759
7760             rm -f conftest.h conftest.gch conftest.cpp conftest$PROGRAM_EXT
7761         ]])
7762
7763     if test "$wx_cv_gcc_pch_bug" = yes; then
7764         dnl make the default for pch 'no'
7765         dnl further below check whether the user overrode and warn them
7766         bk_use_pch=no
7767     fi
7768 fi
7769
7770 AC_BAKEFILE([m4_include(autoconf_inc.m4)])
7771
7772 dnl find out if the compiler supports PCH
7773 dnl
7774 dnl TODO: this should be in bakefile
7775 if test $GCC_PCH = 1
7776 then
7777     if test "$wx_cv_gcc_pch_bug" = yes; then
7778         AC_MSG_WARN([*** Precompiled header support is broken on this compiler])
7779         AC_MSG_WARN([*** --enable-precomp-headers is not recommended])
7780         AC_MSG_WARN([*** see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13361])
7781     fi
7782
7783     CPPFLAGS="-DWX_PRECOMP $CPPFLAGS"
7784 fi
7785
7786 dnl HACK ALERT!!
7787 dnl For now, we need to alter bk-deps not to generate deps
7788 dnl when we've configured a Universal binary build.
7789 dnl The next version of Bakefile will have the correct fix for this
7790 dnl at which time, this hack can be removed.
7791
7792 if test "$wxUSE_MAC" = 1 ; then
7793     if test "x$wxUSE_UNIVERSAL_BINARY" != "xno" ; then
7794         sed "s/DEPSMODE=gcc/DEPSMODE=none/" < bk-deps > temp
7795         mv temp bk-deps
7796         chmod +x bk-deps
7797     fi
7798 fi
7799
7800 if test "$wxUSE_SHARED" = "yes"; then
7801
7802     dnl We get the shared build linker from bakefile, since it
7803     dnl moved all the logic for this out of this file and into
7804     dnl its own macro.  But it can't decide on whether to return
7805     dnl us $(VAR), ${VAR}, or the present expansion of VAR.
7806     dnl So normalise and expand everything here now, because its
7807     dnl not going to change inside wx-config anyway.
7808     sanitised_bakefile_mess=`echo "$SHARED_LD_CXX" | tr -d '()'`
7809     EXE_LINKER=`eval echo "$sanitised_bakefile_mess"`
7810
7811     dnl Need addtional flag on OS/2, so override bakefiles value
7812     dnl (there currently is no suitable variable to which the
7813     dnl  missing flags could be added, AFAICS. SN, 18.12.2004. )
7814     case "${host}" in
7815       *-pc-os2_emx | *-pc-os2-emx )
7816         SHARED_LD_CC="`pwd`/dllar.sh -name-mangler-script ./dllnames.sh -libf INITINSTANCE -libf TERMINSTANCE -o"
7817         SHARED_LD_CXX="`pwd`/dllar.sh -name-mangler-script ./dllnames.sh -libf INITINSTANCE -libf TERMINSTANCE -o"
7818         cp -p ${srcdir}/src/os2/dllnames.sh .
7819         cp -p ${srcdir}/src/os2/dllar.sh .
7820       ;;
7821     esac
7822 else
7823
7824     dnl No bakefile support for static builds, but this should be ok for most.
7825     EXE_LINKER="$CXX -o"
7826
7827 fi
7828 if test "$wxUSE_OMF" = "yes"; then
7829     case "${host}" in
7830       *-pc-os2_emx | *-pc-os2-emx )
7831         LDFLAGS="$LDFLAGS -Zlinker /EXEPACK"
7832         LDFLAGS_GUI="-Zlinker /PMTYPE:PM"
7833         WXCONFIG_LDFLAGS_GUI="-Zlinker /PMTYPE:PM"
7834       ;;
7835     esac
7836 fi
7837
7838 dnl TOOLCHAIN_DEFS should be used for both wx and client code
7839 WXCONFIG_CPPFLAGS="$WXCONFIG_CPPFLAGS $TOOLCHAIN_DEFS"
7840
7841
7842 dnl Sun cc is compatible with gcc and so either of them can use the C
7843 dnl libraries built with the other, i.e. gcc can be used to build wxGTK under
7844 dnl Solaris where GTK+ is compiled using cc and cc can be used under Linux
7845 dnl where GTK+ is built with gcc
7846 dnl
7847 dnl However the compiler options are not compatible at all and in particular
7848 dnl gcc doesn't like cc -mt option and cc doesn't like -pthread. We simply
7849 dnl filter them out as we already have the correct options for multithreaded
7850 dnl programs if we're using threads (and if we don't, it shouldn't matter)
7851 case "${host}" in
7852     *-*-solaris2* )
7853         dnl system packages are compiled with Sun CC and so pkg-config outputs
7854         dnl CC-specific "-mt" flag, remove it when using gcc
7855         if "$GCC" = yes; then
7856             CPPFLAGS=`echo $CPPFLAGS | sed 's/-mt//'`
7857             LIBS=`echo $LIBS | sed 's/-mt//'`
7858             EXTRALIBS_GUI=`echo $EXTRALIBS_GUI | sed 's/-mt//'`
7859         fi
7860         ;;
7861
7862     *-*-linux* )
7863         dnl OTOH when using Sun CC under Linux, the flags contain gcc-specific
7864         dnl -pthreads which Sun CC doesn't know about
7865         if test "x$SUNCXX" = xyes; then
7866             CPPFLAGS=`echo $CPPFLAGS | sed 's/-pthread//'`
7867             LIBS=`echo $LIBS | sed 's/-pthread//'`
7868             EXTRALIBS_GUI=`echo $EXTRALIBS_GUI | sed 's/-pthread//'`
7869         fi
7870         ;;
7871 esac
7872
7873 dnl Add visibility support flags to CFLAGS/CXXFLAGS - do it this late so that
7874 dnl it doesn't affect compilation checks above
7875 CFLAGS="$CFLAGS $CFLAGS_VISIBILITY"
7876 CXXFLAGS="$CXXFLAGS $CXXFLAGS_VISIBILITY"
7877
7878 dnl for convenience, sort the samples in alphabetical order
7879 dnl
7880 dnl FIXME For some mysterious reasons, sometimes the directories are duplicated
7881 dnl       in this list - hence uniq. But normally, this shouldn't be needed!
7882 dnl
7883 dnl       Unfortunately, there is a bug in OS/2's tr, such that
7884 dnl       tr ' ' '\n' introduces DOS-like line breaks, whereas tr '\n' ' '
7885 dnl       only removes the Unix-like part of the introduced line break.
7886 SAMPLES_SUBDIRS="`echo $SAMPLES_SUBDIRS | tr -s ' ' | tr ' ' '\n' | sort | uniq | tr '\n' ' '| tr -d '\r'`"
7887
7888 dnl subtle bakefile goop.
7889 dnl Used in wx-config now too, as its STATIC_FLAG with different makeup.
7890 dnl I wish we would have called it something less likely to clash with
7891 dnl things though.
7892 AC_SUBST(SHARED)
7893
7894 dnl global options
7895 AC_SUBST(WX_LIBRARY_BASENAME_NOGUI)
7896 AC_SUBST(WX_LIBRARY_BASENAME_GUI)
7897
7898 dnl toolkit options
7899 AC_SUBST(USE_GUI)
7900 AC_SUBST(AFMINSTALL)
7901 AC_SUBST(WIN32INSTALL)
7902 AC_SUBST(TOOLKIT)
7903 AC_SUBST(TOOLKIT_DIR)
7904 AC_SUBST(TOOLCHAIN_NAME)
7905 AC_SUBST(TOOLCHAIN_FULLNAME)
7906
7907 dnl wx-config options
7908 AC_SUBST(host_alias)
7909 AC_SUBST(cross_compiling)
7910 AC_SUBST(WIDGET_SET)
7911 AC_SUBST(WX_RELEASE)
7912 AC_SUBST(WX_VERSION)
7913 AC_SUBST(WX_SUBVERSION)
7914 AC_SUBST(WX_CHARTYPE)
7915 AC_SUBST(WX_DEBUGTYPE)
7916
7917 dnl note that in addition to the usual CPP/C/CXXFLAGS which are used for
7918 dnl building the library itself, we also have WXCONFIG_-prefixed variants which
7919 dnl are used when building the libraries using the library
7920 dnl
7921 dnl so put anything which should be used only during the library build in, e.g.
7922 dnl CXXFLAGS, but put everything else (by default) into WXCONFIG_CXXFLAGS
7923 dnl
7924 dnl and, finally, for some things which should be only used by wx-config but
7925 dnl not during the library compilation, use WXCONFIG_ONLY_CPPFLAGS which is
7926 dnl added to WXCONFIG_CPPFLAGS after adding the latter to CPPFLAGS
7927 AC_SUBST(WXCONFIG_CPPFLAGS)
7928 AC_SUBST(WXCONFIG_CFLAGS)
7929 AC_SUBST(WXCONFIG_CXXFLAGS)
7930
7931 AC_SUBST(WXCONFIG_LIBS)
7932 AC_SUBST(WXCONFIG_RPATH)
7933 AC_SUBST(WXCONFIG_LDFLAGS_GUI)
7934 AC_SUBST(WXCONFIG_RESFLAGS)
7935 AC_SUBST(EXE_LINKER)
7936
7937 dnl distribution vars
7938 AC_SUBST(GUIDIST)
7939 AC_SUBST(DISTDIR)
7940
7941 dnl additional subdirectories where we will build
7942 AC_SUBST(SAMPLES_SUBDIRS)
7943
7944 dnl additional libraries and linker settings
7945 AC_SUBST(LDFLAGS)
7946 AC_SUBST(LDFLAGS_GL)
7947 AC_SUBST(OPENGL_LIBS)
7948 AC_SUBST(DMALLOC_LIBS)
7949 AC_SUBST(WX_VERSION_TAG)
7950
7951 dnl additional resurces settings
7952 AC_SUBST(RESCOMP)
7953 AC_SUBST(WINDRES)
7954 AC_SUBST(REZ)
7955 AC_SUBST(RESFLAGS)
7956 AC_SUBST(RESPROGRAMOBJ)
7957 AC_SUBST(WX_RESOURCES_MACOSX_ASCII)
7958 AC_SUBST(WX_RESOURCES_MACOSX_DATA)
7959
7960 dnl additional for Mac OS X
7961 AC_SUBST(DEREZ)
7962 AC_SUBST(LIBWXMACRES)
7963 AC_SUBST(POSTLINK_COMMAND)
7964 AC_SUBST(MACSETFILE)
7965
7966 dnl other tools
7967 AC_SUBST(GCC)
7968 AC_SUBST(DLLTOOL)
7969
7970
7971 dnl MAKE_SET will be replaced with "MAKE=..." or nothing if make sets MAKE
7972 dnl itself (this macro is required if SUBDIRS variable is used in Makefile.am
7973 dnl - and we do use it)
7974 AC_PROG_MAKE_SET
7975
7976
7977 AC_CONFIG_HEADERS([lib/wx/include/${TOOLCHAIN_FULLNAME}/wx/setup.h:setup.h.in])
7978
7979 if test "$USE_WIN32" = 1; then
7980     AC_CONFIG_COMMANDS(
7981         [
7982             rcdefs.h
7983         ],
7984         [
7985             mkdir -p $outdir &&
7986             $CPP $infile | sed 's/^# *[1-9].*//;s/^ *//;/./,/^$/!d' > $outdir/rcdefs.h
7987         ],
7988         [
7989             CPP="$CPP"
7990             infile="$srcdir/include/wx/msw/genrcdefs.h"
7991             outdir="lib/wx/include/$TOOLCHAIN_FULLNAME/wx/msw"
7992         ]
7993     )
7994 fi
7995
7996 AC_CONFIG_FILES([ lib/wx/config/${TOOLCHAIN_FULLNAME}:wx-config.in ],
7997                 [ chmod +x lib/wx/config/${TOOLCHAIN_FULLNAME} ],
7998                 [ TOOLCHAIN_FULLNAME="${TOOLCHAIN_FULLNAME}" ])
7999
8000 AC_CONFIG_FILES([ lib/wx/config/inplace-${TOOLCHAIN_FULLNAME}:wx-config-inplace.in ],
8001                 [ chmod +x lib/wx/config/inplace-${TOOLCHAIN_FULLNAME} ],
8002                 [ TOOLCHAIN_FULLNAME="${TOOLCHAIN_FULLNAME}" ])
8003
8004 if test "$wx_cv_version_script" = "yes"; then
8005     AC_CONFIG_FILES(version-script)
8006 fi
8007 AC_CONFIG_FILES(Makefile)
8008
8009 AC_CONFIG_COMMANDS([wx-config],
8010                    [ rm -f wx-config
8011                      ${LN_S} lib/wx/config/inplace-${TOOLCHAIN_FULLNAME} wx-config
8012                    ],
8013                    [ TOOLCHAIN_FULLNAME="${TOOLCHAIN_FULLNAME}"
8014                      LN_S="${LN_S}"
8015                    ])
8016
8017 dnl This would give us us build dir that in every significant way
8018 dnl resembles an installed wx in prefix=$builddir.  It is troublesome
8019 dnl though in this form because AC_CONFIG_LINKS will fail for directories
8020 dnl on platforms that do not have symlinks.
8021 dnl AC_CONFIG_LINKS([ include/wx-$WX_RELEASE$WX_FLAVOUR:include ])
8022
8023 if test "$wxWITH_SUBDIRS" != "no"; then
8024 dnl Configure samples, demos etc. directories, but only if they are present:
8025 if test "$wxUSE_GUI" = "yes"; then
8026     SUBDIRS="samples demos utils"
8027 else dnl we build wxBase only
8028     dnl there are no wxBase programs in demos
8029     SUBDIRS="samples utils"
8030 fi
8031 dnl Add tests to the list of subdirs if cppunit 1.8.0+ is detected
8032 AM_PATH_CPPUNIT(1.8.0, [SUBDIRS="$SUBDIRS tests"])
8033
8034 for subdir in `echo $SUBDIRS`; do
8035     if test -d ${srcdir}/${subdir} ; then
8036         if test "$wxUSE_GUI" = "yes"; then
8037             if test ${subdir} = "samples"; then
8038                 dnl only take those samples which compile in the current
8039                 dnl configuration and which exist
8040                 makefiles="samples/Makefile.in $makefiles"
8041                 for sample in `echo $SAMPLES_SUBDIRS`; do
8042                     if test -d $srcdir/samples/$sample; then
8043                         makefiles="samples/$sample/Makefile.in $makefiles"
8044                     fi
8045                 done
8046             else
8047                 dnl assume that everything compiles for utils &c
8048                 dnl any that shouldn't be built can be added to
8049                 dnl DISABLED_UTILS, DISABLED_DEMOS
8050                 disabled_var=DISABLED_`echo $subdir | tr [[a-z]] [[A-Z]]`;
8051                 eval "disabled=\$$disabled_var"
8052                 disabled=/`echo X $disabled | sed 's@ @/|/@g'`/
8053                 makefiles=`(cd $srcdir ; find $subdir -name Makefile.in) | $EGREP -v "$disabled"`
8054             fi
8055         else dnl we build wxBase only
8056             dnl don't take all samples/utils, just those which build with
8057             dnl wxBase
8058             if test ${subdir} = "samples"; then
8059                 makefiles="samples/Makefile.in samples/console/Makefile.in"
8060             elif test ${subdir} = "utils"; then
8061                 makefiles=""
8062                 for util in HelpGen tex2rtf ; do
8063                     if test -d $srcdir/utils/$util ; then
8064                         makefiles="utils/$util/Makefile.in \
8065                                    utils/$util/src/Makefile.in \
8066                                    $makefiles"
8067                     fi
8068                 done
8069             else dnl assume that everything compiles for tests
8070                 makefiles=`(cd $srcdir ; find $subdir -name Makefile.in)`
8071             fi
8072         fi
8073
8074         for mkin in $makefiles ; do
8075             mk=`echo $mkin | sed 's/Makefile\.in/Makefile/g'`
8076             AC_CONFIG_FILES([$mk])
8077         done
8078     fi
8079 done
8080 fi dnl wxWITH_SUBDIRS
8081
8082 AC_OUTPUT
8083
8084 dnl report how we have been configured
8085 echo
8086 echo "Configured wxWidgets ${WX_VERSION} for \`${host}'"
8087 echo ""
8088 echo "  Which GUI toolkit should wxWidgets use?                 ${TOOLKIT_DESC}"
8089 echo "  Should wxWidgets be compiled into single library?       ${wxUSE_MONOLITHIC:-yes}"
8090
8091 echo "  Should wxWidgets be compiled in debug mode?             ${wxUSE_DEBUG:-no}"
8092 echo "  Should wxWidgets be linked as a shared library?         ${wxUSE_SHARED:-no}"
8093 echo $ECHO_N "  Should wxWidgets support Unicode?                       ${wxUSE_UNICODE:-no}$ECHO_C"
8094 if test "$wxUSE_UNICODE" = "yes"; then
8095     if test "$wxUSE_UNICODE_UTF8" = "yes"; then
8096         echo " (using UTF-8)"
8097     else
8098         echo " (using wchar_t)"
8099     fi
8100 else
8101     echo
8102 fi
8103
8104 echo "  What level of wxWidgets compatibility should be enabled?"
8105 echo "                                       wxWidgets 2.6      ${WXWIN_COMPATIBILITY_2_6:-no}"
8106 echo "                                       wxWidgets 2.8      ${WXWIN_COMPATIBILITY_2_8:-yes}"
8107
8108 echo "  Which libraries should wxWidgets use?"
8109 echo "                                       STL                ${wxUSE_STL}"
8110 echo "                                       jpeg               ${wxUSE_LIBJPEG-none}"
8111 echo "                                       png                ${wxUSE_LIBPNG-none}"
8112 echo "                                       regex              ${wxUSE_REGEX}"
8113 echo "                                       tiff               ${wxUSE_LIBTIFF-none}"
8114 if test "$wxUSE_X11" = 1 -o "$wxUSE_MOTIF" = 1; then
8115 echo "                                       xpm                ${wxUSE_LIBXPM-none}"
8116 fi
8117 echo "                                       zlib               ${wxUSE_ZLIB}"
8118 echo "                                       odbc               ${wxUSE_ODBC}"
8119 echo "                                       expat              ${wxUSE_EXPAT}"
8120 echo "                                       libmspack          ${wxUSE_LIBMSPACK}"
8121 echo "                                       sdl                ${wxUSE_LIBSDL}"
8122
8123 echo ""
8124
8125 dnl vi: set et sts=4 sw=4 com=\:dnl: