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