]> git.saurik.com Git - wxWidgets.git/blobdiff - configure.in
read numbers even if they're followed by spaces
[wxWidgets.git] / configure.in
index 587a2b6374a983e972a18434f8714ef75f5d1c2a..40c4e861aff9e1d19ce4626ce828eff13ed8e43b 100644 (file)
@@ -47,15 +47,15 @@ dnl The resulting library name will be of the form:
 dnl   libwx_$(TOOLKIT)-$(WX_RELEASE).so.$(WX_CURRENT).$(WX_REVISION).$(WX_AGE)
 
 WX_MAJOR_VERSION_NUMBER=2
-WX_MINOR_VERSION_NUMBER=3
-WX_RELEASE_NUMBER=3
+WX_MINOR_VERSION_NUMBER=5
+WX_RELEASE_NUMBER=0
 
 WX_VERSION=$WX_MAJOR_VERSION_NUMBER.$WX_MINOR_VERSION_NUMBER.$WX_RELEASE_NUMBER
 WX_RELEASE=$WX_MAJOR_VERSION_NUMBER.$WX_MINOR_VERSION_NUMBER
 
 WX_MSW_VERSION=$WX_MAJOR_VERSION_NUMBER$WX_MINOR_VERSION_NUMBER$WX_RELEASE_NUMBER
 
-WX_CURRENT=2
+WX_CURRENT=0
 WX_REVISION=0
 WX_AGE=0
 
@@ -64,32 +64,35 @@ dnl ------------------------------------------------------------------------
 dnl Check platform (host system)
 dnl ------------------------------------------------------------------------
 
-dnl assume Unix
+dnl OS (assume Unix)
 USE_UNIX=1
 USE_WIN32=0
 USE_DOS=0
 USE_BEOS=0
 USE_MAC=0
 
-USE_LINUX=
-USE_SGI=
-USE_HPUX=
-USE_SYSV=
-USE_SVR4=
+dnl Unix kind
 USE_AIX=
-USE_SUN=
-USE_SOLARIS=
-USE_SUNOS=
-USE_ALPHA=
-USE_OSF=
 USE_BSD=
 USE_DARWIN=
 USE_FREEBSD=
-USE_OPENBSD=
+USE_HPUX=
+USE_LINUX=
 USE_NETBSD=
+USE_OPENBSD=
+USE_OSF=
+USE_SGI=
+USE_SOLARIS=
+USE_SUN=
+USE_SUNOS=
+USE_SVR4=
+USE_SYSV=
 USE_VMS=
 USE_ULTRIX=
-USE_DATA_GENERAL=
+USE_UNIXWARE=
+
+dnl hardware platform
+USE_ALPHA=
 
 dnl on some platforms xxx_r() functions are declared inside "#ifdef
 dnl _REENTRANT" and it's easier to just define this symbol for these platforms
@@ -99,10 +102,11 @@ 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="GTK MAC MGL MICROWIN MOTIF MSW PM WINE X11"
+ALL_TOOLKITS="COCOA GTK MAC MGL MICROWIN MOTIF MSW PM X11"
 
 dnl NB: these wxUSE_XXX constants have value of 0 or 1 unlike all the other ones
 dnl     which are either yes or no
+DEFAULT_wxUSE_COCOA=0
 DEFAULT_wxUSE_GTK=0
 DEFAULT_wxUSE_MAC=0
 DEFAULT_wxUSE_MGL=0
@@ -110,12 +114,12 @@ DEFAULT_wxUSE_MICROWIN=0
 DEFAULT_wxUSE_MOTIF=0
 DEFAULT_wxUSE_MSW=0
 DEFAULT_wxUSE_PM=0
-DEFAULT_wxUSE_WINE=0
 DEFAULT_wxUSE_X11=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*
 dnl nothing was found in the cache
+DEFAULT_DEFAULT_wxUSE_COCOA=0
 DEFAULT_DEFAULT_wxUSE_GTK=0
 DEFAULT_DEFAULT_wxUSE_MAC=0
 DEFAULT_DEFAULT_wxUSE_MGL=0
@@ -123,7 +127,6 @@ DEFAULT_DEFAULT_wxUSE_MICROWIN=0
 DEFAULT_DEFAULT_wxUSE_MOTIF=0
 DEFAULT_DEFAULT_wxUSE_MSW=0
 DEFAULT_DEFAULT_wxUSE_PM=0
-DEFAULT_DEFAULT_wxUSE_WINE=0
 DEFAULT_DEFAULT_wxUSE_X11=0
 
 PROGRAM_EXT=
@@ -187,15 +190,15 @@ case "${host}" in
   *-*-openbsd*)
     USE_BSD=1
     USE_OPENBSD=1
-    AC_DEFINE(__FREEBSD__)
     AC_DEFINE(__OPENBSD__)
+    AC_DEFINE(__BSD__)
     DEFAULT_DEFAULT_wxUSE_GTK=1
   ;;
   *-*-netbsd*)
     USE_BSD=1
     USE_NETBSD=1
-    AC_DEFINE(__FREEBSD__)
     AC_DEFINE(__NETBSD__)
+    AC_DEFINE(__BSD__)
     DEFAULT_DEFAULT_wxUSE_GTK=1
   ;;
   *-*-osf* )
@@ -224,8 +227,11 @@ case "${host}" in
     USE_AIX=1
     USE_SYSV=1
     USE_SVR4=1
-    dnl Irvin Probst <irvin.probst@fr.thalesgroup.com> reports that the shared
-    dnl libraries under AIX have the same suffix as the normal ones
+    dnl quoting from http://www-1.ibm.com/servers/esdd/articles/gnu.html:
+    dnl
+    dnl     Both archive libraries and shared libraries on AIX have an .a
+    dnl     extension. This will explain why you can't link with an .so and
+    dnl     why it works with the name changed to .a.
     SO_SUFFIX=a
     AC_DEFINE(__AIX__)
     AC_DEFINE(__SYSV__)
@@ -233,16 +239,18 @@ case "${host}" in
     DEFAULT_DEFAULT_wxUSE_MOTIF=1
   ;;
 
+  *-*-*UnixWare*)
+    USE_SYSV=1
+    USE_SVR4=1
+    USE_UNIXWARE=1
+    AC_DEFINE(__UNIXWARE__)
+  ;;
+
   *-*-cygwin* | *-*-mingw32* )
-    USE_UNIX=0
-    USE_WIN32=1
+    dnl MBN: some of the defines have been moved after toolkit detection
+    dnl      because for wxMotif/wxGTK/wxX11 to build on Cygwin
+    dnl      USE_UNIX  must be set and not USE_WIN32
     SO_SUFFIX=dll
-    AC_DEFINE(__WIN32__)
-    AC_DEFINE(__WIN95__)
-    AC_DEFINE(__WINDOWS__)
-    AC_DEFINE(__GNUWIN32__)
-    AC_DEFINE(STRICT)
-    AC_DEFINE(WINVER, 0x0400)
     PROGRAM_EXT=".exe"
     RESCOMP=windres
     DEFAULT_DEFAULT_wxUSE_MSW=1
@@ -254,13 +262,14 @@ case "${host}" in
     AC_DEFINE(__DOS__)
     PROGRAM_EXT=".exe"
     DEFAULT_DEFAULT_wxUSE_MGL=1
+    dnl DJGPP needs explicit -lstdc++ for some reason (VS: mayb some versions only?)
+    LIBS="$LIBS -lstdc++"
   ;;
 
   *-pc-os2_emx | *-pc-os2-emx )
     AC_DEFINE(__EMX__)
     PROGRAM_EXT=".exe"
     DEFAULT_DEFAULT_wxUSE_PM=1
-    LIBS="$LIBS -lstdcpp"
   ;;
 
   powerpc-*-darwin* )
@@ -271,6 +280,7 @@ case "${host}" in
     AC_DEFINE(__BSD__)
     AC_DEFINE(__DARWIN__)
     AC_DEFINE(__POWERPC__)
+    AC_DEFINE(TARGET_CARBON)
     DEFAULT_DEFAULT_wxUSE_MAC=1
   ;;
 
@@ -284,11 +294,6 @@ case "${host}" in
     AC_MSG_ERROR(unknown system type ${host}.)
 esac
 
-if test "$USE_UNIX" = 1 ; then
-    wxUSE_UNIX=yes
-    AC_DEFINE(__UNIX__)
-fi
-
 dnl ---------------------------------------------------------------------------
 dnl command line options for configure
 dnl ---------------------------------------------------------------------------
@@ -349,7 +354,6 @@ if test $DEBUG_CONFIGURE = 1; then
   DEFAULT_wxUSE_STD_IOSTREAM=no
   DEFAULT_wxUSE_CMDLINE_PARSER=no
   DEFAULT_wxUSE_DATETIME=no
-  DEFAULT_wxUSE_TIMEDATE=no
   DEFAULT_wxUSE_TIMER=no
   DEFAULT_wxUSE_STOPWATCH=no
   DEFAULT_wxUSE_FILE=no
@@ -362,6 +366,8 @@ if test $DEBUG_CONFIGURE = 1; then
   DEFAULT_wxUSE_FONTMAP=no
   DEFAULT_wxUSE_STREAMS=no
   DEFAULT_wxUSE_SOCKETS=no
+  DEFAULT_wxUSE_OLE=no
+  DEFAULT_wxUSE_DATAOBJ=no
   DEFAULT_wxUSE_DIALUP_MANAGER=no
   DEFAULT_wxUSE_JOYSTICK=no
   DEFAULT_wxUSE_DYNLIB_CLASS=no
@@ -384,7 +390,6 @@ if test $DEBUG_CONFIGURE = 1; then
   DEFAULT_wxUSE_DOC_VIEW_ARCHITECTURE=no
   DEFAULT_wxUSE_PRINTING_ARCHITECTURE=no
 
-  DEFAULT_wxUSE_PROLOGIO=no
   DEFAULT_wxUSE_RESOURCES=no
   DEFAULT_wxUSE_CONSTRAINTS=no
   DEFAULT_wxUSE_IPC=no
@@ -400,7 +405,7 @@ if test $DEBUG_CONFIGURE = 1; then
   DEFAULT_wxUSE_PROTOCOL_FTP=no
   DEFAULT_wxUSE_PROTOCOL_FILE=no
   DEFAULT_wxUSE_URL=no
-  
+
   DEFAULT_wxUSE_COMMONDLGS=no
   DEFAULT_wxUSE_CHOICEDLG=no
   DEFAULT_wxUSE_COLOURDLG=no
@@ -435,14 +440,13 @@ if test $DEBUG_CONFIGURE = 1; then
   DEFAULT_wxUSE_CHECKLST=no
   DEFAULT_wxUSE_CHOICE=no
   DEFAULT_wxUSE_COMBOBOX=no
+  DEFAULT_wxUSE_DISPLAY=no
   DEFAULT_wxUSE_GAUGE=no
   DEFAULT_wxUSE_GRID=no
-  DEFAULT_wxUSE_NEW_GRID=no
   DEFAULT_wxUSE_IMAGLIST=no
   DEFAULT_wxUSE_LISTBOX=no
   DEFAULT_wxUSE_LISTCTRL=no
   DEFAULT_wxUSE_NOTEBOOK=no
-  DEFAULT_wxUSE_PROPSHEET=no
   DEFAULT_wxUSE_RADIOBOX=no
   DEFAULT_wxUSE_RADIOBTN=no
   DEFAULT_wxUSE_SASH=no
@@ -522,7 +526,6 @@ else
   DEFAULT_wxUSE_STD_IOSTREAM=no
   DEFAULT_wxUSE_CMDLINE_PARSER=yes
   DEFAULT_wxUSE_DATETIME=yes
-  DEFAULT_wxUSE_TIMEDATE=no
   DEFAULT_wxUSE_TIMER=yes
   DEFAULT_wxUSE_STOPWATCH=yes
   DEFAULT_wxUSE_FILE=yes
@@ -535,6 +538,8 @@ else
   DEFAULT_wxUSE_FONTMAP=yes
   DEFAULT_wxUSE_STREAMS=yes
   DEFAULT_wxUSE_SOCKETS=yes
+  DEFAULT_wxUSE_OLE=yes
+  DEFAULT_wxUSE_DATAOBJ=yes
   DEFAULT_wxUSE_DIALUP_MANAGER=yes
   DEFAULT_wxUSE_JOYSTICK=yes
   DEFAULT_wxUSE_DYNLIB_CLASS=yes
@@ -557,8 +562,7 @@ else
   DEFAULT_wxUSE_DOC_VIEW_ARCHITECTURE=yes
   DEFAULT_wxUSE_PRINTING_ARCHITECTURE=yes
 
-  DEFAULT_wxUSE_PROLOGIO=yes
-  DEFAULT_wxUSE_RESOURCES=yes
+  DEFAULT_wxUSE_RESOURCES=no
   DEFAULT_wxUSE_CONSTRAINTS=yes
   DEFAULT_wxUSE_IPC=yes
   DEFAULT_wxUSE_HELP=yes
@@ -608,14 +612,13 @@ else
   DEFAULT_wxUSE_CHECKLST=yes
   DEFAULT_wxUSE_CHOICE=yes
   DEFAULT_wxUSE_COMBOBOX=yes
+  DEFAULT_wxUSE_DISPLAY=no
   DEFAULT_wxUSE_GAUGE=yes
   DEFAULT_wxUSE_GRID=yes
-  DEFAULT_wxUSE_NEW_GRID=yes
   DEFAULT_wxUSE_IMAGLIST=yes
   DEFAULT_wxUSE_LISTBOX=yes
   DEFAULT_wxUSE_LISTCTRL=yes
   DEFAULT_wxUSE_NOTEBOOK=yes
-  DEFAULT_wxUSE_PROPSHEET=yes
   DEFAULT_wxUSE_RADIOBOX=yes
   DEFAULT_wxUSE_RADIOBTN=yes
   DEFAULT_wxUSE_SASH=yes
@@ -664,8 +667,8 @@ dnl ============================
 dnl these options use AC_ARG_WITH and not WX_ARG_WITH on purpose - we cache
 dnl these values manually
 for toolkit in `echo $ALL_TOOLKITS`; do
-  LINE=`grep "wxUSE_$toolkit" ${wx_arg_cache_file}`
-  if test "x$LINE" != x ; then
+  LINE=`grep "wxUSE_$toolkit=" ${wx_arg_cache_file}`
+  if test "x$LINE" != "x" ; then
     has_toolkit_in_cache=1
     eval "DEFAULT_$LINE"
     eval "CACHE_$toolkit=1"
@@ -688,15 +691,16 @@ WX_ARG_ENABLE(universal,   [  --enable-universal      use wxWindows GUI controls
 AC_ARG_WITH(gtk,           [  --with-gtk              use GTK+], [wxUSE_GTK="$withval" CACHE_GTK=1 TOOLKIT_GIVEN=1])
 AC_ARG_WITH(motif,         [  --with-motif            use Motif/Lesstif], [wxUSE_MOTIF="$withval" CACHE_MOTIF=1 TOOLKIT_GIVEN=1])
 AC_ARG_WITH(mac,           [  --with-mac              use Mac OS X], [wxUSE_MAC="$withval" TOOLKIT_GIVEN=1])
-AC_ARG_WITH(wine,          [  --with-wine             use WINE], [wxUSE_WINE="$withval" CACHE_WINE=1 TOOLKIT_GIVEN=1])
+AC_ARG_WITH(cocoa,         [  --with-cocoa            use Cocoa], [wxUSE_COCOA="$withval" TOOLKIT_GIVEN=1])
+AC_ARG_WITH(wine,          [  --with-wine             use Wine], [wxUSE_WINE="$withval" CACHE_WINE=1])
 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" CACHE_MGL=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(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)
 
-AC_ARG_ENABLE(gtk2,        [  --enable-gtk2           use GTK+ 2.0 if available (EXPERIMENTAL)],wxUSE_GTK2="yes",wxUSE_GTK2="no")
+WX_ARG_ENABLE(gtk2,        [  --enable-gtk2           use GTK+ 2.0 if available (EXPERIMENTAL)], wxUSE_GTK2)
 
 WX_ARG_SYS_WITH(libpng,    [  --with-libpng           use libpng (PNG image format)], wxUSE_LIBPNG)
 WX_ARG_SYS_WITH(libjpeg,   [  --with-libjpeg          use libjpeg (JPEG file format)], wxUSE_LIBJPEG)
@@ -720,8 +724,8 @@ WX_ARG_ENABLE(soname,      [  --enable-soname         set the DT_SONAME field in
 WX_ARG_ENABLE(optimise,    [  --enable-optimise       create optimised code], wxUSE_OPTIMISE)
 WX_ARG_ENABLE(debug,       [  --enable-debug          same as debug_flag and debug_info], wxUSE_DEBUG)
 
-dnl allow the precompiled header option to be disabled under Mac OS X
-WX_ARG_ENABLE(precomp,     [  --enable-precomp        enable use of precompiled headers (Mac OS X)], wxUSE_PRECOMP)
+dnl allow the precompiled header option to be disabled under Mac OS X/Darwin
+WX_ARG_ENABLE(precomp,     [  --enable-precomp        enable use of precompiled headers (Mac OS X/Darwin)], wxUSE_PRECOMP)
 
 if test "$wxUSE_DEBUG" = "yes"; then
   DEFAULT_wxUSE_DEBUG_FLAG=yes
@@ -743,7 +747,15 @@ WX_ARG_ENABLE(permissive,    [  --enable-permissive     compile code disregardin
 WX_ARG_ENABLE(no_deps,       [  --enable-no_deps        create code without dependency information], wxUSE_NO_DEPS)
 
 WX_ARG_ENABLE(compat20,      [  --enable-compat20       enable wxWindows 2.0 compatibility], WXWIN_COMPATIBILITY_2)
-WX_ARG_ENABLE(compat22,      [  --disable-compat22      disable wxWindows 2.2 compatibility], WXWIN_COMPATIBILITY_2_2)
+WX_ARG_ENABLE(compat22,      [  --enable-compat22       enable wxWindows 2.2 compatibility], WXWIN_COMPATIBILITY_2_2)
+WX_ARG_ENABLE(compat24,      [  --disable-compat24      disable wxWindows 2.4 compatibility], WXWIN_COMPATIBILITY_2_4, disable)
+
+AC_ARG_ENABLE(rpath,         [  --enable-rpath=DIR      output the rpath flag from wx-config], [wxRPATH_DIR="$enableval"])
+
+if test "$wxRPATH_DIR" != "" -a "$wxRPATH_DIR" != "disable"; then
+   WXCONFIG_RPATH="-Wl,-rpath -Wl,$wxRPATH_DIR"
+fi
+
 
 dnl ---------------------------------------------------------------------------
 dnl (small) optional non GUI classes
@@ -757,12 +769,13 @@ WX_ARG_ENABLE(ftp,           [  --enable-ftp            use wxFTP (requires wxPr
 WX_ARG_ENABLE(http,          [  --enable-http           use wxHTTP (requires wxProtocol], wxUSE_PROTOCOL_HTTP)
 WX_ARG_ENABLE(fileproto,     [  --enable-fileproto      use wxFileProto class (requires wxProtocol], wxUSE_PROTOCOL_FILE)
 WX_ARG_ENABLE(sockets,       [  --enable-sockets        use socket/network classes], wxUSE_SOCKETS)
+WX_ARG_ENABLE(ole,           [  --enable-ole            use OLE classes], wxUSE_OLE)
+WX_ARG_ENABLE(dataobj,       [  --enable-dataobj        use data object classes], wxUSE_DATAOBJ)
 
 WX_ARG_ENABLE(ipc,           [  --enable-ipc            use interprocess communication (wxSocket etc.)], wxUSE_IPC)
 
 WX_ARG_ENABLE(cmdline,       [  --enable-cmdline        use wxCmdLineParser class], wxUSE_CMDLINE_PARSER)
 WX_ARG_ENABLE(datetime,      [  --enable-datetime       use wxDateTime class], wxUSE_DATETIME)
-WX_ARG_ENABLE(timedate,      [  --enable-timedate       use obsolete wxDate/wxTime classes], wxUSE_TIMEDATE)
 WX_ARG_ENABLE(stopwatch,     [  --enable-stopwatch      use wxStopWatch class], wxUSE_STOPWATCH)
 WX_ARG_ENABLE(dialupman,     [  --enable-dialupman      use dialup network classes], wxUSE_DIALUP_MANAGER)
 WX_ARG_ENABLE(apple_ieee,    [  --enable-apple_ieee     use the Apple IEEE codec], wxUSE_APPLE_IEEE)
@@ -839,7 +852,7 @@ dnl ---------------------------------------------------------------------------
 dnl resources
 dnl ---------------------------------------------------------------------------
 
-WX_ARG_ENABLE(prologio,    [  --enable-prologio       use Prolog IO library], wxUSE_PROLOGIO)
+dnl WX_ARG_ENABLE(prologio,    [  --enable-prologio       use Prolog IO library], wxUSE_PROLOGIO)
 WX_ARG_ENABLE(resources,   [  --enable-resources      use wxWindows resources], wxUSE_RESOURCES)
 
 WX_ARG_ENABLE(xresources,  [  --enable-xresources     use X resources for save (default for gtk+)], wxUSE_X_RESOURCES)
@@ -848,11 +861,11 @@ dnl ---------------------------------------------------------------------------
 dnl IPC &c
 dnl ---------------------------------------------------------------------------
 
-WX_ARG_ENABLE(clipboard,   [  --enable-clipboard      use wxClipboard classes], wxUSE_CLIPBOARD)
+WX_ARG_ENABLE(clipboard,   [  --enable-clipboard      use wxClipboard class], wxUSE_CLIPBOARD)
 WX_ARG_ENABLE(dnd,         [  --enable-dnd            use Drag'n'Drop classes], wxUSE_DRAG_AND_DROP)
 WX_ARG_ENABLE(metafile,    [  --enable-metafile       use win32 metafiles], wxUSE_METAFILE)
 
-WX_ARG_ENABLE(treelayout,  [  --enable-treelayout     use wxTreeLayout classes], wxUSE_TREELAYOUT)
+dnl WX_ARG_ENABLE(treelayout,  [  --enable-treelayout     use wxTreeLayout class], wxUSE_TREELAYOUT)
 
 dnl ---------------------------------------------------------------------------
 dnl optional GUI controls (in alphabetical order except the first one)
@@ -875,12 +888,10 @@ if test "$wxUSE_CONTROLS" = "yes"; then
   DEFAULT_wxUSE_CHOICE=yes
   DEFAULT_wxUSE_GAUGE=yes
   DEFAULT_wxUSE_GRID=yes
-  DEFAULT_wxUSE_NEW_GRID=yes
   DEFAULT_wxUSE_IMAGLIST=yes
   DEFAULT_wxUSE_LISTBOX=yes
   DEFAULT_wxUSE_LISTCTRL=yes
   DEFAULT_wxUSE_NOTEBOOK=yes
-  DEFAULT_wxUSE_PROPSHEET=yes
   DEFAULT_wxUSE_RADIOBOX=yes
   DEFAULT_wxUSE_RADIOBTN=yes
   DEFAULT_wxUSE_SASH=yes
@@ -914,12 +925,10 @@ elif test "$wxUSE_CONTROLS" = "no"; then
   DEFAULT_wxUSE_CHOICE=no
   DEFAULT_wxUSE_GAUGE=no
   DEFAULT_wxUSE_GRID=no
-  DEFAULT_wxUSE_NEW_GRID=no
   DEFAULT_wxUSE_IMAGLIST=no
   DEFAULT_wxUSE_LISTBOX=no
   DEFAULT_wxUSE_LISTCTRL=no
   DEFAULT_wxUSE_NOTEBOOK=no
-  DEFAULT_wxUSE_PROPSHEET=no
   DEFAULT_wxUSE_RADIOBOX=no
   DEFAULT_wxUSE_RADIOBTN=no
   DEFAULT_wxUSE_SASH=no
@@ -943,6 +952,36 @@ elif test "$wxUSE_CONTROLS" = "no"; then
   DEFAULT_wxUSE_TIPWINDOW=no
 fi
 
+## FIXME: This is a blatant hack
+if test "x$wxUSE_COCOA" != "x" -a "$wxUSE_COCOA" != "0" ; then
+  wxUSE_PRINTING_ARCHITECTURE=no
+  wxUSE_HELP=no
+  wxUSE_CLIPBOARD=no
+  wxUSE_DRAG_AND_DROP=no
+  wxUSE_DATAOBJ=no
+  DEFAULT_wxUSE_TOOLBAR_NATIVE=no
+  DEFAULT_wxUSE_GAUGE=no
+  DEFAULT_wxUSE_SCROLLBAR=no
+  DEFAULT_wxUSE_SLIDER=no
+  DEFAULT_wxUSE_COMBOBOX=no
+  DEFAULT_wxUSE_CALCTRL=no
+  DEFAULT_wxUSE_SPINBTN=no
+  DEFAULT_wxUSE_SPINCTRL=no
+  DEFAULT_wxUSE_TOOLTIPS=no
+  DEFAULT_wxUSE_COLOURDLG=no
+  DEFAULT_wxUSE_DRAGIMAGE=no
+  DEFAULT_wxUSE_FINDREPLDLG=no
+  DEFAULT_wxUSE_FONTDLG=no
+  DEFAULT_wxUSE_GRID=no
+  DEFAULT_wxUSE_NUMBERDLG=no
+  DEFAULT_wxUSE_PROGRESSDLG=no
+  DEFAULT_wxUSE_SASH=no
+  DEFAULT_wxUSE_SPLITTER=no
+  DEFAULT_wxUSE_WIZARDDLG=no
+  DEFAULT_wxUSE_SPLITTER=no
+  DEFAULT_wxUSE_STARTUP_TIPS=no
+fi
+
 WX_ARG_ENABLE(accel,       [  --enable-accel          use accelerators], wxUSE_ACCEL)
 WX_ARG_ENABLE(button,      [  --enable-button         use wxButton class], wxUSE_BUTTON)
 WX_ARG_ENABLE(bmpbutton,   [  --enable-bmpbutton      use wxBitmapButton class], wxUSE_BMPBUTTON)
@@ -951,15 +990,14 @@ WX_ARG_ENABLE(caret,       [  --enable-caret          use wxCaret class], wxUSE_
 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(combobox,    [  --enable-combobox       use wxComboBox classes], wxUSE_COMBOBOX)
+WX_ARG_ENABLE(combobox,    [  --enable-combobox       use wxComboBox class], wxUSE_COMBOBOX)
+WX_ARG_ENABLE(display,     [  --enable-display        use wxDisplay class], wxUSE_DISPLAY)
 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(newgrid,     [  --enable-newgrid        use new wxGrid class], wxUSE_NEW_GRID)
 WX_ARG_ENABLE(imaglist,    [  --enable-imaglist       use wxImageList class], wxUSE_IMAGLIST)
 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(propsheet,   [  --enable-propsheet      use wxPropertySheet class], wxUSE_PROPSHEET)
 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)
@@ -1036,7 +1074,9 @@ dnl Path separator; ':' for unix, ';' for OS/2
 dnl Stem for flex output; lexyy for OS/2, lex.yy otherwise
 case "${host}" in
   *-pc-os2_emx | *-pc-os2-emx )
-    dnl PATH_IFS is autodetected by OS/2's configure (usually ';')
+    PATH_IFS=';'
+dnl Really ought to text for this as meanwhile there are flex versions using
+dnl lex.yy as well due to FAT support being more and more dropped...
     LEX_STEM="lexyy"
   ;;
   *)
@@ -1055,6 +1095,13 @@ dnl we have a default one
 
 AC_MSG_CHECKING(for toolkit)
 
+# In Wine, we need to default to MSW, not GTK or MOTIF
+if test "$wxUSE_WINE" = "yes"; then
+    DEFAULT_DEFAULT_wxUSE_GTK=0
+    DEFAULT_DEFAULT_wxUSE_MOTIF=0
+    DEFAULT_DEFAULT_wxUSE_MSW=1
+fi
+
 if test "$wxUSE_GUI" = "yes"; then
 
     if test "$USE_BEOS" = 1; then
@@ -1082,8 +1129,9 @@ 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_GTK:-0} + ${wxUSE_MOTIF:-0} + ${wxUSE_MAC:-0}  \
-                  + ${wxUSE_WINE:-0} + ${wxUSE_MSW:-0} + ${wxUSE_MGL:-0} + ${wxUSE_MICROWIN:-0} + ${wxUSE_X11:-0}`
+    NUM_TOOLKITS=`expr ${wxUSE_COCOA:-0} + ${wxUSE_GTK:-0} + ${wxUSE_MAC:-0} \
+                  + ${wxUSE_MGL:-0} + ${wxUSE_MICROWIN:-0} \
+                  + ${wxUSE_MOTIF:-0} + ${wxUSE_MSW:-0} + ${wxUSE_X11:-0}`
 
     dnl Allow wxUSE_PM only for OS/2 with EMX.
     case "${host}" in
@@ -1095,10 +1143,10 @@ if test "$wxUSE_GUI" = "yes"; then
       1)
       ;;
       0)
-        AC_MSG_ERROR(Please specify a toolkit - cannot determine the default for ${host})
+        AC_MSG_ERROR(Please specify a toolkit -- cannot determine the default for ${host})
       ;;
       *)
-        AC_MSG_ERROR(Please specify at most one toolkit (may be some are cached?))
+        AC_MSG_ERROR(Please specify at most one toolkit (maybe some are cached in configarg.cache?))
     esac
 
     dnl cache the wxUSE_<TOOLKIT> values too
@@ -1121,6 +1169,60 @@ else
     AC_MSG_RESULT(base ($host_alias hosted) only)
 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
+      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++
+    RESCOMP=wrc
+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 ---------------------------------------------------------------------------
@@ -1153,7 +1255,7 @@ dnl   defines GCC empty if not using gcc
 dnl   defines CFLAGS
 dnl
 dnl this magic incantation is needed to prevent AC_PROG_CC from setting the
-dnl default CFLAGS (something like "-g -O2") - we don't need this as add
+dnl default CFLAGS (something like "-g -O2") -- we don't need this as we add
 dnl -g and -O flags ourselves below
 CFLAGS=${CFLAGS:=}
 AC_PROG_CC
@@ -1189,14 +1291,27 @@ dnl install checks
 dnl   defines INSTALL with the appropriate command
 AC_PROG_INSTALL
 
-dnl   make install path absolute (if not already); will fail with MSDOS paths
+dnl   make install path absolute (if not already);
+dnl   will fail with (some) MSDOS paths
 case ${INSTALL} in
   /* ) # Absolute
      ;;
-  *)     
+  ?:* ) # Drive letter, considered as absolute.
+     ;;
+  *)
      INSTALL=`pwd`/${INSTALL} ;;
 esac
 
+dnl HP-UX install doesn't handle the "-d" switch so don't use it there
+case ${host} in
+    *-hp-hpux* )
+        INSTALL_DIR="mkdir"
+        ;;
+
+    *)  INSTALL_DIR="$INSTALL -d"
+        ;;
+esac
+
 
 case "${host}" in
 
@@ -1287,6 +1402,27 @@ AC_PROG_LEX
 dnl needed for making link to setup.h
 AC_PROG_LN_S
 
+dnl ---------------------------------------------------------------------------
+dnl When we are using gcc on OS/2, we want to be either using resources (PM)
+dnl or a more complete POSIX emulation for Motif/GTK+/X11
+dnl ---------------------------------------------------------------------------
+dnl (OS/2-only piece)
+case "${host}" in
+  *-pc-os2_emx | *-pc-os2-emx )
+      dnl Explicitly link -lstdcpp, since we are using "gcc" not "g++"/"c++".
+      LIBS="$LIBS -lstdcpp"
+      if test "$wxUSE_MOTIF" = 1 -o "$wxUSE_GTK" = 1 -o "$wxUSE_X11" = 1; then
+          dnl More complete Unix emulation for unix-like ports
+          dnl by linking in POSIX/2's cExt (if available).
+          AC_CHECK_LIB(cExt, drand48, LIBS="$LIBS -lcExt")
+      else
+          dnl Include resources for the "native" port (wxPM).
+          RESPROGRAMOBJ="\${top_srcdir}/include/wx/os2/wx.res"
+      fi
+  ;;
+esac
+dnl (end of OS/2-only piece)
+
 dnl ------------------------------------------------------------------------
 dnl Check for headers
 dnl ------------------------------------------------------------------------
@@ -1294,7 +1430,7 @@ dnl ------------------------------------------------------------------------
 dnl test for strings.h needed under AIX, but do not check for it wxMac as
 dnl it exists but is only a simple redirection to string.h and it is in
 dnl conflict with Strings.h in FlatCarbon headers
-if test "$wxUSE_MAC" != 1; then
+if test "$wxUSE_MAC" != 1 -a "$wxUSE_COCOA" != 1; then
   dnl defines HAVE_STRINGS_H
   AC_CHECK_HEADERS(strings.h)
 fi
@@ -1314,10 +1450,6 @@ if test "$ac_cv_header_wchar_h" != "yes"; then
     AC_CHECK_HEADERS(wcstr.h)
 fi
 
-dnl checking for wctype.h is useless as we need wcslen(), not just wchar_t and
-dnl this function is never provided by it
-dnl AC_CHECK_HEADERS(wctype.h)
-
 dnl defines HAVE_FNMATCH_H
 AC_CHECK_HEADERS(fnmatch.h)
 
@@ -1328,6 +1460,15 @@ fi
 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.
+      if test $ac_cv_header_langinfo_h = "yes"; then
+          LIBS="$LIBS -lintl"
+      fi
+  ;;
+esac
+
 if test "$wxUSE_GUI" = "yes"; then
     if test "$wxUSE_UNIX" = "yes"; then
         dnl defines HAVE_X11_XKBLIB_H
@@ -1357,6 +1498,13 @@ case "${host}" in
     arm-*-linux* )
         AC_CHECK_SIZEOF(long long, 8)
     ;;
+    *-hp-hpux* )
+        AC_CHECK_SIZEOF(long long, 0)
+        if test "$ac_cv_sizeof_long_long" != "0"; then
+            dnl HPUX 10.20 headers need this define in order to use long long definitions
+            CPPFLAGS="$CPPFLAGS -D_INCLUDE_LONGLONG"
+        fi
+    ;;
     * )
         AC_CHECK_SIZEOF(long long, 0)
 esac
@@ -1368,6 +1516,10 @@ AC_CACHE_CHECK([size of wchar_t], wx_cv_sizeof_wchar_t,
 [
     AC_TRY_RUN(
         [
+            /* DJGPP only has fake wchar_t: */
+            #ifdef __DJGPP__
+            #  error "fake wchar_t"
+            #endif
             #ifdef HAVE_WCHAR_H
             #  ifdef __CYGWIN__
             #    include <stddef.h>
@@ -1388,7 +1540,16 @@ AC_CACHE_CHECK([size of wchar_t], wx_cv_sizeof_wchar_t,
         ],
         wx_cv_sizeof_wchar_t=`cat conftestval`,
         wx_cv_sizeof_wchar_t=0,
-        wx_cv_sizeof_wchar_t=4
+        [
+            case "${host}" in
+              *-pc-msdosdjgpp )
+                wx_cv_sizeof_wchar_t=0
+                ;;
+              * )
+                wx_cv_sizeof_wchar_t=4
+                ;;
+            esac
+        ]
     )
 ])
 
@@ -1397,6 +1558,20 @@ AC_DEFINE_UNQUOTED(SIZEOF_WCHAR_T, $wx_cv_sizeof_wchar_t)
 dnl check for large file support
 AC_SYS_LARGEFILE
 
+dnl we need to define _FILE_OFFSET_BITS or _LARGE_FILES on the compiler command
+dnl line because otherwise the system headers risk being included before
+dnl wx/defs.h which defines these constants leading to inconsistent
+dnl sizeof(off_t) in different source files of the same program and linking
+dnl problems
+if test "x$wx_largefile" = "xyes"; then
+    if test "x$ac_cv_sys_file_offset_bits" = "x64"; then
+        WX_LARGEFILE_FLAGS="-D_FILE_OFFSET_BITS=64 -D_LARGE_FILES"
+    else
+        WX_LARGEFILE_FLAGS="-D_LARGE_FILES"
+    fi
+    CPPFLAGS="$CPPFLAGS $WX_LARGEFILE_FLAGS"
+fi
+
 dnl check for bytesex stuff (don't use AC_C_BIGENDIAN to allow cross-compiling)
 WX_C_BIGENDIAN
 
@@ -1406,15 +1581,20 @@ WX_CPP_NEW_HEADERS(, AC_DEFINE(wxUSE_IOSTREAMH))
 dnl check whether C++ compiler supports bool built-in type
 WX_CPP_BOOL
 
+dnl check whether C++ compiler supports explicit keyword
+WX_CPP_EXPLICIT
+
+dnl check whether C++ compiler supports C++ casts
+AC_CXX_CONST_CAST
+
 dnl ---------------------------------------------------------------------------
 dnl Define search path for includes and libraries: all headers and libs will be
 dnl looked for in all directories of this path
 dnl ---------------------------------------------------------------------------
 
-dnl notice that /usr/include should not be in this list, otherwise it breaks
-dnl compilation on Solaris/gcc because standard headers are included instead
-dnl of the gcc ones (correction: it *is* needed for broken AIX compiler - but
-dnl do put it last!)
+dnl Notice that /usr/include should *not* be in this list, otherwise it breaks
+dnl compilation on Solaris/AIX/... with gcc because standard (non ANSI C)
+dnl headers are included instead of the "fixed" (ANSI-fied) gcc ones.
 dnl
 dnl Also try to put all directories which may contain X11R6 before those which
 dnl may contain X11R5/4 - we want to use R6 on machines which have both!
@@ -1481,9 +1661,7 @@ SEARCH_INCLUDE="\
     /usr/local/x11r5/include  \
     /usr/lpp/Xamples/include  \
                               \
-    /usr/openwin/share/include \
-                               \
-    /usr/include"
+    /usr/openwin/share/include"
 
 SEARCH_LIB="`echo "$SEARCH_INCLUDE" | sed s/include/lib/g` "
 
@@ -1497,7 +1675,7 @@ AC_CACHE_SAVE
 dnl check for glibc version
 dnl
 dnl VZ: I have no idea why had this check been there originally, but now
-dnl     it is only used to get the recursive mutexes under Linux
+dnl     we could probably do without it by just always adding _GNU_SOURCE
 if test "$USE_LINUX" = 1; then
     AC_CACHE_CHECK([for glibc 2.1 or later], wx_cv_lib_glibc21,[
         AC_TRY_COMPILE([#include <features.h>],
@@ -1519,6 +1697,20 @@ if test "$USE_LINUX" = 1; then
     fi
 fi
 
+dnl we may need _GNU_SOURCE for 2 things:
+dnl
+dnl  1. to get PTHREAD_MUTEX_RECURSIVE with glibc 2.1+ (strictly speaking we
+dnl  only need _XOPEN_SOURCE=500 but just defining this disables _BSD_SOURCE
+dnl  which breaks libtiff compilation, so it is simpler to just define
+dnl  _GNU_SOURCE to get everything)
+dnl
+dnl  2. for Unicode functions
+if test "x$wx_cv_lib_glibc21" = "xyes"; then
+    if test "$wxUSE_UNICODE" = "yes" -o "$wxUSE_THREADS" = "yes"; then
+        AC_DEFINE(_GNU_SOURCE)
+    fi
+fi
+
 dnl ---------------------------------------------------------------------------
 dnl Optional libraries
 dnl
@@ -1550,7 +1742,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))
+        AC_CHECK_HEADER(regex.h, [AC_CHECK_FUNCS(regcomp)])
 
         if test "x$ac_cv_func_regcomp" != "xyes"; then
             if test "$wxUSE_REGEX" = "sys" ; then
@@ -1580,13 +1772,61 @@ if test "$wxUSE_ZLIB" != "no" ; then
     AC_DEFINE(wxUSE_ZLIB)
 
     if test "$wxUSE_ZLIB" = "sys" -o "$wxUSE_ZLIB" = "yes" ; then
-        AC_CHECK_HEADER(zlib.h, AC_CHECK_LIB(z, deflate, ZLIB_LINK=" -lz"))
+        dnl don't test for zlib under Mac -- its verson there is 1.1.3 but we
+        dnl should still use it because hopefully (can someone confirm this?)
+        dnl Apple did fix the security problem in it and not using the system
+        dnl library results in a whole bunch of warnings when linking with
+        dnl Carbon framework
+        if test "$USE_DARWIN" = 1; then
+            system_zlib_h_ok="yes"
+        else
+            dnl we have troubles with ancient zlib versions (e.g. 1.0.4 is
+            dnl known to not work) and although I don't know which is
+            dnl the minimal required version it's safer to test for 1.1.4 as
+            dnl it fixes a security problem in 1.1.3 -- and hopefully nobody
+            dnl has anything more ancient (1.1.3 was released in July 1998)
+            dnl anyhow
+            AC_CACHE_CHECK([for zlib.h >= 1.1.4], ac_cv_header_zlib_h,
+                [AC_TRY_RUN(
+                    dnl zlib.h defines ZLIB_VERSION="x.y.z"
+                    [
+                        #include <zlib.h>
+                        #include <stdio.h>
+
+                        int main()
+                        {
+                            FILE *f=fopen("conftestval", "w");
+                            if (!f) exit(1);
+                            fprintf(f, "%s",
+                                    ZLIB_VERSION[0] == '1' &&
+                                    (ZLIB_VERSION[2] > '1' ||
+                                    (ZLIB_VERSION[2] == '1' &&
+                                     ZLIB_VERSION[4] >= '4')) ? "yes" : "no");
+                            exit(0);
+                        }
+                    ],
+                    ac_cv_header_zlib_h=`cat conftestval`,
+                    ac_cv_header_zlib_h=no,
+                    dnl cross-compiling: don't have an answer, try later
+                    unset ac_cv_header_zlib_h
+                )]
+            )
+            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)
+
+            system_zlib_h_ok=$ac_cv_header_zlib_h
+        fi
+
+        if test "$system_zlib_h_ok" = "yes"; then
+            AC_CHECK_LIB(z, deflate, ZLIB_LINK=" -lz")
+        fi
 
         if test "x$ZLIB_LINK" = "x" ; then
             if test "$wxUSE_ZLIB" = "sys" ; then
-                AC_MSG_ERROR([system zlib compression library not found! Use --with-zlib=builtin to use built-in version])
+                AC_MSG_ERROR([zlib library not found or too old! Use --with-zlib=builtin to use built-in version])
             else
-                AC_MSG_WARN([system zlib compression library not found, will use built-in instead])
+                AC_MSG_WARN([zlib library not found or too old, will use built-in instead])
                 wxUSE_ZLIB=builtin
             fi
         else
@@ -1608,7 +1848,7 @@ PNG_INCLUDE=
 PNG_LINK=
 if test "$wxUSE_LIBPNG" != "no" ; then
     AC_DEFINE(wxUSE_LIBPNG)
-    
+
     if test "$wxUSE_MGL" = 1 -a "$wxUSE_LIBPNG" = "builtin" ; then
         AC_MSG_WARN([wxMGL doesn't work with builtin png library, will use MGL one instead])
         wxUSE_LIBPNG=sys
@@ -1625,23 +1865,46 @@ if test "$wxUSE_LIBPNG" != "no" ; then
     if test "$wxUSE_MGL" != 1 ; then
         dnl Don't check for libpng when building wxMGL, libmgl contains it
         if test "$wxUSE_LIBPNG" = "sys" -o "$wxUSE_LIBPNG" = "yes" ; then
-            AC_CHECK_HEADER(png.h,
-                            AC_CHECK_LIB(png, png_check_sig,
-                                         PNG_LINK=" -lpng",
-                                         ,
-                                         [-lz -lm])
-                           )
+            dnl libpng version 0.9 is known to not work, if an even newer
+            dnl version is required, just bump it up in the test below
+            AC_CACHE_CHECK([for png.h > 0.90], ac_cv_header_png_h,
+                [AC_TRY_RUN(
+                    dnl png.h defines PNG_LIBPNG_VER=number
+                    [
+                        #include <png.h>
+                        #include <stdio.h>
+
+                        int main()
+                        {
+                            FILE *f=fopen("conftestval", "w");
+                            if (!f) exit(1);
+                            fprintf(f, "%s",
+                                     PNG_LIBPNG_VER > 90 ? "yes" : "no");
+                            exit(0);
+                        }
+                    ],
+                    ac_cv_header_png_h=`cat conftestval`,
+                    ac_cv_header_png_h=no,
+                    dnl cross-compiling: test (later) if we have any png.h
+                    unset ac_cv_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 -lm])
+            fi
 
             if test "x$PNG_LINK" = "x" ; then
                 if test "$wxUSE_LIBPNG" = "sys" ; then
-                    AC_MSG_ERROR([system png library not found! Use --with-libpng=builtin to use built-in version])
+                    AC_MSG_ERROR([system png library not found or too old! Use --with-libpng=builtin to use built-in version])
                 else
-                    AC_MSG_WARN([system png library not found, will use built-in instead])
+                    AC_MSG_WARN([system png library not found or too old, will use built-in instead])
                     wxUSE_LIBPNG=builtin
                 fi
             else
                 dnl we are using the system library
-                wxUSE_LIBPNG=yes
+                wxUSE_LIBPNG=sys
             fi
         fi
     fi
@@ -1718,15 +1981,24 @@ dnl ------------------------------------------------------------------------
 
 TIFF_INCLUDE=
 TIFF_LINK=
+TIFF_PREREQ_LINKS=-lm
 if test "$wxUSE_LIBTIFF" != "no" ; then
     AC_DEFINE(wxUSE_LIBTIFF)
 
     if test "$wxUSE_LIBTIFF" = "sys" -o "$wxUSE_LIBTIFF" = "yes" ; then
+        dnl libtiff may depend on libjpeg and libz so use them in the test
+        dnl below or it would fail
+        if test "$wxUSE_LIBJPEG" = "sys"; then
+            TIFF_PREREQ_LINKS="$TIFF_PREREQ_LINKS $JPEG_LINK"
+        fi
+        if test "$wxUSE_ZLIB" = "sys"; then
+            TIFF_PREREQ_LINKS="$TIFF_PREREQ_LINKS $ZLIB_LINK"
+        fi
         AC_CHECK_HEADER(tiffio.h,
                         AC_CHECK_LIB(tiff, TIFFError,
                                      TIFF_LINK=" -ltiff",
                                      ,
-                                     -lm)
+                                     $TIFF_PREREQ_LINKS)
                        )
 
         if test "x$TIFF_LINK" = "x" ; then
@@ -1752,6 +2024,7 @@ dnl search for toolkit (widget sets)
 dnl ----------------------------------------------------------------
 
 AFMINSTALL=
+WIN32INSTALL=
 
 TOOLKIT=
 TOOLKIT_INCLUDE=
@@ -1807,6 +2080,19 @@ if test "$USE_WIN32" = 1 ; then
 
     RESFLAGS="--include-dir \$(top_srcdir)/include --include-dir \$(top_srcdir)/\$(program_dir) --define __WIN32__ --define __WIN95__ --define __GNUWIN32__"
     RESPROGRAMOBJ="\$(PROGRAM)_resources.o"
+
+    dnl install Win32-specific files in "make install"
+    WIN32INSTALL=win32install
+fi
+
+if test "$USE_DARWIN" = 1; then
+    dnl Mac OS X/Darwin GCC uses precompiled headers by default
+    dnl this can cause problems both when compiling wxMac and wxBase
+    if test "$wxUSE_PRECOMP" = "yes"; then
+        CPPFLAGS="$CPPFLAGS -cpp-precomp"
+    else
+        CPPFLAGS="$CPPFLAGS -no-cpp-precomp"
+    fi
 fi
 
 if test "$wxUSE_GUI" = "yes"; then
@@ -1823,12 +2109,8 @@ if test "$wxUSE_GUI" = "yes"; then
         GUIDIST=MSW_DIST
 
         dnl -mwindows causes a heap of other default gui libs to be linked in.
-        dnl FIXME: If cygwin needs this, please push it above, if not, please
-        dnl        remove this comment :-)
-        case "${host}" in
-            *-*-mingw32* )
-                LDFLAGS="$LDFLAGS -Wl,--subsystem,windows -mwindows"
-        esac
+        dnl All platforms need this, except maybe cygwin
+        LDFLAGS="$LDFLAGS -Wl,--subsystem,windows -mwindows"
     fi
 
     if test "$wxUSE_GTK" = 1; then
@@ -1849,17 +2131,17 @@ if test "$wxUSE_GUI" = "yes"; then
                     GTK_MODULES=gthread
                 fi
 
+                dnl note that if we fail to find GTK2 we abort and don't fall
+                dnl back to GTK1.x
                 wx_cv_lib_gtk=
                 if test "x$wxUSE_GTK2" = "xyes"; then
                     AM_PATH_GTK_2_0(2.0.0, wx_cv_lib_gtk=2.0, , $GTK_MODULES)
-                fi
-
-                if test -z "$wx_cv_lib_gtk"; then
+                else
                     AM_PATH_GTK(1.2.7, wx_cv_lib_gtk=1.2.7, , $GTK_MODULES)
-                fi
 
-                if test -z "$wx_cv_lib_gtk"; then
-                    AM_PATH_GTK(1.2.3, wx_cv_lib_gtk=1.2.3, , $GTK_MODULES)
+                    if test -z "$wx_cv_lib_gtk"; then
+                        AM_PATH_GTK(1.2.3, wx_cv_lib_gtk=1.2.3, , $GTK_MODULES)
+                    fi
                 fi
 
                 if test -z "$wx_cv_lib_gtk"; then
@@ -1882,6 +2164,7 @@ if test "$wxUSE_GUI" = "yes"; then
 
         case "$wx_cv_lib_gtk" in
             2.0)    WXGTK20=1
+                    TOOLKIT_VERSION=2
                     ;;
             1.2.7)  WXGTK127=1
                     WXGTK12=1
@@ -1897,6 +2180,32 @@ equivalent variable and GTK+ is version 1.2.3 or above.
                     ;;
         esac
 
+        if test "$WXGTK20" = 1; then
+            if test "$wxUSE_PRINTING_ARCHITECTURE" = "yes" ; then
+                PKG_CHECK_MODULES(PANGOFT2, pangoft2,
+                    [
+                        CXXFLAGS="$CXXFLAGS $PANGOFT2_CFLAGS"
+                        LIBS="$LIBS $PANGOFT2_LIBS"
+                    ],
+                    [
+                        AC_MSG_WARN([pangoft2 library not found, library will be compiled without printing support])
+                        wxUSE_PRINTING_ARCHITECTURE="no"
+                    ]
+                )
+            fi
+        else
+            if test "$wxUSE_UNICODE" = "yes"; then
+                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)
+        fi
+
         TOOLKIT_INCLUDE="$wx_cv_cflags_gtk"
         GUI_TK_LIBRARY="$wx_cv_libs_gtk"
 
@@ -1909,7 +2218,7 @@ equivalent variable and GTK+ is version 1.2.3 or above.
     fi
 
     if test "$wxUSE_MGL" = 1; then
-        AC_MSG_CHECKING(for SciTech MGL library)
+       AC_MSG_CHECKING(for SciTech MGL library)
         if test "x$MGL_ROOT" = x ; then
             AC_MSG_RESULT(not found)
             AC_MSG_ERROR([Cannot find MGL library. Make sure MGL_ROOT is set.])
@@ -1917,35 +2226,51 @@ equivalent variable and GTK+ is version 1.2.3 or above.
             AC_MSG_RESULT($MGL_ROOT)
         fi
 
+        AC_MSG_CHECKING(for libmgl location)
         dnl Find MGL library that we want
         dnl FIXME_MGL - test for MGL variants for freebsd etc.
         case "${host}" in
             *-*-linux* )
-              mgl_os=linux/gcc/glibc
+              if test "x$wxUSE_SHARED" = xyes ; then
+                  mgl_os_candidates="linux/gcc/glibc.so linux/gcc/glibc"
+              else
+                  mgl_os_candidates="linux/gcc/glibc linux/gcc/glibc.so"
+              fi
               ;;
             *-pc-msdosdjgpp )
-              mgl_os=dos32/dj2
+              mgl_os_candidates="dos32/dj2"
               ;;
             *)
               AC_MSG_ERROR(This system type ${host} is not yet supported by wxMGL.)
         esac
 
         mgl_lib_type=""
-
-        if test "$wxUSE_DEBUG_FLAG" = yes ; then
-            if test -f $MGL_ROOT/lib/debug/$mgl_os/libmgl.a -o \
-                    -f $MGL_ROOT/lib/debug/$mgl_os/libmgl.so; then
-                mgl_lib_type=debug
-            fi
-        fi
-        if test "x$mgl_lib_type" = x ; then
-            if test -f $MGL_ROOT/lib/release/$mgl_os/libmgl.a -o \
-                    -f $MGL_ROOT/lib/release/$mgl_os/libmgl.so; then
-                mgl_lib_type=release
-            else
-                AC_MSG_ERROR([Cannot find MGL libraries, make sure they are compiled.])
+        mgl_os=""
+
+        for mgl_os_i in $mgl_os_candidates ; do
+            if test "x$mgl_os" = x ; then
+                if test "$wxUSE_DEBUG_FLAG" = yes ; then
+                    if test -f $MGL_ROOT/lib/debug/$mgl_os_i/libmgl.a -o \
+                            -f $MGL_ROOT/lib/debug/$mgl_os_i/libmgl.so; then
+                        mgl_lib_type=debug
+                        mgl_os=$mgl_os_i
+                    fi
+                fi
+                if test "x$mgl_lib_type" = x ; then
+                    if test -f $MGL_ROOT/lib/release/$mgl_os_i/libmgl.a -o \
+                            -f $MGL_ROOT/lib/release/$mgl_os_i/libmgl.so; then
+                        mgl_lib_type=release
+                        mgl_os=$mgl_os_i
+                    fi
+                fi
             fi
+        done
+
+        if test "x$mgl_os" = x ; then
+            AC_MSG_RESULT(not found)
+            AC_MSG_ERROR([Cannot find MGL libraries, make sure they are compiled.])
         fi
+        AC_MSG_RESULT("$MGL_ROOT/lib/$mgl_lib_type/$mgl_os")
 
         wxUSE_UNIVERSAL="yes"
 
@@ -2040,6 +2365,44 @@ equivalent variable and GTK+ is version 1.2.3 or above.
             )
         fi
 
+        AC_CHECK_LIB([Xext], [XShapeQueryExtension],
+                     [
+                      GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lXext"
+                      wxHAVE_XEXT_LIB=1
+                     ],
+                     [], [$GUI_TK_LIBRARY -lX11])
+
+        if test "$wxUSE_UNICODE" = "yes"; then
+                PKG_CHECK_MODULES(PANGOX, pangox,
+                    [
+                        CXXFLAGS="$CXXFLAGS $PANGOX_CFLAGS"
+                        LIBS="$LIBS $PANGOX_LIBS"
+                    ],
+                    [
+                        AC_MSG_ERROR([pangox library not found, library cannot be compiled in Unicode mode])
+                    ]
+                )
+                PKG_CHECK_MODULES(PANGOFT2, pangoft2,
+                    [
+                        CXXFLAGS="$CXXFLAGS $PANGOFT2_CFLAGS"
+                        LIBS="$LIBS $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,
+                    [
+                        CXXFLAGS="$CXXFLAGS $PANGOXFT_CFLAGS"
+                        LIBS="$LIBS $PANGOXFT_LIBS"
+                    ],
+                    [
+                        AC_MSG_WARN([pangoxft library not found, library will be compiled without anti-aliasing support])
+                    ]
+                )
+        fi
+
         wxUSE_UNIVERSAL="yes"
 
         if test "$wxUSE_NANOX" = "yes"; then
@@ -2055,42 +2418,6 @@ equivalent variable and GTK+ is version 1.2.3 or above.
         GUIDIST=X11_DIST
     fi
 
-    if test "$wxUSE_WINE" = 1; then
-        AC_CHECK_HEADER(windows.h, [],
-        [
-            AC_MSG_ERROR(please set CFLAGS to contain the location of windows.h)
-        ])
-
-        xpm_link=
-        AC_MSG_CHECKING(for Xpm library)
-        WX_PATH_FIND_LIBRARIES($SEARCH_LIB,Xpm)
-        if test "$ac_find_libraries" != "" ; then
-            GUI_TK_LIBRARY="-L$ac_find_libraries"
-            xpm_link=" -lXpm"
-            AC_DEFINE(wxHAVE_LIB_XPM)
-            AC_MSG_RESULT(found at $ac_find_libraries)
-        else
-            AC_MSG_RESULT(no)
-            AC_MSG_WARN(library will be compiled without support for images in XPM format)
-        fi
-
-        mesa_link=
-        AC_MSG_CHECKING(for Mesa library)
-        WX_PATH_FIND_LIBRARIES($SEARCH_LIB,MesaGL)
-        if test "$ac_find_libraries" != "" ; then
-            GUI_TK_LIBRARY="$GUI_TK_LIBRARY -L$ac_find_libraries"
-            mesa_link=" -lMesaGL"
-            AC_MSG_RESULT(found at $ac_find_libraries)
-        else
-            AC_MSG_ERROR(no)
-        fi
-
-        GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lwine$mesa_link$xpm_link -lXxf86dga -lXxf86vm -lSM -lICE -lXext -lXmu -lX11 -lncurses"
-        TOOLKIT=MSW
-        GUIDIST=MSW_DIST
-        TOOLCHAIN_DEFS="${TOOLCHAIN_DEFS} -D__WXWINE__"
-    fi
-
     if test "$wxUSE_MOTIF" = 1; then
         dnl use standard macros to check for X headers/libs, this brings support
         dnl for the standard configure options --x-includes and --x-libraries
@@ -2100,15 +2427,19 @@ equivalent variable and GTK+ is version 1.2.3 or above.
           AC_MSG_ERROR(X11 not found, please use --x-includes and/or --x-libraries options)
         fi
 
-        GUI_TK_LIBRARY="$X_LIBS"
-        TOOLKIT_INCLUDE="$X_CFLAGS"
+        dnl for some reason AC_PATH_XTRA seems to add -INONE and -LNONE to
+        dnl X_LIBS and X_CFLAGS respectively -- what for??
+        GUI_TK_LIBRARY=`echo $X_LIBS | sed 's/ -LNONE//'`
+        TOOLKIT_INCLUDE=`echo $X_CFLAGS | sed 's/ -INONE//'`
         AFMINSTALL=afminstall
         COMPILED_X_PROGRAM=0
 
         AC_MSG_CHECKING(for Motif/Lesstif headers)
         WX_PATH_FIND_INCLUDES($SEARCH_INCLUDE, Xm/Xm.h)
         if test "$ac_find_includes" != "" ; then
-            AC_MSG_RESULT(found $ac_find_includes)
+            AC_MSG_RESULT(found in $ac_find_includes)
+            WX_INCLUDE_PATH_EXIST($ac_find_includes, $TOOLKIT_INCLUDE)
+            TOOLKIT_INCLUDE="$TOOLKIT_INCLUDE$ac_path_to_include"
         else
             AC_TRY_COMPILE(
                 [
@@ -2133,16 +2464,17 @@ equivalent variable and GTK+ is version 1.2.3 or above.
             AC_MSG_CHECKING(for Motif/Lesstif library)
             WX_PATH_FIND_LIBRARIES($SEARCH_LIB, Xm)
             if test "$ac_find_libraries" != "" ; then
-                WX_INCLUDE_PATH_EXIST($ac_find_includes, $TOOLKIT_INCLUDE)
-                WX_LINK_PATH_EXIST($ac_find_libraries, $GUI_TK_LIBRARY)
+                AC_MSG_RESULT(found at $ac_find_libraries)
 
+                WX_LINK_PATH_EXIST($ac_find_libraries, $GUI_TK_LIBRARY)
                 GUI_TK_LIBRARY="$GUI_TK_LIBRARY$ac_path_to_link"
-                TOOLKIT_INCLUDE="$TOOLKIT_INCLUDE$ac_path_to_include"
-                AC_MSG_RESULT(found at $ac_find_libraries)
             else
-                dnl it might happen that we found headers in one of the standard
-                dnl paths but the libs are elsewhere - we do need to try to
-                dnl compile a sample program then here
+                dnl it might happen that we found headers in one of the
+                dnl standard paths but the libs are elsewhere - we do need to
+                dnl try to compile a sample program then here
+                save_CFLAGS=$CFLAGS
+                CFLAGS="$CFLAGS $TOOLKIT_INCLUDE"
+
                 AC_TRY_COMPILE(
                     [
                         #include <Xm/Xm.h>
@@ -2160,6 +2492,8 @@ equivalent variable and GTK+ is version 1.2.3 or above.
                         AC_MSG_ERROR(please set LDFLAGS to contain the location of libXm)
                     ]
                 )
+
+                CFLAGS=$save_CFLAGS
             fi
         fi
 
@@ -2169,10 +2503,14 @@ equivalent variable and GTK+ is version 1.2.3 or above.
         if test "$ac_find_libraries" != "" ; then
             WX_LINK_PATH_EXIST($ac_find_libraries,$GUI_TK_LIBRARY)
             GUI_TK_LIBRARY="$GUI_TK_LIBRARY$ac_path_to_link"
+
             xpm_link=" -lXpm"
             AC_DEFINE(wxHAVE_LIB_XPM)
             AC_MSG_RESULT(found at $ac_find_libraries)
         else
+            save_CFLAGS=$CFLAGS
+            CFLAGS="$CFLAGS $TOOLKIT_INCLUDE"
+
             AC_TRY_COMPILE(
                 [
                     #include <X11/xpm.h>
@@ -2192,33 +2530,131 @@ equivalent variable and GTK+ is version 1.2.3 or above.
                     AC_MSG_WARN(library will be compiled without support for images in XPM format)
                 ]
             )
+
+            CFLAGS=$save_CFLAGS
         fi
 
-        GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lXm$xpm_link -lXmu -lXext -lXt -lX11"
-        TOOLKIT_VPATH="\${top_srcdir}/src/motif${PATH_IFS}\${top_srcdir}/src/motif/xmcombo"
+        AC_MSG_CHECKING([if we need -lXp and/or -lSM -lICE])
+        libp_link=""
+        libsm_ice_link=""
+        libs_found=0
+        for libp in "" " -lXp"; do
+            if test "$libs_found" = "0"; then
+                for libsm_ice in " -lSM -lICE"; do
+                    if test "$libs_found" = "0"; then
+                        save_LIBS="$LIBS"
+                        LIBS="$GUI_TK_LIBRARY -lXm${xpm_link} ${libp} -lXmu -lXext -lXt${libsm_ice} -lX11"
+                        save_CFLAGS=$CFLAGS
+                        CFLAGS="$CFLAGS $TOOLKIT_INCLUDE"
+
+                        AC_TRY_LINK(
+                            [
+                                #include <Xm/Xm.h>
+                                #include <Xm/List.h>
+                            ],
+                            [
+                                XmString string = NULL;
+                                Widget w = NULL;
+                                int position = 0;
+                                XmListAddItem(w, string, position);
+                            ],
+                            [
+                                libp_link="$libp"
+                                libsm_ice_link="$libsm_ice"
+                                AC_MSG_RESULT(
+                                    [need${libp_link}${libsm_ice_link}])
+                                libs_found=1
+                            ], []
+                        )
+
+                        LIBS="$save_LIBS"
+                        CFLAGS=$save_CFLAGS
+                    fi
+                done
+            fi
+        done
+
+        if test "$libs_found" = "0"; then
+            AC_MSG_RESULT([can't find the right libraries])
+            AC_MSG_ERROR([can't link a simple motif program])
+        fi
+
+        save_CFLAGS=$CFLAGS
+        CFLAGS="$CFLAGS $TOOLKIT_INCLUDE"
+        AC_MSG_CHECKING([for Motif 2])
+        AC_TRY_COMPILE([
+                        #include <Xm/Xm.h>
+                       ],
+                       [
+                        #if XmVersion < 2000
+                        #error "Not Motif 2"
+                        #endif
+                       ],
+                       [
+                        AC_DEFINE(__WXMOTIF20__,1)
+                        AC_MSG_RESULT([found])
+                       ],
+                       [
+                        AC_DEFINE(__WXMOTIF20__,0)
+                        AC_MSG_RESULT([not found])
+                       ])
+        CFLAGS=$save_CFLAGS
+
+        GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lXm$xpm_link${libp_link} -lXmu -lXext -lXt${libsm_ice_link} -lX11"
+        TOOLKIT_VPATH="\${top_srcdir}/src/motif${PATH_IFS}\${top_srcdir}/src/motif/xmcombo${PATH_IFS}\${top_srcdir}/src/x11"
         TOOLKIT=MOTIF
         GUIDIST=MOTIF_DIST
+        wxHAVE_XEXT_LIB=1
+    fi
+
+    if test "$wxUSE_X11" = 1 -o "$wxUSE_MOTIF" = 1 &&
+       test "$wxHAVE_XEXT_LIB" = 1; then
+        save_CFLAGS="$CFLAGS"
+        CFLAGS="$CFLAGS $TOOLKIT_INCLUDE"
+
+        AC_MSG_CHECKING([for X11/extensions/shape.h])
+        AC_TRY_COMPILE([
+                        #include <X11/Xlib.h> 
+                        #include <X11/extensions/shape.h>
+                       ],
+                       [
+                        int dummy1, dummy2;
+                        XShapeQueryExtension((Display*)NULL,
+                                             (int*)NULL, (int*)NULL);
+                       ],
+                       [
+                        AC_DEFINE(HAVE_XSHAPE)
+                        AC_MSG_RESULT([found])
+                       ],
+                       [
+                        AC_MSG_RESULT([not found])
+                       ])
+        CFLAGS="$save_CFLAGS"
     fi
 
     if test "$wxUSE_MAC" = 1; then
-        if test "$wxUSE_PRECOMP" = "yes"; then
-            CPPFLAGS="$CPPFLAGS -cpp-precomp"
-        else
-            CPPFLAGS="$CPPFLAGS -no-cpp-precomp"
-        fi
-        CPPFLAGS="$CPPFLAGS -I/Developer/Headers/FlatCarbon -I\${top_srcdir}/src/mac/morefile"
-        CFLAGS="$CFLAGS -fpascal-strings"
-        CXXFLAGS="$CXXFLAGS -fpascal-strings"
+        CPPFLAGS="$CPPFLAGS -fpascal-strings -I\${top_srcdir}/src/mac/morefilex -I/Developer/Headers/FlatCarbon"
 
-        TOOLKIT_VPATH="\${top_srcdir}/src/mac${PATH_IFS}\${top_srcdir}/src/mac/morefile"
+        TOOLKIT_VPATH="\${top_srcdir}/src/mac${PATH_IFS}\${top_srcdir}/src/mac/morefilex"
         TOOLKIT=MAC
         dnl we can't call this MAC_DIST or autoconf thinks its a macro
         GUIDIST=MACX_DIST
     fi
 
+    if test "$wxUSE_COCOA" = 1; then
+        TOOLKIT_VPATH="\${top_srcdir}/src/cocoa"
+        TOOLKIT=COCOA
+        GUIDIST=COCOA_DIST
+    fi
+
     if test "$wxUSE_PM" = 1; then
         TOOLKIT=PM
         GUIDIST=GTK_DIST
+dnl        AC_MSG_WARN([OS/2 PM requires old resource format, re-enabled])
+dnl        wxUSE_PROLOGIO="yes"
+dnl        wxUSE_RESOURCES="yes"
+        AC_MSG_WARN([OS/2 threads are not yet supported... disabled])
+        wxUSE_THREADS="no"
     fi
 
     dnl the name of the directory where the files for this toolkit live
@@ -2328,28 +2764,44 @@ dnl OpenGL libraries
 dnl ---------------------------------------------------------------------------
 
 if test "$wxUSE_OPENGL" = "yes"; then
-    if test "$wxUSE_MAC" = 1; then
+    if 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
         AC_CHECK_HEADER(GL/gl.h,
             [
+                found_gl=0
+
                 AC_MSG_CHECKING([for -lGL])
-                WX_PATH_FIND_LIBRARIES([$SEARCH_LIB],[GL])
+                WX_PATH_FIND_LIBRARIES([$SEARCH_LIB],GL)
                 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_GL="$LDFLAGS"
-                    else
-                        LDFLAGS_GL="$LDFLAGS$ac_path_to_link"
+                    if test "$ac_path_to_link" != " -L/usr/lib" ; then
+                        LDFLAGS_GL="$ac_path_to_link"
                     fi
-                    OPENGL_LIBS="-lGL -lGLU"
-                    AC_MSG_RESULT([yes])
-                else
+
+                    dnl don't suppose that libGL and libGLU are always in the
+                    dnl same directory -- this is not true for some common
+                    dnl distributions
+                    WX_PATH_FIND_LIBRARIES([$SEARCH_LIB],GLU)
+                    if test "$ac_find_libraries" != "" ; then
+                        WX_LINK_PATH_EXIST([$ac_find_libraries],[$LDFLAGS])
+                        if test "$ac_path_to_link" != " -L/usr/lib" -a \
+                                    "$ac_path_to_link" != "$LDFLAGS_GL"; then
+                            LDFLAGS_GL="$LDFLAGS_GL$ac_path_to_link"
+                        fi
+
+                        found_gl=1
+                        OPENGL_LIBS="-lGL -lGLU"
+                        AC_MSG_RESULT([yes])
+                    fi
+                fi
+
+                if "$found_gl" != 1; then
                     AC_MSG_RESULT([no])
                     AC_MSG_CHECKING([for -lMesaGL])
-                    WX_PATH_FIND_LIBRARIES([$SEARCH_LIB],[MesaGL])
+                    WX_PATH_FIND_LIBRARIES([$SEARCH_LIB],MesaGL)
                     if test "$ac_find_libraries" != "" ; then
                         WX_LINK_PATH_EXIST([$ac_find_libraries],[$LDFLAGS])
                         LDFLAGS_GL="$LDFLAGS$ac_path_to_link"
@@ -2395,8 +2847,10 @@ if test "$wxUSE_DEBUG_FLAG" = "yes"; then
     lib_debug_suffix=d
 fi
 
-TOOLCHAIN_NAME="${TOOLKIT_DIR}${WIDGET_SET}${lib_unicode_suffix}${lib_debug_suffix}-${WX_RELEASE}"
-TOOLCHAIN_NAME_GL="${TOOLKIT_DIR}${WIDGET_SET}${lib_unicode_suffix}${lib_debug_suffix}_gl-${WX_RELEASE}"
+WX_VERSION_TAG=`echo WX${TOOLKIT_DIR}${TOOLKIT_VERSION}${WIDGET_SET}${lib_unicode_suffix}${lib_debug_suffix}_${WX_RELEASE} | tr "[[a-z]]" "[[A-Z]]"`
+
+TOOLCHAIN_NAME="${TOOLKIT_DIR}${TOOLKIT_VERSION}${WIDGET_SET}${lib_unicode_suffix}${lib_debug_suffix}-${WX_RELEASE}"
+TOOLCHAIN_NAME_GL="${TOOLKIT_DIR}${TOOLKIT_VERSION}${WIDGET_SET}${lib_unicode_suffix}${lib_debug_suffix}_gl-${WX_RELEASE}"
 
 if test "$cross_compiling" = "yes"; then
     TOOLCHAIN_NAME="${TOOLCHAIN_NAME}-${host_alias}"
@@ -2406,6 +2860,7 @@ fi
 dnl library link name
 WX_LIBRARY="wx_${TOOLCHAIN_NAME}"
 WX_LIBRARY_GL="wx_${TOOLCHAIN_NAME_GL}"
+WX_LIBRARY_BASENAME="wx_${TOOLKIT_DIR}${TOOLKIT_VERSION}${WIDGET_SET}${lib_unicode_suffix}${lib_debug_suffix}"
 
 dnl the name of the shared library
 WX_LIBRARY_NAME_SHARED="lib${WX_LIBRARY}.${SO_SUFFIX}.${WX_CURRENT}.${WX_REVISION}.${WX_AGE}"
@@ -2426,7 +2881,7 @@ case "${host}" in
 
         dnl FIXME: is this GL stuff actually even used for wxMSW?  should it be??
 
-        if test "$cross_compiling" != "yes"; then
+        if test "$cross_compiling" != "yes" -a "$TOOLKIT_DIR" = "msw"; then
             WX_LIBRARY="wxmsw${WX_MSW_VERSION}${lib_unicode_suffix}${lib_debug_suffix}"
             WX_LIBRARY_GL="wxmsw_gl${WX_MSW_VERSION}${lib_unicode_suffix}${lib_debug_suffix}"
             WX_LIBRARY_NAME_SHARED="${WX_LIBRARY}.${SO_SUFFIX}"
@@ -2438,12 +2893,24 @@ case "${host}" in
         ;;
 
     *-*-darwin* )
+        dnl Under Mac OS X, the naming conventions for shared libraries
+        dnl are different: the number precedes the suffix.
+
+        WX_LIBRARY_NAME_SHARED="lib${WX_LIBRARY}.${WX_CURRENT}.${WX_REVISION}.${WX_AGE}.${SO_SUFFIX}"
+        WX_LIBRARY_NAME_SHARED_GL="lib${WX_LIBRARY_GL}.${WX_CURRENT}.${WX_REVISION}.${WX_AGE}.${SO_SUFFIX}"
+
+        WX_LIBRARY_LINK1="lib${WX_LIBRARY}.${WX_CURRENT}.${SO_SUFFIX}"
+        WX_LIBRARY_LINK2="lib${WX_LIBRARY}.${SO_SUFFIX}"
+        WX_LIBRARY_LINK1_GL="lib${WX_LIBRARY_GL}.${WX_CURRENT}.${SO_SUFFIX}"
+        WX_LIBRARY_LINK2_GL="lib${WX_LIBRARY_GL}.${SO_SUFFIX}"
+
         dnl Under Mac OS X, we should build real frameworks instead of simple
         dnl dynamic shared libraries (in order to embed the resources)
         if test "$wxUSE_MAC" = 1; then
-            dnl the name of the resources file for wxMac
-            WX_RESOURCES_MACOSX_ASCII="lib${WX_LIBRARY}.r" 
-            WX_RESOURCES_MACOSX_DATA="lib${WX_LIBRARY}.rsrc"
+            dnl base name of the resource file for wxMac must be the same
+            dnl as library installation base name (-install_name)
+            WX_RESOURCES_MACOSX_ASCII="lib${WX_LIBRARY}.${WX_CURRENT}.r"
+            WX_RESOURCES_MACOSX_DATA="lib${WX_LIBRARY}.${WX_CURRENT}.rsrc"
         fi
         ;;
 esac
@@ -2492,14 +2959,19 @@ if test "$wxUSE_SHARED" = "yes"; then
         PIC_FLAG="-fPIC"
     fi
 
+
+    dnl use versioned symbols if available on the platform
+    WX_VERSIONED_SYMBOLS([\$(top_builddir)/version-script])
+
     dnl the command to use for creating the shared library
     SHARED_LD="${CXX} -shared -o"
 
     case "${host}" in
       *-hp-hpux* )
         dnl default settings are good for gcc but not for the native HP-UX
-        if test "$GCC" == "yes"; then
-            SHARED_LD="${SHARED_LD} ${PIC_FLAG}"
+        if test "$GCC" = "yes"; then
+            dnl -o flag must be after PIC flag
+            SHARED_LD="${CXX} -shared ${PIC_FLAG} -o"
         else
             dnl no idea why it wants it, but it does
             LDFLAGS="$LDFLAGS -L/usr/lib"
@@ -2560,29 +3032,35 @@ if test "$wxUSE_SHARED" = "yes"; then
       *-*-darwin* )
         dnl For Unix to MacOS X porting instructions, see:
         dnl http://fink.sourceforge.net/doc/porting/porting.html
-        CFLAGS="$CFLAGS -fno-common -DWXMAKINGDLL"
-        CXXFLAGS="$CXXFLAGS -fno-common -DWXMAKINGDLL"
+        TOOLCHAIN_DEFS="${TOOLCHAIN_DEFS} -DWXMAKINGDLL"
+        CFLAGS="$CFLAGS -fno-common"
+        CXXFLAGS="$CXXFLAGS -fno-common"
         dnl wxWindows must be fully binded (lazy binding breaks RTTI classinfo)
         dnl this can be done either with the exe linker flag -Wl,-bind_at_load
         dnl or with a double stage link in order to create a single module
         dnl "-init _wxWindowsDylibInit" not useful with lazy linking solved
         SHARED_LD="\${top_srcdir}/distrib/mac/shared-ld-sh -undefined suppress -flat_namespace -o"
         PIC_FLAG="-dynamic -fPIC"
-        SONAME_FLAGS="-compatibility_version ${WX_RELEASE} -current_version ${WX_VERSION}"
-        SONAME_FLAGS_GL=${SONAME_FLAGS}
+        dnl library installation base name and wxMac resources file base name
+        dnl must be identical in order for the resource file to be found at
+        dnl run time in src/mac/app.cpp
+        SONAME_FLAGS="-compatibility_version ${WX_RELEASE} -current_version ${WX_VERSION} -install_name \$(libdir)/${WX_LIBRARY_LINK1}"
+        SONAME_FLAGS_GL="-compatibility_version ${WX_RELEASE} -current_version ${WX_VERSION} -install_name \$(libdir)/${WX_LIBRARY_LINK1_GL}"
       ;;
 
       *-*-aix* )
-        dnl the abs path below used to be hardcoded here so I guess it must
-        dnl be some sort of standard location under AIX?
-        AC_CHECK_PROG(AIX_CXX_LD, makeC++SharedLib,
-                      makeC++SharedLib, /usr/lpp/xlC/bin/makeC++SharedLib)
+        dnl default settings are ok for gcc
+        if test "$GCC" != "yes"; then
+            dnl the abs path below used to be hardcoded here so I guess it must
+            dnl be some sort of standard location under AIX?
+            AC_CHECK_PROG(AIX_CXX_LD, makeC++SharedLib,
+                          makeC++SharedLib, /usr/lpp/xlC/bin/makeC++SharedLib)
 
-        SHARED_LD="$(AIX_CXX_LD) -p 0 -o"
+            SHARED_LD="$(AIX_CXX_LD) -p 0 -o"
+        fi
       ;;
 
       *-*-cygwin* | *-*-mingw32* )
-
         WX_LIBRARY_IMPORTLIB="${WX_LIBRARY_NAME_SHARED}.a"
 
         SHARED_LD="${CXX} -shared -Wl,--out-implib,lib/${WX_LIBRARY_IMPORTLIB} -o"
@@ -2590,12 +3068,12 @@ if test "$wxUSE_SHARED" = "yes"; then
 
         PIC_FLAG="-UWXUSINGDLL -DWXMAKINGDLL=1 -D_DLL=1 -D_WINDLL=1"
 
-        dnl install shared libs without symlinks
+        dnl Don't build seperate GL library
+        WX_ALL="\$(build_libdir)/${WX_LIBRARY_NAME_SHARED}"
+        WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS"
+
         if test "$wxUSE_OPENGL" = "yes"; then
-            WX_ALL_INSTALLED="preinstall_gl"
-            WX_ALL="\$(build_libdir)/${WX_LIBRARY_NAME_SHARED} \$(build_libdir)/${WX_LIBRARY_NAME_SHARED_GL}"
-        else
-            WX_ALL="\$(build_libdir)/${WX_LIBRARY_NAME_SHARED}"
+            LIBS="${LIBS} ${OPENGL_LIBS}"
         fi
       ;;
 
@@ -2605,9 +3083,15 @@ if test "$wxUSE_SHARED" = "yes"; then
         SHARED_LD="${LD} -shared -o"
       ;;
 
+      *-*-irix* )
+        dnl default settings are ok for gcc
+        if test "$GCC" != "yes"; then
+            PIC_FLAG="-KPIC"
+        fi
+      ;;
+
       *-*-freebsd* | *-*-openbsd* | *-*-netbsd* | \
       *-*-sunos4* | \
-      *-*-irix5* | *-*-irix6* | \
       *-*-osf* | \
       *-*-dgux5* | \
       *-*-sysv5* )
@@ -2638,7 +3122,7 @@ if test "$wxUSE_SHARED" = "no"; then
         WX_ALL_INSTALLED="${WX_ALL_INSTALLED} preinstall"
     fi
 
-    if test "$wxUSE_MAC" = 1; then
+    if test "$wxUSE_MAC" = 1 -o "$wxUSE_COCOA" = 1 ; then
         WX_ALL_INSTALLED="${WX_ALL_INSTALLED} preinstall"
     fi
 
@@ -2654,8 +3138,18 @@ if test "$wxUSE_SHARED" = "no"; then
 
     WX_TARGET_LIBRARY_TYPE="a"
     INSTALL_LIBRARY='$(INSTALL_DATA)'
+
+    dnl wx-config should assume the --static flag by default if we don't have
+    dnl any shared libs anyhow
+    STATIC_FLAG="yes"
+else
+    STATIC_FLAG="no"
 fi
 
+dnl default value is to (silently) do nothing in the makefile
+MACRESCOMP="@#"
+MACSETFILE="@#"
+MACRESWXCONFIG="#"
 if test "$wxUSE_MAC" = 1; then
     dnl add the resources target for wxMac
     LIBWXMACRES="\$(top_builddir)/lib/${WX_RESOURCES_MACOSX_ASCII}"
@@ -2663,19 +3157,23 @@ if test "$wxUSE_MAC" = 1; then
     WX_ALL_INSTALLED="${WX_ALL_INSTALLED} preinstall_res"
     AC_CHECK_PROG(RESCOMP, Rez, Rez, /Developer/Tools/Rez)
     AC_CHECK_PROG(DEREZ, DeRez, DeRez, /Developer/Tools/DeRez)
+    AC_CHECK_PROG(SETFILE, SetFile, SetFile, /Developer/Tools/SetFile)
     MACOSX_BUNDLE="bundle"
-    if test "$wxUSE_SHARED" = "yes"; then
-        dnl resources are bundled with shared library, not with applications
-        LIBWXMACRESCOMP="\$(RESCOMP) -t APPL Carbon.r -o \$(BIN_PROGRAM)"
-        LIBWXMACRESWXCONFIG="${RESCOMP} -t APPL Carbon.r -o"
-    else
-        dnl resources are bundled with applications, not with static library
-        LIBWXMACRESCOMP="\$(RESCOMP) -t APPL Carbon.r ${LIBWXMACRES} -o \$(BIN_PROGRAM)"
-        LIBWXMACRESWXCONFIG="${RESCOMP} -t APPL Carbon.r \${prefix}/lib/${WX_RESOURCES_MACOSX_ASCII} -o"
-    fi
+    dnl resources are bundled both with shared library and applications
+    dnl since the carb resource *must* be included in the application
+    MACRESCOMP="\$(RESCOMP) -d __DARWIN__ -t APPL Carbon.r ${LIBWXMACRES} -o"
+    MACSETFILE="\$(SETFILE)"
+    MACRESWXCONFIG="${RESCOMP} -d __DARWIN__ -t APPL Carbon.r \$(top_builddir)/lib/${WX_RESOURCES_MACOSX_ASCII}} -o"
+elif test "$wxUSE_COCOA" = 1; then
+    AC_CHECK_PROG(RESCOMP, Rez, Rez, /Developer/Tools/Rez)
+    AC_CHECK_PROG(DEREZ, DeRez, DeRez, /Developer/Tools/DeRez)
+    AC_CHECK_PROG(SETFILE, SetFile, SetFile, /Developer/Tools/SetFile)
+    MACRESCOMP="echo -n | \$(RESCOMP) -d __DARWIN__ -t APPL ${LIBWXMACRES} -o"
+    MACSETFILE="\$(SETFILE)"
+    MACRESWXCONFIG="echo -n | ${RESCOMP} -d __DARWIN__ -t APPL \$(top_builddir)/lib/${WX_RESOURCES_MACOSX_ASCII}} -o"
 else
     if test "$wxUSE_PM" = 1; then
-        LIBWXMACRESCOMP="emxbind -ep \$(BIN_PROGRAM)"
+        MACRESCOMP="emxbind -ep"
     fi
 fi
 
@@ -2695,11 +3193,12 @@ dnl   defines uid_t and gid_t if not already defined
 AC_TYPE_UID_T
 
 dnl check what exactly size_t is on this machine - this is necessary to avoid
-dnl ambiguos overloads in several places, notably wx/string.h and wx/array.h
+dnl ambiguous overloads in several places, notably wx/string.h and wx/array.h
 AC_LANG_SAVE
 AC_LANG_CPLUSPLUS
 AC_CACHE_CHECK([if size_t is unsigned int],
     wx_cv_size_t_is_uint,
+    [
     dnl an obvious check like AC_TRY_COMPILE[struct Foo { ... };] doesn't work
     dnl with egcs (at least) up to 1.1.1 as it allows you to compile duplicate
     dnl methods in a local class (i.e. class inside a function) declaration
@@ -2717,6 +3216,7 @@ AC_CACHE_CHECK([if size_t is unsigned int],
         wx_cv_size_t_is_uint=no,
         wx_cv_size_t_is_uint=yes
     )
+    ]
 )
 
 if test "$wx_cv_size_t_is_uint" = "yes"; then
@@ -2776,158 +3276,96 @@ dnl Check for functions
 dnl ---------------------------------------------------------------------------
 
 dnl don't check for wchar_t functions if we haven't got wchar_t itself
-WCHAR_OK=0
 if test "$wx_cv_sizeof_wchar_t" != "0"; then
-    dnl check for wcslen
+    AC_DEFINE(wxUSE_WCHAR_T)
+
+    dnl check for wcslen in all possible places
+    WCSLEN_FOUND=0
     WCHAR_LINK=
-    AC_CHECK_FUNCS(wcslen, [
-                    AC_DEFINE(HAVE_WCSLEN)
-                    WCHAR_OK=1
-                  ])
+    AC_CHECK_FUNCS(wcslen, WCSLEN_FOUND=1)
 
-    if test "$WCHAR_OK" = 0; then
+    if test "$WCSLEN_FOUND" = 0; then
         if test "$TOOLKIT" = "MSW"; then
-            AC_CHECK_LIB(msvcrt, wcslen, [
-                AC_DEFINE(HAVE_WCSLEN)
-                WCHAR_OK=1
-            ])
+            AC_CHECK_LIB(msvcrt, wcslen, WCHAR_OK=1)
         else
             AC_CHECK_LIB(w, wcslen, [
-                            AC_DEFINE(HAVE_WCSLEN)
                             WCHAR_LINK=" -lw"
-                            WCHAR_OK=1
+                            WCSLEN_FOUND=1
                         ])
         fi
     fi
-fi
 
-dnl we need at least the definition of wchar_t itself and wcslen() to compile
-dnl with wchar_t support -- turn it off if we don't have this
-if test "$WCHAR_OK" = 1; then
-    AC_DEFINE(wxUSE_WCHAR_T)
+    if test "$WCSLEN_FOUND" = 1; then
+        AC_DEFINE(HAVE_WCSLEN)
+    fi
 
-    dnl also try to use wcsrtombs instead of wcstombs which is buggy in old GNU
+    dnl try to use wcsrtombs instead of wcstombs which is buggy in old GNU
     dnl libc versions if possible
     AC_CHECK_FUNCS(wcsrtombs)
 else
-    dnl use built-in wcslen for Darwin (what about other BSD based systems?)
-    if test "$USE_DARWIN" = 1; then
-        AC_DEFINE(wxUSE_WCHAR_T)
-    else
-        AC_MSG_WARN([Wide character support is unavailable])
-    fi
+    AC_MSG_WARN([Wide character support is unavailable])
 fi
 
-dnl check for vprintf/vsprintf() which are GNU extensions
-AC_FUNC_VPRINTF
-
-dnl check for vsscanf() and vsnprintf() - on some platforms (Linux, glibc
-dnl 2.1.1 for the first one, HP-UX for the second) it's available in the
-dnl library but the prototype is missing, so we can't use AC_CHECK_FUNCS() here,
-dnl do it manually. We can't use AC_TRY_COMPILE(), either, because it doesn't
-dnl check if the symbol is available at linking time
-
-dnl we use AC_TRY_LINK() here instead of AC_TRY_RUN() to make the checks
-dnl work for cross-compilation, but AC_TRY_LINK() normally only compiles
-dnl one function while we need at least 2 - hence the ugly hack below. To
-dnl understand why it works, remember that AC_TRY_LINK() just prepends
-dnl "int main() {" in the beginning of the code and "; return 0; }" at the
-dnl end...
-
-dnl if we fail to find vsnprintf, also try for _vsnprintf as that is what
-dnl we'll find under MSW if it exists.
+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 final note: AC_TRY_LINK will only be executed if there is nothing in
-dnl the cache so we have to do AC_DEFINE(HAVE_VSNPRINTF) below and not inside
-dnl it or the symbol wouldn't be defined for the 2nd and subsequent configure
-dnl runs
+dnl check for vsnprintf() -- a safe version of vsprintf())
+dnl
+dnl the trouble here is that on some systems (notable HP-UX) this function is
+dnl present in libc but not in the system headers and so AC_CHECK_FUNCS (which,
+dnl stupidly, provides a dummy function declaration inside its extension)
+dnl succeeds, even with C++ compiler, but the compilation of wxWindows fails
+dnl
+dnl so we first check if the function is in the library
+AC_CHECK_FUNCS(vsnprintf)
 
-dnl check for vsnprintf() - a safe version of vsprintf()
-AC_CACHE_CHECK([for vsnprintf], wx_cv_func_vsnprintf,
-[
-  AC_TRY_LINK([
+if test "$ac_cv_func_vsnprintf" = "yes"; then
+    dnl yes it is -- now check if it is in the headers
+    AC_CACHE_CHECK([for vsnprintf declaration], wx_cv_func_vsnprintf_decl,
+        [
+            AC_TRY_COMPILE(
+                [
                     #include <stdio.h>
                     #include <stdarg.h>
-                 ], [
-                    int wx_test_vsnprintf(const char *, ...);
-
-                    wx_test_vsnprintf("%s");
-                    return 0;
-                 }
-
-                 int wx_test_vsnprintf(const char *fmt, ...)
-                 {
-                    char *s;
-
-                    va_list argp;
-                    va_start(argp, fmt);
-                    vsnprintf(s, 42, fmt, argp);
-                    va_end(argp);
-                 ], [
-                    wx_cv_func_vsnprintf=yes
-                 ], [
-                    AC_TRY_LINK([
-                                      #include <stdio.h>
-                                      #include <stdarg.h>
-                                   ], [
-                                      int wx_test_vsnprintf(const char *, ...);
-
-                                      wx_test_vsnprintf("%s");
-                                      return 0;
-                                   }
-
-                                   int wx_test_vsnprintf(const char *fmt, ...)
-                                   {
-                                      char *s;
-
-                                      va_list argp;
-                                      va_start(argp, fmt);
-                                      _vsnprintf(s, 42, fmt, argp);
-                                      va_end(argp);
-                                   ], [
-                                      wx_cv_func_vsnprintf=yes
-                                   ], [
-                                      wx_cv_func_vsnprintf=no
-                                   ])
-                 ])
-])
+                ],
+                [
+                    char *buf;
+                    va_list ap;
+                    vsnprintf(buf, 10u, "%s", ap);
+                ],
+                wx_cv_func_vsnprintf_decl=yes,
+                wx_cv_func_vsnprintf_decl=no
+            )
+        ]
+    )
 
-if test "$wx_cv_func_vsnprintf" = yes; then
-    AC_DEFINE(HAVE_VSNPRINTF)
-else
-    AC_MSG_WARN(unsafe function vsprintf will be used instead of vsnprintf)
+    if test "$wx_cv_func_vsnprintf_decl" = "yes"; then
+        AC_DEFINE(HAVE_VSNPRINTF_DECL)
+    fi
 fi
 
-dnl check for vsscanf()
-AC_CACHE_CHECK([for vsscanf], wx_cv_func_vsscanf,
-[
-  AC_TRY_COMPILE([
-                    #include <stdio.h>
-                    #include <stdarg.h>
-                ], [
-                    int wx_test_vsscanf(const char *, ...);
-
-                    wx_test_vsscanf("%d");
-                    return 0;
-                }
-
-                int wx_test_vsscanf(const char *fmt, ...)
-                {
-                    va_list argp;
-                    va_start(argp, fmt);
-                    vsscanf("42", fmt, argp);
-                    va_end(argp);
-                ], [
-                    wx_cv_func_vsscanf=yes
-                ], [
-                    wx_cv_func_vsscanf=no
-                ])
-])
+if test "$wxUSE_UNICODE" = yes; then
+    dnl also look if we have wide char IO functions
+    AC_CHECK_FUNCS(fputwc wprintf vswprintf)
 
-if test "$wx_cv_func_vsscanf" = yes; then
-    AC_DEFINE(HAVE_VSSCANF)
+    dnl MinGW has a vswprintf with a different prototype, and
+    dnl a _vsnwprintf with the correct prototype, but AC_CHECK_FUNCS
+    dnl finds it even if it is not declared in some versions...
+    AC_MSG_CHECKING([for _vsnwprintf])
+    AC_TRY_COMPILE([#include <wchar.h>],
+                   [&_vsnwprintf;],
+                   [AC_MSG_RESULT([yes])
+                    AC_DEFINE(HAVE__VSNWPRINTF)],
+                   [AC_MSG_RESULT([no])]);
 fi
 
+AC_LANG_RESTORE
+
+
+
 dnl the following tests are for Unix(like) systems only
 if test "$TOOLKIT" != "MSW"; then
 
@@ -2973,9 +3411,6 @@ if test "$wxUSE_ON_FATAL_EXCEPTION" = "yes" -a "$wxUSE_UNIX" = "yes"; then
     fi
 fi
 
-dnl check for vfork() (even if it's the same as fork() in modern Unices)
-AC_CHECK_FUNCS(vfork)
-
 dnl check for the function for temp files creation
 AC_CHECK_FUNCS(mkstemp mktemp, break)
 
@@ -3009,37 +3444,85 @@ AC_CACHE_CHECK(for statfs, wx_cv_func_statfs,
 )
 
 if test "$wx_cv_func_statfs" = "yes"; then
+    wx_cv_type_statvfs_t="struct statfs"
     AC_DEFINE(HAVE_STATFS)
 else
     AC_CACHE_CHECK(for statvfs, wx_cv_func_statvfs,
         AC_TRY_COMPILE(
             [
-                 #include <sys/statvfs.h>
-            ],
-            [
-                 long l;
-                 struct statvfs fs;
-                 statvfs("/", &fs);
-                 l = fs.f_bsize;
-                 l += fs.f_blocks;
-                 l += fs.f_bavail;
+                #include <stddef.h>
+                #include <sys/statvfs.h>
             ],
             [
-                 wx_cv_func_statvfs=yes
+                statvfs("/", NULL);
             ],
-            [
-                 wx_cv_func_statvfs=no
-            ]
+            wx_cv_func_statvfs=yes,
+            wx_cv_func_statvfs=no
         )
     )
 
     if test "$wx_cv_func_statvfs" = "yes"; then
-        AC_DEFINE(HAVE_STATVFS)
+        dnl we also have to check whether we should use statvfs_t (works under
+        dnl Solaris 8, doesn't work under Solaris 7) or "struct statvfs" (vice
+        dnl versa) as the argument for statvfs in 64 bit off_t mode (in 32 bit
+        dnl mode both work fine)
+        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_TRY_COMPILE(
+                [
+                    #include <sys/statvfs.h>
+                ],
+                [
+                    long l;
+                    statvfs_t fs;
+                    statvfs("/", &fs);
+                    l = fs.f_bsize;
+                    l += fs.f_blocks;
+                    l += fs.f_bavail;
+                ],
+                wx_cv_type_statvfs_t=statvfs_t,
+                [
+                    AC_TRY_COMPILE(
+                        [
+                            #include <sys/statvfs.h>
+                        ],
+                        [
+                            long l;
+                            struct statvfs fs;
+                            statvfs("/", &fs);
+                            l = fs.f_bsize;
+                            l += fs.f_blocks;
+                            l += fs.f_bavail;
+                        ],
+                        wx_cv_type_statvfs_t="struct statvfs",
+                        wx_cv_type_statvfs_t="unknown"
+                    )
+                ]
+            )
+        )
+
+        AC_LANG_RESTORE
+
+        if test "$wx_cv_type_statvfs_t" != "unknown"; then
+            AC_DEFINE(HAVE_STATVFS)
+        fi
     else
-        AC_MSG_WARN([wxGetDiskSpace() function won't work without statfs()])
+        dnl set it for the test below
+        wx_cv_type_statvfs_t="unknown"
     fi
 fi
 
+if test "$wx_cv_type_statvfs_t" != "unknown"; then
+    AC_DEFINE_UNQUOTED(WX_STATFS_T, $wx_cv_type_statvfs_t)
+else
+    AC_MSG_WARN([wxGetDiskSpace() function won't work without statfs()])
+fi
+
 dnl check for fcntl() or at least flock() needed by Unix implementation of
 dnl wxSingleInstanceChecker
 if test "$wxUSE_SNGLINST_CHECKER" = "yes"; then
@@ -3066,7 +3549,7 @@ if test "$USE_BEOS" = 1; then
 fi
 
 if test "$USE_DARWIN" = 1; then
-    dnl Mac OS X has both nanosleep and usleep
+    dnl Mac OS X/Darwin has both nanosleep and usleep
     dnl but only usleep is defined in unistd.h
     AC_DEFINE(HAVE_USLEEP)
     HAVE_SOME_SLEEP_FUNC=1
@@ -3147,10 +3630,10 @@ dnl flush the cache
 AC_CACHE_SAVE
 
 dnl ---------------------------------------------------------------------------
-dnl thread support for Unix (always available under Win32)
+dnl thread support for Unix (for Win32 see past the next matching "else")
 dnl ---------------------------------------------------------------------------
 
-dnl under MSW we always have thread support
+dnl under MSW (except mingw32) we always have thread support
 CPP_MT_FLAG=
 if test "$TOOLKIT" != "MSW"; then
 
@@ -3166,10 +3649,7 @@ if test "$TOOLKIT" != "MSW"; then
     THREADS_CFLAGS=
 
     if test "$wxUSE_THREADS" = "yes" ; then
-        if test "$wxUSE_WINE" = 1 ; then
-            AC_MSG_WARN([Threads are not supported under WINE... disabled])
-            wxUSE_THREADS="no"
-        elif test "$USE_BEOS" = 1; then
+        if test "$USE_BEOS" = 1; then
             AC_MSG_WARN([BeOS threads are not yet supported... disabled])
             wxUSE_THREADS="no"
         fi
@@ -3204,14 +3684,39 @@ if test "$TOOLKIT" != "MSW"; then
                 dnl and finally the userland threads
                 THREAD_OPTS="-kthread lthread $THREAD_OPTS c_r"
                 ;;
-          *-*-darwin*)
+          *-*-darwin* | *-*-cygwin* )
                 dnl Darwin / Mac OS X just uses -lpthread tested below
+                dnl and so does Cygwin
                 THREAD_OPTS=""
                 ;;
           *-*-aix*)
                 dnl AIX calls the library libpthreads - thanks IBM!
                 THREAD_OPTS="pthreads"
                 ;;
+          *-hp-hpux* )
+                dnl HP-UX aCC only gives a warning, not an error about
+                dnl -pthread but it doesn't work and we have to use -lpthread
+                dnl there
+                if test "x$GCC" != "xyes"; then
+                    THREAD_OPTS=""
+                fi
+                ;;
+
+          *-*-irix* )
+                dnl gcc under IRIX doesn't seem to like -pthread, but it
+                dnl doesn't give an error for it neither, just a warning
+                dnl message -- but this is still very annoying
+                if test "x$GCC" = "xyes"; then
+                    THREAD_OPTS=""
+                fi
+                ;;
+
+          *-*-*UnixWare*)
+                dnl flying by man pages here: Caldera online docs use this
+                if test "x$GCC" != "xyes"; then
+                    THREAD_OPTS="-Ethread"
+                fi
+                ;;
         esac
 
         dnl simply linking with libpthread should make the test below work but
@@ -3265,14 +3770,32 @@ if test "$TOOLKIT" != "MSW"; then
       else
           dnl yes, these special compiler flags should be used with the
           dnl linker as well
-          LIBS="$THREADS_LINK $THREADS_CFLAGS $LIBS"
+          LDFLAGS="$THREADS_CFLAGS $LDFLAGS"
+          LIBS="$THREADS_LINK $LIBS"
 
           AC_MSG_CHECKING([if more special flags are required for pthreads])
           flag=no
           case "${host}" in
-            *-aix* | *-freebsd*)
+            *-aix*)
+                dnl again quoting from
+                dnl http://www-1.ibm.com/servers/esdd/articles/gnu.html:
+                dnl
+                dnl     When compiling and linking with -pthread, the library
+                dnl     search path should include -L/usr/lib/threads at the
+                dnl     beginning of the path.
+                LDFLAGS="-L/usr/lib/threads $LDFLAGS"
+                flag="-D_THREAD_SAFE"
+                ;;
+            *-freebsd*)
                 flag="-D_THREAD_SAFE"
                 ;;
+            *-hp-hpux* )
+                flag="-D_REENTRANT"
+                if test "x$GCC" != "xyes"; then
+                    dnl see http://docs.hp.com/hpux/onlinedocs/2213/threads.htm
+                    flag="$flag -D_RWSTD_MULTI_THREAD"
+                fi
+                ;;
             *solaris* | alpha*-osf*)
                 flag="-D_REENTRANT"
                 ;;
@@ -3316,17 +3839,17 @@ if test "$TOOLKIT" != "MSW"; then
       dnl   3. pthread_attr_getschedparam and pthread_attr_setschedparam
       HAVE_PRIOR_FUNCS=0
       AC_CHECK_FUNC(pthread_attr_getschedpolicy,
-                     AC_CHECK_FUNC(pthread_attr_setschedparam,
-                       AC_CHECK_FUNC(sched_get_priority_max,
+                     [AC_CHECK_FUNC(pthread_attr_setschedparam,
+                       [AC_CHECK_FUNC(sched_get_priority_max,
                            HAVE_PRIOR_FUNCS=1,
-                           AC_CHECK_LIB([posix4], sched_get_priority_max,
+                           [AC_CHECK_LIB([posix4], sched_get_priority_max,
                              [
                                 HAVE_PRIOR_FUNCS=1
                                 POSIX4_LINK=" -lposix4"
                              ],
-                           )
-                       )
-                     )
+                           )]
+                       )]
+                     )]
                    )
 
       if test "$HAVE_PRIOR_FUNCS" = 1; then
@@ -3365,14 +3888,6 @@ if test "$TOOLKIT" != "MSW"; then
       dnl defined, we do it by directly assigned
       dnl PTHREAD_MUTEX_RECURSIVE_MUTEX_INITIALIZER_NP to attr
 
-      dnl we need _GNU_SOURCE to get PTHREAD_MUTEX_RECURSIVE with glibc 2.1+
-      dnl (strictly speaking we only need _XOPEN_SOURCE=500 but just defining
-      dnl this disables _BSD_SOURCE which breaks libtiff compilation, so it is
-      dnl simpler to just define _GNU_SOURCE to get everything)
-      if test "x$wx_cv_lib_glibc21" = "xyes"; then
-          CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
-      fi
-
       AC_CACHE_CHECK([for pthread_mutexattr_t], wx_cv_type_pthread_mutexattr_t,
       [
         AC_TRY_COMPILE([#include <pthread.h>],
@@ -3414,6 +3929,35 @@ if test "$TOOLKIT" != "MSW"; then
     fi
 
 dnl from if !MSW
+else
+    if test "$wxUSE_THREADS" = "yes" ; then
+      case "${host}" in
+        *-*-mingw32* )
+            dnl check if the compiler accepts -mthreads
+            AC_CACHE_CHECK([if compiler supports -mthreads],
+                wx_cv_cflags_mthread,
+                [
+                    CFLAGS_OLD="$CFLAGS"
+                    CFLAGS="$CFLAGS -mthreads"
+                    AC_TRY_COMPILE([], [],
+                        wx_cv_cflags_mthread=yes,
+                        wx_cv_cflags_mthread=no
+                    )
+                ]
+            )
+
+            if test "$wx_cv_cflags_mthread" = "yes"; then
+                dnl it does, use it
+                CXXFLAGS="$CXXFLAGS -mthreads"
+                TOOLCHAIN_DEFS="$TOOLCHAIN_DEFS -mthreads"
+                LDFLAGS="$LDFLAGS -mthreads"
+            else
+                dnl it doesn't
+                CFLAGS="$CFLAGS_OLD"
+            fi
+        ;;
+      esac
+    fi
 fi
 
 if test "$wxUSE_THREADS" = "yes"; then
@@ -3508,19 +4052,34 @@ if test "$GCC" = "yes" ; then
     dnl for each subroutine by default -- using the switch below only creates
     dnl one entry per file instead at the price of minor performance penalty
     dnl
+    dnl As of wx2.4 a bug in the hppa gcc compiler causes a similar problem
+    dnl without -ffunction-sections.  No idea how long we'll need to maintain
+    dnl this, or even the extent of gcc/wx version combinations affected, but
+    dnl also as above, this 'fix' does not come without side effects.
+    dnl
     dnl TODO: test for the gcc version here (how?)
     case "${host}" in
       powerpc*-*-aix* )
         CODE_GEN_FLAGS="$CODE_GEN_FLAGS -mminimal-toc"
         ;;
+      *-hppa* )
+        CODE_GEN_FLAGS="$CODE_GEN_FLAGS -ffunction-sections"
+        ;;
     esac
 fi
 
+OPTIMISE=
 if test "$wxUSE_OPTIMISE" = "no" ; then
-    OPTIMISE=
+    if test "$GCC" = yes ; then
+        dnl use -O0 because compiling with it is faster than compiling with no
+        dnl optimization options at all (at least with g++ 3.2)
+        OPTIMISE="-O0"
+    fi
 else
     if test "$GCC" = yes ; then
         OPTIMISE="-O2"
+
+        dnl VZ: does anybody know what does this do??
         case "${host}" in
             i586-*-*|i686-*-* )
             OPTIMISE="${OPTIMISE} "
@@ -3531,14 +4090,24 @@ else
     fi
 fi
 
+dnl ---------------------------------------------------------------------------
+dnl compatibility level
+dnl ---------------------------------------------------------------------------
+
 if test "$WXWIN_COMPATIBILITY_2" = "yes"; then
     AC_DEFINE(WXWIN_COMPATIBILITY_2)
 
     WXWIN_COMPATIBILITY_2_2="yes"
 fi
 
-if test "x$WXWIN_COMPATIBILITY_2_2" != "xno"; then
+if test "x$WXWIN_COMPATIBILITY_2_2" = "xyes"; then
     AC_DEFINE(WXWIN_COMPATIBILITY_2_2)
+
+    WXWIN_COMPATIBILITY_2_4="yes"
+fi
+
+if test "x$WXWIN_COMPATIBILITY_2_4" != "xno"; then
+    AC_DEFINE(WXWIN_COMPATIBILITY_2_4)
 fi
 
 dnl ---------------------------------------------------------------------------
@@ -3599,10 +4168,6 @@ if test "$wxUSE_DATETIME" = "yes"; then
   AC_DEFINE(wxUSE_DATETIME)
 fi
 
-if test "$wxUSE_TIMEDATE" = "yes"; then
-  AC_DEFINE(wxUSE_TIMEDATE)
-fi
-
 if test "$wxUSE_FILE" = "yes"; then
   AC_DEFINE(wxUSE_FILE)
 fi
@@ -3846,7 +4411,6 @@ if test "$wxUSE_DATETIME" = "yes"; then
         fi
     fi
 
-    AC_DEFINE(wxUSE_TIMEDATE)
     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS typetest"
 fi
 
@@ -3854,10 +4418,10 @@ dnl ------------------------------------------------------------------------
 dnl wxSocket
 dnl ------------------------------------------------------------------------
 
-dnl VZ: the GUI hooks wxSocket needs are not implemented yet in wxX11
+dnl VZ: the GUI hooks wxSocket needs are not implemented yet in wxMGL
 if test "$wxUSE_SOCKETS" = "yes"; then
-    if test "$TOOLKIT" = "X11"; then
-        AC_MSG_WARN([wxSocket not yet supported under X11... disabled])
+    if test "$wxUSE_MGL" = "1"; then
+        AC_MSG_WARN([wxSocket not yet supported under MGL... disabled])
         wxUSE_SOCKETS="no"
     fi
 fi
@@ -3950,7 +4514,7 @@ dnl ---------------------------------------------------------------------------
 
 if test "$wxUSE_GUI" = "yes"; then
 
-    if test "$TOOLKIT" = "MAC"; then
+    if test "$TOOLKIT" = "MAC" -o "$TOOLKIT" = "COCOA"; then
         AC_MSG_WARN([Joystick not yet supported under Mac OS X... disabled])
         wxUSE_JOYSTICK=no
      fi
@@ -4064,7 +4628,7 @@ fi
 
 if test "$wxUSE_UNICODE" = "yes" ; then
   AC_DEFINE(wxUSE_UNICODE)
-  
+
   if test "$wxUSE_MSW" != 1; then
       wxUSE_UNICODE_MSLU=no
   fi
@@ -4120,15 +4684,17 @@ if test "$wxUSE_CONSTRAINTS" = "yes"; then
 fi
 
 if test "$wxUSE_MDI_ARCHITECTURE" = "yes"; then
-    if test "$wxUSE_UNIVERSAL" = "yes"; then
-        AC_MSG_WARN(MDI not yet supported for wxUniversal... disabled)
-        wxUSE_MDI_ARCHITECTURE=no
-    fi
 
-    if test "$wxUSE_MDI_ARCHITECTURE" = "yes"; then
-        AC_DEFINE(wxUSE_MDI_ARCHITECTURE)
-        SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS mdi"
-    fi
+dnl     There is now experimental generic MDI support
+dnl     if test "$wxUSE_UNIVERSAL" = "yes"; then
+dnl         AC_MSG_WARN(MDI not yet supported for wxUniversal... disabled)
+dnl         wxUSE_MDI_ARCHITECTURE=no
+dnl     fi
+
+   if test "$wxUSE_MDI_ARCHITECTURE" = "yes"; then
+       AC_DEFINE(wxUSE_MDI_ARCHITECTURE)
+       SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS mdi"
+   fi
 fi
 
 if test "$wxUSE_DOC_VIEW_ARCHITECTURE" = "yes" ; then
@@ -4168,18 +4734,22 @@ if test "$wxUSE_PRINTING_ARCHITECTURE" = "yes" ; then
     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS printing"
 fi
 
-if test "$wxUSE_PROLOGIO" = "yes" ; then
-    AC_DEFINE(wxUSE_PROLOGIO)
-fi
+dnl if test "$wxUSE_PROLOGIO" = "yes" ; then
+dnl     AC_DEFINE(wxUSE_PROLOGIO)
+dnl     ALL_OBJECTS="$ALL_OBJECTS parser.o"
+dnl fi
 
-if test "$wxUSE_RESOURCES" = "yes" ; then
-    if test "$wxUSE_NANOX" = "yes"; then
-        AC_MSG_WARN([Cannot use resource database functions in NanoX])
-       else
-               AC_DEFINE(wxUSE_RESOURCES)
-               SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS resource"
-    fi
-fi
+dnl if test "$wxUSE_RESOURCES" = "yes" ; then
+dnl     if test "$wxUSE_NANOX" = "yes"; then
+dnl         AC_MSG_WARN([Cannot use resource database functions in NanoX])
+dnl     else
+dnl         AC_DEFINE(wxUSE_RESOURCES)
+dnl         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS resource"
+dnl     fi
+dnl     if test "$wxUSE_PROLOGIO" != "yes" ; then
+dnl         ALL_OBJECTS="$ALL_OBJECTS parser.o"
+dnl     fi
+dnl fi
 
 if test "$wxUSE_X_RESOURCES" = "yes"; then
     AC_DEFINE(wxUSE_X_RESOURCES)
@@ -4193,13 +4763,24 @@ dnl check for ole headers and disable a few features requiring it if not
 dnl present (earlier versions of mingw32 don't have ole2.h)
 if test "$wxUSE_MSW" = 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)
 
     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>],
+                           [],
+                           [AC_MSG_RESULT(no)],
+                           [AC_MSG_RESULT(yes)
+                            CODE_GEN_FLAGS_CXX="$CODE_GEN_FLAGS_CXX -fvtable-thunks"])
+            AC_LANG_RESTORE
             ALL_OBJECTS="$ALL_OBJECTS \$(OLEOBJS)"
-            CODE_GEN_FLAGS_CXX="$CODE_GEN_FLAGS_CXX -fvtable-thunks"
             LIBS=" -lrpcrt4 -loleaut32 -lole32 -luuid$LIBS"
             AC_DEFINE(wxUSE_OLE)
 
@@ -4213,6 +4794,7 @@ if test "$wxUSE_MSW" = 1 -a \( "$wxUSE_DATAOBJ"       = "yes" \
         wxUSE_CLIPBOARD=no
         wxUSE_DRAG_AND_DROP=no
         wxUSE_DATAOBJ=no
+        wxUSE_OLE=no
     fi
 
     if test "$wxUSE_METAFILE" = "yes"; then
@@ -4232,10 +4814,17 @@ if test "$wxUSE_IPC" = "yes"; then
 fi
 
 if test "$wxUSE_CLIPBOARD" = "yes"; then
-    AC_DEFINE(wxUSE_CLIPBOARD)
+    if test "$wxUSE_MGL" = 1; then
+        AC_MSG_WARN([Clipboard not yet supported under MGL... disabled])
+        wxUSE_CLIPBOARD=no
+    fi
 
-    dnl required by clipboard code in configuration check
-    AC_DEFINE(wxUSE_DATAOBJ)
+    if test "$wxUSE_CLIPBOARD" = "yes"; then
+        AC_DEFINE(wxUSE_CLIPBOARD)
+
+        dnl required by clipboard code in configuration check
+        AC_DEFINE(wxUSE_DATAOBJ)
+    fi
 fi
 
 if test "$wxUSE_DRAG_AND_DROP" = "yes" ; then
@@ -4256,6 +4845,11 @@ if test "$wxUSE_DRAG_AND_DROP" = "yes" ; then
         wxUSE_DRAG_AND_DROP=no
     fi
 
+    if test "$wxUSE_MGL" = 1; then
+        AC_MSG_WARN([Drag and drop not yet supported under MGL... disabled])
+        wxUSE_DRAG_AND_DROP=no
+    fi
+
     if test "$wxUSE_DRAG_AND_DROP" = "yes"; then
         AC_DEFINE(wxUSE_DRAG_AND_DROP)
         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS dnd"
@@ -4324,16 +4918,14 @@ if test "$wxUSE_CHECKLST" = "yes"; then
   SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS checklst"
 fi
 
-if test "$wxUSE_GAUGE" = "yes"; then
-  AC_DEFINE(wxUSE_GAUGE)
-  USES_CONTROLS=1
+if test "$wxUSE_DISPLAY" = "yes"; then
+    AC_DEFINE(wxUSE_DISPLAY)
+    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS display"
 fi
 
-if test "$wxUSE_NEW_GRID" = "yes"; then
-  wxUSE_GRID="yes"
-  AC_DEFINE(wxUSE_NEW_GRID)
+if test "$wxUSE_GAUGE" = "yes"; then
+  AC_DEFINE(wxUSE_GAUGE)
   USES_CONTROLS=1
-  SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS newgrid"
 fi
 
 if test "$wxUSE_GRID" = "yes"; then
@@ -4367,11 +4959,11 @@ if test "$wxUSE_NOTEBOOK" = "yes"; then
     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS notebook"
 fi
 
-if test "$wxUSE_PROPSHEET" = "yes"; then
-    AC_DEFINE(wxUSE_PROPSHEET)
-    USES_CONTROLS=1
-    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS proplist"
-fi
+dnl if test "$wxUSE_PROPSHEET" = "yes"; then
+dnl     AC_DEFINE(wxUSE_PROPSHEET)
+dnl     USES_CONTROLS=1
+dnl     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS proplist"
+dnl fi
 
 if test "$wxUSE_RADIOBOX" = "yes"; then
     AC_DEFINE(wxUSE_RADIOBOX)
@@ -4430,12 +5022,8 @@ if test "$wxUSE_STATTEXT" = "yes"; then
 fi
 
 if test "$wxUSE_STATLINE" = "yes"; then
-    if test "$wxUSE_WINE" = 1 ; then
-        AC_MSG_WARN([wxStaticLine is not supported under WINE])
-    else
-        AC_DEFINE(wxUSE_STATLINE)
-        USES_CONTROLS=1
-    fi
+    AC_DEFINE(wxUSE_STATLINE)
+    USES_CONTROLS=1
 fi
 
 if test "$wxUSE_STATUSBAR" = "yes"; then
@@ -4457,7 +5045,7 @@ if test "$wxUSE_TEXTCTRL" = "yes"; then
 fi
 
 if test "$wxUSE_TOGGLEBTN" = "yes"; then
-    if test "$wxUSE_MAC" = 1; then
+    if test "$wxUSE_MAC" = 1 -o "$wxUSE_COCOA" = 1 ; then
         AC_MSG_WARN([Toggle button not yet supported under Mac OS X... disabled])
         wxUSE_TOGGLEBTN=no
     fi
@@ -4499,14 +5087,10 @@ if test "$wxUSE_TOOLTIPS" = "yes"; then
     if test "$wxUSE_MOTIF" = 1; then
         AC_MSG_WARN([wxTooltip not supported yet under Motif... disabled])
     else
-        if test "$wxUSE_WINE" = 1; then
-            AC_MSG_WARN([wxTooltip not supported under WINE... disabled])
+        if test "$wxUSE_UNIVERSAL" = "yes"; then
+            AC_MSG_WARN([wxTooltip not supported yet in wxUniversal... disabled])
         else
-            if test "$wxUSE_UNIVERSAL" = "yes"; then
-                AC_MSG_WARN([wxTooltip not supported yet in wxUniversal... disabled])
-            else
-                AC_DEFINE(wxUSE_TOOLTIPS)
-            fi
+            AC_DEFINE(wxUSE_TOOLTIPS)
         fi
     fi
 fi
@@ -4522,7 +5106,7 @@ if test "$wxUSE_TREECTRL" = "yes"; then
 fi
 
 if test "$wxUSE_POPUPWIN" = "yes"; then
-    if test "$wxUSE_MAC" = 1; then
+    if test "$wxUSE_MAC" = 1 -o "$wxUSE_COCOA" = 1 ; then
         AC_MSG_WARN([Popup window not yet supported under Mac OS X... disabled])
     else
         if test "$wxUSE_MOTIF" = 1; then
@@ -4530,7 +5114,7 @@ if test "$wxUSE_POPUPWIN" = "yes"; then
         else
             if test "$wxUSE_PM" = 1; then
                 AC_MSG_WARN([wxPopupWindow not yet supported under PM... disabled])
-            else 
+            else
                 AC_DEFINE(wxUSE_POPUPWIN)
 
                 USES_CONTROLS=1
@@ -4542,7 +5126,7 @@ fi
 if test "$wxUSE_TIPWINDOW" = "yes"; then
     if test "$wxUSE_PM" = 1; then
         AC_MSG_WARN([wxTipWindow not yet supported under PM... disabled])
-    else 
+    else
         AC_DEFINE(wxUSE_TIPWINDOW)
     fi
 fi
@@ -4555,10 +5139,10 @@ dnl ---------------------------------------------------------------------------
 dnl misc options
 dnl ---------------------------------------------------------------------------
 
-if test "$wxUSE_TREELAYOUT" = "yes"; then
-    AC_DEFINE(wxUSE_TREELAYOUT)
-    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS treelay"
-fi
+dnl if test "$wxUSE_TREELAYOUT" = "yes"; then
+dnl     AC_DEFINE(wxUSE_TREELAYOUT)
+dnl     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS treelay"
+dnl fi
 
 if test "$wxUSE_DRAGIMAGE" = "yes"; then
     AC_DEFINE(wxUSE_DRAGIMAGE)
@@ -4765,6 +5349,9 @@ fi
 
 AC_DEFINE_UNQUOTED(wxINSTALL_PREFIX, "$wxPREFIX")
 
+dnl define the variables used in wx-config
+top_builddir=`pwd`
+
 dnl ---------------------------------------------------------------------------
 dnl Output the makefiles and such from the results found above
 dnl ---------------------------------------------------------------------------
@@ -4777,12 +5364,56 @@ dnl extended.c uses floor() and is always linked in
 if test "$wxUSE_MAC" = 1 ; then
     LDFLAGS="$LDFLAGS -framework Carbon -framework System"
 fi
+if test "$wxUSE_COCOA" = 1 ; then
+    LDFLAGS="$LDFLAGS -framework Cocoa -framework System"
+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 -lm $LIBS"
+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
 
@@ -4795,7 +5426,7 @@ if test "$wxUSE_GUI" = "yes"; then
     dnl      ipc, mfc, nativdlg, oleauto, ownerdrw
     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS artprov controls dialogs \
                      drawing dynamic erase event exec font image \
-                     minimal richedit rotate widgets"
+                     minimal propsize rotate shaped widgets"
 
     dnl this is needed to be able to find AFM files
     CPPFLAGS="$CPPFLAGS \$(EXTRADEFS) \$(APPEXTRADEFS)"
@@ -4838,11 +5469,12 @@ if test "$GXX" = yes ; then
     fi
 fi
 
-EXTRA_CFLAGS="$WXDEBUG $WXODBCFLAG $PROFILE $OPTIMISE $INCLUDES"
+EXTRA_CFLAGS="$WXDEBUG $WXODBCFLAG $PROFILE $OPTIMISE"
 
 dnl remove the extra white space from the cc/c++/ld options
-CFLAGS=`echo $CFLAGS $EXTRA_CFLAGS $CXXWARNINGS | sed 's/ \\+/ /g'`
-CXXFLAGS=`echo $CXXFLAGS $EXTRA_CFLAGS $CXXWARNINGS | sed 's/ \+/ /g'`
+CPPFLAGS=`echo $INCLUDES $CPPFLAGS | sed 's/ \\+/ /g'`
+CFLAGS=`echo $EXTRA_CFLAGS $CFLAGS $CXXWARNINGS | sed 's/ \\+/ /g'`
+CXXFLAGS=`echo $EXTRA_CFLAGS $CXXFLAGS $CXXWARNINGS | sed 's/ \+/ /g'`
 LIBS=`echo $LIBS | sed 's/ \+/ /g'`
 
 LDFLAGS="$LDFLAGS $PROFILE"
@@ -4867,6 +5499,7 @@ AC_SUBST(WX_MINOR_VERSION_NUMBER)
 AC_SUBST(WX_RELEASE_NUMBER)
 AC_SUBST(WX_LIBRARY_NAME_STATIC)
 AC_SUBST(WX_LIBRARY_NAME_SHARED)
+AC_SUBST(WX_LIBRARY_BASENAME)
 AC_SUBST(WX_LIBRARY_IMPORTLIB)
 AC_SUBST(WX_TARGET_LIBRARY)
 AC_SUBST(WX_LIBRARY_LINK1)
@@ -4894,12 +5527,15 @@ AC_SUBST(SONAME_FLAGS_GL)
 AC_SUBST(WX_TARGET_LIBRARY_SONAME)
 AC_SUBST(WX_TARGET_LIBRARY_TYPE)
 
+AC_SUBST(STATIC_FLAG)
+
 dnl debugging options
 AC_SUBST(WXDEBUG_DEFINE)
 
 dnl toolkit options
 AC_SUBST(USE_GUI)
 AC_SUBST(AFMINSTALL)
+AC_SUBST(WIN32INSTALL)
 AC_SUBST(TOOLKIT)
 AC_SUBST(TOOLKIT_DIR)
 AC_SUBST(TOOLKIT_VPATH)
@@ -4908,6 +5544,7 @@ AC_SUBST(TOOLCHAIN_DEFS)
 AC_SUBST(TOOLCHAIN_DLL_DEFS)
 
 dnl wx-config options
+AC_SUBST(top_builddir)
 AC_SUBST(host_alias)
 AC_SUBST(cross_compiling)
 AC_SUBST(WXCONFIG_LIBS)
@@ -4915,6 +5552,8 @@ AC_SUBST(WXCONFIG_LIBS_GL)
 AC_SUBST(WXCONFIG_LIBS_STATIC)
 AC_SUBST(WXCONFIG_LIBS_STATIC_GL)
 AC_SUBST(WXCONFIG_INCLUDE)
+AC_SUBST(WXCONFIG_RPATH)
+AC_SUBST(WX_LARGEFILE_FLAGS)
 
 dnl the list of files to compile/install
 AC_SUBST(ALL_OBJECTS)
@@ -4932,10 +5571,12 @@ AC_SUBST(SAMPLES_SUBDIRS)
 dnl additional libraries and linker settings
 AC_SUBST(LDFLAGS)
 AC_SUBST(LDFLAGS_GL)
+AC_SUBST(LDFLAGS_VERSIONING)
 AC_SUBST(LDFLAGS_EXE)
 AC_SUBST(OPENGL_LIBS)
 AC_SUBST(DMALLOC_LIBS)
 AC_SUBST(EXTRADEFS)
+AC_SUBST(WX_VERSION_TAG)
 
 dnl additional resurces settings
 AC_SUBST(RESCOMP)
@@ -4948,16 +5589,19 @@ dnl additional for Mac OS X
 AC_SUBST(DEREZ)
 AC_SUBST(MACOSX_BUNDLE)
 AC_SUBST(LIBWXMACRES)
-AC_SUBST(LIBWXMACRESCOMP)
-AC_SUBST(LIBWXMACRESWXCONFIG)
+AC_SUBST(MACRESCOMP)
+AC_SUBST(MACSETFILE)
+AC_SUBST(MACRESWXCONFIG)
 
-dnl These seem to be missing
+dnl other tools
+AC_SUBST(GCC)
 AC_SUBST(DLLTOOL)
 AC_SUBST(AS)
 AC_SUBST(NM)
 AC_SUBST(LD)
 AC_SUBST(MAKEINFO)
 AC_SUBST(INSTALL_LIBRARY)
+AC_SUBST(INSTALL_DIR)
 
 dnl MAKE_SET will be replaced with "MAKE=..." or nothing if make sets MAKE
 dnl itself (this macro is required if SUBDIRS variable is used in Makefile.am
@@ -4982,9 +5626,18 @@ wx_cv_program_ext=$PROGRAM_EXT
 wx_cv_target_library=$WX_TARGET_LIBRARY
 wx_cv_target_library_gl=$WX_TARGET_LIBRARY_GL
 wx_cv_target_libtype=$WX_TARGET_LIBRARY_TYPE
+wx_cv_library_basename=${WX_LIBRARY_BASENAME}
+wx_cv_release=${WX_RELEASE}
+wx_cv_current=${WX_CURRENT}
+wx_cv_revision=${WX_REVISION}
+wx_cv_age=${WX_AGE}
+wx_cv_use_gui=${USE_GUI}
+wx_cv_use_resources=${wxUSE_RESOURCES}
 export wx_cv_path_samplesubdirs wx_cv_if_gnu_make \
        wx_cv_path_ifs wx_cv_program_ext \
-       wx_cv_target_library wx_cv_target_library_gl wx_cv_target_libtype
+       wx_cv_target_library wx_cv_target_library_gl wx_cv_target_libtype \
+       wx_cv_library_basename wx_cv_release wx_cv_current wx_cv_revision wx_cv_age \
+       wx_cv_use_gui wx_cv_use_resources
 
 AC_CONFIG_SUBDIRS(demos samples utils contrib)
 
@@ -4993,6 +5646,7 @@ dnl (the original file name may be overriden by appending another name after a
 dnl colon)
 AC_OUTPUT([
             wx-config
+            version-script
             src/make.env
             src/makeprog.env
             src/makelib.env
@@ -5037,4 +5691,28 @@ AC_OUTPUT([
           ]
          )
 
-dnl vi: set et sts=4 sw=4:
+dnl report on what we decided to do
+echo
+echo "Configured wxWindows ${WX_VERSION} for \`${host}'"
+echo ""
+echo "  Which GUI toolkit should wxWindows use?                 ${TOOLKIT:-base only}"
+
+echo "  Should wxWindows be compiled in debug mode?             ${wxUSE_DEBUG:-no}"
+echo "  Should wxWindows be linked as a shared library?         ${wxUSE_SHARED:-no}"
+echo "  Should wxWindows be compiled in Unicode mode?           ${wxUSE_UNICODE:-no}"
+
+echo "  What level of wxWindows compatibility should be enabled?"
+echo "                                       wxWindows 2.0      ${WXWIN_COMPATIBILITY_2:-no}"
+echo "                                       wxWindows 2.2      ${WXWIN_COMPATIBILITY_2_2:-no}"
+echo "                                       wxWindows 2.4      ${WXWIN_COMPATIBILITY_2_4:-yes}"
+
+echo "  Which libraries should wxWindows use?"
+echo "                                       jpeg               ${wxUSE_LIBJPEG-none}"
+echo "                                       png                ${wxUSE_LIBPNG-none}"
+echo "                                       regex              ${wxUSE_REGEX}"
+echo "                                       tiff               ${wxUSE_LIBTIFF-none}"
+echo "                                       zlib               ${wxUSE_ZLIB}"
+
+echo ""
+
+dnl vi: set et sts=4 sw=4 com=\:dnl: