]> git.saurik.com Git - wxWidgets.git/blobdiff - configure.in
I blindly believe that WinCE doesn't delete a
[wxWidgets.git] / configure.in
index 94cc9304a5e313464bf86b2d817d863554bb4346..b2f0e97e4027087a3ae91ad8d8f247c6da026316 100644 (file)
@@ -17,7 +17,7 @@ dnl ---------------------------------------------------------------------------
 dnl initialization
 dnl ---------------------------------------------------------------------------
 
 dnl initialization
 dnl ---------------------------------------------------------------------------
 
-AC_INIT([wxWidgets], [2.7.1], [wx-dev@lists.wxwidgets.org])
+AC_INIT([wxWidgets], [2.8.0], [wx-dev@lists.wxwidgets.org])
 
 dnl the file passed to AC_CONFIG_SRCDIR should be specific to our package
 AC_CONFIG_SRCDIR([wx-config.in])
 
 dnl the file passed to AC_CONFIG_SRCDIR should be specific to our package
 AC_CONFIG_SRCDIR([wx-config.in])
@@ -33,8 +33,8 @@ dnl
 dnl wx_release_number += 1
 
 wx_major_version_number=2
 dnl wx_release_number += 1
 
 wx_major_version_number=2
-wx_minor_version_number=7
-wx_release_number=2
+wx_minor_version_number=8
+wx_release_number=0
 wx_subrelease_number=0
 
 WX_RELEASE=$wx_major_version_number.$wx_minor_version_number
 wx_subrelease_number=0
 
 WX_RELEASE=$wx_major_version_number.$wx_minor_version_number
@@ -378,6 +378,7 @@ if test $DEBUG_CONFIGURE = 1; then
   DEFAULT_wxUSE_OPTIMISE=no
   DEFAULT_wxUSE_PROFILE=no
   DEFAULT_wxUSE_NO_DEPS=no
   DEFAULT_wxUSE_OPTIMISE=no
   DEFAULT_wxUSE_PROFILE=no
   DEFAULT_wxUSE_NO_DEPS=no
+  DEFAULT_wxUSE_VARARG_MACROS=no
   DEFAULT_wxUSE_NO_RTTI=no
   DEFAULT_wxUSE_NO_EXCEPTIONS=no
   DEFAULT_wxUSE_UNIVERSAL_BINARY=no
   DEFAULT_wxUSE_NO_RTTI=no
   DEFAULT_wxUSE_NO_EXCEPTIONS=no
   DEFAULT_wxUSE_UNIVERSAL_BINARY=no
@@ -601,6 +602,7 @@ else
   DEFAULT_wxUSE_OPTIMISE=yes
   DEFAULT_wxUSE_PROFILE=no
   DEFAULT_wxUSE_NO_DEPS=no
   DEFAULT_wxUSE_OPTIMISE=yes
   DEFAULT_wxUSE_PROFILE=no
   DEFAULT_wxUSE_NO_DEPS=no
+  DEFAULT_wxUSE_VARARG_MACROS=yes
   DEFAULT_wxUSE_NO_RTTI=no
   DEFAULT_wxUSE_NO_EXCEPTIONS=no
   DEFAULT_wxUSE_UNIVERSAL_BINARY=no
   DEFAULT_wxUSE_NO_RTTI=no
   DEFAULT_wxUSE_NO_EXCEPTIONS=no
   DEFAULT_wxUSE_UNIVERSAL_BINARY=no
@@ -632,7 +634,7 @@ else
   DEFAULT_wxUSE_LIBXPM=yes
   DEFAULT_wxUSE_LIBMSPACK=yes
   DEFAULT_wxUSE_LIBSDL=no
   DEFAULT_wxUSE_LIBXPM=yes
   DEFAULT_wxUSE_LIBMSPACK=yes
   DEFAULT_wxUSE_LIBSDL=no
-  DEFAULT_wxUSE_LIBGNOMEPRINT=no
+  DEFAULT_wxUSE_LIBGNOMEPRINT=yes
   DEFAULT_wxUSE_LIBGNOMEVFS=no
   DEFAULT_wxUSE_LIBHILDON=no
   DEFAULT_wxUSE_ODBC=no
   DEFAULT_wxUSE_LIBGNOMEVFS=no
   DEFAULT_wxUSE_LIBHILDON=no
   DEFAULT_wxUSE_ODBC=no
@@ -930,6 +932,7 @@ WX_ARG_ENABLE(no_rtti,       [  --enable-no_rtti        create code without RTTI
 WX_ARG_ENABLE(no_exceptions, [  --enable-no_exceptions  create code without C++ exceptions handling], wxUSE_NO_EXCEPTIONS)
 WX_ARG_ENABLE(permissive,    [  --enable-permissive     compile code disregarding strict ANSI], wxUSE_PERMISSIVE)
 WX_ARG_ENABLE(no_deps,       [  --enable-no_deps        create code without dependency information], wxUSE_NO_DEPS)
 WX_ARG_ENABLE(no_exceptions, [  --enable-no_exceptions  create code without C++ exceptions handling], wxUSE_NO_EXCEPTIONS)
 WX_ARG_ENABLE(permissive,    [  --enable-permissive     compile code disregarding strict ANSI], wxUSE_PERMISSIVE)
 WX_ARG_ENABLE(no_deps,       [  --enable-no_deps        create code without dependency information], wxUSE_NO_DEPS)
+WX_ARG_ENABLE(vararg_macros, [  --disable-vararg_macros don't use vararg macros, even if they are supported], wxUSE_VARARG_MACROS)
 WX_ARG_ENABLE_PARAM(universal_binary, [[  --enable-universal_binary[=SDK] create Mac PowerPC and Intel Universal binary (not yet working)]], wxUSE_UNIVERSAL_BINARY)
 
 WX_ARG_ENABLE(compat24,      [  --enable-compat24       enable wxWidgets 2.4 compatibility], WXWIN_COMPATIBILITY_2_4, enable)
 WX_ARG_ENABLE_PARAM(universal_binary, [[  --enable-universal_binary[=SDK] create Mac PowerPC and Intel Universal binary (not yet working)]], wxUSE_UNIVERSAL_BINARY)
 
 WX_ARG_ENABLE(compat24,      [  --enable-compat24       enable wxWidgets 2.4 compatibility], WXWIN_COMPATIBILITY_2_4, enable)
@@ -1199,7 +1202,7 @@ WX_ARG_ENABLE(filepicker,  [  --enable-filepicker     use wxFilePickerCtrl class
 WX_ARG_ENABLE(fontpicker,  [  --enable-fontpicker     use wxFontPickerCtrl class], wxUSE_FONTPICKERCTRL)
 WX_ARG_ENABLE(gauge,       [  --enable-gauge          use wxGauge class], wxUSE_GAUGE)
 WX_ARG_ENABLE(grid,        [  --enable-grid           use wxGrid class], wxUSE_GRID)
 WX_ARG_ENABLE(fontpicker,  [  --enable-fontpicker     use wxFontPickerCtrl class], wxUSE_FONTPICKERCTRL)
 WX_ARG_ENABLE(gauge,       [  --enable-gauge          use wxGauge class], wxUSE_GAUGE)
 WX_ARG_ENABLE(grid,        [  --enable-grid           use wxGrid class], wxUSE_GRID)
-WX_ARG_ENABLE(dataviewctrl,[  --enable-dataviewctrl,  use wxDataViewCtrl class], wxUSE_DATAVIEWCTRL)
+WX_ARG_ENABLE(dataviewctrl,[  --enable-dataviewctrl   use wxDataViewCtrl class], wxUSE_DATAVIEWCTRL)
 WX_ARG_ENABLE(hyperlink,   [  --enable-hyperlink      use wxHyperlinkCtrl class], wxUSE_HYPERLINKCTRL)
 WX_ARG_ENABLE(imaglist,    [  --enable-imaglist       use wxImageList class], wxUSE_IMAGLIST)
 WX_ARG_ENABLE(listbook,    [  --enable-listbook       use wxListbook class], wxUSE_LISTBOOK)
 WX_ARG_ENABLE(hyperlink,   [  --enable-hyperlink      use wxHyperlinkCtrl class], wxUSE_HYPERLINKCTRL)
 WX_ARG_ENABLE(imaglist,    [  --enable-imaglist       use wxImageList class], wxUSE_IMAGLIST)
 WX_ARG_ENABLE(listbook,    [  --enable-listbook       use wxListbook class], wxUSE_LISTBOOK)
@@ -1323,6 +1326,8 @@ if test "$wxUSE_WINE" = "yes"; then
     DEFAULT_DEFAULT_wxUSE_MOTIF=0
     DEFAULT_DEFAULT_wxUSE_MSW=1
     wxUSE_SHARED=no
     DEFAULT_DEFAULT_wxUSE_MOTIF=0
     DEFAULT_DEFAULT_wxUSE_MSW=1
     wxUSE_SHARED=no
+    CC=${CC:-winegcc}
+    CXX=${CXX:-wineg++}
 fi
 
 
 fi
 
 
@@ -1444,12 +1449,6 @@ dnl is -traditional needed for correct compilations
 dnl   adds -traditional for gcc if needed
 AC_PROG_GCC_TRADITIONAL
 
 dnl   adds -traditional for gcc if needed
 AC_PROG_GCC_TRADITIONAL
 
-dnl do all checks from now on using the C++ compiler: this saves us a lot of
-dnl problems with various functions which may be available in libc but not
-dnl declared in the header and various pointer conversions which compile with
-dnl the C compiler but not in C++
-AC_LANG_PUSH(C++)
-
 dnl C++-compiler checks
 dnl   defines CXX with the compiler to use
 dnl   defines GXX with yes if using gxx
 dnl C++-compiler checks
 dnl   defines CXX with the compiler to use
 dnl   defines GXX with yes if using gxx
@@ -1525,7 +1524,7 @@ dnl does make support "-include" (only GNU make does AFAIK)?
 AC_CACHE_CHECK([if make is GNU make], wx_cv_prog_makeisgnu,
 [
     if ( ${SHELL-sh} -c "${MAKE-make} --version" 2> /dev/null |
 AC_CACHE_CHECK([if make is GNU make], wx_cv_prog_makeisgnu,
 [
     if ( ${SHELL-sh} -c "${MAKE-make} --version" 2> /dev/null |
-            egrep -s GNU > /dev/null); then
+            $EGREP -s GNU > /dev/null); then
         wx_cv_prog_makeisgnu="yes"
     else
         wx_cv_prog_makeisgnu="no"
         wx_cv_prog_makeisgnu="yes"
     else
         wx_cv_prog_makeisgnu="no"
@@ -1676,9 +1675,6 @@ esac
 
 if test "$wxUSE_WINE" = "yes"; then
     wants_win32=1
 
 if test "$wxUSE_WINE" = "yes"; then
     wants_win32=1
-    dnl FIXME: we should do a better job of testing for these
-    CC=winegcc
-    CXX=wineg++
     LDFLAGS_GUI="-mwindows"
 fi
 
     LDFLAGS_GUI="-mwindows"
 fi
 
@@ -1715,7 +1711,6 @@ case "${host}" in
       dnl not "g++/c++".
       dnl ---------------------------------------------------------------------
       dnl (OS/2-only piece)
       dnl not "g++/c++".
       dnl ---------------------------------------------------------------------
       dnl (OS/2-only piece)
-      AC_LANG_PUSH(C)
       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).
       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).
@@ -1759,7 +1754,6 @@ case "${host}" in
               wx_cv_gccversion="EMX2"
           )
       ])
               wx_cv_gccversion="EMX2"
           )
       ])
-      AC_LANG_POP
       if test "$wx_cv_gccversion" = "EMX2"; then
           LIBS="$LIBS -lstdcpp"
           LDFLAGS="$LDFLAGS -Zsysv-signals"
       if test "$wx_cv_gccversion" = "EMX2"; then
           LIBS="$LIBS -lstdcpp"
           LDFLAGS="$LDFLAGS -Zsysv-signals"
@@ -1828,27 +1822,13 @@ dnl ------------------------------------------------------------------------
 dnl Check for headers
 dnl ------------------------------------------------------------------------
 
 dnl Check for headers
 dnl ------------------------------------------------------------------------
 
-dnl defines HAVE_STDLIB_H
-AC_CHECK_HEADERS(stdlib.h)
-dnl defines HAVE_MALLOC_H
-AC_CHECK_HEADERS(malloc.h)
-dnl defines HAVE_UNISTD_H
-AC_CHECK_HEADERS(unistd.h)
-dnl defines HAVE_WCHAR_H
-AC_CHECK_HEADERS(wchar.h)
+AC_CHECK_HEADERS(stdlib.h fnmatch.h langinfo.h malloc.h unistd.h wchar.h)
 
 dnl maybe wchar_t is in wcstr.h if we don't have wchar.h?
 if test "$ac_cv_header_wchar_h" != "yes"; then
 
 dnl maybe wchar_t is in wcstr.h if we don't have wchar.h?
 if test "$ac_cv_header_wchar_h" != "yes"; then
-    dnl defines HAVE_WCSTR_H
     AC_CHECK_HEADERS(wcstr.h)
 fi
 
     AC_CHECK_HEADERS(wcstr.h)
 fi
 
-dnl defines HAVE_FNMATCH_H
-AC_CHECK_HEADERS(fnmatch.h)
-
-dnl defines HAVE_LANGINFO_H (GNU libc locale parameters)
-AC_CHECK_HEADERS(langinfo.h)
-
 case "${host}" in
   *-pc-os2_emx | *-pc-os2-emx )
       dnl Explicitly link -lintl if langinfo.h is available
 case "${host}" in
   *-pc-os2_emx | *-pc-os2-emx )
       dnl Explicitly link -lintl if langinfo.h is available
@@ -1991,11 +1971,19 @@ else
     fi
 fi
 
     fi
 fi
 
+dnl don't check for vararg macros if they're explicitly disabled: this is
+dnl useful if the user code using the library wants to limit itself to standard
+dnl C++ only (e.g. is compiled with g++ -std=c++98)
+if test "$wxUSE_VARARG_MACROS" = "yes"; then
+
 dnl Check if variadic macros (C99 feature) are supported:
 AC_CACHE_CHECK(
     [whether the compiler supports variadic macros],
     [wx_cv_have_variadic_macros],
     [
 dnl Check if variadic macros (C99 feature) are supported:
 AC_CACHE_CHECK(
     [whether the compiler supports variadic macros],
     [wx_cv_have_variadic_macros],
     [
+        dnl C compiler might support variadic macros when C++ one doesn't
+        dnl (happens with gcc/g++ 2.95.4), so must use C++ one explicitly
+        AC_LANG_PUSH(C++)
         AC_COMPILE_IFELSE(
             AC_LANG_PROGRAM(
                 [
         AC_COMPILE_IFELSE(
             AC_LANG_PROGRAM(
                 [
@@ -2009,6 +1997,7 @@ AC_CACHE_CHECK(
             [wx_cv_have_variadic_macros=yes],
             [wx_cv_have_variadic_macros=no]
             )
             [wx_cv_have_variadic_macros=yes],
             [wx_cv_have_variadic_macros=no]
             )
+        AC_LANG_POP()
     ]
 )
 
     ]
 )
 
@@ -2016,6 +2005,8 @@ if test $wx_cv_have_variadic_macros = "yes"; then
     AC_DEFINE(HAVE_VARIADIC_MACROS)
 fi
 
     AC_DEFINE(HAVE_VARIADIC_MACROS)
 fi
 
+fi dnl wxUSE_VARARG_MACROS == yes
+
 dnl check for large file support
 AC_SYS_LARGEFILE
 
 dnl check for large file support
 AC_SYS_LARGEFILE
 
@@ -2039,6 +2030,7 @@ if test "x$wx_largefile" = "xyes"; then
                 [if -D__STDC_EXT__ is required],
                 wx_cv_STDC_EXT_required,
                 [
                 [if -D__STDC_EXT__ is required],
                 wx_cv_STDC_EXT_required,
                 [
+                    AC_LANG_PUSH(C++)
                     AC_TRY_COMPILE(
                         [],
                         [
                     AC_TRY_COMPILE(
                         [],
                         [
@@ -2049,6 +2041,7 @@ if test "x$wx_largefile" = "xyes"; then
                         wx_cv_STDC_EXT_required=no,
                         wx_cv_STDC_EXT_required=yes
                     )
                         wx_cv_STDC_EXT_required=no,
                         wx_cv_STDC_EXT_required=yes
                     )
+                    AC_LANG_POP()
                 ]
             )
             if test "x$wx_cv_STDC_EXT_required" = "xyes"; then
                 ]
             )
             if test "x$wx_cv_STDC_EXT_required" = "xyes"; then
@@ -2138,6 +2131,10 @@ if test "x$COMPAQCXX" = "xyes"; then
     CXXFLAGS="-w0 -msg_disable basclsnondto,unrimpret,intconlosbit"
 fi
 
     CXXFLAGS="-w0 -msg_disable basclsnondto,unrimpret,intconlosbit"
 fi
 
+dnl the next few tests are all for C++ features and so need to be done using
+dnl C++ compiler
+AC_LANG_PUSH(C++)
+
 dnl check for std::string or std::wstring
 if test "$wxUSE_STD_STRING" = "yes" -o "$wxUSE_STL" = "yes"; then
     if test "$wxUSE_UNICODE" = "yes"; then
 dnl check for std::string or std::wstring
 if test "$wxUSE_STD_STRING" = "yes" -o "$wxUSE_STL" = "yes"; then
     if test "$wxUSE_UNICODE" = "yes"; then
@@ -2148,42 +2145,60 @@ if test "$wxUSE_STD_STRING" = "yes" -o "$wxUSE_STL" = "yes"; then
         char_type="char"
     fi
 
         char_type="char"
     fi
 
-    dnl check if <string> declares std::wstring
-    AC_MSG_CHECKING([for $std_string in <string>])
-    AC_TRY_COMPILE([#include <string>],
-                   [$std_string foo;],
-                   [AC_MSG_RESULT(yes)
-                    AC_DEFINE(HAVE_STD_WSTRING)],
-                   [AC_MSG_RESULT(no)
-                    AC_MSG_CHECKING([if std::basic_string<$char_type> works])
-                    AC_TRY_COMPILE([
-                        #ifdef HAVE_WCHAR_H
-                        #  ifdef __CYGWIN__
-                        #    include <stddef.h>
-                        #  endif
-                        #  include <wchar.h>
-                        #endif
-                        #ifdef HAVE_STDLIB_H
-                        #  include <stdlib.h>
-                        #endif
-                        #include <stdio.h>
-                        #include <string>
-                        ],
-                        [std::basic_string<$char_type> foo;
-                         const $char_type* dummy = foo.c_str();],
-                        [AC_MSG_RESULT(yes)],
-                        [AC_MSG_RESULT([no])
-                         if test "$wxUSE_STL" = "yes"; then
-                             AC_MSG_ERROR([Can't use --enable-stl without $std_string or std::basic_string<$char_type>])
-                         elif grep wxUSE_STD_STRING $wx_arg_cache_file >/dev/null; then
-                             AC_MSG_ERROR([Can't use --enable-std_string without $std_string or std::basic_string<$char_type>])
-                         else
-                             AC_MSG_WARN([No $std_string or std::basic_string<$char_type>, switching to --disable-std_string])
-                             wxUSE_STD_STRING=no
-                         fi
-                        ]
-                    )
-                    ])
+    dnl check if <string> declares std::[w]string
+    AC_CACHE_CHECK([for $std_string in <string>],
+        wx_cv_class_stdstring,
+        [
+            AC_TRY_COMPILE([#include <string>],
+                [$std_string foo;],
+                wx_cv_class_stdstring=yes,
+                wx_cv_class_stdstring=no
+            )
+        ]
+    )
+
+    if test "$wx_cv_class_stdstring" = yes; then
+        if test "$wxUSE_UNICODE" = "yes"; then
+            AC_DEFINE(HAVE_STD_WSTRING)
+        fi
+        dnl we don't need HAVE_STD_STRING, we just suppose it's available if
+        dnl wxUSE_STD_STRING==yes
+    else
+        AC_CACHE_CHECK([if std::basic_string<$char_type> works],
+            wx_cv_class_stdbasicstring,
+            [
+                AC_TRY_COMPILE([
+                    #ifdef HAVE_WCHAR_H
+                    #  ifdef __CYGWIN__
+                    #    include <stddef.h>
+                    #  endif
+                    #  include <wchar.h>
+                    #endif
+                    #ifdef HAVE_STDLIB_H
+                    #  include <stdlib.h>
+                    #endif
+                    #include <stdio.h>
+                    #include <string>
+                    ],
+                    [std::basic_string<$char_type> foo;
+                     const $char_type* dummy = foo.c_str();],
+                    wx_cv_class_stdbasicstring=yes,
+                    wx_cv_class_stdbasicstring=no
+                )
+            ]
+        )
+
+        if test "$wx_cv_class_stdbasicstring" != yes; then
+            if test "$wxUSE_STL" = "yes"; then
+                AC_MSG_ERROR([Can't use --enable-stl without $std_string or std::basic_string<$char_type>])
+            elif grep wxUSE_STD_STRING $wx_arg_cache_file >/dev/null; then
+                AC_MSG_ERROR([Can't use --enable-std_string without $std_string or std::basic_string<$char_type>])
+            else
+                AC_MSG_WARN([No $std_string or std::basic_string<$char_type>, switching to --disable-std_string])
+                wxUSE_STD_STRING=no
+            fi
+        fi
+    fi
 fi
 
 if test "$wxUSE_STD_IOSTREAM" = "yes"; then
 fi
 
 if test "$wxUSE_STD_IOSTREAM" = "yes"; then
@@ -2202,61 +2217,88 @@ fi
 
 if test "$wxUSE_STL" = "yes"; then
     dnl check for basic STL functionality
 
 if test "$wxUSE_STL" = "yes"; then
     dnl check for basic STL functionality
-    AC_MSG_CHECKING([for basic STL functionality])
-    AC_TRY_COMPILE([#include <string>
-                    #include <functional>
-                    #include <algorithm>
-                    #include <vector>
-                    #include <list>],
-                    [std::vector<int> moo;
-                     std::list<int> foo;
-                     std::vector<int>::iterator it =
-                         std::find_if(moo.begin(), moo.end(),
-                                      std::bind2nd(std::less<int>(), 3));],
-                    [AC_MSG_RESULT([yes])],
-                    [AC_MSG_RESULT([no])
-                     AC_MSG_ERROR([Basic STL functionality missing])])
+    AC_CACHE_CHECK([for basic STL functionality],
+        wx_cv_lib_stl,
+        [AC_TRY_COMPILE([#include <string>
+            #include <functional>
+            #include <algorithm>
+            #include <vector>
+            #include <list>],
+            [std::vector<int> moo;
+             std::list<int> foo;
+             std::vector<int>::iterator it =
+                 std::find_if(moo.begin(), moo.end(),
+                              std::bind2nd(std::less<int>(), 3));],
+            wx_cv_lib_stl=yes,
+            wx_cv_lib_stl=no
+        )]
+    )
+
+    if test "$wx_cv_lib_stl" != yes; then
+         AC_MSG_ERROR([Can't use --enable-stl as basic STL functionality is missing])
+    fi
 
     dnl check for compliant std::string::compare
 
     dnl check for compliant std::string::compare
-    AC_MSG_CHECKING([for compliant std::string::compare])
-    AC_TRY_COMPILE([#include <string>],
-                   [std::string foo, bar;
-                    foo.compare(bar);
-                    foo.compare(1, 1, bar);
-                    foo.compare(1, 1, bar, 1, 1);
-                    foo.compare("");
-                    foo.compare(1, 1, "");
-                    foo.compare(1, 1, "", 2);],
-                   [AC_MSG_RESULT(yes)
-                    AC_DEFINE(HAVE_STD_STRING_COMPARE)],
-                   [AC_MSG_RESULT(no)])
+    AC_CACHE_CHECK([for compliant std::string::compare],
+        wx_cv_func_stdstring_compare,
+        [AC_TRY_COMPILE([#include <string>],
+            [std::string foo, bar;
+            foo.compare(bar);
+            foo.compare(1, 1, bar);
+            foo.compare(1, 1, bar, 1, 1);
+            foo.compare("");
+            foo.compare(1, 1, "");
+            foo.compare(1, 1, "", 2);],
+            wx_cv_func_stdstring_compare=yes,
+            wx_cv_func_stdstring_compare=no
+        )]
+    )
+
+    if test "$wx_cv_func_stdstring_compare" = yes; then
+        AC_DEFINE(HAVE_STD_STRING_COMPARE)
+    fi
 
     dnl check for hash_map and hash_set headers
     AC_CHECK_HEADER([hash_map],
 
     dnl check for hash_map and hash_set headers
     AC_CHECK_HEADER([hash_map],
-                    [AC_MSG_CHECKING([for hash_map and hash_set])
-                     AC_TRY_COMPILE([#include <hash_map>
-                                     #include <hash_set>],
-                                    [std::hash_map<double*, char*, std::hash<double*>, std::equal_to<double*> > test1;
-                                     std::hash_set<char*, std::hash<char*>, std::equal_to<char*> > test2;],
-                                    [AC_MSG_RESULT(yes)
-                                     AC_DEFINE(HAVE_HASH_MAP)
-                                     AC_DEFINE(HAVE_STD_HASH_MAP)],
-                                    [AC_MSG_RESULT(no)])
-                     ])
+        [AC_CACHE_CHECK([for standard hash_map and hash_set],
+            wx_cv_class_stdhashmapset,
+            [AC_TRY_COMPILE([#include <hash_map>
+                #include <hash_set>],
+                [std::hash_map<double*, char*, std::hash<double*>, std::equal_to<double*> > test1;
+                 std::hash_set<char*, std::hash<char*>, std::equal_to<char*> > test2;],
+                wx_cv_class_stdhashmapset=yes,
+                wx_cv_class_stdhashmapset=no)
+            ]
+        )]
+    )
+
+    if test "$wx_cv_class_stdhashmapset" = yes; then
+        AC_DEFINE(HAVE_HASH_MAP)
+        AC_DEFINE(HAVE_STD_HASH_MAP)
+    fi
 
     AC_CHECK_HEADER([ext/hash_map],
 
     AC_CHECK_HEADER([ext/hash_map],
-                    [AC_MSG_CHECKING([for hash_map and hash_set])
-                     AC_TRY_COMPILE([#include <ext/hash_map>
-                                     #include <ext/hash_set>],
-                                    [__gnu_cxx::hash_map<double*, char*, __gnu_cxx::hash<double*>, std::equal_to<double*> > test1;
-                                     __gnu_cxx::hash_set<char*, __gnu_cxx::hash<char*>, std::equal_to<char*> > test2;],
-                                    [AC_MSG_RESULT(yes)
-                                     AC_DEFINE(HAVE_EXT_HASH_MAP)
-                                     AC_DEFINE(HAVE_GNU_CXX_HASH_MAP)],
-                                    [AC_MSG_RESULT(no)])
-                     ])
+        [AC_CACHE_CHECK([for GNU hash_map and hash_set],
+            wx_cv_class_gnuhashmapset,
+            [AC_TRY_COMPILE([#include <ext/hash_map>
+                #include <ext/hash_set>],
+                [__gnu_cxx::hash_map<double*, char*, __gnu_cxx::hash<double*>, std::equal_to<double*> > test1;
+                 __gnu_cxx::hash_set<char*, __gnu_cxx::hash<char*>, std::equal_to<char*> > test2;],
+                wx_cv_class_gnuhashmapset=yes,
+                wx_cv_class_gnuhashmapset=no)
+            ]
+        )]
+    )
+
+    if test "$wx_cv_class_gnuhashmapset" = yes; then
+         AC_DEFINE(HAVE_EXT_HASH_MAP)
+         AC_DEFINE(HAVE_GNU_CXX_HASH_MAP)
+    fi
 fi
 
 fi
 
+dnl pop C++
+AC_LANG_POP()
+
 dnl ---------------------------------------------------------------------------
 dnl Define search path for includes and libraries: all headers and libs will be
 dnl looked for in all directories of this path
 dnl ---------------------------------------------------------------------------
 dnl Define search path for includes and libraries: all headers and libs will be
 dnl looked for in all directories of this path
@@ -2495,9 +2537,9 @@ fi
 dnl check for C99 string to long long conversion functions, assume that if we
 dnl have the unsigned variants, then we have the signed ones as well
 if test "wxUSE_UNICODE" = "yes"; then
 dnl check for C99 string to long long conversion functions, assume that if we
 dnl have the unsigned variants, then we have the signed ones as well
 if test "wxUSE_UNICODE" = "yes"; then
-    AC_CHECK_FUNCS(wcstoull)
+    WX_CHECK_FUNCS(wcstoull)
 else
 else
-    AC_CHECK_FUNCS(strtoull)
+    WX_CHECK_FUNCS(strtoull)
 fi
 
 dnl ---------------------------------------------------------------------------
 fi
 
 dnl ---------------------------------------------------------------------------
@@ -2746,6 +2788,30 @@ if test "$wxUSE_LIBJPEG" != "no" ; then
             else
                 dnl we are using the system library
                 wxUSE_LIBJPEG=sys
             else
                 dnl we are using the system library
                 wxUSE_LIBJPEG=sys
+
+                if test "$wxUSE_MSW" = 1; then
+                    dnl boolean is defined by the jpeg headers and also by the
+                    dnl Windows headers of some compilers. This type has been
+                    dnl renamed in the builtin, so it is only an issue when
+                    dnl using an external jpeg lib on Windows.
+                    AC_CHECK_TYPES(
+                        [boolean],
+                        [
+                            AC_CHECK_SIZEOF(
+                                [boolean],
+                                [],
+                                [
+                                    #undef HAVE_BOOLEAN
+                                    #include <stdio.h>
+                                    #include <jpeglib.h>
+                                ])
+                            AC_DEFINE_UNQUOTED(
+                                [wxHACK_BOOLEAN],
+                                [wxInt`expr 8 \* $ac_cv_sizeof_boolean`])
+                        ],
+                        [],
+                        [#include <windows.h>])
+                fi
             fi
         fi
     fi
             fi
         fi
     fi
@@ -2819,10 +2885,12 @@ if test "$wxUSE_EXPAT" != "no"; then
             AC_CACHE_CHECK([if expat.h is valid C++ header],
                 wx_cv_expat_is_not_broken,
                 [
             AC_CACHE_CHECK([if expat.h is valid C++ header],
                 wx_cv_expat_is_not_broken,
                 [
+                AC_LANG_PUSH(C++)
                 AC_TRY_COMPILE([#include <expat.h>],[],
                     wx_cv_expat_is_not_broken=yes,
                     wx_cv_expat_is_not_broken=no
                 )
                 AC_TRY_COMPILE([#include <expat.h>],[],
                     wx_cv_expat_is_not_broken=yes,
                     wx_cv_expat_is_not_broken=no
                 )
+                AC_LANG_POP()
                 ]
             )
             if test "$wx_cv_expat_is_not_broken" = "yes" ; then
                 ]
             )
             if test "$wx_cv_expat_is_not_broken" = "yes" ; then
@@ -2924,12 +2992,6 @@ if test "$USE_WIN32" = 1 ; then
     dnl install Win32-specific files in "make install"
     WIN32INSTALL=win32install
 
     dnl install Win32-specific files in "make install"
     WIN32INSTALL=win32install
 
-    dnl the jpeg header jmorecfg.h delcares the type boolean, which conflicts
-    dnl on systems which declare it in the system headers. If HAVE_BOOLEAN is
-    dnl defined then jmorecfg.h doesn't declare it, so checking for it here
-    dnl solves the problem.
-    AC_CHECK_TYPES(boolean, [], [], [#include <windows.h>])
-
     dnl pbt.h is missing on Wine at least
     AC_CHECK_HEADERS(pbt.h, [], [AC_DEFINE(NEED_PBT_H)])
 fi
     dnl pbt.h is missing on Wine at least
     AC_CHECK_HEADERS(pbt.h, [], [AC_DEFINE(NEED_PBT_H)])
 fi
@@ -2972,8 +3034,6 @@ if test "$wxUSE_GUI" = "yes"; then
 
     if test "$wxUSE_GTK" = 1; then
         dnl GTK+ test program must be compiled with C compiler
 
     if test "$wxUSE_GTK" = 1; then
         dnl GTK+ test program must be compiled with C compiler
-        AC_LANG_PUSH(C)
-
         AC_MSG_CHECKING([for GTK+ version])
 
         gtk_version_cached=1
         AC_MSG_CHECKING([for GTK+ version])
 
         gtk_version_cached=1
@@ -3137,8 +3197,6 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
             AC_CHECK_LIB(gdk, gdk_im_open, AC_DEFINE(HAVE_XIM))
         fi
 
             AC_CHECK_LIB(gdk, gdk_im_open, AC_DEFINE(HAVE_XIM))
         fi
 
-        AC_LANG_POP
-
         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
         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
@@ -3251,7 +3309,7 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
        PKG_PROG_PKG_CONFIG()
 
        PKG_CHECK_MODULES(DIRECTFB,
        PKG_PROG_PKG_CONFIG()
 
        PKG_CHECK_MODULES(DIRECTFB,
-                         [directfb >= 0.9.22],
+                         [directfb >= 0.9.23],
                          [
                            wxUSE_UNIVERSAL="yes"
                            TOOLKIT_INCLUDE="$DIRECTFB_CFLAGS"
                          [
                            wxUSE_UNIVERSAL="yes"
                            TOOLKIT_INCLUDE="$DIRECTFB_CFLAGS"
@@ -3330,6 +3388,7 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
 
             PKG_CHECK_MODULES(PANGOX, pangox,
                 [
 
             PKG_CHECK_MODULES(PANGOX, pangox,
                 [
+                    CFLAGS="$PANGOX_CFLAGS $CFLAGS"
                     CXXFLAGS="$PANGOX_CFLAGS $CXXFLAGS"
                     GUI_TK_LIBRARY="$GUI_TK_LIBRARY $PANGOX_LIBS"
                 ],
                     CXXFLAGS="$PANGOX_CFLAGS $CXXFLAGS"
                     GUI_TK_LIBRARY="$GUI_TK_LIBRARY $PANGOX_LIBS"
                 ],
@@ -3339,6 +3398,7 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
             )
             PKG_CHECK_MODULES(PANGOFT2, pangoft2,
                 [
             )
             PKG_CHECK_MODULES(PANGOFT2, pangoft2,
                 [
+                    CFLAGS="$PANGOFT2_CFLAGS $CFLAGS"
                     CXXFLAGS="$PANGOFT2_CFLAGS $CXXFLAGS"
                     GUI_TK_LIBRARY="$GUI_TK_LIBRARY $PANGOFT2_LIBS"
                 ],
                     CXXFLAGS="$PANGOFT2_CFLAGS $CXXFLAGS"
                     GUI_TK_LIBRARY="$GUI_TK_LIBRARY $PANGOFT2_LIBS"
                 ],
@@ -3350,6 +3410,7 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
             PKG_CHECK_MODULES(PANGOXFT, pangoxft,
                 [
                     AC_DEFINE(HAVE_PANGO_XFT)
             PKG_CHECK_MODULES(PANGOXFT, pangoxft,
                 [
                     AC_DEFINE(HAVE_PANGO_XFT)
+                    CFLAGS="$PANGOXFT_CFLAGS $CFLAGS"
                     CXXFLAGS="$PANGOXFT_CFLAGS $CXXFLAGS"
                     GUI_TK_LIBRARY="$GUI_TK_LIBRARY $PANGOXFT_LIBS"
                 ],
                     CXXFLAGS="$PANGOXFT_CFLAGS $CXXFLAGS"
                     GUI_TK_LIBRARY="$GUI_TK_LIBRARY $PANGOXFT_LIBS"
                 ],
@@ -3357,12 +3418,9 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
                     AC_MSG_WARN([pangoxft library not found, library will be compiled without anti-aliasing support])
                 ]
             )
                     AC_MSG_WARN([pangoxft library not found, library will be compiled without anti-aliasing support])
                 ]
             )
-            save_CXXFLAGS="$CXXFLAGS"
             save_LIBS="$LIBS"
             save_LIBS="$LIBS"
-            CXXFLAGS="$PANGOX_CFLAGS $CXXFLAGS"
             LIBS="$LIBS $PANGOX_LIBS"
             AC_CHECK_FUNCS([pango_font_family_is_monospace])
             LIBS="$LIBS $PANGOX_LIBS"
             AC_CHECK_FUNCS([pango_font_family_is_monospace])
-            CXXFLAGS="$save_CXXFLAGS"
             LIBS="$save_LIBS"
         fi
 
             LIBS="$save_LIBS"
         fi
 
@@ -3392,8 +3450,8 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
             WX_INCLUDE_PATH_EXIST($ac_find_includes, $TOOLKIT_INCLUDE)
             TOOLKIT_INCLUDE="$TOOLKIT_INCLUDE$ac_path_to_include"
         else
             WX_INCLUDE_PATH_EXIST($ac_find_includes, $TOOLKIT_INCLUDE)
             TOOLKIT_INCLUDE="$TOOLKIT_INCLUDE$ac_path_to_include"
         else
-            save_CXXFLAGS=$CXXFLAGS
-            CXXFLAGS="$TOOLKIT_INCLUDE $CXXFLAGS"
+            save_CFLAGS=$CFLAGS
+            CFLAGS="$TOOLKIT_INCLUDE $CFLAGS"
 
             AC_TRY_COMPILE(
                 [
 
             AC_TRY_COMPILE(
                 [
@@ -3413,7 +3471,7 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
                 ]
             )
 
                 ]
             )
 
-            CXXFLAGS=$save_CXXFLAGS
+            CFLAGS=$save_CFLAGS
         fi
 
 
         fi
 
 
@@ -3429,8 +3487,8 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
             dnl it might happen that we found headers in one of the standard
             dnl paths but the libs are elsewhere but still in default (linker)
             dnl path -- try to compile a test program to check for this
             dnl it might happen that we found headers in one of the standard
             dnl paths but the libs are elsewhere but still in default (linker)
             dnl path -- try to compile a test program to check for this
-            save_CXXFLAGS=$CXXFLAGS
-            CXXFLAGS="$TOOLKIT_INCLUDE $CXXFLAGS"
+            save_CFLAGS=$CFLAGS
+            CFLAGS="$TOOLKIT_INCLUDE $CFLAGS"
             save_LIBS="$LIBS"
             LIBS="$GUI_TK_LIBRARY -lXm -lXmu -lXext -lX11"
 
             save_LIBS="$LIBS"
             LIBS="$GUI_TK_LIBRARY -lXm -lXmu -lXext -lX11"
 
@@ -3452,7 +3510,7 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
                 ]
             )
 
                 ]
             )
 
-            CXXFLAGS=$save_CXXFLAGS
+            CFLAGS=$save_CFLAGS
             LIBS="$save_LIBS"
         fi
 
             LIBS="$save_LIBS"
         fi
 
@@ -3466,8 +3524,8 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
                     if test "$libs_found" = "0"; then
                         save_LIBS="$LIBS"
                         LIBS="$GUI_TK_LIBRARY -lXm ${libp} -lXmu -lXext -lXt${libsm_ice} -lX11"
                     if test "$libs_found" = "0"; then
                         save_LIBS="$LIBS"
                         LIBS="$GUI_TK_LIBRARY -lXm ${libp} -lXmu -lXext -lXt${libsm_ice} -lX11"
-                        save_CXXFLAGS=$CXXFLAGS
-                        CXXFLAGS="$TOOLKIT_INCLUDE $CXXFLAGS"
+                        save_CFLAGS=$CFLAGS
+                        CFLAGS="$TOOLKIT_INCLUDE $CFLAGS"
 
                         AC_TRY_LINK(
                             [
 
                         AC_TRY_LINK(
                             [
@@ -3490,7 +3548,7 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
                         )
 
                         LIBS="$save_LIBS"
                         )
 
                         LIBS="$save_LIBS"
-                        CXXFLAGS=$save_CXXFLAGS
+                        CFLAGS=$save_CFLAGS
                     fi
                 done
             fi
                     fi
                 done
             fi
@@ -3505,8 +3563,8 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
         dnl elsewhere
         AC_CHECK_LIB(Sgm, [SgCreateList], [libsgm_link=" -lSgm"])
 
         dnl elsewhere
         AC_CHECK_LIB(Sgm, [SgCreateList], [libsgm_link=" -lSgm"])
 
-        save_CXXFLAGS=$CXXFLAGS
-        CXXFLAGS="$TOOLKIT_INCLUDE $CXXFLAGS"
+        save_CFLAGS=$CFLAGS
+        CFLAGS="$TOOLKIT_INCLUDE $CFLAGS"
 
         AC_CACHE_CHECK([for Motif 2],
             wx_cv_lib_motif2,
 
         AC_CACHE_CHECK([for Motif 2],
             wx_cv_lib_motif2,
@@ -3545,7 +3603,7 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
             AC_DEFINE(__WXLESSTIF__,0)
         fi
 
             AC_DEFINE(__WXLESSTIF__,0)
         fi
 
-        CXXFLAGS=$save_CXXFLAGS
+        CFLAGS=$save_CFLAGS
 
         GUI_TK_LIBRARY="$GUI_TK_LIBRARY${libsgm_link} -lXm${libp_link} -lXmu -lXext -lXt${libsm_ice_link} -lX11"
         TOOLKIT=MOTIF
 
         GUI_TK_LIBRARY="$GUI_TK_LIBRARY${libsgm_link} -lXm${libp_link} -lXmu -lXext -lXt${libsm_ice_link} -lX11"
         TOOLKIT=MOTIF
@@ -3566,8 +3624,8 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
                 AC_CACHE_CHECK([for X11/xpm.h],
                     wx_cv_x11_xpm_h,
                     [
                 AC_CACHE_CHECK([for X11/xpm.h],
                     wx_cv_x11_xpm_h,
                     [
-                        save_CXXFLAGS=$CXXFLAGS
-                        CXXFLAGS="$TOOLKIT_INCLUDE $CXXFLAGS"
+                        save_CFLAGS=$CFLAGS
+                        CFLAGS="$TOOLKIT_INCLUDE $CFLAGS"
 
                         AC_TRY_COMPILE(
                             [
 
                         AC_TRY_COMPILE(
                             [
@@ -3581,7 +3639,7 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
                             wx_cv_x11_xpm_h=no
                         )
 
                             wx_cv_x11_xpm_h=no
                         )
 
-                        CXXFLAGS=$save_CXXFLAGS
+                        CFLAGS=$save_CFLAGS
                     ]
                 )
 
                     ]
                 )
 
@@ -3604,8 +3662,8 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
                      [], [$GUI_TK_LIBRARY -lX11])
 
         if test "$wxHAVE_XEXT_LIB" = 1; then
                      [], [$GUI_TK_LIBRARY -lX11])
 
         if test "$wxHAVE_XEXT_LIB" = 1; then
-            save_CXXFLAGS="$CXXFLAGS"
-            CXXFLAGS="$TOOLKIT_INCLUDE $CXXFLAGS"
+            save_CFLAGS="$CFLAGS"
+            CFLAGS="$TOOLKIT_INCLUDE $CFLAGS"
 
             AC_MSG_CHECKING([for X11/extensions/shape.h])
             AC_TRY_COMPILE([
 
             AC_MSG_CHECKING([for X11/extensions/shape.h])
             AC_TRY_COMPILE([
@@ -3624,7 +3682,7 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
                            [
                             AC_MSG_RESULT([not found])
                            ])
                            [
                             AC_MSG_RESULT([not found])
                            ])
-            CXXFLAGS="$save_CXXFLAGS"
+            CFLAGS="$save_CFLAGS"
 
         fi
     fi
 
         fi
     fi
@@ -3870,7 +3928,10 @@ dnl ---------------------------------------------------------------------------
 
 USE_OPENGL=0
 if test "$wxUSE_OPENGL" = "yes"; then
 
 USE_OPENGL=0
 if test "$wxUSE_OPENGL" = "yes"; then
-    if test "$wxUSE_MAC" = 1 -o "$wxUSE_COCOA" = "1"; then
+    if test "$wxUSE_MGL" = 1 -o "$wxUSE_DFB" = "1"; then
+        AC_MSG_WARN([wxGLCanvas not implemented for this port, library will be compiled without it.])
+        wxUSE_OPENGL="no"
+    elif test "$wxUSE_MAC" = 1 -o "$wxUSE_COCOA" = "1"; then
         OPENGL_LIBS="-framework OpenGL -framework AGL"
     elif test "$wxUSE_MSW" = 1; then
         OPENGL_LIBS="-lopengl32 -lglu32"
         OPENGL_LIBS="-framework OpenGL -framework AGL"
     elif test "$wxUSE_MSW" = 1; then
         OPENGL_LIBS="-lopengl32 -lglu32"
@@ -4211,6 +4272,7 @@ AC_CHECK_TYPES(ssize_t)
 
 dnl check what exactly size_t is on this machine - this is necessary to avoid
 dnl ambiguous overloads in several places, notably wx/string.h and wx/array.h
 
 dnl check what exactly size_t is on this machine - this is necessary to avoid
 dnl ambiguous overloads in several places, notably wx/string.h and wx/array.h
+AC_LANG_PUSH(C++) dnl tests below use overloaded functions and so need C++
 AC_CACHE_CHECK([if size_t is unsigned int],
     wx_cv_size_t_is_uint,
     [
 AC_CACHE_CHECK([if size_t is unsigned int],
     wx_cv_size_t_is_uint,
     [
@@ -4257,6 +4319,8 @@ else
     fi
 fi
 
     fi
 fi
 
+AC_LANG_POP() dnl C++
+
 dnl ---------------------------------------------------------------------------
 dnl Checks for structures
 dnl ---------------------------------------------------------------------------
 dnl ---------------------------------------------------------------------------
 dnl Checks for structures
 dnl ---------------------------------------------------------------------------
@@ -4339,6 +4403,8 @@ dnl stupidly, provides a dummy function declaration inside its extension)
 dnl succeeds, even with C++ compiler, but the compilation of wxWidgets fails
 dnl
 dnl so we first check if the function is in the library
 dnl succeeds, even with C++ compiler, but the compilation of wxWidgets fails
 dnl
 dnl so we first check if the function is in the library
+dnl
+dnl FIXME: replace this mess with WX_CHECK_FUNCS()
 AC_CHECK_FUNCS(snprintf vsnprintf)
 
 if test "$ac_cv_func_vsnprintf" = "yes"; then
 AC_CHECK_FUNCS(snprintf vsnprintf)
 
 if test "$ac_cv_func_vsnprintf" = "yes"; then
@@ -4540,8 +4606,21 @@ if test "$wxUSE_UNICODE" = yes; then
         fi
     fi
 
         fi
     fi
 
-    dnl also look if we have wide char IO functions
-    AC_CHECK_FUNCS(wputc wputchar putws fputws wprintf vswprintf)
+    dnl also look if we have wide char IO functions, notice that [f]putws are
+    dnl declared in special widec.h under Solaris
+    wchar_headers="#include <stdio.h>
+#include <wchar.h>"
+    case "${host}" in
+        *-*-solaris2* )
+            AC_CHECK_HEADERS(widec.h)
+            if test "$ac_cv_header_widec_h" = "yes"; then
+                wchar_headers="$wchar_headers
+#include <widec.h>"
+            fi
+    esac
+
+    WX_CHECK_FUNCS(wputc wputchar putws fputws wprintf vswprintf,,,
+                   [$wchar_headers])
 
     dnl MinGW has a vswprintf with a different prototype, and
     dnl a _vsnwprintf with the correct prototype, but AC_CHECK_FUNCS
 
     dnl MinGW has a vswprintf with a different prototype, and
     dnl a _vsnwprintf with the correct prototype, but AC_CHECK_FUNCS
@@ -4555,18 +4634,14 @@ if test "$wxUSE_UNICODE" = yes; then
 fi
 
 if test "x$ac_cv_header_fnmatch_h" = "xyes"; then
 fi
 
 if test "x$ac_cv_header_fnmatch_h" = "xyes"; then
-    AC_CHECK_FUNCS(fnmatch)
+    WX_CHECK_FUNCS(fnmatch,,,[#include <fnmatch.h>])
 fi
 
 if test "$wxUSE_FILE" = "yes"; then
 fi
 
 if test "$wxUSE_FILE" = "yes"; then
-    AC_CHECK_FUNCS(fsync)
-fi
-
-AC_CHECK_FUNCS(round)
-if test "$ac_cv_func_round" = yes; then
-    AC_CHECK_DECLS(round,,,[#include <math.h>])
+    WX_CHECK_FUNCS(fsync)
 fi
 
 fi
 
+WX_CHECK_FUNCS(round,,,[#include <math.h>])
 
 dnl the following tests are for Unix(like) systems only
 if test "$TOOLKIT" != "MSW"; then
 
 dnl the following tests are for Unix(like) systems only
 if test "$TOOLKIT" != "MSW"; then
@@ -4588,6 +4663,8 @@ if test "$wxUSE_ON_FATAL_EXCEPTION" = "yes" -a "$wxUSE_UNIX" = "yes"; then
     if test "$wxUSE_ON_FATAL_EXCEPTION" = "yes"; then
       AC_CACHE_CHECK([for sa_handler type], wx_cv_type_sa_handler,
       [
     if test "$wxUSE_ON_FATAL_EXCEPTION" = "yes"; then
       AC_CACHE_CHECK([for sa_handler type], wx_cv_type_sa_handler,
       [
+        dnl C compiler happily compiles the code even if there is type mismatch
+        AC_LANG_PUSH(C++)
         AC_TRY_COMPILE([#include <signal.h>],
                      [
                         extern void testSigHandler(int);
         AC_TRY_COMPILE([#include <signal.h>],
                      [
                         extern void testSigHandler(int);
@@ -4599,6 +4676,7 @@ if test "$wxUSE_ON_FATAL_EXCEPTION" = "yes" -a "$wxUSE_UNIX" = "yes"; then
                      ], [
                         wx_cv_type_sa_handler=void
                      ])
                      ], [
                         wx_cv_type_sa_handler=void
                      ])
+        AC_LANG_POP()
       ])
 
       AC_DEFINE_UNQUOTED(wxTYPE_SA_HANDLER, $wx_cv_type_sa_handler)
       ])
 
       AC_DEFINE_UNQUOTED(wxTYPE_SA_HANDLER, $wx_cv_type_sa_handler)
@@ -4609,6 +4687,7 @@ dnl backtrace() and backtrace_symbols() for wxStackWalker
 if test "$wxUSE_STACKWALKER" = "yes" -a "$wxUSE_UNIX" = "yes"; then
     AC_CACHE_CHECK([for backtrace() in <execinfo.h>], wx_cv_func_backtrace,
         [
 if test "$wxUSE_STACKWALKER" = "yes" -a "$wxUSE_UNIX" = "yes"; then
     AC_CACHE_CHECK([for backtrace() in <execinfo.h>], wx_cv_func_backtrace,
         [
+            AC_LANG_PUSH(C++)
             AC_TRY_COMPILE([#include <execinfo.h>],
                 [
                     void *trace[1];
             AC_TRY_COMPILE([#include <execinfo.h>],
                 [
                     void *trace[1];
@@ -4620,6 +4699,7 @@ if test "$wxUSE_STACKWALKER" = "yes" -a "$wxUSE_UNIX" = "yes"; then
                 wx_cv_func_backtrace=yes,
                 wx_cv_func_backtrace=no
             )
                 wx_cv_func_backtrace=yes,
                 wx_cv_func_backtrace=no
             )
+            AC_LANG_POP()
         ]
     )
 
         ]
     )
 
@@ -4630,6 +4710,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,
             [
     else
         AC_CACHE_CHECK([for __cxa_demangle() in <cxxabi.h>], wx_cv_func_cxa_demangle,
             [
+                AC_LANG_PUSH(C++)
                 AC_TRY_LINK([#include <cxxabi.h>],
                     [
                         int rc;
                 AC_TRY_LINK([#include <cxxabi.h>],
                     [
                         int rc;
@@ -4638,6 +4719,7 @@ if test "$wxUSE_STACKWALKER" = "yes" -a "$wxUSE_UNIX" = "yes"; then
                     wx_cv_func_cxa_demangle=yes,
                     wx_cv_func_cxa_demangle=no
                 )
                     wx_cv_func_cxa_demangle=yes,
                     wx_cv_func_cxa_demangle=no
                 )
+                AC_LANG_POP()
             ]
         )
 
             ]
         )
 
@@ -4684,6 +4766,7 @@ AC_CACHE_CHECK(for statfs, wx_cv_func_statfs,
 if test "$wx_cv_func_statfs" = "yes"; then
     dnl check whether we have its dcelaration too: some systems (AIX 4) lack it
     AC_CACHE_CHECK(for statfs declaration, wx_cv_func_statfs_decl,
 if test "$wx_cv_func_statfs" = "yes"; then
     dnl check whether we have its dcelaration too: some systems (AIX 4) lack it
     AC_CACHE_CHECK(for statfs declaration, wx_cv_func_statfs_decl,
+        AC_LANG_PUSH(C++)
         AC_TRY_COMPILE(
             [
                  #if defined(__BSD__)
         AC_TRY_COMPILE(
             [
                  #if defined(__BSD__)
@@ -4700,6 +4783,7 @@ if test "$wx_cv_func_statfs" = "yes"; then
             wx_cv_func_statfs_decl=yes,
             wx_cv_func_statfs_decl=no
         )
             wx_cv_func_statfs_decl=yes,
             wx_cv_func_statfs_decl=no
         )
+        AC_LANG_POP()
     )
 
     if test "$wx_cv_func_statfs_decl" = "yes"; then
     )
 
     if test "$wx_cv_func_statfs_decl" = "yes"; then
@@ -4732,6 +4816,7 @@ else
         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_CACHE_CHECK(for statvfs argument type, wx_cv_type_statvfs_t,
         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_CACHE_CHECK(for statvfs argument type, wx_cv_type_statvfs_t,
+            AC_LANG_PUSH(C++)
             AC_TRY_COMPILE(
                 [
                     #include <sys/statvfs.h>
             AC_TRY_COMPILE(
                 [
                     #include <sys/statvfs.h>
@@ -4763,6 +4848,7 @@ else
                     )
                 ]
             )
                     )
                 ]
             )
+            AC_LANG_POP()
         )
 
         if test "$wx_cv_type_statvfs_t" != "unknown"; then
         )
 
         if test "$wx_cv_type_statvfs_t" != "unknown"; then
@@ -4824,9 +4910,8 @@ if test "$HAVE_SOME_SLEEP_FUNC" != 1; then
                     POSIX4_LINK=" -lposix4"
                 ],
                 [
                     POSIX4_LINK=" -lposix4"
                 ],
                 [
-                    AC_CHECK_FUNCS(usleep,
-                        AC_DEFINE(HAVE_USLEEP),
-                        AC_MSG_WARN([wxSleep() function will not work])
+                    WX_CHECK_FUNCS(usleep,,
+                                    AC_MSG_WARN([wxSleep() function will not work])
                     )
                 ]
             )
                     )
                 ]
             )
@@ -4835,7 +4920,10 @@ if test "$HAVE_SOME_SLEEP_FUNC" != 1; then
 fi
 
 dnl check for uname (POSIX) and gethostname (BSD)
 fi
 
 dnl check for uname (POSIX) and gethostname (BSD)
-AC_CHECK_FUNCS(uname gethostname, break)
+WX_CHECK_FUNCS(uname,,,[#include <sys/utsname.h>])
+if test "$wx_cv_func_uname" != yes; then
+    WX_CHECK_FUNCS(gethostname)  
+fi
 
 WX_CHECK_FUNCS(strtok_r, [], [], [#define _REENTRANT])
 
 
 WX_CHECK_FUNCS(strtok_r, [], [], [#define _REENTRANT])
 
@@ -4924,14 +5012,14 @@ if test "$TOOLKIT" != "MSW" -a "$USE_OS2" != 1; then
 
     dnl the code below:
     dnl
 
     dnl the code below:
     dnl
-    dnl   defines THREADS_LINK and THREADS_CXXFLAGS which are the options
+    dnl   defines THREADS_LINK and THREADS_CFLAGS which are the options
     dnl   necessary to build the MT programs for the linker and compiler
     dnl   respectively
     dnl
     dnl   sets wxUSE_THREADS=1 if thread support is activated
 
     THREADS_LINK=
     dnl   necessary to build the MT programs for the linker and compiler
     dnl   respectively
     dnl
     dnl   sets wxUSE_THREADS=1 if thread support is activated
 
     THREADS_LINK=
-    THREADS_CXXFLAGS=
+    THREADS_CFLAGS=
 
     if test "$wxUSE_THREADS" = "yes" ; then
         if test "$USE_BEOS" = 1; then
 
     if test "$wxUSE_THREADS" = "yes" ; then
         if test "$USE_BEOS" = 1; then
@@ -5022,7 +5110,7 @@ if test "$TOOLKIT" != "MSW" -a "$USE_OS2" != 1; then
 
                 -*)
                     AC_MSG_CHECKING([whether pthreads work with $flag])
 
                 -*)
                     AC_MSG_CHECKING([whether pthreads work with $flag])
-                    THREADS_CXXFLAGS="$flag"
+                    THREADS_CFLAGS="$flag"
                     ;;
 
                 *)
                     ;;
 
                 *)
@@ -5032,16 +5120,16 @@ if test "$TOOLKIT" != "MSW" -a "$USE_OS2" != 1; then
               esac
 
               save_LIBS="$LIBS"
               esac
 
               save_LIBS="$LIBS"
-              save_CXXFLAGS="$CXXFLAGS"
+              save_CFLAGS="$CFLAGS"
               LIBS="$THREADS_LINK $LIBS"
               LIBS="$THREADS_LINK $LIBS"
-              CXXFLAGS="$THREADS_CXXFLAGS $CXXFLAGS"
+              CFLAGS="$THREADS_CFLAGS $CFLAGS"
 
               AC_TRY_LINK([#include <pthread.h>],
                           [pthread_create(0,0,0,0);],
                           THREADS_OK=yes)
 
               LIBS="$save_LIBS"
 
               AC_TRY_LINK([#include <pthread.h>],
                           [pthread_create(0,0,0,0);],
                           THREADS_OK=yes)
 
               LIBS="$save_LIBS"
-              CXXFLAGS="$save_CXXFLAGS"
+              CFLAGS="$save_CFLAGS"
 
               AC_MSG_RESULT($THREADS_OK)
               if test "x$THREADS_OK" = "xyes"; then
 
               AC_MSG_RESULT($THREADS_OK)
               if test "x$THREADS_OK" = "xyes"; then
@@ -5049,7 +5137,7 @@ if test "$TOOLKIT" != "MSW" -a "$USE_OS2" != 1; then
               fi
 
               THREADS_LINK=""
               fi
 
               THREADS_LINK=""
-              THREADS_CXXFLAGS=""
+              THREADS_CFLAGS=""
       done
 
       if test "x$THREADS_OK" != "xyes"; then
       done
 
       if test "x$THREADS_OK" != "xyes"; then
@@ -5058,7 +5146,7 @@ if test "$TOOLKIT" != "MSW" -a "$USE_OS2" != 1; then
       else
           dnl yes, these special compiler flags should be used with the
           dnl linker as well
       else
           dnl yes, these special compiler flags should be used with the
           dnl linker as well
-          LDFLAGS="$THREADS_CXXFLAGS $LDFLAGS"
+          LDFLAGS="$THREADS_CFLAGS $LDFLAGS"
           LIBS="$THREADS_LINK $LIBS"
 
           AC_MSG_CHECKING([if more special flags are required for pthreads])
           LIBS="$THREADS_LINK $LIBS"
 
           AC_MSG_CHECKING([if more special flags are required for pthreads])
@@ -5090,11 +5178,11 @@ if test "$TOOLKIT" != "MSW" -a "$USE_OS2" != 1; then
           esac
           AC_MSG_RESULT(${flag})
           if test "x$flag" != xno; then
           esac
           AC_MSG_RESULT(${flag})
           if test "x$flag" != xno; then
-              THREADS_CXXFLAGS="$THREADS_CXXFLAGS $flag"
+              THREADS_CFLAGS="$THREADS_CFLAGS $flag"
           fi
 
           dnl don't add these options to CPPFLAGS as cpp might not know them
           fi
 
           dnl don't add these options to CPPFLAGS as cpp might not know them
-          WXCONFIG_CXXFLAGS="$WXCONFIG_CXXFLAGS $THREADS_CXXFLAGS"
+          WXCONFIG_CFLAGS="$WXCONFIG_CFLAGS $THREADS_CFLAGS"
       fi
     fi
 
       fi
     fi
 
@@ -5245,8 +5333,8 @@ else
             AC_CACHE_CHECK([if compiler supports -mthreads],
                 wx_cv_cflags_mthread,
                 [
             AC_CACHE_CHECK([if compiler supports -mthreads],
                 wx_cv_cflags_mthread,
                 [
-                    CXXFLAGS_OLD="$CXXFLAGS"
-                    CXXFLAGS="-mthreads $CXXFLAGS"
+                    CFLAGS_OLD="$CFLAGS"
+                    CFLAGS="-mthreads $CFLAGS"
                     AC_TRY_COMPILE([], [],
                         wx_cv_cflags_mthread=yes,
                         wx_cv_cflags_mthread=no
                     AC_TRY_COMPILE([], [],
                         wx_cv_cflags_mthread=yes,
                         wx_cv_cflags_mthread=no
@@ -5256,16 +5344,15 @@ else
 
             if test "$wx_cv_cflags_mthread" = "yes"; then
                 dnl it does, use it
 
             if test "$wx_cv_cflags_mthread" = "yes"; then
                 dnl it does, use it
-                WXCONFIG_CXXFLAGS="$WXCONFIG_CXXFLAGS -mthreads"
+                WXCONFIG_CFLAGS="$WXCONFIG_CFLAGS -mthreads"
                 LDFLAGS="$LDFLAGS -mthreads"
             else
                 dnl it doesn't
                 LDFLAGS="$LDFLAGS -mthreads"
             else
                 dnl it doesn't
-                CXXFLAGS="$CXXFLAGS_OLD"
+                CFLAGS="$CFLAGS_OLD"
             fi
         ;;
         *-pc-os2*emx )
             WXCONFIG_CFLAGS="$WXCONFIG_CFLAGS -Zmt -D__ST_MT_ERRNO__"
             fi
         ;;
         *-pc-os2*emx )
             WXCONFIG_CFLAGS="$WXCONFIG_CFLAGS -Zmt -D__ST_MT_ERRNO__"
-            WXCONFIG_CXXFLAGS="$WXCONFIG_CXXFLAGS -Zmt -D__ST_MT_ERRNO__"
             LDFLAGS="$LDFLAGS -Zmt"
         ;;
       esac
             LDFLAGS="$LDFLAGS -Zmt"
         ;;
       esac
@@ -5609,37 +5696,40 @@ fi
 dnl Unix implementation needs additional checks because audio support
 dnl comes in many favours:
 if test "$USE_UNIX" = "1" ; then
 dnl Unix implementation needs additional checks because audio support
 dnl comes in many favours:
 if test "$USE_UNIX" = "1" ; then
-    dnl it's not enough to check for just the header because OSS under NetBSD
-    dnl redefines ioctl as oss_ioctrl inside it and so we also need to test
-    dnl whether we need -lossaudio at link-time
-    AC_CACHE_CHECK([for SNDCTL_DSP_SPEED in sys/soundcard.h], ac_cv_header_sys_soundcard, [
-        AC_TRY_LINK([
-                #include <sys/ioctl.h>
-                #include <sys/soundcard.h>
-            ],
-            [
-                ioctl(0, SNDCTL_DSP_SPEED, 0);
-            ],
-            ac_cv_header_sys_soundcard=yes,
-            [
-                saveLibs="$LIBS"
-                LIBS="$saveLibs -lossaudio"
-                AC_TRY_LINK([
-                        #include <sys/ioctl.h>
-                        #include <sys/soundcard.h>
-                    ],
-                    [
-                        ioctl(0, SNDCTL_DSP_SPEED, 0);
-                    ],
-                    ac_cv_header_sys_soundcard=yes,
-                    [
-                        LIBS="$saveLibs"
-                        ac_cv_header_sys_soundcard=no
-                    ]
-                )
-            ]
-        )
-    ])
+    dnl mmedia doesn't compile with wxMGL, remove this if this is ever fixed
+    if test "$wxUSE_MGL" != 1; then
+        dnl it's not enough to check for just the header because OSS under NetBSD
+        dnl redefines ioctl as oss_ioctrl inside it and so we also need to test
+        dnl whether we need -lossaudio at link-time
+        AC_CACHE_CHECK([for SNDCTL_DSP_SPEED in sys/soundcard.h], ac_cv_header_sys_soundcard, [
+            AC_TRY_LINK([
+                    #include <sys/ioctl.h>
+                    #include <sys/soundcard.h>
+                ],
+                [
+                    ioctl(0, SNDCTL_DSP_SPEED, 0);
+                ],
+                ac_cv_header_sys_soundcard=yes,
+                [
+                    saveLibs="$LIBS"
+                    LIBS="$saveLibs -lossaudio"
+                    AC_TRY_LINK([
+                            #include <sys/ioctl.h>
+                            #include <sys/soundcard.h>
+                        ],
+                        [
+                            ioctl(0, SNDCTL_DSP_SPEED, 0);
+                        ],
+                        ac_cv_header_sys_soundcard=yes,
+                        [
+                            LIBS="$saveLibs"
+                            ac_cv_header_sys_soundcard=no
+                        ]
+                    )
+                ]
+            )
+        ])
+    fi
 
     if test "$ac_cv_header_sys_soundcard" = "yes"; then
         AC_DEFINE(HAVE_SYS_SOUNDCARD_H)
 
     if test "$ac_cv_header_sys_soundcard" = "yes"; then
         AC_DEFINE(HAVE_SYS_SOUNDCARD_H)
@@ -5647,6 +5737,7 @@ if test "$USE_UNIX" = "1" ; then
         DISABLED_CONTRIB="$DISABLED_CONTRIB mmedia"
     fi
 fi
         DISABLED_CONTRIB="$DISABLED_CONTRIB mmedia"
     fi
 fi
+
 WITH_PLUGIN_SDL=0
 if test "$wxUSE_SOUND" = "yes"; then
   if test "$USE_UNIX" = "1" ; then
 WITH_PLUGIN_SDL=0
 if test "$wxUSE_SOUND" = "yes"; then
   if test "$USE_UNIX" = "1" ; then
@@ -5654,6 +5745,7 @@ if test "$wxUSE_SOUND" = "yes"; then
       AM_PATH_SDL([1.2.0],
                   [
                     EXTRALIBS_SDL="$SDL_LIBS"
       AM_PATH_SDL([1.2.0],
                   [
                     EXTRALIBS_SDL="$SDL_LIBS"
+                    CFLAGS="$SDL_CFLAGS $CFLAGS"
                     CXXFLAGS="$SDL_CFLAGS $CXXFLAGS"
                     AC_DEFINE(wxUSE_LIBSDL)
                   ],
                     CXXFLAGS="$SDL_CFLAGS $CXXFLAGS"
                     AC_DEFINE(wxUSE_LIBSDL)
                   ],
@@ -5685,6 +5777,7 @@ if test "$WXGTK20" = 1; then
                 PKG_CHECK_MODULES(LIBGNOMEPRINTUI,
                                   [libgnomeprintui-2.2 >= 2.8],
                     [
                 PKG_CHECK_MODULES(LIBGNOMEPRINTUI,
                                   [libgnomeprintui-2.2 >= 2.8],
                     [
+                        CFLAGS="$LIBGNOMEPRINTUI_CFLAGS $CFLAGS"
                         CXXFLAGS="$LIBGNOMEPRINTUI_CFLAGS $CXXFLAGS"
                         AC_DEFINE(wxUSE_LIBGNOMEPRINT)
                     ],
                         CXXFLAGS="$LIBGNOMEPRINTUI_CFLAGS $CXXFLAGS"
                         AC_DEFINE(wxUSE_LIBGNOMEPRINT)
                     ],
@@ -5702,6 +5795,7 @@ if test "$WXGTK20" = 1; then
                 PKG_CHECK_MODULES(GNOMEVFS,
                                   [gnome-vfs-2.0 >= 2.0],
                     [
                 PKG_CHECK_MODULES(GNOMEVFS,
                                   [gnome-vfs-2.0 >= 2.0],
                     [
+                        CFLAGS="$GNOMEVFS_CFLAGS $CFLAGS"
                         CXXFLAGS="$GNOMEVFS_CFLAGS $CXXFLAGS"
                         AC_DEFINE(wxUSE_LIBGNOMEVFS)
                     ],
                         CXXFLAGS="$GNOMEVFS_CFLAGS $CXXFLAGS"
                         AC_DEFINE(wxUSE_LIBGNOMEVFS)
                     ],
@@ -5718,6 +5812,7 @@ if test "$WXGTK20" = 1; then
                           [hildon-lgpl >= 0.9],
             [
                 EXTRALIBS_HILDON="$HILDON_LIBS"
                           [hildon-lgpl >= 0.9],
             [
                 EXTRALIBS_HILDON="$HILDON_LIBS"
+                CFLAGS="$CFLAGS $HILDON_CFLAGS"
                 CXXFLAGS="$CXXFLAGS $HILDON_CFLAGS"
                 AC_DEFINE(wxUSE_LIBHILDON)
             ],
                 CXXFLAGS="$CXXFLAGS $HILDON_CFLAGS"
                 AC_DEFINE(wxUSE_LIBHILDON)
             ],
@@ -5920,10 +6015,12 @@ dnl ---------------------------------------------------------------------------
 
 if test "$wxUSE_DATETIME" = "yes"; then
     dnl check for strptime and for its declaration as some systems lack it
 
 if test "$wxUSE_DATETIME" = "yes"; then
     dnl check for strptime and for its declaration as some systems lack it
+    dnl FIXME: use WX_CHECK_FUNCS instead
     AC_CHECK_FUNCS(strptime)
     if test "$ac_cv_func_strptime" = "yes"; then
         AC_CACHE_CHECK([for strptime declaration], wx_cv_func_strptime_decl,
             [
     AC_CHECK_FUNCS(strptime)
     if test "$ac_cv_func_strptime" = "yes"; then
         AC_CACHE_CHECK([for strptime declaration], wx_cv_func_strptime_decl,
             [
+                AC_LANG_PUSH(C++)
                 AC_TRY_COMPILE(
                     [
                         #include <time.h>
                 AC_TRY_COMPILE(
                     [
                         #include <time.h>
@@ -5935,6 +6032,7 @@ if test "$wxUSE_DATETIME" = "yes"; then
                     wx_cv_func_strptime_decl=yes,
                     wx_cv_func_strptime_decl=no
                 )
                     wx_cv_func_strptime_decl=yes,
                     wx_cv_func_strptime_decl=no
                 )
+                AC_LANG_POP()
             ]
         )
     fi
             ]
         )
     fi
@@ -5947,6 +6045,7 @@ if test "$wxUSE_DATETIME" = "yes"; then
     AC_CACHE_CHECK(for timezone variable in <time.h>,
                    wx_cv_var_timezone,
                    [
     AC_CACHE_CHECK(for timezone variable in <time.h>,
                    wx_cv_var_timezone,
                    [
+                        AC_LANG_PUSH(C++)
                         AC_TRY_COMPILE(
                             [
                                 #include <time.h>
                         AC_TRY_COMPILE(
                             [
                                 #include <time.h>
@@ -5992,6 +6091,7 @@ if test "$wxUSE_DATETIME" = "yes"; then
                                 )
                             ]
                         )
                                 )
                             ]
                         )
+                        AC_LANG_POP()
                    ]
     )
 
                    ]
     )
 
@@ -6116,6 +6216,7 @@ if test "$wxUSE_SOCKETS" = "yes" ; then
         AC_CACHE_CHECK([what is the type of the third argument of getsockname],
                        wx_cv_type_getsockname3,
             [
         AC_CACHE_CHECK([what is the type of the third argument of getsockname],
                        wx_cv_type_getsockname3,
             [
+                AC_LANG_PUSH(C++)
                 AC_TRY_COMPILE(
                     [
                         #include <sys/types.h>
                 AC_TRY_COMPILE(
                     [
                         #include <sys/types.h>
@@ -6133,9 +6234,9 @@ if test "$wxUSE_SOCKETS" = "yes" ; then
                         dnl converting between incompatible pointer types, so
                         dnl try to use it to get the correct behaviour at
                         dnl least with gcc (otherwise we'd always use size_t)
                         dnl converting between incompatible pointer types, so
                         dnl try to use it to get the correct behaviour at
                         dnl least with gcc (otherwise we'd always use size_t)
-                        CXXFLAGS_OLD="$CXXFLAGS"
+                        CFLAGS_OLD="$CFLAGS"
                         if test "$GCC" = yes ; then
                         if test "$GCC" = yes ; then
-                            CXXFLAGS="-Werror $CXXFLAGS"
+                            CFLAGS="-Werror $CFLAGS"
                         fi
 
                         AC_TRY_COMPILE(
                         fi
 
                         AC_TRY_COMPILE(
@@ -6162,9 +6263,10 @@ if test "$wxUSE_SOCKETS" = "yes" ; then
                             )
                         )
 
                             )
                         )
 
-                        CXXFLAGS="$CXXFLAGS_OLD"
+                        CFLAGS="$CFLAGS_OLD"
                     ]
                 )
                     ]
                 )
+                AC_LANG_POP()
             ])
 
         if test "$wx_cv_type_getsockname3" = "unknown"; then
             ])
 
         if test "$wx_cv_type_getsockname3" = "unknown"; then
@@ -6188,17 +6290,12 @@ if test "$wxUSE_SOCKETS" = "yes" ; then
                     ],
                     wx_cv_type_getsockopt5=socklen_t,
                     [
                     ],
                     wx_cv_type_getsockopt5=socklen_t,
                     [
-                        dnl the compiler will compile the version with size_t
-                        dnl even if the real type of the last parameter is int
-                        dnl but it should give at least a warning about
-                        dnl converting between incompatible pointer types, so
-                        dnl try to use it to get the correct behaviour at
-                        dnl least with gcc (otherwise we'd always use size_t)
-                        CXXFLAGS_OLD="$CXXFLAGS"
-                        if test "$GCC" = yes ; then
-                            CXXFLAGS="-Werror $CXXFLAGS"
-                        fi
-
+                        dnl Note that the rules for compatibility of pointers
+                        dnl are somewhat different between C and C++, so code 
+                        dnl that fails in C++ may not even give a warning about
+                        dnl converting between incompatible pointer types in C.
+                        dnl So this test needs to be done in C++ mode.
+                        AC_LANG_PUSH(C++)
                         AC_TRY_COMPILE(
                             [
                                 #include <sys/types.h>
                         AC_TRY_COMPILE(
                             [
                                 #include <sys/types.h>
@@ -6222,8 +6319,7 @@ if test "$wxUSE_SOCKETS" = "yes" ; then
                                 wx_cv_type_getsockopt5=unknown
                             )
                         )
                                 wx_cv_type_getsockopt5=unknown
                             )
                         )
-
-                        CXXFLAGS="$CXXFLAGS_OLD"
+                        AC_LANG_POP()
                     ]
                 )
             ])
                     ]
                 )
             ])
@@ -6302,12 +6398,14 @@ if test "$wxUSE_GUI" = "yes" -a "$wxUSE_JOYSTICK" = "yes"; 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])
         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_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
 
             AC_MSG_RESULT($wxUSE_JOYSTICK)
         fi
 
@@ -6315,7 +6413,13 @@ if test "$wxUSE_GUI" = "yes" -a "$wxUSE_JOYSTICK" = "yes"; then
     else
         dnl wxJoystick not supported by wxMGL at all
         if test "$wxUSE_MGL" != "1"; then
     else
         dnl wxJoystick not supported by wxMGL at all
         if test "$wxUSE_MGL" != "1"; then
-            AC_CHECK_HEADERS(linux/joystick.h, wxUSE_JOYSTICK=yes)
+            dnl notice the dummy includes argument: without it, AC_CHECK_HEADER
+            dnl checks only whether the header can be preprocessed, not that it
+            dnl can be compiled and in Linux 2.6.16 joystick.h is present but
+            dnl can't be compiled because of an error and with the default
+            dnl AC_CHECK_HEADER semantics we'd still detect it in this case and
+            dnl build would fail later
+            AC_CHECK_HEADER(linux/joystick.h, wxUSE_JOYSTICK=yes,,[#include <stdio.h>])
         fi
     fi
 
         fi
     fi
 
@@ -7328,9 +7432,6 @@ dnl ---------------------------------------------------------------------------
 dnl Output the makefiles and such from the results found above
 dnl ---------------------------------------------------------------------------
 
 dnl Output the makefiles and such from the results found above
 dnl ---------------------------------------------------------------------------
 
-dnl no more tests from here
-AC_LANG_POP
-
 dnl all additional libraries (except wxWidgets itself) we link with
 
 if test "$wxUSE_MAC" = 1 ; then
 dnl all additional libraries (except wxWidgets itself) we link with
 
 if test "$wxUSE_MAC" = 1 ; then
@@ -7904,7 +8005,10 @@ AC_CONFIG_FILES([ lib/wx/config/inplace-${TOOLCHAIN_FULLNAME}:wx-config-inplace.
                 [ chmod +x lib/wx/config/inplace-${TOOLCHAIN_FULLNAME} ],
                 [ TOOLCHAIN_FULLNAME="${TOOLCHAIN_FULLNAME}" ])
 
                 [ chmod +x lib/wx/config/inplace-${TOOLCHAIN_FULLNAME} ],
                 [ TOOLCHAIN_FULLNAME="${TOOLCHAIN_FULLNAME}" ])
 
-AC_CONFIG_FILES([ version-script Makefile ])
+if test "$wx_cv_version_script" = "yes"; then
+    AC_CONFIG_FILES(version-script)
+fi
+AC_CONFIG_FILES(Makefile)
 
 AC_CONFIG_COMMANDS([wx-config],
                    [ rm -f wx-config
 
 AC_CONFIG_COMMANDS([wx-config],
                    [ rm -f wx-config
@@ -7955,7 +8059,7 @@ for subdir in `echo $SUBDIRS`; do
                 disabled_var=DISABLED_`echo $subdir | tr [[a-z]] [[A-Z]]`;
                 eval "disabled=\$$disabled_var"
                 disabled=/`echo X $disabled | sed 's@ @/|/@g'`/
                 disabled_var=DISABLED_`echo $subdir | tr [[a-z]] [[A-Z]]`;
                 eval "disabled=\$$disabled_var"
                 disabled=/`echo X $disabled | sed 's@ @/|/@g'`/
-                makefiles=`(cd $srcdir ; find $subdir -name Makefile.in) | egrep -v "$disabled"`
+                makefiles=`(cd $srcdir ; find $subdir -name Makefile.in) | $EGREP -v "$disabled"`
             fi
         else dnl we build wxBase only
             dnl don't take all samples/utils, just those which build with
             fi
         else dnl we build wxBase only
             dnl don't take all samples/utils, just those which build with