]> git.saurik.com Git - wxWidgets.git/blobdiff - configure.in
define wxUSE_UNICODE before including wx/chkconf.h which uses it
[wxWidgets.git] / configure.in
index aad49573a189a5bf5b1557b36e9f03350c24566c..d1279b3e4966aa7115b88521421d5274b624e8dc 100644 (file)
@@ -17,7 +17,7 @@ dnl ---------------------------------------------------------------------------
 dnl initialization
 dnl ---------------------------------------------------------------------------
 
-AC_INIT([wxWidgets], [2.5.5], [wx-dev@lists.wxwidgets.org])
+AC_INIT([wxWidgets], [2.6.1], [wx-dev@lists.wxwidgets.org])
 
 dnl the file passed to AC_CONFIG_SRCDIR should be specific to our package
 AC_CONFIG_SRCDIR([wx-config.in])
@@ -48,14 +48,15 @@ dnl    If any public interface was removed (or altered in a way effectively
 dnl    removing the previous definition), instead do:  WX_AGE = 0
 dnl
 dnl When the major or minor version numbers are incremented, all the above
-dnl variables should be reset to 0.
+dnl variables should be reset to 0. wx_subrelease_number should be set to zero
+dnl when major, minor or release numbers change.
 dnl
 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=5
-wx_release_number=5
+wx_minor_version_number=6
+wx_release_number=1
 wx_subrelease_number=0
 
 WX_RELEASE=$wx_major_version_number.$wx_minor_version_number
@@ -64,9 +65,9 @@ WX_SUBVERSION=$WX_VERSION.$wx_subrelease_number
 
 WX_MSW_VERSION=$wx_major_version_number$wx_minor_version_number$wx_release_number
 
-WX_CURRENT=5
-WX_REVISION=0
-WX_AGE=5
+WX_CURRENT=0
+WX_REVISION=1
+WX_AGE=0
 
 
 dnl ------------------------------------------------------------------------
@@ -145,6 +146,8 @@ SO_SUFFIX=so
 SAMPLES_RPATH_FLAG=
 SAMPLES_RPATH_POSTLINK=
 
+DEFAULT_STD_FLAG=yes
+
 dnl to support a new system, you need to add its canonical name (as determined
 dnl by config.sub or specified by the configure command line) to this "case"
 dnl and also define the shared library flags below - search for
@@ -276,6 +279,7 @@ case "${host}" in
     PROGRAM_EXT=".exe"
     RESCOMP=windres
     DEFAULT_DEFAULT_wxUSE_MSW=1
+    DEFAULT_STD_FLAG=no
   ;;
 
   *-pc-msdosdjgpp )
@@ -284,8 +288,6 @@ 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 )
@@ -319,6 +321,7 @@ case "${host}" in
     done
     export PATH="$ac_TEMP_PATH"
     unset ac_TEMP_PATH
+    DEFAULT_STD_FLAG=no
   ;;
 
   powerpc-*-darwin* )
@@ -330,6 +333,7 @@ case "${host}" in
     AC_DEFINE(__DARWIN__)
     AC_DEFINE(TARGET_CARBON)
     DEFAULT_DEFAULT_wxUSE_MAC=1
+    DEFAULT_STD_FLAG=no
   ;;
   powerpc-apple-macos* )
     dnl Classic Mac OS (< X)
@@ -341,6 +345,7 @@ case "${host}" in
     dnl AC_DEFINE(TARGET_CARBON)
     dnl platform.h needs TARGET_CARBON before setup.h, we'll add it to CPPFLAGS
     DEFAULT_DEFAULT_wxUSE_MAC=1
+    DEFAULT_STD_FLAG=no
   ;;
 
   *-*-beos* )
@@ -420,6 +425,7 @@ if test $DEBUG_CONFIGURE = 1; then
   DEFAULT_wxUSE_DEBUGREPORT=no
   DEFAULT_wxUSE_SNGLINST_CHECKER=no
   DEFAULT_wxUSE_STD_IOSTREAM=no
+  DEFAULT_wxUSE_STD_STRING=no
   DEFAULT_wxUSE_CMDLINE_PARSER=no
   DEFAULT_wxUSE_DATETIME=no
   DEFAULT_wxUSE_TIMER=no
@@ -431,7 +437,6 @@ if test $DEBUG_CONFIGURE = 1; then
   DEFAULT_wxUSE_TEXTFILE=no
   DEFAULT_wxUSE_SOUND=no
   DEFAULT_wxUSE_MEDIACTRL=no  
-  DEFAULT_wxUSE_DIRECTSHOW=no  
   DEFAULT_wxUSE_INTL=no
   DEFAULT_wxUSE_CONFIG=no
   DEFAULT_wxUSE_FONTMAP=no
@@ -455,6 +460,7 @@ if test $DEBUG_CONFIGURE = 1; then
   DEFAULT_wxUSE_DRAG_AND_DROP=no
   DEFAULT_wxUSE_DRAGIMAGE=no
   DEFAULT_wxUSE_SPLINES=no
+  DEFAULT_wxUSE_MOUSEWHEEL=no
 
   DEFAULT_wxUSE_MDI=no
   DEFAULT_wxUSE_MDI_ARCHITECTURE=no
@@ -614,7 +620,8 @@ else
   DEFAULT_wxUSE_STACKWALKER=yes
   DEFAULT_wxUSE_DEBUGREPORT=yes
   DEFAULT_wxUSE_SNGLINST_CHECKER=yes
-  DEFAULT_wxUSE_STD_IOSTREAM=no
+  DEFAULT_wxUSE_STD_IOSTREAM=$DEFAULT_STD_FLAG
+  DEFAULT_wxUSE_STD_STRING=$DEFAULT_STD_FLAG
   DEFAULT_wxUSE_CMDLINE_PARSER=yes
   DEFAULT_wxUSE_DATETIME=yes
   DEFAULT_wxUSE_TIMER=yes
@@ -626,7 +633,6 @@ else
   DEFAULT_wxUSE_TEXTFILE=yes
   DEFAULT_wxUSE_SOUND=yes
   DEFAULT_wxUSE_MEDIACTRL=no
-  DEFAULT_wxUSE_DIRECTSHOW=no
   DEFAULT_wxUSE_INTL=yes
   DEFAULT_wxUSE_CONFIG=yes
   DEFAULT_wxUSE_FONTMAP=yes
@@ -650,6 +656,7 @@ else
   DEFAULT_wxUSE_DRAG_AND_DROP=yes
   DEFAULT_wxUSE_DRAGIMAGE=yes
   DEFAULT_wxUSE_SPLINES=yes
+  DEFAULT_wxUSE_MOUSEWHEEL=yes
 
   DEFAULT_wxUSE_MDI=yes
   DEFAULT_wxUSE_MDI_ARCHITECTURE=yes
@@ -764,6 +771,7 @@ else
   DEFAULT_wxUSE_GTK2=yes
 fi
 
+
 dnl WX_ARG_WITH should be used to select whether an external package will be
 dnl used or not, to configure compile-time features of this package itself,
 dnl use WX_ARG_ENABLE instead
@@ -780,6 +788,11 @@ for toolkit in `echo $ALL_TOOLKITS`; do
     has_toolkit_in_cache=1
     eval "DEFAULT_$LINE"
     eval "CACHE_$toolkit=1"
+    
+    LINE=`grep "wx${toolkit}_VERSION=" ${wx_arg_cache_file}`
+    if test "x$LINE" != "x" ; then
+        eval "DEFAULT_$LINE"
+    fi
   fi
 done
 
@@ -798,7 +811,7 @@ WX_ARG_ENABLE(plugins,     [  --enable-plugins        build parts of wxWidgets a
 if test "$wxUSE_GUI" = "yes"; then
 
 WX_ARG_ENABLE(universal,   [  --enable-universal      use wxWidgets GUI controls instead of native ones], wxUSE_UNIVERSAL)
-AC_ARG_WITH(gtk,           [  --with-gtk              use GTK+], [wxUSE_GTK="$withval" CACHE_GTK=1 TOOLKIT_GIVEN=1])
+AC_ARG_WITH(gtk,          [[  --with-gtk[=VERSION]    use GTK+, VERSION can be 2 (default), 1 or "any"]], [wxUSE_GTK="$withval" CACHE_GTK=1 TOOLKIT_GIVEN=1])
 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" CACHE_MAC=1 TOOLKIT_GIVEN=1])
 AC_ARG_WITH(cocoa,         [  --with-cocoa            use Cocoa], [wxUSE_COCOA="$withval" CACHE_COCOA=1 TOOLKIT_GIVEN=1])
@@ -810,7 +823,7 @@ AC_ARG_WITH(microwin,      [  --with-microwin         use MicroWindows], [wxUSE_
 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)
 
-WX_ARG_ENABLE(gtk2,        [  --disable-gtk2          use GTK+ 1.2 instead of 2.0], wxUSE_GTK2)
+AC_ARG_ENABLE(gtk2,        [  --disable-gtk2          use GTK+ 1.2 instead of 2.0], [wxUSE_GTK2="$enableval"])
 WX_ARG_ENABLE(gpe,         [  --enable-gpe            use GNOME PDA Environment features if possible], wxUSE_GPE)
 
 WX_ARG_SYS_WITH(libpng,    [  --with-libpng           use libpng (PNG image format)], wxUSE_LIBPNG)
@@ -840,6 +853,7 @@ WX_ARG_ENABLE(optimise,    [  --enable-optimise       create optimised code], wx
 WX_ARG_ENABLE(debug,       [  --enable-debug          same as debug_flag and debug_info], wxUSE_DEBUG)
 WX_ARG_ENABLE(stl,         [  --enable-stl            use STL for containers], wxUSE_STL)
 if test "$USE_OS2" = "1"; then
+    DEFAULT_wxUSE_OMF=no
     WX_ARG_ENABLE(omf,     [  --enable-omf            use OMF object format], wxUSE_OMF)
 fi
 
@@ -912,6 +926,7 @@ WX_ARG_ENABLE(mimetype,      [  --enable-mimetype       use wxMimeTypesManager],
 WX_ARG_ENABLE(mslu,          [  --enable-mslu           use MS Layer for Unicode on Windows 9x (Win32 only)], wxUSE_UNICODE_MSLU)
 WX_ARG_ENABLE(snglinst,      [  --enable-snglinst       use wxSingleInstanceChecker class], wxUSE_SNGLINST_CHECKER)
 WX_ARG_ENABLE(std_iostreams, [  --enable-std_iostreams  use standard C++ stream classes], wxUSE_STD_IOSTREAM)
+WX_ARG_ENABLE(std_string,    [  --enable-std_string     use standard C++ string classes], wxUSE_STD_STRING)
 WX_ARG_ENABLE(stdpaths,      [  --enable-stdpaths       use wxStandardPaths class], wxUSE_STDPATHS)
 WX_ARG_ENABLE(stopwatch,     [  --enable-stopwatch      use wxStopWatch class], wxUSE_STOPWATCH)
 WX_ARG_ENABLE(streams,       [  --enable-streams        use wxStream etc classes], wxUSE_STREAMS)
@@ -1145,6 +1160,7 @@ WX_ARG_ENABLE(menus,       [  --enable-menus          use wxMenu/wxMenuBar/wxMen
 WX_ARG_ENABLE(miniframe,   [  --enable-miniframe      use wxMiniFrame class], wxUSE_MINIFRAME)
 WX_ARG_ENABLE(tooltips,    [  --enable-tooltips       use wxToolTip class], wxUSE_TOOLTIPS)
 WX_ARG_ENABLE(splines,     [  --enable-splines        use spline drawing code], wxUSE_SPLINES)
+WX_ARG_ENABLE(mousewheel,  [  --enable-mousewheel     use mousewheel], wxUSE_MOUSEWHEEL)
 WX_ARG_ENABLE(validators,  [  --enable-validators     use wxValidator and derived classes], wxUSE_VALIDATORS)
 WX_ARG_ENABLE(busyinfo,    [  --enable-busyinfo       use wxBusyInfo], wxUSE_BUSYINFO)
 WX_ARG_ENABLE(joystick,    [  --enable-joystick       use wxJoystick], wxUSE_JOYSTICK)
@@ -1205,6 +1221,7 @@ if test "$wxUSE_WINE" = "yes"; then
     wxUSE_SHARED=no
 fi
 
+
 if test "$wxUSE_GUI" = "yes"; then
 
     if test "$USE_BEOS" = 1; then
@@ -1212,11 +1229,19 @@ if test "$wxUSE_GUI" = "yes"; then
     fi
 
     if test "$TOOLKIT_GIVEN" = 1; then
-      dnl convert "yes" to 1 and "no" to 0
+      dnl convert "yes", "any" or a number to 1 and "no" to 0
       for toolkit in `echo $ALL_TOOLKITS`; do
         var=wxUSE_$toolkit
         eval "value=\$${var}"
-        eval "$var=`echo \$value | sed -e "s/yes/1/" -e "s/no/0/"`"
+        if test "x$value" = "xno"; then
+          eval "$var=0"
+        elif test "x$value" != "x"; then
+          eval "$var=1"
+        fi
+
+        if test "x$value" != "x" -a "x$value" != "xyes" -a "x$value" != "xno"; then
+          eval "wx${toolkit}_VERSION=$value"
+        fi
       done
     else
       dnl try to guess the most apropriate toolkit for this platform
@@ -1225,6 +1250,11 @@ if test "$wxUSE_GUI" = "yes"; then
           var=DEFAULT_DEFAULT_wxUSE_$toolkit
         else
           var=DEFAULT_wxUSE_$toolkit
+
+          eval "version=\$DEFAULT_wx${toolkit}_VERSION"
+          if test "x$version" != "x"; then
+            eval "wx${toolkit}_VERSION=$version"
+          fi
         fi
         eval "wxUSE_$toolkit=\$${var}"
       done
@@ -1252,6 +1282,13 @@ if test "$wxUSE_GUI" = "yes"; then
         AC_MSG_ERROR(Please specify at most one toolkit (maybe some are cached in configarg.cache?))
     esac
 
+    # to be removed when --disable-gtk2 isn't needed
+    if test "x$wxUSE_GTK2" = "xyes"; then
+        wxGTK_VERSION=2
+    elif test "x$wxUSE_GTK2" = "xno"; then
+        wxGTK_VERSION=1
+    fi
+
     dnl cache the wxUSE_<TOOLKIT> values too
     for toolkit in `echo $ALL_TOOLKITS`; do
       var=wxUSE_$toolkit
@@ -1261,6 +1298,10 @@ if test "$wxUSE_GUI" = "yes"; then
         eval "cache=\$${cache_var}"
         if test "$cache" = 1; then
           echo "$var=$value" >> ${wx_arg_cache_file}
+          eval "version=\$wx${toolkit}_VERSION"
+          if test "x$version" != "x"; then
+            echo "wx${toolkit}_VERSION=$version" >> ${wx_arg_cache_file}
+          fi
         fi
         if test "$value" = 1; then
           toolkit_echo=`echo $toolkit | tr "[[A-Z]]" "[[a-z]]"`
@@ -1366,14 +1407,7 @@ 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 we add
 dnl -g and -O flags ourselves below
 CFLAGS=${CFLAGS:=}
-AC_PROG_CC
-AC_WX_METROWERKS_EXTO
-if test "x$wx_cv_c_exto" '!=' "x"; then
-    unset ac_cv_prog_cc_g
-    _AC_PROG_CC_G
-fi
-AC_BAKEFILE_PROG_MWCC
-AC_WX_PROG_XLCC
+AC_BAKEFILE_PROG_CC
 
 dnl is -traditional needed for correct compilations
 dnl   adds -traditional for gcc if needed
@@ -1390,14 +1424,7 @@ dnl   defines CXXFLAGS
 dnl
 dnl see CFLAGS line above
 CXXFLAGS=${CXXFLAGS:=}
-AC_PROG_CXX
-AC_WX_METROWERKS_EXTO
-if test "x$wx_cv_cxx_exto" '!=' "x"; then
-    unset ac_cv_prog_cxx_g
-    _AC_PROG_CXX_G
-fi
-AC_BAKEFILE_PROG_MWCXX
-AC_WX_PROG_XLCXX
+AC_BAKEFILE_PROG_CXX
 
 AC_LANG_RESTORE
 
@@ -1575,7 +1602,7 @@ case "${host}" in
       dnl wx_cv_gccversion = EMX3 -> EMX with gcc-3.0.3 or gcc-3.2.1
       dnl wx_cv_gccversion = Innotek5 -> gcc-3.2.2 with Innotek libc5
       dnl wx_cv_gccversion = Innotek6 -> gcc-3.3.5 with Innotek libc6.
-      AC_CACHE_CHECK([for gcc version], wx_cv_gccversion,[
+      AC_CACHE_CHECK([for gcc/libc version], wx_cv_gccversion,[
           AC_TRY_RUN(
               dnl Check the gcc version macro.  
               [
@@ -1621,9 +1648,6 @@ case "${host}" in
         wxUSE_OMF=yes
        enable_omf=yes
       fi
-      if test "$wxUSE_OMF" = "yes"; then
-        LDFLAGS="$LDFLAGS -Zomf -Zlinker /EXEPACK -Zlinker /PMTYPE:PM"
-      fi
       dnl (end of OS/2-only piece)
   ;;
   *)
@@ -1769,8 +1793,8 @@ dnl SGI/Irix's stdio.h does not include wchar_t. Mac OS X does not provide
 dnl wchar.h and wchar_t is defined by stdlib.h (GD)
 AC_CHECK_SIZEOF(wchar_t, 0,
     [
-        /* DJGPP only has fake wchar_t: */
-        #ifdef __DJGPP__
+        /* DJGPP's wchar_t is now a keyword in C++ (still not C though) */
+        #if defined(__DJGPP__) && !( (__GNUC_MINOR__ >= 8 && __GNUC__ == 2 ) || __GNUC__ >= 3 )
         #  error "fake wchar_t"
         #endif
         #ifdef HAVE_WCHAR_H
@@ -1785,6 +1809,11 @@ AC_CHECK_SIZEOF(wchar_t, 0,
         #include <stdio.h>
     ]
 )
+if test "$ac_cv_sizeof_wchar_t" != "0"; then
+    wxUSE_WCHAR_T=yes
+else
+    wxUSE_WCHAR_T=no
+fi
 
 dnl checks needed to define wxVaCopy
 AC_CACHE_CHECK([for va_copy],
@@ -1891,7 +1920,76 @@ AC_CXX_STATIC_CAST
 dnl we don't use HAVE_DYNAMIC_CAST anywhere right now...
 dnl AC_CXX_DYNAMIC_CAST
 
-dnl check various STL features
+dnl check for std::string or std::wstring
+if test "$wxUSE_STD_STRING" = "yes" -o "$wxUSE_STL" = "yes"; then
+    AC_LANG_PUSH(C++)
+
+    if test "$wxUSE_UNICODE" = "yes"; then
+        std_string="std::wstring"
+        char_type="wchar_t"
+    else
+        std_string="std::string"
+        char_type="char"
+    fi
+
+    dnl check if <string> declares std::wstring
+    AC_MSG_CHECKING([for $std_string in <string>])
+    AC_TRY_COMPILE([#include <string>],
+                   [$std_string foo;],
+                   [AC_MSG_RESULT(yes)
+                    AC_DEFINE(HAVE_STD_WSTRING)],
+                   [AC_MSG_RESULT(no)
+                    AC_MSG_CHECKING([if std::basic_string<$char_type> works])
+                    AC_TRY_COMPILE([
+                        #ifdef HAVE_WCHAR_H
+                        #  ifdef __CYGWIN__
+                        #    include <stddef.h>
+                        #  endif
+                        #  include <wchar.h>
+                        #endif
+                        #ifdef HAVE_STDLIB_H
+                        #  include <stdlib.h>
+                        #endif
+                        #include <stdio.h>
+                        #include <string>
+                        ],
+                        [std::basic_string<$char_type> foo;
+                         const $char_type* dummy = foo.c_str();],
+                        [AC_MSG_RESULT(yes)],
+                        [AC_MSG_RESULT([no])
+                         if test "$wxUSE_STL" = "yes"; then
+                             AC_MSG_ERROR([Can't use --enable-stl without $std_string or std::basic_string<$char_type>])
+                         elif grep wxUSE_STD_STRING $wx_arg_cache_file >/dev/null; then
+                             AC_MSG_ERROR([Can't use --enable-std_string without $std_string or std::basic_string<$char_type>])
+                         else
+                             AC_MSG_WARN([No $std_string or std::basic_string<$char_type>, switching to --disable-std_string])
+                             wxUSE_STD_STRING=no
+                         fi
+                        ]
+                    )
+                    ])
+
+    AC_LANG_POP
+fi
+
+if test "$wxUSE_STD_IOSTREAM" = "yes"; then
+    AC_LANG_PUSH(C++)
+
+    AC_CHECK_TYPES([std::istream, std::ostream],,
+                   [wxUSE_STD_IOSTREAM=no],
+                   [#include <iostream>])
+
+    if test "$wxUSE_STD_IOSTREAM" != "yes"; then
+        if grep wxUSE_STD_IOSTREAM $wx_arg_cache_file >/dev/null; then
+            AC_MSG_ERROR([Can't use --enable-std_iostreams without std::istream and std::ostream])
+        else
+            AC_MSG_WARN([No std::iostreams, switching to --disable-std_iostreams])
+        fi
+    fi
+    
+    AC_LANG_POP
+fi
+
 if test "$wxUSE_STL" = "yes"; then
     AC_LANG_PUSH(C++)
 
@@ -1911,14 +2009,6 @@ if test "$wxUSE_STL" = "yes"; then
                     [AC_MSG_RESULT([no])
                      AC_MSG_ERROR([Basic STL functionality missing])])
 
-    dnl check if <string> declares std::wstring
-    AC_MSG_CHECKING([for std::wstring in <string>])
-    AC_TRY_COMPILE([#include <string>],
-                   [std::wstring foo;],
-                   [AC_MSG_RESULT(yes)
-                    AC_DEFINE(HAVE_STD_WSTRING)],
-                   [AC_MSG_RESULT(no)])
-
     dnl check for compliant std::string::compare
     AC_MSG_CHECKING([for compliant std::string::compare])
     AC_TRY_COMPILE([#include <string>],
@@ -2391,6 +2481,17 @@ dnl ------------------------------------------------------------------------
 dnl Check for expat libraries
 dnl ------------------------------------------------------------------------
 
+if test "$wxUSE_WCHAR_T" != "yes"; then
+    if test "$wxUSE_EXPAT" != "no"; then
+        AC_MSG_WARN([wxWidgets requires wchar_t to use expat, disabling])
+        wxUSE_EXPAT=no
+    fi
+    if test "$wxUSE_XML" != "no"; then
+        AC_MSG_WARN([wxWidgets requires wchar_t to use xml, disabling])
+        wxUSE_XML=no
+    fi
+fi
+
 if test "$wxUSE_EXPAT" != "no"; then
     wxUSE_XML=yes
     AC_DEFINE(wxUSE_EXPAT)
@@ -2561,16 +2662,20 @@ 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
+                dnl detect GTK2
                 wx_cv_lib_gtk=
-                if test "x$wxUSE_GTK2" = "xyes"; then
+                if test "x$wxGTK_VERSION" != "x1"; then
                     AM_PATH_GTK_2_0(2.0.0, wx_cv_lib_gtk=2.0, , $GTK_MODULES)
-                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)
+                dnl detect GTK1.x
+                if test -z "$wx_cv_lib_gtk"; then
+                    if test "x$wxGTK_VERSION" = "x1" -o "x$wxGTK_VERSION" = "xany" ; then
+                        AM_PATH_GTK(1.2.7, wx_cv_lib_gtk=1.2.7, , $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
                 fi
 
@@ -2602,10 +2707,12 @@ if test "$wxUSE_GUI" = "yes"; then
             1.2.3)  WXGTK12=1
                     ;;
             *)      AC_MSG_ERROR([
-Please check that gtk-config is in path, the directory
-where GTK+ libraries are installed (returned by
-'gtk-config --libs' command) is in LD_LIBRARY_PATH or
-equivalent variable and GTK+ is version 1.2.3 or above.
+The development files for GTK+ were not found. For GTK+ 2, please
+ensure that pkg-config is in the path and that gtk+-2.0.pc is
+installed. For GTK+ 1.2 please check that gtk-config is in the path,
+and that the version is 1.2.3 or above. Also check that the
+libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
+--libs' are in the LD_LIBRARY_PATH or equivalent.
                             ])
                     ;;
         esac
@@ -2613,8 +2720,8 @@ equivalent variable and GTK+ is version 1.2.3 or above.
         if test "$WXGTK20" = 1; then
             save_CFLAGS="$CFLAGS"
             save_LIBS="$LIBS"
-            CFLAGS="$CFLAGS $GTK_CFLAGS"
-            LIBS="$LIBS $GTK_LIBS"
+            CFLAGS="$CFLAGS $wx_cv_cflags_gtk"
+            LIBS="$LIBS $wx_cv_lib_gtk"
             
             AC_CHECK_FUNCS([pango_font_family_is_monospace])
             
@@ -2871,6 +2978,10 @@ equivalent variable and GTK+ is version 1.2.3 or above.
     fi
 
     if test "$wxUSE_MOTIF" = 1; then
+        if test "$wxUSE_UNICODE" = "yes"; then
+            AC_MSG_ERROR([Unicode configuration not supported with Motif])
+        fi
+
         AC_MSG_CHECKING(for Motif/Lesstif headers)
         WX_PATH_FIND_INCLUDES($SEARCH_INCLUDE, Xm/Xm.h)
         if test "$ac_find_includes" != "" ; then
@@ -3185,7 +3296,7 @@ dnl ----------------------------------------------------------------
 IODBC_C_SRC=""
 
 
-dnl ODBC is handled seperately for MSW 
+dnl ODBC is handled separately for MSW 
 if test "$TOOLKIT" != "MSW" ; then
 
     if test "$wxUSE_ODBC" = "sys" -o "$wxUSE_ODBC" = "yes" ; then
@@ -3312,6 +3423,8 @@ if test "$wxUSE_OPENGL" = "yes"; then
                 AC_MSG_CHECKING([for -lGL])
                 WX_PATH_FIND_LIBRARIES([$SEARCH_LIB],GL)
                 if test "$ac_find_libraries" != "" ; then
+                    AC_MSG_RESULT([yes])
+
                     WX_LINK_PATH_EXIST([$ac_find_libraries],[$LDFLAGS])
                     if test "$ac_path_to_link" != " -L/usr/lib" ; then
                         LDFLAGS_GL="$ac_path_to_link"
@@ -3320,6 +3433,7 @@ if test "$wxUSE_OPENGL" = "yes"; then
                     dnl don't suppose that libGL and libGLU are always in the
                     dnl same directory -- this is not true for some common
                     dnl distributions
+                    AC_MSG_CHECKING([for -lGLU])
                     WX_PATH_FIND_LIBRARIES([$SEARCH_LIB],GLU)
                     if test "$ac_find_libraries" != "" ; then
                         WX_LINK_PATH_EXIST([$ac_find_libraries],[$LDFLAGS])
@@ -3331,11 +3445,14 @@ if test "$wxUSE_OPENGL" = "yes"; then
                         found_gl=1
                         OPENGL_LIBS="-lGL -lGLU"
                         AC_MSG_RESULT([yes])
+                    else
+                        AC_MSG_RESULT([no])
                     fi
+                else
+                    AC_MSG_RESULT([no])
                 fi
 
                 if test "$found_gl" != 1; then
-                    AC_MSG_RESULT([no])
                     AC_MSG_CHECKING([for -lMesaGL])
                     WX_PATH_FIND_LIBRARIES([$SEARCH_LIB],MesaGL)
                     if test "$ac_find_libraries" != "" ; then
@@ -3351,7 +3468,7 @@ if test "$wxUSE_OPENGL" = "yes"; then
 
         if test "x$OPENGL_LIBS" = "x"; then
             dnl it should be an error and not a warning because OpenGL is not on
-            dnl by default and so if it had been explicitely requested, we
+            dnl by default and so if it had been explicitly requested, we
             dnl shouldn't just fall back to compiling the library without it
             AC_MSG_ERROR(OpenGL libraries not available)
         fi
@@ -3434,8 +3551,10 @@ if test "$wxUSE_SHARED" = "yes"; then
       ;;
       
       powerpc-*-darwin* )
-        SAMPLES_RPATH_POSTLINK="\$(top_builddir)change-install-names \$(LIBDIRNAME) \$(prefix) \$@"
-        cat <<EOF >change-install-names
+        install_name_tool=`which install_name_tool`
+        if test "$install_name_tool" -a -x "$install_name_tool"; then
+            SAMPLES_RPATH_POSTLINK="\$(top_builddir)change-install-names \$(LIBDIRNAME) \$(prefix) \$@"
+            cat <<EOF >change-install-names
 #!/bin/sh
 libnames=\`cd \${1} ; ls -1 | grep '\.[[0-9]][[0-9]]*\.dylib\$'\`
 inst_cmd="install_name_tool "
@@ -3444,7 +3563,8 @@ for i in \${libnames} ; do
 done
 \${inst_cmd} \${3}
 EOF
-        chmod +x change-install-names
+            chmod +x change-install-names
+        fi
       ;;
       
       *-*-cygwin* | *-*-mingw32* )
@@ -3567,11 +3687,11 @@ if test "$wxUSE_MAC" = 1 -o "$wxUSE_COCOA" = 1; then
     dnl resources are bundled both with shared library and applications
     dnl since the carb resource *must* be included in the application
     if test "$wxUSE_MAC" = 1; then
-        MACRESCOMP="\$(RESCOMP) -d __DARWIN__ -t APPL Carbon.r ${LIBWXMACRES} -o"
+        MACRESCOMP="\$(RESCOMP) -d __DARWIN__ -t APPL Carbon.r -o"
 
         dnl this command is used to implement `wx-config --rezflags` and it is
         dnl eval'd there so escape any metacharacters inside
-        MACRESWXCONFIG="${RESCOMP} -d __DARWIN__ -t APPL Carbon.r \\\${exec_prefix}/lib/${WX_RESOURCES_MACOSX_ASCII} -o"
+        MACRESWXCONFIG="${RESCOMP} -d __DARWIN__ -t APPL Carbon.r -o"
     else
         MACRESCOMP="echo -n | \$(RESCOMP) -d __DARWIN__ -t APPL ${LIBWXMACRES} -o"
         MACRESWXCONFIG="echo -n \\\| ${RESCOMP} -d __DARWIN__ -t APPL \\\${exec_prefix}/lib/${WX_RESOURCES_MACOSX_ASCII} -o"
@@ -3692,7 +3812,7 @@ dnl Check for functions
 dnl ---------------------------------------------------------------------------
 
 dnl don't check for wchar_t functions if we haven't got wchar_t itself
-if test "$ac_cv_sizeof_wchar_t" != "0"; then
+if test "$wxUSE_WCHAR_T" = "yes"; then
     AC_DEFINE(wxUSE_WCHAR_T)
 
     dnl check for wcslen in all possible places
@@ -3880,7 +4000,7 @@ if test "$wxUSE_STACKWALKER" = "yes" -a "$wxUSE_UNIX" = "yes"; then
     else
         AC_CACHE_CHECK([for __cxa_demangle() in <cxxabi.h>], wx_cv_func_cxa_demangle,
             [
-                AC_TRY_COMPILE([#include <cxxabi.h>],
+                AC_TRY_LINK([#include <cxxabi.h>],
                     [
                         int rc;
                         __cxxabiv1::__cxa_demangle("foo", 0, 0, &rc);
@@ -3899,6 +4019,12 @@ if test "$wxUSE_STACKWALKER" = "yes" -a "$wxUSE_UNIX" = "yes"; then
     AC_LANG_RESTORE
 fi
 
+if test "$wxUSE_STACKWALKER" = "yes" -a "$USE_WIN32" != "1" -a "$USE_UNIX" != "1"; then 
+    AC_MSG_WARN([wxStackWalker is only available on Win32 and UNIX... disabled])
+    wxUSE_STACKWALKER=no
+fi
+
+
 dnl check for the function for temp files creation
 AC_CHECK_FUNCS(mkstemp mktemp, break)
 
@@ -4534,7 +4660,9 @@ fi
 
 if test "$wxUSE_DEBUG_GDB" = "yes" ; then
     wxUSE_DEBUG_INFO=yes
-    WXDEBUG="-ggdb"
+    if test "$GCC" = yes; then
+        WXDEBUG="-ggdb"
+    fi
 fi
 
 if test "$wxUSE_DEBUG_FLAG" = "yes" ; then
@@ -4554,7 +4682,7 @@ if test "$wxUSE_MEM_TRACING" = "yes" ; then
 fi
 
 if test "$wxUSE_DMALLOC" = "yes" ; then
-    DMALLOC_LIBS="-ldmalloc"
+    DMALLOC_LIBS="-ldmallocthcxx"
 fi
 
 PROFILE=
@@ -4673,6 +4801,8 @@ if test "$TOOLKIT" != "MSW" -a "$USE_OS2" != 1; then
         if test "$USE_DARWIN" = 1; then
             dnl dlopen/dlerror is implemented in dynlib.cpp for Darwin/Mac OS X
             HAVE_DL_FUNCS=1
+        elif test "$USE_DOS" = 1; then
+            HAVE_DL_FUNCS=0
         else
             dnl the test is a bit complicated because we check for dlopen() both with
             dnl and without -ldl and we also try to find shl_load() if there is no
@@ -4718,7 +4848,7 @@ if test "$TOOLKIT" != "MSW" -a "$USE_OS2" != 1; then
 
         if test "$HAVE_DL_FUNCS" = 0; then
             if test "$HAVE_SHL_FUNCS" = 0; then
-              if test "$USE_UNIX" = 1; then
+              if test "$USE_UNIX" = 1 -o "$USE_DOS" = 1; then
                   AC_MSG_WARN([Missing dynamic loading support, several features will be disabled])
                   wxUSE_DYNAMIC_LOADER=no
                   wxUSE_DYNLIB_CLASS=no
@@ -4776,13 +4906,15 @@ if test "$wxUSE_TIMER" = "yes"; then
   AC_DEFINE(wxUSE_TIMER)
 fi
 
+dnl Unix implementation needs additional checks because audio support
+dnl comes in many favours:
+if test "$USE_UNIX" = "1" ; then
+    AC_CHECK_HEADERS([sys/soundcard.h],,
+                     [DISABLED_CONTRIB="$DISABLED_CONTRIB mmedia"])
+fi
 WITH_PLUGIN_SDL=0
 if test "$wxUSE_SOUND" = "yes"; then
-  dnl Unix implementation needs additional checks because audio support
-  dnl comes in many favours:
   if test "$USE_UNIX" = "1" ; then
-    AC_CHECK_HEADERS([sys/soundcard.h])
-
     if test "$wxUSE_LIBSDL" != "no"; then
       AM_PATH_SDL([1.2.0],
                   [
@@ -4865,7 +4997,12 @@ if test "$wxUSE_ZIPSTREAM" = "yes"; then
 fi
 
 if test "$wxUSE_ON_FATAL_EXCEPTION" = "yes"; then
-  AC_DEFINE(wxUSE_ON_FATAL_EXCEPTION)
+  if test "$USE_UNIX" != 1; then
+    AC_MSG_WARN([Catching fatal exceptions not currently supported on this system, wxApp::OnFatalException will not be called])
+    wxUSE_ON_FATAL_EXCEPTION=no
+  else
+    AC_DEFINE(wxUSE_ON_FATAL_EXCEPTION)
+  fi
 fi
 
 if test "$wxUSE_STACKWALKER" = "yes"; then
@@ -4873,8 +5010,15 @@ if test "$wxUSE_STACKWALKER" = "yes"; then
 fi
 
 if test "$wxUSE_DEBUGREPORT" = "yes"; then
-    AC_DEFINE(wxUSE_DEBUGREPORT)
-    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS debugrpt"
+    if test "$USE_UNIX" != "1" -a "$USE_WIN32" != "1"; then
+        AC_MSG_WARN([Creating debug reports not currently supported on this system, disabled])
+        wxUSE_DEBUGREPORT=no
+    else
+        AC_DEFINE(wxUSE_DEBUGREPORT)
+        if test "$wxUSE_ON_FATAL_EXCEPTION" = "yes"; then
+            SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS debugrpt"
+        fi
+    fi
 fi
 
 if test "$wxUSE_SNGLINST_CHECKER" = "yes"; then
@@ -4889,6 +5033,10 @@ if test "$wxUSE_STD_IOSTREAM" = "yes"; then
   AC_DEFINE(wxUSE_STD_IOSTREAM)
 fi
 
+if test "$wxUSE_STD_STRING" = "yes"; then
+  AC_DEFINE(wxUSE_STD_STRING)
+fi
+
 if test "$wxUSE_STDPATHS" = "yes"; then
   AC_DEFINE(wxUSE_STDPATHS)
 fi
@@ -5314,30 +5462,39 @@ dnl ---------------------------------------------------------------------------
 dnl Joystick support
 dnl ---------------------------------------------------------------------------
 
-if test "$wxUSE_GUI" = "yes"; then
-     dnl under MSW we always have joystick support
-     if test "$wxUSE_JOYSTICK" = "yes"; then
-         
-        dnl joystick support is only for Linux 2.1.x or greater
-        if test "$TOOLKIT" != "MAC" -a "$TOOLKIT" != "COCOA" -a "$TOOLKIT" != "MSW"; then
-            AC_CHECK_HEADERS(linux/joystick.h)
-            if test "$ac_cv_header_linux_joystick_h" != "yes"; then
-                wxUSE_JOYSTICK=no
-                AC_MSG_WARN(Joystick not supported by this system... disabled)
-            fi
-        else
-           dnl mac only available on darwin
-           if test "$USE_DARWIN" != 1 -a "$TOOLKIT" != "MSW"; then
-                wxUSE_JOYSTICK=no
-                AC_MSG_WARN(Joystick not supported by this system... disabled)           
-           fi            
-        fi
+if test "$wxUSE_GUI" = "yes" -a "$wxUSE_JOYSTICK" = "yes"; then
+    wxUSE_JOYSTICK=no
 
+    dnl under MSW we always have joystick support
+    if test "$TOOLKIT" = "MSW"; then
+        wxUSE_JOYSTICK=yes
 
-        if test "$wxUSE_JOYSTICK" = "yes"; then
-            AC_DEFINE(wxUSE_JOYSTICK)
-            SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS joytest"
+    dnl mac only available on darwin
+    elif test "$TOOLKIT" = "MAC" -o "$TOOLKIT" = "COCOA"; then
+        if test "$USE_DARWIN" = 1; then
+            dnl check for a bug in the headers, some have bad setEventCallout
+            AC_MSG_CHECKING([headers have declarations needed for joystick support])
+            AC_LANG_PUSH(C++)
+            AC_TRY_COMPILE( [ #include <IOKit/hid/IOHIDLib.h> ],
+                            [ IOHIDQueueInterface *qi = NULL;
+                              IOHIDCallbackFunction cb = NULL;
+                              qi->setEventCallout(NULL, cb, NULL, NULL); ],
+                            [ wxUSE_JOYSTICK=yes ]
+                          )
+            AC_LANG_POP
+            AC_MSG_RESULT($wxUSE_JOYSTICK)
         fi
+
+    dnl joystick support is only for Linux 2.1.x or greater
+    else
+        AC_CHECK_HEADERS(linux/joystick.h, wxUSE_JOYSTICK=yes)
+    fi
+
+    if test "$wxUSE_JOYSTICK" = "yes"; then
+        AC_DEFINE(wxUSE_JOYSTICK)
+        SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS joytest"
+    else
+        AC_MSG_WARN(Joystick not supported by this system... disabled)           
     fi
 fi
 
@@ -5561,6 +5718,10 @@ if test "$wxUSE_SPLINES" = "yes" ; then
   AC_DEFINE(wxUSE_SPLINES)
 fi
 
+if test "$wxUSE_MOUSEWHEEL" = "yes" ; then
+  AC_DEFINE(wxUSE_MOUSEWHEEL)
+fi
+
 dnl ---------------------------------------------------------------------------
 dnl GUI controls
 dnl ---------------------------------------------------------------------------
@@ -5765,11 +5926,6 @@ if test "$wxUSE_TOGGLEBTN" = "yes"; then
     if test "$wxUSE_COCOA" = 1 ; then
         AC_MSG_WARN([Toggle button not yet supported under Mac OS X... disabled])
         wxUSE_TOGGLEBTN=no
-    else
-        if test "$wxUSE_PM" = 1; then
-            AC_MSG_WARN([Toggle button not yet supported under PM... disabled])
-            wxUSE_TOGGLEBTN=no
-        fi
     fi
     if test "$wxUSE_UNIVERSAL" = "yes"; then
         AC_MSG_WARN([Toggle button not yet supported under wxUniversal... disabled])
@@ -6078,24 +6234,6 @@ dnl wxMediaCtrl
 dnl ---------------------------------------------------------------------------
 
 if test "$wxUSE_MEDIACTRL" = "yes"; then
-    if test "$wxUSE_MSW" = 1; then
-    dnl -----------------------------------------------------------------------
-    dnl DirectShow MSW
-    dnl -----------------------------------------------------------------------
-        wxUSE_DIRECTSHOW="yes"
-        AC_CHECK_HEADERS([dshow.h], [],
-            [
-                wxUSE_DIRECTSHOW="no"
-                AC_MSG_WARN([DirectShow not installed; consider installing the DirectX7 SDK or higher])
-            ],
-            [#include <windows.h>])
-
-       if test "$wxUSE_DIRECTSHOW" = "yes"; then
-            AC_DEFINE(wxUSE_DIRECTSHOW)
-            LIBS="$LIBS -lstrmiids"
-       fi
-    fi
-
     dnl -----------------------------------------------------------------------
     dnl GStreamer 
     dnl -----------------------------------------------------------------------
@@ -6267,6 +6405,9 @@ if test "$wxUSE_COCOA" = 1 ; then
         LDFLAGS="$LDFLAGS -framework QuickTime"
     fi
 fi
+if test "$USE_DARWIN" = 1 -a "$wxUSE_MAC" != 1 -a "$wxUSE_COCOA" != 1 ; then
+    LDFLAGS="$LDFLAGS -framework IOKit -framework CoreServices -framework System -framework ApplicationServices"
+fi
 
 dnl FIXME: should this be covered by the conditional above
 dnl given the -lm comment there?  Or should that comment (and
@@ -6409,32 +6550,29 @@ WXCONFIG_EXTRALIBS="$LIBS"
 
 dnl wx-config must output builtin 3rd party libs in --libs in static build:
 if test "$wxUSE_REGEX" = "builtin" ; then
-    wxconfig_3rdparty="$wxconfig_3rdparty regex${lib_unicode_suffix}"
+    wxconfig_3rdparty="regex${lib_unicode_suffix} $wxconfig_3rdparty"
 fi
 if test "$wxUSE_EXPAT" = "builtin" ; then
-    wxconfig_3rdparty="$wxconfig_3rdparty expat"
+    wxconfig_3rdparty="expat $wxconfig_3rdparty"
 fi
 if test "$wxUSE_ODBC" = "builtin" ; then
-    wxconfig_3rdparty="$wxconfig_3rdparty odbc"
+    wxconfig_3rdparty="odbc $wxconfig_3rdparty"
 fi
 if test "$wxUSE_LIBTIFF" = "builtin" ; then
-    wxconfig_3rdparty="$wxconfig_3rdparty tiff"
+    wxconfig_3rdparty="tiff $wxconfig_3rdparty"
 fi
 if test "$wxUSE_LIBJPEG" = "builtin" ; then
-    wxconfig_3rdparty="$wxconfig_3rdparty jpeg"
+    wxconfig_3rdparty="jpeg $wxconfig_3rdparty"
 fi
 if test "$wxUSE_LIBPNG" = "builtin" ; then
-    wxconfig_3rdparty="$wxconfig_3rdparty png"
+    wxconfig_3rdparty="png $wxconfig_3rdparty"
 fi
 if test "$wxUSE_ZLIB" = "builtin" ; then
-    wxconfig_3rdparty="$wxconfig_3rdparty zlib"
-fi
-if test "$wxUSE_ODBC" = "builtin" ; then
-    wxconfig_3rdparty="$wxconfig_3rdparty odbc"
+    wxconfig_3rdparty="zlib $wxconfig_3rdparty"
 fi
 
 for i in $wxconfig_3rdparty ; do
-    WXCONFIG_EXTRALIBS="$WXCONFIG_EXTRALIBS -lwx${i}${lib_debug_suffix}${WX_LIB_FLAVOUR}-${WX_RELEASE}${HOST_SUFFIX}"
+    WXCONFIG_EXTRALIBS="-lwx${i}${lib_debug_suffix}${WX_LIB_FLAVOUR}-${WX_RELEASE}${HOST_SUFFIX} $WXCONFIG_EXTRALIBS"
 done
 
 
@@ -6526,8 +6664,16 @@ case "$TOOLKIT" in
         ;;
 esac
 
+if test "$wxUSE_WINE" = "yes"; then
+    BAKEFILE_FORCE_PLATFORM=win32
+fi
+
 AC_BAKEFILE([m4_include(autoconf_inc.m4)])
 
+if test "$wxUSE_WINE" = "yes"; then
+    RESCOMP=wrc
+fi
+
 if test "$wxUSE_SHARED" = "yes"; then
 
     dnl We get the shared build linker from bakefile, since it
@@ -6556,6 +6702,15 @@ else
     EXE_LINKER="$CXX -o"
 
 fi
+if test "$wxUSE_OMF" = "yes"; then
+    case "${host}" in
+      *-pc-os2_emx | *-pc-os2-emx )
+        LDFLAGS="$LDFLAGS -Zlinker /EXEPACK"
+        LDFLAGS_GUI="-Zlinker /PMTYPE:PM"
+        WXCONFIG_LDFLAGS_GUI="-Zlinker /PMTYPE:PM"
+      ;;
+    esac
+fi
 
 dnl According to Vaclav, if NO_GCC_PRAGMA is used for any reason it needs to
 dnl be in wx-config output.  Not doing so could result in link problems.
@@ -6757,8 +6912,14 @@ for subdir in `echo $SUBDIRS`; do
                         makefiles="samples/$sample/Makefile.in $makefiles"
                     fi
                 done
-            else dnl assume that everything compiles for utils &c
-                makefiles=`(cd $srcdir ; find $subdir -name Makefile.in)`
+            else
+                dnl assume that everything compiles for utils &c
+                dnl any that shouldn't be built can be added to
+                dnl DISABLED_UTILS, DISABLED_CONTRIB or DISABLED_DEMOS
+                disabled_var=DISABLED_`echo $subdir | tr [[a-z]] [[A-Z]]`;
+                eval "disabled=\$$disabled_var"
+                disabled=/`echo X $disabled | sed 's@ @/|/@g'`/
+                makefiles=`(cd $srcdir ; find $subdir -name Makefile.in) | egrep -v "$disabled"`
             fi
         else dnl we build wxBase only
             dnl don't take all samples/utils, just those which build with