]> git.saurik.com Git - wxWidgets.git/blobdiff - configure.in
split string.{h,cpp} into {string,stringimpl,arrstr}.{h,cpp} to make the files more...
[wxWidgets.git] / configure.in
index 9adb0a5ba3e4d136a88c2e18240f3308d2b7b8aa..3fd65c64000fe91a7bff92476c679a2893d732c4 100644 (file)
@@ -17,7 +17,7 @@ dnl ---------------------------------------------------------------------------
 dnl initialization
 dnl ---------------------------------------------------------------------------
 
-AC_INIT([wxWidgets], [2.7.0], [wx-dev@lists.wxwidgets.org])
+AC_INIT([wxWidgets], [2.9.0], [wx-dev@lists.wxwidgets.org])
 
 dnl the file passed to AC_CONFIG_SRCDIR should be specific to our package
 AC_CONFIG_SRCDIR([wx-config.in])
@@ -33,7 +33,7 @@ dnl
 dnl wx_release_number += 1
 
 wx_major_version_number=2
-wx_minor_version_number=7
+wx_minor_version_number=9
 wx_release_number=0
 wx_subrelease_number=0
 
@@ -44,6 +44,11 @@ WX_SUBVERSION=$WX_VERSION.$wx_subrelease_number
 WX_MSW_VERSION=$wx_major_version_number$wx_minor_version_number$wx_release_number
 
 
+dnl Autoconf-2.60 changed the meaning of top_builddir variable, so we have
+dnl to use our own replacement that will work with both 2.5x and 2.60+:
+wx_top_builddir="`pwd`"
+AC_SUBST(wx_top_builddir)
+
 
 dnl ------------------------------------------------------------------------
 dnl Check platform (host system)
@@ -89,7 +94,7 @@ NEEDS_D_REENTRANT_FOR_R_FUNCS=0
 dnl the list of all available toolkits
 dnl
 dnl update NUM_TOOLKITS calculation below when adding a new toolkit here!
-ALL_TOOLKITS="COCOA GTK MAC MGL MICROWIN MOTIF MSW PM X11"
+ALL_TOOLKITS="COCOA GTK MAC MGL MICROWIN MOTIF MSW PM X11 DFB"
 
 dnl NB: these wxUSE_XXX constants have value of 0 or 1 unlike all the other ones
 dnl     which are either yes or no
@@ -102,6 +107,7 @@ DEFAULT_wxUSE_MOTIF=0
 DEFAULT_wxUSE_MSW=0
 DEFAULT_wxUSE_PM=0
 DEFAULT_wxUSE_X11=0
+DEFAULT_wxUSE_DFB=0
 
 dnl these are the values which are really default for the given platform -
 dnl they're not cached and are only used if no --with-toolkit was given *and*
@@ -115,6 +121,7 @@ DEFAULT_DEFAULT_wxUSE_MOTIF=0
 DEFAULT_DEFAULT_wxUSE_MSW=0
 DEFAULT_DEFAULT_wxUSE_PM=0
 DEFAULT_DEFAULT_wxUSE_X11=0
+DEFAULT_DEFAULT_wxUSE_DFB=0
 
 PROGRAM_EXT=
 SO_SUFFIX=so
@@ -191,7 +198,7 @@ case "${host}" in
     AC_DEFINE(__BSD__)
     DEFAULT_DEFAULT_wxUSE_GTK=1
   ;;
-  *-*-openbsd*)
+  *-*-openbsd*|*-*-mirbsd*)
     USE_BSD=1
     USE_OPENBSD=1
     AC_DEFINE(__OPENBSD__)
@@ -204,6 +211,11 @@ case "${host}" in
     AC_DEFINE(__NETBSD__)
     AC_DEFINE(__BSD__)
     DEFAULT_DEFAULT_wxUSE_GTK=1
+    NEEDS_D_REENTRANT_FOR_R_FUNCS=1
+
+    dnl some standard declarations in NetBSD headers are only included if
+    dnl _NETBSD_SOURCE and _LIBC are defined, e.g. getservbyname_r in netdb.h
+    CPPFLAGS="-D_NETBSD_SOURCE -D_LIBC $CPPFLAGS"
   ;;
   *-*-osf* )
     USE_ALPHA=1
@@ -257,7 +269,6 @@ case "${host}" in
     SO_SUFFIX=dll
     PROGRAM_EXT=".exe"
     DEFAULT_DEFAULT_wxUSE_MSW=1
-    DEFAULT_STD_FLAG=no
   ;;
 
   *-pc-msdosdjgpp )
@@ -333,7 +344,11 @@ case "${host}" in
   ;;
 
   *)
-    AC_MSG_ERROR(unknown system type ${host}.)
+    AC_MSG_WARN([*** System type ${host} is unknown, assuming generic Unix and continuing nevertheless.])
+    AC_MSG_WARN([*** Please report the build results to wx-dev@lists.wxwidgets.org.])
+
+    DEFAULT_DEFAULT_wxUSE_X11=1
+    DEFAULT_wxUSE_SHARED=no
 esac
 
 dnl ---------------------------------------------------------------------------
@@ -359,12 +374,14 @@ if test $DEBUG_CONFIGURE = 1; then
 
   DEFAULT_wxUSE_THREADS=yes
 
-  DEFAULT_wxUSE_SHARED=yes
+  DEFAULT_wxUSE_SHARED=${DEFAULT_wxUSE_SHARED:-yes}
   DEFAULT_wxUSE_OPTIMISE=no
   DEFAULT_wxUSE_PROFILE=no
   DEFAULT_wxUSE_NO_DEPS=no
+  DEFAULT_wxUSE_VARARG_MACROS=no
   DEFAULT_wxUSE_NO_RTTI=no
   DEFAULT_wxUSE_NO_EXCEPTIONS=no
+  DEFAULT_wxUSE_UNIVERSAL_BINARY=no
   DEFAULT_wxUSE_RPATH=yes
   DEFAULT_wxUSE_PERMISSIVE=no
   DEFAULT_wxUSE_DEBUG_FLAG=yes
@@ -395,6 +412,8 @@ if test $DEBUG_CONFIGURE = 1; then
   DEFAULT_wxUSE_LIBMSPACK=no
   DEFAULT_wxUSE_LIBSDL=no
   DEFAULT_wxUSE_LIBGNOMEPRINT=no
+  DEFAULT_wxUSE_LIBGNOMEVFS=no
+  DEFAULT_wxUSE_LIBHILDON=no
   DEFAULT_wxUSE_ODBC=no
   DEFAULT_wxUSE_OPENGL=no
 
@@ -415,6 +434,8 @@ if test $DEBUG_CONFIGURE = 1; then
   DEFAULT_wxUSE_TEXTFILE=no
   DEFAULT_wxUSE_SOUND=no
   DEFAULT_wxUSE_MEDIACTRL=no
+  DEFAULT_wxUSE_GSTREAMER8=no
+  DEFAULT_wxUSE_PRINTF_POS_PARAMS=no
   DEFAULT_wxUSE_INTL=no
   DEFAULT_wxUSE_CONFIG=no
   DEFAULT_wxUSE_FONTMAP=no
@@ -460,7 +481,9 @@ if test $DEBUG_CONFIGURE = 1; then
   DEFAULT_wxUSE_PROTOCOL_FTP=no
   DEFAULT_wxUSE_PROTOCOL_FILE=no
   DEFAULT_wxUSE_URL=no
+  DEFAULT_wxUSE_VARIANT=no
 
+  DEFAULT_wxUSE_ABOUTDLG=no
   DEFAULT_wxUSE_COMMONDLGS=no
   DEFAULT_wxUSE_CHOICEDLG=no
   DEFAULT_wxUSE_COLOURDLG=no
@@ -481,38 +504,55 @@ if test $DEBUG_CONFIGURE = 1; then
   DEFAULT_wxUSE_HTML=no
   DEFAULT_wxUSE_RICHTEXT=no
   DEFAULT_wxUSE_XRC=no
+  DEFAULT_wxUSE_AUI=no
   DEFAULT_wxUSE_WEBKIT=no
   DEFAULT_wxUSE_FILESYSTEM=no
   DEFAULT_wxUSE_FS_INET=no
   DEFAULT_wxUSE_FS_ZIP=no
+  DEFAULT_wxUSE_FS_ARCHIVE=no
   DEFAULT_wxUSE_BUSYINFO=no
   DEFAULT_wxUSE_ARCHIVE_STREAMS=no
   DEFAULT_wxUSE_ZIPSTREAM=no
+  DEFAULT_wxUSE_TARSTREAM=no
   DEFAULT_wxUSE_VALIDATORS=no
 
   DEFAULT_wxUSE_ACCEL=no
+  DEFAULT_wxUSE_ANIMATIONCTRL=no
   DEFAULT_wxUSE_BUTTON=no
   DEFAULT_wxUSE_BMPBUTTON=no
+  DEFAULT_wxUSE_BITMAPCOMBOBOX=no
   DEFAULT_wxUSE_CALCTRL=no
   DEFAULT_wxUSE_CARET=no
   DEFAULT_wxUSE_CHECKBOX=no
   DEFAULT_wxUSE_CHECKLST=no
   DEFAULT_wxUSE_CHOICE=no
   DEFAULT_wxUSE_CHOICEBOOK=no
+  DEFAULT_wxUSE_COLLPANE=no
+  DEFAULT_wxUSE_COLOURPICKERCTRL=no
   DEFAULT_wxUSE_COMBOBOX=no
+  DEFAULT_wxUSE_COMBOCTRL=no
   DEFAULT_wxUSE_DATEPICKCTRL=no
   DEFAULT_wxUSE_DISPLAY=no
+  DEFAULT_wxUSE_DETECT_SM=no
+  DEFAULT_wxUSE_DIRPICKERCTRL=no
+  DEFAULT_wxUSE_FILEPICKERCTRL=no
+  DEFAULT_wxUSE_FONTPICKERCTRL=no
   DEFAULT_wxUSE_GAUGE=no
+  DEFAULT_wxUSE_GRAPHICS_CONTEXT=no
   DEFAULT_wxUSE_GRID=no
+  DEFAULT_wxUSE_HYPERLINKCTRL=no
+  DEFAULT_wxUSE_DATAVIEWCTRL=no
   DEFAULT_wxUSE_IMAGLIST=no
   DEFAULT_wxUSE_LISTBOOK=no
   DEFAULT_wxUSE_LISTBOX=no
   DEFAULT_wxUSE_LISTCTRL=no
   DEFAULT_wxUSE_NOTEBOOK=no
+  DEFAULT_wxUSE_ODCOMBOBOX=no
   DEFAULT_wxUSE_RADIOBOX=no
   DEFAULT_wxUSE_RADIOBTN=no
   DEFAULT_wxUSE_SASH=no
   DEFAULT_wxUSE_SCROLLBAR=no
+  DEFAULT_wxUSE_SEARCHCTRL=no
   DEFAULT_wxUSE_SLIDER=no
   DEFAULT_wxUSE_SPINBTN=no
   DEFAULT_wxUSE_SPINCTRL=no
@@ -522,13 +562,13 @@ if test $DEBUG_CONFIGURE = 1; then
   DEFAULT_wxUSE_STATLINE=no
   DEFAULT_wxUSE_STATTEXT=no
   DEFAULT_wxUSE_STATUSBAR=yes
-  DEFAULT_wxUSE_TABDIALOG=no
+  DEFAULT_wxUSE_TAB_DIALOG=no
   DEFAULT_wxUSE_TEXTCTRL=no
   DEFAULT_wxUSE_TOGGLEBTN=no
   DEFAULT_wxUSE_TOOLBAR=no
   DEFAULT_wxUSE_TOOLBAR_NATIVE=no
-  DEFAULT_wxUSE_TOOLBAR_SIMPLE=no
   DEFAULT_wxUSE_TREEBOOK=no
+  DEFAULT_wxUSE_TOOLBOOK=no
   DEFAULT_wxUSE_TREECTRL=no
   DEFAULT_wxUSE_POPUPWIN=no
   DEFAULT_wxUSE_TIPWINDOW=no
@@ -541,6 +581,7 @@ if test $DEBUG_CONFIGURE = 1; then
   DEFAULT_wxUSE_IMAGE=no
   DEFAULT_wxUSE_GIF=no
   DEFAULT_wxUSE_PCX=no
+  DEFAULT_wxUSE_TGA=no
   DEFAULT_wxUSE_PNM=no
   DEFAULT_wxUSE_IFF=no
   DEFAULT_wxUSE_XPM=no
@@ -558,12 +599,14 @@ else
 
   DEFAULT_wxUSE_THREADS=yes
 
-  DEFAULT_wxUSE_SHARED=yes
+  DEFAULT_wxUSE_SHARED=${DEFAULT_wxUSE_SHARED:-yes}
   DEFAULT_wxUSE_OPTIMISE=yes
   DEFAULT_wxUSE_PROFILE=no
   DEFAULT_wxUSE_NO_DEPS=no
+  DEFAULT_wxUSE_VARARG_MACROS=yes
   DEFAULT_wxUSE_NO_RTTI=no
   DEFAULT_wxUSE_NO_EXCEPTIONS=no
+  DEFAULT_wxUSE_UNIVERSAL_BINARY=no
   DEFAULT_wxUSE_RPATH=yes
   DEFAULT_wxUSE_PERMISSIVE=no
   DEFAULT_wxUSE_DEBUG_FLAG=no
@@ -592,7 +635,9 @@ else
   DEFAULT_wxUSE_LIBXPM=yes
   DEFAULT_wxUSE_LIBMSPACK=yes
   DEFAULT_wxUSE_LIBSDL=no
-  DEFAULT_wxUSE_LIBGNOMEPRINT=no
+  DEFAULT_wxUSE_LIBGNOMEPRINT=yes
+  DEFAULT_wxUSE_LIBGNOMEVFS=no
+  DEFAULT_wxUSE_LIBHILDON=no
   DEFAULT_wxUSE_ODBC=no
   DEFAULT_wxUSE_OPENGL=no
 
@@ -613,6 +658,8 @@ else
   DEFAULT_wxUSE_TEXTFILE=yes
   DEFAULT_wxUSE_SOUND=yes
   DEFAULT_wxUSE_MEDIACTRL=no
+  DEFAULT_wxUSE_GSTREAMER8=no
+  DEFAULT_wxUSE_PRINTF_POS_PARAMS=yes
   DEFAULT_wxUSE_INTL=yes
   DEFAULT_wxUSE_CONFIG=yes
   DEFAULT_wxUSE_FONTMAP=yes
@@ -658,7 +705,9 @@ else
   DEFAULT_wxUSE_PROTOCOL_FTP=yes
   DEFAULT_wxUSE_PROTOCOL_FILE=yes
   DEFAULT_wxUSE_URL=yes
+  DEFAULT_wxUSE_VARIANT=yes
 
+  DEFAULT_wxUSE_ABOUTDLG=yes
   DEFAULT_wxUSE_COMMONDLGS=yes
   DEFAULT_wxUSE_CHOICEDLG=yes
   DEFAULT_wxUSE_COLOURDLG=yes
@@ -679,38 +728,55 @@ else
   DEFAULT_wxUSE_HTML=yes
   DEFAULT_wxUSE_RICHTEXT=yes
   DEFAULT_wxUSE_XRC=yes
+  DEFAULT_wxUSE_AUI=yes
   DEFAULT_wxUSE_WEBKIT=yes
   DEFAULT_wxUSE_FILESYSTEM=yes
   DEFAULT_wxUSE_FS_INET=yes
   DEFAULT_wxUSE_FS_ZIP=yes
+  DEFAULT_wxUSE_FS_ARCHIVE=yes
   DEFAULT_wxUSE_BUSYINFO=yes
   DEFAULT_wxUSE_ARCHIVE_STREAMS=yes
   DEFAULT_wxUSE_ZIPSTREAM=yes
+  DEFAULT_wxUSE_TARSTREAM=yes
   DEFAULT_wxUSE_VALIDATORS=yes
 
   DEFAULT_wxUSE_ACCEL=yes
+  DEFAULT_wxUSE_ANIMATIONCTRL=yes
   DEFAULT_wxUSE_BUTTON=yes
   DEFAULT_wxUSE_BMPBUTTON=yes
+  DEFAULT_wxUSE_BITMAPCOMBOBOX=yes
   DEFAULT_wxUSE_CALCTRL=yes
   DEFAULT_wxUSE_CARET=yes
   DEFAULT_wxUSE_CHECKBOX=yes
   DEFAULT_wxUSE_CHECKLST=yes
   DEFAULT_wxUSE_CHOICE=yes
   DEFAULT_wxUSE_CHOICEBOOK=yes
+  DEFAULT_wxUSE_COLLPANE=yes
+  DEFAULT_wxUSE_COLOURPICKERCTRL=yes
   DEFAULT_wxUSE_COMBOBOX=yes
+  DEFAULT_wxUSE_COMBOCTRL=yes
   DEFAULT_wxUSE_DATEPICKCTRL=yes
   DEFAULT_wxUSE_DISPLAY=yes
+  DEFAULT_wxUSE_DETECT_SM=yes
+  DEFAULT_wxUSE_DIRPICKERCTRL=yes
+  DEFAULT_wxUSE_FILEPICKERCTRL=yes
+  DEFAULT_wxUSE_FONTPICKERCTRL=yes
   DEFAULT_wxUSE_GAUGE=yes
   DEFAULT_wxUSE_GRID=yes
+  DEFAULT_wxUSE_GRAPHICS_CONTEXT=no
+  DEFAULT_wxUSE_HYPERLINKCTRL=yes
+  DEFAULT_wxUSE_DATAVIEWCTRL=no
   DEFAULT_wxUSE_IMAGLIST=yes
   DEFAULT_wxUSE_LISTBOOK=yes
   DEFAULT_wxUSE_LISTBOX=yes
   DEFAULT_wxUSE_LISTCTRL=yes
   DEFAULT_wxUSE_NOTEBOOK=yes
+  DEFAULT_wxUSE_ODCOMBOBOX=yes
   DEFAULT_wxUSE_RADIOBOX=yes
   DEFAULT_wxUSE_RADIOBTN=yes
   DEFAULT_wxUSE_SASH=yes
   DEFAULT_wxUSE_SCROLLBAR=yes
+  DEFAULT_wxUSE_SEARCHCTRL=yes
   DEFAULT_wxUSE_SLIDER=yes
   DEFAULT_wxUSE_SPINBTN=yes
   DEFAULT_wxUSE_SPINCTRL=yes
@@ -720,13 +786,13 @@ else
   DEFAULT_wxUSE_STATLINE=yes
   DEFAULT_wxUSE_STATTEXT=yes
   DEFAULT_wxUSE_STATUSBAR=yes
-  DEFAULT_wxUSE_TABDIALOG=no
+  DEFAULT_wxUSE_TAB_DIALOG=no
   DEFAULT_wxUSE_TEXTCTRL=yes
   DEFAULT_wxUSE_TOGGLEBTN=yes
   DEFAULT_wxUSE_TOOLBAR=yes
   DEFAULT_wxUSE_TOOLBAR_NATIVE=yes
-  DEFAULT_wxUSE_TOOLBAR_SIMPLE=yes
   DEFAULT_wxUSE_TREEBOOK=yes
+  DEFAULT_wxUSE_TOOLBOOK=yes
   DEFAULT_wxUSE_TREECTRL=yes
   DEFAULT_wxUSE_POPUPWIN=yes
   DEFAULT_wxUSE_TIPWINDOW=yes
@@ -739,7 +805,8 @@ else
   DEFAULT_wxUSE_IMAGE=yes
   DEFAULT_wxUSE_GIF=yes
   DEFAULT_wxUSE_PCX=yes
-  DEFAULT_wxUSE_IFF=no
+  DEFAULT_wxUSE_TGA=yes
+  DEFAULT_wxUSE_IFF=no  dnl why is this set to "no"?
   DEFAULT_wxUSE_PNM=yes
   DEFAULT_wxUSE_XPM=yes
   DEFAULT_wxUSE_ICO_CUR=yes
@@ -749,7 +816,7 @@ else
   DEFAULT_wxUSE_PLUGINS=no
   DEFAULT_wxUSE_OFFICIAL_BUILD=no
 
-  dnl Appliable only when --with-gtk was used:
+  dnl Applicable only when --with-gtk was used:
   DEFAULT_wxUSE_GTK2=yes
 fi
 
@@ -802,6 +869,7 @@ AC_ARG_WITH(wine,          [  --with-wine             use Wine], [wxUSE_WINE="$w
 AC_ARG_WITH(msw,           [  --with-msw              use MS-Windows], [wxUSE_MSW="$withval" CACHE_MSW=1 TOOLKIT_GIVEN=1])
 AC_ARG_WITH(pm,            [  --with-pm               use OS/2 Presentation Manager], [wxUSE_PM="$withval" CACHE_PM=1 TOOLKIT_GIVEN=1])
 AC_ARG_WITH(mgl,           [  --with-mgl              use SciTech MGL], [wxUSE_MGL="$withval" wxUSE_UNIVERSAL="yes" CACHE_MGL=1 TOOLKIT_GIVEN=1])
+AC_ARG_WITH(directfb,      [  --with-directfb         use DirectFB], [wxUSE_DFB="$withval" wxUSE_UNIVERSAL="yes" CACHE_DFB=1 TOOLKIT_GIVEN=1])
 AC_ARG_WITH(microwin,      [  --with-microwin         use MicroWindows], [wxUSE_MICROWIN="$withval" CACHE_MICROWIN=1 TOOLKIT_GIVEN=1])
 AC_ARG_WITH(x11,           [  --with-x11              use X11], [wxUSE_X11="$withval" wxUSE_UNIVERSAL="yes" CACHE_X11=1 TOOLKIT_GIVEN=1])
 WX_ARG_ENABLE(nanox,       [  --enable-nanox          use NanoX], wxUSE_NANOX)
@@ -815,9 +883,15 @@ WX_ARG_SYS_WITH(libtiff,   [  --with-libtiff          use libtiff (TIFF file for
 WX_ARG_SYS_WITH(libxpm,    [  --with-libxpm           use libxpm (XPM file format)], wxUSE_LIBXPM)
 WX_ARG_WITH(libmspack,     [  --with-libmspack        use libmspack (CHM help files loading)], wxUSE_LIBMSPACK)
 WX_ARG_WITH(sdl,           [  --with-sdl              use SDL for audio on Unix], wxUSE_LIBSDL)
-WX_ARG_WITH(gnomeprint,    [  --with-gnomeprint       use GNOME print for printing under Unix], wxUSE_LIBGNOMEPRINT)
+WX_ARG_WITH(gnomeprint,    [  --with-gnomeprint       use GNOME print for printing under GNOME], wxUSE_LIBGNOMEPRINT)
+WX_ARG_WITH(gnomevfs,      [  --with-gnomevfs         use GNOME VFS for associating MIME types], wxUSE_LIBGNOMEVFS)
+WX_ARG_WITH(hildon,        [  --with-hildon           use Hildon framework for Nokia 770], wxUSE_LIBHILDON)
 WX_ARG_WITH(opengl,        [  --with-opengl           use OpenGL (or Mesa)], wxUSE_OPENGL)
 
+if test "$wxUSE_UNIVERSAL" = "yes"; then
+    AC_ARG_WITH(themes,        [  --with-themes=all|list  use only the specified comma-separated list of wxUniversal themes], [wxUNIV_THEMES="$withval"])
+fi
+
 fi
 dnl for GUI only
 
@@ -860,9 +934,11 @@ WX_ARG_ENABLE(no_rtti,       [  --enable-no_rtti        create code without RTTI
 WX_ARG_ENABLE(no_exceptions, [  --enable-no_exceptions  create code without C++ exceptions handling], wxUSE_NO_EXCEPTIONS)
 WX_ARG_ENABLE(permissive,    [  --enable-permissive     compile code disregarding strict ANSI], wxUSE_PERMISSIVE)
 WX_ARG_ENABLE(no_deps,       [  --enable-no_deps        create code without dependency information], wxUSE_NO_DEPS)
+WX_ARG_ENABLE(vararg_macros, [  --disable-vararg_macros don't use vararg macros, even if they are supported], wxUSE_VARARG_MACROS)
+WX_ARG_ENABLE_PARAM(universal_binary, [[  --enable-universal_binary[=SDK] create Mac PowerPC and Intel Universal binary (not yet working)]], wxUSE_UNIVERSAL_BINARY)
 
-WX_ARG_ENABLE(compat24,      [  --enable-compat24       enable wxWidgets 2.4 compatibility], WXWIN_COMPATIBILITY_2_4, enable)
-WX_ARG_ENABLE(compat26,      [  --disable-compat26      disable wxWidgets 2.6 compatibility], WXWIN_COMPATIBILITY_2_6, disable)
+WX_ARG_ENABLE(compat26,      [  --enable-compat26       enable wxWidgets 2.6 compatibility], WXWIN_COMPATIBILITY_2_6, enable)
+WX_ARG_ENABLE(compat28,      [  --disable-compat28      disable wxWidgets 2.8 compatibility], WXWIN_COMPATIBILITY_2_8, disable)
 
 WX_ARG_ENABLE(rpath,         [  --disable-rpath         disable use of rpath for uninstalled builds], wxUSE_RPATH)
 
@@ -900,8 +976,9 @@ WX_ARG_ENABLE(ffile,         [  --enable-ffile          use wxFFile class], wxUS
 WX_ARG_ENABLE(file,          [  --enable-file           use wxFile class], wxUSE_FILE)
 WX_ARG_ENABLE(filesystem,    [  --enable-filesystem     use virtual file systems classes], wxUSE_FILESYSTEM)
 WX_ARG_ENABLE(fontmap,       [  --enable-fontmap        use font encodings conversion classes], wxUSE_FONTMAP)
+WX_ARG_ENABLE(fs_archive,    [  --enable-fs_archive     use virtual archive filesystems], wxUSE_FS_ARCHIVE)
 WX_ARG_ENABLE(fs_inet,       [  --enable-fs_inet        use virtual HTTP/FTP filesystems], wxUSE_FS_INET)
-WX_ARG_ENABLE(fs_zip,        [  --enable-fs_zip         use virtual ZIP filesystems], wxUSE_FS_ZIP)
+WX_ARG_ENABLE(fs_zip,        [  --enable-fs_zip         now replaced by fs_archive], wxUSE_FS_ZIP)
 WX_ARG_ENABLE(geometry,      [  --enable-geometry       use geometry class], wxUSE_GEOMETRY)
 WX_ARG_ENABLE(log,           [  --enable-log            use logging system], wxUSE_LOG)
 WX_ARG_ENABLE(longlong,      [  --enable-longlong       use wxLongLong class], wxUSE_LONGLONG)
@@ -914,16 +991,19 @@ WX_ARG_ENABLE(stdpaths,      [  --enable-stdpaths       use wxStandardPaths clas
 WX_ARG_ENABLE(stopwatch,     [  --enable-stopwatch      use wxStopWatch class], wxUSE_STOPWATCH)
 WX_ARG_ENABLE(streams,       [  --enable-streams        use wxStream etc classes], wxUSE_STREAMS)
 WX_ARG_ENABLE(system_options,[  --enable-sysoptions     use wxSystemOptions], wxUSE_SYSTEM_OPTIONS)
+WX_ARG_ENABLE(tarstream,     [  --enable-tarstream      use wxTar streams], wxUSE_TARSTREAM)
 WX_ARG_ENABLE(textbuf,       [  --enable-textbuf        use wxTextBuffer class], wxUSE_TEXTBUFFER)
 WX_ARG_ENABLE(textfile,      [  --enable-textfile       use wxTextFile class], wxUSE_TEXTFILE)
 WX_ARG_ENABLE(timer,         [  --enable-timer          use wxTimer class], wxUSE_TIMER)
 WX_ARG_ENABLE(unicode,       [  --enable-unicode        compile wxString with Unicode support], wxUSE_UNICODE)
 WX_ARG_ENABLE(sound,         [  --enable-sound          use wxSound class], wxUSE_SOUND)
 WX_ARG_ENABLE(mediactrl,     [  --enable-mediactrl      use wxMediaCtrl class], wxUSE_MEDIACTRL)
-WX_ARG_ENABLE(wxprintfv,     [  --enable-wxprintfv      use wxWidgets implementation of vprintf()], wxUSE_EXPERIMENTAL_PRINTF)
+WX_ARG_ENABLE(gstreamer8,    [  --enable-gstreamer8     force GStreamer 0.8 instead of 0.10 with the wxMediaCtrl class on unix], wxUSE_GSTREAMER8)
+WX_ARG_ENABLE(printfposparam,[  --enable-printfposparam use wxVsnprintf() which supports positional parameters], wxUSE_PRINTF_POS_PARAMS)
 WX_ARG_ENABLE(zipstream,     [  --enable-zipstream      use wxZip streams], wxUSE_ZIPSTREAM)
 
 WX_ARG_ENABLE(url,           [  --enable-url            use wxURL class], wxUSE_URL)
+WX_ARG_ENABLE(variant,       [  --enable-variant        use wxVariant class], wxUSE_VARIANT)
 WX_ARG_ENABLE(protocol,      [  --enable-protocol       use wxProtocol class], wxUSE_PROTOCOL)
 WX_ARG_ENABLE(protocol_http, [  --enable-protocol-http  HTTP support in wxProtocol], wxUSE_PROTOCOL_HTTP)
 WX_ARG_ENABLE(protocol_ftp,  [  --enable-protocol-ftp   FTP support in wxProtocol], wxUSE_PROTOCOL_FTP)
@@ -948,6 +1028,7 @@ WX_ARG_ENABLE(mshtmlhelp,  [  --enable-mshtmlhelp     use MS HTML Help (win32)],
 WX_ARG_ENABLE(html,        [  --enable-html           use wxHTML sub-library], wxUSE_HTML)
 WX_ARG_ENABLE(htmlhelp,    [  --enable-htmlhelp       use wxHTML-based help], wxUSE_WXHTML_HELP)
 WX_ARG_ENABLE(xrc,         [  --enable-xrc            use XRC resources sub-library], wxUSE_XRC)
+WX_ARG_ENABLE(aui,         [  --enable-aui            use AUI docking library], wxUSE_AUI)
 WX_ARG_ENABLE(constraints, [  --enable-constraints    use layout-constraints system], wxUSE_CONSTRAINTS)
 WX_ARG_ENABLE(printarch,   [  --enable-printarch      use printing architecture], wxUSE_PRINTING_ARCHITECTURE)
 WX_ARG_ENABLE(mdi,         [  --enable-mdi            use multiple document interface architecture], wxUSE_MDI)
@@ -956,7 +1037,8 @@ WX_ARG_ENABLE(loggui,      [  --enable-loggui         use standard GUI logger],
 WX_ARG_ENABLE(logwin,      [  --enable-logwin         use wxLogWindow], wxUSE_LOGWINDOW)
 WX_ARG_ENABLE(logdialog,   [  --enable-logdialog      use wxLogDialog], wxUSE_LOGDIALOG)
 WX_ARG_ENABLE(webkit,      [  --enable-webkit         use wxWebKitCtrl (Mac)], wxUSE_WEBKIT)
-WX_ARG_ENABLE(html,        [  --enable-richtext       use wxRichTextCtrl], wxUSE_RICHTEXT)
+WX_ARG_ENABLE(richtext,    [  --enable-richtext       use wxRichTextCtrl], wxUSE_RICHTEXT)
+WX_ARG_ENABLE(graphics_ctx, [  --enable-graphics_ctx   use graphics context 2D drawing API], wxUSE_GRAPHICS_CONTEXT)
 
 dnl ---------------------------------------------------------------------------
 dnl PostScript options
@@ -995,6 +1077,7 @@ dnl --disable-<control> later on the command line - but by default all will be
 dnl used (and vice versa)
 if test "$wxUSE_CONTROLS" = "yes"; then
   DEFAULT_wxUSE_ACCEL=yes
+  DEFAULT_wxUSE_ANIMATIONCTRL=yes
   DEFAULT_wxUSE_BMPBUTTON=yes
   DEFAULT_wxUSE_BUTTON=yes
   DEFAULT_wxUSE_CALCTRL=yes
@@ -1004,9 +1087,19 @@ if test "$wxUSE_CONTROLS" = "yes"; then
   DEFAULT_wxUSE_CHECKLISTBOX=yes
   DEFAULT_wxUSE_CHOICE=yes
   DEFAULT_wxUSE_CHOICEBOOK=yes
+  DEFAULT_wxUSE_COLLPANE=yes
+  DEFAULT_wxUSE_COLOURPICKERCTRL=yes
+  DEFAULT_wxUSE_COMBOBOX=yes
   DEFAULT_wxUSE_DATEPICKCTRL=yes
+  DEFAULT_wxUSE_DISPLAY=yes
+  DEFAULT_wxUSE_DETECT_SM=yes
+  DEFAULT_wxUSE_DIRPICKERCTRL=yes
+  DEFAULT_wxUSE_FILEPICKERCTRL=yes
+  DEFAULT_wxUSE_FONTPICKERCTRL=yes
   DEFAULT_wxUSE_GAUGE=yes
   DEFAULT_wxUSE_GRID=yes
+  DEFAULT_wxUSE_HYPERLINKCTRL=yes
+  DEFAULT_wxUSE_DATAVIEWCTRL=no
   DEFAULT_wxUSE_IMAGLIST=yes
   DEFAULT_wxUSE_LISTBOOK=yes
   DEFAULT_wxUSE_LISTBOX=yes
@@ -1016,6 +1109,7 @@ if test "$wxUSE_CONTROLS" = "yes"; then
   DEFAULT_wxUSE_RADIOBTN=yes
   DEFAULT_wxUSE_SASH=yes
   DEFAULT_wxUSE_SCROLLBAR=yes
+  DEFAULT_wxUSE_SEARCHCTRL=yes
   DEFAULT_wxUSE_SLIDER=yes
   DEFAULT_wxUSE_SPINBTN=yes
   DEFAULT_wxUSE_SPINCTRL=yes
@@ -1028,26 +1122,37 @@ if test "$wxUSE_CONTROLS" = "yes"; then
   DEFAULT_wxUSE_TOGGLEBTN=yes
   DEFAULT_wxUSE_TOOLBAR=yes
   DEFAULT_wxUSE_TOOLBAR_NATIVE=yes
-  DEFAULT_wxUSE_TOOLBAR_SIMPLE=yes
   DEFAULT_wxUSE_TOOLTIPS=yes
   DEFAULT_wxUSE_TREEBOOK=yes
+  DEFAULT_wxUSE_TOOLBOOK=yes
   DEFAULT_wxUSE_TREECTRL=yes
   DEFAULT_wxUSE_POPUPWIN=yes
   DEFAULT_wxUSE_TIPWINDOW=yes
 elif test "$wxUSE_CONTROLS" = "no"; then
   DEFAULT_wxUSE_ACCEL=no
+  DEFAULT_wxUSE_ANIMATIONCTRL=no
   DEFAULT_wxUSE_BMPBUTTON=no
   DEFAULT_wxUSE_BUTTON=no
   DEFAULT_wxUSE_CALCTRL=no
   DEFAULT_wxUSE_CARET=no
+  DEFAULT_wxUSE_COLLPANE=no
   DEFAULT_wxUSE_COMBOBOX=no
   DEFAULT_wxUSE_CHECKBOX=no
   DEFAULT_wxUSE_CHECKLISTBOX=no
   DEFAULT_wxUSE_CHOICE=no
   DEFAULT_wxUSE_CHOICEBOOK=no
+  DEFAULT_wxUSE_COLOURPICKERCTRL=no
+  DEFAULT_wxUSE_COMBOBOX=no
   DEFAULT_wxUSE_DATEPICKCTRL=no
+  DEFAULT_wxUSE_DISPLAY=no
+  DEFAULT_wxUSE_DETECT_SM=no
+  DEFAULT_wxUSE_DIRPICKERCTRL=no
+  DEFAULT_wxUSE_FILEPICKERCTRL=no
+  DEFAULT_wxUSE_FONTPICKERCTRL=no
   DEFAULT_wxUSE_GAUGE=no
   DEFAULT_wxUSE_GRID=no
+  DEFAULT_wxUSE_HYPERLINKCTRL=no
+  DEFAULT_wxUSE_DATAVIEWCTRL=no
   DEFAULT_wxUSE_IMAGLIST=no
   DEFAULT_wxUSE_LISTBOOK=no
   DEFAULT_wxUSE_LISTBOX=no
@@ -1057,6 +1162,7 @@ elif test "$wxUSE_CONTROLS" = "no"; then
   DEFAULT_wxUSE_RADIOBTN=no
   DEFAULT_wxUSE_SASH=no
   DEFAULT_wxUSE_SCROLLBAR=no
+  DEFAULT_wxUSE_SEARCHCTRL=no
   DEFAULT_wxUSE_SLIDER=no
   DEFAULT_wxUSE_SPINBTN=no
   DEFAULT_wxUSE_SPINCTRL=no
@@ -1069,37 +1175,50 @@ elif test "$wxUSE_CONTROLS" = "no"; then
   DEFAULT_wxUSE_TOGGLEBTN=no
   DEFAULT_wxUSE_TOOLBAR=no
   DEFAULT_wxUSE_TOOLBAR_NATIVE=no
-  DEFAULT_wxUSE_TOOLBAR_SIMPLE=no
   DEFAULT_wxUSE_TOOLTIPS=no
   DEFAULT_wxUSE_TREEBOOK=no
+  DEFAULT_wxUSE_TOOLBOOK=no
   DEFAULT_wxUSE_TREECTRL=no
   DEFAULT_wxUSE_POPUPWIN=no
   DEFAULT_wxUSE_TIPWINDOW=no
 fi
 
 WX_ARG_ENABLE(accel,       [  --enable-accel          use accelerators], wxUSE_ACCEL)
+WX_ARG_ENABLE(animatectrl, [  --enable-animatectrl    use wxAnimationCtrl class], wxUSE_ANIMATIONCTRL)
 WX_ARG_ENABLE(button,      [  --enable-button         use wxButton class], wxUSE_BUTTON)
 WX_ARG_ENABLE(bmpbutton,   [  --enable-bmpbutton      use wxBitmapButton class], wxUSE_BMPBUTTON)
+WX_ARG_ENABLE(bmpcombobox, [  --enable-bmpcombobox    use wxBitmapComboBox class], wxUSE_BITMAPCOMBOBOX)
 WX_ARG_ENABLE(calendar,    [  --enable-calendar       use wxCalendarCtrl class], wxUSE_CALCTRL)
 WX_ARG_ENABLE(caret,       [  --enable-caret          use wxCaret class], wxUSE_CARET)
 WX_ARG_ENABLE(checkbox,    [  --enable-checkbox       use wxCheckBox class], wxUSE_CHECKBOX)
 WX_ARG_ENABLE(checklst,    [  --enable-checklst       use wxCheckListBox (listbox with checkboxes) class], wxUSE_CHECKLST)
 WX_ARG_ENABLE(choice,      [  --enable-choice         use wxChoice class], wxUSE_CHOICE)
 WX_ARG_ENABLE(choicebook,  [  --enable-choicebook     use wxChoicebook class], wxUSE_CHOICEBOOK)
+WX_ARG_ENABLE(collpane,    [  --enable-collpane       use wxCollapsiblePane class], wxUSE_COLLPANE)
+WX_ARG_ENABLE(colourpicker,[  --enable-colourpicker   use wxColourPickerCtrl class], wxUSE_COLOURPICKERCTRL)
 WX_ARG_ENABLE(combobox,    [  --enable-combobox       use wxComboBox class], wxUSE_COMBOBOX)
+WX_ARG_ENABLE(comboctrl,   [  --enable-comboctrl      use wxComboCtrl class], wxUSE_COMBOCTRL)
 WX_ARG_ENABLE(datepick,    [  --enable-datepick       use wxDatePickerCtrl class], wxUSE_DATEPICKCTRL)
+WX_ARG_ENABLE(dirpicker,   [  --enable-dirpicker      use wxDirPickerCtrl class], wxUSE_DIRPICKERCTRL)
 WX_ARG_ENABLE(display,     [  --enable-display        use wxDisplay class], wxUSE_DISPLAY)
+WX_ARG_ENABLE(detect_sm,   [  --enable-detect_sm      use code to detect X11 session manager], wxUSE_DETECT_SM)
+WX_ARG_ENABLE(filepicker,  [  --enable-filepicker     use wxFilePickerCtrl class], wxUSE_FILEPICKERCTRL)
+WX_ARG_ENABLE(fontpicker,  [  --enable-fontpicker     use wxFontPickerCtrl class], wxUSE_FONTPICKERCTRL)
 WX_ARG_ENABLE(gauge,       [  --enable-gauge          use wxGauge class], wxUSE_GAUGE)
 WX_ARG_ENABLE(grid,        [  --enable-grid           use wxGrid class], wxUSE_GRID)
+WX_ARG_ENABLE(dataviewctrl,[  --enable-dataviewctrl   use wxDataViewCtrl class], wxUSE_DATAVIEWCTRL)
+WX_ARG_ENABLE(hyperlink,   [  --enable-hyperlink      use wxHyperlinkCtrl class], wxUSE_HYPERLINKCTRL)
 WX_ARG_ENABLE(imaglist,    [  --enable-imaglist       use wxImageList class], wxUSE_IMAGLIST)
 WX_ARG_ENABLE(listbook,    [  --enable-listbook       use wxListbook class], wxUSE_LISTBOOK)
 WX_ARG_ENABLE(listbox,     [  --enable-listbox        use wxListBox class], wxUSE_LISTBOX)
 WX_ARG_ENABLE(listctrl,    [  --enable-listctrl       use wxListCtrl class], wxUSE_LISTCTRL)
 WX_ARG_ENABLE(notebook,    [  --enable-notebook       use wxNotebook class], wxUSE_NOTEBOOK)
+WX_ARG_ENABLE(odcombobox,  [  --enable-odcombobox     use wxOwnerDrawnComboBox class], wxUSE_ODCOMBOBOX)
 WX_ARG_ENABLE(radiobox,    [  --enable-radiobox       use wxRadioBox class], wxUSE_RADIOBOX)
 WX_ARG_ENABLE(radiobtn,    [  --enable-radiobtn       use wxRadioButton class], wxUSE_RADIOBTN)
 WX_ARG_ENABLE(sash,        [  --enable-sash           use wxSashWindow class], wxUSE_SASH)
 WX_ARG_ENABLE(scrollbar,   [  --enable-scrollbar      use wxScrollBar class and scrollable windows], wxUSE_SCROLLBAR)
+WX_ARG_ENABLE(searchctrl,  [  --enable-searchctrl     use wxSearchCtrl class], wxUSE_SEARCHCTRL)
 WX_ARG_ENABLE(slider,      [  --enable-slider         use wxSlider class], wxUSE_SLIDER)
 WX_ARG_ENABLE(spinbtn,     [  --enable-spinbtn        use wxSpinButton class], wxUSE_SPINBTN)
 WX_ARG_ENABLE(spinctrl,    [  --enable-spinctrl       use wxSpinCtrl class], wxUSE_SPINCTRL)
@@ -1109,13 +1228,13 @@ WX_ARG_ENABLE(statbox,     [  --enable-statbox        use wxStaticBox class], wx
 WX_ARG_ENABLE(statline,    [  --enable-statline       use wxStaticLine class], wxUSE_STATLINE)
 WX_ARG_ENABLE(stattext,    [  --enable-stattext       use wxStaticText class], wxUSE_STATTEXT)
 WX_ARG_ENABLE(statusbar,   [  --enable-statusbar      use wxStatusBar class], wxUSE_STATUSBAR)
-WX_ARG_ENABLE(tabdialog,   [  --enable-tabdialog      use wxTabControl class], wxUSE_TABDIALOG)
+WX_ARG_ENABLE(tabdialog,   [  --enable-tabdialog      use wxTabControl class], wxUSE_TAB_DIALOG)
 WX_ARG_ENABLE(textctrl,    [  --enable-textctrl       use wxTextCtrl class], wxUSE_TEXTCTRL)
 WX_ARG_ENABLE(togglebtn,   [  --enable-togglebtn      use wxToggleButton class], wxUSE_TOGGLEBTN)
 WX_ARG_ENABLE(toolbar,     [  --enable-toolbar        use wxToolBar class], wxUSE_TOOLBAR)
 WX_ARG_ENABLE(tbarnative,  [  --enable-tbarnative     use native wxToolBar class], wxUSE_TOOLBAR_NATIVE)
-WX_ARG_ENABLE(tbarsmpl,    [  --enable-tbarsmpl       use wxToolBarSimple class], wxUSE_TOOLBAR_SIMPLE)
 WX_ARG_ENABLE(treebook,    [  --enable-treebook       use wxTreebook class], wxUSE_TREEBOOK)
+WX_ARG_ENABLE(toolbook,    [  --enable-toolbook       use wxToolbook class], wxUSE_TOOLBOOK)
 WX_ARG_ENABLE(treectrl,    [  --enable-treectrl       use wxTreeCtrl class], wxUSE_TREECTRL)
 WX_ARG_ENABLE(tipwindow,   [  --enable-tipwindow      use wxTipWindow class], wxUSE_TIPWINDOW)
 WX_ARG_ENABLE(popupwin,    [  --enable-popupwin       use wxPopUpWindow class], wxUSE_POPUPWIN)
@@ -1125,6 +1244,7 @@ dnl common dialogs
 dnl ---------------------------------------------------------------------------
 
 WX_ARG_ENABLE(commondlg,   [  --enable-commondlg      use all common dialogs], wxUSE_COMMONDLGS)
+WX_ARG_ENABLE(aboutdlg,    [  --enable-aboutdlg       use wxAboutBox], wxUSE_ABOUTDLG)
 WX_ARG_ENABLE(choicedlg,   [  --enable-choicedlg      use wxChoiceDialog], wxUSE_CHOICEDLG)
 WX_ARG_ENABLE(coldlg,      [  --enable-coldlg         use wxColourDialog], wxUSE_COLOURDLG)
 WX_ARG_ENABLE(filedlg,     [  --enable-filedlg        use wxFileDialog], wxUSE_FILEDLG)
@@ -1167,6 +1287,7 @@ WX_ARG_ENABLE(palette,     [  --enable-palette        use wxPalette class], wxUS
 WX_ARG_ENABLE(image,       [  --enable-image          use wxImage class], wxUSE_IMAGE)
 WX_ARG_ENABLE(gif,         [  --enable-gif            use gif images (GIF file format)], wxUSE_GIF)
 WX_ARG_ENABLE(pcx,         [  --enable-pcx            use pcx images (PCX file format)], wxUSE_PCX)
+WX_ARG_ENABLE(tga,         [  --enable-tga            use tga images (TGA file format)], wxUSE_TGA)
 WX_ARG_ENABLE(iff,         [  --enable-iff            use iff images (IFF file format)], wxUSE_IFF)
 WX_ARG_ENABLE(pnm,         [  --enable-pnm            use pnm images (PNM file format)], wxUSE_PNM)
 WX_ARG_ENABLE(xpm,         [  --enable-xpm            use xpm images (XPM file format)], wxUSE_XPM)
@@ -1210,6 +1331,8 @@ if test "$wxUSE_WINE" = "yes"; then
     DEFAULT_DEFAULT_wxUSE_MOTIF=0
     DEFAULT_DEFAULT_wxUSE_MSW=1
     wxUSE_SHARED=no
+    CC=${CC:-winegcc}
+    CXX=${CXX:-wineg++}
 fi
 
 
@@ -1254,7 +1377,7 @@ if test "$wxUSE_GUI" = "yes"; then
     dnl we suppose that expr is available (maybe there is a better way to do
     dnl this? what about using ALL_TOOLKITS? TODO)
     NUM_TOOLKITS=`expr ${wxUSE_COCOA:-0} + ${wxUSE_GTK:-0} + ${wxUSE_MAC:-0} \
-                  + ${wxUSE_MGL:-0} + ${wxUSE_MICROWIN:-0} \
+                  + ${wxUSE_MGL:-0} + ${wxUSE_DFB:-0} + ${wxUSE_MICROWIN:-0} \
                   + ${wxUSE_MOTIF:-0} + ${wxUSE_MSW:-0} + ${wxUSE_X11:-0}`
 
     dnl Allow wxUSE_PM only for OS/2 with EMX.
@@ -1308,61 +1431,6 @@ else
     fi
 fi
 
-dnl ---------------------------------------------------------------------------
-dnl When we are using Cygwin with Motif/GTK+, we want it to appear like
-dnl 'just' a POSIX platform, so the Win32 API must not be available
-dnl ---------------------------------------------------------------------------
-dnl (Windows-only piece)
-wants_win32=0
-doesnt_want_win32=0
-case "${host}" in
-  *-*-cygwin*)
-      if test "$wxUSE_MSW" = 1 ; then
-        wants_win32=1
-        BAKEFILE_FORCE_PLATFORM=win32
-      else
-        doesnt_want_win32=1
-      fi
-  ;;
-  *-*-mingw*)
-      wants_win32=1
-  ;;
-esac
-
-dnl ---------------------------------------------------------------------------
-dnl Wine is a virtual platform, we need to patch things up a bit
-dnl ---------------------------------------------------------------------------
-if test "$wxUSE_WINE" = "yes"; then
-    wants_win32=1
-    dnl FIXME: we should do a better job of testing for these
-    CC=winegcc
-    CXX=wineg++
-    LDFLAGS_GUI="-mwindows"
-fi
-
-dnl NB: The two tests bellow are *NOT* mutually exclusive! They should only
-dnl     take effect on Cygwin/Mingw and not other platforms.
-if test "$wants_win32" = 1 ; then
-    USE_UNIX=0
-    USE_WIN32=1
-    AC_DEFINE(__WIN32__)
-    AC_DEFINE(__WIN95__)
-    AC_DEFINE(__WINDOWS__)
-    AC_DEFINE(__GNUWIN32__)
-    AC_DEFINE(STRICT)
-    AC_DEFINE(WINVER, 0x0400)
-fi
-if test "$doesnt_want_win32" = 1 ; then
-    USE_UNIX=1
-    USE_WIN32=0
-fi
-dnl (end of Windows-only piece)
-
-if test "$USE_UNIX" = 1 ; then
-    wxUSE_UNIX=yes
-    AC_DEFINE(__UNIX__)
-fi
-
 dnl ---------------------------------------------------------------------------
 dnl Checks for programs
 dnl ---------------------------------------------------------------------------
@@ -1386,9 +1454,6 @@ dnl is -traditional needed for correct compilations
 dnl   adds -traditional for gcc if needed
 AC_PROG_GCC_TRADITIONAL
 
-AC_LANG_SAVE
-AC_LANG_CPLUSPLUS
-
 dnl C++-compiler checks
 dnl   defines CXX with the compiler to use
 dnl   defines GXX with yes if using gxx
@@ -1399,17 +1464,19 @@ dnl see CFLAGS line above
 CXXFLAGS=${CXXFLAGS:=}
 AC_BAKEFILE_PROG_CXX
 
-AC_LANG_RESTORE
-
 dnl ranlib command
 dnl   defines RANLIB with the appropriate command
 AC_PROG_RANLIB
 
 dnl ar command
 dnl   defines AR with the appropriate command
-AC_CHECK_TOOL(AR, ar)
-if test "x$AR" = "x" ; then
-    AC_MSG_ERROR([ar is needed to build wxWidgets])
+dnl 
+dnl For Sun CC AC_BAKEFILE below sets AR to the compiler itself.
+if test "x$SUNCXX" != xyes; then
+    AC_CHECK_TOOL(AR, ar)
+    if test "x$AR" = "x" ; then
+        AC_MSG_ERROR([ar is needed to build wxWidgets])
+    fi
 fi
 
 dnl install checks
@@ -1466,7 +1533,7 @@ dnl does make support "-include" (only GNU make does AFAIK)?
 AC_CACHE_CHECK([if make is GNU make], wx_cv_prog_makeisgnu,
 [
     if ( ${SHELL-sh} -c "${MAKE-make} --version" 2> /dev/null |
-            egrep -s GNU > /dev/null); then
+            $EGREP -s GNU > /dev/null); then
         wx_cv_prog_makeisgnu="yes"
     else
         wx_cv_prog_makeisgnu="no"
@@ -1525,9 +1592,6 @@ fi dnl not GNU make
 dnl needed for making link to setup.h
 AC_PROG_LN_S
 
-dnl lndir can be used by "make dist" to save copying files
-AC_CHECK_PROGS(LNDIR, lndir, [cp -pR])
-
 
 dnl ------------------------------------------------------------------------
 dnl Platform specific tests
@@ -1577,6 +1641,74 @@ case "${host}" in
   ;;
 esac
 
+dnl Determine whether we want to use Cygwin as Windows or POSIX platform: the
+dnl latter makes more sense for wxGTK/Motif/X11 ports
+wants_win32=0
+doesnt_want_win32=0
+case "${host}" in
+  *-*-cygwin*)
+      if test "$wxUSE_MSW" = 1 ; then
+        wants_win32=1
+      else
+        dnl when we use cygwin compiler with -mno-cygwin option it uses mingw32
+        dnl headers and libraries, so it's Windows-like in this case
+        AC_CACHE_CHECK([if -mno-cygwin is in effect], wx_cv_nocygwin,
+            [
+                AC_TRY_COMPILE(
+                    [],
+                    [
+                        #ifdef __MINGW32__
+                            choke me
+                        #endif
+                    ],
+                    wx_cv_nocygwin=no,
+                    wx_cv_nocygwin=yes
+                )
+            ]
+        )
+
+        if test "$wx_cv_nocygwin" = "yes"; then
+            wants_win32=1
+        else
+            doesnt_want_win32=1
+        fi
+      fi
+      if test "$wants_win32" = 1 ; then
+        BAKEFILE_FORCE_PLATFORM=win32
+      fi
+  ;;
+  *-*-mingw*)
+      wants_win32=1
+  ;;
+esac
+
+if test "$wxUSE_WINE" = "yes"; then
+    wants_win32=1
+    LDFLAGS_GUI="-mwindows"
+fi
+
+dnl NB: The two tests bellow are *NOT* mutually exclusive! They should only
+dnl     take effect on Cygwin/Mingw and not other platforms.
+if test "$wants_win32" = 1 ; then
+    USE_UNIX=0
+    USE_WIN32=1
+    AC_DEFINE(__WIN32__)
+    AC_DEFINE(__WIN95__)
+    AC_DEFINE(__WINDOWS__)
+    AC_DEFINE(__GNUWIN32__)
+    AC_DEFINE(STRICT)
+fi
+if test "$doesnt_want_win32" = 1 ; then
+    USE_UNIX=1
+    USE_WIN32=0
+fi
+dnl (end of Windows-only piece)
+
+if test "$USE_UNIX" = 1 ; then
+    wxUSE_UNIX=yes
+    AC_DEFINE(__UNIX__)
+fi
+
 dnl This case is for OS/2 vs. everything else
 case "${host}" in
   *-pc-os2_emx | *-pc-os2-emx )
@@ -1621,11 +1753,11 @@ case "${host}" in
                   #else
                               "Innotek6"
                   #endif
-                     );
+                      );
                       exit(0);
                   }
               ],
-             wx_cv_gccversion=`cat conftestval`,
+              wx_cv_gccversion=`cat conftestval`,
               wx_cv_gccversion="EMX2",
               dnl Compilation error: Assuming standard EMX environment
               wx_cv_gccversion="EMX2"
@@ -1645,7 +1777,7 @@ case "${host}" in
       if test "$wxUSE_SHARED" = "yes" -a "$wxUSE_OMF" = "no"; then
         AC_MSG_WARN([Building DLLs requires OMF mode, enabled])
         wxUSE_OMF=yes
-       enable_omf=yes
+        enable_omf=yes
       fi
       dnl (end of OS/2-only piece)
   ;;
@@ -1657,9 +1789,6 @@ case "${host}" in
       dnl ---------------------------------------------------------------------
       dnl (non-OS/2-only piece)
 
-      AC_LANG_SAVE
-      AC_LANG_CPLUSPLUS
-
       AC_CACHE_CHECK([for strcasecmp() in string.h], ac_cv_string_strcasecmp, [
           AC_TRY_LINK([
               #include <string.h>
@@ -1694,7 +1823,6 @@ case "${host}" in
           fi
       fi
 
-      AC_LANG_RESTORE
       dnl (end of non-OS/2-only piece)
   ;;
 esac
@@ -1703,27 +1831,15 @@ dnl ------------------------------------------------------------------------
 dnl Check for headers
 dnl ------------------------------------------------------------------------
 
-dnl defines HAVE_STDLIB_H
-AC_CHECK_HEADERS(stdlib.h)
-dnl defines HAVE_MALLOC_H
-AC_CHECK_HEADERS(malloc.h)
-dnl defines HAVE_UNISTD_H
-AC_CHECK_HEADERS(unistd.h)
-dnl defines HAVE_WCHAR_H
-AC_CHECK_HEADERS(wchar.h)
+dnl Note: non-empty last parameter makes check compile-only,
+dnl   skipping worthless preprocessing check
+AC_CHECK_HEADERS(stdlib.h fnmatch.h langinfo.h malloc.h unistd.h wchar.h,,, [AC_INCLUDES_DEFAULT()])
 
 dnl maybe wchar_t is in wcstr.h if we don't have wchar.h?
 if test "$ac_cv_header_wchar_h" != "yes"; then
-    dnl defines HAVE_WCSTR_H
-    AC_CHECK_HEADERS(wcstr.h)
+    AC_CHECK_HEADER(wcstr.h,,, [AC_INCLUDES_DEFAULT()])
 fi
 
-dnl defines HAVE_FNMATCH_H
-AC_CHECK_HEADERS(fnmatch.h)
-
-dnl defines HAVE_LANGINFO_H (GNU libc locale parameters)
-AC_CHECK_HEADERS(langinfo.h)
-
 case "${host}" in
   *-pc-os2_emx | *-pc-os2-emx )
       dnl Explicitly link -lintl if langinfo.h is available
@@ -1737,6 +1853,11 @@ case "${host}" in
   ;;
 esac
 
+dnl POSIX needs this for select(), but old systems don't have it
+if test "$USE_UNIX" = 1 ; then
+    AC_CHECK_HEADER([sys/select.h],,, [AC_INCLUDES_DEFAULT()])
+fi
+
 dnl ---------------------------------------------------------------------------
 dnl Checks for compiler characteristics
 dnl ---------------------------------------------------------------------------
@@ -1749,7 +1870,6 @@ AC_C_INLINE
 dnl check the sizes of integral types (give some reasonable default values for
 dnl cross-compiling)
 dnl   defines the size of certain types of variables in SIZEOF_<TYPE>
-AC_CHECK_SIZEOF(char, 1)
 AC_CHECK_SIZEOF(short, 2)
 AC_CHECK_SIZEOF(void *, 4)
 AC_CHECK_SIZEOF(int, 4)
@@ -1861,6 +1981,42 @@ else
     fi
 fi
 
+dnl don't check for vararg macros if they're explicitly disabled: this is
+dnl useful if the user code using the library wants to limit itself to standard
+dnl C++ only (e.g. is compiled with g++ -std=c++98)
+if test "$wxUSE_VARARG_MACROS" = "yes"; then
+
+dnl Check if variadic macros (C99 feature) are supported:
+AC_CACHE_CHECK(
+    [whether the compiler supports variadic macros],
+    [wx_cv_have_variadic_macros],
+    [
+        dnl C compiler might support variadic macros when C++ one doesn't
+        dnl (happens with gcc/g++ 2.95.4), so must use C++ one explicitly
+        AC_LANG_PUSH(C++)
+        AC_COMPILE_IFELSE(
+            AC_LANG_PROGRAM(
+                [
+                    #include <stdio.h>
+                    #define test(fmt, ...) printf(fmt, __VA_ARGS__)
+                ],
+                [
+                    test("%s %d %p", "test", 1, 0);
+                ]
+            ),
+            [wx_cv_have_variadic_macros=yes],
+            [wx_cv_have_variadic_macros=no]
+            )
+        AC_LANG_POP()
+    ]
+)
+
+if test $wx_cv_have_variadic_macros = "yes"; then
+    AC_DEFINE(HAVE_VARIADIC_MACROS)
+fi
+
+fi dnl wxUSE_VARARG_MACROS == yes
+
 dnl check for large file support
 AC_SYS_LARGEFILE
 
@@ -1884,8 +2040,7 @@ if test "x$wx_largefile" = "xyes"; then
                 [if -D__STDC_EXT__ is required],
                 wx_cv_STDC_EXT_required,
                 [
-                    AC_LANG_SAVE
-                    AC_LANG_CPLUSPLUS
+                    AC_LANG_PUSH(C++)
                     AC_TRY_COMPILE(
                         [],
                         [
@@ -1896,7 +2051,7 @@ if test "x$wx_largefile" = "xyes"; then
                         wx_cv_STDC_EXT_required=no,
                         wx_cv_STDC_EXT_required=yes
                     )
-                    AC_LANG_RESTORE
+                    AC_LANG_POP()
                 ]
             )
             if test "x$wx_cv_STDC_EXT_required" = "xyes"; then
@@ -1986,10 +2141,12 @@ if test "x$COMPAQCXX" = "xyes"; then
     CXXFLAGS="-w0 -msg_disable basclsnondto,unrimpret,intconlosbit"
 fi
 
+dnl the next few tests are all for C++ features and so need to be done using
+dnl C++ compiler
+AC_LANG_PUSH(C++)
+
 dnl check for std::string or std::wstring
 if test "$wxUSE_STD_STRING" = "yes" -o "$wxUSE_STL" = "yes"; then
-    AC_LANG_PUSH(C++)
-
     if test "$wxUSE_UNICODE" = "yes"; then
         std_string="std::wstring"
         char_type="wchar_t"
@@ -1998,49 +2155,63 @@ if test "$wxUSE_STD_STRING" = "yes" -o "$wxUSE_STL" = "yes"; then
         char_type="char"
     fi
 
-    dnl check if <string> declares std::wstring
-    AC_MSG_CHECKING([for $std_string in <string>])
-    AC_TRY_COMPILE([#include <string>],
-                   [$std_string foo;],
-                   [AC_MSG_RESULT(yes)
-                    AC_DEFINE(HAVE_STD_WSTRING)],
-                   [AC_MSG_RESULT(no)
-                    AC_MSG_CHECKING([if std::basic_string<$char_type> works])
-                    AC_TRY_COMPILE([
-                        #ifdef HAVE_WCHAR_H
-                        #  ifdef __CYGWIN__
-                        #    include <stddef.h>
-                        #  endif
-                        #  include <wchar.h>
-                        #endif
-                        #ifdef HAVE_STDLIB_H
-                        #  include <stdlib.h>
-                        #endif
-                        #include <stdio.h>
-                        #include <string>
-                        ],
-                        [std::basic_string<$char_type> foo;
-                         const $char_type* dummy = foo.c_str();],
-                        [AC_MSG_RESULT(yes)],
-                        [AC_MSG_RESULT([no])
-                         if test "$wxUSE_STL" = "yes"; then
-                             AC_MSG_ERROR([Can't use --enable-stl without $std_string or std::basic_string<$char_type>])
-                         elif grep wxUSE_STD_STRING $wx_arg_cache_file >/dev/null; then
-                             AC_MSG_ERROR([Can't use --enable-std_string without $std_string or std::basic_string<$char_type>])
-                         else
-                             AC_MSG_WARN([No $std_string or std::basic_string<$char_type>, switching to --disable-std_string])
-                             wxUSE_STD_STRING=no
-                         fi
-                        ]
-                    )
-                    ])
+    dnl check if <string> declares std::[w]string
+    AC_CACHE_CHECK([for $std_string in <string>],
+        wx_cv_class_stdstring,
+        [
+            AC_TRY_COMPILE([#include <string>],
+                [$std_string foo;],
+                wx_cv_class_stdstring=yes,
+                wx_cv_class_stdstring=no
+            )
+        ]
+    )
+
+    if test "$wx_cv_class_stdstring" = yes; then
+        if test "$wxUSE_UNICODE" = "yes"; then
+            AC_DEFINE(HAVE_STD_WSTRING)
+        fi
+        dnl we don't need HAVE_STD_STRING, we just suppose it's available if
+        dnl wxUSE_STD_STRING==yes
+    else
+        AC_CACHE_CHECK([if std::basic_string<$char_type> works],
+            wx_cv_class_stdbasicstring,
+            [
+                AC_TRY_COMPILE([
+                    #ifdef HAVE_WCHAR_H
+                    #  ifdef __CYGWIN__
+                    #    include <stddef.h>
+                    #  endif
+                    #  include <wchar.h>
+                    #endif
+                    #ifdef HAVE_STDLIB_H
+                    #  include <stdlib.h>
+                    #endif
+                    #include <stdio.h>
+                    #include <string>
+                    ],
+                    [std::basic_string<$char_type> foo;
+                     const $char_type* dummy = foo.c_str();],
+                    wx_cv_class_stdbasicstring=yes,
+                    wx_cv_class_stdbasicstring=no
+                )
+            ]
+        )
 
-    AC_LANG_POP
+        if test "$wx_cv_class_stdbasicstring" != yes; then
+            if test "$wxUSE_STL" = "yes"; then
+                AC_MSG_ERROR([Can't use --enable-stl without $std_string or std::basic_string<$char_type>])
+            elif grep wxUSE_STD_STRING $wx_arg_cache_file >/dev/null; then
+                AC_MSG_ERROR([Can't use --enable-std_string without $std_string or std::basic_string<$char_type>])
+            else
+                AC_MSG_WARN([No $std_string or std::basic_string<$char_type>, switching to --disable-std_string])
+                wxUSE_STD_STRING=no
+            fi
+        fi
+    fi
 fi
 
 if test "$wxUSE_STD_IOSTREAM" = "yes"; then
-    AC_LANG_PUSH(C++)
-
     AC_CHECK_TYPES([std::istream, std::ostream],,
                    [wxUSE_STD_IOSTREAM=no],
                    [#include <iostream>])
@@ -2052,71 +2223,96 @@ if test "$wxUSE_STD_IOSTREAM" = "yes"; then
             AC_MSG_WARN([No std::iostreams, switching to --disable-std_iostreams])
         fi
     fi
-
-    AC_LANG_POP
 fi
 
 if test "$wxUSE_STL" = "yes"; then
-    AC_LANG_PUSH(C++)
-
     dnl check for basic STL functionality
-    AC_MSG_CHECKING([for basic STL functionality])
-    AC_TRY_COMPILE([#include <string>
-                    #include <functional>
-                    #include <algorithm>
-                    #include <vector>
-                    #include <list>],
-                    [std::vector<int> moo;
-                     std::list<int> foo;
-                     std::vector<int>::iterator it =
-                         std::find_if(moo.begin(), moo.end(),
-                                      std::bind2nd(std::less<int>(), 3));],
-                    [AC_MSG_RESULT([yes])],
-                    [AC_MSG_RESULT([no])
-                     AC_MSG_ERROR([Basic STL functionality missing])])
+    AC_CACHE_CHECK([for basic STL functionality],
+        wx_cv_lib_stl,
+        [AC_TRY_COMPILE([#include <string>
+            #include <functional>
+            #include <algorithm>
+            #include <vector>
+            #include <list>],
+            [std::vector<int> moo;
+             std::list<int> foo;
+             std::vector<int>::iterator it =
+                 std::find_if(moo.begin(), moo.end(),
+                              std::bind2nd(std::less<int>(), 3));],
+            wx_cv_lib_stl=yes,
+            wx_cv_lib_stl=no
+        )]
+    )
+
+    if test "$wx_cv_lib_stl" != yes; then
+         AC_MSG_ERROR([Can't use --enable-stl as basic STL functionality is missing])
+    fi
 
     dnl check for compliant std::string::compare
-    AC_MSG_CHECKING([for compliant std::string::compare])
-    AC_TRY_COMPILE([#include <string>],
-                   [std::string foo, bar;
-                    foo.compare(bar);
-                    foo.compare(1, 1, bar);
-                    foo.compare(1, 1, bar, 1, 1);
-                    foo.compare("");
-                    foo.compare(1, 1, "");
-                    foo.compare(1, 1, "", 2);],
-                   [AC_MSG_RESULT(yes)
-                    AC_DEFINE(HAVE_STD_STRING_COMPARE)],
-                   [AC_MSG_RESULT(no)])
+    AC_CACHE_CHECK([for compliant std::string::compare],
+        wx_cv_func_stdstring_compare,
+        [AC_TRY_COMPILE([#include <string>],
+            [std::string foo, bar;
+            foo.compare(bar);
+            foo.compare(1, 1, bar);
+            foo.compare(1, 1, bar, 1, 1);
+            foo.compare("");
+            foo.compare(1, 1, "");
+            foo.compare(1, 1, "", 2);],
+            wx_cv_func_stdstring_compare=yes,
+            wx_cv_func_stdstring_compare=no
+        )]
+    )
+
+    if test "$wx_cv_func_stdstring_compare" = yes; then
+        AC_DEFINE(HAVE_STD_STRING_COMPARE)
+    fi
 
     dnl check for hash_map and hash_set headers
     AC_CHECK_HEADER([hash_map],
-                    [AC_MSG_CHECKING([for hash_map and hash_set])
-                     AC_TRY_COMPILE([#include <hash_map>
-                                     #include <hash_set>],
-                                    [std::hash_map<double*, char*, std::hash<double*>, std::equal_to<double*> > test1;
-                                     std::hash_set<char*, std::hash<char*>, std::equal_to<char*> > test2;],
-                                    [AC_MSG_RESULT(yes)
-                                     AC_DEFINE(HAVE_HASH_MAP)
-                                     AC_DEFINE(HAVE_STD_HASH_MAP)],
-                                    [AC_MSG_RESULT(no)])
-                     ])
+        [AC_CACHE_CHECK([for standard hash_map and hash_set],
+            wx_cv_class_stdhashmapset,
+            [AC_TRY_COMPILE([#include <hash_map>
+                #include <hash_set>],
+                [std::hash_map<double*, char*, std::hash<double*>, std::equal_to<double*> > test1;
+                 std::hash_set<char*, std::hash<char*>, std::equal_to<char*> > test2;],
+                wx_cv_class_stdhashmapset=yes,
+                wx_cv_class_stdhashmapset=no)
+            ]
+        )],
+        [],
+        [ ]
+    )
+
+    if test "$wx_cv_class_stdhashmapset" = yes; then
+        AC_DEFINE(HAVE_HASH_MAP)
+        AC_DEFINE(HAVE_STD_HASH_MAP)
+    fi
 
     AC_CHECK_HEADER([ext/hash_map],
-                    [AC_MSG_CHECKING([for hash_map and hash_set])
-                     AC_TRY_COMPILE([#include <ext/hash_map>
-                                     #include <ext/hash_set>],
-                                    [__gnu_cxx::hash_map<double*, char*, __gnu_cxx::hash<double*>, std::equal_to<double*> > test1;
-                                     __gnu_cxx::hash_set<char*, __gnu_cxx::hash<char*>, std::equal_to<char*> > test2;],
-                                    [AC_MSG_RESULT(yes)
-                                     AC_DEFINE(HAVE_EXT_HASH_MAP)
-                                     AC_DEFINE(HAVE_GNU_CXX_HASH_MAP)],
-                                    [AC_MSG_RESULT(no)])
-                     ])
+        [AC_CACHE_CHECK([for GNU hash_map and hash_set],
+            wx_cv_class_gnuhashmapset,
+            [AC_TRY_COMPILE([#include <ext/hash_map>
+                #include <ext/hash_set>],
+                [__gnu_cxx::hash_map<double*, char*, __gnu_cxx::hash<double*>, std::equal_to<double*> > test1;
+                 __gnu_cxx::hash_set<char*, __gnu_cxx::hash<char*>, std::equal_to<char*> > test2;],
+                wx_cv_class_gnuhashmapset=yes,
+                wx_cv_class_gnuhashmapset=no)
+            ]
+        )],
+        [],
+        [ ]
+    )
 
-    AC_LANG_POP
+    if test "$wx_cv_class_gnuhashmapset" = yes; then
+         AC_DEFINE(HAVE_EXT_HASH_MAP)
+         AC_DEFINE(HAVE_GNU_CXX_HASH_MAP)
+    fi
 fi
 
+dnl pop C++
+AC_LANG_POP()
+
 dnl ---------------------------------------------------------------------------
 dnl Define search path for includes and libraries: all headers and libs will be
 dnl looked for in all directories of this path
@@ -2311,6 +2507,60 @@ if test "x$wx_cv_lib_glibc21" = "xyes"; then
     fi
 fi
 
+dnl Only add the -lm library if floating point functions cannot be used
+dnl without it.  This check is important on cygwin because of the bizarre
+dnl way that they have organized functions into libraries.  On cygwin, both
+dnl libc.a and libm.a are symbolic links to a single lib libcygwin.a.  This
+dnl means that
+dnl   1) linking with -lm is not necessary, and
+dnl   2) linking with -lm is dangerous if the order of libraries is wrong
+dnl In particular, if you compile any program with -mno-cygwin and link with
+dnl -lm, it will crash instantly when it is run.  This happens because the
+dnl linker incorrectly links the Cygwin libm.a (==libcygwin.a), which replaces
+dnl the ___main function instead of allowing it to be defined by
+dnl /usr/lib/mingw/libmingw32.a as it should be.
+dnl
+dnl On MacOS X, this test will find that -lm is unnecessary and leave it out.
+dnl
+dnl Just check a few floating point functions. If they are all found without
+dnl -lm, then we must not need -lm.
+have_cos=0
+have_floor=0
+AC_CHECK_FUNCS(cos, have_cos=1)
+AC_CHECK_FUNCS(floor, have_floor=1)
+AC_MSG_CHECKING(if floating point functions link without -lm)
+if test "$have_cos" = 1 -a "$have_floor" = 1; then
+    AC_MSG_RESULT(yes)
+else
+    AC_MSG_RESULT(no)
+    LIBS="$LIBS -lm"
+    # use different functions to avoid configure caching
+    have_sin=0
+    have_ceil=0
+    AC_CHECK_FUNCS(sin, have_sin=1)
+    AC_CHECK_FUNCS(ceil, have_ceil=1)
+    AC_MSG_CHECKING(if floating point functions link with -lm)
+    if test "$have_sin" = 1 -a "$have_ceil" = 1; then
+        AC_MSG_RESULT(yes)
+    else
+        AC_MSG_RESULT(no)
+        # not sure we should warn the user, crash, etc.
+    fi
+fi
+
+dnl check for C99 string to long long conversion functions, assume that if we
+dnl have the unsigned variants, then we have the signed ones as well
+dnl
+dnl at least under SGI these functions are only available in C99 code and not
+dnl in C++ so do these tests using C++ compiler
+AC_LANG_PUSH(C++)
+if test "wxUSE_UNICODE" = "yes"; then
+    WX_CHECK_FUNCS(wcstoull)
+else
+    WX_CHECK_FUNCS(strtoull)
+fi
+AC_LANG_POP()
+
 dnl ---------------------------------------------------------------------------
 dnl Optional libraries
 dnl
@@ -2346,7 +2596,7 @@ if test "$wxUSE_REGEX" != "no"; then
     if test "$wxUSE_REGEX" = "sys" -o "$wxUSE_REGEX" = "yes" ; then
         dnl according to Unix 98 specs, regcomp() is in libc but I believe that
         dnl on some old systems it may be in libregex - check for it too?
-        AC_CHECK_HEADER(regex.h, [AC_CHECK_FUNCS(regcomp re_search)])
+        AC_CHECK_HEADER(regex.h, [AC_CHECK_FUNCS(regcomp re_search)],, [ ])
 
         if test "x$ac_cv_func_regcomp" != "xyes"; then
             if test "$wxUSE_REGEX" = "sys" ; then
@@ -2414,7 +2664,7 @@ if test "$wxUSE_ZLIB" != "no" ; then
             )
             dnl If the test above did not come up with a value (e.g. cross
             dnl compiling) then this should give a definitive answer
-            AC_CHECK_HEADER(zlib.h)
+            AC_CHECK_HEADER(zlib.h,,, [ ])
 
             system_zlib_h_ok=$ac_cv_header_zlib_h
         fi
@@ -2485,7 +2735,7 @@ if test "$wxUSE_LIBPNG" != "no" ; then
                     unset ac_cv_header_png_h
                 )]
             )
-            AC_CHECK_HEADER(png.h)
+            AC_CHECK_HEADER(png.h,,, [ ])
 
             if test "$ac_cv_header_png_h" = "yes"; then
                 AC_CHECK_LIB(png, png_check_sig, PNG_LINK=" -lpng -lz", , [-lz -lm])
@@ -2557,6 +2807,30 @@ if test "$wxUSE_LIBJPEG" != "no" ; then
             else
                 dnl we are using the system library
                 wxUSE_LIBJPEG=sys
+
+                if test "$wxUSE_MSW" = 1; then
+                    dnl boolean is defined by the jpeg headers and also by the
+                    dnl Windows headers of some compilers. This type has been
+                    dnl renamed in the builtin, so it is only an issue when
+                    dnl using an external jpeg lib on Windows.
+                    AC_CHECK_TYPES(
+                        [boolean],
+                        [
+                            AC_CHECK_SIZEOF(
+                                [boolean],
+                                [],
+                                [
+                                    #undef HAVE_BOOLEAN
+                                    #include <stdio.h>
+                                    #include <jpeglib.h>
+                                ])
+                            AC_DEFINE_UNQUOTED(
+                                [wxHACK_BOOLEAN],
+                                [wxInt`expr 8 \* $ac_cv_sizeof_boolean`])
+                        ],
+                        [],
+                        [#include <windows.h>])
+                fi
             fi
         fi
     fi
@@ -2586,7 +2860,9 @@ if test "$wxUSE_LIBTIFF" != "no" ; then
                                          TIFF_LINK=" -ltiff",
                                          ,
                                          $TIFF_PREREQ_LINKS)
-                        ]
+                        ],
+                        [],
+                        [ ]
                        )
 
         if test "x$TIFF_LINK" = "x" ; then
@@ -2624,19 +2900,18 @@ if test "$wxUSE_EXPAT" != "no"; then
     AC_DEFINE(wxUSE_XML)
 
     if test "$wxUSE_EXPAT" = "sys" -o "$wxUSE_EXPAT" = "yes" ; then
-        AC_CHECK_HEADER([expat.h], [found_expat_h=1])
+        AC_CHECK_HEADER([expat.h], [found_expat_h=1],, [ ])
         if test "x$found_expat_h" = "x1"; then
             dnl Expat 1.95.6 comes with broken expat.h:
             AC_CACHE_CHECK([if expat.h is valid C++ header],
                 wx_cv_expat_is_not_broken,
                 [
-                AC_LANG_SAVE
-                AC_LANG_CPLUSPLUS
+                AC_LANG_PUSH(C++)
                 AC_TRY_COMPILE([#include <expat.h>],[],
                     wx_cv_expat_is_not_broken=yes,
                     wx_cv_expat_is_not_broken=no
                 )
-                AC_LANG_RESTORE
+                AC_LANG_POP()
                 ]
             )
             if test "$wx_cv_expat_is_not_broken" = "yes" ; then
@@ -2667,7 +2942,7 @@ dnl Check for libmspack
 dnl ------------------------------------------------------------------------
 
 if test "$wxUSE_LIBMSPACK" != "no"; then
-    AC_CHECK_HEADER([mspack.h], [found_mspack_h=1])
+    AC_CHECK_HEADER([mspack.h], [found_mspack_h=1],, [ ])
     if test "x$found_mspack_h" = "x1"; then
         AC_CHECK_LIB(mspack, mspack_create_chm_decompressor,
                      MSPACK_LINK=" -lmspack")
@@ -2696,11 +2971,12 @@ WIDGET_SET=
 dnl are we building for a win32 target environment?
 dnl If so, setup common stuff needed for both GUI and Base libs.
 if test "$USE_WIN32" = 1 ; then
-    AC_CHECK_HEADERS(w32api.h)
-    AC_CHECK_HEADER(windows.h, [],
+    AC_CHECK_HEADER(w32api.h,,, [ ])
+    AC_CHECK_HEADER(windows.h,,
     [
         AC_MSG_ERROR(please set CFLAGS to contain the location of windows.h)
-    ])
+    ],
+    [ ])
 
     dnl --- FIXME: This is still a somewhat random list of libs,
     dnl ---        some of them should probably be included conditionally.
@@ -2737,6 +3013,9 @@ if test "$USE_WIN32" = 1 ; then
 
     dnl install Win32-specific files in "make install"
     WIN32INSTALL=win32install
+
+    dnl pbt.h is missing on Wine at least
+    AC_CHECK_HEADER(pbt.h,, [AC_DEFINE(NEED_PBT_H)], [ ])
 fi
 
 if test "$wxUSE_GUI" = "yes"; then
@@ -2759,7 +3038,7 @@ if test "$wxUSE_GUI" = "yes"; then
             wxUSE_DRAG_AND_DROP=no
         fi
         if test "$wxUSE_DRAGIMAGE" = "yes"; then
-            AC_MSG_WARN([Drag Image and DandD not supported under wxCocoa yet, disabled])
+            AC_MSG_WARN([wxDragImage not supported under wxCocoa yet, disabled])
             wxUSE_DRAGIMAGE=no
         fi
     fi
@@ -2776,6 +3055,7 @@ if test "$wxUSE_GUI" = "yes"; then
     fi
 
     if test "$wxUSE_GTK" = 1; then
+        dnl GTK+ test program must be compiled with C compiler
         AC_MSG_CHECKING([for GTK+ version])
 
         gtk_version_cached=1
@@ -2882,38 +3162,75 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
             dnl that have shipped with some versions of Sun's JDS. Not using
             dnl AC_CHECK_FUNCS here since it only checks the function exists
             dnl in the lib (not the header).
-            AC_MSG_CHECKING([if gtk_icon_size_lookup is missing])
+            AC_CHECK_DECLS([gtk_icon_size_lookup], [],
+                           [AC_DEFINE(NEED_GTK_ICON_SIZE_LOOKUP)],
+                           [#include <gtk/gtk.h>])
+
+
+            dnl test if we have at least GTK+ 2.10:
+            AC_MSG_CHECKING([if GTK+ is version >= 2.10])
             AC_TRY_COMPILE([
                             #include <gtk/gtk.h>
                            ],
                            [
-                            void *f = gtk_icon_size_lookup;
+                            #if !GTK_CHECK_VERSION(2,10,0)
+                            Not GTK+ 2.10
+                            #endif
                            ],
                            [
-                            AC_MSG_RESULT([no])
+                            AC_DEFINE(__WXGTK210__)
+                            AC_DEFINE(__WXGTK26__)
+                            AC_DEFINE(__WXGTK24__)
+                            AC_MSG_RESULT([yes])
+                            ac_wxgtk210=1
                            ],
                            [
-                            AC_DEFINE(NEED_GTK_ICON_SIZE_LOOKUP)
-                            AC_MSG_RESULT([yes])
+                            AC_MSG_RESULT([no])
+                            ac_wxgtk210=0
                            ])
 
-            dnl test if we have at least GTK+ 2.4:
-            AC_MSG_CHECKING([if GTK+ is version >= 2.4])
-            AC_TRY_COMPILE([
-                            #include <gtk/gtk.h>
-                           ],
-                           [
-                            #if !GTK_CHECK_VERSION(2,4,0)
-                            Not GTK+ 2.4
-                            #endif
-                           ],
-                           [
-                            AC_DEFINE(__WXGTK24__)
-                            AC_MSG_RESULT([yes])
-                           ],
-                           [
-                            AC_MSG_RESULT([no])
-                           ])
+            if test "$ac_wxgtk210" = 0; then
+                dnl test if we have at least GTK+ 2.6:
+                AC_MSG_CHECKING([if GTK+ is version >= 2.6])
+                AC_TRY_COMPILE([
+                                #include <gtk/gtk.h>
+                            ],
+                            [
+                                #if !GTK_CHECK_VERSION(2,6,0)
+                                Not GTK+ 2.6
+                                #endif
+                            ],
+                            [
+                                AC_DEFINE(__WXGTK26__)
+                                AC_DEFINE(__WXGTK24__)
+                                AC_MSG_RESULT([yes])
+                                ac_wxgtk26=1
+                            ],
+                            [
+                                AC_MSG_RESULT([no])
+                                ac_wxgtk26=0
+                            ])
+            fi
+
+            if test "$ac_wxgtk26" = 0; then
+                dnl test if we have at least GTK+ 2.4:
+                AC_MSG_CHECKING([if GTK+ is version >= 2.4])
+                AC_TRY_COMPILE([
+                                #include <gtk/gtk.h>
+                            ],
+                            [
+                                #if !GTK_CHECK_VERSION(2,4,0)
+                                Not GTK+ 2.4
+                                #endif
+                            ],
+                            [
+                                AC_DEFINE(__WXGTK24__)
+                                AC_MSG_RESULT([yes])
+                            ],
+                            [
+                                AC_MSG_RESULT([no])
+                            ])
+            fi
 
             CFLAGS="$save_CFLAGS"
             LIBS="$save_LIBS"
@@ -2922,12 +3239,15 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
                 AC_MSG_WARN([Unicode configuration not supported with GTK+ 1.x])
                 wxUSE_UNICODE=no
             fi
-        fi
 
-        dnl we need poll() in src/gtk/app.cpp (we know that Darwin doesn't
-        dnl have it but we do the check for the others)
-        if test "$USE_DARWIN" != 1; then
-            AC_CHECK_FUNCS(poll)
+            dnl test for XIM support in libgdk
+            AC_CHECK_LIB(gdk, gdk_im_open, AC_DEFINE(HAVE_XIM))
+
+            dnl we need poll() in src/gtk1/app.cpp (we know that Darwin doesn't
+            dnl have it but we do the check for the others)
+            if test "$USE_DARWIN" != 1; then
+                AC_CHECK_FUNCS(poll)
+            fi
         fi
 
         TOOLKIT_INCLUDE="$wx_cv_cflags_gtk"
@@ -2937,10 +3257,6 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
         TOOLKIT=GTK
         GUIDIST=GTK_DIST
 
-        dnl test for XIM support in libgdk
-        AC_CHECK_LIB(gdk, gdk_im_open, AC_DEFINE(HAVE_XIM))
-
-
         dnl test for external libxpm if we're configured to use it
         if test "$wxUSE_GPE" = "yes"; then
             AC_MSG_CHECKING(for gpewidget library)
@@ -3036,6 +3352,24 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
         GUIDIST=MGL_DIST
     fi
 
+    if test "$wxUSE_DFB" = 1; then
+       PKG_PROG_PKG_CONFIG()
+
+       PKG_CHECK_MODULES(DIRECTFB,
+                         [directfb >= 0.9.23],
+                         [
+                           wxUSE_UNIVERSAL="yes"
+                           TOOLKIT_INCLUDE="$DIRECTFB_CFLAGS"
+                           GUI_TK_LIBRARY="$DIRECTFB_LIBS"
+                           TOOLKIT=DFB
+                           GUIDIST=DFB_DIST
+                         ],
+                         [
+                           AC_MSG_ERROR([DirectFB not found.])
+                         ]
+                         )
+    fi
+
     if test "$wxUSE_MICROWIN" = 1; then
         AC_MSG_CHECKING(for MicroWindows)
         if test "x$MICROWINDOWS" = x ; then
@@ -3097,42 +3431,44 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
         fi
 
         if test "$wxUSE_UNICODE" = "yes"; then
-                PKG_CHECK_MODULES(PANGOX, pangox,
-                    [
-                        CXXFLAGS="$PANGOX_CFLAGS $CXXFLAGS"
-                        GUI_TK_LIBRARY="$GUI_TK_LIBRARY $PANGOX_LIBS"
-                    ],
-                    [
-                        AC_MSG_ERROR([pangox library not found, library cannot be compiled in Unicode mode])
-                    ]
-                )
-                PKG_CHECK_MODULES(PANGOFT2, pangoft2,
-                    [
-                        CXXFLAGS="$PANGOFT2_CFLAGS $CXXFLAGS"
-                        GUI_TK_LIBRARY="$GUI_TK_LIBRARY $PANGOFT2_LIBS"
-                    ],
-                    [
-                        AC_MSG_WARN([pangoft2 library not found, library will be compiled without printing support])
-                        wxUSE_PRINTING_ARCHITECTURE="no"
-                    ]
-                )
-                PKG_CHECK_MODULES(PANGOXFT, pangoxft,
-                    [
-                        AC_DEFINE(HAVE_PANGO_XFT)
-                        CXXFLAGS="$PANGOXFT_CFLAGS $CXXFLAGS"
-                        GUI_TK_LIBRARY="$GUI_TK_LIBRARY $PANGOXFT_LIBS"
-                    ],
-                    [
-                        AC_MSG_WARN([pangoxft library not found, library will be compiled without anti-aliasing support])
-                    ]
-                )
-                save_CFLAGS="$CFLAGS"
-                save_LIBS="$LIBS"
-                CFLAGS="$PANGOX_CFLAGS $CFLAGS"
-                LIBS="$LIBS $PANGOX_LIBS"
-                AC_CHECK_FUNCS([pango_font_family_is_monospace])
-                CFLAGS="$save_CFLAGS"
-                LIBS="$save_LIBS"
+            PKG_PROG_PKG_CONFIG()
+
+            PKG_CHECK_MODULES(PANGOX, pangox,
+                [
+                    CFLAGS="$PANGOX_CFLAGS $CFLAGS"
+                    CXXFLAGS="$PANGOX_CFLAGS $CXXFLAGS"
+                    GUI_TK_LIBRARY="$GUI_TK_LIBRARY $PANGOX_LIBS"
+                ],
+                [
+                    AC_MSG_ERROR([pangox library not found, library cannot be compiled in Unicode mode])
+                ]
+            )
+            PKG_CHECK_MODULES(PANGOFT2, pangoft2,
+                [
+                    CFLAGS="$PANGOFT2_CFLAGS $CFLAGS"
+                    CXXFLAGS="$PANGOFT2_CFLAGS $CXXFLAGS"
+                    GUI_TK_LIBRARY="$GUI_TK_LIBRARY $PANGOFT2_LIBS"
+                ],
+                [
+                    AC_MSG_WARN([pangoft2 library not found, library will be compiled without printing support])
+                    wxUSE_PRINTING_ARCHITECTURE="no"
+                ]
+            )
+            PKG_CHECK_MODULES(PANGOXFT, pangoxft,
+                [
+                    AC_DEFINE(HAVE_PANGO_XFT)
+                    CFLAGS="$PANGOXFT_CFLAGS $CFLAGS"
+                    CXXFLAGS="$PANGOXFT_CFLAGS $CXXFLAGS"
+                    GUI_TK_LIBRARY="$GUI_TK_LIBRARY $PANGOXFT_LIBS"
+                ],
+                [
+                    AC_MSG_WARN([pangoxft library not found, library will be compiled without anti-aliasing support])
+                ]
+            )
+            save_LIBS="$LIBS"
+            LIBS="$LIBS $PANGOX_LIBS"
+            AC_CHECK_FUNCS([pango_font_family_is_monospace])
+            LIBS="$save_LIBS"
         fi
 
         wxUSE_UNIVERSAL="yes"
@@ -3497,8 +3833,8 @@ dnl do this after test for X11 above so that we have a chance of finding Xlib.h
 if test "$wxUSE_GUI" = "yes"; then
     if test "$wxUSE_UNIX" = "yes" -a "$wxUSE_PM" != 1; then
         dnl defines HAVE_X11_XKBLIB_H
-        AC_CHECK_HEADERS(X11/Xlib.h)
-        AC_CHECK_HEADERS([X11/XKBlib.h], [], [],
+        AC_CHECK_HEADER(X11/Xlib.h,,, [ ])
+        AC_CHECK_HEADER([X11/XKBlib.h],,,
                          [
                           #if HAVE_X11_XLIB_H
                             #include <X11/Xlib.h>
@@ -3522,7 +3858,7 @@ if test "$TOOLKIT" != "MSW" ; then
         dnl This is not ideal we really ough to use the unixodbc-config
         dnl  or iodbc-config if they exist.
 
-        AC_CHECK_HEADER([sql.h], [found_sql_h=1])
+        AC_CHECK_HEADER([sql.h], [found_sql_h=1],, [ ])
         if test "x$found_sql_h" = "x1" ; then
             AC_CHECK_LIB(iodbc, SQLAllocEnv, ODBC_LINK=" -liodbc",
             [
@@ -3581,7 +3917,7 @@ dnl ---------------------------------------------------------------------------
             WX_PATH_FIND_LIBRARIES([$SEARCH_LIB],Xxf86vm)
             if test "$ac_find_libraries" != "" ; then
                 AC_MSG_RESULT([yes])
-                AC_CHECK_HEADERS([X11/extensions/xf86vmode.h],
+                AC_CHECK_HEADER([X11/extensions/xf86vmode.h],
                                  [
                                   GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lXxf86vm"
                                  ],
@@ -3602,47 +3938,71 @@ dnl ---------------------------------------------------------------------------
         fi
     elif test "$wxUSE_MSW" = 1; then
 dnl ---------------------------------------------------------------------------
-dnl DirectDraw  / Multimon for MSW
+dnl DirectDraw for MSW - optionally used by WxDisplay.
 dnl ---------------------------------------------------------------------------
-        AC_CHECK_HEADERS([multimon.h ddraw.h], [],
-            [
-                wxUSE_DISPLAY="no"
-                AC_MSG_WARN([ddraw.h or multimon.h not found; disabling wxDisplay])
-            ],
-            [#include <windows.h>])
+        AC_CHECK_HEADER([ddraw.h], [], [], [#include <windows.h>])
+    fi
+fi
+
+dnl ---------------------------------------------------------------------------
+dnl X11 session management
+dnl ---------------------------------------------------------------------------
+if test "$wxUSE_DETECT_SM" = "yes"; then
+    if test "$wxUSE_UNIX" = "yes" -a "$wxUSE_MAC" != 1 -a "$wxUSE_COCOA" != 1; then
+        AC_MSG_CHECKING([for -lSM - X11 session management])
+        WX_PATH_FIND_LIBRARIES([$SEARCH_LIB],SM)
+        if test "$ac_find_libraries" != "" ; then
+            WX_LINK_PATH_EXIST([$ac_find_libraries],[$LDFLAGS])
+            if test "$ac_path_to_link" != " -L/usr/lib" ; then
+                LDFLAGS="$LDFLAGS $ac_path_to_link"
+            fi
+            GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lSM"
+            AC_MSG_RESULT([yes])
+        else
+            AC_MSG_RESULT([no])
+            AC_MSG_WARN([libSM not found; disabling session management detection])
+            wxUSE_DETECT_SM="no"
+        fi
+    else
+        wxUSE_DETECT_SM="no"
     fi
 fi
 
+
 dnl ---------------------------------------------------------------------------
 dnl OpenGL libraries
 dnl ---------------------------------------------------------------------------
 
 USE_OPENGL=0
 if test "$wxUSE_OPENGL" = "yes"; then
-    if test "$wxUSE_MAC" = 1 -o "$wxUSE_COCOA" = "1"; then
+    if test "$wxUSE_MGL" = 1 -o "$wxUSE_DFB" = "1"; then
+        AC_MSG_WARN([wxGLCanvas not implemented for this port, library will be compiled without it.])
+        wxUSE_OPENGL="no"
+    elif test "$wxUSE_MAC" = 1 -o "$wxUSE_COCOA" = "1"; then
         OPENGL_LIBS="-framework OpenGL -framework AGL"
     elif test "$wxUSE_MSW" = 1; then
         OPENGL_LIBS="-lopengl32 -lglu32"
     else
-        dnl David Elliott: Without this snippet AC_CHECK_HEADER fails to find
-        dnl GL/gl.h on Mac OS X where it is located in
-        dnl /usr/X11R6/include/GL/gl.h:
-
-        WX_PATH_FIND_INCLUDES($SEARCH_INCLUDE, GL/gl.h)
+        dnl adjust CPPFLAGS to include GL/gl.h location if necessary
+        dnl (/opt/graphics/OpenGL is for HP-UX systems, bug 925307)
+        AC_MSG_CHECKING([for OpenGL headers])
+        WX_PATH_FIND_INCLUDES([$SEARCH_INCLUDE /opt/graphics/OpenGL/include], GL/gl.h)
         if test "$ac_find_includes" != "" ; then
             AC_MSG_RESULT(found in $ac_find_includes)
             WX_INCLUDE_PATH_EXIST($ac_find_includes, $CPPFLAGS)
             CPPFLAGS="$ac_path_to_include $CPPFLAGS"
+        else
+            AC_MSG_RESULT([not found])
         fi
 
-        AC_CHECK_HEADER(GL/gl.h,
-            [
+        AC_CHECK_HEADER(GL/gl.h, [
+            AC_CHECK_HEADER(GL/glu.h, [
                 found_gl=0
 
                 AC_MSG_CHECKING([for -lGL])
-                WX_PATH_FIND_LIBRARIES([$SEARCH_LIB],GL)
+                WX_PATH_FIND_LIBRARIES([$SEARCH_LIB /opt/graphics/OpenGL/lib],GL)
                 if test "$ac_find_libraries" != "" ; then
-                    AC_MSG_RESULT([yes])
+                    AC_MSG_RESULT([found in $ac_find_libraries])
 
                     WX_LINK_PATH_EXIST([$ac_find_libraries],[$LDFLAGS])
                     if test "$ac_path_to_link" != " -L/usr/lib" ; then
@@ -3684,6 +4044,9 @@ if test "$wxUSE_OPENGL" = "yes"; then
                     fi
                 fi
             ])
+        ],
+        [],
+        [ ])
 
         if test "x$OPENGL_LIBS" = "x"; then
             dnl it should be an error and not a warning because OpenGL is not on
@@ -3723,11 +4086,11 @@ fi
 if test "$wxUSE_SHARED" = "yes"; then
 
     dnl use versioned symbols if available on the platform
-    WX_VERSIONED_SYMBOLS([\$(top_builddir)version-script])
+    WX_VERSIONED_SYMBOLS([\$(wx_top_builddir)/version-script])
 
     case "${host}" in
       *-*-linux* | *-*-gnu* )
-        SAMPLES_RPATH_FLAG="-Wl,-rpath,\$(top_builddir)lib"
+        SAMPLES_RPATH_FLAG="-Wl,-rpath,\$(wx_top_builddir)/lib"
         WXCONFIG_RPATH="-Wl,-rpath,\$libdir"
         ;;
 
@@ -3746,7 +4109,7 @@ if test "$wxUSE_SHARED" = "yes"; then
                 [],[],
                 [
                     AC_MSG_RESULT([yes])
-                    SAMPLES_RPATH_FLAG="-Wl,-rpath,\$(top_builddir)lib"
+                    SAMPLES_RPATH_FLAG="-Wl,-rpath,\$(wx_top_builddir)/lib"
                     WXCONFIG_RPATH="-Wl,-rpath,\$libdir"
                 ],[
                     AC_MSG_RESULT([no])
@@ -3756,7 +4119,7 @@ if test "$wxUSE_SHARED" = "yes"; then
                         [],[],
                         [
                             AC_MSG_RESULT([yes])
-                            SAMPLES_RPATH_FLAG="-Wl,-R,\$(top_builddir)lib"
+                            SAMPLES_RPATH_FLAG="-Wl,-R,\$(wx_top_builddir)/lib"
                             WXCONFIG_RPATH="-Wl,-R,\$libdir"
                         ],[
                             AC_MSG_RESULT([no])
@@ -3764,7 +4127,7 @@ if test "$wxUSE_SHARED" = "yes"; then
                 ])
             LDFLAGS="$saveLdflags"
         else
-            SAMPLES_RPATH_FLAG="-R\$(top_builddir)lib"
+            SAMPLES_RPATH_FLAG="-R\$(wx_top_builddir)/lib"
             WXCONFIG_RPATH="-R\$libdir"
         fi
       ;;
@@ -3772,7 +4135,7 @@ if test "$wxUSE_SHARED" = "yes"; then
       *-*-darwin* )
         install_name_tool=`which install_name_tool`
         if test "$install_name_tool" -a -x "$install_name_tool"; then
-            SAMPLES_RPATH_POSTLINK="\$(top_builddir)change-install-names \$(LIBDIRNAME) \$(prefix) \$@"
+            SAMPLES_RPATH_POSTLINK="\$(wx_top_builddir)/change-install-names \$(LIBDIRNAME) \$(prefix) \$@"
             cat <<EOF >change-install-names
 #!/bin/sh
 libnames=\`cd \${1} ; ls -1 | grep '\.[[0-9]][[0-9]]*\.dylib\$'\`
@@ -3793,7 +4156,7 @@ EOF
         ;;
 
       *-*-hpux* )
-        SAMPLES_RPATH_FLAG="-Wl,+b,\$(top_builddir)lib"
+        SAMPLES_RPATH_FLAG="-Wl,+b,\$(wx_top_builddir)/lib"
         WXCONFIG_RPATH="-Wl,+b,\$libdir"
         ;;
 
@@ -3901,7 +4264,7 @@ if test "$wxUSE_MAC" = 1 -o "$wxUSE_COCOA" = 1; then
     WX_RESOURCES_MACOSX_DATA="libwx_${TOOLCHAIN_NAME}.${wx_release_number}.rsrc"
 
     dnl add the resources target for wxMac
-    LIBWXMACRES="\$(top_builddir)lib/${WX_RESOURCES_MACOSX_ASCII}"
+    LIBWXMACRES="\$(wx_top_builddir)/lib/${WX_RESOURCES_MACOSX_ASCII}"
 
     AC_CHECK_PROG(REZ, Rez, Rez, /Developer/Tools/Rez)
     AC_CHECK_PROG(DEREZ, DeRez, DeRez, /Developer/Tools/DeRez)
@@ -3958,8 +4321,7 @@ AC_CHECK_TYPES(ssize_t)
 
 dnl check what exactly size_t is on this machine - this is necessary to avoid
 dnl ambiguous overloads in several places, notably wx/string.h and wx/array.h
-AC_LANG_SAVE
-AC_LANG_CPLUSPLUS
+AC_LANG_PUSH(C++) dnl tests below use overloaded functions and so need C++
 AC_CACHE_CHECK([if size_t is unsigned int],
     wx_cv_size_t_is_uint,
     [
@@ -4006,7 +4368,7 @@ else
     fi
 fi
 
-AC_LANG_RESTORE
+AC_LANG_POP() dnl C++
 
 dnl ---------------------------------------------------------------------------
 dnl Checks for structures
@@ -4082,12 +4444,6 @@ else
     AC_MSG_WARN([Wide character support is unavailable])
 fi
 
-dnl *printf() functions sometimes are available in the library but not
-dnl prototyped -- if this is the case, we can't use them from C++ code, but to
-dnl detect this we have to use C++ compiler for testing
-AC_LANG_SAVE
-AC_LANG_CPLUSPLUS
-
 dnl check for vsnprintf() -- a safe version of vsprintf())
 dnl
 dnl the trouble here is that on some systems (e.g HP-UX 10) this function is
@@ -4096,6 +4452,8 @@ dnl stupidly, provides a dummy function declaration inside its extension)
 dnl succeeds, even with C++ compiler, but the compilation of wxWidgets fails
 dnl
 dnl so we first check if the function is in the library
+dnl
+dnl FIXME: replace this mess with WX_CHECK_FUNCS()
 AC_CHECK_FUNCS(snprintf vsnprintf)
 
 if test "$ac_cv_func_vsnprintf" = "yes"; then
@@ -4223,11 +4581,95 @@ if test "$ac_cv_func_snprintf" = "yes"; then
             AC_DEFINE(HAVE_BROKEN_SNPRINTF_DECL)
         fi
     fi
+
+    if test "$wxUSE_PRINTF_POS_PARAMS" = "yes"; then
+
+        dnl check if snprintf() has support for positional arguments
+        dnl NB: if snprintf() has positional support we can safely suppose that also
+        dnl     other *printf() functions support them as they all belong to the same
+        dnl     family and they all fallback to the same implementation
+        AC_CACHE_CHECK([if snprintf supports positional arguments], wx_cv_func_snprintf_pos_params,
+            [
+                AC_TRY_RUN(
+                    [
+                        #include <stdio.h>
+
+                        int main (void)
+                        {
+                            char buffer[128];
+                            snprintf (buffer, 128, "%2$d %3$d %1$d", 1, 2, 3);
+                            if (strcmp ("2 3 1", buffer) == 0)
+                                exit (0);
+                            exit (1);
+                        }
+                    ],
+                    wx_cv_func_snprintf_pos_params=no,
+                    wx_cv_func_snprintf_pos_params=yes,
+                    dnl be pessimistic when cross-compiling
+                    [
+                        AC_MSG_WARN([Assuming Unix98 printf() is not available,
+define HAVE_UNIX98_PRINTF as 1 in setup.h if it is available.])
+                        wx_cv_func_snprintf_pos_params=no
+                    ]
+                )
+            ]
+        )
+
+        if test "$wx_cv_func_snprintf_pos_params" = "yes"; then
+            AC_DEFINE(HAVE_UNIX98_PRINTF)
+        fi
+    fi
 fi
 
 if test "$wxUSE_UNICODE" = yes; then
-    dnl also look if we have wide char IO functions
-    AC_CHECK_FUNCS(wputc wputchar putws fputws wprintf vswprintf)
+
+    dnl our wxVsnprintf() implementation needs to use the system swprintf() in Unicode
+    dnl builds so let's check if swprintf() is declared as C99 imposes:
+    dnl     int swprintf(wchar_t *s, size_t n, const wchar_t *format, ...);
+    dnl or rather as:
+    dnl     int swprintf(wchar_t *s, const wchar_t *format, ...);
+    AC_CHECK_FUNCS(swprintf)
+
+    if test "$ac_cv_func_swprintf" = "yes"; then
+        AC_CACHE_CHECK([if swprintf declaration is broken], wx_cv_func_broken_swprintf_decl,
+            [
+                AC_TRY_COMPILE(
+                    [
+                        #include <stdio.h>
+                        #include <stdarg.h>
+                        #include <wchar.h>
+                    ],
+                    [
+                        wchar_t *buf;
+                        const wchar_t *fmt = L"test";
+                        swprintf(buf, 10u, fmt);
+                    ],
+                    wx_cv_func_broken_swprintf_decl=no,
+                    wx_cv_func_broken_swprintf_decl=yes
+                )
+            ]
+        )
+
+        if test "$wx_cv_func_broken_swprintf_decl" = "yes"; then
+            AC_DEFINE(HAVE_BROKEN_SWPRINTF_DECL)
+        fi
+    fi
+
+    dnl also look if we have wide char IO functions, notice that [f]putws are
+    dnl declared in special widec.h under Solaris
+    wchar_headers="#include <stdio.h>
+#include <wchar.h>"
+    case "${host}" in
+        *-*-solaris2* )
+            AC_CHECK_HEADER(widec.h,,, [AC_INCLUDES_DEFAULT()])
+            if test "$ac_cv_header_widec_h" = "yes"; then
+                wchar_headers="$wchar_headers
+#include <widec.h>"
+            fi
+    esac
+
+    WX_CHECK_FUNCS(wputc wputchar putws fputws wprintf vswprintf,,,
+                   [$wchar_headers])
 
     dnl MinGW has a vswprintf with a different prototype, and
     dnl a _vsnwprintf with the correct prototype, but AC_CHECK_FUNCS
@@ -4240,27 +4682,23 @@ if test "$wxUSE_UNICODE" = yes; then
                    [AC_MSG_RESULT([no])]);
 fi
 
-AC_LANG_RESTORE
-
 if test "x$ac_cv_header_fnmatch_h" = "xyes"; then
-    AC_CHECK_FUNCS(fnmatch)
+    WX_CHECK_FUNCS(fnmatch,,,[#include <fnmatch.h>])
 fi
 
 if test "$wxUSE_FILE" = "yes"; then
-    AC_CHECK_FUNCS(fsync)
+    WX_CHECK_FUNCS(fsync)
 fi
 
+WX_CHECK_FUNCS(round,,,[#include <math.h>])
 
 dnl the following tests are for Unix(like) systems only
 if test "$TOOLKIT" != "MSW"; then
 
 dnl check for available version of iconv()
 
-AC_LANG_SAVE
-AC_LANG_CPLUSPLUS
 AM_ICONV
 LIBS="$LIBICONV $LIBS"
-AC_LANG_RESTORE
 
 dnl check for POSIX signals if we need them
 if test "$wxUSE_ON_FATAL_EXCEPTION" = "yes" -a "$wxUSE_UNIX" = "yes"; then
@@ -4272,11 +4710,10 @@ if test "$wxUSE_ON_FATAL_EXCEPTION" = "yes" -a "$wxUSE_UNIX" = "yes"; then
     fi
 
     if test "$wxUSE_ON_FATAL_EXCEPTION" = "yes"; then
-      AC_LANG_SAVE
-      AC_LANG_CPLUSPLUS
-
       AC_CACHE_CHECK([for sa_handler type], wx_cv_type_sa_handler,
       [
+        dnl C compiler happily compiles the code even if there is type mismatch
+        AC_LANG_PUSH(C++)
         AC_TRY_COMPILE([#include <signal.h>],
                      [
                         extern void testSigHandler(int);
@@ -4288,21 +4725,18 @@ if test "$wxUSE_ON_FATAL_EXCEPTION" = "yes" -a "$wxUSE_UNIX" = "yes"; then
                      ], [
                         wx_cv_type_sa_handler=void
                      ])
+        AC_LANG_POP()
       ])
 
-      AC_LANG_RESTORE
-
       AC_DEFINE_UNQUOTED(wxTYPE_SA_HANDLER, $wx_cv_type_sa_handler)
     fi
 fi
 
 dnl backtrace() and backtrace_symbols() for wxStackWalker
 if test "$wxUSE_STACKWALKER" = "yes" -a "$wxUSE_UNIX" = "yes"; then
-    AC_LANG_SAVE
-    AC_LANG_CPLUSPLUS
-
     AC_CACHE_CHECK([for backtrace() in <execinfo.h>], wx_cv_func_backtrace,
         [
+            AC_LANG_PUSH(C++)
             AC_TRY_COMPILE([#include <execinfo.h>],
                 [
                     void *trace[1];
@@ -4314,6 +4748,7 @@ if test "$wxUSE_STACKWALKER" = "yes" -a "$wxUSE_UNIX" = "yes"; then
                 wx_cv_func_backtrace=yes,
                 wx_cv_func_backtrace=no
             )
+            AC_LANG_POP()
         ]
     )
 
@@ -4324,6 +4759,7 @@ if test "$wxUSE_STACKWALKER" = "yes" -a "$wxUSE_UNIX" = "yes"; then
     else
         AC_CACHE_CHECK([for __cxa_demangle() in <cxxabi.h>], wx_cv_func_cxa_demangle,
             [
+                AC_LANG_PUSH(C++)
                 AC_TRY_LINK([#include <cxxabi.h>],
                     [
                         int rc;
@@ -4332,6 +4768,7 @@ if test "$wxUSE_STACKWALKER" = "yes" -a "$wxUSE_UNIX" = "yes"; then
                     wx_cv_func_cxa_demangle=yes,
                     wx_cv_func_cxa_demangle=no
                 )
+                AC_LANG_POP()
             ]
         )
 
@@ -4339,8 +4776,6 @@ if test "$wxUSE_STACKWALKER" = "yes" -a "$wxUSE_UNIX" = "yes"; then
             AC_DEFINE(HAVE_CXA_DEMANGLE)
         fi
     fi
-
-    AC_LANG_RESTORE
 fi
 
 if test "$wxUSE_STACKWALKER" = "yes" -a "$USE_WIN32" != "1" -a "$USE_UNIX" != "1"; then
@@ -4379,9 +4814,8 @@ AC_CACHE_CHECK(for statfs, wx_cv_func_statfs,
 
 if test "$wx_cv_func_statfs" = "yes"; then
     dnl check whether we have its dcelaration too: some systems (AIX 4) lack it
-    AC_LANG_SAVE
-    AC_LANG_CPLUSPLUS
     AC_CACHE_CHECK(for statfs declaration, wx_cv_func_statfs_decl,
+        AC_LANG_PUSH(C++)
         AC_TRY_COMPILE(
             [
                  #if defined(__BSD__)
@@ -4398,8 +4832,8 @@ if test "$wx_cv_func_statfs" = "yes"; then
             wx_cv_func_statfs_decl=yes,
             wx_cv_func_statfs_decl=no
         )
+        AC_LANG_POP()
     )
-    AC_LANG_RESTORE
 
     if test "$wx_cv_func_statfs_decl" = "yes"; then
         AC_DEFINE(HAVE_STATFS_DECL)
@@ -4430,10 +4864,8 @@ else
         dnl
         dnl for this check C++ compiler has to be used as passing incompatible
         dnl pointers is just a warning and not an error in C
-        AC_LANG_SAVE
-        AC_LANG_CPLUSPLUS
-
         AC_CACHE_CHECK(for statvfs argument type, wx_cv_type_statvfs_t,
+            AC_LANG_PUSH(C++)
             AC_TRY_COMPILE(
                 [
                     #include <sys/statvfs.h>
@@ -4465,10 +4897,9 @@ else
                     )
                 ]
             )
+            AC_LANG_POP()
         )
 
-        AC_LANG_RESTORE
-
         if test "$wx_cv_type_statvfs_t" != "unknown"; then
             AC_DEFINE(HAVE_STATVFS)
         fi
@@ -4528,9 +4959,8 @@ if test "$HAVE_SOME_SLEEP_FUNC" != 1; then
                     POSIX4_LINK=" -lposix4"
                 ],
                 [
-                    AC_CHECK_FUNCS(usleep,
-                        AC_DEFINE(HAVE_USLEEP),
-                        AC_MSG_WARN([wxSleep() function will not work])
+                    WX_CHECK_FUNCS(usleep,,
+                                    AC_MSG_WARN([wxSleep() function will not work])
                     )
                 ]
             )
@@ -4539,16 +4969,12 @@ if test "$HAVE_SOME_SLEEP_FUNC" != 1; then
 fi
 
 dnl check for uname (POSIX) and gethostname (BSD)
-AC_CHECK_FUNCS(uname gethostname, break)
-
-dnl check for MT-safe version of strtok (on DEC Alpha, it's ok for C compiler
-dnl but not for C++ one - hence change language)
-AC_LANG_SAVE
-AC_LANG_CPLUSPLUS
-
-AC_CHECK_FUNCS(strtok_r)
+WX_CHECK_FUNCS(uname,,,[#include <sys/utsname.h>])
+if test "$wx_cv_func_uname" != yes; then
+    WX_CHECK_FUNCS(gethostname)  
+fi
 
-AC_LANG_RESTORE
+WX_CHECK_FUNCS(strtok_r, [], [], [#define _REENTRANT])
 
 dnl check for inet_addr and inet_aton (these may live either in libc, or in
 dnl libnsl or libresolv or libsocket)
@@ -4584,7 +5010,10 @@ if test "x$INET_LINK" != "x"; then
     INET_LINK=" -l$INET_LINK"
 fi
 
+WX_CHECK_FUNCS(fdopen)
+
 fi
+
 dnl if !MSW
 
 
@@ -4595,9 +5024,11 @@ dnl ------------------------------------------
 dnl Check for ESD:
 EXTRALIBS_ESD=
 AC_CHECK_LIB(esd, esd_close, [
-    AC_CHECK_HEADERS([esd.h], [
+    AC_CHECK_HEADER([esd.h], [
     EXTRALIBS_ESD="-lesd"
-  ])
+  ],
+  [],
+  [ ])
 ])
 AC_SUBST(EXTRALIBS_ESD)
 
@@ -4832,7 +5263,7 @@ if test "$TOOLKIT" != "MSW" -a "$USE_OS2" != 1; then
         AC_DEFINE(wxHAVE_PTHREAD_CLEANUP)
       fi
 
-      AC_CHECK_HEADERS(sched.h)
+      AC_CHECK_HEADER(sched.h,,, [AC_INCLUDES_DEFAULT()])
       if test "$ac_cv_header_sched_h" = "yes"; then
           AC_CHECK_FUNC(sched_yield,
             AC_DEFINE(HAVE_SCHED_YIELD),
@@ -4877,6 +5308,10 @@ if test "$TOOLKIT" != "MSW" -a "$USE_OS2" != 1; then
                     AC_DEFINE(HAVE_PTHREAD_CANCEL),
                     AC_MSG_WARN([wxThread::Kill() will not work properly]))
 
+      AC_CHECK_FUNC(pthread_mutex_timedlock,
+                    AC_DEFINE(HAVE_PTHREAD_MUTEX_TIMEDLOCK),
+                    AC_MSG_WARN([wxMutex::LockTimeout() will not work]))
+
       AC_CHECK_FUNC(pthread_attr_setstacksize,
                     AC_DEFINE(HAVE_PTHREAD_ATTR_SETSTACKSIZE))
 
@@ -4973,7 +5408,6 @@ else
         ;;
         *-pc-os2*emx )
             WXCONFIG_CFLAGS="$WXCONFIG_CFLAGS -Zmt -D__ST_MT_ERRNO__"
-            WXCONFIG_CXXFLAGS="$WXCONFIG_CXXFLAGS -Zmt -D__ST_MT_ERRNO__"
             LDFLAGS="$LDFLAGS -Zmt"
         ;;
       esac
@@ -4983,16 +5417,18 @@ fi
 AC_CHECK_FUNC(localtime_r, [ AC_DEFINE(HAVE_LOCALTIME_R) ])
 AC_CHECK_FUNC(gmtime_r, [ AC_DEFINE(HAVE_GMTIME_R) ])
 AC_CHECK_FUNC(readdir_r, [ AC_DEFINE(HAVE_READDIR_R) ])
-dnl By preference, use getaddrinfo which avoids thread safety issues.
-dnl If that is not available, check for gethostbyname_r/gethostbyaddr_r
-dnl and getservbyname_r
-AC_CHECK_FUNC(getaddrinfo, AC_DEFINE(HAVE_GETADDRINFO),
+dnl By preference, we probably should use getaddrinfo which avoids thread
+dnl safety issues and supports IPv6, however there currently is no code
+dnl for it, so testing for it is temporarily disabled and we are restricted
+dnl to gethostbyname_r/gethostbyaddr_r  and getservbyname_r
+
+dnl AC_CHECK_FUNC(getaddrinfo, AC_DEFINE(HAVE_GETADDRINFO), [
     dnl no getaddrinfo, so check for gethostbyname_r and
     dnl related functions (taken from python's configure.in)
     dnl sigh -- gethostbyname_r is a mess; it can have 3, 5 or 6 arguments
-    [ AX_FUNC_WHICH_GETHOSTBYNAME_R
+      AX_FUNC_WHICH_GETHOSTBYNAME_R
       if test "x$ac_cv_func_which_gethostbyname_r" = "xno" -o \
-             "x$ac_cv_func_which_gethostbyname_r" = "xunknown" ; then
+              "x$ac_cv_func_which_gethostbyname_r" = "xunknown" ; then
           AC_CHECK_FUNC(gethostbyname, [ AC_DEFINE(HAVE_GETHOSTBYNAME) ])
       fi
       dnl A similar test for getservbyname_r
@@ -5001,7 +5437,7 @@ AC_CHECK_FUNC(getaddrinfo, AC_DEFINE(HAVE_GETADDRINFO),
       dnl doing the test already exists, so using it is easy enough.     - SN
       AC_raf_FUNC_WHICH_GETSERVBYNAME_R
       if test "x$ac_cv_func_which_getservbyname_r" = "xno" -o \
-             "x$ac_cv_func_which_getservbyname_r" = "xunknown" ; then
+              "x$ac_cv_func_which_getservbyname_r" = "xunknown" ; then
           AC_CHECK_FUNCS(getservbyname,[ AC_DEFINE(HAVE_GETSERVBYNAME) ])
       fi
       dnl For gethostbyaddr_r, we currently do no separate test, instead, we
@@ -5011,8 +5447,8 @@ AC_CHECK_FUNC(getaddrinfo, AC_DEFINE(HAVE_GETADDRINFO),
       dnl (also, I'm lazy and there no m4 file that's ready for use for this
       dnl  function, although it should be easy to rewrite the gethostbyname_r
       dnl  check to fit this case, if it's really needed.                - SN )
-    ]
-)
+dnl    ]
+dnl )
 
 if test "$wxUSE_THREADS" = "yes"; then
   AC_DEFINE(wxUSE_THREADS)
@@ -5021,7 +5457,7 @@ if test "$wxUSE_THREADS" = "yes"; then
 else
   dnl on some systems, _REENTRANT should be defined if we want to use any _r()
   dnl functions - add tests for other functions here as well
-  if test "$ac_cv_func_strtok_r" = "yes"; then
+  if test "$wx_cv_func_strtok_r" = "yes"; then
     AC_MSG_CHECKING(if -D_REENTRANT is needed)
     if test "$NEEDS_D_REENTRANT_FOR_R_FUNCS" = 1; then
         WXCONFIG_CPPFLAGS="$WXCONFIG_CPPFLAGS -D_REENTRANT"
@@ -5069,7 +5505,9 @@ if test "$wxUSE_DEBUG_FLAG" = "yes" ; then
     WXCONFIG_CPPFLAGS="$WXCONFIG_CPPFLAGS -D__WXDEBUG__"
 else
     if test "$wxUSE_GTK" = 1 ; then
-        CPPFLAGS="-DGTK_NO_CHECK_CASTS $CPPFLAGS"
+        if test "x$wxGTK_VERSION" = "x1" ; then
+            CPPFLAGS="-DGTK_NO_CHECK_CASTS $CPPFLAGS"
+        fi
     fi
 fi
 
@@ -5132,7 +5570,19 @@ if test "$wxUSE_OPTIMISE" = "no" ; then
     fi
 else
     if test "$GCC" = yes ; then
-        OPTIMISE_CFLAGS="-O2"
+        case "${host}" in
+            *-pc-os2_emx | *-pc-os2-emx )
+                dnl Not all of the supported gcc versions understand
+                dnl -fstrict-aliasing and none actually needs it (yet).
+                OPTIMISE_CFLAGS="-O2"
+            ;;
+            *)
+                dnl Switch on optimisation but keep strict-aliasing off for
+                dnl now (see -fstrict-aliasing in the gcc manual). When it is
+                dnl switched back on consider using -Wstrict-aliasing=2.
+                OPTIMISE_CFLAGS="-O2 -fno-strict-aliasing"
+            ;;
+        esac
     else
         OPTIMISE_CFLAGS="-O"
     fi
@@ -5142,14 +5592,14 @@ dnl ---------------------------------------------------------------------------
 dnl compatibility level
 dnl ---------------------------------------------------------------------------
 
-if test "x$WXWIN_COMPATIBILITY_2_4" = "xyes"; then
-    AC_DEFINE(WXWIN_COMPATIBILITY_2_4)
+if test "x$WXWIN_COMPATIBILITY_2_6" = "xyes"; then
+    AC_DEFINE(WXWIN_COMPATIBILITY_2_6)
 
-    WXWIN_COMPATIBILITY_2_6="yes"
+    WXWIN_COMPATIBILITY_2_8="yes"
 fi
 
-if test "x$WXWIN_COMPATIBILITY_2_6" != "xno"; then
-    AC_DEFINE(WXWIN_COMPATIBILITY_2_6)
+if test "x$WXWIN_COMPATIBILITY_2_8" != "xno"; then
+    AC_DEFINE(WXWIN_COMPATIBILITY_2_8)
 fi
 
 dnl ---------------------------------------------------------------------------
@@ -5301,35 +5751,40 @@ fi
 dnl Unix implementation needs additional checks because audio support
 dnl comes in many favours:
 if test "$USE_UNIX" = "1" ; then
-    dnl it's not enough to check for just the header because OSS under NetBSD
-    dnl redefines ioctl as oss_ioctrl inside it and so we also need to test
-    dnl whether we need -lossaudio at link-time
-    AC_CACHE_CHECK([for ioctl() in sys/soundcard.h], ac_cv_header_sys_soundcard, [
-        AC_TRY_LINK([
-                #include <sys/soundcard.h>
-            ],
-            [
-                ioctl(0, SNDCTL_DSP_SYNC, 0);
-            ],
-            ac_cv_header_sys_soundcard=yes,
-            [
-                saveLibs="$LIBS"
-                LIBS="$saveLibs -lossaudio"
-                AC_TRY_LINK([
-                        #include <sys/soundcard.h>
-                    ],
-                    [
-                        ioctl(0, SNDCTL_DSP_SYNC, 0);
-                    ],
-                    ac_cv_header_sys_soundcard=yes,
-                    [
-                        LIBS="$saveLibs"
-                        ac_cv_header_sys_soundcard=no
-                    ]
-                )
-            ]
-        )
-    ])
+    dnl mmedia doesn't compile with wxMGL, remove this if this is ever fixed
+    if test "$wxUSE_MGL" != 1; then
+        dnl it's not enough to check for just the header because OSS under NetBSD
+        dnl redefines ioctl as oss_ioctrl inside it and so we also need to test
+        dnl whether we need -lossaudio at link-time
+        AC_CACHE_CHECK([for SNDCTL_DSP_SPEED in sys/soundcard.h], ac_cv_header_sys_soundcard, [
+            AC_TRY_LINK([
+                    #include <sys/ioctl.h>
+                    #include <sys/soundcard.h>
+                ],
+                [
+                    ioctl(0, SNDCTL_DSP_SPEED, 0);
+                ],
+                ac_cv_header_sys_soundcard=yes,
+                [
+                    saveLibs="$LIBS"
+                    LIBS="$saveLibs -lossaudio"
+                    AC_TRY_LINK([
+                            #include <sys/ioctl.h>
+                            #include <sys/soundcard.h>
+                        ],
+                        [
+                            ioctl(0, SNDCTL_DSP_SPEED, 0);
+                        ],
+                        ac_cv_header_sys_soundcard=yes,
+                        [
+                            LIBS="$saveLibs"
+                            ac_cv_header_sys_soundcard=no
+                        ]
+                    )
+                ]
+            )
+        ])
+    fi
 
     if test "$ac_cv_header_sys_soundcard" = "yes"; then
         AC_DEFINE(HAVE_SYS_SOUNDCARD_H)
@@ -5337,6 +5792,7 @@ if test "$USE_UNIX" = "1" ; then
         DISABLED_CONTRIB="$DISABLED_CONTRIB mmedia"
     fi
 fi
+
 WITH_PLUGIN_SDL=0
 if test "$wxUSE_SOUND" = "yes"; then
   if test "$USE_UNIX" = "1" ; then
@@ -5344,6 +5800,7 @@ if test "$wxUSE_SOUND" = "yes"; then
       AM_PATH_SDL([1.2.0],
                   [
                     EXTRALIBS_SDL="$SDL_LIBS"
+                    CFLAGS="$SDL_CFLAGS $CFLAGS"
                     CXXFLAGS="$SDL_CFLAGS $CXXFLAGS"
                     AC_DEFINE(wxUSE_LIBSDL)
                   ],
@@ -5352,20 +5809,30 @@ if test "$wxUSE_SOUND" = "yes"; then
         WITH_PLUGIN_SDL=1
       fi
     fi
+  else
+    dnl wxMGL doesn't support sound under DOS, only under Unix
+    if test "$wxUSE_MGL" = 1; then
+        AC_MSG_WARN([wxSound not supported in MGL under DOS... disabled])
+        wxUSE_SOUND="no"
+    fi
   fi
+fi
 
+if test "$wxUSE_SOUND" = "yes"; then
   AC_DEFINE(wxUSE_SOUND)
   SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS sound"
 fi
 
 if test "$WXGTK20" = 1; then
+    PKG_PROG_PKG_CONFIG()
+
     if test "$wxUSE_PRINTING_ARCHITECTURE" = "yes" ; then
         if test "$wxUSE_LIBGNOMEPRINT" = "yes" ; then
 
                 PKG_CHECK_MODULES(LIBGNOMEPRINTUI,
                                   [libgnomeprintui-2.2 >= 2.8],
                     [
-dnl                     EXTRALIBS_GNOMEPRINT="$LIBGNOMEPRINTUI_LIBS"
+                        CFLAGS="$LIBGNOMEPRINTUI_CFLAGS $CFLAGS"
                         CXXFLAGS="$LIBGNOMEPRINTUI_CFLAGS $CXXFLAGS"
                         AC_DEFINE(wxUSE_LIBGNOMEPRINT)
                     ],
@@ -5376,8 +5843,41 @@ dnl                     EXTRALIBS_GNOMEPRINT="$LIBGNOMEPRINTUI_LIBS"
                 )
         fi
     fi
-fi
 
+    if test "$wxUSE_MIMETYPE" = "yes" ; then
+        if test "$wxUSE_LIBGNOMEVFS" = "yes" ; then
+
+                PKG_CHECK_MODULES(GNOMEVFS,
+                                  [gnome-vfs-2.0 >= 2.0],
+                    [
+                        CFLAGS="$GNOMEVFS_CFLAGS $CFLAGS"
+                        CXXFLAGS="$GNOMEVFS_CFLAGS $CXXFLAGS"
+                        AC_DEFINE(wxUSE_LIBGNOMEVFS)
+                    ],
+                    [
+                        AC_MSG_WARN([libgnomevfs not found, library won't be able to associate MIME type])
+                        wxUSE_LIBGNOMEVFS="no"
+                    ]
+                )
+        fi
+    fi
+
+    if test "$wxUSE_LIBHILDON" = "yes" ; then
+        PKG_CHECK_MODULES(HILDON,
+                          [hildon-lgpl >= 0.9],
+            [
+                EXTRALIBS_HILDON="$HILDON_LIBS"
+                CFLAGS="$CFLAGS $HILDON_CFLAGS"
+                CXXFLAGS="$CXXFLAGS $HILDON_CFLAGS"
+                AC_DEFINE(wxUSE_LIBHILDON)
+            ],
+            [
+                AC_MSG_WARN([libhildon_lgpl not found])
+                        wxUSE_LIBHILDON="no"
+            ]
+        )
+    fi
+fi
 
 if test "$wxUSE_CMDLINE_PARSER" = "yes"; then
   AC_DEFINE(wxUSE_CMDLINE_PARSER)
@@ -5399,16 +5899,13 @@ if test "$wxUSE_FFILE" = "yes"; then
   AC_DEFINE(wxUSE_FFILE)
 fi
 
-if test "$wxUSE_FILESYSTEM" = "yes"; then
-  AC_DEFINE(wxUSE_FILESYSTEM)
-fi
-
-if test "$wxUSE_FS_ZIP" = "yes"; then
-  AC_DEFINE(wxUSE_FS_ZIP)
-fi
-
 if test "$wxUSE_ARCHIVE_STREAMS" = "yes"; then
-  AC_DEFINE(wxUSE_ARCHIVE_STREAMS)
+  if test "$wxUSE_STREAMS" != yes; then
+    AC_MSG_WARN(wxArchive requires wxStreams... disabled)
+    wxUSE_ARCHIVE_STREAMS=no
+  else
+    AC_DEFINE(wxUSE_ARCHIVE_STREAMS)
+  fi
 fi
 
 if test "$wxUSE_ZIPSTREAM" = "yes"; then
@@ -5421,6 +5918,39 @@ if test "$wxUSE_ZIPSTREAM" = "yes"; then
   fi
 fi
 
+if test "$wxUSE_TARSTREAM" = "yes"; then
+  if test "$wxUSE_ARCHIVE_STREAMS" != "yes"; then
+    AC_MSG_WARN(wxTar requires wxArchive... disabled)
+  else
+    AC_DEFINE(wxUSE_TARSTREAM)
+  fi
+fi
+
+if test "$wxUSE_FILESYSTEM" = "yes"; then
+  if test "$wxUSE_STREAMS" != yes -o \( "$wxUSE_FILE" != yes -a "$wxUSE_FFILE" != yes \); then
+    AC_MSG_WARN(wxFileSystem requires wxStreams and wxFile or wxFFile... disabled)
+    wxUSE_FILESYSTEM=no
+  else
+    AC_DEFINE(wxUSE_FILESYSTEM)
+  fi
+fi
+
+if test "$wxUSE_FS_ARCHIVE" = "yes"; then
+  if test "$wxUSE_FILESYSTEM" != yes -o "$wxUSE_ARCHIVE_STREAMS" != yes; then
+    AC_MSG_WARN(wxArchiveFSHandler requires wxArchive and wxFileSystem... disabled)
+  else
+    AC_DEFINE(wxUSE_FS_ARCHIVE)
+  fi
+fi
+
+if test "$wxUSE_FS_ZIP" = "yes"; then
+  if test "$wxUSE_FS_ARCHIVE" != yes; then
+    AC_MSG_WARN(wxZipFSHandler requires wxArchiveFSHandler... disabled)
+  else
+    AC_DEFINE(wxUSE_FS_ZIP)
+  fi
+fi
+
 if test "$wxUSE_ON_FATAL_EXCEPTION" = "yes"; then
   if test "$USE_UNIX" != 1; then
     AC_MSG_WARN([Catching fatal exceptions not currently supported on this system, wxApp::OnFatalException will not be called])
@@ -5529,18 +6059,23 @@ if test "$wxUSE_STREAMS" = "yes" ; then
   AC_DEFINE(wxUSE_STREAMS)
 fi
 
+if test "$wxUSE_PRINTF_POS_PARAMS" = "yes"; then
+  AC_DEFINE(wxUSE_PRINTF_POS_PARAMS)
+fi
+
+
 dnl ---------------------------------------------------------------------------
 dnl time/date functions
 dnl ---------------------------------------------------------------------------
 
 if test "$wxUSE_DATETIME" = "yes"; then
     dnl check for strptime and for its declaration as some systems lack it
+    dnl FIXME: use WX_CHECK_FUNCS instead
     AC_CHECK_FUNCS(strptime)
     if test "$ac_cv_func_strptime" = "yes"; then
         AC_CACHE_CHECK([for strptime declaration], wx_cv_func_strptime_decl,
             [
-                AC_LANG_SAVE
-                AC_LANG_CPLUSPLUS
+                AC_LANG_PUSH(C++)
                 AC_TRY_COMPILE(
                     [
                         #include <time.h>
@@ -5552,7 +6087,7 @@ if test "$wxUSE_DATETIME" = "yes"; then
                     wx_cv_func_strptime_decl=yes,
                     wx_cv_func_strptime_decl=no
                 )
-                AC_LANG_RESTORE
+                AC_LANG_POP()
             ]
         )
     fi
@@ -5565,6 +6100,7 @@ if test "$wxUSE_DATETIME" = "yes"; then
     AC_CACHE_CHECK(for timezone variable in <time.h>,
                    wx_cv_var_timezone,
                    [
+                        AC_LANG_PUSH(C++)
                         AC_TRY_COMPILE(
                             [
                                 #include <time.h>
@@ -5610,6 +6146,7 @@ if test "$wxUSE_DATETIME" = "yes"; then
                                 )
                             ]
                         )
+                        AC_LANG_POP()
                    ]
     )
 
@@ -5654,9 +6191,6 @@ if test "$wxUSE_DATETIME" = "yes"; then
                        wx_cv_func_gettimeofday_has_2_args,
         [
             dnl on some _really_ old systems it takes only 1 argument
-            AC_LANG_SAVE
-            AC_LANG_CPLUSPLUS
-
             AC_TRY_COMPILE(
                 [
                     #include <sys/time.h>
@@ -5683,7 +6217,6 @@ if test "$wxUSE_DATETIME" = "yes"; then
                     ]
                 )
             )
-            AC_LANG_RESTORE
         ])
 
         if test "$wx_cv_func_gettimeofday_has_2_args" != "yes"; then
@@ -5735,10 +6268,10 @@ if test "$wxUSE_SOCKETS" = "yes" ; then
         dnl This test needs to be done in C++ mode since gsocket.cpp now
         dnl is C++ code and pointer cast that are possible even without
         dnl warning in C still fail in C++.
-        AC_LANG_PUSH(C++)
         AC_CACHE_CHECK([what is the type of the third argument of getsockname],
                        wx_cv_type_getsockname3,
             [
+                AC_LANG_PUSH(C++)
                 AC_TRY_COMPILE(
                     [
                         #include <sys/types.h>
@@ -5756,9 +6289,9 @@ if test "$wxUSE_SOCKETS" = "yes" ; then
                         dnl converting between incompatible pointer types, so
                         dnl try to use it to get the correct behaviour at
                         dnl least with gcc (otherwise we'd always use size_t)
-                        CXXFLAGS_OLD="$CXXFLAGS"
+                        CFLAGS_OLD="$CFLAGS"
                         if test "$GCC" = yes ; then
-                            CXXFLAGS="-Werror $CXXFLAGS"
+                            CFLAGS="-Werror $CFLAGS"
                         fi
 
                         AC_TRY_COMPILE(
@@ -5785,9 +6318,10 @@ if test "$wxUSE_SOCKETS" = "yes" ; then
                             )
                         )
 
-                        CXXFLAGS="$CXXFLAGS_OLD"
+                        CFLAGS="$CFLAGS_OLD"
                     ]
                 )
+                AC_LANG_POP()
             ])
 
         if test "$wx_cv_type_getsockname3" = "unknown"; then
@@ -5811,17 +6345,12 @@ if test "$wxUSE_SOCKETS" = "yes" ; then
                     ],
                     wx_cv_type_getsockopt5=socklen_t,
                     [
-                        dnl the compiler will compile the version with size_t
-                        dnl even if the real type of the last parameter is int
-                        dnl but it should give at least a warning about
-                        dnl converting between incompatible pointer types, so
-                        dnl try to use it to get the correct behaviour at
-                        dnl least with gcc (otherwise we'd always use size_t)
-                        CXXFLAGS_OLD="$CXXFLAGS"
-                        if test "$GCC" = yes ; then
-                            CXXFLAGS="-Werror $CXXFLAGS"
-                        fi
-
+                        dnl Note that the rules for compatibility of pointers
+                        dnl are somewhat different between C and C++, so code 
+                        dnl that fails in C++ may not even give a warning about
+                        dnl converting between incompatible pointer types in C.
+                        dnl So this test needs to be done in C++ mode.
+                        AC_LANG_PUSH(C++)
                         AC_TRY_COMPILE(
                             [
                                 #include <sys/types.h>
@@ -5845,8 +6374,7 @@ if test "$wxUSE_SOCKETS" = "yes" ; then
                                 wx_cv_type_getsockopt5=unknown
                             )
                         )
-
-                        CXXFLAGS="$CXXFLAGS_OLD"
+                        AC_LANG_POP()
                     ]
                 )
             ])
@@ -5857,7 +6385,6 @@ if test "$wxUSE_SOCKETS" = "yes" ; then
         else
             AC_DEFINE_UNQUOTED(SOCKOPTLEN_T, $wx_cv_type_getsockopt5)
         fi
-        AC_LANG_POP
     fi
 fi
 
@@ -5902,6 +6429,10 @@ if test "$wxUSE_URL" = "yes"; then
     fi
 fi
 
+if test "$wxUSE_VARIANT" = "yes"; then
+    AC_DEFINE(wxUSE_VARIANT)
+fi
+
 if test "$wxUSE_FS_INET" = "yes"; then
   AC_DEFINE(wxUSE_FS_INET)
 fi
@@ -5929,13 +6460,22 @@ if test "$wxUSE_GUI" = "yes" -a "$wxUSE_JOYSTICK" = "yes"; then
                               qi->setEventCallout(NULL, cb, NULL, NULL); ],
                             [ wxUSE_JOYSTICK=yes ]
                           )
-            AC_LANG_POP
+            AC_LANG_POP()
             AC_MSG_RESULT($wxUSE_JOYSTICK)
         fi
 
     dnl joystick support is only for Linux 2.1.x or greater
     else
-        AC_CHECK_HEADERS(linux/joystick.h, wxUSE_JOYSTICK=yes)
+        dnl wxJoystick not supported by wxMGL at all
+        if test "$wxUSE_MGL" != "1"; then
+            dnl notice the dummy includes argument: without it, AC_CHECK_HEADER
+            dnl checks only whether the header can be preprocessed, not that it
+            dnl can be compiled and in Linux 2.6.16 joystick.h is present but
+            dnl can't be compiled because of an error and with the default
+            dnl AC_CHECK_HEADER semantics we'd still detect it in this case and
+            dnl build would fail later
+            AC_CHECK_HEADER(linux/joystick.h, [wxUSE_JOYSTICK=yes],, [AC_INCLUDES_DEFAULT()])
+        fi
     fi
 
     if test "$wxUSE_JOYSTICK" = "yes"; then
@@ -6071,13 +6611,10 @@ if test "$USE_WIN32" = 1 -a \( "$wxUSE_DATAOBJ"       = "yes" \
                           -o "$wxUSE_CLIPBOARD"     = "yes" \
                           -o "$wxUSE_OLE"     = "yes" \
                           -o "$wxUSE_DRAG_AND_DROP" = "yes" \) ; then
-    AC_CHECK_HEADERS(ole2.h)
+    AC_CHECK_HEADER(ole2.h,,, [ ])
 
     if test "$ac_cv_header_ole2_h" = "yes" ; then
         if test "$GCC" = yes ; then
-            AC_LANG_SAVE
-            AC_LANG_CPLUSPLUS
-
             AC_MSG_CHECKING([if g++ requires -fvtable-thunks])
             AC_TRY_COMPILE([#include <windows.h>
                             #include <ole2.h>],
@@ -6085,10 +6622,11 @@ if test "$USE_WIN32" = 1 -a \( "$wxUSE_DATAOBJ"       = "yes" \
                            [AC_MSG_RESULT(no)],
                            [AC_MSG_RESULT(yes)
                             WXCONFIG_CXXFLAGS="$WXCONFIG_CXXFLAGS -fvtable-thunks"])
-            AC_LANG_RESTORE
             LIBS=" -lrpcrt4 -loleaut32 -lole32 -luuid$LIBS"
             if test "$wxUSE_OLE" = "yes" ; then
                 AC_DEFINE(wxUSE_OLE)
+                AC_DEFINE(wxUSE_OLE_AUTOMATION)
+                AC_DEFINE(wxUSE_ACTIVEX)
                 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS oleauto"
             fi
         fi
@@ -6127,8 +6665,8 @@ if test "$wxUSE_IPC" = "yes"; then
 fi
 
 if test "$wxUSE_DATAOBJ" = "yes"; then
-    if test "$wxUSE_MGL" = 1; then
-        AC_MSG_WARN([wxDataObject not yet supported under MGL... disabled])
+    if test "$wxUSE_MGL" = 1 -o "$wxUSE_DFB" = 1; then
+        AC_MSG_WARN([wxDataObject not yet supported under $TOOLKIT... disabled])
         wxUSE_DATAOBJ=no
     else
         AC_DEFINE(wxUSE_DATAOBJ)
@@ -6140,8 +6678,8 @@ else
 fi
 
 if test "$wxUSE_CLIPBOARD" = "yes"; then
-    if test "$wxUSE_MGL" = 1; then
-        AC_MSG_WARN([Clipboard not yet supported under MGL... disabled])
+    if test "$wxUSE_MGL" = 1 -o "$wxUSE_DFB" = 1; then
+        AC_MSG_WARN([Clipboard not yet supported under $TOOLKIT... disabled])
         wxUSE_CLIPBOARD=no
     fi
 
@@ -6158,18 +6696,9 @@ if test "$wxUSE_DRAG_AND_DROP" = "yes" ; then
         fi
     fi
 
-    if test "$wxUSE_MOTIF" = 1; then
-        AC_MSG_WARN([Drag and drop not yet supported under Motif... disabled])
-        wxUSE_DRAG_AND_DROP=no
-    fi
-
-    if test "$wxUSE_X11" = 1; then
-        AC_MSG_WARN([Drag and drop not yet supported under X11... disabled])
-        wxUSE_DRAG_AND_DROP=no
-    fi
-
-    if test "$wxUSE_MGL" = 1; then
-        AC_MSG_WARN([Drag and drop not yet supported under MGL... disabled])
+    if test "$wxUSE_MOTIF" = 1 -o "$wxUSE_X11" = 1 -o "$wxUSE_MGL" = 1 -o \
+            "$wxUSE_DFB" = 1; then
+        AC_MSG_WARN([Drag and drop not yet supported under $TOOLKIT... disabled])
         wxUSE_DRAG_AND_DROP=no
     fi
 
@@ -6205,6 +6734,12 @@ if test "$wxUSE_ACCEL" = "yes"; then
   USES_CONTROLS=1
 fi
 
+if test "$wxUSE_ANIMATIONCTRL" = "yes"; then
+  AC_DEFINE(wxUSE_ANIMATIONCTRL)
+  USES_CONTROLS=1
+  SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS animate"
+fi
+
 if test "$wxUSE_BUTTON" = "yes"; then
   AC_DEFINE(wxUSE_BUTTON)
   USES_CONTROLS=1
@@ -6227,11 +6762,22 @@ if test "$wxUSE_CARET" = "yes"; then
   SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS caret"
 fi
 
+if test "$wxUSE_COLLPANE" = "yes"; then
+    AC_DEFINE(wxUSE_COLLPANE)
+    USES_CONTROLS=1
+    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS collpane"
+fi
+
 if test "$wxUSE_COMBOBOX" = "yes"; then
   AC_DEFINE(wxUSE_COMBOBOX)
   USES_CONTROLS=1
 fi
 
+if test "$wxUSE_COMBOCTRL" = "yes"; then
+  AC_DEFINE(wxUSE_COMBOCTRL)
+  USES_CONTROLS=1
+fi
+
 if test "$wxUSE_CHOICE" = "yes"; then
   AC_DEFINE(wxUSE_CHOICE)
   USES_CONTROLS=1
@@ -6253,14 +6799,43 @@ if test "$wxUSE_CHECKLST" = "yes"; then
   SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS checklst"
 fi
 
+if test "$wxUSE_COLOURPICKERCTRL" = "yes"; then
+  AC_DEFINE(wxUSE_COLOURPICKERCTRL)
+  USES_CONTROLS=1
+fi
+
 if test "$wxUSE_DATEPICKCTRL" = "yes"; then
   AC_DEFINE(wxUSE_DATEPICKCTRL)
   USES_CONTROLS=1
 fi
 
+if test "$wxUSE_DIRPICKERCTRL" = "yes"; then
+  AC_DEFINE(wxUSE_DIRPICKERCTRL)
+  USES_CONTROLS=1
+fi
+
+if test "$wxUSE_FILEPICKERCTRL" = "yes"; then
+  AC_DEFINE(wxUSE_FILEPICKERCTRL)
+  USES_CONTROLS=1
+fi
+
+if test "$wxUSE_FONTPICKERCTRL" = "yes"; then
+  AC_DEFINE(wxUSE_FONTPICKERCTRL)
+  USES_CONTROLS=1
+fi
+
 if test "$wxUSE_DISPLAY" = "yes"; then
-    AC_DEFINE(wxUSE_DISPLAY)
-    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS display multimon"
+    if test "$wxUSE_DFB" = 1 -o "$wxUSE_MGL" = 1; then
+        AC_MSG_WARN([wxDisplay not yet supported under $TOOLKIT... disabled])
+        wxUSE_DISPLAY=no
+    else
+        AC_DEFINE(wxUSE_DISPLAY)
+        SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS display multimon"
+    fi
+fi
+
+if test "$wxUSE_DETECT_SM" = "yes"; then
+    AC_DEFINE(wxUSE_DETECT_SM)
 fi
 
 if test "$wxUSE_GAUGE" = "yes"; then
@@ -6274,6 +6849,22 @@ if test "$wxUSE_GRID" = "yes"; then
   SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS grid"
 fi
 
+if test "$wxUSE_HYPERLINKCTRL" = "yes"; then
+  AC_DEFINE(wxUSE_HYPERLINKCTRL)
+  USES_CONTROLS=1
+fi
+
+if test "$wxUSE_BITMAPCOMBOBOX" = "yes"; then
+  AC_DEFINE(wxUSE_BITMAPCOMBOBOX)
+  USES_CONTROLS=1
+fi
+
+if test "$wxUSE_DATAVIEWCTRL" = "yes"; then
+  AC_DEFINE(wxUSE_DATAVIEWCTRL)
+  USES_CONTROLS=1
+  SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS dataview"
+fi
+
 if test "$wxUSE_IMAGLIST" = "yes"; then
     AC_DEFINE(wxUSE_IMAGLIST)
 fi
@@ -6305,6 +6896,12 @@ if test "$wxUSE_NOTEBOOK" = "yes"; then
     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS notebook"
 fi
 
+if test "$wxUSE_ODCOMBOBOX" = "yes"; then
+  AC_DEFINE(wxUSE_ODCOMBOBOX)
+  USES_CONTROLS=1
+  SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS combo"
+fi
+
 dnl if test "$wxUSE_PROPSHEET" = "yes"; then
 dnl     AC_DEFINE(wxUSE_PROPSHEET)
 dnl     USES_CONTROLS=1
@@ -6332,6 +6929,11 @@ if test "$wxUSE_SCROLLBAR" = "yes"; then
     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS scroll scrollsub"
 fi
 
+if test "$wxUSE_SEARCHCTRL" = "yes"; then
+    AC_DEFINE(wxUSE_SEARCHCTRL)
+    USES_CONTROLS=1
+fi
+
 if test "$wxUSE_SLIDER" = "yes"; then
     AC_DEFINE(wxUSE_SLIDER)
     USES_CONTROLS=1
@@ -6381,7 +6983,7 @@ if test "$wxUSE_STATUSBAR" = "yes"; then
     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS statbar"
 fi
 
-if test "$wxUSE_TABDIALOG" = "yes"; then
+if test "$wxUSE_TAB_DIALOG" = "yes"; then
     AC_DEFINE(wxUSE_TAB_DIALOG)
 fi
 
@@ -6396,10 +6998,6 @@ if test "$wxUSE_TOGGLEBTN" = "yes"; then
         AC_MSG_WARN([Toggle button not yet supported under Mac OS X... disabled])
         wxUSE_TOGGLEBTN=no
     fi
-    if test "$wxUSE_UNIVERSAL" = "yes"; then
-        AC_MSG_WARN([Toggle button not yet supported under wxUniversal... disabled])
-        wxUSE_TOGGLEBTN=no
-    fi
 
     if test "$wxUSE_TOGGLEBTN" = "yes"; then
         AC_DEFINE(wxUSE_TOGGLEBTN)
@@ -6407,24 +7005,15 @@ if test "$wxUSE_TOGGLEBTN" = "yes"; then
     fi
 fi
 
-if test "$wxUSE_TOOLBAR_SIMPLE" = "yes"; then
-    AC_DEFINE(wxUSE_TOOLBAR_SIMPLE)
-    wxUSE_TOOLBAR="yes"
-    USES_CONTROLS=1
-fi
-
 if test "$wxUSE_TOOLBAR" = "yes"; then
     AC_DEFINE(wxUSE_TOOLBAR)
     USES_CONTROLS=1
 
-    dnl if wxUSE_TOOLBAR and !wxUSE_TOOLBAR_SIMPLE => wxUSE_TOOLBAR_NATIVE
-    if test "$wxUSE_TOOLBAR_SIMPLE" != "yes"; then
+    if test "$wxUSE_UNIVERSAL" = "yes"; then
+        wxUSE_TOOLBAR_NATIVE="no"
+    else
         wxUSE_TOOLBAR_NATIVE="yes"
-    fi
-
-    if test "$wxUSE_TOOLBAR_NATIVE" = "yes"; then
         AC_DEFINE(wxUSE_TOOLBAR_NATIVE)
-        USES_CONTROLS=1
     fi
 
     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS toolbar"
@@ -6447,6 +7036,11 @@ if test "$wxUSE_TREEBOOK" = "yes"; then
     USES_CONTROLS=1
 fi
 
+if test "$wxUSE_TOOLBOOK" = "yes"; then
+    AC_DEFINE(wxUSE_TOOLBOOK)
+    USES_CONTROLS=1
+fi
+
 if test "$wxUSE_TREECTRL" = "yes"; then
     if test "$wxUSE_IMAGLIST" = "yes"; then
         AC_DEFINE(wxUSE_TREECTRL)
@@ -6473,8 +7067,8 @@ if test "$wxUSE_POPUPWIN" = "yes"; then
 fi
 
 if test "$wxUSE_DIALUP_MANAGER" = "yes"; then
-    if test "$wxUSE_MAC" = 1 -o "$wxUSE_COCOA" = 1 ; then
-        AC_MSG_WARN([Dialup manager not yet supported under Mac OS X... disabled])
+    if test "$wxUSE_MAC" = 1 -o "$wxUSE_COCOA" = 1 -o "$wxUSE_MGL" = 1; then
+        AC_MSG_WARN([Dialup manager not supported on this platform... disabled])
     else
         AC_DEFINE(wxUSE_DIALUP_MANAGER)
         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS dialup"
@@ -6543,7 +7137,10 @@ if test "$wxUSE_WEBKIT" = "yes"; then
                            AC_MSG_WARN([WebKit headers not found; disabling wxWebKit])
                            wxUSE_WEBKIT=no
                         ],
-                        [#include <Carbon/Carbon.h>])
+                        [
+                           #include <Carbon/Carbon.h>
+                           #include <WebKit/WebKit.h>
+                        ])
         CPPFLAGS="$old_CPPFLAGS"
     elif test "$wxUSE_COCOA" = 1; then
         AC_DEFINE(wxUSE_WEBKIT)
@@ -6564,6 +7161,13 @@ if test "$wxUSE_XRC" = "yes"; then
     fi
 fi
 
+USE_AUI=0
+if test "$wxUSE_AUI" = "yes"; then
+   AC_DEFINE(wxUSE_AUI)
+   USE_AUI=1
+   SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS aui"
+fi
+
 if test "$wxUSE_MENUS" = "yes"; then
     AC_DEFINE(wxUSE_MENUS)
     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS menu"
@@ -6597,7 +7201,12 @@ if test "$wxUSE_VALIDATORS" = "yes"; then
 fi
 
 if test "$wxUSE_PALETTE" = "yes" ; then
-  AC_DEFINE(wxUSE_PALETTE)
+    if test "$wxUSE_DFB" = 1; then
+        AC_MSG_WARN([wxPalette not yet supported under DFB... disabled])
+        wxUSE_PALETTE=no
+    else
+        AC_DEFINE(wxUSE_PALETTE)
+    fi
 fi
 
 if test "$wxUSE_UNICODE" = "yes" -a "$wxUSE_UNICODE_MSLU" = "yes" ; then
@@ -6627,6 +7236,10 @@ if test "$wxUSE_IMAGE" = "yes" ; then
       AC_DEFINE(wxUSE_PCX)
     fi
 
+    if test "$wxUSE_TGA" = "yes" ; then
+      AC_DEFINE(wxUSE_TGA)
+    fi
+
     if test "$wxUSE_IFF" = "yes" ; then
       AC_DEFINE(wxUSE_IFF)
     fi
@@ -6648,6 +7261,10 @@ dnl ---------------------------------------------------------------------------
 dnl common dialogs
 dnl ---------------------------------------------------------------------------
 
+if test "$wxUSE_ABOUTDLG" = "yes"; then
+    AC_DEFINE(wxUSE_ABOUTDLG)
+fi
+
 if test "$wxUSE_CHOICEDLG" = "yes"; then
     AC_DEFINE(wxUSE_CHOICEDLG)
 fi
@@ -6714,91 +7331,103 @@ if test "$wxUSE_WIZARDDLG" = "yes"; then
     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS wizard"
 fi
 
+dnl ---------------------------------------------------------------------------
+dnl wxGraphicsContext
+dnl ---------------------------------------------------------------------------
+
+if test "$wxUSE_GRAPHICS_CONTEXT" = "yes"; then
+   if test "$wxUSE_MAC" = 1 -o "$wxUSE_COCOA" = "1"; then
+      AC_DEFINE(wxUSE_GRAPHICS_CONTEXT)
+   elif test "$wxUSE_GTK" != 1; then
+      dnl for other builds we'll just wing it for now...
+      AC_DEFINE(wxUSE_GRAPHICS_CONTEXT)
+   else
+      dnl ...but let's check for cairo availability for wxGTK builds
+      PKG_CHECK_MODULES(CAIRO, cairo,
+          [AC_DEFINE(wxUSE_GRAPHICS_CONTEXT)],
+          [AC_MSG_WARN([Cairo library not found, unable to set wxUSE_GRAPHICS_CONTEXT])]
+      )
+   fi
+fi
+
 dnl ---------------------------------------------------------------------------
 dnl wxMediaCtrl
 dnl ---------------------------------------------------------------------------
 
+USE_MEDIA=0
+
 if test "$wxUSE_MEDIACTRL" = "yes"; then
+    USE_MEDIA=1
+
     dnl -----------------------------------------------------------------------
     dnl GStreamer
     dnl -----------------------------------------------------------------------
     if test "$wxUSE_GTK" = 1; then
-        wxUSE_GSTREAMER="yes"
+        wxUSE_GSTREAMER="no"
 
         dnl -------------------------------------------------------------------
-        dnl Test for gstreamer module from pkg-config
-        dnl -------------------------------------------------------------------
-        PKG_CHECK_MODULES(GSTREAMER, gstreamer-0.8,
-        [
-            CPPFLAGS="$GSTREAMER_CFLAGS $CPPFLAGS"
-            LIBS="$LIBS $GSTREAMER_LIBS -lgstplay-0.8"
-        ],
-        [
-            AC_MSG_WARN([GStreamer installation not found])
-            wxUSE_GSTREAMER="no"
-        ])
-
-        dnl -------------------------------------------------------------------
-        dnl Perform a check for a GStreamer element using gst-inspect
-        dnl Thomas Vander Stichele <thomas at apestaart dot org>
-        dnl Last modification: 25/01/2005
+        dnl Test for at least 0.8 gstreamer module from pkg-config
+        dnl Even totem doesn't accept 0.9 evidently.
         dnl
-        dnl AM_GST_ELEMENT_CHECK(ELEMENT-NAME, ACTION-IF-FOUND, ACTION-IF-NOT-FOUND)
+        dnl So, we first check to see if 0.10 if available - if not we
+        dnl try the older 0.8 version
         dnl -------------------------------------------------------------------
-        AC_DEFUN([AM_GST_ELEMENT_CHECK],
-        [
-        if test "x$GST_INSPECT" == "x"; then
-            AC_CHECK_PROG(GST_INSPECT, gst-inspect, gst-inspect, [])
+        GST_VERSION_MAJOR=0
+        GST_VERSION_MINOR=10
+        GST_VERSION=$GST_VERSION_MAJOR.$GST_VERSION_MINOR
+
+        if test "$wxUSE_GSTREAMER8" = "no"; then
+            PKG_CHECK_MODULES(GST,
+                [gstreamer-$GST_VERSION gstreamer-plugins-base-$GST_VERSION gconf-2.0],
+                [
+                    wxUSE_GSTREAMER="yes"
+                    GST_LIBS="$GST_LIBS -lgstinterfaces-$GST_VERSION"
+                ],
+                [
+                    AC_MSG_WARN([GStreamer 0.10 not available, falling back to 0.8])
+                    GST_VERSION_MINOR=8
+                ]
+            )
+        else
+            dnl check only for 0.8
+            GST_VERSION_MINOR=8
         fi
 
-        if test "x$GST_INSPECT" != "x"; then
-            AC_MSG_CHECKING(GStreamer element $1)
-            if [ $GST_INSPECT $1 > /dev/null 2> /dev/null ]; then
-            AC_MSG_RESULT(found.)
-            $2
-            else
-            AC_MSG_RESULT(not found.)
-            $3
-            fi
+        if test $GST_VERSION_MINOR = "8"; then
+            GST_VERSION=$GST_VERSION_MAJOR.$GST_VERSION_MINOR
+            PKG_CHECK_MODULES(GST,
+                [gstreamer-$GST_VERSION gstreamer-interfaces-$GST_VERSION gstreamer-gconf-$GST_VERSION],
+                wxUSE_GSTREAMER="yes",
+                [
+                    AC_MSG_WARN([GStreamer 0.8/0.10 not available.])
+                ])
         fi
-        ])
 
-        dnl -------------------------------------------------------------------
-        dnl Test for x video sink (video useless without)
-        dnl -------------------------------------------------------------------
-        AM_GST_ELEMENT_CHECK(xvimagesink,[],
-                        [
-                            wxUSE_GSTREAMER="no"
-                            AC_MSG_WARN([x video sink not found - cannot use GStreamer])
-                        ])
 
-        dnl -------------------------------------------------------------------
-        dnl Check for gstplay-0.8 lib and corresponding x overlay header
-        dnl -------------------------------------------------------------------
-        AC_CHECK_HEADER(gst/xoverlay/xoverlay.h, [],
-                        [
-                            wxUSE_GSTREAMER="no"
-                            AC_MSG_WARN([xoverlay header not found, cannot use GStreamer])
-                        ],
-                        [#include <gst/gst.h>])
+        if test "$wxUSE_GSTREAMER" = "yes"; then
+            dnl system gstreamer package is compiled with Sun CC and outputs
+            dnl CC-specific "-mt" in its flags, remove it for gcc compilation
+            case "${host}" in
+                *-*-solaris2* )
+                    if "$GCC" = yes; then
+                        GST_CFLAGS=`echo $GST_CFLAGS | sed 's/-mt//'`
+                        GST_LIBS=`echo $GST_LIBS | sed 's/-mt//'`
+                    fi
+            esac
 
-        AC_MSG_CHECKING([for gstplay 0.8])
-        WX_PATH_FIND_LIBRARIES([$SEARCH_LIB],gstplay-0.8)
+            CPPFLAGS="$GST_CFLAGS $CPPFLAGS"
+            LIBS="$GST_LIBS $LIBS"
 
-        if test "$ac_find_libraries" = "" ; then
-            AC_MSG_RESULT([no])
-            wxUSE_GSTREAMER="no"
+            AC_DEFINE(wxUSE_GSTREAMER)
         else
-            AC_MSG_RESULT([yes])
+            USE_MEDIA=0
         fi
+    fi
 
-        if test "$wxUSE_GSTREAMER" = "yes"; then
-            AC_DEFINE(wxUSE_GSTREAMER)
-            AC_MSG_RESULT([GStreamer detection successful])
-        fi
+    if test $USE_MEDIA = 1; then
+        SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS mediaplayer"
+        AC_DEFINE(wxUSE_MEDIACTRL)
     fi
-    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS mediaplayer"
-    AC_DEFINE(wxUSE_MEDIACTRL)
 fi
 
 dnl ---------------------------------------------------------------------------
@@ -6852,6 +7481,9 @@ fi
 if test "$wxUSE_XRC" = "yes" ; then
     CORE_GUI_LIBS="xrc $CORE_GUI_LIBS"
 fi
+if test "$wxUSE_AUI" = "yes" ; then
+    CORE_GUI_LIBS="aui $CORE_GUI_LIBS"
+fi
 
 if test "$wxUSE_GUI" != "yes"; then
     CORE_GUI_LIBS=""
@@ -6860,16 +7492,12 @@ fi
 AC_SUBST(CORE_BASE_LIBS)
 AC_SUBST(CORE_GUI_LIBS)
 
-
 dnl ---------------------------------------------------------------------------
 dnl Output the makefiles and such from the results found above
 dnl ---------------------------------------------------------------------------
 
 dnl all additional libraries (except wxWidgets itself) we link with
 
-dnl note that we always link with -lm except for Mac OS X
-dnl extended.c uses floor() and is always linked in
-
 if test "$wxUSE_MAC" = 1 ; then
     if test "$wxUSE_SOUND" = "yes" || test "$wxUSE_MEDIACTRL" = "yes"; then
         if test "$USE_DARWIN" = 1; then
@@ -6894,53 +7522,8 @@ if test "$USE_DARWIN" = 1 -a "$wxUSE_MAC" != 1 -a "$wxUSE_COCOA" != 1 ; then
     LDFLAGS="$LDFLAGS -framework IOKit -framework CoreServices -framework System -framework ApplicationServices"
 fi
 
-dnl FIXME: should this be covered by the conditional above
-dnl given the -lm comment there?  Or should that comment (and
-dnl this one) be removed..   [ 7 Nov 2001 ]
-
 LIBS="$ZLIB_LINK $POSIX4_LINK $INET_LINK $WCHAR_LINK $DL_LINK $LIBS"
 
-dnl Only add the -lm library if floating point functions cannot be used
-dnl without it.  This check is important on cygwin because of the bizarre
-dnl way that they have organized functions into libraries.  On cygwin, both
-dnl libc.a and libm.a are symbolic links to a single lib libcygwin.a.  This
-dnl means that
-dnl   1) linking with -lm is not necessary, and
-dnl   2) linking with -lm is dangerous if the order of libraries is wrong
-dnl In particular, if you compile any program with -mno-cygwin and link with
-dnl -lm, it will crash instantly when it is run.  This happens because the
-dnl linker incorrectly links the Cygwin libm.a (==libcygwin.a), which replaces
-dnl the ___main function instead of allowing it to be defined by
-dnl /usr/lib/mingw/libmingw32.a as it should be.
-dnl
-dnl On MacOS X, this test will find that -lm is unnecessary and leave it out.
-dnl
-dnl Just check a few floating point functions. If they are all found without
-dnl -lm, then we must not need -lm.
-have_cos=0
-have_floor=0
-AC_CHECK_FUNCS(cos, have_cos=1)
-AC_CHECK_FUNCS(floor, have_floor=1)
-AC_MSG_CHECKING(if floating point functions link without -lm)
-if test "$have_cos" = 1 -a "$have_floor" = 1; then
-    AC_MSG_RESULT(yes)
-else
-    AC_MSG_RESULT(no)
-    LIBS="$LIBS -lm"
-    # use different functions to avoid configure caching
-    have_sin=0
-    have_ceil=0
-    AC_CHECK_FUNCS(sin, have_sin=1)
-    AC_CHECK_FUNCS(ceil, have_ceil=1)
-    AC_MSG_CHECKING(if floating point functions link with -lm)
-    if test "$have_sin" = 1 -a "$have_ceil" = 1; then
-        AC_MSG_RESULT(yes)
-    else
-        AC_MSG_RESULT(no)
-        # not sure we should warn the user, crash, etc.
-    fi
-fi
-
 if test "$wxUSE_GUI" = "yes"; then
 
     dnl TODO add checks that these samples will really compile (i.e. all the
@@ -6950,7 +7533,7 @@ if test "$wxUSE_GUI" = "yes"; then
     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS artprov controls dialogs drawing \
                      dynamic erase event exec font image minimal mobile \
                      mobile/wxedit mobile/styles propsize render \
-                     richedit rotate shaped vscroll widgets"
+                     rotate shaped taborder vscroll widgets"
 
     if test "$wxUSE_MONOLITHIC" != "yes"; then
         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS console"
@@ -7021,13 +7604,13 @@ dnl come first and the one with setup.h should be before $(top_srcdir)/include
 dnl in case the latter contains setup.h used by non-autoconf makefiles (e.g.
 dnl CodeWarrior):
 CPPFLAGS=`echo $WXCONFIG_CPPFLAGS \
- -I\\${top_builddir}lib/wx/include/${TOOLCHAIN_FULLNAME} \
+ -I\\${wx_top_builddir}/lib/wx/include/${TOOLCHAIN_FULLNAME} \
  -I\\${top_srcdir}/include $TOOLKIT_INCLUDE \
  $CPPFLAGS `
 
 C_AND_CXX_FLAGS="$DEBUG_CFLAGS $PROFILE_FLAGS $OPTIMISE_CFLAGS"
 CFLAGS=`echo $WXCONFIG_CFLAGS $CWARNINGS $C_AND_CXX_FLAGS $CFLAGS `
-CXXFLAGS=`echo $WXCONFIG_CXXFLAGS $C_AND_CXX_FLAGS $CXXFLAGS `
+CXXFLAGS=`echo $WXCONFIG_CXXFLAGS $CXXWARNINGS $C_AND_CXX_FLAGS $CXXFLAGS `
 
 dnl now that we added WXCONFIG_CPPFLAGS to CPPFLAGS we can add the wx-config
 dnl only stuff to it
@@ -7056,7 +7639,7 @@ EXTRALIBS_XML="$EXPAT_LINK"
 EXTRALIBS_HTML="$MSPACK_LINK"
 EXTRALIBS_ODBC="$ODBC_LINK"
 if test "$wxUSE_GUI" = "yes"; then
-    EXTRALIBS_GUI=`echo $GUI_TK_LIBRARY $PNG_LINK $JPEG_LINK $TIFF_LINK $WEBKIT_LINK $EXTRALIBS_GNOMEPRINT`
+    EXTRALIBS_GUI=`echo $GUI_TK_LIBRARY $PNG_LINK $JPEG_LINK $TIFF_LINK $WEBKIT_LINK $EXTRALIBS_HILDON $EXTRALIBS_GNOMEVFS $EXTRALIBS_GNOMEPRINT`
 fi
 if test "$wxUSE_OPENGL" = "yes"; then
     EXTRALIBS_OPENGL="$LDFLAGS_GL $OPENGL_LIBS"
@@ -7096,6 +7679,17 @@ done
 
 if test "x$wxUSE_UNIVERSAL" = "xyes" ; then
     WXUNIV=1
+
+    case "$wxUNIV_THEMES" in
+        ''|all)
+            AC_DEFINE(wxUSE_ALL_THEMES)
+            ;;
+
+        *)
+            for t in `echo $wxUNIV_THEMES | tr , ' ' | tr a-z A-Z`; do
+                AC_DEFINE_UNQUOTED(wxUSE_THEME_$t)
+            done
+    esac
 else
     WXUNIV=0
 fi
@@ -7156,6 +7750,8 @@ AC_SUBST(EXTRALIBS_OPENGL)
 AC_SUBST(EXTRALIBS_SDL)
 AC_SUBST(WITH_PLUGIN_SDL)
 AC_SUBST(EXTRALIBS_GNOMEPRINT)
+AC_SUBST(EXTRALIBS_GNOMEVFS)
+AC_SUBST(EXTRALIBS_HILDON)
 AC_SUBST(UNICODE)
 AC_SUBST(BUILD)
 AC_SUBST(DEBUG_INFO)
@@ -7171,14 +7767,31 @@ AC_SUBST(CPPUNIT_LIBS)
 
 case "$TOOLKIT" in
     GTK)
-        TOOLKIT_USER="GTK+"
+        TOOLKIT_DESC="GTK+"
         if test "$WXGTK20" = 1; then
-            TOOLKIT_USER="$TOOLKIT_USER 2"
+            TOOLKIT_DESC="$TOOLKIT_DESC 2"
+            if test "$wxUSE_LIBGNOMEPRINT" = "yes" ; then
+                TOOLKIT_EXTRA="$TOOLKIT_EXTRA gnomeprint";
+            fi
+            if test "$wxUSE_LIBGNOMEVFS" = "yes" ; then
+                TOOLKIT_EXTRA="$TOOLKIT_EXTRA gnomevfs"
+            fi
+            if test "$wxUSE_LIBHILDON" = "yes"; then
+                TOOLKIT_EXTRA="$TOOLKIT_EXTRA hildon"
+            fi
+
+            if test "$TOOLKIT_EXTRA" != ""; then
+                TOOLKIT_DESC="$TOOLKIT_DESC with support for `echo $TOOLKIT_EXTRA | tr -s ' '`"
+            fi
         fi
         ;;
 
+    ?*)
+        TOOLKIT_DESC=$TOOLKIT_LOWERCASE
+        ;;
+
     *)
-        TOOLKIT_USER=$TOOLKIT_LOWERCASE
+        TOOLKIT_DESC="base only"
         ;;
 esac
 
@@ -7186,8 +7799,109 @@ if test "$wxUSE_WINE" = "yes"; then
     BAKEFILE_FORCE_PLATFORM=win32
 fi
 
+dnl ---------------------------------------------------------------------------
+dnl Add Universal binary support
+dnl Note we don't do this earlier because adding these cpp/ld flags could
+dnl cause configure tests to fail.
+dnl ---------------------------------------------------------------------------
+if test "$wxUSE_MAC" = 1 ; then
+    if test "x$wxUSE_UNIVERSAL_BINARY" != xno ; then
+        dnl --enable-universal_binary uses a default SDK (currently 10.4u)
+        dnl --enable-universal_binary=SDK names a path to an SDK
+        if test "x$wxUSE_UNIVERSAL_BINARY" == xyes; then
+            OSX_UNIV_OPTS="-isysroot /Developer/SDKs/MacOSX10.4u.sdk"
+        else
+            dnl '' would mean universal with no SDK, which may be the case if
+            dnl the compiler uses a sysroot by default
+            OSX_UNIV_OPTS=${wxUSE_UNIVERSAL_BINARY:+"-isysroot '$wxUSE_UNIVERSAL_BINARY'"}
+        fi
+        OSX_UNIV_OPTS="$OSX_UNIV_OPTS -arch ppc -arch i386"
+        CXXFLAGS="$OSX_UNIV_OPTS $CXXFLAGS"
+        CFLAGS="$OSX_UNIV_OPTS $CFLAGS"
+        LDFLAGS="$OSX_UNIV_OPTS $LDFLAGS"
+        bk_use_pch=no
+    fi
+    # TODO: where do we add "-syslibroot,/Developer/SDKs/MacOSX10.4u.sdk" for libtool (static builds only)?
+    #       The makefile currently uses AR and RANLIB, which libtool apparently supercedes.
+fi
+
+dnl gcc 3.4 has a pch bug which truncates wide character constants in headers.
+dnl Hopefully for a non-unicode build there aren't any wide constants in
+dnl headers, but for a unicode build it's best to disable pch.
+if test "$wxUSE_UNICODE" = yes -a "$GCC" = yes -a "$bk_use_pch" != no
+then
+    AC_CACHE_CHECK(
+        [for gcc precompiled header bug],
+        [wx_cv_gcc_pch_bug],
+        [[
+            echo '#include <stdio.h>
+                  const wchar_t test_var[] = L"awidetest";' > conftest.h
+
+            echo '#include "conftest.h"
+                  int main()
+                  {
+                     printf("%ls", test_var);
+                     return 0;
+                  }' > conftest.cpp
+
+            wx_cv_gcc_pch_bug="pch not supported"
+
+            if $CXX conftest.h >/dev/null 2>&1
+            then
+                wx_cv_gcc_pch_bug=
+
+                if $CXX -o conftest$PROGRAM_EXT conftest.cpp >/dev/null 2>&1
+                then
+                    if tr -dc '[a-z]' < conftest$PROGRAM_EXT |
+                        grep awidetest >/dev/null
+                    then
+                        wx_cv_gcc_pch_bug=no
+                    else
+                        wx_cv_gcc_pch_bug=yes
+                    fi
+                fi
+            fi
+
+            rm -f conftest.h conftest.gch conftest.cpp conftest$PROGRAM_EXT
+        ]])
+
+    if test "$wx_cv_gcc_pch_bug" = yes; then
+        dnl make the default for pch 'no'
+        dnl further below check whether the user overrode and warn them
+        bk_use_pch=no
+    fi
+fi
+
 AC_BAKEFILE([m4_include(autoconf_inc.m4)])
 
+dnl find out if the compiler supports PCH
+dnl
+dnl TODO: this should be in bakefile
+if test $GCC_PCH = 1
+then
+    if test "$wx_cv_gcc_pch_bug" = yes; then
+        AC_MSG_WARN([*** Precompiled header support is broken on this compiler])
+        AC_MSG_WARN([*** --enable-precomp-headers is not recommended])
+        AC_MSG_WARN([*** see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13361])
+    fi
+
+    CPPFLAGS="-DWX_PRECOMP $CPPFLAGS"
+fi
+
+dnl HACK ALERT!!
+dnl For now, we need to alter bk-deps not to generate deps
+dnl when we've configured a Universal binary build.
+dnl The next version of Bakefile will have the correct fix for this
+dnl at which time, this hack can be removed.
+
+if test "$wxUSE_MAC" = 1 ; then
+    if test "x$wxUSE_UNIVERSAL_BINARY" != "xno" ; then
+        sed "s/DEPSMODE=gcc/DEPSMODE=none/" < bk-deps > temp
+        mv temp bk-deps
+        chmod +x bk-deps
+    fi
+fi
+
 if test "$wxUSE_SHARED" = "yes"; then
 
     dnl We get the shared build linker from bakefile, since it
@@ -7206,8 +7920,8 @@ if test "$wxUSE_SHARED" = "yes"; then
       *-pc-os2_emx | *-pc-os2-emx )
         SHARED_LD_CC="`pwd`/dllar.sh -name-mangler-script ./dllnames.sh -libf INITINSTANCE -libf TERMINSTANCE -o"
         SHARED_LD_CXX="`pwd`/dllar.sh -name-mangler-script ./dllnames.sh -libf INITINSTANCE -libf TERMINSTANCE -o"
-       cp -p ${srcdir}/src/os2/dllnames.sh .
-       cp -p ${srcdir}/src/os2/dllar.sh .
+        cp -p ${srcdir}/src/os2/dllnames.sh .
+        cp -p ${srcdir}/src/os2/dllar.sh .
       ;;
     esac
 else
@@ -7226,13 +7940,6 @@ if test "$wxUSE_OMF" = "yes"; then
     esac
 fi
 
-dnl find out if the compiler supports PCH
-dnl
-dnl TODO: this should be in bakefile
-if test $GCC_PCH = 1 ; then
-    CPPFLAGS="-DWX_PRECOMP $CPPFLAGS"
-fi
-
 dnl TOOLCHAIN_DEFS should be used for both wx and client code
 WXCONFIG_CPPFLAGS="$WXCONFIG_CPPFLAGS $TOOLCHAIN_DEFS"
 
@@ -7362,7 +8069,10 @@ AC_CONFIG_FILES([ lib/wx/config/inplace-${TOOLCHAIN_FULLNAME}:wx-config-inplace.
                 [ chmod +x lib/wx/config/inplace-${TOOLCHAIN_FULLNAME} ],
                 [ TOOLCHAIN_FULLNAME="${TOOLCHAIN_FULLNAME}" ])
 
-AC_CONFIG_FILES([ version-script Makefile ])
+if test "$wx_cv_version_script" = "yes"; then
+    AC_CONFIG_FILES(version-script)
+fi
+AC_CONFIG_FILES(Makefile)
 
 AC_CONFIG_COMMANDS([wx-config],
                    [ rm -f wx-config
@@ -7390,6 +8100,10 @@ fi
 dnl Add tests to the list of subdirs if cppunit 1.8.0+ is detected
 AM_PATH_CPPUNIT(1.8.0, [SUBDIRS="$SUBDIRS tests"])
 
+if test "$USE_UNIX" != "1" -a "$USE_WIN32" != "1"; then
+    DISABLED_CONTRIB="$DISABLED_CONTRIB net"
+fi
+
 for subdir in `echo $SUBDIRS`; do
     if test -d ${srcdir}/${subdir} ; then
         if test "$wxUSE_GUI" = "yes"; then
@@ -7409,7 +8123,7 @@ for subdir in `echo $SUBDIRS`; do
                 disabled_var=DISABLED_`echo $subdir | tr [[a-z]] [[A-Z]]`;
                 eval "disabled=\$$disabled_var"
                 disabled=/`echo X $disabled | sed 's@ @/|/@g'`/
-                makefiles=`(cd $srcdir ; find $subdir -name Makefile.in) | egrep -v "$disabled"`
+                makefiles=`(cd $srcdir ; find $subdir -name Makefile.in) | $EGREP -v "$disabled"`
             fi
         else dnl we build wxBase only
             dnl don't take all samples/utils, just those which build with
@@ -7444,7 +8158,7 @@ dnl report how we have been configured
 echo
 echo "Configured wxWidgets ${WX_VERSION} for \`${host}'"
 echo ""
-echo "  Which GUI toolkit should wxWidgets use?                 ${TOOLKIT_USER:-base only}"
+echo "  Which GUI toolkit should wxWidgets use?                 ${TOOLKIT_DESC}"
 echo "  Should wxWidgets be compiled into single library?       ${wxUSE_MONOLITHIC:-yes}"
 
 echo "  Should wxWidgets be compiled in debug mode?             ${wxUSE_DEBUG:-no}"
@@ -7452,8 +8166,8 @@ echo "  Should wxWidgets be linked as a shared library?         ${wxUSE_SHARED:-
 echo "  Should wxWidgets be compiled in Unicode mode?           ${wxUSE_UNICODE:-no}"
 
 echo "  What level of wxWidgets compatibility should be enabled?"
-echo "                                       wxWidgets 2.4      ${WXWIN_COMPATIBILITY_2_4:-no}"
-echo "                                       wxWidgets 2.6      ${WXWIN_COMPATIBILITY_2_6:-yes}"
+echo "                                       wxWidgets 2.6      ${WXWIN_COMPATIBILITY_2_6:-no}"
+echo "                                       wxWidgets 2.8      ${WXWIN_COMPATIBILITY_2_8:-yes}"
 
 echo "  Which libraries should wxWidgets use?"
 echo "                                       jpeg               ${wxUSE_LIBJPEG-none}"
@@ -7468,7 +8182,6 @@ echo "                                       odbc               ${wxUSE_ODBC}"
 echo "                                       expat              ${wxUSE_EXPAT}"
 echo "                                       libmspack          ${wxUSE_LIBMSPACK}"
 echo "                                       sdl                ${wxUSE_LIBSDL}"
-echo "                                       gnomeprint         ${wxUSE_LIBGNOMEPRINT-none}"
 
 echo ""