]> git.saurik.com Git - wxWidgets.git/blobdiff - configure.in
SCROLLWIN instead of SCROLL again
[wxWidgets.git] / configure.in
index 946a141088187150a13658b786884e76c78e8f0b..3f740e77ac1ec1d5e85f5aabab95a98257f3069c 100644 (file)
@@ -11,6 +11,383 @@ dnl
 dnl Version: $Id$
 dnl ---------------------------------------------------------------------------
 
 dnl Version: $Id$
 dnl ---------------------------------------------------------------------------
 
+dnl ---------------------------------------------------------------------------
+dnl AM_PATH_GTK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
+dnl Test for GTK, and define GTK_CFLAGS and GTK_LIBS. Uses variables
+dnl gtk_config_prefix and/or gtk_config_exec_prefix if defined.
+dnl ---------------------------------------------------------------------------
+dnl
+AC_DEFUN(AM_PATH_GTK,
+[
+  if test x$gtk_config_exec_prefix != x ; then
+     gtk_config_args="$gtk_config_args --exec-prefix=$gtk_config_exec_prefix"
+     if test x${GTK_CONFIG+set} != xset ; then
+        GTK_CONFIG=$gtk_config_exec_prefix/bin/gtk-config
+     fi
+  fi
+  if test x$gtk_config_prefix != x ; then
+     gtk_config_args="$gtk_config_args --prefix=$gtk_config_prefix"
+     if test x${GTK_CONFIG+set} != xset ; then
+        GTK_CONFIG=$gtk_config_prefix/bin/gtk-config
+     fi
+  fi
+
+  AC_PATH_PROG(GTK_CONFIG, gtk-config, no)
+  min_gtk_version=ifelse([$1], ,0.99.7,$1)
+  AC_MSG_CHECKING(for GTK - version >= $min_gtk_version)
+  no_gtk=""
+  if test "$GTK_CONFIG" != "no" ; then
+    GTK_CFLAGS=`$GTK_CONFIG --cflags`
+    GTK_LIBS=`$GTK_CONFIG --libs gthread`
+    ac_save_CFLAGS="$CFLAGS"
+    ac_save_LIBS="$LIBS"
+    CFLAGS="$CFLAGS $GTK_CFLAGS"
+    LIBS="$LIBS $GTK_LIBS"
+dnl
+dnl Now check if the installed GTK is sufficiently new. (Also sanity
+dnl checks the results of gtk-config to some extent)
+dnl
+    AC_TRY_RUN([
+#include <gtk/gtk.h>
+#include <gtk/gtkfeatures.h>
+#include <stdio.h>
+
+int
+main ()
+{
+  int major, minor, micro;
+
+  if (sscanf("$min_gtk_version", "%d.%d.%d", &major, &minor, &micro) != 3) {
+     printf("%s, bad version string\n", "$min_gtk_version");
+     exit(1);
+   }
+
+   if ((GTK_MAJOR_VERSION != gtk_major_version) ||
+       (GTK_MINOR_VERSION != gtk_minor_version) ||
+       (GTK_MICRO_VERSION != gtk_micro_version)) {
+     printf("Headers vs. library version mismatch!\n");
+     exit(1);
+   }
+
+   if (gtk_minor_version == 1) return FALSE;
+
+   return !((gtk_major_version > major) ||
+    ((gtk_major_version == major) && (gtk_minor_version > minor)) ||
+    ((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro)));
+}
+],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
+     CFLAGS="$ac_save_CFLAGS"
+     LIBS="$ac_save_LIBS"
+  else
+     no_gtk=yes
+  fi
+  if test "x$no_gtk" = x ; then
+     AC_MSG_RESULT(yes)
+     ifelse([$2], , :, [$2])
+  else
+     AC_MSG_RESULT(no)
+     GTK_CFLAGS=""
+     GTK_LIBS=""
+     ifelse([$3], , :, [$3])
+  fi
+  AC_SUBST(GTK_CFLAGS)
+  AC_SUBST(GTK_LIBS)
+])
+
+dnl ===========================================================================
+dnl macros to find the a file in the list of include/lib paths
+dnl ===========================================================================
+
+dnl ---------------------------------------------------------------------------
+dnl call WX_PATH_FIND_INCLUDES(search path, header name), sets ac_find_includes
+dnl to the full name of the file that was found or leaves it empty if not found
+dnl ---------------------------------------------------------------------------
+AC_DEFUN(WX_PATH_FIND_INCLUDES,
+[
+ac_find_includes=
+for ac_dir in $1;
+  do
+    if test -f "$ac_dir/$2"; then
+      ac_find_includes=$ac_dir
+      break
+    fi
+  done
+])
+
+dnl ---------------------------------------------------------------------------
+dnl call WX_PATH_FIND_LIBRARIES(search path, header name), sets ac_find_includes
+dnl to the full name of the file that was found or leaves it empty if not found
+dnl ---------------------------------------------------------------------------
+AC_DEFUN(WX_PATH_FIND_LIBRARIES,
+[
+ac_find_libraries=
+for ac_dir in $1;
+  do
+    for ac_extension in a so sl; do
+      if test -f "$ac_dir/lib$2.$ac_extension"; then
+        ac_find_libraries=$ac_dir
+        break 2
+      fi
+    done
+  done
+])
+
+dnl ---------------------------------------------------------------------------
+dnl Path to include, already defined
+dnl ---------------------------------------------------------------------------
+AC_DEFUN(WX_INCLUDE_PATH_EXIST,
+[
+  ac_path_to_include=$1
+  echo "$2" | grep "\-I$1" > /dev/null
+  result=$?
+  if test $result = 0; then
+    ac_path_to_include=""
+  else
+    ac_path_to_include="-I$1"
+  fi
+])
+
+dnl ---------------------------------------------------------------------------
+dnl Path to link, already defined
+dnl ---------------------------------------------------------------------------
+AC_DEFUN(WX_LINK_PATH_EXIST,
+[
+  echo "$2" | grep "\-L$1" > /dev/null
+  result=$?
+  if test $result = 0; then
+    ac_path_to_link=""
+  else
+    ac_path_to_link="-L$1"
+  fi
+])
+
+dnl ===========================================================================
+dnl C++ features test
+dnl ===========================================================================
+
+dnl ---------------------------------------------------------------------------
+dnl WX_CPP_NEW_HEADERS checks whether the compiler has "new" <iostream> header
+dnl or only the old <iostream.h> one - it may be generally assumed that if
+dnl <iostream> exists, the other "new" headers (without .h) exist too.
+dnl
+dnl call WX_CPP_NEW_HEADERS(actiof-if-true, action-if-false-or-cross-compiling)
+dnl ---------------------------------------------------------------------------
+
+AC_DEFUN(WX_CPP_NEW_HEADERS,
+[
+  if test "$cross_compiling" = "yes"; then
+    ifelse([$2], , :, [$2])
+  else
+    AC_LANG_SAVE
+    AC_LANG_CPLUSPLUS
+
+    AC_CHECK_HEADERS(iostream)
+
+    if test "x$HAVE_IOSTREAM" = x ; then
+      ifelse([$2], , :, [$2])
+    else
+      ifelse([$1], , :, [$1])
+    fi
+
+    AC_LANG_RESTORE
+  fi
+])
+
+dnl ---------------------------------------------------------------------------
+dnl WX_CPP_BOOL checks whether the C++ compiler has a built in bool type
+dnl
+dnl call WX_CPP_BOOL - will define HAVE_BOOL if the compiler supports bool
+dnl ---------------------------------------------------------------------------
+
+AC_DEFUN(WX_CPP_BOOL,
+[
+  AC_CACHE_CHECK([if C++ compiler supports bool], wx_cv_cpp_bool,
+  [
+    AC_LANG_SAVE
+    AC_LANG_CPLUSPLUS
+
+    AC_TRY_COMPILE(
+      [
+      ],
+      [
+        bool b = true;
+
+        return 0;
+      ],
+      [
+        AC_DEFINE(HAVE_BOOL)
+        wx_cv_cpp_bool=yes
+      ],
+      [
+        wx_cv_cpp_bool=no
+      ]
+    )
+
+    AC_LANG_RESTORE
+  ])
+
+  if test "$wx_cv_cpp_bool" = "yes"; then
+    AC_DEFINE(HAVE_BOOL)
+  fi
+])
+
+dnl ---------------------------------------------------------------------------
+dnl a slightly better AC_C_BIGENDIAN macro which allows cross-compiling
+dnl ---------------------------------------------------------------------------
+
+AC_DEFUN(WX_C_BIGENDIAN,
+[AC_CACHE_CHECK(whether byte ordering is bigendian, ac_cv_c_bigendian,
+[ac_cv_c_bigendian=unknown
+# See if sys/param.h defines the BYTE_ORDER macro.
+AC_TRY_COMPILE([#include <sys/types.h>
+#include <sys/param.h>], [
+#if !BYTE_ORDER || !BIG_ENDIAN || !LITTLE_ENDIAN
+ bogus endian macros
+#endif], [# It does; now see whether it defined to BIG_ENDIAN or not.
+AC_TRY_COMPILE([#include <sys/types.h>
+#include <sys/param.h>], [
+#if BYTE_ORDER != BIG_ENDIAN
+ not big endian
+#endif], ac_cv_c_bigendian=yes, ac_cv_c_bigendian=no)])
+if test $ac_cv_c_bigendian = unknown; then
+AC_TRY_RUN([main () {
+  /* Are we little or big endian?  From Harbison&Steele.  */
+  union
+  {
+    long l;
+    char c[sizeof (long)];
+  } u;
+  u.l = 1;
+  exit (u.c[sizeof (long) - 1] == 1);
+}], ac_cv_c_bigendian=no, ac_cv_c_bigendian=yes, ac_cv_c_bigendian=unknown)
+fi])
+if test $ac_cv_c_bigendian = unknown; then
+  AC_MSG_WARN([Assuming little-endian target machine - this may be overriden by adding the line "ac_cv_c_bigendian=${ac_cv_c_bigendian='yes'}" to config.cache file])
+fi
+if test $ac_cv_c_bigendian = yes; then
+  AC_DEFINE(WORDS_BIGENDIAN)
+fi
+])
+
+dnl ---------------------------------------------------------------------------
+dnl override AC_ARG_ENABLE/WITH to cache the results in .cache file
+dnl ---------------------------------------------------------------------------
+
+AC_DEFUN(WX_ARG_CACHE_INIT,
+        [
+          wx_arg_cache_file="configarg.cache"
+          echo "loading argument cache $wx_arg_cache_file"
+          rm -f ${wx_arg_cache_file}.tmp
+          touch ${wx_arg_cache_file}.tmp
+          touch ${wx_arg_cache_file}
+        ])
+
+AC_DEFUN(WX_ARG_CACHE_FLUSH,
+        [
+          echo "saving argument cache $wx_arg_cache_file"
+          mv ${wx_arg_cache_file}.tmp ${wx_arg_cache_file}
+        ])
+
+dnl this macro checks for a command line argument and caches the result
+dnl usage: WX_ARG_WITH(option, helpmessage, variable-name)
+AC_DEFUN(WX_ARG_WITH,
+        [
+          AC_MSG_CHECKING("for --with-$1")
+          no_cache=0
+          AC_ARG_WITH($1, $2,
+                      [
+                        if test "$withval" = yes; then
+                          ac_cv_use_$1='$3=yes'
+                        else
+                          ac_cv_use_$1='$3=no'
+                        fi
+                      ],
+                      [
+                        LINE=`grep "$3" ${wx_arg_cache_file}`
+                        if test "x$LINE" != x ; then
+                          eval "DEFAULT_$LINE"
+                        else
+                          no_cache=1
+                        fi
+
+                        ac_cv_use_$1='$3='$DEFAULT_$3
+                      ])
+
+          eval "$ac_cv_use_$1"
+          if test "$no_cache" != 1; then
+            echo $ac_cv_use_$1 >> ${wx_arg_cache_file}.tmp
+          fi
+
+          if test "$$3" = yes; then
+            AC_MSG_RESULT(yes)
+          else
+            AC_MSG_RESULT(no)
+          fi
+        ])
+
+dnl like WX_ARG_WITH but uses AC_ARG_ENABLE instead of AC_ARG_WITH
+dnl usage: WX_ARG_ENABLE(option, helpmessage, variable-name)
+AC_DEFUN(WX_ARG_ENABLE,
+        [
+          AC_MSG_CHECKING("for --enable-$1")
+          no_cache=0
+          AC_ARG_ENABLE($1, $2,
+                        [
+                          if test "$enableval" = yes; then
+                            ac_cv_use_$1='$3=yes'
+                          else
+                            ac_cv_use_$1='$3=no'
+                          fi
+                        ],
+                        [
+                          LINE=`grep "$3" ${wx_arg_cache_file}`
+                          if test "x$LINE" != x ; then
+                            eval "DEFAULT_$LINE"
+                          else
+                            no_cache=1
+                          fi
+
+                          ac_cv_use_$1='$3='$DEFAULT_$3
+                        ])
+
+          eval "$ac_cv_use_$1"
+          if test "$no_cache" != 1; then
+            echo $ac_cv_use_$1 >> ${wx_arg_cache_file}.tmp
+          fi
+
+          if test "$$3" = yes; then
+            AC_MSG_RESULT(yes)
+          else
+            AC_MSG_RESULT(no)
+          fi
+        ])
+
+dnl -
+dnl - GNU libc extension (added by GL)
+dnl -
+
+AC_DEFUN(WX_GNU_EXTENSIONS,
+[
+AC_MSG_CHECKING([if you need GNU extensions])
+AC_CACHE_VAL(wx_cv_gnu_extensions,[
+   AC_TRY_COMPILE([#include <features.h>],[
+
+#ifndef __GNU_LIBRARY__
+ Compile error wanted
+#endif
+
+],
+  [wx_cv_gnu_extensions=yes],
+  [wx_cv_gnu_extensions=no])
+])
+
+AC_MSG_RESULT($wx_cv_gnu_extensions)
+if test "$wx_cv_gnu_extensions" = "yes"; then
+  AC_DEFINE_UNQUOTED(_GNU_SOURCE)
+fi
+])
+
+
 dnl ---------------------------------------------------------------------------
 dnl initialization
 dnl ---------------------------------------------------------------------------
 dnl ---------------------------------------------------------------------------
 dnl initialization
 dnl ---------------------------------------------------------------------------
@@ -32,31 +409,18 @@ dnl WX_INTERFACE_AGE = 0
 
 WX_MAJOR_VERSION_NUMBER=2
 WX_MINOR_VERSION_NUMBER=1
 
 WX_MAJOR_VERSION_NUMBER=2
 WX_MINOR_VERSION_NUMBER=1
-WX_RELEASE_NUMBER=0
+WX_RELEASE_NUMBER=13
 
 WX_INTERFACE_AGE=0
 WX_BINARY_AGE=0
 
 WX_VERSION=$WX_MAJOR_VERSION_NUMBER.$WX_MINOR_VERSION_NUMBER.$WX_RELEASE_NUMBER
 
 
 WX_INTERFACE_AGE=0
 WX_BINARY_AGE=0
 
 WX_VERSION=$WX_MAJOR_VERSION_NUMBER.$WX_MINOR_VERSION_NUMBER.$WX_RELEASE_NUMBER
 
-AM_INIT_AUTOMAKE(wxWindows, $WX_VERSION)
-
-dnl libtool versioning
-LT_RELEASE=$WX_MAJOR_VERSION_NUMBER.$WX_MINOR_VERSION_NUMBER
-LT_CURRENT=`expr $WX_RELEASE_NUMBER - $WX_INTERFACE_AGE`
-LT_REVISION=$WX_INTERFACE_AGE
-LT_AGE=`expr $WX_BINARY_AGE - $WX_INTERFACE_AGE`
-AC_SUBST(LT_RELEASE)
-AC_SUBST(LT_CURRENT)
-AC_SUBST(LT_REVISION)
-AC_SUBST(LT_AGE)
-
-dnl FIXME this hack suppresses automake 1.4 warning about @LTLIBOBJS@ being
-dnl       never defined in configure.in (remove these lines to see what I'm
-dnl       speaking about) - Tom Tromey <tromey@cygnus.com> told me that it will
-dnl       be fixed in the next release.
-LIBOBJS=
-LIBOBJS="$LIBOBJS ../common/extended.o"
+dnl wxWindows shared library versioning
+WX_RELEASE=$WX_MAJOR_VERSION_NUMBER.$WX_MINOR_VERSION_NUMBER
+WX_CURRENT=`expr $WX_RELEASE_NUMBER - $WX_INTERFACE_AGE`
+WX_REVISION=$WX_INTERFACE_AGE
+WX_AGE=`expr $WX_BINARY_AGE - $WX_INTERFACE_AGE`
 
 dnl ------------------------------------------------------------------------
 dnl Check platform (host system)
 
 dnl ------------------------------------------------------------------------
 dnl Check platform (host system)
@@ -64,6 +428,9 @@ dnl ------------------------------------------------------------------------
 
 dnl assume Unix
 USE_UNIX=1
 
 dnl assume Unix
 USE_UNIX=1
+USE_WIN32=0
+USE_BEOS=0
+
 USE_LINUX=
 USE_SGI=
 USE_HPUX=
 USE_LINUX=
 USE_SGI=
 USE_HPUX=
@@ -83,8 +450,13 @@ USE_CYGWIN=
 USE_MINGW=
 USE_DATA_GENERAL=
 
 USE_MINGW=
 USE_DATA_GENERAL=
 
+dnl on some platforms xxx_r() functions are declared inside "#ifdef
+dnl _REENTRANT" and it's easier to just define this symbol for these platforms
+dnl than checking it during run-time
+NEEDS_D_REENTRANT_FOR_R_FUNCS=0
+
 dnl the list of all available toolkits
 dnl the list of all available toolkits
-ALL_TOOLKITS="CYGWIN GTK MINGW MOTIF WINE"
+ALL_TOOLKITS="CYGWIN GTK MINGW MOTIF WINE PM"
 
 dnl NB: these wxUSE_XXX constants have value of 0 or 1 unlike all the other ones
 dnl     which are either yes or no
 
 dnl NB: these wxUSE_XXX constants have value of 0 or 1 unlike all the other ones
 dnl     which are either yes or no
@@ -92,6 +464,7 @@ DEFAULT_wxUSE_GTK=0
 DEFAULT_wxUSE_MOTIF=0
 DEFAULT_wxUSE_MSW=0
 DEFAULT_wxUSE_WINE=0
 DEFAULT_wxUSE_MOTIF=0
 DEFAULT_wxUSE_MSW=0
 DEFAULT_wxUSE_WINE=0
+DEFAULT_wxUSE_PM=0
 
 dnl these are the values which are really default for the given platform -
 dnl they're not cached and are only used if no --with-toolkit was given *and*
 
 dnl these are the values which are really default for the given platform -
 dnl they're not cached and are only used if no --with-toolkit was given *and*
@@ -100,11 +473,17 @@ DEFAULT_DEFAULT_wxUSE_GTK=0
 DEFAULT_DEFAULT_wxUSE_MOTIF=0
 DEFAULT_DEFAULT_wxUSE_MSW=0
 DEFAULT_DEFAULT_wxUSE_WINE=0
 DEFAULT_DEFAULT_wxUSE_MOTIF=0
 DEFAULT_DEFAULT_wxUSE_MSW=0
 DEFAULT_DEFAULT_wxUSE_WINE=0
+DEFAULT_DEFAULT_wxUSE_PM=0
 
 
+dnl to support a new system, you need to add its canonical name (as determined
+dnl by config.sub or specified by the configure command line) to this "case"
+dnl and also define the shared library flags below - search for
+dnl SHARED_LIB_SETUP to find the exact place
 case "${host}" in
   *-hp-hpux* )
     USE_HPUX=1
     DEFAULT_DEFAULT_wxUSE_MOTIF=1
 case "${host}" in
   *-hp-hpux* )
     USE_HPUX=1
     DEFAULT_DEFAULT_wxUSE_MOTIF=1
+    NEEDS_D_REENTRANT_FOR_R_FUNCS=1
     AC_DEFINE(__HPUX__)
   ;;
   *-*-linux* )
     AC_DEFINE(__HPUX__)
   ;;
   *-*-linux* )
@@ -132,6 +511,7 @@ case "${host}" in
     AC_DEFINE(__SOLARIS__)
     AC_DEFINE(__SVR4__)
     DEFAULT_DEFAULT_wxUSE_MOTIF=1
     AC_DEFINE(__SOLARIS__)
     AC_DEFINE(__SVR4__)
     DEFAULT_DEFAULT_wxUSE_MOTIF=1
+    NEEDS_D_REENTRANT_FOR_R_FUNCS=1
   ;;
   *-*-sunos4* )
     USE_SUN=1
   ;;
   *-*-sunos4* )
     USE_SUN=1
@@ -180,27 +560,29 @@ case "${host}" in
     DEFAULT_DEFAULT_wxUSE_MOTIF=1
   ;;
 
     DEFAULT_DEFAULT_wxUSE_MOTIF=1
   ;;
 
-  *-*-cygwin32* )
-    USE_UNIX=0
-    AC_DEFINE(__WIN32__)
-    AC_DEFINE(__WIN95__)
-    AC_DEFINE(__WINDOWS__)
-    AC_DEFINE(__GNUWIN32__)
-    AC_DEFINE(WINVER, 0x0400)
-    DEFAULT_DEFAULT_wxUSE_MSW=1
-  ;;
-  *-*-mingw32* )
+  *-*-cygwin32* | *-*-mingw32* )
     USE_UNIX=0
     USE_UNIX=0
+    USE_WIN32=1
     AC_DEFINE(__WIN32__)
     AC_DEFINE(__WIN95__)
     AC_DEFINE(__WINDOWS__)
     AC_DEFINE(__GNUWIN32__)
     AC_DEFINE(__WIN32__)
     AC_DEFINE(__WIN95__)
     AC_DEFINE(__WINDOWS__)
     AC_DEFINE(__GNUWIN32__)
+    AC_DEFINE(STRICT)
     AC_DEFINE(WINVER, 0x0400)
     AC_DEFINE(WINVER, 0x0400)
+    PROGRAM_EXT=".exe"
     DEFAULT_DEFAULT_wxUSE_MSW=1
   ;;
 
   *-pc-os2_emx )
     AC_DEFINE(__EMX__)
     DEFAULT_DEFAULT_wxUSE_MSW=1
   ;;
 
   *-pc-os2_emx )
     AC_DEFINE(__EMX__)
+    PROGRAM_EXT=".exe"
+    DEFAULT_DEFAULT_wxUSE_PM=1
+  ;;
+
+  *-*-beos* )
+    dnl leave USE_UNIX on - BeOS is sufficiently Unix-like for this
+    USE_BEOS=1
+    AC_DEFINE(__BEOS__)
   ;;
 
   *)
   ;;
 
   *)
@@ -208,11 +590,16 @@ case "${host}" in
 esac
 
 if test "$USE_UNIX" = 1 ; then
 esac
 
 if test "$USE_UNIX" = 1 ; then
-  wxUSE_UNIX=yes
-  AC_DEFINE(__UNIX__)
-  EXTRA_VPATH="$EXTRA_VPATH:\$(srcdir)/../unix"
-  SRC_SUBDIRS="$SRC_SUBDIRS unix"
-  INCLUDE_SUBDIRS="$INCLUDE_SUBDIRS unix"
+    wxUSE_UNIX=yes
+    AC_DEFINE(__UNIX__)
+
+    SRC_SUBDIRS="$SRC_SUBDIRS unix"
+    INCLUDE_SUBDIRS="$INCLUDE_SUBDIRS unix"
+fi
+
+if test "$USE_BEOS" = 1; then
+    SRC_SUBDIRS="$SRC_SUBDIRS be"
+    INCLUDE_SUBDIRS="$INCLUDE_SUBDIRS be"
 fi
 
 dnl Linux: test for libc5/glibc2: glibc2 has gettext() included
 fi
 
 dnl Linux: test for libc5/glibc2: glibc2 has gettext() included
@@ -238,10 +625,13 @@ DEBUG_CONFIGURE=0
 if test $DEBUG_CONFIGURE = 1; then
   DEFAULT_wxUSE_THREADS=yes
 
 if test $DEBUG_CONFIGURE = 1; then
   DEFAULT_wxUSE_THREADS=yes
 
-  DEFAULT_wxUSE_OPTIMISE=no
+  DEFAULT_wxUSE_SHARED=yes
+  DEFAULT_wxUSE_OPTIMISE=yes
   DEFAULT_wxUSE_PROFILE=no
   DEFAULT_wxUSE_PROFILE=no
+  DEFAULT_wxUSE_NO_DEPS=no
   DEFAULT_wxUSE_NO_RTTI=no
   DEFAULT_wxUSE_NO_EXCEPTIONS=no
   DEFAULT_wxUSE_NO_RTTI=no
   DEFAULT_wxUSE_NO_EXCEPTIONS=no
+  DEFAULT_wxUSE_PERMISSIVE=no
   DEFAULT_wxUSE_DEBUG_FLAG=yes
   DEFAULT_wxUSE_DEBUG_INFO=yes
   DEFAULT_wxUSE_DEBUG_GDB=yes
   DEFAULT_wxUSE_DEBUG_FLAG=yes
   DEFAULT_wxUSE_DEBUG_INFO=yes
   DEFAULT_wxUSE_DEBUG_GDB=yes
@@ -256,8 +646,8 @@ if test $DEBUG_CONFIGURE = 1; then
 
   DEFAULT_wxUSE_ZLIB=no
   DEFAULT_wxUSE_LIBPNG=no
 
   DEFAULT_wxUSE_ZLIB=no
   DEFAULT_wxUSE_LIBPNG=no
-  DEFAULT_wxUSE_LIBGIF=no
   DEFAULT_wxUSE_LIBJPEG=no
   DEFAULT_wxUSE_LIBJPEG=no
+  DEFAULT_wxUSE_LIBTIFF=no
   DEFAULT_wxUSE_ODBC=no
 
   DEFAULT_wxUSE_STD_IOSTREAM=no
   DEFAULT_wxUSE_ODBC=no
 
   DEFAULT_wxUSE_STD_IOSTREAM=no
@@ -269,6 +659,7 @@ if test $DEBUG_CONFIGURE = 1; then
   DEFAULT_wxUSE_CONFIG=no
   DEFAULT_wxUSE_STREAMS=no
   DEFAULT_wxUSE_SOCKETS=no
   DEFAULT_wxUSE_CONFIG=no
   DEFAULT_wxUSE_STREAMS=no
   DEFAULT_wxUSE_SOCKETS=no
+  DEFAULT_wxUSE_DIALUP_MANAGER=no
   DEFAULT_wxUSE_SERIAL=no
   DEFAULT_wxUSE_JOYSTICK=no
   DEFAULT_wxUSE_DYNLIB_CLASS=no
   DEFAULT_wxUSE_SERIAL=no
   DEFAULT_wxUSE_JOYSTICK=no
   DEFAULT_wxUSE_DYNLIB_CLASS=no
@@ -318,6 +709,7 @@ if test $DEBUG_CONFIGURE = 1; then
   DEFAULT_wxUSE_COMBOBOX=no
   DEFAULT_wxUSE_GAUGE=no
   DEFAULT_wxUSE_GRID=no
   DEFAULT_wxUSE_COMBOBOX=no
   DEFAULT_wxUSE_GAUGE=no
   DEFAULT_wxUSE_GRID=no
+  DEFAULT_wxUSE_NEW_GRID=no
   DEFAULT_wxUSE_IMAGLIST=no
   DEFAULT_wxUSE_LISTBOX=no
   DEFAULT_wxUSE_LISTCTRL=no
   DEFAULT_wxUSE_IMAGLIST=no
   DEFAULT_wxUSE_LISTBOX=no
   DEFAULT_wxUSE_LISTCTRL=no
@@ -328,6 +720,7 @@ if test $DEBUG_CONFIGURE = 1; then
   DEFAULT_wxUSE_SCROLLBAR=no
   DEFAULT_wxUSE_SLIDER=no
   DEFAULT_wxUSE_SPINBTN=no
   DEFAULT_wxUSE_SCROLLBAR=no
   DEFAULT_wxUSE_SLIDER=no
   DEFAULT_wxUSE_SPINBTN=no
+  DEFAULT_wxUSE_SPINCTRL=no
   DEFAULT_wxUSE_SPLITTER=no
   DEFAULT_wxUSE_STATBMP=no
   DEFAULT_wxUSE_STATBOX=no
   DEFAULT_wxUSE_SPLITTER=no
   DEFAULT_wxUSE_STATBMP=no
   DEFAULT_wxUSE_STATBOX=no
@@ -335,17 +728,26 @@ if test $DEBUG_CONFIGURE = 1; then
   DEFAULT_wxUSE_STATUSBAR=yes
   DEFAULT_wxUSE_TABDIALOG=no
   DEFAULT_wxUSE_TOOLBAR=no
   DEFAULT_wxUSE_STATUSBAR=yes
   DEFAULT_wxUSE_TABDIALOG=no
   DEFAULT_wxUSE_TOOLBAR=no
+  DEFAULT_wxUSE_TOOLBAR_NATIVE=no
+  DEFAULT_wxUSE_TOOLBAR_SIMPLE=no
   DEFAULT_wxUSE_TREECTRL=no
 
   DEFAULT_wxUSE_UNICODE=no
   DEFAULT_wxUSE_WCSRTOMBS=no
   DEFAULT_wxUSE_TREECTRL=no
 
   DEFAULT_wxUSE_UNICODE=no
   DEFAULT_wxUSE_WCSRTOMBS=no
+
+  DEFAULT_wxUSE_GIF=no
+  DEFAULT_wxUSE_PCX=no
+  DEFAULT_wxUSE_PNM=no
 else
   DEFAULT_wxUSE_THREADS=yes
 
 else
   DEFAULT_wxUSE_THREADS=yes
 
+  DEFAULT_wxUSE_SHARED=yes
   DEFAULT_wxUSE_OPTIMISE=yes
   DEFAULT_wxUSE_PROFILE=no
   DEFAULT_wxUSE_OPTIMISE=yes
   DEFAULT_wxUSE_PROFILE=no
+  DEFAULT_wxUSE_NO_DEPS=no
   DEFAULT_wxUSE_NO_RTTI=no
   DEFAULT_wxUSE_NO_EXCEPTIONS=no
   DEFAULT_wxUSE_NO_RTTI=no
   DEFAULT_wxUSE_NO_EXCEPTIONS=no
+  DEFAULT_wxUSE_PERMISSIVE=no
   DEFAULT_wxUSE_DEBUG_FLAG=no
   DEFAULT_wxUSE_DEBUG_INFO=no
   DEFAULT_wxUSE_DEBUG_GDB=no
   DEFAULT_wxUSE_DEBUG_FLAG=no
   DEFAULT_wxUSE_DEBUG_INFO=no
   DEFAULT_wxUSE_DEBUG_GDB=no
@@ -360,8 +762,8 @@ else
 
   DEFAULT_wxUSE_ZLIB=yes
   DEFAULT_wxUSE_LIBPNG=yes
 
   DEFAULT_wxUSE_ZLIB=yes
   DEFAULT_wxUSE_LIBPNG=yes
-  DEFAULT_wxUSE_LIBGIF=yes
   DEFAULT_wxUSE_LIBJPEG=yes
   DEFAULT_wxUSE_LIBJPEG=yes
+  DEFAULT_wxUSE_LIBTIFF=yes
   DEFAULT_wxUSE_ODBC=no
 
   DEFAULT_wxUSE_STD_IOSTREAM=no
   DEFAULT_wxUSE_ODBC=no
 
   DEFAULT_wxUSE_STD_IOSTREAM=no
@@ -373,10 +775,11 @@ else
   DEFAULT_wxUSE_CONFIG=yes
   DEFAULT_wxUSE_STREAMS=yes
   DEFAULT_wxUSE_SOCKETS=yes
   DEFAULT_wxUSE_CONFIG=yes
   DEFAULT_wxUSE_STREAMS=yes
   DEFAULT_wxUSE_SOCKETS=yes
+  DEFAULT_wxUSE_DIALUP_MANAGER=yes
   DEFAULT_wxUSE_SERIAL=yes
   DEFAULT_wxUSE_JOYSTICK=yes
   DEFAULT_wxUSE_DYNLIB_CLASS=yes
   DEFAULT_wxUSE_SERIAL=yes
   DEFAULT_wxUSE_JOYSTICK=yes
   DEFAULT_wxUSE_DYNLIB_CLASS=yes
-  DEFAULT_wxUSE_LONGLONG=no
+  DEFAULT_wxUSE_LONGLONG=yes
 
   DEFAULT_wxUSE_AFM_FOR_POSTSCRIPT=yes
   DEFAULT_wxUSE_NORMALIZED_PS_FONTS=yes
 
   DEFAULT_wxUSE_AFM_FOR_POSTSCRIPT=yes
   DEFAULT_wxUSE_NORMALIZED_PS_FONTS=yes
@@ -422,6 +825,7 @@ else
   DEFAULT_wxUSE_COMBOBOX=yes
   DEFAULT_wxUSE_GAUGE=yes
   DEFAULT_wxUSE_GRID=yes
   DEFAULT_wxUSE_COMBOBOX=yes
   DEFAULT_wxUSE_GAUGE=yes
   DEFAULT_wxUSE_GRID=yes
+  DEFAULT_wxUSE_NEW_GRID=no
   DEFAULT_wxUSE_IMAGLIST=yes
   DEFAULT_wxUSE_LISTBOX=yes
   DEFAULT_wxUSE_LISTCTRL=yes
   DEFAULT_wxUSE_IMAGLIST=yes
   DEFAULT_wxUSE_LISTBOX=yes
   DEFAULT_wxUSE_LISTCTRL=yes
@@ -432,6 +836,7 @@ else
   DEFAULT_wxUSE_SCROLLBAR=yes
   DEFAULT_wxUSE_SLIDER=yes
   DEFAULT_wxUSE_SPINBTN=yes
   DEFAULT_wxUSE_SCROLLBAR=yes
   DEFAULT_wxUSE_SLIDER=yes
   DEFAULT_wxUSE_SPINBTN=yes
+  DEFAULT_wxUSE_SPINCTRL=yes
   DEFAULT_wxUSE_SPLITTER=yes
   DEFAULT_wxUSE_STATBMP=yes
   DEFAULT_wxUSE_STATBOX=yes
   DEFAULT_wxUSE_SPLITTER=yes
   DEFAULT_wxUSE_STATBMP=yes
   DEFAULT_wxUSE_STATBOX=yes
@@ -439,10 +844,16 @@ else
   DEFAULT_wxUSE_STATUSBAR=yes
   DEFAULT_wxUSE_TABDIALOG=no
   DEFAULT_wxUSE_TOOLBAR=yes
   DEFAULT_wxUSE_STATUSBAR=yes
   DEFAULT_wxUSE_TABDIALOG=no
   DEFAULT_wxUSE_TOOLBAR=yes
+  DEFAULT_wxUSE_TOOLBAR_NATIVE=yes
+  DEFAULT_wxUSE_TOOLBAR_SIMPLE=yes
   DEFAULT_wxUSE_TREECTRL=yes
 
   DEFAULT_wxUSE_UNICODE=no
   DEFAULT_wxUSE_WCSRTOMBS=no
   DEFAULT_wxUSE_TREECTRL=yes
 
   DEFAULT_wxUSE_UNICODE=no
   DEFAULT_wxUSE_WCSRTOMBS=no
+
+  DEFAULT_wxUSE_GIF=yes
+  DEFAULT_wxUSE_PCX=yes
+  DEFAULT_wxUSE_PNM=yes
 fi
 
 dnl WX_ARG_WITH should be used to select whether an external package will be
 fi
 
 dnl WX_ARG_WITH should be used to select whether an external package will be
@@ -464,23 +875,40 @@ for toolkit in `echo $ALL_TOOLKITS`; do
   fi
 done
 
   fi
 done
 
+dnl ---------------------------------------------------------------------------
+dnl --disable-gui will build only non-GUI part of wxWindows: check for this
+dnl first to disable many other switches if it's given
+dnl
+dnl NB: this is still in testing stage, don't use if you don't know what you're
+dnl     doing
+dnl ---------------------------------------------------------------------------
+
+WX_ARG_ENABLE(gui,         [  --enable-gui            use GUI classes], wxUSE_GUI)
+
+if test "$wxUSE_GUI" = "yes"; then
+
 AC_ARG_WITH(gtk,           [  --with-gtk              use GTK+], [wxUSE_GTK="$withval" CACHE_GTK=1 TOOLKIT_GIVEN=1])
 AC_ARG_WITH(motif,         [  --with-motif            use Motif/Lesstif], [wxUSE_MOTIF="$withval" CACHE_MOTIF=1 TOOLKIT_GIVEN=1])
 AC_ARG_WITH(wine,          [  --with-wine             use WINE], [wxUSE_WINE="$withval" CACHE_WINE=1 TOOLKIT_GIVEN=1])
 AC_ARG_WITH(cygwin,        [  --with-cygwin           use Cygwin for MS-Windows], [wxUSE_CYGWIN="$withval" CACHE_CYGWIN=1 TOOLKIT_GIVEN=1])
 AC_ARG_WITH(mingw,         [  --with-mingw            use GCC Minimal MS-Windows], [wxUSE_MINGW="$withval" CACHE_MINGW=1 TOOLKIT_GIVEN=1])
 AC_ARG_WITH(gtk,           [  --with-gtk              use GTK+], [wxUSE_GTK="$withval" CACHE_GTK=1 TOOLKIT_GIVEN=1])
 AC_ARG_WITH(motif,         [  --with-motif            use Motif/Lesstif], [wxUSE_MOTIF="$withval" CACHE_MOTIF=1 TOOLKIT_GIVEN=1])
 AC_ARG_WITH(wine,          [  --with-wine             use WINE], [wxUSE_WINE="$withval" CACHE_WINE=1 TOOLKIT_GIVEN=1])
 AC_ARG_WITH(cygwin,        [  --with-cygwin           use Cygwin for MS-Windows], [wxUSE_CYGWIN="$withval" CACHE_CYGWIN=1 TOOLKIT_GIVEN=1])
 AC_ARG_WITH(mingw,         [  --with-mingw            use GCC Minimal MS-Windows], [wxUSE_MINGW="$withval" CACHE_MINGW=1 TOOLKIT_GIVEN=1])
+AC_ARG_WITH(pm,            [  --with-pm               use OS/2 Presentation Manager], [wxUSE_PM="$withval" CACHE_PM=1 TOOLKIT_GIVEN=1])
 
 AC_ARG_WITH(gtk-prefix,    [  --with-gtk-prefix=PFX   Prefix where GTK is installed],
             gtk_config_prefix="$withval", gtk_config_prefix="")
 AC_ARG_WITH(gtk-exec-prefix, [  --with-gtk-exec-prefix=PFX  Exec prefix where GTK is installed],
             gtk_config_exec_prefix="$withval", gtk_config_exec_prefix="")
 
 
 AC_ARG_WITH(gtk-prefix,    [  --with-gtk-prefix=PFX   Prefix where GTK is installed],
             gtk_config_prefix="$withval", gtk_config_prefix="")
 AC_ARG_WITH(gtk-exec-prefix, [  --with-gtk-exec-prefix=PFX  Exec prefix where GTK is installed],
             gtk_config_exec_prefix="$withval", gtk_config_exec_prefix="")
 
-WX_ARG_WITH(dmalloc,       [  --with-dmalloc          use dmalloc library (www.letters.com/dmalloc)], wxUSE_DMALLOC)
-WX_ARG_WITH(zlib,          [  --with-zlib             use zlib for LZW compression], wxUSE_ZLIB)
 WX_ARG_WITH(libpng,        [  --with-libpng           use libpng (PNG image format)], wxUSE_LIBPNG)
 WX_ARG_WITH(libpng,        [  --with-libpng           use libpng (PNG image format)], wxUSE_LIBPNG)
-WX_ARG_WITH(libgif,        [  --with-libgif           use libgif (GIF file format)], wxUSE_LIBGIF)
 WX_ARG_WITH(libjpeg,       [  --with-libjpeg          use libjpeg (JPEG file format)], wxUSE_LIBJPEG)
 WX_ARG_WITH(libjpeg,       [  --with-libjpeg          use libjpeg (JPEG file format)], wxUSE_LIBJPEG)
+WX_ARG_WITH(libtiff,       [  --with-libtiff          use libtiff (TIFF file format)], wxUSE_LIBTIFF)
 WX_ARG_WITH(opengl,        [  --with-opengl           use OpenGL (or Mesa)], wxUSE_OPENGL)
 WX_ARG_WITH(opengl,        [  --with-opengl           use OpenGL (or Mesa)], wxUSE_OPENGL)
+
+fi
+dnl for GUI only
+
+WX_ARG_WITH(dmalloc,       [  --with-dmalloc          use dmalloc library (www.letters.com/dmalloc)], wxUSE_DMALLOC)
+WX_ARG_WITH(zlib,          [  --with-zlib             use zlib for LZW compression], wxUSE_ZLIB)
 WX_ARG_WITH(odbc,          [  --with-odbc             use the IODBC and wxODBC classes], wxUSE_ODBC)
 
 dnl ====================
 WX_ARG_WITH(odbc,          [  --with-odbc             use the IODBC and wxODBC classes], wxUSE_ODBC)
 
 dnl ====================
@@ -491,6 +919,7 @@ dnl ---------------------------------------------------------------------------
 dnl compile options
 dnl ---------------------------------------------------------------------------
 
 dnl compile options
 dnl ---------------------------------------------------------------------------
 
+WX_ARG_ENABLE(shared,      [  --enable-shared         create shared library code], wxUSE_SHARED)
 WX_ARG_ENABLE(optimise,    [  --enable-optimise       create optimised code], wxUSE_OPTIMISE)
 WX_ARG_ENABLE(debug,       [  --enable-debug          same as debug_flag and debug_info], wxUSE_DEBUG)
 
 WX_ARG_ENABLE(optimise,    [  --enable-optimise       create optimised code], wxUSE_OPTIMISE)
 WX_ARG_ENABLE(debug,       [  --enable-debug          same as debug_flag and debug_info], wxUSE_DEBUG)
 
@@ -510,15 +939,8 @@ WX_ARG_ENABLE(mem_tracing,   [  --enable-mem_tracing    create code with memory
 WX_ARG_ENABLE(profile,       [  --enable-profile        create code with profiling information], wxUSE_PROFILE)
 WX_ARG_ENABLE(no_rtti,       [  --enable-no_rtti        create code without RTTI information], wxUSE_NO_RTTI)
 WX_ARG_ENABLE(no_exceptions, [  --enable-no_exceptions  create code without exceptions information], wxUSE_NO_EXCEPTIONS)
 WX_ARG_ENABLE(profile,       [  --enable-profile        create code with profiling information], wxUSE_PROFILE)
 WX_ARG_ENABLE(no_rtti,       [  --enable-no_rtti        create code without RTTI information], wxUSE_NO_RTTI)
 WX_ARG_ENABLE(no_exceptions, [  --enable-no_exceptions  create code without exceptions information], wxUSE_NO_EXCEPTIONS)
-
-dnl ---------------------------------------------------------------------------
-dnl --disable-gui will build only non-GUI part of wxWindows
-dnl
-dnl NB: this is still in testing stage, don't use if you don't know what you're
-dnl     doing
-dnl ---------------------------------------------------------------------------
-
-WX_ARG_ENABLE(gui,         [  --enable-gui            use GUI classes], wxUSE_GUI)
+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)
 
 dnl ---------------------------------------------------------------------------
 dnl (small) optional non GUI classes
 
 dnl ---------------------------------------------------------------------------
 dnl (small) optional non GUI classes
@@ -526,7 +948,15 @@ dnl ---------------------------------------------------------------------------
 
 WX_ARG_ENABLE(intl,          [  --enable-intl           use internationalization system], wxUSE_INTL)
 WX_ARG_ENABLE(config,        [  --enable-config         use wxConfig (and derived) classes], wxUSE_CONFIG)
 
 WX_ARG_ENABLE(intl,          [  --enable-intl           use internationalization system], wxUSE_INTL)
 WX_ARG_ENABLE(config,        [  --enable-config         use wxConfig (and derived) classes], wxUSE_CONFIG)
+
+dnl can't use sockets without GUI so far
+if test "$wxUSE_GUI" = "yes"; then
 WX_ARG_ENABLE(sockets,       [  --enable-sockets        use socket/network classes], wxUSE_SOCKETS)
 WX_ARG_ENABLE(sockets,       [  --enable-sockets        use socket/network classes], wxUSE_SOCKETS)
+else
+wxUSE_SOCKETS=no
+fi
+
+WX_ARG_ENABLE(dialupman,     [  --enable-dialupman      use dialup network classes], wxUSE_DIALUP_MANAGER)
 WX_ARG_ENABLE(ipc,           [  --enable-ipc            use interprocess communication (wxSocket etc.)], wxUSE_IPC)
 WX_ARG_ENABLE(apple_ieee,    [  --enable-apple_ieee     use the Apple IEEE codec], wxUSE_APPLE_IEEE)
 WX_ARG_ENABLE(timedate,      [  --enable-timedate       use date/time classes], wxUSE_TIMEDATE)
 WX_ARG_ENABLE(ipc,           [  --enable-ipc            use interprocess communication (wxSocket etc.)], wxUSE_IPC)
 WX_ARG_ENABLE(apple_ieee,    [  --enable-apple_ieee     use the Apple IEEE codec], wxUSE_APPLE_IEEE)
 WX_ARG_ENABLE(timedate,      [  --enable-timedate       use date/time classes], wxUSE_TIMEDATE)
@@ -554,6 +984,8 @@ dnl ---------------------------------------------------------------------------
 WX_ARG_ENABLE(threads,     [  --enable-threads        use threads], wxUSE_THREADS)
 WX_ARG_ENABLE(serial,      [  --enable-serial         use class serialization], wxUSE_SERIAL)
 
 WX_ARG_ENABLE(threads,     [  --enable-threads        use threads], wxUSE_THREADS)
 WX_ARG_ENABLE(serial,      [  --enable-serial         use class serialization], wxUSE_SERIAL)
 
+if test "$wxUSE_GUI" = "yes"; then
+
 dnl ---------------------------------------------------------------------------
 dnl "big" GUI options
 dnl ---------------------------------------------------------------------------
 dnl ---------------------------------------------------------------------------
 dnl "big" GUI options
 dnl ---------------------------------------------------------------------------
@@ -610,6 +1042,7 @@ if test "$wxUSE_CONTROLS" = "yes"; then
   DEFAULT_wxUSE_CHOICE=yes
   DEFAULT_wxUSE_GAUGE=yes
   DEFAULT_wxUSE_GRID=yes
   DEFAULT_wxUSE_CHOICE=yes
   DEFAULT_wxUSE_GAUGE=yes
   DEFAULT_wxUSE_GRID=yes
+  DEFAULT_wxUSE_NEW_GRID=no
   DEFAULT_wxUSE_IMAGLIST=yes
   DEFAULT_wxUSE_LISTBOX=yes
   DEFAULT_wxUSE_LISTCTRL=yes
   DEFAULT_wxUSE_IMAGLIST=yes
   DEFAULT_wxUSE_LISTBOX=yes
   DEFAULT_wxUSE_LISTCTRL=yes
@@ -620,6 +1053,7 @@ if test "$wxUSE_CONTROLS" = "yes"; then
   DEFAULT_wxUSE_SCROLLBAR=yes
   DEFAULT_wxUSE_SLIDER=yes
   DEFAULT_wxUSE_SPINBTN=yes
   DEFAULT_wxUSE_SCROLLBAR=yes
   DEFAULT_wxUSE_SLIDER=yes
   DEFAULT_wxUSE_SPINBTN=yes
+  DEFAULT_wxUSE_SPINCTRL=yes
   DEFAULT_wxUSE_SPLITTER=yes
   DEFAULT_wxUSE_STATBMP=yes
   DEFAULT_wxUSE_STATBOX=yes
   DEFAULT_wxUSE_SPLITTER=yes
   DEFAULT_wxUSE_STATBMP=yes
   DEFAULT_wxUSE_STATBOX=yes
@@ -627,6 +1061,8 @@ if test "$wxUSE_CONTROLS" = "yes"; then
   DEFAULT_wxUSE_STATUSBAR=yes
   DEFAULT_wxUSE_TAB_DIALOG=yes
   DEFAULT_wxUSE_TOOLBAR=yes
   DEFAULT_wxUSE_STATUSBAR=yes
   DEFAULT_wxUSE_TAB_DIALOG=yes
   DEFAULT_wxUSE_TOOLBAR=yes
+  DEFAULT_wxUSE_TOOLBAR_NATIVE=yes
+  DEFAULT_wxUSE_TOOLBAR_SIMPLE=yes
   DEFAULT_wxUSE_TOOLTIPS=yes
   DEFAULT_wxUSE_TREECTRL=yes
 elif test "$wxUSE_CONTROLS" = "no"; then
   DEFAULT_wxUSE_TOOLTIPS=yes
   DEFAULT_wxUSE_TREECTRL=yes
 elif test "$wxUSE_CONTROLS" = "no"; then
@@ -639,6 +1075,7 @@ elif test "$wxUSE_CONTROLS" = "no"; then
   DEFAULT_wxUSE_CHOICE=no
   DEFAULT_wxUSE_GAUGE=no
   DEFAULT_wxUSE_GRID=no
   DEFAULT_wxUSE_CHOICE=no
   DEFAULT_wxUSE_GAUGE=no
   DEFAULT_wxUSE_GRID=no
+  DEFAULT_wxUSE_NEW_GRID=no
   DEFAULT_wxUSE_IMAGLIST=no
   DEFAULT_wxUSE_LISTBOX=no
   DEFAULT_wxUSE_LISTCTRL=no
   DEFAULT_wxUSE_IMAGLIST=no
   DEFAULT_wxUSE_LISTBOX=no
   DEFAULT_wxUSE_LISTCTRL=no
@@ -649,6 +1086,7 @@ elif test "$wxUSE_CONTROLS" = "no"; then
   DEFAULT_wxUSE_SCROLLBAR=no
   DEFAULT_wxUSE_SLIDER=no
   DEFAULT_wxUSE_SPINBTN=no
   DEFAULT_wxUSE_SCROLLBAR=no
   DEFAULT_wxUSE_SLIDER=no
   DEFAULT_wxUSE_SPINBTN=no
+  DEFAULT_wxUSE_SPINCTRL=no
   DEFAULT_wxUSE_SPLITTER=no
   DEFAULT_wxUSE_STATBMP=no
   DEFAULT_wxUSE_STATBOX=no
   DEFAULT_wxUSE_SPLITTER=no
   DEFAULT_wxUSE_STATBMP=no
   DEFAULT_wxUSE_STATBOX=no
@@ -656,6 +1094,8 @@ elif test "$wxUSE_CONTROLS" = "no"; then
   DEFAULT_wxUSE_STATUSBAR=no
   DEFAULT_wxUSE_TAB_DIALOG=no
   DEFAULT_wxUSE_TOOLBAR=no
   DEFAULT_wxUSE_STATUSBAR=no
   DEFAULT_wxUSE_TAB_DIALOG=no
   DEFAULT_wxUSE_TOOLBAR=no
+  DEFAULT_wxUSE_TOOLBAR_NATIVE=no
+  DEFAULT_wxUSE_TOOLBAR_SIMPLE=no
   DEFAULT_wxUSE_TOOLTIPS=no
   DEFAULT_wxUSE_TREECTRL=no
 fi
   DEFAULT_wxUSE_TOOLTIPS=no
   DEFAULT_wxUSE_TREECTRL=no
 fi
@@ -669,6 +1109,7 @@ WX_ARG_ENABLE(choice,      [  --enable-choice         use wxChoice class], wxUSE
 WX_ARG_ENABLE(combobox,    [  --enable-combobox       use wxComboBox classes], wxUSE_COMBOBOX)
 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(combobox,    [  --enable-combobox       use wxComboBox classes], wxUSE_COMBOBOX)
 WX_ARG_ENABLE(gauge,       [  --enable-gauge          use wxGauge class], wxUSE_GAUGE)
 WX_ARG_ENABLE(grid,        [  --enable-grid           use wxGrid class], wxUSE_GRID)
+WX_ARG_ENABLE(newgrid,     [  --enable-newgrid        use new wxGrid class], wxUSE_NEW_GRID)
 WX_ARG_ENABLE(imaglist,    [  --enable-imaglist       use wxImageList class], wxUSE_IMAGLIST)
 WX_ARG_ENABLE(listbox,     [  --enable-listbox        use wxListBox class], wxUSE_LISTBOX)
 WX_ARG_ENABLE(listctrl,    [  --enable-listctrl       use wxListCtrl class], wxUSE_LISTCTRL)
 WX_ARG_ENABLE(imaglist,    [  --enable-imaglist       use wxImageList class], wxUSE_IMAGLIST)
 WX_ARG_ENABLE(listbox,     [  --enable-listbox        use wxListBox class], wxUSE_LISTBOX)
 WX_ARG_ENABLE(listctrl,    [  --enable-listctrl       use wxListCtrl class], wxUSE_LISTCTRL)
@@ -679,6 +1120,7 @@ WX_ARG_ENABLE(sash,        [  --enable-sash           use wxSashWindow class], w
 WX_ARG_ENABLE(scrollbar,   [  --enable-scrollbar      use wxScrollBar class and scrollable windows], wxUSE_SCROLLBAR)
 WX_ARG_ENABLE(slider,      [  --enable-slider         use wxSlider class], wxUSE_SLIDER)
 WX_ARG_ENABLE(spinbtn,     [  --enable-spinbtn        use wxSpinButton class], wxUSE_SPINBTN)
 WX_ARG_ENABLE(scrollbar,   [  --enable-scrollbar      use wxScrollBar class and scrollable windows], wxUSE_SCROLLBAR)
 WX_ARG_ENABLE(slider,      [  --enable-slider         use wxSlider class], wxUSE_SLIDER)
 WX_ARG_ENABLE(spinbtn,     [  --enable-spinbtn        use wxSpinButton class], wxUSE_SPINBTN)
+WX_ARG_ENABLE(spinctrl,    [  --enable-spinctrl       use wxSpinCtrl class], wxUSE_SPINCTRL)
 WX_ARG_ENABLE(splitter,    [  --enable-splitter       use wxSplitterWindow class], wxUSE_SPLITTER)
 WX_ARG_ENABLE(statbmp,     [  --enable-statbmp        use wxStaticBitmap class], wxUSE_STATBMP)
 WX_ARG_ENABLE(statbox,     [  --enable-statbox        use wxStaticBox class], wxUSE_STATBOX)
 WX_ARG_ENABLE(splitter,    [  --enable-splitter       use wxSplitterWindow class], wxUSE_SPLITTER)
 WX_ARG_ENABLE(statbmp,     [  --enable-statbmp        use wxStaticBitmap class], wxUSE_STATBMP)
 WX_ARG_ENABLE(statbox,     [  --enable-statbox        use wxStaticBox class], wxUSE_STATBOX)
@@ -686,6 +1128,8 @@ WX_ARG_ENABLE(statline,    [  --enable-statline       use wxStaticLine class], w
 WX_ARG_ENABLE(statusbar,   [  --enable-statusbar      use wxStatusBar class], wxUSE_STATUSBAR)
 WX_ARG_ENABLE(tabdialog,   [  --enable-tabdialog      use wxTabControl class], wxUSE_TABDIALOG)
 WX_ARG_ENABLE(toolbar,     [  --enable-toolbar        use wxToolBar class], wxUSE_TOOLBAR)
 WX_ARG_ENABLE(statusbar,   [  --enable-statusbar      use wxStatusBar class], wxUSE_STATUSBAR)
 WX_ARG_ENABLE(tabdialog,   [  --enable-tabdialog      use wxTabControl class], wxUSE_TABDIALOG)
 WX_ARG_ENABLE(toolbar,     [  --enable-toolbar        use wxToolBar class], wxUSE_TOOLBAR)
+WX_ARG_ENABLE(tbarnative,  [  --enable-tbarnative     use native wxToolBar class], wxUSE_TOOLBAR_NATIVE)
+WX_ARG_ENABLE(tbarsmpl,    [  --enable-tbarsmpl       use wxToolBarSimple class], wxUSE_TOOLBAR_SIMPLE)
 WX_ARG_ENABLE(treectrl,    [  --enable-treectrl       use wxTreeCtrl class], wxUSE_TREECTRL)
 
 dnl ---------------------------------------------------------------------------
 WX_ARG_ENABLE(treectrl,    [  --enable-treectrl       use wxTreeCtrl class], wxUSE_TREECTRL)
 
 dnl ---------------------------------------------------------------------------
@@ -704,6 +1148,17 @@ WX_ARG_ENABLE(splines,     [  --enable-splines        use spline drawing code],
 WX_ARG_ENABLE(validators,  [  --enable-validators     use wxValidator and derived classes], wxUSE_VALIDATORS)
 WX_ARG_ENABLE(busyinfo,    [  --enable-busyinfo       use wxBusyInfo], wxUSE_BUSYINFO)
 
 WX_ARG_ENABLE(validators,  [  --enable-validators     use wxValidator and derived classes], wxUSE_VALIDATORS)
 WX_ARG_ENABLE(busyinfo,    [  --enable-busyinfo       use wxBusyInfo], wxUSE_BUSYINFO)
 
+dnl ---------------------------------------------------------------------------
+dnl support for image formats that do not rely on external library
+dnl ---------------------------------------------------------------------------
+
+WX_ARG_ENABLE(gif,         [  --enable-gif            use gif images (GIF file format)], wxUSE_GIF)
+WX_ARG_ENABLE(pcx,         [  --enable-pcx            use pcx images (PCX file format)], wxUSE_PCX)
+WX_ARG_ENABLE(pnm,         [  --enable-pnm            use pnm images (PNM file format)], wxUSE_PNM)
+
+fi
+dnl for GUI only
+
 dnl cache the options values before (may be) aborting below
 WX_ARG_CACHE_FLUSH
 
 dnl cache the options values before (may be) aborting below
 WX_ARG_CACHE_FLUSH
 
@@ -712,6 +1167,12 @@ dnl we have a default one
 
 AC_MSG_CHECKING(for toolkit)
 
 
 AC_MSG_CHECKING(for toolkit)
 
+if test "$wxUSE_GUI" = "yes"; then
+
+if test "$USE_BEOS" = 1; then
+    AC_MSG_ERROR([BeOS GUI is not supported yet, use --disable-gui])
+fi
+
 if test "$TOOLKIT_GIVEN" = 1; then
   dnl convert "yes" to 1 and "no" to 0
   for toolkit in `echo $ALL_TOOLKITS`; do
 if test "$TOOLKIT_GIVEN" = 1; then
   dnl convert "yes" to 1 and "no" to 0
   for toolkit in `echo $ALL_TOOLKITS`; do
@@ -734,6 +1195,23 @@ fi
 dnl we suppose that expr exists...
 NUM_TOOLKITS=`expr ${wxUSE_GTK:-0} + ${wxUSE_MOTIF:-0} + ${wxUSE_WINE:-0} + ${wxUSE_MINGW:-0} + ${wxUSE_CYGWIN:-0}`
 
 dnl we suppose that expr exists...
 NUM_TOOLKITS=`expr ${wxUSE_GTK:-0} + ${wxUSE_MOTIF:-0} + ${wxUSE_WINE:-0} + ${wxUSE_MINGW:-0} + ${wxUSE_CYGWIN:-0}`
 
+dnl Allow wxUSE_PM only for OS/2 with EMX.
+dnl Path separator; ':' for unix.
+dnl Stem for flex output; lexyy for OS/2, lex.yy otherwise
+dnl Extension for programs; '.exe' for OS/2 and msw builds (set later).
+case "${host}" in
+  *-pc-os2_emx )
+    NUM_TOOLKITS=`expr ${NUM_TOOLKITS} + ${wxUSE_PM:-0}`
+    # PATH_IFS is autodetected by OS/2's configure (usually ';')
+    LEX_STEM="lexyy"
+  ;;
+  *)
+    PATH_IFS=':'
+    LEX_STEM="lex.yy"
+    PROGRAM_EXT=
+  ;;
+esac
+
 case "$NUM_TOOLKITS" in
   1)
   ;;
 case "$NUM_TOOLKITS" in
   1)
   ;;
@@ -760,6 +1238,12 @@ for toolkit in `echo $ALL_TOOLKITS`; do
   fi
 done
 
   fi
 done
 
+dnl from "if wxUSE_GUI"
+else
+    PATH_IFS=':'
+    AC_MSG_RESULT(base only)
+fi
+
 dnl ---------------------------------------------------------------------------
 dnl Checks for programs
 dnl ---------------------------------------------------------------------------
 dnl ---------------------------------------------------------------------------
 dnl Checks for programs
 dnl ---------------------------------------------------------------------------
@@ -771,12 +1255,12 @@ dnl cross-compiling support: we're cross compiling if the build system is
 dnl different from the target one (assume host and target be always the same)
 if eval "test $host != $build"; then
   if eval "test $host_alias != NONE"; then
 dnl different from the target one (assume host and target be always the same)
 if eval "test $host != $build"; then
   if eval "test $host_alias != NONE"; then
-    CC=$host_alias-gcc 
-    CXX=$host_alias-c++ 
+    CC=$host_alias-gcc
+    CXX=$host_alias-c++
     AR=$host_alias-ar
     RANLIB=$host_alias-ranlib
     AR=$host_alias-ar
     RANLIB=$host_alias-ranlib
-    DLLTOOL=$host_alias-dlltool 
-    LD=$host_alias-ld 
+    DLLTOOL=$host_alias-dlltool
+    LD=$host_alias-ld
     NM=$host_alias-nm
     STRIP=$host_alias-strip
   fi
     NM=$host_alias-nm
     STRIP=$host_alias-strip
   fi
@@ -874,93 +1358,45 @@ AC_PROG_YACC
 dnl LEX checks
 dnl   defines LEX with the appropriate command
 dnl   defines LEXLIB with the appropriate library
 dnl LEX checks
 dnl   defines LEX with the appropriate command
 dnl   defines LEXLIB with the appropriate library
-dnl this AM version (don't use AC_PROG_LEX!) also
-dnl   defines YYTEXT_POINTER  if yytext is char*
-dnl   defines LEX_OUTPUT_ROOT as to the base of the
-dnl                           filename output by the lexer
-AM_PROG_LEX
+AC_PROG_LEX
 
 dnl needed for making link to setup.h
 AC_PROG_LN_S
 
 
 dnl needed for making link to setup.h
 AC_PROG_LN_S
 
-dnl without this (which just means that we use WXDLLEXPORT) libtool won't build
-dnl DLLs under Win32.
-dnl AC_LIBTOOL_WIN32_DLL
-
-dnl disable static libs by default, this takes too much time...
-dnl libtool doesn't work on anything but Linux and maybe
-dnl ***BSD
-
-case "${host}" in
-  *-hp-hpux* )
-    AM_DISABLE_SHARED
-  ;;
-  *-*-linux* )
-    AM_DISABLE_STATIC
-  ;;
-  *-*-irix5* | *-*-irix6* )
-    AM_DISABLE_SHARED
-  ;;
-  *-*-solaris2* )
-    AM_DISABLE_SHARED
-  ;;
-  *-*-sunos4* )
-    AM_DISABLE_SHARED
-  ;;
-  *-*-freebsd* | *-*-netbsd*)
-    AM_DISABLE_STATIC
-  ;;
-  *-*-osf* )
-    AM_DISABLE_SHARED
-  ;;
-  *-*-dgux5* )
-    AM_DISABLE_SHARED
-  ;;
-  *-*-sysv5* )
-    AM_DISABLE_SHARED
-  ;;
-  *-*-aix* )
-    AM_DISABLE_SHARED
-  ;;
-  *-*-cygwin32* )
-    AM_DISABLE_STATIC
-  ;;
-  *-*-mingw32* )
-    AM_DISABLE_STATIC
-  ;;
-  *-pc-os2_emx )
-    AM_DISABLE_SHARED
-  ;;
-  *)
-    AC_MSG_ERROR(unknown system type ${host}.)
-esac
-
-AM_PROG_LIBTOOL
-
 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 ---------------------------------------------------------------------------
 dnl Define search path for includes and libraries: all headers and libs will be
 dnl looked for in all directories of this path
 dnl ---------------------------------------------------------------------------
 
+dnl notice that /usr/include should not be in this list, otherwise it breaks
+dnl compilation on Solaris/gcc because standard headers are included instead
+dnl of the gcc ones (correction: it *is* needed for broken AIX compiler - but
+dnl do put it last!)
+dnl
+dnl Also try to put all directories which may contain X11R6 before those which
+dnl may contain X11R5/4 - we want to use R6 on machines which have both!
 SEARCH_INCLUDE="\
 SEARCH_INCLUDE="\
+    /usr/local/include        \
+                              \
     /usr/Motif-1.2/include    \
     /usr/Motif-2.1/include    \
                               \
     /usr/include/Motif1.2     \
     /opt/xpm/include/X11      \
     /usr/Motif-1.2/include    \
     /usr/Motif-2.1/include    \
                               \
     /usr/include/Motif1.2     \
     /opt/xpm/include/X11      \
+    /opt/GBxpm/include/       \
+    /opt/GBxpm/X11/include/   \
                               \
     /usr/Motif1.2/include     \
     /usr/dt/include           \
                               \
     /usr/Motif1.2/include     \
     /usr/dt/include           \
+    /usr/openwin/include      \
+                              \
     /usr/include/Xm           \
                               \
     /usr/X11R6/include        \
     /usr/include/Xm           \
                               \
     /usr/X11R6/include        \
+    /usr/X11R6.4/include      \
     /usr/X11R5/include        \
     /usr/X11R4/include        \
                               \
     /usr/X11R5/include        \
     /usr/X11R4/include        \
                               \
-    /usr/X11R6/lib            \
-    /usr/X11R5/lib            \
-    /usr/X11R4/lib            \
-                              \
     /usr/include/X11R6        \
     /usr/include/X11R5        \
     /usr/include/X11R4        \
     /usr/include/X11R6        \
     /usr/include/X11R5        \
     /usr/include/X11R4        \
@@ -982,8 +1418,8 @@ SEARCH_INCLUDE="\
     /usr/x386/include         \
     /usr/XFree86/include/X11  \
                               \
     /usr/x386/include         \
     /usr/XFree86/include/X11  \
                               \
-    /usr/include              \
-    /usr/local/include        \
+    X:/XFree86/include        \
+    X:/XFree86/include/X11    \
                               \
     /usr/include/gtk          \
     /usr/local/include/gtk    \
                               \
     /usr/include/gtk          \
     /usr/local/include/gtk    \
@@ -1002,9 +1438,9 @@ SEARCH_INCLUDE="\
     /usr/local/x11r5/include  \
     /usr/lpp/Xamples/include  \
                               \
     /usr/local/x11r5/include  \
     /usr/lpp/Xamples/include  \
                               \
-    /usr/openwin/include      \
     /usr/openwin/share/include \
     /usr/openwin/share/include \
-    "
+                               \
+    /usr/include"
 
 SEARCH_LIB="`echo "$SEARCH_INCLUDE" | sed s/include/lib/g` "
 
 
 SEARCH_LIB="`echo "$SEARCH_INCLUDE" | sed s/include/lib/g` "
 
@@ -1019,6 +1455,12 @@ dnl ----------------------------------------------------------------
 dnl search for toolkit (widget sets)
 dnl ----------------------------------------------------------------
 
 dnl search for toolkit (widget sets)
 dnl ----------------------------------------------------------------
 
+AFMINSTALL=
+
+if test "$wxUSE_GUI" = "yes"; then
+
+USE_GUI=1
+
 TOOLKIT=
 TOOLKIT_INCLUDE=
 
 TOOLKIT=
 TOOLKIT_INCLUDE=
 
@@ -1030,46 +1472,100 @@ GUI_TK_LIBRARY=
 GUI_TK_LINK=
 
 WXGTK12=
 GUI_TK_LINK=
 
 WXGTK12=
+WXGTK13=
 
 WXWINE=
 
 if test "$wxUSE_CYGWIN" = 1 || test "$wxUSE_MINGW" = 1 ; then
 
 WXWINE=
 
 if test "$wxUSE_CYGWIN" = 1 || test "$wxUSE_MINGW" = 1 ; then
-  AC_MSG_CHECKING(for Windows headers)
-  WX_PATH_FIND_INCLUDES($SEARCH_INCLUDE, windows.h)
-  INCLUDE_SUBDIRS="$INCLUDE_SUBDIRS msw"
-  
-  dnl --- Quick & Dirty ; link against most/all libraries
-  dnl --- This will bloat the executable, but it'll work for now...
-  LIBS="$LIBS  -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -loldnames -lcomctl32 -lctl3d32 -lcrtdll -ladvapi32 -lwsock32"
-
-  if test "$ac_find_includes" != "" ; then
-    AC_MSG_RESULT(found $ac_find_includes)
-    TOOLKIT_INCLUDE="$TOOLKIT_INCLUDE -I$ac_find_includes"
-  else
-    AC_MSG_RESULT(no)
-    if test "$cross_compiling" != "yes" ; then
-      AC_MSG_ERROR(please set CFLAGS to contain the location of windows.h)
-    fi  
-  fi
+    if test "$cross_compiling" = "yes" ; then
+        AC_MSG_WARN(Cross compiling --- skipping windows.h check)
+    else
+        AC_MSG_CHECKING(for Windows headers)
+        WX_PATH_FIND_INCLUDES($SEARCH_INCLUDE, windows.h)
+        if test "$ac_find_includes" != "" ; then
+            AC_MSG_RESULT(found $ac_find_includes)
+            TOOLKIT_INCLUDE="$TOOLKIT_INCLUDE -I$ac_find_includes"
+        else
+            AC_MSG_RESULT(no)
+            AC_MSG_ERROR(please set CFLAGS to contain the location of windows.h)
+        fi
+    fi
+
+    INCLUDE_SUBDIRS="$INCLUDE_SUBDIRS msw"
+    dnl --- Quick & Dirty ; link against most/all libraries
+    dnl --- This will bloat the executable, but it'll work for now...
+    LIBS="$LIBS -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lcomctl32 -lctl3d32 -lcrtdll -ladvapi32 -lwsock32"
 
 
-  TOOLKIT=MSW
+    dnl -mwindows is needed to avoid that spawning of a console window
+    if test "$wxUSE_MINGW" = 1; then
+        LDFLAGS="$LDFLAGS -mwindows"
+    fi
+
+    TOOLKIT=MSW
+
+    GUIOBJS="\$(MSW_GUIOBJS)"
+    GUIHEADERS="\$(MSW_HEADERS)"
+    COMMONOBJS="\$(MSW_COMMONOBJS)"
+    GENERICOBJS="\$(MSW_GENERICOBJS)"
+    UNIXOBJS=
+    GUIDIST=MSW_DIST
 fi
 
 if test "$wxUSE_GTK" = 1; then
 fi
 
 if test "$wxUSE_GTK" = 1; then
-    dnl avoid calling AM_PATH_GTK twice, so check first for the newer version and
-    dnl only then, if it wasn't found, for an older one
-    AM_PATH_GTK(1.2.0, WXGTK12=1)
+    dnl avoid calling AM_PATH_GTK twice, so check first for the newer version
+    dnl and only then, if it wasn't found, for an older one
+    AM_PATH_GTK(1.2.3, WXGTK12=1)
+
     if test "$WXGTK12" != 1; then
     if test "$WXGTK12" != 1; then
-       AM_PATH_GTK(1.0.0, , AC_MSG_ERROR(Is gtk-config in path and GTK+ is version 1.2.X or 1.0.X?))
+        AC_MSG_ERROR([
+            Please check that gtk-config is in path, the directory
+            where GTK+ libraries are installed (returned by
+            'gtk-config --libs' command) is in LD_LIBRARY_PATH or
+            equivalent variable and GTK+ is version 1.2.3 or above.
+        ])
     fi
 
     fi
 
+dnl it doesn't really work with 1.3.0 now...
+dnl    AM_PATH_GTK(1.3.0,
+dnl        WXGTK13=1,
+dnl        AM_PATH_GTK(1.2.1,
+dnl            WXGTK12=1,
+dnl            AC_MSG_ERROR(Is gtk-config in path and GTK+ is version 1.2.1 or above?)
+dnl        )
+dnl    )
+
     TOOLKIT_INCLUDE="$GTK_CFLAGS"
     TOOLKIT_INCLUDE="$GTK_CFLAGS"
+
+dnl Appending gthreads as it was done here is not portable, instead
+dnl we now call "gtk-config --libs gthread" which sets the right library
+dnl name for us. The following hacks are no longer required.
+
     GUI_TK_LIBRARY="$GTK_LIBS"
     GUI_TK_LIBRARY="$GTK_LIBS"
+
+dnl dnl On FreeBSD, the libs are called gtk12 etc, so we must append gthread12
+dnl    echo $GTK_LIBS | fgrep -q "glib12"
+dnl    if test $? = 0  ; then
+dnl       GUI_TK_LIBRARY="$GTK_LIBS -gthread12"
+dnl    else
+dnl       GUI_TK_LIBRARY="$GTK_LIBS -lgthread"
+dnl    fi
     TOOLKIT=GTK
     TOOLKIT=GTK
-  
-    GUIOBJS=GTK_GUIOBJS
-    COMMONOBJS=GTK_COMMONOBJS
-    GENERICOBJS=GTK_GENERICOBJS
+
+    AFMINSTALL=afminstall
+
+    GUIOBJS="\$(GTK_GUIOBJS)"
+    GUIHEADERS="\$(GTK_HEADERS)"
+    COMMONOBJS="\$(GTK_COMMONOBJS)"
+    GENERICOBJS="\$(GTK_GENERICOBJS)"
+    GUIDEPS="\$(GTK_GUIDEPS)"
+    COMMONDEPS="\$(GTK_COMMONDEPS)"
+    GENERICDEPS="\$(GTK_GENERICDEPS)"
+    UNIXOBJS="\$(UNIX_OBJS)"
+    UNIXDEPS="\$(UNIX_DEPS)"
+    GUIDIST=GTK_DIST
+
+    dnl test for XIM support in libgdk
+    AC_CHECK_LIB(gdk, gdk_im_open, AC_DEFINE(HAVE_XIM))
 fi
 
 if test "$wxUSE_WINE" = 1; then
 fi
 
 if test "$wxUSE_WINE" = 1; then
@@ -1095,7 +1591,7 @@ if test "$wxUSE_WINE" = 1; then
         AC_MSG_RESULT(no)
         AC_MSG_WARN(library will be compiled without support for images in XPM format)
     fi
         AC_MSG_RESULT(no)
         AC_MSG_WARN(library will be compiled without support for images in XPM format)
     fi
-    
+
     MESA_LINK=""
     AC_MSG_CHECKING(for Mesa library)
     WX_PATH_FIND_LIBRARIES($SEARCH_LIB,MesaGL)
     MESA_LINK=""
     AC_MSG_CHECKING(for Mesa library)
     WX_PATH_FIND_LIBRARIES($SEARCH_LIB,MesaGL)
@@ -1107,167 +1603,418 @@ if test "$wxUSE_WINE" = 1; then
         AC_MSG_ERROR(no)
     fi
 
         AC_MSG_ERROR(no)
     fi
 
-    GUI_TK_LINK="-lwine $MESA_LINK $XPM_LINK -lXxf86dga -lXxf86vm -lSM -lICE -lXext -lXmu -lX11 -lncurses -ldl -lm"
+    GUI_TK_LINK="-lwine $MESA_LINK $XPM_LINK -lXxf86dga -lXxf86vm -lSM -lICE -lXext -lXmu -lX11 -lncurses -lm"
     GUI_TK_LIBRARY="$GUI_TK_LIBRARY $GUI_TK_LINK"
     WXWINE=1
     TOOLKIT=MSW
     GUI_TK_LIBRARY="$GUI_TK_LIBRARY $GUI_TK_LINK"
     WXWINE=1
     TOOLKIT=MSW
-    LTLIBOBJS="$LTLIBOBJS winestub.lo"
+
+    GUIHEADERS="\$(MSW_HEADERS)"
+    GUIOBJS="\$(MSW_GUIOBJS)"
+    COMMONOBJS="\$(MSW_COMMONOBJS)"
+    GENERICOBJS="\$(MSW_GENERICOBJS)"
+    GUIDEPS="\$(MSW_GUIDEPS)"
+    COMMONDEPS="\$(MSW_COMMONDEPS)"
+    GENERICDEPS="\$(MSW_GENERICDEPS)"
+    UNIXOBJS="\$(UNIX_OBJS)"
+    UNIXDEPS="\$(UNIX_DEPS)"
+    GUIDIST=MSW_DIST
 fi
 
 if test "$wxUSE_MOTIF" = 1; then
 fi
 
 if test "$wxUSE_MOTIF" = 1; then
-    dnl find the X11 include and library files
-    dnl   defines x_includes and x_libraries
+    dnl use standard macros to check for X headers/libs, this brings support
+    dnl for the standard configure options --x-includes and --x-libraries
     AC_PATH_XTRA
 
     if test "$no_x" = "yes"; then
     AC_PATH_XTRA
 
     if test "$no_x" = "yes"; then
-      AC_MSG_ERROR(X11 libraries not found, aborting)
+        AC_MSG_ERROR(X11 not found, please use --x-includes and/or --x-libraries options)
     fi
 
     fi
 
-    TOOLKIT_INCLUDE="$X_CFLAGS"
     GUI_TK_LIBRARY="$X_LIBS"
     GUI_TK_LIBRARY="$X_LIBS"
+    TOOLKIT_INCLUDE="$X_CFLAGS"
 
 
-    AC_MSG_CHECKING(for Motif/Lesstif includes)
+    AFMINSTALL=afminstall
+
+    dnl manual check for X11 headers/libs
+    dnl
+    dnl    AC_MSG_CHECKING(for X11 headers)
+    dnl    WX_PATH_FIND_INCLUDES($SEARCH_INCLUDE, X11/Intrinsic.h)
+    dnl    if test "$ac_find_includes" != "" ; then
+    dnl        AC_MSG_RESULT(found $ac_find_includes)
+    dnl    else
+    dnl        AC_MSG_RESULT(no)
+    dnl        AC_MSG_ERROR(please set CFLAGS to contain the location of X11/Intrinsic.h)
+    dnl    fi
+    dnl
+    dnl    AC_MSG_CHECKING(for X11 libraries)
+    dnl    WX_PATH_FIND_LIBRARIES($SEARCH_LIB, X11)
+    dnl    if test "$ac_find_libraries" != "" ; then
+    dnl        WX_INCLUDE_PATH_EXIST($ac_find_includes, $TOOLKIT_INCLUDE)
+    dnl        WX_LINK_PATH_EXIST($ac_find_libraries, $GUI_TK_LIBRARY)
+    dnl
+    dnl        GUI_TK_LIBRARY="$GUI_TK_LIBRARY $ac_path_to_link"
+    dnl        TOOLKIT_INCLUDE="$TOOLKIT_INCLUDE $ac_path_to_include"
+    dnl        AC_MSG_RESULT(found at $ac_find_libraries)
+    dnl    else
+    dnl        AC_MSG_RESULT(no)
+    dnl        AC_MSG_ERROR(please set LDFLAGS to contain the location of libX11)
+    dnl    fi
+
+    COMPILED_X_PROGRAM=0
+
+    AC_MSG_CHECKING(for Motif/Lesstif headers)
     WX_PATH_FIND_INCLUDES($SEARCH_INCLUDE, Xm/Xm.h)
     if test "$ac_find_includes" != "" ; then
         AC_MSG_RESULT(found $ac_find_includes)
     else
     WX_PATH_FIND_INCLUDES($SEARCH_INCLUDE, Xm/Xm.h)
     if test "$ac_find_includes" != "" ; then
         AC_MSG_RESULT(found $ac_find_includes)
     else
-        AC_MSG_RESULT(no)
-        AC_MSG_ERROR(please set CFLAGS to contain the location of Xm/Xm.h)
+        AC_TRY_COMPILE(
+            [
+                #include <Xm/Xm.h>
+            ],
+            [
+                int version;
+
+                version = xmUseVersion;
+            ],
+            [
+                AC_MSG_RESULT(found in default search path)
+                COMPILED_X_PROGRAM=1
+            ],
+            [
+                AC_MSG_RESULT(no)
+                AC_MSG_ERROR(please set CFLAGS to contain the location of Xm/Xm.h)
+            ]
+        )
     fi
 
     fi
 
-    AC_MSG_CHECKING(for Motif/Lesstif library)
-    WX_PATH_FIND_LIBRARIES($SEARCH_LIB, Xm)
-    if test "$ac_find_libraries" != "" ; then
-        WX_INCLUDE_PATH_EXIST($ac_find_includes, $TOOLKIT_INCLUDE)
-        WX_LINK_PATH_EXIST($ac_find_libraries, $GUI_TK_LIBRARY)
+    if test "$COMPILED_X_PROGRAM" = 0; then
+        AC_MSG_CHECKING(for Motif/Lesstif library)
+        WX_PATH_FIND_LIBRARIES($SEARCH_LIB, Xm)
+        if test "$ac_find_libraries" != "" ; then
+            WX_INCLUDE_PATH_EXIST($ac_find_includes, $TOOLKIT_INCLUDE)
+            WX_LINK_PATH_EXIST($ac_find_libraries, $GUI_TK_LIBRARY)
 
 
-        CHECK_LINK="$GUI_TK_LIBRARY $ac_path_to_link"
-        TOOLKIT_INCLUDE="$TOOLKIT_INCLUDE $ac_path_to_include"
-        AC_MSG_RESULT(found at $ac_find_libraries)
-    else
-        AC_MSG_RESULT(no)
-        AC_MSG_ERROR(please set LDFLAGS to contain the location of libXm)
+            GUI_TK_LIBRARY="$GUI_TK_LIBRARY $ac_path_to_link"
+            TOOLKIT_INCLUDE="$TOOLKIT_INCLUDE $ac_path_to_include"
+            AC_MSG_RESULT(found at $ac_find_libraries)
+        else
+            dnl it might happen that we found headers in one of the standard
+            dnl paths but the libs are elsewhere - we do need to try to
+            dnl compile a sample program then here
+            AC_TRY_COMPILE(
+                [
+                    #include <Xm/Xm.h>
+                ],
+                [
+                    int version;
+
+                    version = xmUseVersion;
+                ],
+                [
+                    AC_MSG_RESULT(found in default search path)
+                    COMPILED_X_PROGRAM=1
+                ],
+                [
+                    AC_MSG_RESULT(no)
+                    AC_MSG_ERROR(please set LDFLAGS to contain the location of libXm)
+                ]
+            )
+        fi
     fi
 
     fi
 
-    AC_MSG_CHECKING(for Xt library)
-    WX_PATH_FIND_LIBRARIES($SEARCH_LIB,Xt)
-    if test "$ac_find_libraries" != "" ; then
-        WX_LINK_PATH_EXIST($ac_find_libraries,$GUI_TK_LIBRARY)
-        CHECK_LINK="$GUI_TK_LIBRARY $ac_path_to_link"
-        AC_MSG_RESULT(found at $ac_find_libraries)
-    else
-        AC_MSG_RESULT(no)
-        AC_MSG_ERROR(please set LDFLAGS to contain the location of libXt)
-    fi
+    dnl we don't need this as we used AC_PATH_XTRA above which does it for us
+    dnl
+    dnl dnl if we already compiled a sample program, X libs are surely there
+    dnl if test "$COMPILED_X_PROGRAM" = 0; then
+    dnl     AC_MSG_CHECKING(for Xt library)
+    dnl     WX_PATH_FIND_LIBRARIES($SEARCH_LIB,Xt)
+    dnl     if test "$ac_find_libraries" != "" ; then
+    dnl         WX_LINK_PATH_EXIST($ac_find_libraries,$GUI_TK_LIBRARY)
+    dnl         GUI_TK_LIBRARY="$GUI_TK_LIBRARY $ac_path_to_link"
+    dnl         AC_MSG_RESULT(found at $ac_find_libraries)
+    dnl     else
+    dnl         AC_TRY_COMPILE
+    dnl         (
+    dnl             [
+    dnl                 #include <X11/Intrinsic.h>
+    dnl             ],
+    dnl             [
+    dnl                 char *p;
+    dnl                 p = XtMalloc(5);
+    dnl             ],
+    dnl             [
+    dnl                 AC_MSG_RESULT(found in default search path)
+    dnl                 COMPILED_X_PROGRAM=1
+    dnl             ],
+    dnl             [
+    dnl                 AC_MSG_RESULT(no)
+    dnl                 AC_MSG_ERROR(please set LDFLAGS to contain the location of libXt)
+    dnl             ]
+    dnl         )
+    dnl     fi
+    dnl fi
 
     XPM_LINK=""
     AC_MSG_CHECKING(for Xpm library)
     WX_PATH_FIND_LIBRARIES($SEARCH_LIB,Xpm)
     if test "$ac_find_libraries" != "" ; then
         WX_LINK_PATH_EXIST($ac_find_libraries,$GUI_TK_LIBRARY)
 
     XPM_LINK=""
     AC_MSG_CHECKING(for Xpm library)
     WX_PATH_FIND_LIBRARIES($SEARCH_LIB,Xpm)
     if test "$ac_find_libraries" != "" ; then
         WX_LINK_PATH_EXIST($ac_find_libraries,$GUI_TK_LIBRARY)
-        CHECK_LINK="$GUI_TK_LIBRARY $ac_path_to_link"
+        GUI_TK_LIBRARY="$GUI_TK_LIBRARY $ac_path_to_link"
         XPM_LINK="-lXpm "
         AC_DEFINE(wxHAVE_LIB_XPM)
         AC_MSG_RESULT(found at $ac_find_libraries)
     else
         XPM_LINK="-lXpm "
         AC_DEFINE(wxHAVE_LIB_XPM)
         AC_MSG_RESULT(found at $ac_find_libraries)
     else
-        AC_MSG_RESULT(no)
-        AC_MSG_WARN(library will be compiled without support for images in XPM format)
+        AC_TRY_COMPILE(
+            [
+                #include <X11/xpm.h>
+            ],
+            [
+                int version;
+
+                version = XpmLibraryVersion();
+            ],
+            [
+               XPM_LINK="-lXpm "
+               AC_DEFINE(wxHAVE_LIB_XPM)
+                AC_MSG_RESULT(found in default search path)
+                COMPILED_X_PROGRAM=0
+            ],
+            [
+                AC_MSG_RESULT(no)
+                AC_MSG_WARN(library will be compiled without support for images in XPM format)
+            ]
+        )
     fi
 
     fi
 
-    GUI_TK_LINK="-lXm $XPM_LINK -lXmu -lXt -lX11 -ldl -lm"
+    GUI_TK_LINK="-lXm $XPM_LINK -lXmu -lXext -lXt -lX11 -lm"
     GUI_TK_LIBRARY="$GUI_TK_LIBRARY $GUI_TK_LINK"
     TOOLKIT=MOTIF
     GUI_TK_LIBRARY="$GUI_TK_LIBRARY $GUI_TK_LINK"
     TOOLKIT=MOTIF
-  
-    GUIOBJS=MOTIF_GUIOBJS
-    COMMONOBJS=MOTIF_COMMONOBJS
-    GENERICOBJS=MOTIF_GENERICOBJS
+
+    GUIHEADERS="\$(MOTIF_HEADERS)"
+    GUIOBJS="\$(MOTIF_GUIOBJS)"
+    COMMONOBJS="\$(MOTIF_COMMONOBJS)"
+    GENERICOBJS="\$(MOTIF_GENERICOBJS)"
+    GUIDEPS="\$(MOTIF_GUIDEPS)"
+    COMMONDEPS="\$(MOTIF_COMMONDEPS)"
+    GENERICDEPS="\$(MOTIF_GENERICDEPS)"
+    UNIXOBJS="\$(UNIX_OBJS)"
+    UNIXDEPS="\$(UNIX_DEPS)"
+    GUIDIST=MOTIF_DIST
+fi
+
+if test "$wxUSE_PM" = 1; then
+    TOOLKIT=PM
+
+    GUIOBJS="\$(PM_GUIOBJS)"
+    GUIHEADERS="\$(PM_HEADERS)"
+    COMMONOBJS="\$(PM_COMMONOBJS)"
+    GENERICOBJS="\$(PM_GENERICOBJS)"
+    GUIDEPS="\$(PM_GUIDEPS)"
+    COMMONDEPS="\$(PM_COMMONDEPS)"
+    GENERICDEPS="\$(PM_GENERICDEPS)"
+    UNIXOBJS=
+    UNIXDEPS=
+    GUIDIST=GTK_DIST
 fi
 
 dnl the name of the directory where the files for this toolkit live
 fi
 
 dnl the name of the directory where the files for this toolkit live
-TOOLKIT_DIR=`echo ${TOOLKIT} | tr "A-Z" "a-z"`
+if test "$TOOLKIT" != "PM" ; then
+    TOOLKIT_DIR=`echo ${TOOLKIT} | tr "[[A-Z]]" "[[a-z]]"`
+else
+    TOOLKIT_DIR="os2"
+fi
+
+    dnl the symbol which allows conditional compilation for the given toolkit
+    TOOLKIT_DEF="-D__WX${TOOLKIT}__"
+
+    dnl the name of the (libtool) library
+    WX_LIBRARY="wx_${TOOLKIT_DIR}"
 
 
-dnl the symbol which allows conditional compilation for the given toolkit
-TOOLKIT_DEF="-D__WX${TOOLKIT}__"
+    dnl the sources, their dependenices and the headers
+    ALL_OBJECTS="\$(GUIOBJS) \$(COMMONOBJS) \$(GENERICOBJS) \$(UNIXOBJS) \$(HTMLOBJS)"
+
+    dnl ODBC objects are Unix only
+    if test "$TOOLKIT" != "MSW"; then
+        ALL_OBJECTS="${ALL_OBJECTS} \$(IODBCOBJS)"
+    fi
+
+    if test "$wxUSE_LIBJPEG" = "yes" ; then
+        ALL_OBJECTS="${ALL_OBJECTS} \$(JPEGOBJS)"
+    fi
+    if test "$wxUSE_LIBTIFF" = "yes" ; then
+        ALL_OBJECTS="${ALL_OBJECTS} \$(TIFFOBJS)"
+    fi
+    if test "$wxUSE_LIBPNG" = "yes" ; then
+        ALL_OBJECTS="${ALL_OBJECTS} \$(PNGOBJS)"
+    fi
+    if test "$wxUSE_ZLIB" = "yes" ; then
+        ALL_OBJECTS="${ALL_OBJECTS} \$(ZLIBOBJS)"
+    fi
+    ALL_DEPFILES="\$(GUIDEPS) \$(COMMONDEPS) \$(GENERICDEPS) \$(UNIXDEPS) \$(HTMLDEPS)"
+
+    PORT_FILES="src/\$(TOOLKITDIR)/files.lst"
+    RPM_FILES="src/\$(TOOLKITDIR)/rpmfiles.lst"
+    RPM_SPEC="wx\$(TOOLKIT).spec"
+
+    dnl distribute samples/demos/utils with GUI versions
+    GUIDIST="${GUIDIST} SAMPLES_DIST DEMOS_DIST UTILS_DIST MISC_DIST"
+    DISTDIR="wx\$(TOOLKIT)"
+else
+    dnl leave all TOOLKIT_XXX vars empty
+
+    USE_GUI=0
+
+    dnl the sources, their dependenices and the headers
+    ALL_OBJECTS="\$(BASE_OBJS) \${BASE_UNIX_OBJS}"
+    ALL_DEPFILES="\${BASE_DEPS} \${BASE_UNIX_DEPS}"
+
+    dnl building wxBase only
+    WX_LIBRARY="wxbase"
+
+    PORT_FILES="src/files.lst"
+    RPM_FILES="src/rpmfiles.lst"
+    RPM_SPEC="wxBase.spec"
+
+    dnl distribute only wxBase sources/headers
+    GUIDIST="BASE_DIST"
+    DISTDIR="wxBase"
+fi
 
 dnl the name of the (libtool) library
 
 dnl the name of the (libtool) library
-WX_LIBRARY_NAME="libwx_${TOOLKIT_DIR}.la"
+WX_LIBRARY_NAME="lib${WX_LIBRARY}.la"
 
 dnl the name of the static library
 
 dnl the name of the static library
-WX_LIBRARY_NAME_STATIC="libwx_${TOOLKIT_DIR}.a"
+WX_LIBRARY_NAME_STATIC="lib${WX_LIBRARY}.a"
 
 dnl the name of the shared library
 
 dnl the name of the shared library
-WX_LIBRARY_NAME_SHARED="libwx_${TOOLKIT_DIR}-${LT_RELEASE}.so.${LT_CURRENT}.${LT_REVISION}.${LT_AGE}"
-
-dnl the name of the library we actually want to build
-WX_TARGET_LIBRARY="${WX_LIBRARY_NAME_SHARED}"
+WX_LIBRARY_NAME_SHARED="lib${WX_LIBRARY}-${WX_RELEASE}.so.${WX_CURRENT}.${WX_REVISION}.${WX_AGE}"
 
 dnl the name of the links to the shared library
 
 dnl the name of the links to the shared library
-WX_LIBRARY_LINK1="libwx_${TOOLKIT_DIR}-${LT_RELEASE}.so.${LT_CURRENT}"
-WX_LIBRARY_LINK2="libwx_${TOOLKIT_DIR}-${LT_RELEASE}.so"
-WX_LIBRARY_LINK3="libwx_${TOOLKIT_DIR}.so"
+WX_LIBRARY_LINK1="lib${WX_LIBRARY}-${WX_RELEASE}.so.${WX_CURRENT}"
+WX_LIBRARY_LINK2="lib${WX_LIBRARY}-${WX_RELEASE}.so"
+WX_LIBRARY_LINK3="lib${WX_LIBRARY}.so"
 
 dnl shared library settings
 SHARED_LD=
 PIC_FLAG=
 
 dnl shared library settings
 SHARED_LD=
 PIC_FLAG=
-WX_CREATE_LINKS=
-
-case "${host}" in
-  *-hp-hpux* )
-    WX_LIBRARY_NAME_SHARED="libwx_${TOOLKIT_DIR}.sl"
-    SHARED_LD="${CXX} -b -o"
-    PIC_FLAG="+Z"
-  ;;
-  *-*-linux* )
-    SHARED_LD="${CC} -shared -o"
-    PIC_FLAG="-fPIC"
-    WX_CREATE_LINKS="CREATE_LINKS"
-  ;;
-  *-*-irix5* | *-*-irix6* )
-    SHARED_LD="${CXX} -shared -o"
-    WX_CREATE_LINKS="CREATE_LINKS"
-  ;;
-  *-*-solaris2* )
-    SHARED_LD="${CXX} -G -o"
-    PIC_FLAG="PIC"
-    WX_CREATE_LINKS="CREATE_LINKS"
-  ;;
-  *-*-sunos4* )
-    SHARED_LD="${CXX} -shared -o"
-    PIC_FLAG="-fPIC"
-    WX_CREATE_LINKS="CREATE_LINKS"
-  ;;
-  *-*-freebsd* | *-*-netbsd*)
-    SHARED_LD="${CXX} -shared -o"
-    PIC_FLAG="-fPIC"
-    WX_CREATE_LINKS="CREATE_LINKS"
-  ;;
-  *-*-osf* )
-    SHARED_LD="${CXX} -shared -o"
-    PIC_FLAG="-fPIC"
-    WX_CREATE_LINKS="CREATE_LINKS"
-  ;;
-  *-*-dgux5* )
-    SHARED_LD="${CXX} -shared -o"
-    PIC_FLAG="-fPIC"
-    WX_CREATE_LINKS="CREATE_LINKS"
-  ;;
-  *-*-sysv5* )
-    SHARED_LD="${CXX} -shared -o"
-    PIC_FLAG="-fPIC"
-    WX_CREATE_LINKS="CREATE_LINKS"
-  ;;
-  *-*-aix* )
-    SHARED_LD="/usr/lpp/xlC/bin/makeC++SharedLib -p 0 -o"
-  ;;
-  *-*-cygwin32* )
-  ;;
-  *-*-mingw32* )
-  ;;
-  *-pc-os2_emx )
-  ;;
-  *)
-    AC_MSG_ERROR(unknown system type ${host}.)
-esac
+WX_ALL=
+WX_ALL_INSTALLED=
+BURNT_LIBRARY_NAME=
+
+dnl --- the marker for quick search, leave it here: SHARED_LIB_SETUP ---
+
+if test "$wxUSE_SHARED" = "yes"; then
+    case "${host}" in
+      *-hp-hpux* )
+        if test "$GCC" = yes ; then
+            SHARED_LD="${CC} -shared -fPIC -o"
+            PIC_FLAG="-fPIC"
+        else
+            SHARED_LD="${CXX} -b -o"
+            PIC_FLAG="+Z"
+        fi
+        WX_LIBRARY_NAME_SHARED="libwx_${TOOLKIT_DIR}.sl"
+        WX_ALL=${WX_LIBRARY_NAME_SHARED}
+      ;;
+
+      dnl in fact, these settings are for any platform using gcc
+      *-*-linux* )
+        SHARED_LD="${CC} -shared -o"
+        PIC_FLAG="-fPIC"
+        WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS"
+        WX_ALL="CREATE_LINKS"
+        dnl BURNT_LIBRARY_NAME="-Wl,-soname -Wl,${WX_LIBRARY_NAME_SHARED}"
+      ;;
+      *-*-irix5* | *-*-irix6* )
+        if test "$GCC" = yes ; then
+           SHARED_LD="${CC} -shared -o"
+           PIC_FLAG="-fPIC"
+        else
+           SHARED_LD="${CXX} -shared -o"
+        fi
+        WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS"
+        WX_ALL="CREATE_LINKS"
+      ;;
+      *-*-solaris2* )
+        if test "$GCC" = yes ; then
+            SHARED_LD="${CC} -shared -o"
+            PIC_FLAG="-fPIC"
+        else
+            SHARED_LD="${CXX} -G -o"
+            PIC_FLAG="-KPIC"
+        fi
+        WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS"
+        WX_ALL="CREATE_LINKS"
+      ;;
+      *-*-sunos4* )
+        SHARED_LD="${CC} -shared -o"
+        PIC_FLAG="-fPIC"
+        WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS"
+        WX_ALL="CREATE_LINKS"
+      ;;
+      *-*-freebsd* | *-*-netbsd*)
+        SHARED_LD="${CC} -shared -o"
+        PIC_FLAG="-fPIC"
+        WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS"
+        WX_ALL="CREATE_LINKS"
+      ;;
+      *-*-osf* )
+        SHARED_LD="${CXX} -shared -o"
+        PIC_FLAG="-fPIC"
+        WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS"
+        WX_ALL="CREATE_LINKS"
+      ;;
+      *-*-dgux5* )
+        SHARED_LD="${CXX} -shared -o"
+        PIC_FLAG="-fPIC"
+        WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS"
+        WX_ALL="CREATE_LINKS"
+      ;;
+      *-*-sysv5* )
+        SHARED_LD="${CC} -shared -o"
+        PIC_FLAG="-fPIC"
+        WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS"
+        WX_ALL="CREATE_LINKS"
+      ;;
+      *-*-aix* )
+        SHARED_LD="/usr/lpp/xlC/bin/makeC++SharedLib -p 0 -o"
+        WX_ALL=${WX_LIBRARY_NAME_SHARED}
+      ;;
+      *-*-cygwin32* )
+        dnl only static for now
+        WX_TARGET_LIBRARY="${WX_LIBRARY_NAME_STATIC}"
+        WX_ALL="${WX_LIBRARY_NAME_STATIC}"
+      ;;
+      *-*-mingw32* )
+        dnl only static for now
+        WX_TARGET_LIBRARY="${WX_LIBRARY_NAME_STATIC}"
+        WX_ALL="${WX_LIBRARY_NAME_STATIC}"
+      ;;
+      *-pc-os2_emx )
+        dnl only static for now
+        WX_TARGET_LIBRARY="${WX_LIBRARY_NAME_STATIC}"
+        WX_ALL="${WX_LIBRARY_NAME_STATIC}"
+      ;;
+      *-*-beos* )
+        dnl can't use gcc under BeOS for shared library creation because it
+        dnl complains about missing 'main'
+        SHARED_LD="${LD} -shared -o"
+        PIC_FLAG="-fPIC"
+        WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS"
+        WX_ALL="CREATE_LINKS"
+      ;;
+      *)
+        AC_MSG_ERROR(unknown system type ${host}.)
+    esac
+
+    dnl set target to shared if not explicitly chose static before
+    if test "x$WX_TARGET_LIBRARY" = "x"; then
+        WX_TARGET_LIBRARY="${WX_LIBRARY_NAME_SHARED}"
+    fi
+else
+    dnl set target to static
+    WX_TARGET_LIBRARY="${WX_LIBRARY_NAME_STATIC}"
+    WX_ALL="${WX_LIBRARY_NAME_STATIC}"
+fi
 
 dnl ------------------------------------------------------------------------
 dnl Check for headers
 
 dnl ------------------------------------------------------------------------
 dnl Check for headers
@@ -1283,8 +2030,11 @@ dnl defines HAVE_WCSTR_H
 AC_CHECK_HEADERS(wcstr.h)
 dnl defines HAVE_FNMATCH_H
 AC_CHECK_HEADERS(fnmatch.h)
 AC_CHECK_HEADERS(wcstr.h)
 dnl defines HAVE_FNMATCH_H
 AC_CHECK_HEADERS(fnmatch.h)
-dnl defines HAVE_X11_XKBLIB_H
-AC_CHECK_HEADERS(X11/XKBlib.h)
+
+if test "$wxUSE_GUI" = "yes"; then
+    dnl defines HAVE_X11_XKBLIB_H
+    AC_CHECK_HEADERS(X11/XKBlib.h)
+fi
 
 dnl ---------------------------------------------------------------------------
 dnl Checks for typedefs
 
 dnl ---------------------------------------------------------------------------
 dnl Checks for typedefs
@@ -1305,6 +2055,26 @@ dnl ---------------------------------------------------------------------------
 dnl Checks for structures
 dnl ---------------------------------------------------------------------------
 
 dnl Checks for structures
 dnl ---------------------------------------------------------------------------
 
+dnl does passwd struct has the pw_gecos field?
+AC_CACHE_CHECK([for pw_gecos in struct passwd], wx_cv_struct_pw_gecos,
+    [
+        AC_TRY_COMPILE([#include <pwd.h>],
+             [
+                char *p;
+                struct passwd *pw;
+                p = pw->pw_gecos;
+             ],
+             [
+                wx_cv_struct_pw_gecos=yes
+                AC_DEFINE(HAVE_PW_GECOS)
+             ],
+             [
+                wx_cv_struct_pw_gecos=no
+             ]
+        )
+    ]
+)
+
 dnl ---------------------------------------------------------------------------
 dnl Checks for compiler characteristics
 dnl ---------------------------------------------------------------------------
 dnl ---------------------------------------------------------------------------
 dnl Checks for compiler characteristics
 dnl ---------------------------------------------------------------------------
@@ -1333,9 +2103,6 @@ WX_CPP_NEW_HEADERS(, AC_DEFINE(wxUSE_IOSTREAMH))
 dnl check whether C++ compiler supports bool built-in type
 WX_CPP_BOOL
 
 dnl check whether C++ compiler supports bool built-in type
 WX_CPP_BOOL
 
-dnl check whether overloading on size_t/int parameter works
-WX_CPP_SIZE_T_IS_NOT_INT
-
 dnl check whether we should define _GNU_SOURCE
 WX_GNU_EXTENSIONS
 
 dnl check whether we should define _GNU_SOURCE
 WX_GNU_EXTENSIONS
 
@@ -1371,45 +2138,110 @@ AC_LANG_CPLUSPLUS
 
 AC_CACHE_CHECK([for vsscanf], wx_cv_func_vsscanf,
 [
 
 AC_CACHE_CHECK([for vsscanf], wx_cv_func_vsscanf,
 [
-  AC_TRY_COMPILE(
+  AC_TRY_RUN(
              [
                 #include <stdio.h>
                 #include <stdarg.h>
              [
                 #include <stdio.h>
                 #include <stdarg.h>
-             ],
-             [
-                va_list ap;
-                vsscanf("", "", ap);
+
+                int try_vsscanf(const char *format, ...)
+                {
+                  va_list ap;
+                  va_start(ap, format);
+
+                  vsscanf("17", format, ap);
+
+                  va_end(ap);
+                }
+
+                int main()
+                {
+                  int i;
+                  try_vsscanf("%d", &i);
+                  return i == 17 ? 0 : 1;
+                }
              ], [
              ], [
-                wx_cv_func_vsscanf=yes
                 AC_DEFINE(HAVE_VSSCANF)
                 AC_DEFINE(HAVE_VSSCANF)
-             ], [
+                wx_cv_func_vsscanf=yes
+             ],
+                wx_cv_func_vsscanf=no,
                 wx_cv_func_vsscanf=no
                 wx_cv_func_vsscanf=no
-             ])
+             )
 ])
 
 AC_LANG_RESTORE
 
 ])
 
 AC_LANG_RESTORE
 
+dnl under MSW we always have Sleep()
+if test "$TOOLKIT" != "MSW"; then
+
 dnl check for vfork() (even if it's the same as fork() in modern Unices)
 AC_CHECK_FUNCS(vfork)
 
 dnl check for vfork() (even if it's the same as fork() in modern Unices)
 AC_CHECK_FUNCS(vfork)
 
-POSIX4_LINK=
-AC_CHECK_FUNCS(nanosleep, AC_DEFINE(HAVE_NANOSLEEP), [
-    AC_CHECK_LIB(posix4, nanosleep, [
-      AC_DEFINE(HAVE_NANOSLEEP)
-      POSIX4_LINK="-lposix4"
-    ], [
-    AC_CHECK_FUNCS(usleep,
-        AC_DEFINE(HAVE_USLEEP),
-        AC_MSG_WARN([wxSleep() function will not work]))
-    ])
-])
+dnl check for timegm() used by datetime.cpp
+AC_CHECK_FUNCS(timegm)
+
+HAVE_SOME_SLEEP_FUNC=0
+if test "$USE_BEOS" = 1; then
+    dnl BeOS has its own (wonder where did they get it from) sleep() function
+    dnl in unistd.h
+    AC_DEFINE(HAVE_SLEEP)
+    HAVE_SOME_SLEEP_FUNC=1
+fi
+
+if test "$HAVE_SOME_SLEEP_FUNC" != 1; then
+    dnl try nanosleep() in libc and libposix4, if this fails - usleep()
+    POSIX4_LINK=
+    AC_CHECK_FUNCS(nanosleep,
+        AC_DEFINE(HAVE_NANOSLEEP),
+        [
+            AC_CHECK_LIB(posix4, nanosleep,
+                [
+                    AC_DEFINE(HAVE_NANOSLEEP)
+                    POSIX4_LINK="-lposix4"
+                ],
+                [
+                    AC_CHECK_FUNCS(usleep)
+                    AC_MSG_WARN([wxSleep() function will not work])
+                ]
+            )
+        ]
+    )
+fi
 
 dnl check for uname (POSIX) and gethostname (BSD)
 AC_CHECK_FUNCS(uname gethostname, break)
 
 
 dnl check for uname (POSIX) and gethostname (BSD)
 AC_CHECK_FUNCS(uname gethostname, break)
 
-dnl check for inet_addr, inet_aton, ...
-AC_CHECK_FUNCS(inet_addr)
-AC_CHECK_FUNCS(inet_aton)
+dnl check for MT-safe version of strtok
+AC_CHECK_FUNCS(strtok_r)
+
+dnl check for inet_addr and inet_aton (these may live either in libc, or in
+dnl libnsl or libresolv)
+INET_LINK=
+AC_CHECK_FUNCS(inet_addr,
+    AC_DEFINE(HAVE_INET_ADDR),
+    [
+        AC_CHECK_LIB(nsl, inet_addr,
+            INET_LINK="nsl",
+            AC_CHECK_LIB(resolv, inet_addr,
+                INET_LINK="resolv"
+            )
+        )
+    ]
+)
+
+AC_CHECK_FUNCS(inet_aton,
+        AC_DEFINE(HAVE_INET_ATON),
+        [
+            dnl only check it in the same lib
+            AC_CHECK_LIB($INET_LINK, inet_aton, AC_DEFINE(HAVE_INET_ATON))
+        ])
+
+if test "x$INET_LINK" != "x"; then
+    AC_DEFINE(HAVE_INET_ADDR)
+    INET_LINK="-l$INET_LINK"
+fi
+
+fi
+dnl if !MSW
 
 dnl ===========================================================================
 dnl Now we have all the info we need - use it!
 
 dnl ===========================================================================
 dnl Now we have all the info we need - use it!
@@ -1422,7 +2254,8 @@ dnl ---------------------------------------------------------------------------
 dnl thread support for Unix (always available under Win32)
 dnl ---------------------------------------------------------------------------
 
 dnl thread support for Unix (always available under Win32)
 dnl ---------------------------------------------------------------------------
 
-if test "$USE_UNIX" = 1; then
+dnl under MSW we always have thread support
+if test "$TOOLKIT" != "MSW"; then
 
 dnl the code below:
 dnl   defines THREADS_OBJ which contains the object files to build
 
 dnl the code below:
 dnl   defines THREADS_OBJ which contains the object files to build
@@ -1436,12 +2269,15 @@ if test "$wxUSE_THREADS" = "yes" ; then
     if test "$wxUSE_WINE" = 1 ; then
         AC_MSG_WARN([Threads are not supported under WINE])
         wxUSE_THREADS="no"
     if test "$wxUSE_WINE" = 1 ; then
         AC_MSG_WARN([Threads are not supported under WINE])
         wxUSE_THREADS="no"
+    elif test "$USE_BEOS" = 1; then
+        AC_MSG_WARN([BeOS threads are not yet supported])
+        wxUSE_THREADS="no"
     fi
 fi
 
 if test "$wxUSE_THREADS" = "yes" ; then
     dnl find if POSIX threads are available
     fi
 fi
 
 if test "$wxUSE_THREADS" = "yes" ; then
     dnl find if POSIX threads are available
-    
+
     dnl standard lib name is pthread
     dnl We no longer test for pthread-0.7 as it breaks compilation on some
     dnl glibc2 systems, especially for static linkage.
     dnl standard lib name is pthread
     dnl We no longer test for pthread-0.7 as it breaks compilation on some
     dnl glibc2 systems, especially for static linkage.
@@ -1469,7 +2305,7 @@ fi
 
 dnl do other tests only if we are using threads
 if test "$wxUSE_THREADS" = "yes" ; then
 
 dnl do other tests only if we are using threads
 if test "$wxUSE_THREADS" = "yes" ; then
-  dnl  LTLIBOBJS="$LTLIBOBJS $THREADS_OBJ"
+  AC_CHECK_FUNCS(thr_setconcurrency)
 
   dnl define autoconf macro to check for given function in both pthread and
   dnl posix4 libraries
 
   dnl define autoconf macro to check for given function in both pthread and
   dnl posix4 libraries
@@ -1532,7 +2368,7 @@ if test "$wxUSE_THREADS" = "yes" ; then
   THREADS_LINK="-l$THREADS_LINK"
 fi
 
   THREADS_LINK="-l$THREADS_LINK"
 fi
 
-dnl from if USE_UNIX
+dnl from if !MSW
 fi
 
 if test "$wxUSE_THREADS" = "yes"; then
 fi
 
 if test "$wxUSE_THREADS" = "yes"; then
@@ -1543,6 +2379,24 @@ if test "$wxUSE_THREADS" = "yes"; then
   CXXFLAGS="${CXXFLAGS} -D_REENTRANT"
 
   SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS thread"
   CXXFLAGS="${CXXFLAGS} -D_REENTRANT"
 
   SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS thread"
+else
+  dnl on some systems, _REENTRANT should be defined if we want to use any _r()
+  dnl functions - add tests for other functions here as well
+  if test "$ac_cv_func_strtok_r" = "yes"; then
+    AC_MSG_CHECKING(if -D_REENTRANT is needed)
+    if test "$NEEDS_D_REENTRANT_FOR_R_FUNCS" = 1; then
+        CFLAGS="${CFLAGS} -D_REENTRANT"
+        CXXFLAGS="${CXXFLAGS} -D_REENTRANT"
+        AC_MSG_RESULT(yes)
+    else
+        AC_MSG_RESULT(no)
+    fi
+  fi
+fi
+
+if test "$WXGTK13" = 1 ; then
+  AC_DEFINE_UNQUOTED(__WXGTK13__,$WXGTK13)
+  WXGTK12=1
 fi
 
 if test "$WXGTK12" = 1 ; then
 fi
 
 if test "$WXGTK12" = 1 ; then
@@ -1558,16 +2412,17 @@ if test "$wxUSE_CYGWIN" = 1 ; then
 fi
 
 WXDEBUG=
 fi
 
 WXDEBUG=
-if test "$wxUSE_DEBUG_GDB" = "yes" ; then
-    wxUSE_DEBUG_INFO=yes
-    WXDEBUG="-ggdb"
-fi
 
 if test "$wxUSE_DEBUG_INFO" = "yes" ; then
     WXDEBUG="-g"
     wxUSE_OPTIMISE=no
 fi
 
 
 if test "$wxUSE_DEBUG_INFO" = "yes" ; then
     WXDEBUG="-g"
     wxUSE_OPTIMISE=no
 fi
 
+if test "$wxUSE_DEBUG_GDB" = "yes" ; then
+    wxUSE_DEBUG_INFO=yes
+    WXDEBUG="-ggdb"
+fi
+
 if test "$wxUSE_DEBUG_FLAG" = "yes" ; then
     AC_DEFINE(WXDEBUG)
     WXDEBUG_DEFINE="-D__WXDEBUG__"
 if test "$wxUSE_DEBUG_FLAG" = "yes" ; then
     AC_DEFINE(WXDEBUG)
     WXDEBUG_DEFINE="-D__WXDEBUG__"
@@ -1580,6 +2435,7 @@ fi
 if test "$wxUSE_MEM_TRACING" = "yes" ; then
     AC_DEFINE(wxUSE_MEMORY_TRACING)
     AC_DEFINE(wxUSE_GLOBAL_MEMORY_OPERATORS)
 if test "$wxUSE_MEM_TRACING" = "yes" ; then
     AC_DEFINE(wxUSE_MEMORY_TRACING)
     AC_DEFINE(wxUSE_GLOBAL_MEMORY_OPERATORS)
+    AC_DEFINE(wxUSE_DEBUG_NEW_ALWAYS)
     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS memcheck"
 fi
 
     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS memcheck"
 fi
 
@@ -1592,16 +2448,24 @@ if test "$wxUSE_PROFILE" = "yes" ; then
     PROFILE="-pg"
 fi
 
     PROFILE="-pg"
 fi
 
+DEP_INFO_FLAGS=
+CODE_GEN_FLAGS=
 if test "$GCC" = yes ; then
     if test "$wxUSE_NO_RTTI" = "yes" ; then
 if test "$GCC" = yes ; then
     if test "$wxUSE_NO_RTTI" = "yes" ; then
-       WXDEBUG_DEFINE="$WXDEBUG_DEFINE -fno-rtti"
+        CODE_GEN_FLAGS="$CODE_GEN_FLAGS -fno-rtti"
     fi
     if test "$wxUSE_NO_EXCEPTIONS" = "yes" ; then
     fi
     if test "$wxUSE_NO_EXCEPTIONS" = "yes" ; then
-       WXDEBUG_DEFINE="$WXDEBUG_DEFINE -fno-exceptions"
+        CODE_GEN_FLAGS="$CODE_GEN_FLAGS -fno-exceptions"
     fi
     fi
-fi  
-         
-         
+    if test "$wxUSE_PERMISSIVE" = "yes" ; then
+       CODE_GEN_FLAGS="$CODE_GEN_FLAGS -fpermissive"
+    fi
+    if test "$wxUSE_NO_DEPS" = "no" ; then
+        DEP_INFO_FLAGS="-MMD"
+    fi
+fi
+
+
 CXXFLAGS=`echo "${CXXFLAGS}" | sed "s/\-O.//g" `
 CFLAGS=`echo "${CFLAGS}" | sed "s/\-O.//g" `
 if test "$wxUSE_OPTIMISE" = "no" ; then
 CXXFLAGS=`echo "${CXXFLAGS}" | sed "s/\-O.//g" `
 CFLAGS=`echo "${CFLAGS}" | sed "s/\-O.//g" `
 if test "$wxUSE_OPTIMISE" = "no" ; then
@@ -1626,44 +2490,26 @@ dnl ---------------------------------------------------------------------------
 ZLIB_INCLUDE=
 if test "$wxUSE_ZLIB" = "yes" ; then
   AC_DEFINE(wxUSE_ZLIB)
 ZLIB_INCLUDE=
 if test "$wxUSE_ZLIB" = "yes" ; then
   AC_DEFINE(wxUSE_ZLIB)
-  EXTRA_VPATH="$EXTRA_VPATH:\${srcdir}/../zlib"
-  ZLIB_INCLUDE="-I\${srcdir}/../zlib"
-  LTLIBOBJS="$LTLIBOBJS adler32.lo compress.lo crc32.lo gzio.lo uncompr.lo deflate.lo \
-                        trees.lo zutil.lo inflate.lo infblock.lo inftrees.lo infcodes.lo \
-                        infutil.lo inffast.lo"
+  ZLIB_INCLUDE="-I\${top_srcdir}/src/zlib"
 fi
 
 PNG_INCLUDE=
 if test "$wxUSE_LIBPNG" = "yes" ; then
   AC_DEFINE(wxUSE_LIBPNG)
 fi
 
 PNG_INCLUDE=
 if test "$wxUSE_LIBPNG" = "yes" ; then
   AC_DEFINE(wxUSE_LIBPNG)
-  LTLIBOBJS="$LTLIBOBJS png.lo pngset.lo pngget.lo pngrutil.lo pngtrans.lo pngwutil.lo \
-                        pngread.lo pngrio.lo pngwio.lo pngwrite.lo pngrtran.lo pngwtran.lo \
-                        pngmem.lo pngerror.lo pngpread.lo"
-  EXTRA_VPATH="$EXTRA_VPATH:\${srcdir}/../png"
-  PNG_INCLUDE="-I\${srcdir}/../png"
+  PNG_INCLUDE="-I\${top_srcdir}/src/png"
   SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS png"
 fi
 
   SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS png"
 fi
 
-if test "$wxUSE_LIBGIF" = "yes" ; then
-  AC_DEFINE(wxUSE_LIBGIF)
-fi
-
 JPEG_INCLUDE=
 if test "$wxUSE_LIBJPEG" = "yes" ; then
   AC_DEFINE(wxUSE_LIBJPEG)
 JPEG_INCLUDE=
 if test "$wxUSE_LIBJPEG" = "yes" ; then
   AC_DEFINE(wxUSE_LIBJPEG)
-  EXTRA_VPATH="$EXTRA_VPATH:\${srcdir}/../jpeg"
-  JPEG_INCLUDE="-I\${srcdir}/../jpeg"
-  LTLIBOBJS="$LTLIBOBJS \
-             jcomapi.lo jutils.lo jerror.lo jmemmgr.lo jmemnobs.lo \
-             jcapimin.lo jcapistd.lo jctrans.lo jcparam.lo jdatadst.lo \
-             jcinit.lo jcmaster.lo jcmarker.lo jcmainct.lo jcprepct.lo \
-             jccoefct.lo jccolor.lo jcsample.lo jchuff.lo jcphuff.lo \
-             jcdctmgr.lo jfdctfst.lo jfdctflt.lo jfdctint.lo \
-             jdapimin.lo jdapistd.lo jdtrans.lo jdatasrc.lo \
-             jdmaster.lo jdinput.lo jdmarker.lo jdhuff.lo jdphuff.lo \
-             jdmainct.lo jdcoefct.lo jdpostct.lo jddctmgr.lo jidctfst.lo \
-             jidctflt.lo jidctint.lo jidctred.lo jdsample.lo jdcolor.lo \
-             jquant1.lo jquant2.lo jdmerge.lo"
+  JPEG_INCLUDE="-I\${top_srcdir}/src/jpeg"
+fi
+
+TIFF_INCLUDE=
+if test "$wxUSE_LIBTIFF" = "yes" ; then
+  AC_DEFINE(wxUSE_LIBTIFF)
+  TIFF_INCLUDE="-I\${top_srcdir}/src/tiff"
 fi
 
 if test "$wxUSE_OPENGL" = "yes"; then
 fi
 
 if test "$wxUSE_OPENGL" = "yes"; then
@@ -1700,13 +2546,6 @@ if test "$wxUSE_GUI" = "yes"; then
   dnl    need the dcs, pens, brushes, ...), this just can't be done now
   dnl 4. menu stuff: wxMenu, wxMenuBar, wxMenuItem
   dnl 5. misc stuff: timers, settings, message box
   dnl    need the dcs, pens, brushes, ...), this just can't be done now
   dnl 4. menu stuff: wxMenu, wxMenuBar, wxMenuItem
   dnl 5. misc stuff: timers, settings, message box
-  dnl   LTLIBOBJS="$LTLIBOBJS \
-  dnl main.lo app.lo event.lo wincmn.lo window.lo control.lo framecmn.lo frame.lo dialog.lo panelg.lo \
-  dnl button.lo stattext.lo textctrl.lo \
-  dnl bitmap.lo brush.lo colour.lo cursor.lo data.lo dc.lo dcbase.lo dcclient.lo \
-  dnl dcmemory.lo dcscreen.lo font.lo gdicmn.lo gdiobj.lo icon.lo palette.lo pen.lo region.lo \
-  dnl menu.lo \
-  dnl settings.lo timer.lo msgdlgg.lo"
 else
   AC_DEFINE(wxUSE_NOGUI)
 fi
 else
   AC_DEFINE(wxUSE_NOGUI)
 fi
@@ -1727,11 +2566,6 @@ if test "$wxUSE_APPLE_IEEE" = "yes"; then
   AC_DEFINE(wxUSE_APPLE_IEEE)
 fi
 
   AC_DEFINE(wxUSE_APPLE_IEEE)
 fi
 
-if test "$wxUSE_TIMEDATE" = "yes"; then
-  AC_DEFINE(wxUSE_TIMEDATE)
-  SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS typetest"
-fi
-
 if test "$wxUSE_WAVE" = "yes"; then
   AC_DEFINE(wxUSE_WAVE)
 fi
 if test "$wxUSE_WAVE" = "yes"; then
   AC_DEFINE(wxUSE_WAVE)
 fi
@@ -1794,95 +2628,307 @@ if test "$wxUSE_LONGLONG" = "yes"; then
   AC_DEFINE(wxUSE_LONGLONG)
 fi
 
   AC_DEFINE(wxUSE_LONGLONG)
 fi
 
-if test "$wxUSE_SOCKETS" = "yes" ; then
-    if test "$wxUSE_THREADS" = "yes" ; then
-        AC_DEFINE(wxUSE_SOCKETS)
-        SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS wxsocket"
-        INCLUDE_SUBDIRS="$INCLUDE_SUBDIRS protocol"
-    else
-        AC_MSG_WARN(Socket classes require --with-threads and won't be compiled without it)
-        wxUSE_SOCKETS=0
-    fi
+if test "$wxUSE_DIALUP_MANAGER" = "yes" ; then
+  AC_DEFINE(wxUSE_DIALUP_MANAGER)
+  SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS dialup"
 fi
 
 if test "$wxUSE_STREAMS" = "yes" ; then
   AC_DEFINE(wxUSE_STREAMS)
 fi
 
 fi
 
 if test "$wxUSE_STREAMS" = "yes" ; then
   AC_DEFINE(wxUSE_STREAMS)
 fi
 
-if test "$wxUSE_SERIAL" = "yes" ; then
-  AC_DEFINE(wxUSE_SERIAL)
+dnl ------------------------------------------------------------------------
+dnl time/date functions
+dnl ------------------------------------------------------------------------
+
+if test "$wxUSE_TIMEDATE" = "yes"; then
+    dnl check for strptime
+    AC_CHECK_FUNCS(strptime)
+
+    dnl check for timezone variable
+    AC_CACHE_CHECK(for timezone variable in <time.h>,
+                   wx_cv_var_timezone,
+                   [
+                        AC_TRY_COMPILE(
+                            [
+                                #include <time.h>
+                            ],
+                            [
+                                int tz;
+                                tz = __timezone;
+                            ],
+                            [
+                                wx_cv_var_timezone=__timezone
+                            ],
+                            [
+                                AC_TRY_COMPILE(
+                                    [
+                                        #include <time.h>
+                                    ],
+                                    [
+                                        int tz;
+                                        tz = _timezone;
+                                    ],
+                                    [
+                                        wx_cv_var_timezone=_timezone
+                                    ],
+                                    [
+                                        AC_TRY_COMPILE(
+                                            [
+                                                #include <time.h>
+                                            ],
+                                            [
+                                                int tz;
+                                                tz = timezone;
+                                            ],
+                                            [
+                                                wx_cv_var_timezone=timezone
+                                            ],
+                                            AC_MSG_ERROR(no timezone variable)
+                                        )
+                                    ]
+                                )
+                            ]
+                        )
+                   ]
+    )
+
+    dnl as we want $wx_cv_var_timezone to be expanded, use AC_DEFINE_UNQUOTED
+    AC_DEFINE_UNQUOTED(WX_TIMEZONE, $wx_cv_var_timezone)
+
+    dnl check for localtime (it's POSIX, but the check can do no harm...)
+    AC_CHECK_FUNCS(localtime)
+
+    if test "$ac_cv_func_localtime" = "yes"; then
+        AC_CACHE_CHECK(for tm_gmtoff in struct tm,
+                       wx_cv_struct_tm_has_gmtoff,
+        [
+            AC_TRY_COMPILE(
+                [
+                    #include <time.h>
+                ],
+                [
+                    struct tm tm;
+                    tm.tm_gmtoff++;
+                ],
+                [
+                    wx_cv_struct_tm_has_gmtoff=yes
+                    AC_DEFINE(WX_GMTOFF_IN_TM)
+                ],
+                wx_cv_struct_tm_has_gmtoff=no
+            )
+        ])
+    fi
+
+    dnl check for gettimeofday (SVr4, BSD 4.3) and ftime (V7, BSD 4.3) for the
+    dnl function to be used for high resolution timers
+    AC_CHECK_FUNCS(gettimeofday ftime, break)
+
+    if test "$ac_cv_func_gettimeofday" = "yes"; then
+        AC_CACHE_CHECK([whether gettimeofday takes two arguments],
+                       wx_cv_func_gettimeofday_has_2_args,
+        [
+            dnl on some _really_ old systems it takes only 1 argument
+            AC_LANG_SAVE
+            AC_LANG_CPLUSPLUS
+
+            AC_TRY_COMPILE(
+                [
+                    #include <sys/time.h>
+                    #include <unistd.h>
+                ],
+                [
+                    struct timeval tv;
+                    struct timezone tz;
+                    gettimeofday(&tv, &tz);
+                ],
+                wx_cv_func_gettimeofday_has_2_args=yes,
+                AC_TRY_COMPILE(
+                    [
+                        #include <sys/time.h>
+                        #include <unistd.h>
+                    ],
+                    [
+                        struct timeval tv;
+                        gettimeofday(&tv);
+                    ],
+                    wx_cv_func_gettimeofday_has_2_args=no,
+                    wx_cv_func_gettimeofday_has_2_args=unknown
+                )
+            )
+            AC_LANG_RESTORE
+        ])
+
+        if test "$wx_cv_func_gettimeofday_has_2_args" != "yes"; then
+            AC_DEFINE(WX_GETTIMEOFDAY_NO_TZ)
+        fi
+    fi
+
+    AC_DEFINE(wxUSE_TIMEDATE)
+    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS typetest"
 fi
 
 dnl ------------------------------------------------------------------------
 dnl wxSocket
 dnl ------------------------------------------------------------------------
 
 fi
 
 dnl ------------------------------------------------------------------------
 dnl wxSocket
 dnl ------------------------------------------------------------------------
 
+dnl under MSW we always have sockets
+if test "$TOOLKIT" != "MSW"; then
+
 if test "$wxUSE_SOCKETS" = "yes"; then
 if test "$wxUSE_SOCKETS" = "yes"; then
-    AC_LANG_SAVE
-    AC_LANG_CPLUSPLUS
-    dnl determine the type of third argument for getsockname
-    AC_MSG_CHECKING(the type of the third argument of getsockname)
-    AC_TRY_COMPILE(
-        [#include <sys/socket.h>],
-        [socklen_t len; getsockname(0, NULL, &len);],
-        AC_DEFINE(SOCKLEN_T, socklen_t) AC_MSG_RESULT(socklen_t),
-           AC_TRY_COMPILE(
-            [#include <sys/socket.h>],
-            [size_t len; getsockname(0, NULL, &len);],
-            AC_DEFINE(SOCKLEN_T, size_t) AC_MSG_RESULT(size_t),
-            AC_TRY_COMPILE(
-                [#include <sys/socket.h>],
-                [int len; getsockname(0, NULL, &len);],
-                AC_DEFINE(SOCKLEN_T, int) AC_MSG_RESULT(int),
-            AC_MSG_RESULT(unknown)
-        )
+    dnl under Solaris, socket functions live in -lsocket
+    AC_CHECK_FUNC(socket,,
+        AC_CHECK_LIB(socket, socket,
+            INET_LINK="$INET_LINK -lsocket",
+            [
+                AC_MSG_WARN([socket library not found - sockets will be disabled])
+                wxUSE_SOCKETS=no
+            ]
         )
     )
         )
     )
-    AC_LANG_RESTORE
+fi
+
+fi
+dnl if !MSW
+
+if test "$wxUSE_SOCKETS" = "yes" ; then
+    dnl determine the type of third argument for getsockname
+    AC_CACHE_CHECK([what is the type of the third argument of getsockname],
+                   wx_cv_type_getsockname3,
+        [
+            AC_LANG_SAVE
+            AC_LANG_CPLUSPLUS
+
+            AC_TRY_COMPILE(
+                [
+                    #include <sys/types.h>
+                    #include <sys/socket.h>
+                ],
+                [
+                    socklen_t len;
+                    getsockname(0, 0, &len);
+                ],
+                wx_cv_type_getsockname3=socklen_t,
+                AC_TRY_COMPILE(
+                    [
+                        #include <sys/types.h>
+                        #include <sys/socket.h>
+                    ],
+                    [
+                        size_t len;
+                        getsockname(0, 0, &len);
+                    ],
+                    wx_cv_type_getsockname3=size_t,
+                    AC_TRY_COMPILE(
+                        [
+                            #include <sys/types.h>
+                            #include <sys/socket.h>
+                        ],
+                        [
+                            int len;
+                            getsockname(0, 0, &len);
+                        ],
+                        wx_cv_type_getsockname3=int,
+                        wx_cv_type_getsockname3=unknown
+                    )
+                )
+            )
+
+            AC_LANG_RESTORE
+        ])
+
+    if test "$wx_cv_type_getsockname3" = "unknown"; then
+        wxUSE_SOCKETS=no
+        AC_MSG_WARN([Couldn't find socklen_t synonym for this system])
+    else
+        AC_DEFINE_UNQUOTED(SOCKLEN_T, $wx_cv_type_getsockname3)
+    fi
+fi
+
+if test "$wxUSE_SOCKETS" = "yes" ; then
+    AC_DEFINE(wxUSE_SOCKETS)
+    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS sockets"
+    INCLUDE_SUBDIRS="$INCLUDE_SUBDIRS protocol"
 fi
 
 dnl ---------------------------------------------------------------------------
 dnl Joystick support
 dnl ---------------------------------------------------------------------------
 
 fi
 
 dnl ---------------------------------------------------------------------------
 dnl Joystick support
 dnl ---------------------------------------------------------------------------
 
+dnl under MSW we always have joystick support
+if test "$TOOLKIT" != "MSW"; then
+
 if test "$wxUSE_JOYSTICK" = 1; then
   dnl joystick support is only for Linux 2.1.x or greater
   AC_CHECK_HEADERS(linux/joystick.h)
 if test "$wxUSE_JOYSTICK" = 1; then
   dnl joystick support is only for Linux 2.1.x or greater
   AC_CHECK_HEADERS(linux/joystick.h)
-  if test "$ac_cv_header_linux_joystick_h" = "yes"; then
+  if test "$ac_cv_header_linux_joystick_h" != "yes"; then
+    wxUSE_JOYSTICK=0
+    AC_MSG_WARN(Joystick not supported yb this system, disabled)
+  fi
+fi
+
+fi
+dnl if !MSW
+
+if test "$wxUSE_JOYSTICK" = 1; then
     AC_DEFINE(wxUSE_JOYSTICK)
     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS joytest"
     AC_DEFINE(wxUSE_JOYSTICK)
     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS joytest"
-  fi
 fi
 
 dnl ------------------------------------------------------------------------
 dnl DLL support
 dnl ------------------------------------------------------------------------
 
 fi
 
 dnl ------------------------------------------------------------------------
 dnl DLL support
 dnl ------------------------------------------------------------------------
 
+dnl under MSW we always have LoadLibrary/GetProcAddress
+if test "$TOOLKIT" != "MSW"; then
+
 HAVE_DL_FUNCS=0
 HAVE_SHL_FUNCS=0
 if test "$wxUSE_DYNLIB_CLASS" = "yes"; then
     dnl the test is a bit complicated because we check for dlopen() both with
 HAVE_DL_FUNCS=0
 HAVE_SHL_FUNCS=0
 if test "$wxUSE_DYNLIB_CLASS" = "yes"; then
     dnl the test is a bit complicated because we check for dlopen() both with
-    dnl and without -ldl
+    dnl and without -ldl and we also try to find shl_load() if there is no
+    dnl dlopen() on this system
     AC_CHECK_FUNCS(dlopen,
     AC_CHECK_FUNCS(dlopen,
-        [AC_DEFINE(HAVE_DLOPEN) HAVE_DL_FUNCS=1],
-        [AC_CHECK_LIB(dl, dlopen,
-            [AC_DEFINE(HAVE_DLOPEN) HAVE_DL_FUNCS=1])])
-    AC_CHECK_FUNCS( shl_load,
-                    [AC_DEFINE(HAVE_SHL_LOAD) HAVE_DL_FUNCS=1 HAVE_SHL_FUNCS=1])
+        [
+            AC_DEFINE(HAVE_DLOPEN)
+            HAVE_DL_FUNCS=1
+        ],
+        [
+            AC_CHECK_LIB(dl, dlopen,
+                        [
+                            AC_DEFINE(HAVE_DLOPEN)
+                            HAVE_DL_FUNCS=1
+                            LIBS="$LIBS -ldl"
+                        ],
+                        [
+                            AC_CHECK_FUNCS(shl_load,
+                                          [
+                                            AC_DEFINE(HAVE_SHL_LOAD)
+                                            HAVE_SHL_FUNCS=1
+                                          ])
+                        ])
+        ])
 
     if test "$HAVE_DL_FUNCS" = 0; then
 
     if test "$HAVE_DL_FUNCS" = 0; then
-        if test "$USE_UNIX" = 1; then 
-            AC_MSG_WARN("--with-dynlib and --with-odbc will be disabled due to missing shared library support")
-            wxUSE_ODBC=no
-            wxUSE_DYNLIB_CLASS=no
-       else
-           AC_MSG_WARN("Cannot check dynlib requirements on non-Unix platforms. dynlib remains enabled.")
-       fi    
+        if test "$HAVE_SHL_FUNCS" = 0; then
+          if test "$USE_UNIX" = 1; then
+              AC_MSG_WARN([Missing dynamic loading support, several features will be disabled])
+              wxUSE_DYNLIB_CLASS=no
+          else
+              AC_MSG_WARN([Assuming wxLibrary class works on this platform])
+          fi
+        fi
     fi
 fi
 
     fi
 fi
 
+fi
+dnl if !MSW
+
 if test "$wxUSE_DYNLIB_CLASS" = "yes" ; then
 if test "$wxUSE_DYNLIB_CLASS" = "yes" ; then
-  AC_DEFINE(wxUSE_DYNLIB_CLASS)
+    AC_DEFINE(wxUSE_DYNLIB_CLASS)
+else
+    wxUSE_ODBC=no
+    wxUSE_SERIAL=no
 fi
 
 dnl ---------------------------------------------------------------------------
 fi
 
 dnl ---------------------------------------------------------------------------
@@ -1901,16 +2947,26 @@ if test "$wxUSE_wxUSE_EXPERIMENTAL_PRINTF" = "yes"; then
   AC_DEFINE(wxUSE_EXPERIMENTAL_PRINTF)
 fi
 
   AC_DEFINE(wxUSE_EXPERIMENTAL_PRINTF)
 fi
 
+dnl ----------------------------------------------------------------
+dnl serialization support
+dnl ----------------------------------------------------------------
+
+if test "$wxUSE_SERIAL" = "yes" ; then
+    AC_DEFINE(wxUSE_SERIAL)
+fi
+
 dnl ----------------------------------------------------------------
 dnl iODBC support
 dnl ----------------------------------------------------------------
 
 IODBC_C_SRC=""
 if test "$wxUSE_ODBC" = "yes" ; then
 dnl ----------------------------------------------------------------
 dnl iODBC support
 dnl ----------------------------------------------------------------
 
 IODBC_C_SRC=""
 if test "$wxUSE_ODBC" = "yes" ; then
-  AC_DEFINE(wxUSE_ODBC)
-  EXTRA_VPATH="$EXTRA_VPATH:\$(srcdir)/../iodbc"
-  LTLIBOBJS="$LTLIBOBJS catalog.lo connect.lo dlf.lo dlproc.lo execute.lo fetch.lo hdbc.lo henv.lo herr.lo hstmt.lo info.lo itrace.lo misc.lo prepare.lo result.lo"
-  SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS db"
+    AC_DEFINE(wxUSE_ODBC)
+    WXODBCFLAG="-D_IODBC_"
+    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS db"
+    IODBCOBJS="\$(IODBC_OBJS)"
+else
+    IODBCOBJS=
 fi
 
 dnl ----------------------------------------------------------------
 fi
 
 dnl ----------------------------------------------------------------
@@ -1993,20 +3049,31 @@ fi
 if test "$wxUSE_DRAG_AND_DROP" = "yes" ; then
     if test "$wxUSE_GTK" = 1; then
         if test "$WXGTK12" != 1; then
 if test "$wxUSE_DRAG_AND_DROP" = "yes" ; then
     if test "$wxUSE_GTK" = 1; then
         if test "$WXGTK12" != 1; then
-            AC_MSG_WARN([Drag and drop is only supported under wxGTK 2.1])
-           wxUSE_DRAG_AND_DROP=no
+            AC_MSG_WARN([Drag and drop is only supported under GTK+ 1.2])
+            wxUSE_DRAG_AND_DROP=no
         fi
     fi
 
     if test "$wxUSE_MOTIF" = 1; then
         AC_MSG_WARN([Drag and drop is not yet supported under Motif])
         fi
     fi
 
     if test "$wxUSE_MOTIF" = 1; then
         AC_MSG_WARN([Drag and drop is not yet supported under Motif])
-       wxUSE_DRAG_AND_DROP=no
+        wxUSE_DRAG_AND_DROP=no
+    fi
+
+    if test "$USE_WIN32" = 1; then
+        dnl check for ole headers and disable DnD if not present (earlier
+        dnl versions of mingw32 don't have them)
+        AC_CHECK_HEADERS(ole2.h)
+        if test "x$HAVE_OLE2_H" = x ; then
+            AC_MSG_WARN(Drag and drop disabled because OLE headers not found)
+            wxUSE_DRAG_AND_DROP=no
+        fi
     fi
 
     if test "$wxUSE_DRAG_AND_DROP" = "yes"; then
         AC_DEFINE(wxUSE_DRAG_AND_DROP)
         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS dnd"
     fi
     fi
 
     if test "$wxUSE_DRAG_AND_DROP" = "yes"; then
         AC_DEFINE(wxUSE_DRAG_AND_DROP)
         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS dnd"
     fi
+
 fi
 
 if test "$wxUSE_SPLINES" = "yes" ; then
 fi
 
 if test "$wxUSE_SPLINES" = "yes" ; then
@@ -2056,6 +3123,11 @@ if test "$wxUSE_GRID" = "yes"; then
   SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS grid"
 fi
 
   SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS grid"
 fi
 
+if test "$wxUSE_NEW_GRID" = "yes"; then
+  AC_DEFINE(wxUSE_NEW_GRID)
+  SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS newgrid"
+fi
+
 if test "$wxUSE_IMAGLIST" = "yes"; then
     AC_DEFINE(wxUSE_IMAGLIST)
 fi
 if test "$wxUSE_IMAGLIST" = "yes"; then
     AC_DEFINE(wxUSE_IMAGLIST)
 fi
@@ -2093,7 +3165,7 @@ fi
 
 if test "$wxUSE_SCROLLBAR" = "yes"; then
     AC_DEFINE(wxUSE_SCROLLBAR)
 
 if test "$wxUSE_SCROLLBAR" = "yes"; then
     AC_DEFINE(wxUSE_SCROLLBAR)
-    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS scroll"
+    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS scroll scrollsub"
 fi
 
 if test "$wxUSE_SLIDER" = "yes"; then
 fi
 
 if test "$wxUSE_SLIDER" = "yes"; then
@@ -2104,6 +3176,10 @@ if test "$wxUSE_SPINBTN" = "yes"; then
     AC_DEFINE(wxUSE_SPINBTN)
 fi
 
     AC_DEFINE(wxUSE_SPINBTN)
 fi
 
+if test "$wxUSE_SPINCTRL" = "yes"; then
+    AC_DEFINE(wxUSE_SPINCTRL)
+fi
+
 if test "$wxUSE_SPLITTER" = "yes"; then
     AC_DEFINE(wxUSE_SPLITTER)
     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS splitter"
 if test "$wxUSE_SPLITTER" = "yes"; then
     AC_DEFINE(wxUSE_SPLITTER)
     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS splitter"
@@ -2121,16 +3197,14 @@ if test "$wxUSE_STATLINE" = "yes"; then
     if test "$wxUSE_WINE" = 1 ; then
         AC_MSG_WARN([wxStaticLine is not supported under WINE])
     else
     if test "$wxUSE_WINE" = 1 ; then
         AC_MSG_WARN([wxStaticLine is not supported under WINE])
     else
-        if test "$wxUSE_MOTIF" = 1 ; then
-            AC_MSG_WARN([wxStaticLine is not supported under Motif])
-       else
-            AC_DEFINE(wxUSE_STATLINE)
-       fi
+        AC_DEFINE(wxUSE_STATLINE)
     fi
 fi
 
 if test "$wxUSE_STATUSBAR" = "yes"; then
     AC_DEFINE(wxUSE_STATUSBAR)
     fi
 fi
 
 if test "$wxUSE_STATUSBAR" = "yes"; then
     AC_DEFINE(wxUSE_STATUSBAR)
+
+    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS statbar"
 fi
 
 if test "$wxUSE_TABDIALOG" = "yes"; then
 fi
 
 if test "$wxUSE_TABDIALOG" = "yes"; then
@@ -2138,11 +3212,26 @@ if test "$wxUSE_TABDIALOG" = "yes"; then
     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS tab"
 fi
 
     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS tab"
 fi
 
+if test "$wxUSE_TOOLBAR_SIMPLE" = "yes"; then
+    AC_DEFINE(wxUSE_TOOLBAR_SIMPLE)
+    wxUSE_TOOLBAR="yes"
+fi
+
 if test "$wxUSE_TOOLBAR" = "yes"; then
     AC_DEFINE(wxUSE_TOOLBAR)
 if test "$wxUSE_TOOLBAR" = "yes"; then
     AC_DEFINE(wxUSE_TOOLBAR)
+
+    dnl if wxUSE_TOOLBAR and !wxUSE_TOOLBAR_SIMPLE => wxUSE_TOOLBAR_NATIVE
+    if test "$wxUSE_TOOLBAR_SIMPLE" != "yes"; then
+        wxUSE_TOOLBAR_NATIVE="yes"
+    fi
+
     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS toolbar"
 fi
 
     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS toolbar"
 fi
 
+if test "$wxUSE_TOOLBAR_NATIVE" = "yes"; then
+    AC_DEFINE(wxUSE_TOOLBAR_NATIVE)
+fi
+
 if test "$wxUSE_TOOLTIPS" = "yes"; then
     if test "$wxUSE_MOTIF" = 1; then
         AC_MSG_WARN(wxTooltip not supported yet under Motif)
 if test "$wxUSE_TOOLTIPS" = "yes"; then
     if test "$wxUSE_MOTIF" = 1; then
         AC_MSG_WARN(wxTooltip not supported yet under Motif)
@@ -2225,63 +3314,87 @@ if test "$wxUSE_VALIDATORS" = "yes"; then
     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS validate"
 fi
 
     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS validate"
 fi
 
+if test "$wxUSE_GIF" = "yes" ; then
+  AC_DEFINE(wxUSE_GIF)
+fi
+
+if test "$wxUSE_PCX" = "yes" ; then
+  AC_DEFINE(wxUSE_PCX)
+fi
+
+if test "$wxUSE_PNM" = "yes" ; then
+  AC_DEFINE(wxUSE_PNM)
+fi
+
+dnl ---------------------------------------------------------------------------
+dnl get the string with OS info - used by wxGetOsDescription()
+dnl ---------------------------------------------------------------------------
+
+OSINFO=`uname -s -r -m`
+OSINFO="\"$OSINFO\""
+AC_DEFINE_UNQUOTED(WXWIN_OS_DESCRIPTION, $OSINFO)
+
 dnl ---------------------------------------------------------------------------
 dnl Output the makefiles and such from the results found above
 dnl ---------------------------------------------------------------------------
 
 dnl ---------------------------------------------------------------------------
 dnl Output the makefiles and such from the results found above
 dnl ---------------------------------------------------------------------------
 
-dnl if we add wxUSE_GUI in the future, it might be handy to separate the libs
-dnl into GUI and non-GUI parts
 GUILIBS="$GUI_TK_LIBRARY $OPENGL_LINK $LIBPNG_LINK $ZLIB_LINK $TOOLKIT_LINK"
 
 dnl all additional libraries (except wxWindows itself) we link with
 GUILIBS="$GUI_TK_LIBRARY $OPENGL_LINK $LIBPNG_LINK $ZLIB_LINK $TOOLKIT_LINK"
 
 dnl all additional libraries (except wxWindows itself) we link with
-EXTRA_LIBS="$LIBS $POSIX4_LINK $WCHAR_LINK $THREADS_LINK $DMALLOC_LINK $GUILIBS"
-
-dnl all the libraries needed to link wxWindows programs (when the library is not
-dnl yet installed)
-LIBS="\${top_builddir}/src/${TOOLKIT_DIR}/${WX_LIBRARY_NAME} $EXTRA_LIBS"
+EXTRA_LIBS="$LIBS $POSIX4_LINK $INET_LINK $WCHAR_LINK $THREADS_LINK $DMALLOC_LINK $DL_LINK"
+if test "$wxUSE_GUI" = "yes"; then
+    EXTRA_LIBS="$EXTRA_LIBS $GUILIBS"
+fi
 
 dnl all the libraries needed to link wxWindows programs when using the
 dnl makefile system without libtool
 LD_LIBS="\${top_builddir}/lib/${WX_LIBRARY_NAME_STATIC} $EXTRA_LIBS"
 
 dnl all -I options we must pass to the compiler
 
 dnl all the libraries needed to link wxWindows programs when using the
 dnl makefile system without libtool
 LD_LIBS="\${top_builddir}/lib/${WX_LIBRARY_NAME_STATIC} $EXTRA_LIBS"
 
 dnl all -I options we must pass to the compiler
-INCLUDES="-I. -I\${top_builddir}/include -I\${top_srcdir}/include $ZLIB_INCLUDE $PNG_INCLUDE $JPEG_INCLUDE $TOOLKIT_INCLUDE"
+INCLUDES="-I. -I\${top_builddir}/include -I\${top_srcdir}/include $ZLIB_INCLUDE $PNG_INCLUDE $JPEG_INCLUDE $TIFF_INCLUDE $TOOLKIT_INCLUDE"
 
 dnl C/C++ compiler options used to compile wxWindows
 if test "$GXX" = yes ; then
     dnl CXXWARNINGS="-Wall -W -Wcast-qual -Werror"
     CXXWARNINGS="-Wall"
 
 dnl C/C++ compiler options used to compile wxWindows
 if test "$GXX" = yes ; then
     dnl CXXWARNINGS="-Wall -W -Wcast-qual -Werror"
     CXXWARNINGS="-Wall"
-    dnl there is one weird warning in docview.h:71 which prevents me from doing
-    dnl this...
+    dnl FIXME: there is one weird warning in docview.h:71 which prevents me from
+    dnl        doing this... (VZ)
     dnl CXXWARNINGS="-Wall -Werror"
 fi
     dnl CXXWARNINGS="-Wall -Werror"
 fi
-EXTRA_CFLAGS="$WXDEBUG $PROFILE $OPTIMISE $INCLUDES"
+EXTRA_CFLAGS="$WXDEBUG $WXODBCFLAG $PROFILE $OPTIMISE $INCLUDES"
+
+CFLAGS=`echo $CFLAGS $EXTRA_CFLAGS | sed 's/ \\+/ /g'`
+CXXFLAGS=`echo $CXXFLAGS $EXTRA_CFLAGS $CXXWARNINGS | sed 's/ \+/ /g'`
 
 
-CPPFLAGS="-I\${top_srcdir}/include $CPPFLAGS"
-CFLAGS="$CFLAGS $EXTRA_CFLAGS"
-CXXFLAGS="$CXXFLAGS $EXTRA_CFLAGS $CXXWARNINGS"
+LDFLAGS="$LDFLAGS $PROFILE"
 
 if test "$wxUSE_GUI" = "yes"; then
     dnl TODO add checks that these samples will really compile (i.e. all the
     dnl      library features they need are present)
 
     dnl TODO some samples are never built so far:
 
 if test "$wxUSE_GUI" = "yes"; then
     dnl TODO add checks that these samples will really compile (i.e. all the
     dnl      library features they need are present)
 
     dnl TODO some samples are never built so far:
-    dnl      mfc, nativdlg, oleauto, ownerdrw, proplist
-    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS bombs controls dialogs drawing dynamic \
-                     forty fractal image wxpoem"
-fi
+    dnl      ipc, mfc, nativdlg, oleauto, ownerdrw, proplist
+    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS controls dialogs drawing dynamic \
+                     font fractal image minimal richedit"
 
 
-dnl for convenience, sort the files to build in alphabetical order
-dnl
-dnl another shell command to do it which might be faster but is less clear:
-dnl  LTLIBOBJS="`for obj in $LTLIBOBJS; do echo $obj; done | sort | sed 's@^@ @'`"
-LTLIBOBJS="`echo $LTLIBOBJS | tr -s ' ' | tr ' ' '\n' | sort | tr '\n' ' '`"
+    dnl this is needed to be able to find AFM files
+    CPPFLAGS="$CPPFLAGS \$(EXTRADEFS)"
+else
+    SAMPLES_SUBDIRS=""
+fi
 
 dnl for convenience, sort the samples in alphabetical order
 dnl
 dnl FIXME For some mysterious reasons, sometimes the directories are duplicated
 dnl       in this list - hence uniq. But normally, this shouldn't be needed!
 
 dnl for convenience, sort the samples in alphabetical order
 dnl
 dnl FIXME For some mysterious reasons, sometimes the directories are duplicated
 dnl       in this list - hence uniq. But normally, this shouldn't be needed!
-SAMPLES_SUBDIRS="`echo $SAMPLES_SUBDIRS | tr -s ' ' | tr ' ' '\n' | sort | uniq | tr '\n' ' '`"
+dnl       Unfortunately, there is a bug in OS/2's tr, such that 
+dnl       tr ' ' '\n' introduces DOS-like line breaks, whereas tr '\n' ' '
+dnl       only removes the Unix-like part of the introduced line break.
+SAMPLES_SUBDIRS="`echo $SAMPLES_SUBDIRS | tr -s ' ' | tr ' ' '\n' | sort | uniq | tr '\n' ' '| tr -d '\r'`"
+
+dnl makefile variables
+AC_SUBST(LEX_STEM)
+AC_SUBST(PATH_IFS)
 
 dnl global options
 AC_SUBST(WX_MAJOR_VERSION_NUMBER)
 
 dnl global options
 AC_SUBST(WX_MAJOR_VERSION_NUMBER)
@@ -2295,34 +3408,49 @@ AC_SUBST(WX_TARGET_LIBRARY)
 AC_SUBST(WX_LIBRARY_LINK1)
 AC_SUBST(WX_LIBRARY_LINK2)
 AC_SUBST(WX_LIBRARY_LINK3)
 AC_SUBST(WX_LIBRARY_LINK1)
 AC_SUBST(WX_LIBRARY_LINK2)
 AC_SUBST(WX_LIBRARY_LINK3)
+AC_SUBST(PROGRAM_EXT)
 
 dnl are we supposed to create the links?
 
 dnl are we supposed to create the links?
-AC_SUBST(WX_CREATE_LINKS)
-
-dnl suppress libtool's informational messages - they duplicate its command line
-LIBTOOL="$LIBTOOL --silent"
-AC_SUBST(LIBTOOL)
+AC_SUBST(WX_ALL)
+AC_SUBST(WX_ALL_INSTALLED)
 
 AC_SUBST(SHARED_LD)
 AC_SUBST(PIC_FLAG)
 
 AC_SUBST(SHARED_LD)
 AC_SUBST(PIC_FLAG)
+AC_SUBST(DEP_INFO_FLAGS)
+AC_SUBST(CODE_GEN_FLAGS)
+AC_SUBST(BURNT_LIBRARY_NAME)
 
 dnl debugging options
 AC_SUBST(WXDEBUG_DEFINE)
 
 dnl toolkit options
 
 dnl debugging options
 AC_SUBST(WXDEBUG_DEFINE)
 
 dnl toolkit options
+AC_SUBST(USE_GUI)
+AC_SUBST(AFMINSTALL)
 AC_SUBST(TOOLKIT)
 AC_SUBST(TOOLKIT_DEF)
 AC_SUBST(TOOLKIT_DIR)
 AC_SUBST(TOOLKIT_INCLUDE)
 
 dnl what to compile
 AC_SUBST(TOOLKIT)
 AC_SUBST(TOOLKIT_DEF)
 AC_SUBST(TOOLKIT_DIR)
 AC_SUBST(TOOLKIT_INCLUDE)
 
 dnl what to compile
+AC_SUBST(GUIHEADERS)
 AC_SUBST(GUIOBJS)
 AC_SUBST(COMMONOBJS)
 AC_SUBST(GENERICOBJS)
 AC_SUBST(GUIOBJS)
 AC_SUBST(COMMONOBJS)
 AC_SUBST(GENERICOBJS)
-
-dnl additional sources
-AC_SUBST(EXTRA_VPATH)
-AC_SUBST(LTLIBOBJS)
+AC_SUBST(GUIDEPS)
+AC_SUBST(COMMONDEPS)
+AC_SUBST(GENERICDEPS)
+AC_SUBST(IODBCOBJS)
+AC_SUBST(UNIXOBJS)
+AC_SUBST(UNIXDEPS)
+AC_SUBST(ALL_OBJECTS)
+AC_SUBST(ALL_DEPFILES)
+
+dnl distribution vars
+AC_SUBST(GUIDIST)
+AC_SUBST(PORT_FILES)
+AC_SUBST(DISTDIR)
+AC_SUBST(RPM_SPEC)
+AC_SUBST(RPM_FILES)
 
 dnl additional subdirectories where we will build
 AC_SUBST(SRC_SUBDIRS)
 
 dnl additional subdirectories where we will build
 AC_SUBST(SRC_SUBDIRS)
@@ -2332,123 +3460,70 @@ AC_SUBST(DOCS_SUBDIRS)
 AC_SUBST(SAMPLES_SUBDIRS)
 AC_SUBST(USER_SUBDIRS)
 
 AC_SUBST(SAMPLES_SUBDIRS)
 AC_SUBST(USER_SUBDIRS)
 
-dnl additional libraries
+dnl additional libraries and linker settings
+AC_SUBST(LDFLAGS)
 AC_SUBST(EXTRA_LIBS)
 AC_SUBST(EXTRA_LIBS)
+AC_SUBST(EXTRADEFS)
 AC_SUBST(LIBS)
 AC_SUBST(LD_LIBS)
 
 AC_SUBST(LIBS)
 AC_SUBST(LD_LIBS)
 
-dnl create the configuration header file from the template
-dnl
-dnl NB: automake can't work correctly if our header lives in a directory which
-dnl     is only determined at configure time, so we create it on the top-level
-dnl     and make a link to allow '#include "wx/setup.h"' to still work
-AM_CONFIG_HEADER(setup.h)
-
 dnl MAKE_SET will be replaced with "MAKE=..." or nothing if make sets MAKE
 dnl itself (this is macro is required if SUBDIRS variable is used in Makefile.am
 dnl - and we do use it)
 AC_PROG_MAKE_SET
 
 dnl MAKE_SET will be replaced with "MAKE=..." or nothing if make sets MAKE
 dnl itself (this is macro is required if SUBDIRS variable is used in Makefile.am
 dnl - and we do use it)
 AC_PROG_MAKE_SET
 
+AC_CONFIG_HEADER(setup.h:setup.h.in)
+
+dnl some more GUI only things
+if test "$wxUSE_GUI" = "yes"; then
+    AC_CACHE_CHECK([glcanvas subdirectory to use], wx_cv_path_glcanvas,
+    [
+        dnl Duh! glcanvas/$(TOOLKIT_DIR) doesn't work for msw because some
+        dnl genius called it "win"
+        if test "${TOOLKIT_DIR}" = "msw" ; then
+          wx_cv_path_glcanvas="win"
+        else
+          wx_cv_path_glcanvas="${TOOLKIT_DIR}"
+        fi
+    ])
+
+    dnl It's needed in glcanvas/Makefile.in so we even have to subst this hack!
+    GL_TOOLKIT_DIR=$wx_cv_path_glcanvas
+    AC_SUBST(GL_TOOLKIT_DIR)
+
+    dnl another hack: we need to pass SAMPLES_SUBDIRS to the configure in
+    dnl samples and the only way to do it is, again, use the cache
+    wx_cv_path_samplesubdirs=$SAMPLES_SUBDIRS
+    AC_CONFIG_SUBDIRS(demos samples utils)
+fi
+dnl from wxUSE_GUI
+
 dnl create each of the files in the space separated list from the file.in
 dnl (the original file name may be overriden by appending another name after a
 dnl colon)
 AC_OUTPUT([
             wx-config
 dnl create each of the files in the space separated list from the file.in
 dnl (the original file name may be overriden by appending another name after a
 dnl colon)
 AC_OUTPUT([
             wx-config
-
-           src/make.env
-           src/makeprog.env
-           src/makelib.env
-           src/gtk/makefile.unx
-           src/motif/makefile.unx
-           
+            src/make.env
+            src/makeprog.env
+            src/makelib.env
             Makefile
             Makefile
-            src/Makefile
-
-dnl just for testing, will remove soon (VZ)
-dnl             src/msw/Makefile
-dnl             include/Makefile include/wx/Makefile include/wx/generic/Makefile
-dnl             include/wx/msw/Makefile
-dnl             samples/Makefile samples/minimal/Makefile
-
-            src/gtk/Makefile
-            src/motif/Makefile
-            src/msw/Makefile
-            include/Makefile
-            include/wx/Makefile
-            include/wx/generic/Makefile
-            include/wx/gtk/Makefile
-            include/wx/motif/Makefile
-            include/wx/msw/Makefile
-            include/wx/msw/gnuwin32/Makefile
-            include/wx/msw/ctl3d/Makefile
-            include/wx/protocol/Makefile
-            include/wx/unix/Makefile
-            include/wx/html/Makefile
-            misc/Makefile
-            misc/afm/Makefile
-            misc/gs_afm/Makefile
-            samples/Makefile
-            samples/bombs/Makefile
-            samples/caret/Makefile
-            samples/checklst/Makefile
-            samples/config/Makefile
-            samples/controls/Makefile
-            samples/db/Makefile
-            samples/dialogs/Makefile
-            samples/dnd/Makefile
-            samples/docview/Makefile
-            samples/docvwmdi/Makefile
-            samples/drawing/Makefile
-            samples/dynamic/Makefile
-            samples/forty/Makefile
-            samples/fractal/Makefile
-            samples/grid/Makefile
-            samples/help/Makefile
-            samples/image/Makefile
-            samples/internat/Makefile
-            samples/layout/Makefile
-            samples/listctrl/Makefile
-            samples/mdi/Makefile
-            samples/memcheck/Makefile
-            samples/minifram/Makefile
-            samples/minimal/Makefile
-            samples/notebook/Makefile
-            samples/png/Makefile
-            samples/printing/Makefile
-            samples/proplist/Makefile
-            samples/resource/Makefile
-            samples/sashtest/Makefile
-            samples/scroll/Makefile
-            samples/splitter/Makefile
-            samples/text/Makefile
-            samples/thread/Makefile
-            samples/toolbar/Makefile
-            samples/treectrl/Makefile
-            samples/typetest/Makefile
-            samples/validate/Makefile
-            samples/wxpoem/Makefile
-            samples/wxsocket/Makefile
-            samples/html/Makefile
-            samples/html/about/Makefile
-            samples/html/help/Makefile
-            samples/html/test/Makefile
-            samples/html/printing/Makefile
-            samples/html/widget/Makefile
-            samples/html/virtual/Makefile
-            samples/html/zip/Makefile
           ],
           [
             chmod +x wx-config
           ],
           [
             chmod +x wx-config
-dnl The following line is more elegant but test -e is not supported by all
-dnl test varieties.
-dnl            if test ! -e include/wx/${TOOLKIT_DIR}/setup.h; then
-            cat include/wx/${TOOLKIT_DIR}/setup.h >/dev/null 2>&1
-            if test $? != 0; then
-              ${LN_S} `pwd`/setup.h include/wx/${TOOLKIT_DIR}/setup.h
+            if test ! -d include; then
+              mkdir include
+            fi
+            if test ! -d include/wx; then
+              mkdir include/wx
+            fi
+            if test ! -d include/wx/${TOOLKIT_DIR}; then
+              mkdir include/wx/${TOOLKIT_DIR}
+            fi
+            if test -f setup.h; then
+                mv -f setup.h include/wx/${TOOLKIT_DIR}/setup.h
             fi
           ],
           [
             fi
           ],
           [
-            LN_S="${ac_cv_prog_LN_S}"
             TOOLKIT_DIR="${TOOLKIT_DIR}"
           ]
          )
             TOOLKIT_DIR="${TOOLKIT_DIR}"
           ]
          )