]> git.saurik.com Git - wxWidgets.git/blobdiff - configure.in
DLL compilation fix
[wxWidgets.git] / configure.in
index ac2b41a45a405bcf9efae4c749e90dd7a4ccfe21..bff76dc4e92f551fea8ea84be45ceead092b989d 100644 (file)
@@ -508,17 +508,24 @@ if test $DEBUG_CONFIGURE = 1; then
   DEFAULT_wxUSE_CHECKLST=no
   DEFAULT_wxUSE_CHOICE=no
   DEFAULT_wxUSE_CHOICEBOOK=no
+  DEFAULT_wxUSE_COLOURPICKERCTRL=no
   DEFAULT_wxUSE_COMBOBOX=no
+  DEFAULT_wxUSE_COMBOCTRL=no
   DEFAULT_wxUSE_DATEPICKCTRL=no
   DEFAULT_wxUSE_DISPLAY=no
+  DEFAULT_wxUSE_DIRPICKERCTRL=no
+  DEFAULT_wxUSE_FILEPICKERCTRL=no
+  DEFAULT_wxUSE_FONTPICKERCTRL=no
   DEFAULT_wxUSE_GAUGE=no
   DEFAULT_wxUSE_GRID=no
+  DEFAULT_wxUSE_HYPERLINKCTRL=no
   DEFAULT_wxUSE_DATAVIEWCTRL=no
   DEFAULT_wxUSE_IMAGLIST=no
   DEFAULT_wxUSE_LISTBOOK=no
   DEFAULT_wxUSE_LISTBOX=no
   DEFAULT_wxUSE_LISTCTRL=no
   DEFAULT_wxUSE_NOTEBOOK=no
+  DEFAULT_wxUSE_ODCOMBOBOX=no
   DEFAULT_wxUSE_RADIOBOX=no
   DEFAULT_wxUSE_RADIOBTN=no
   DEFAULT_wxUSE_SASH=no
@@ -712,17 +719,24 @@ else
   DEFAULT_wxUSE_CHECKLST=yes
   DEFAULT_wxUSE_CHOICE=yes
   DEFAULT_wxUSE_CHOICEBOOK=yes
+  DEFAULT_wxUSE_COLOURPICKERCTRL=yes
   DEFAULT_wxUSE_COMBOBOX=yes
+  DEFAULT_wxUSE_COMBOCTRL=yes
   DEFAULT_wxUSE_DATEPICKCTRL=yes
   DEFAULT_wxUSE_DISPLAY=yes
+  DEFAULT_wxUSE_DIRPICKERCTRL=yes
+  DEFAULT_wxUSE_FILEPICKERCTRL=yes
+  DEFAULT_wxUSE_FONTPICKERCTRL=yes
   DEFAULT_wxUSE_GAUGE=yes
   DEFAULT_wxUSE_GRID=yes
+  DEFAULT_wxUSE_HYPERLINKCTRL=yes
   DEFAULT_wxUSE_DATAVIEWCTRL=no
   DEFAULT_wxUSE_IMAGLIST=yes
   DEFAULT_wxUSE_LISTBOOK=yes
   DEFAULT_wxUSE_LISTBOX=yes
   DEFAULT_wxUSE_LISTCTRL=yes
   DEFAULT_wxUSE_NOTEBOOK=yes
+  DEFAULT_wxUSE_ODCOMBOBOX=yes
   DEFAULT_wxUSE_RADIOBOX=yes
   DEFAULT_wxUSE_RADIOBTN=yes
   DEFAULT_wxUSE_SASH=yes
@@ -1025,9 +1039,16 @@ if test "$wxUSE_CONTROLS" = "yes"; then
   DEFAULT_wxUSE_CHECKLISTBOX=yes
   DEFAULT_wxUSE_CHOICE=yes
   DEFAULT_wxUSE_CHOICEBOOK=yes
+  DEFAULT_wxUSE_COLOURPICKERCTRL=yes
+  DEFAULT_wxUSE_COMBOBOX=yes
   DEFAULT_wxUSE_DATEPICKCTRL=yes
+  DEFAULT_wxUSE_DISPLAY=yes
+  DEFAULT_wxUSE_DIRPICKERCTRL=yes
+  DEFAULT_wxUSE_FILEPICKERCTRL=yes
+  DEFAULT_wxUSE_FONTPICKERCTRL=yes
   DEFAULT_wxUSE_GAUGE=yes
   DEFAULT_wxUSE_GRID=yes
+  DEFAULT_wxUSE_HYPERLINKCTRL=yes
   DEFAULT_wxUSE_DATAVIEWCTRL=no
   DEFAULT_wxUSE_IMAGLIST=yes
   DEFAULT_wxUSE_LISTBOOK=yes
@@ -1068,9 +1089,16 @@ elif test "$wxUSE_CONTROLS" = "no"; then
   DEFAULT_wxUSE_CHECKLISTBOX=no
   DEFAULT_wxUSE_CHOICE=no
   DEFAULT_wxUSE_CHOICEBOOK=no
+  DEFAULT_wxUSE_COLOURPICKERCTRL=no
+  DEFAULT_wxUSE_COMBOBOX=no
   DEFAULT_wxUSE_DATEPICKCTRL=no
+  DEFAULT_wxUSE_DISPLAY=no
+  DEFAULT_wxUSE_DIRPICKERCTRL=no
+  DEFAULT_wxUSE_FILEPICKERCTRL=no
+  DEFAULT_wxUSE_FONTPICKERCTRL=no
   DEFAULT_wxUSE_GAUGE=no
   DEFAULT_wxUSE_GRID=no
+  DEFAULT_wxUSE_HYPERLINKCTRL=no
   DEFAULT_wxUSE_DATAVIEWCTRL=no
   DEFAULT_wxUSE_IMAGLIST=no
   DEFAULT_wxUSE_LISTBOOK=no
@@ -1111,17 +1139,24 @@ WX_ARG_ENABLE(checkbox,    [  --enable-checkbox       use wxCheckBox class], wxU
 WX_ARG_ENABLE(checklst,    [  --enable-checklst       use wxCheckListBox (listbox with checkboxes) class], wxUSE_CHECKLST)
 WX_ARG_ENABLE(choice,      [  --enable-choice         use wxChoice class], wxUSE_CHOICE)
 WX_ARG_ENABLE(choicebook,  [  --enable-choicebook     use wxChoicebook class], wxUSE_CHOICEBOOK)
+WX_ARG_ENABLE(colourpicker,[  --enable-colourpicker   use wxColourPickerCtrl class], wxUSE_COLOURPICKERCTRL)
 WX_ARG_ENABLE(combobox,    [  --enable-combobox       use wxComboBox class], wxUSE_COMBOBOX)
+WX_ARG_ENABLE(comboctrl,   [  --enable-comboctrl      use wxComboCtrl class], wxUSE_COMBOCTRL)
 WX_ARG_ENABLE(datepick,    [  --enable-datepick       use wxDatePickerCtrl class], wxUSE_DATEPICKCTRL)
+WX_ARG_ENABLE(dirpicker,   [  --enable-dirpicker      use wxDirPickerCtrl class], wxUSE_DIRPICKERCTRL)
 WX_ARG_ENABLE(display,     [  --enable-display        use wxDisplay class], wxUSE_DISPLAY)
+WX_ARG_ENABLE(filepicker,  [  --enable-filepicker     use wxFilePickerCtrl class], wxUSE_FILEPICKERCTRL)
+WX_ARG_ENABLE(fontpicker,  [  --enable-fontpicker     use wxFontPickerCtrl class], wxUSE_FONTPICKERCTRL)
 WX_ARG_ENABLE(gauge,       [  --enable-gauge          use wxGauge class], wxUSE_GAUGE)
 WX_ARG_ENABLE(grid,        [  --enable-grid           use wxGrid class], wxUSE_GRID)
 WX_ARG_ENABLE(dataviewctrl,[  --enable-dataviewctrl,  use wxDataViewCtrl class], wxUSE_DATAVIEWCTRL)
+WX_ARG_ENABLE(hyperlink,   [  --enable-hyperlink      use wxHyperlinkCtrl class], wxUSE_HYPERLINKCTRL)
 WX_ARG_ENABLE(imaglist,    [  --enable-imaglist       use wxImageList class], wxUSE_IMAGLIST)
 WX_ARG_ENABLE(listbook,    [  --enable-listbook       use wxListbook class], wxUSE_LISTBOOK)
 WX_ARG_ENABLE(listbox,     [  --enable-listbox        use wxListBox class], wxUSE_LISTBOX)
 WX_ARG_ENABLE(listctrl,    [  --enable-listctrl       use wxListCtrl class], wxUSE_LISTCTRL)
 WX_ARG_ENABLE(notebook,    [  --enable-notebook       use wxNotebook class], wxUSE_NOTEBOOK)
+WX_ARG_ENABLE(odcombobox,  [  --enable-odcombobox     use wxOwnerDrawnComboBox class], wxUSE_ODCOMBOBOX)
 WX_ARG_ENABLE(radiobox,    [  --enable-radiobox       use wxRadioBox class], wxUSE_RADIOBOX)
 WX_ARG_ENABLE(radiobtn,    [  --enable-radiobtn       use wxRadioButton class], wxUSE_RADIOBTN)
 WX_ARG_ENABLE(sash,        [  --enable-sash           use wxSashWindow class], wxUSE_SASH)
@@ -1413,6 +1448,10 @@ dnl is -traditional needed for correct compilations
 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
@@ -1425,8 +1464,6 @@ dnl see CFLAGS line above
 CXXFLAGS=${CXXFLAGS:=}
 AC_BAKEFILE_PROG_CXX
 
-AC_LANG_POP
-
 dnl ranlib command
 dnl   defines RANLIB with the appropriate command
 AC_PROG_RANLIB
@@ -1611,6 +1648,7 @@ case "${host}" in
       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).
@@ -1654,6 +1692,7 @@ case "${host}" in
               wx_cv_gccversion="EMX2"
           )
       ])
+      AC_LANG_POP
       if test "$wx_cv_gccversion" = "EMX2"; then
           LIBS="$LIBS -lstdcpp"
           LDFLAGS="$LDFLAGS -Zsysv-signals"
@@ -1680,8 +1719,6 @@ case "${host}" in
       dnl ---------------------------------------------------------------------
       dnl (non-OS/2-only piece)
 
-      AC_LANG_PUSH(C++)
-
       AC_CACHE_CHECK([for strcasecmp() in string.h], ac_cv_string_strcasecmp, [
           AC_TRY_LINK([
               #include <string.h>
@@ -1716,7 +1753,6 @@ case "${host}" in
           fi
       fi
 
-      AC_LANG_POP
       dnl (end of non-OS/2-only piece)
   ;;
 esac
@@ -1906,7 +1942,6 @@ if test "x$wx_largefile" = "xyes"; then
                 [if -D__STDC_EXT__ is required],
                 wx_cv_STDC_EXT_required,
                 [
-                    AC_LANG_PUSH(C++)
                     AC_TRY_COMPILE(
                         [],
                         [
@@ -1917,7 +1952,6 @@ if test "x$wx_largefile" = "xyes"; then
                         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
@@ -2009,8 +2043,6 @@ fi
 
 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"
@@ -2055,13 +2087,9 @@ if test "$wxUSE_STD_STRING" = "yes" -o "$wxUSE_STL" = "yes"; then
                         ]
                     )
                     ])
-
-    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>])
@@ -2073,13 +2101,9 @@ if test "$wxUSE_STD_IOSTREAM" = "yes"; then
             AC_MSG_WARN([No std::iostreams, switching to --disable-std_iostreams])
         fi
     fi
-
-    AC_LANG_POP
 fi
 
 if test "$wxUSE_STL" = "yes"; then
-    AC_LANG_PUSH(C++)
-
     dnl check for basic STL functionality
     AC_MSG_CHECKING([for basic STL functionality])
     AC_TRY_COMPILE([#include <string>
@@ -2134,8 +2158,6 @@ if test "$wxUSE_STL" = "yes"; then
                                      AC_DEFINE(HAVE_GNU_CXX_HASH_MAP)],
                                     [AC_MSG_RESULT(no)])
                      ])
-
-    AC_LANG_POP
 fi
 
 dnl ---------------------------------------------------------------------------
@@ -2332,6 +2354,47 @@ if test "x$wx_cv_lib_glibc21" = "xyes"; then
     fi
 fi
 
+dnl Only add the -lm library if floating point functions cannot be used
+dnl without it.  This check is important on cygwin because of the bizarre
+dnl way that they have organized functions into libraries.  On cygwin, both
+dnl libc.a and libm.a are symbolic links to a single lib libcygwin.a.  This
+dnl means that
+dnl   1) linking with -lm is not necessary, and
+dnl   2) linking with -lm is dangerous if the order of libraries is wrong
+dnl In particular, if you compile any program with -mno-cygwin and link with
+dnl -lm, it will crash instantly when it is run.  This happens because the
+dnl linker incorrectly links the Cygwin libm.a (==libcygwin.a), which replaces
+dnl the ___main function instead of allowing it to be defined by
+dnl /usr/lib/mingw/libmingw32.a as it should be.
+dnl
+dnl On MacOS X, this test will find that -lm is unnecessary and leave it out.
+dnl
+dnl Just check a few floating point functions. If they are all found without
+dnl -lm, then we must not need -lm.
+have_cos=0
+have_floor=0
+AC_CHECK_FUNCS(cos, have_cos=1)
+AC_CHECK_FUNCS(floor, have_floor=1)
+AC_MSG_CHECKING(if floating point functions link without -lm)
+if test "$have_cos" = 1 -a "$have_floor" = 1; then
+    AC_MSG_RESULT(yes)
+else
+    AC_MSG_RESULT(no)
+    LIBS="$LIBS -lm"
+    # use different functions to avoid configure caching
+    have_sin=0
+    have_ceil=0
+    AC_CHECK_FUNCS(sin, have_sin=1)
+    AC_CHECK_FUNCS(ceil, have_ceil=1)
+    AC_MSG_CHECKING(if floating point functions link with -lm)
+    if test "$have_sin" = 1 -a "$have_ceil" = 1; then
+        AC_MSG_RESULT(yes)
+    else
+        AC_MSG_RESULT(no)
+        # not sure we should warn the user, crash, etc.
+    fi
+fi
+
 dnl ---------------------------------------------------------------------------
 dnl Optional libraries
 dnl
@@ -2651,12 +2714,10 @@ if test "$wxUSE_EXPAT" != "no"; then
             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_LANG_POP
                 ]
             )
             if test "$wx_cv_expat_is_not_broken" = "yes" ; then
@@ -2796,6 +2857,9 @@ if test "$wxUSE_GUI" = "yes"; then
     fi
 
     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
@@ -2917,6 +2981,28 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
                             AC_MSG_RESULT([yes])
                            ])
 
+            dnl test if we have at least GTK+ 2.6:
+            AC_MSG_CHECKING([if GTK+ is version >= 2.6])
+            AC_TRY_COMPILE([
+                            #include <gtk/gtk.h>
+                           ],
+                           [
+                            #if !GTK_CHECK_VERSION(2,6,0)
+                            Not GTK+ 2.6
+                            #endif
+                           ],
+                           [
+                            AC_DEFINE(__WXGTK26__)
+                            AC_DEFINE(__WXGTK24__)
+                            AC_MSG_RESULT([yes])
+                            ac_wxgtk26=1
+                           ],
+                           [
+                            AC_MSG_RESULT([no])
+                            ac_wxgtk26=0
+                           ])
+
+            if test "$ac_wxgtk26" = 0; then
             dnl test if we have at least GTK+ 2.4:
             AC_MSG_CHECKING([if GTK+ is version >= 2.4])
             AC_TRY_COMPILE([
@@ -2934,6 +3020,7 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
                            [
                             AC_MSG_RESULT([no])
                            ])
+            fi
 
             CFLAGS="$save_CFLAGS"
             LIBS="$save_LIBS"
@@ -2944,6 +3031,8 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
             fi
         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
@@ -3146,12 +3235,12 @@ 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])
                     ]
                 )
-                save_CFLAGS="$CFLAGS"
+                save_CXXFLAGS="$CXXFLAGS"
                 save_LIBS="$LIBS"
-                CFLAGS="$PANGOX_CFLAGS $CFLAGS"
+                CXXFLAGS="$PANGOX_CFLAGS $CXXFLAGS"
                 LIBS="$LIBS $PANGOX_LIBS"
                 AC_CHECK_FUNCS([pango_font_family_is_monospace])
-                CFLAGS="$save_CFLAGS"
+                CXXFLAGS="$save_CXXFLAGS"
                 LIBS="$save_LIBS"
         fi
 
@@ -3181,8 +3270,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
-            save_CFLAGS=$CFLAGS
-            CFLAGS="$TOOLKIT_INCLUDE $CFLAGS"
+            save_CXXFLAGS=$CXXFLAGS
+            CXXFLAGS="$TOOLKIT_INCLUDE $CXXFLAGS"
 
             AC_TRY_COMPILE(
                 [
@@ -3202,7 +3291,7 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
                 ]
             )
 
-            CFLAGS=$save_CFLAGS
+            CXXFLAGS=$save_CXXFLAGS
         fi
 
 
@@ -3218,8 +3307,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
-            save_CFLAGS=$CFLAGS
-            CFLAGS="$TOOLKIT_INCLUDE $CFLAGS"
+            save_CXXFLAGS=$CXXFLAGS
+            CXXFLAGS="$TOOLKIT_INCLUDE $CXXFLAGS"
             save_LIBS="$LIBS"
             LIBS="$GUI_TK_LIBRARY -lXm -lXmu -lXext -lX11"
 
@@ -3241,7 +3330,7 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
                 ]
             )
 
-            CFLAGS=$save_CFLAGS
+            CXXFLAGS=$save_CXXFLAGS
             LIBS="$save_LIBS"
         fi
 
@@ -3255,8 +3344,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"
-                        save_CFLAGS=$CFLAGS
-                        CFLAGS="$TOOLKIT_INCLUDE $CFLAGS"
+                        save_CXXFLAGS=$CXXFLAGS
+                        CXXFLAGS="$TOOLKIT_INCLUDE $CXXFLAGS"
 
                         AC_TRY_LINK(
                             [
@@ -3279,7 +3368,7 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
                         )
 
                         LIBS="$save_LIBS"
-                        CFLAGS=$save_CFLAGS
+                        CXXFLAGS=$save_CXXFLAGS
                     fi
                 done
             fi
@@ -3294,8 +3383,8 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
         dnl elsewhere
         AC_CHECK_LIB(Sgm, [SgCreateList], [libsgm_link=" -lSgm"])
 
-        save_CFLAGS=$CFLAGS
-        CFLAGS="$TOOLKIT_INCLUDE $CFLAGS"
+        save_CXXFLAGS=$CXXFLAGS
+        CXXFLAGS="$TOOLKIT_INCLUDE $CXXFLAGS"
 
         AC_CACHE_CHECK([for Motif 2],
             wx_cv_lib_motif2,
@@ -3334,7 +3423,7 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
             AC_DEFINE(__WXLESSTIF__,0)
         fi
 
-        CFLAGS=$save_CFLAGS
+        CXXFLAGS=$save_CXXFLAGS
 
         GUI_TK_LIBRARY="$GUI_TK_LIBRARY${libsgm_link} -lXm${libp_link} -lXmu -lXext -lXt${libsm_ice_link} -lX11"
         TOOLKIT=MOTIF
@@ -3355,8 +3444,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,
                     [
-                        save_CFLAGS=$CFLAGS
-                        CFLAGS="$TOOLKIT_INCLUDE $CFLAGS"
+                        save_CXXFLAGS=$CXXFLAGS
+                        CXXFLAGS="$TOOLKIT_INCLUDE $CXXFLAGS"
 
                         AC_TRY_COMPILE(
                             [
@@ -3370,7 +3459,7 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
                             wx_cv_x11_xpm_h=no
                         )
 
-                        CFLAGS=$save_CFLAGS
+                        CXXFLAGS=$save_CXXFLAGS
                     ]
                 )
 
@@ -3393,8 +3482,8 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
                      [], [$GUI_TK_LIBRARY -lX11])
 
         if test "$wxHAVE_XEXT_LIB" = 1; then
-            save_CFLAGS="$CFLAGS"
-            CFLAGS="$TOOLKIT_INCLUDE $CFLAGS"
+            save_CXXFLAGS="$CXXFLAGS"
+            CXXFLAGS="$TOOLKIT_INCLUDE $CXXFLAGS"
 
             AC_MSG_CHECKING([for X11/extensions/shape.h])
             AC_TRY_COMPILE([
@@ -3413,7 +3502,7 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
                            [
                             AC_MSG_RESULT([not found])
                            ])
-            CFLAGS="$save_CFLAGS"
+            CXXFLAGS="$save_CXXFLAGS"
 
         fi
     fi
@@ -3973,7 +4062,6 @@ AC_CHECK_TYPES(ssize_t)
 
 dnl check what exactly size_t is on this machine - this is necessary to avoid
 dnl ambiguous overloads in several places, notably wx/string.h and wx/array.h
-AC_LANG_PUSH(C++)
 AC_CACHE_CHECK([if size_t is unsigned int],
     wx_cv_size_t_is_uint,
     [
@@ -4020,8 +4108,6 @@ else
     fi
 fi
 
-AC_LANG_POP
-
 dnl ---------------------------------------------------------------------------
 dnl Checks for structures
 dnl ---------------------------------------------------------------------------
@@ -4096,11 +4182,6 @@ else
     AC_MSG_WARN([Wide character support is unavailable])
 fi
 
-dnl *printf() functions sometimes are available in the library but not
-dnl prototyped -- if this is the case, we can't use them from C++ code, but to
-dnl detect this we have to use C++ compiler for testing
-AC_LANG_PUSH(C++)
-
 dnl check for vsnprintf() -- a safe version of vsprintf())
 dnl
 dnl the trouble here is that on some systems (e.g HP-UX 10) this function is
@@ -4253,8 +4334,6 @@ if test "$wxUSE_UNICODE" = yes; then
                    [AC_MSG_RESULT([no])]);
 fi
 
-AC_LANG_POP
-
 if test "x$ac_cv_header_fnmatch_h" = "xyes"; then
     AC_CHECK_FUNCS(fnmatch)
 fi
@@ -4269,10 +4348,8 @@ if test "$TOOLKIT" != "MSW"; then
 
 dnl check for available version of iconv()
 
-AC_LANG_PUSH(C++)
 AM_ICONV
 LIBS="$LIBICONV $LIBS"
-AC_LANG_POP
 
 dnl check for POSIX signals if we need them
 if test "$wxUSE_ON_FATAL_EXCEPTION" = "yes" -a "$wxUSE_UNIX" = "yes"; then
@@ -4284,8 +4361,6 @@ if test "$wxUSE_ON_FATAL_EXCEPTION" = "yes" -a "$wxUSE_UNIX" = "yes"; then
     fi
 
     if test "$wxUSE_ON_FATAL_EXCEPTION" = "yes"; then
-      AC_LANG_PUSH(C++)
-
       AC_CACHE_CHECK([for sa_handler type], wx_cv_type_sa_handler,
       [
         AC_TRY_COMPILE([#include <signal.h>],
@@ -4301,16 +4376,12 @@ if test "$wxUSE_ON_FATAL_EXCEPTION" = "yes" -a "$wxUSE_UNIX" = "yes"; then
                      ])
       ])
 
-      AC_LANG_POP
-
       AC_DEFINE_UNQUOTED(wxTYPE_SA_HANDLER, $wx_cv_type_sa_handler)
     fi
 fi
 
 dnl backtrace() and backtrace_symbols() for wxStackWalker
 if test "$wxUSE_STACKWALKER" = "yes" -a "$wxUSE_UNIX" = "yes"; then
-    AC_LANG_PUSH(C++)
-
     AC_CACHE_CHECK([for backtrace() in <execinfo.h>], wx_cv_func_backtrace,
         [
             AC_TRY_COMPILE([#include <execinfo.h>],
@@ -4349,8 +4420,6 @@ if test "$wxUSE_STACKWALKER" = "yes" -a "$wxUSE_UNIX" = "yes"; then
             AC_DEFINE(HAVE_CXA_DEMANGLE)
         fi
     fi
-
-    AC_LANG_POP
 fi
 
 if test "$wxUSE_STACKWALKER" = "yes" -a "$USE_WIN32" != "1" -a "$USE_UNIX" != "1"; then
@@ -4389,7 +4458,6 @@ AC_CACHE_CHECK(for statfs, wx_cv_func_statfs,
 
 if test "$wx_cv_func_statfs" = "yes"; then
     dnl check whether we have its dcelaration too: some systems (AIX 4) lack it
-    AC_LANG_PUSH(C++)
     AC_CACHE_CHECK(for statfs declaration, wx_cv_func_statfs_decl,
         AC_TRY_COMPILE(
             [
@@ -4408,7 +4476,6 @@ if test "$wx_cv_func_statfs" = "yes"; then
             wx_cv_func_statfs_decl=no
         )
     )
-    AC_LANG_POP
 
     if test "$wx_cv_func_statfs_decl" = "yes"; then
         AC_DEFINE(HAVE_STATFS_DECL)
@@ -4439,8 +4506,6 @@ else
         dnl
         dnl for this check C++ compiler has to be used as passing incompatible
         dnl pointers is just a warning and not an error in C
-        AC_LANG_PUSH(C++)
-
         AC_CACHE_CHECK(for statvfs argument type, wx_cv_type_statvfs_t,
             AC_TRY_COMPILE(
                 [
@@ -4475,8 +4540,6 @@ else
             )
         )
 
-        AC_LANG_POP
-
         if test "$wx_cv_type_statvfs_t" != "unknown"; then
             AC_DEFINE(HAVE_STATVFS)
         fi
@@ -4549,14 +4612,8 @@ fi
 dnl check for uname (POSIX) and gethostname (BSD)
 AC_CHECK_FUNCS(uname gethostname, break)
 
-dnl check for MT-safe version of strtok (on DEC Alpha, it's ok for C compiler
-dnl but not for C++ one - hence change language)
-AC_LANG_PUSH(C++)
-
 AC_CHECK_FUNCS(strtok_r)
 
-AC_LANG_POP
-
 dnl check for inet_addr and inet_aton (these may live either in libc, or in
 dnl libnsl or libresolv or libsocket)
 INET_LINK=
@@ -4639,14 +4696,14 @@ if test "$TOOLKIT" != "MSW" -a "$USE_OS2" != 1; then
 
     dnl the code below:
     dnl
-    dnl   defines THREADS_LINK and THREADS_CFLAGS which are the options
+    dnl   defines THREADS_LINK and THREADS_CXXFLAGS 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=
-    THREADS_CFLAGS=
+    THREADS_CXXFLAGS=
 
     if test "$wxUSE_THREADS" = "yes" ; then
         if test "$USE_BEOS" = 1; then
@@ -4737,7 +4794,7 @@ if test "$TOOLKIT" != "MSW" -a "$USE_OS2" != 1; then
 
                 -*)
                     AC_MSG_CHECKING([whether pthreads work with $flag])
-                    THREADS_CFLAGS="$flag"
+                    THREADS_CXXFLAGS="$flag"
                     ;;
 
                 *)
@@ -4747,16 +4804,16 @@ if test "$TOOLKIT" != "MSW" -a "$USE_OS2" != 1; then
               esac
 
               save_LIBS="$LIBS"
-              save_CFLAGS="$CFLAGS"
+              save_CXXFLAGS="$CXXFLAGS"
               LIBS="$THREADS_LINK $LIBS"
-              CFLAGS="$THREADS_CFLAGS $CFLAGS"
+              CXXFLAGS="$THREADS_CXXFLAGS $CXXFLAGS"
 
               AC_TRY_LINK([#include <pthread.h>],
                           [pthread_create(0,0,0,0);],
                           THREADS_OK=yes)
 
               LIBS="$save_LIBS"
-              CFLAGS="$save_CFLAGS"
+              CXXFLAGS="$save_CXXFLAGS"
 
               AC_MSG_RESULT($THREADS_OK)
               if test "x$THREADS_OK" = "xyes"; then
@@ -4764,7 +4821,7 @@ if test "$TOOLKIT" != "MSW" -a "$USE_OS2" != 1; then
               fi
 
               THREADS_LINK=""
-              THREADS_CFLAGS=""
+              THREADS_CXXFLAGS=""
       done
 
       if test "x$THREADS_OK" != "xyes"; then
@@ -4773,7 +4830,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
-          LDFLAGS="$THREADS_CFLAGS $LDFLAGS"
+          LDFLAGS="$THREADS_CXXFLAGS $LDFLAGS"
           LIBS="$THREADS_LINK $LIBS"
 
           AC_MSG_CHECKING([if more special flags are required for pthreads])
@@ -4805,11 +4862,11 @@ if test "$TOOLKIT" != "MSW" -a "$USE_OS2" != 1; then
           esac
           AC_MSG_RESULT(${flag})
           if test "x$flag" != xno; then
-              THREADS_CFLAGS="$THREADS_CFLAGS $flag"
+              THREADS_CXXFLAGS="$THREADS_CXXFLAGS $flag"
           fi
 
           dnl don't add these options to CPPFLAGS as cpp might not know them
-          WXCONFIG_CFLAGS="$WXCONFIG_CFLAGS $THREADS_CFLAGS"
+          WXCONFIG_CXXFLAGS="$WXCONFIG_CXXFLAGS $THREADS_CXXFLAGS"
       fi
     fi
 
@@ -4960,8 +5017,8 @@ else
             AC_CACHE_CHECK([if compiler supports -mthreads],
                 wx_cv_cflags_mthread,
                 [
-                    CFLAGS_OLD="$CFLAGS"
-                    CFLAGS="-mthreads $CFLAGS"
+                    CXXFLAGS_OLD="$CXXFLAGS"
+                    CXXFLAGS="-mthreads $CXXFLAGS"
                     AC_TRY_COMPILE([], [],
                         wx_cv_cflags_mthread=yes,
                         wx_cv_cflags_mthread=no
@@ -4971,11 +5028,11 @@ else
 
             if test "$wx_cv_cflags_mthread" = "yes"; then
                 dnl it does, use it
-                WXCONFIG_CFLAGS="$WXCONFIG_CFLAGS -mthreads"
+                WXCONFIG_CXXFLAGS="$WXCONFIG_CXXFLAGS -mthreads"
                 LDFLAGS="$LDFLAGS -mthreads"
             else
                 dnl it doesn't
-                CFLAGS="$CFLAGS_OLD"
+                CXXFLAGS="$CXXFLAGS_OLD"
             fi
         ;;
         *-pc-os2*emx )
@@ -4995,7 +5052,6 @@ dnl safety issues and supports IPv6, however there currently is no code
 dnl for it, so testing for it is temporarily disabled and we are restricted
 dnl to gethostbyname_r/gethostbyaddr_r  and getservbyname_r
 
-AC_LANG_PUSH(C++)
 dnl AC_CHECK_FUNC(getaddrinfo, AC_DEFINE(HAVE_GETADDRINFO), [
     dnl no getaddrinfo, so check for gethostbyname_r and
     dnl related functions (taken from python's configure.in)
@@ -5023,7 +5079,6 @@ dnl AC_CHECK_FUNC(getaddrinfo, AC_DEFINE(HAVE_GETADDRINFO), [
       dnl  check to fit this case, if it's really needed.                - SN )
 dnl    ]
 dnl )
-AC_LANG_POP
 
 if test "$wxUSE_THREADS" = "yes"; then
   AC_DEFINE(wxUSE_THREADS)
@@ -5600,7 +5655,6 @@ if test "$wxUSE_DATETIME" = "yes"; then
     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>
@@ -5612,7 +5666,6 @@ if test "$wxUSE_DATETIME" = "yes"; then
                     wx_cv_func_strptime_decl=yes,
                     wx_cv_func_strptime_decl=no
                 )
-                AC_LANG_POP
             ]
         )
     fi
@@ -5714,8 +5767,6 @@ if test "$wxUSE_DATETIME" = "yes"; then
                        wx_cv_func_gettimeofday_has_2_args,
         [
             dnl on some _really_ old systems it takes only 1 argument
-            AC_LANG_PUSH(C++)
-
             AC_TRY_COMPILE(
                 [
                     #include <sys/time.h>
@@ -5742,7 +5793,6 @@ if test "$wxUSE_DATETIME" = "yes"; then
                     ]
                 )
             )
-            AC_LANG_POP
         ])
 
         if test "$wx_cv_func_gettimeofday_has_2_args" != "yes"; then
@@ -5794,7 +5844,6 @@ if test "$wxUSE_SOCKETS" = "yes" ; then
         dnl This test needs to be done in C++ mode since gsocket.cpp now
         dnl is C++ code and pointer cast that are possible even without
         dnl warning in C still fail in C++.
-        AC_LANG_PUSH(C++)
         AC_CACHE_CHECK([what is the type of the third argument of getsockname],
                        wx_cv_type_getsockname3,
             [
@@ -5916,7 +5965,6 @@ if test "$wxUSE_SOCKETS" = "yes" ; then
         else
             AC_DEFINE_UNQUOTED(SOCKOPTLEN_T, $wx_cv_type_getsockopt5)
         fi
-        AC_LANG_POP
     fi
 fi
 
@@ -5981,14 +6029,12 @@ 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])
-            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
 
@@ -6134,8 +6180,6 @@ if test "$USE_WIN32" = 1 -a \( "$wxUSE_DATAOBJ"       = "yes" \
 
     if test "$ac_cv_header_ole2_h" = "yes" ; then
         if test "$GCC" = yes ; then
-            AC_LANG_PUSH(C++)
-
             AC_MSG_CHECKING([if g++ requires -fvtable-thunks])
             AC_TRY_COMPILE([#include <windows.h>
                             #include <ole2.h>],
@@ -6143,7 +6187,6 @@ if test "$USE_WIN32" = 1 -a \( "$wxUSE_DATAOBJ"       = "yes" \
                            [AC_MSG_RESULT(no)],
                            [AC_MSG_RESULT(yes)
                             WXCONFIG_CXXFLAGS="$WXCONFIG_CXXFLAGS -fvtable-thunks"])
-            AC_LANG_POP
             LIBS=" -lrpcrt4 -loleaut32 -lole32 -luuid$LIBS"
             if test "$wxUSE_OLE" = "yes" ; then
                 AC_DEFINE(wxUSE_OLE)
@@ -6290,6 +6333,11 @@ if test "$wxUSE_COMBOBOX" = "yes"; then
   USES_CONTROLS=1
 fi
 
+if test "$wxUSE_COMBOCTRL" = "yes"; then
+  AC_DEFINE(wxUSE_COMBOCTRL)
+  USES_CONTROLS=1
+fi
+
 if test "$wxUSE_CHOICE" = "yes"; then
   AC_DEFINE(wxUSE_CHOICE)
   USES_CONTROLS=1
@@ -6311,11 +6359,31 @@ if test "$wxUSE_CHECKLST" = "yes"; then
   SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS checklst"
 fi
 
+if test "$wxUSE_COLOURPICKERCTRL" = "yes"; then
+  AC_DEFINE(wxUSE_COLOURPICKERCTRL)
+  USES_CONTROLS=1
+fi
+
 if test "$wxUSE_DATEPICKCTRL" = "yes"; then
   AC_DEFINE(wxUSE_DATEPICKCTRL)
   USES_CONTROLS=1
 fi
 
+if test "$wxUSE_DIRPICKERCTRL" = "yes"; then
+  AC_DEFINE(wxUSE_DIRPICKERCTRL)
+  USES_CONTROLS=1
+fi
+
+if test "$wxUSE_FILEPICKERCTRL" = "yes"; then
+  AC_DEFINE(wxUSE_FILEPICKERCTRL)
+  USES_CONTROLS=1
+fi
+
+if test "$wxUSE_FONTPICKERCTRL" = "yes"; then
+  AC_DEFINE(wxUSE_FONTPICKERCTRL)
+  USES_CONTROLS=1
+fi
+
 if test "$wxUSE_DISPLAY" = "yes"; then
     AC_DEFINE(wxUSE_DISPLAY)
     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS display multimon"
@@ -6332,6 +6400,11 @@ if test "$wxUSE_GRID" = "yes"; then
   SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS grid"
 fi
 
+if test "$wxUSE_HYPERLINKCTRL" = "yes"; then
+  AC_DEFINE(wxUSE_HYPERLINKCTRL)
+  USES_CONTROLS=1
+fi
+
 if test "$wxUSE_DATAVIEWCTRL" = "yes"; then
   AC_DEFINE(wxUSE_DATAVIEWCTRL)
   USES_CONTROLS=1
@@ -6369,6 +6442,12 @@ if test "$wxUSE_NOTEBOOK" = "yes"; then
     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS notebook"
 fi
 
+if test "$wxUSE_ODCOMBOBOX" = "yes"; then
+  AC_DEFINE(wxUSE_ODCOMBOBOX)
+  USES_CONTROLS=1
+  SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS combo"
+fi
+
 dnl if test "$wxUSE_PROPSHEET" = "yes"; then
 dnl     AC_DEFINE(wxUSE_PROPSHEET)
 dnl     USES_CONTROLS=1
@@ -6460,10 +6539,6 @@ if test "$wxUSE_TOGGLEBTN" = "yes"; then
         AC_MSG_WARN([Toggle button not yet supported under Mac OS X... disabled])
         wxUSE_TOGGLEBTN=no
     fi
-    if test "$wxUSE_UNIVERSAL" = "yes"; then
-        AC_MSG_WARN([Toggle button not yet supported under wxUniversal... disabled])
-        wxUSE_TOGGLEBTN=no
-    fi
 
     if test "$wxUSE_TOGGLEBTN" = "yes"; then
         AC_DEFINE(wxUSE_TOGGLEBTN)
@@ -6915,10 +6990,10 @@ dnl ---------------------------------------------------------------------------
 dnl Output the makefiles and such from the results found above
 dnl ---------------------------------------------------------------------------
 
-dnl all additional libraries (except wxWidgets itself) we link with
+dnl no more tests from here
+AC_LANG_POP
 
-dnl note that we always link with -lm except for Mac OS X
-dnl extended.c uses floor() and is always linked in
+dnl all additional libraries (except wxWidgets itself) we link with
 
 if test "$wxUSE_MAC" = 1 ; then
     if test "$wxUSE_SOUND" = "yes" || test "$wxUSE_MEDIACTRL" = "yes"; then
@@ -6944,53 +7019,8 @@ if test "$USE_DARWIN" = 1 -a "$wxUSE_MAC" != 1 -a "$wxUSE_COCOA" != 1 ; then
     LDFLAGS="$LDFLAGS -framework IOKit -framework CoreServices -framework System -framework ApplicationServices"
 fi
 
-dnl FIXME: should this be covered by the conditional above
-dnl given the -lm comment there?  Or should that comment (and
-dnl this one) be removed..   [ 7 Nov 2001 ]
-
 LIBS="$ZLIB_LINK $POSIX4_LINK $INET_LINK $WCHAR_LINK $DL_LINK $LIBS"
 
-dnl Only add the -lm library if floating point functions cannot be used
-dnl without it.  This check is important on cygwin because of the bizarre
-dnl way that they have organized functions into libraries.  On cygwin, both
-dnl libc.a and libm.a are symbolic links to a single lib libcygwin.a.  This
-dnl means that
-dnl   1) linking with -lm is not necessary, and
-dnl   2) linking with -lm is dangerous if the order of libraries is wrong
-dnl In particular, if you compile any program with -mno-cygwin and link with
-dnl -lm, it will crash instantly when it is run.  This happens because the
-dnl linker incorrectly links the Cygwin libm.a (==libcygwin.a), which replaces
-dnl the ___main function instead of allowing it to be defined by
-dnl /usr/lib/mingw/libmingw32.a as it should be.
-dnl
-dnl On MacOS X, this test will find that -lm is unnecessary and leave it out.
-dnl
-dnl Just check a few floating point functions. If they are all found without
-dnl -lm, then we must not need -lm.
-have_cos=0
-have_floor=0
-AC_CHECK_FUNCS(cos, have_cos=1)
-AC_CHECK_FUNCS(floor, have_floor=1)
-AC_MSG_CHECKING(if floating point functions link without -lm)
-if test "$have_cos" = 1 -a "$have_floor" = 1; then
-    AC_MSG_RESULT(yes)
-else
-    AC_MSG_RESULT(no)
-    LIBS="$LIBS -lm"
-    # use different functions to avoid configure caching
-    have_sin=0
-    have_ceil=0
-    AC_CHECK_FUNCS(sin, have_sin=1)
-    AC_CHECK_FUNCS(ceil, have_ceil=1)
-    AC_MSG_CHECKING(if floating point functions link with -lm)
-    if test "$have_sin" = 1 -a "$have_ceil" = 1; then
-        AC_MSG_RESULT(yes)
-    else
-        AC_MSG_RESULT(no)
-        # not sure we should warn the user, crash, etc.
-    fi
-fi
-
 if test "$wxUSE_GUI" = "yes"; then
 
     dnl TODO add checks that these samples will really compile (i.e. all the