]> git.saurik.com Git - wxWidgets.git/blobdiff - configure.in
SCROLLWIN instead of SCROLL again
[wxWidgets.git] / configure.in
index 10f34f4c2f83c3f9c41d017c6c47e00997874bc2..3f740e77ac1ec1d5e85f5aabab95a98257f3069c 100644 (file)
@@ -11,14 +11,391 @@ 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 ---------------------------------------------------------------------------
 
-dnl the file passed to AC_INIT should be speicific to our package
+dnl the file passed to AC_INIT should be specific to our package
 AC_INIT(wx-config.in)
 
 AC_INIT(wx-config.in)
 
-AC_CANONICAL_HOST
+AC_CANONICAL_SYSTEM
 
 dnl When making releases do:
 dnl
 
 dnl When making releases do:
 dnl
@@ -28,35 +405,22 @@ dnl WX_BINARY_AGE += 1
 dnl
 dnl if any functions have been added, do:
 dnl
 dnl
 dnl if any functions have been added, do:
 dnl
-dnl WX_INTERFACE_AGE = 1
+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=
@@ -80,11 +447,16 @@ USE_FREEBSD=
 USE_VMS=
 USE_ULTRIX=
 USE_CYGWIN=
 USE_VMS=
 USE_ULTRIX=
 USE_CYGWIN=
-USE_MINGW32=
+USE_MINGW=
 USE_DATA_GENERAL=
 
 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
@@ -179,16 +559,47 @@ case "${host}" in
     AC_DEFINE(__SVR4__)
     DEFAULT_DEFAULT_wxUSE_MOTIF=1
   ;;
     AC_DEFINE(__SVR4__)
     DEFAULT_DEFAULT_wxUSE_MOTIF=1
   ;;
+
+  *-*-cygwin32* | *-*-mingw32* )
+    USE_UNIX=0
+    USE_WIN32=1
+    AC_DEFINE(__WIN32__)
+    AC_DEFINE(__WIN95__)
+    AC_DEFINE(__WINDOWS__)
+    AC_DEFINE(__GNUWIN32__)
+    AC_DEFINE(STRICT)
+    AC_DEFINE(WINVER, 0x0400)
+    PROGRAM_EXT=".exe"
+    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__)
+  ;;
+
   *)
   *)
-    AC_MSG_ERROR(unknown system type $(host).)
+    AC_MSG_ERROR(unknown system type ${host}.)
 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
@@ -196,16 +607,6 @@ if test "$USE_LINUX" = 1; then
   AC_CHECK_LIB(c,gettext,AC_DEFINE(wxHAVE_GLIBC2))
 fi
 
   AC_CHECK_LIB(c,gettext,AC_DEFINE(wxHAVE_GLIBC2))
 fi
 
-dnl TODO cross-compiling for Windows not yet supported
-AC_DEFINE(__UNIX__)
-
-dnl if eval "test $USE_CYGWIN != 1 -a $USE_MINGW32 != 1"; then
-dnl   AC_DEFINE(__UNIX__)
-dnl else
-dnl   AC_DEFINE(__WINDOWS__)
-dnl   DEFAULT_wxUSE_MSW=1
-dnl fi
-
 dnl ---------------------------------------------------------------------------
 dnl command line options for configure
 dnl ---------------------------------------------------------------------------
 dnl ---------------------------------------------------------------------------
 dnl command line options for configure
 dnl ---------------------------------------------------------------------------
@@ -224,8 +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_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
@@ -240,10 +646,11 @@ 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_ODBC=no
 
+  DEFAULT_wxUSE_STD_IOSTREAM=no
   DEFAULT_wxUSE_FILE=no
   DEFAULT_wxUSE_TEXTFILE=no
   DEFAULT_wxUSE_TIMEDATE=no
   DEFAULT_wxUSE_FILE=no
   DEFAULT_wxUSE_TEXTFILE=no
   DEFAULT_wxUSE_TIMEDATE=no
@@ -252,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
@@ -280,7 +688,16 @@ if test $DEBUG_CONFIGURE = 1; then
   DEFAULT_wxUSE_METAFILE=no
 
   DEFAULT_wxUSE_COMMONDLGS=no
   DEFAULT_wxUSE_METAFILE=no
 
   DEFAULT_wxUSE_COMMONDLGS=no
+  DEFAULT_wxUSE_DIRDLG=no
+  DEFAULT_wxUSE_TEXTDLG=no
+  DEFAULT_wxUSE_STARTUP_TIPS=no
+  DEFAULT_wxUSE_PROGRESSDLG=no
   DEFAULT_wxUSE_MINIFRAME=no
   DEFAULT_wxUSE_MINIFRAME=no
+  DEFAULT_wxUSE_HTML=no
+  DEFAULT_wxUSE_FS_INET=no
+  DEFAULT_wxUSE_FS_ZIP=no
+  DEFAULT_wxUSE_BUSYINFO=no
+  DEFAULT_wxUSE_ZIPSTREAM=no
   DEFAULT_wxUSE_VALIDATORS=yes
 
   DEFAULT_wxUSE_ACCEL=no
   DEFAULT_wxUSE_VALIDATORS=yes
 
   DEFAULT_wxUSE_ACCEL=no
@@ -288,9 +705,11 @@ if test $DEBUG_CONFIGURE = 1; then
   DEFAULT_wxUSE_BMPBUTTON=no
   DEFAULT_wxUSE_CHECKBOX=no
   DEFAULT_wxUSE_CHECKLST=no
   DEFAULT_wxUSE_BMPBUTTON=no
   DEFAULT_wxUSE_CHECKBOX=no
   DEFAULT_wxUSE_CHECKLST=no
+  DEFAULT_wxUSE_CHOICE=yes
   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
@@ -301,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
@@ -308,15 +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_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
@@ -331,10 +762,11 @@ 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_ODBC=no
 
+  DEFAULT_wxUSE_STD_IOSTREAM=no
   DEFAULT_wxUSE_FILE=yes
   DEFAULT_wxUSE_TEXTFILE=yes
   DEFAULT_wxUSE_TIMEDATE=yes
   DEFAULT_wxUSE_FILE=yes
   DEFAULT_wxUSE_TEXTFILE=yes
   DEFAULT_wxUSE_TIMEDATE=yes
@@ -343,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
@@ -371,7 +804,16 @@ else
   DEFAULT_wxUSE_METAFILE=yes
 
   DEFAULT_wxUSE_COMMONDLGS=yes
   DEFAULT_wxUSE_METAFILE=yes
 
   DEFAULT_wxUSE_COMMONDLGS=yes
+  DEFAULT_wxUSE_DIRDLG=yes
+  DEFAULT_wxUSE_TEXTDLG=yes
+  DEFAULT_wxUSE_STARTUP_TIPS=yes
+  DEFAULT_wxUSE_PROGRESSDLG=yes
   DEFAULT_wxUSE_MINIFRAME=yes
   DEFAULT_wxUSE_MINIFRAME=yes
+  DEFAULT_wxUSE_HTML=yes
+  DEFAULT_wxUSE_FS_INET=yes
+  DEFAULT_wxUSE_FS_ZIP=yes
+  DEFAULT_wxUSE_BUSYINFO=yes
+  DEFAULT_wxUSE_ZIPSTREAM=yes
   DEFAULT_wxUSE_VALIDATORS=yes
 
   DEFAULT_wxUSE_ACCEL=yes
   DEFAULT_wxUSE_VALIDATORS=yes
 
   DEFAULT_wxUSE_ACCEL=yes
@@ -379,9 +821,11 @@ else
   DEFAULT_wxUSE_BMPBUTTON=yes
   DEFAULT_wxUSE_CHECKBOX=yes
   DEFAULT_wxUSE_CHECKLST=yes
   DEFAULT_wxUSE_BMPBUTTON=yes
   DEFAULT_wxUSE_CHECKBOX=yes
   DEFAULT_wxUSE_CHECKLST=yes
+  DEFAULT_wxUSE_CHOICE=yes
   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
@@ -392,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
@@ -399,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
@@ -413,13 +864,6 @@ dnl ============================
 dnl external package dependecies
 dnl ============================
 
 dnl external package dependecies
 dnl ============================
 
-dnl TODO should support these options!
-dnl
-dnl AC_ARG_WITH(gtk-prefix,    [  --with-gtk-prefix=PFX   prefix where GTK is installed],
-dnl             gtk_config_prefix="$withval", gtk_config_prefix="")
-dnl AC_ARG_WITH(gtk-exec-prefix,
-dnl                            [  --with-gtk-exec-prefix=PFX  exec prefix where GTK is installed], gtk_config_exec_prefix="$withval", gtk_config_exec_prefix="")
-
 dnl these options use AC_ARG_WITH and not WX_ARG_WITH on purpose - we cache
 dnl these values manually
 for toolkit in `echo $ALL_TOOLKITS`; do
 dnl these options use AC_ARG_WITH and not WX_ARG_WITH on purpose - we cache
 dnl these values manually
 for toolkit in `echo $ALL_TOOLKITS`; do
@@ -431,18 +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="")
 
 
-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 ====================
@@ -453,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)
 
@@ -464,44 +931,51 @@ elif test "$wxUSE_DEBUG" = "no"; then
   DEFAULT_wxUSE_DEBUG_INFO=no
 fi
 
   DEFAULT_wxUSE_DEBUG_INFO=no
 fi
 
-WX_ARG_ENABLE(debug_flag,  [  --enable-debug_flag     set __WXDEBUG__ flag (recommended for developers!)], wxUSE_DEBUG_FLAG)
-WX_ARG_ENABLE(debug_info,  [  --enable-debug_info     create code with debugging information], wxUSE_DEBUG_INFO)
-WX_ARG_ENABLE(debug_gdb,   [  --enable-debug_gdb      create code with extra GDB debugging information], wxUSE_DEBUG_GDB)
-WX_ARG_ENABLE(debug_cntxt, [  --enable-debug_cntxt    use wxDebugContext], wxUSE_DEBUG_CONTEXT)
-WX_ARG_ENABLE(mem_tracing, [  --enable-mem_tracing    create code with memory tracing], wxUSE_MEM_TRACING)
-WX_ARG_ENABLE(profile,     [  --enable-profile        create code with profiling information], wxUSE_PROFILE)
-
-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(debug_flag,    [  --enable-debug_flag     set __WXDEBUG__ flag (recommended for developers!)], wxUSE_DEBUG_FLAG)
+WX_ARG_ENABLE(debug_info,    [  --enable-debug_info     create code with debugging information], wxUSE_DEBUG_INFO)
+WX_ARG_ENABLE(debug_gdb,     [  --enable-debug_gdb      create code with extra GDB debugging information], wxUSE_DEBUG_GDB)
+WX_ARG_ENABLE(debug_cntxt,   [  --enable-debug_cntxt    use wxDebugContext], wxUSE_DEBUG_CONTEXT)
+WX_ARG_ENABLE(mem_tracing,   [  --enable-mem_tracing    create code with memory tracing], wxUSE_MEM_TRACING)
+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(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 ---------------------------------------------------------------------------
 dnl (small) optional non GUI classes
 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(sockets,     [  --enable-sockets        use socket/network classes], wxUSE_SOCKETS)
-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(wave,    [  --enable-wave       use wxWave class], wxUSE_WAVE)
-WX_ARG_ENABLE(fraction,    [  --enable-fraction       use wxFraction class], wxUSE_FRACTION)
-WX_ARG_ENABLE(dynlib,      [  --enable-dynlib         use wxLibrary class for DLL loading], wxUSE_DYNLIB_CLASS)
-WX_ARG_ENABLE(longlong,    [  --enable-longlong       use wxLongLong class], wxUSE_LONGLONG)
-WX_ARG_ENABLE(log,         [  --enable-log            use logging system], wxUSE_LOG)
-WX_ARG_ENABLE(streams,     [  --enable-streams        use wxStream etc classes], wxUSE_STREAMS)
-WX_ARG_ENABLE(file,        [  --enable-file           use wxFile classes], wxUSE_FILE)
-WX_ARG_ENABLE(textfile,    [  --enable-textfile       use wxTextFile classes], wxUSE_TEXTFILE)
-WX_ARG_ENABLE(unicode,     [  --enable-unicode        compile wxString with Unicode support], wxUSE_UNICODE)
-WX_ARG_ENABLE(wcsrtombs,   [  --enable-wcsrtombs      use wcsrtombs instead of buggy (GNU libc1/Linux libc5) wcstombs], wxUSE_WCSRTOMBS)
-WX_ARG_ENABLE(wxprintfv,   [  --enable-wxprintfv      use wxWindows implementation of vprintf()], wxUSE_EXPERIMENTAL_PRINTF)
-WX_ARG_ENABLE(joystick,    [  --enable-joystick       compile in joystick support (Linux only)], wxUSE_JOYSTICK)
+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)
+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(wave,          [  --enable-wave           use wxWave class], wxUSE_WAVE)
+WX_ARG_ENABLE(fraction,      [  --enable-fraction       use wxFraction class], wxUSE_FRACTION)
+WX_ARG_ENABLE(dynlib,        [  --enable-dynlib         use wxLibrary class for DLL loading], wxUSE_DYNLIB_CLASS)
+WX_ARG_ENABLE(longlong,      [  --enable-longlong       use wxLongLong class], wxUSE_LONGLONG)
+WX_ARG_ENABLE(log,           [  --enable-log            use logging system], wxUSE_LOG)
+WX_ARG_ENABLE(streams,       [  --enable-streams        use wxStream etc classes], wxUSE_STREAMS)
+WX_ARG_ENABLE(file,          [  --enable-file           use wxFile classes], wxUSE_FILE)
+WX_ARG_ENABLE(textfile,      [  --enable-textfile       use wxTextFile classes], wxUSE_TEXTFILE)
+WX_ARG_ENABLE(unicode,       [  --enable-unicode        compile wxString with Unicode support], wxUSE_UNICODE)
+WX_ARG_ENABLE(wcsrtombs,     [  --enable-wcsrtombs      use wcsrtombs instead of buggy (GNU libc1/Linux libc5) wcstombs], wxUSE_WCSRTOMBS)
+WX_ARG_ENABLE(wxprintfv,     [  --enable-wxprintfv      use wxWindows implementation of vprintf()], wxUSE_EXPERIMENTAL_PRINTF)
+WX_ARG_ENABLE(joystick,      [  --enable-joystick       compile in joystick support (Linux only)], wxUSE_JOYSTICK)
+WX_ARG_ENABLE(std_iostreams, [  --enable-std_iostreams  use standard C++ stream classes], wxUSE_STD_IOSTREAM)
+WX_ARG_ENABLE(fs_inet,       [  --enable-fs_inet        use virtual HTTP/FTP filesystems], wxUSE_FS_INET)
+WX_ARG_ENABLE(fs_zip,        [  --enable-fs_zip         use virtual ZIP filesystems], wxUSE_FS_ZIP)
+WX_ARG_ENABLE(zipstream,     [  --enable-zipstream      use wxZipInputStream], wxUSE_ZIPSTREAM)
 
 dnl ---------------------------------------------------------------------------
 dnl "big" options (i.e. those which change a lot of things throughout the library)
 
 dnl ---------------------------------------------------------------------------
 dnl "big" options (i.e. those which change a lot of things throughout the library)
@@ -510,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 ---------------------------------------------------------------------------
@@ -563,8 +1039,10 @@ if test "$wxUSE_CONTROLS" = "yes"; then
   DEFAULT_wxUSE_BMPBUTTON=yes
   DEFAULT_wxUSE_CHECKBOX=yes
   DEFAULT_wxUSE_CHECKLISTBOX=yes
   DEFAULT_wxUSE_BMPBUTTON=yes
   DEFAULT_wxUSE_CHECKBOX=yes
   DEFAULT_wxUSE_CHECKLISTBOX=yes
+  DEFAULT_wxUSE_CHOICE=yes
   DEFAULT_wxUSE_GAUGE=yes
   DEFAULT_wxUSE_GRID=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
@@ -575,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
@@ -582,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
@@ -591,8 +1072,10 @@ elif test "$wxUSE_CONTROLS" = "no"; then
   DEFAULT_wxUSE_BMPBUTTON=no
   DEFAULT_wxUSE_CHECKBOX=no
   DEFAULT_wxUSE_CHECKLISTBOX=no
   DEFAULT_wxUSE_BMPBUTTON=no
   DEFAULT_wxUSE_CHECKBOX=no
   DEFAULT_wxUSE_CHECKLISTBOX=no
+  DEFAULT_wxUSE_CHOICE=no
   DEFAULT_wxUSE_GAUGE=no
   DEFAULT_wxUSE_GRID=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
@@ -603,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
@@ -610,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
@@ -619,9 +1105,11 @@ WX_ARG_ENABLE(caret,       [  --enable-caret          use wxCaret class], wxUSE_
 WX_ARG_ENABLE(bmpbutton,   [  --enable-bmpbutton      use wxBitmapButton class], wxUSE_BMPBUTTON)
 WX_ARG_ENABLE(checkbox,    [  --enable-checkbox       use wxCheckBox class], wxUSE_CHECKBOX)
 WX_ARG_ENABLE(checklst,    [  --enable-checklst       use wxCheckListBox (listbox with checkboxes) class], wxUSE_CHECKLST)
 WX_ARG_ENABLE(bmpbutton,   [  --enable-bmpbutton      use wxBitmapButton class], wxUSE_BMPBUTTON)
 WX_ARG_ENABLE(checkbox,    [  --enable-checkbox       use wxCheckBox class], wxUSE_CHECKBOX)
 WX_ARG_ENABLE(checklst,    [  --enable-checklst       use wxCheckListBox (listbox with checkboxes) class], wxUSE_CHECKLST)
-WX_ARG_ENABLE(combobox,    [  --enable-combobox       use wxChoice and wxComboBox classes], wxUSE_COMBOBOX)
+WX_ARG_ENABLE(choice,      [  --enable-choice         use wxChoice class], wxUSE_CHOICE)
+WX_ARG_ENABLE(combobox,    [  --enable-combobox       use wxComboBox classes], wxUSE_COMBOBOX)
 WX_ARG_ENABLE(gauge,       [  --enable-gauge          use wxGauge class], wxUSE_GAUGE)
 WX_ARG_ENABLE(grid,        [  --enable-grid           use wxGrid class], wxUSE_GRID)
 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)
@@ -632,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)
@@ -639,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 ---------------------------------------------------------------------------
@@ -646,10 +1137,27 @@ dnl misc GUI options
 dnl ---------------------------------------------------------------------------
 
 WX_ARG_ENABLE(commondlg,   [  --enable-commondlg      use common dialogs (wxDirDialog, wxProgressDialog, wxTextDialog, ...)], wxUSE_COMMONDLGS)
 dnl ---------------------------------------------------------------------------
 
 WX_ARG_ENABLE(commondlg,   [  --enable-commondlg      use common dialogs (wxDirDialog, wxProgressDialog, wxTextDialog, ...)], wxUSE_COMMONDLGS)
+WX_ARG_ENABLE(dirdlg,      [  --enable-dirdlg         use wxDirDialog], wxUSE_DIRDLG)
+WX_ARG_ENABLE(textdlg,     [  --enable-textdlg        use wxTextDialog], wxUSE_TEXTDLG)
+WX_ARG_ENABLE(tipdlg,      [  --enable-tipdlg         use startup tips], wxUSE_STARTUP_TIPS)
+WX_ARG_ENABLE(progressdlg, [  --enable-progressdlg    use wxProgressDialog], wxUSE_PROGRESSDLG)
 WX_ARG_ENABLE(miniframe,   [  --enable-miniframe      use wxMiniFrame class], wxUSE_MINIFRAME)
 WX_ARG_ENABLE(miniframe,   [  --enable-miniframe      use wxMiniFrame class], wxUSE_MINIFRAME)
+WX_ARG_ENABLE(html,        [  --enable-html           use wxHTML sub-library], wxUSE_HTML)
 WX_ARG_ENABLE(tooltips,    [  --enable-tooltips       use wxToolTip class], wxUSE_TOOLTIPS)
 WX_ARG_ENABLE(splines,     [  --enable-splines        use spline drawing code], wxUSE_SPLINES)
 WX_ARG_ENABLE(validators,  [  --enable-validators     use wxValidator and derived classes], wxUSE_VALIDATORS)
 WX_ARG_ENABLE(tooltips,    [  --enable-tooltips       use wxToolTip class], wxUSE_TOOLTIPS)
 WX_ARG_ENABLE(splines,     [  --enable-splines        use spline drawing code], wxUSE_SPLINES)
 WX_ARG_ENABLE(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
@@ -659,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
@@ -681,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)
   ;;
@@ -707,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 ---------------------------------------------------------------------------
@@ -717,11 +1254,15 @@ AC_CACHE_SAVE
 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
 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 $build != NONE"; then
-    CC="$build-gcc"
-    CXX="$build-g++"
-    RANLIB="$build-ranlib"
-    NM="$build-nm"
+  if eval "test $host_alias != NONE"; then
+    CC=$host_alias-gcc
+    CXX=$host_alias-c++
+    AR=$host_alias-ar
+    RANLIB=$host_alias-ranlib
+    DLLTOOL=$host_alias-dlltool
+    LD=$host_alias-ld
+    NM=$host_alias-nm
+    STRIP=$host_alias-strip
   fi
 fi
 
   fi
 fi
 
@@ -817,43 +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 libtool checks (disable static libs by default, this takes too much time...)
-AM_DISABLE_STATIC
-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        \
@@ -875,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    \
@@ -886,6 +1429,7 @@ SEARCH_INCLUDE="\
     /usr/include/qt           \
     /usr/local/include/qt     \
                               \
     /usr/include/qt           \
     /usr/local/include/qt     \
                               \
+    /usr/include/windows      \
     /usr/include/wine         \
     /usr/local/include/wine   \
                               \
     /usr/include/wine         \
     /usr/local/include/wine   \
                               \
@@ -894,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` "
 
@@ -911,29 +1455,117 @@ 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=
-TOOLKIT_DEF=
-TOOLKIT_DIR=
 TOOLKIT_INCLUDE=
 
 TOOLKIT_INCLUDE=
 
+GUIOBJS=
+COMMONOBJS=
+GENERICOBJS=
+
 GUI_TK_LIBRARY=
 GUI_TK_LINK=
 
 WXGTK12=
 GUI_TK_LIBRARY=
 GUI_TK_LINK=
 
 WXGTK12=
+WXGTK13=
 
 WXWINE=
 
 
 WXWINE=
 
+if test "$wxUSE_CYGWIN" = 1 || test "$wxUSE_MINGW" = 1 ; then
+    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"
+
+    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
 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)
-  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?))
-  fi
+    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
+        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
 
 
-  TOOLKIT_INCLUDE="$GTK_CFLAGS"
-  GUI_TK_LIBRARY="$GTK_LIBS"
-  TOOLKIT=GTK
+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"
+
+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"
+
+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
+
+    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
@@ -951,9 +1583,8 @@ if test "$wxUSE_WINE" = 1; then
     AC_MSG_CHECKING(for Xpm library)
     WX_PATH_FIND_LIBRARIES($SEARCH_LIB,Xpm)
     if test "$ac_find_libraries" != "" ; then
     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"
-        XPM_LINK="-lXpm "
+        GUI_TK_LIBRARY="-L$ac_find_libraries"
+        XPM_LINK="-lXpm"
         AC_DEFINE(wxHAVE_LIB_XPM)
         AC_MSG_RESULT(found at $ac_find_libraries)
     else
         AC_DEFINE(wxHAVE_LIB_XPM)
         AC_MSG_RESULT(found at $ac_find_libraries)
     else
@@ -961,114 +1592,458 @@ if test "$wxUSE_WINE" = 1; then
         AC_MSG_WARN(library will be compiled without support for images in XPM format)
     fi
 
         AC_MSG_WARN(library will be compiled without support for images in XPM format)
     fi
 
-    GUI_TK_LINK="-lwine $XPM_LINK -lXmu -lX11 -lm"
+    MESA_LINK=""
+    AC_MSG_CHECKING(for Mesa library)
+    WX_PATH_FIND_LIBRARIES($SEARCH_LIB,MesaGL)
+    if test "$ac_find_libraries" != "" ; then
+        GUI_TK_LIBRARY="$GUI_TK_LIBRARY -L$ac_find_libraries"
+        MESA_LINK="-lMesaGL"
+        AC_MSG_RESULT(found at $ac_find_libraries)
+    else
+        AC_MSG_ERROR(no)
+    fi
+
+    GUI_TK_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
+
+    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)
-
-        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)
+    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)
+
+            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 -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
+
+    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 symbol which allows conditional compilation for the given toolkit
+    TOOLKIT_DEF="-D__WX${TOOLKIT}__"
 
 
-dnl the name of the (libtool) library
-WX_LIBRARY_NAME="libwx_${TOOLKIT_DIR}.la"
+    dnl the name of the (libtool) library
+    WX_LIBRARY="wx_${TOOLKIT_DIR}"
 
 
-dnl the name of the library to be linked reported by wx-config
-WX_LIBRARY="wx_${TOOLKIT_DIR}"
+    dnl the sources, their dependenices and the headers
+    ALL_OBJECTS="\$(GUIOBJS) \$(COMMONOBJS) \$(GENERICOBJS) \$(UNIXOBJS) \$(HTMLOBJS)"
 
 
-dnl ------------------------------------------------------------------------
-dnl Check for headers
-dnl ------------------------------------------------------------------------
+    dnl ODBC objects are Unix only
+    if test "$TOOLKIT" != "MSW"; then
+        ALL_OBJECTS="${ALL_OBJECTS} \$(IODBCOBJS)"
+    fi
 
 
-dnl defines HAVE_STRINGS_H (where some string functions live on AIX for example)
-AC_CHECK_HEADERS(strings.h)
-dnl defines HAVE_UNISTD_H
-AC_CHECK_HEADERS(unistd.h)
-dnl defines HAVE_WCHAR_H
-AC_CHECK_HEADERS(wchar.h)
-dnl defines HAVE_WCSTR_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_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)"
 
 
-dnl ---------------------------------------------------------------------------
-dnl Checks for typedefs
-dnl ---------------------------------------------------------------------------
+    PORT_FILES="src/\$(TOOLKITDIR)/files.lst"
+    RPM_FILES="src/\$(TOOLKITDIR)/rpmfiles.lst"
+    RPM_SPEC="wx\$(TOOLKIT).spec"
 
 
-dnl   defines mode_t if not already defined
-AC_TYPE_MODE_T
-dnl   defines off_t if not already defined
-AC_TYPE_OFF_T
+    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
+WX_LIBRARY_NAME="lib${WX_LIBRARY}.la"
+
+dnl the name of the static library
+WX_LIBRARY_NAME_STATIC="lib${WX_LIBRARY}.a"
+
+dnl the name of the shared library
+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
+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=
+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 defines HAVE_STRINGS_H (where some string functions live on AIX for example)
+AC_CHECK_HEADERS(strings.h)
+dnl defines HAVE_UNISTD_H
+AC_CHECK_HEADERS(unistd.h)
+dnl defines HAVE_WCHAR_H
+AC_CHECK_HEADERS(wchar.h)
+dnl defines HAVE_WCSTR_H
+AC_CHECK_HEADERS(wcstr.h)
+dnl defines HAVE_FNMATCH_H
+AC_CHECK_HEADERS(fnmatch.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   defines mode_t if not already defined
+AC_TYPE_MODE_T
+dnl   defines off_t if not already defined
+AC_TYPE_OFF_T
 dnl   defines pid_t if not already defined
 AC_TYPE_PID_T
 dnl   defines size_t if not already defined
 dnl   defines pid_t if not already defined
 AC_TYPE_PID_T
 dnl   defines size_t if not already defined
@@ -1080,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 ---------------------------------------------------------------------------
@@ -1108,8 +2103,8 @@ 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 ---------------------------------------------------------------------------
 dnl Check for functions
 
 dnl ---------------------------------------------------------------------------
 dnl Check for functions
@@ -1135,24 +2130,119 @@ AC_CHECK_FUNCS(vsnprintf,
                AC_MSG_WARN(unsafe function sprintf will be used instead of snprintf)
               )
 
                AC_MSG_WARN(unsafe function sprintf will be used instead of snprintf)
               )
 
+dnl check for vsscanf() - on some platforms (Linux, glibc 2.1.1) it's
+dnl available in the library but the prototype is missing, so we can't use
+dnl AC_CHECK_FUNCS here, do it manually
+AC_LANG_SAVE
+AC_LANG_CPLUSPLUS
+
+AC_CACHE_CHECK([for vsscanf], wx_cv_func_vsscanf,
+[
+  AC_TRY_RUN(
+             [
+                #include <stdio.h>
+                #include <stdarg.h>
+
+                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;
+                }
+             ], [
+                AC_DEFINE(HAVE_VSSCANF)
+                wx_cv_func_vsscanf=yes
+             ],
+                wx_cv_func_vsscanf=no,
+                wx_cv_func_vsscanf=no
+             )
+])
+
+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 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 ===========================================================================
 dnl Now we have all the info we need - use it!
 dnl ===========================================================================
@@ -1161,9 +2251,12 @@ dnl flush the cache
 AC_CACHE_SAVE
 
 dnl ---------------------------------------------------------------------------
 AC_CACHE_SAVE
 
 dnl ---------------------------------------------------------------------------
-dnl thread support
+dnl thread support for Unix (always available under Win32)
 dnl ---------------------------------------------------------------------------
 
 dnl ---------------------------------------------------------------------------
 
+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   defines THREADS_LINK which contains the thread library to link with
 dnl the code below:
 dnl   defines THREADS_OBJ which contains the object files to build
 dnl   defines THREADS_LINK which contains the thread library to link with
@@ -1172,7 +2265,17 @@ dnl   defines wxUSE_THREADS=1 if thread support is activated
 THREADS_LINK=""
 THREADS_OBJ=""
 
 THREADS_LINK=""
 THREADS_OBJ=""
 
-if test "$wxUSE_THREADS" = "yes"; then
+if test "$wxUSE_THREADS" = "yes" ; then
+    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
 
     dnl standard lib name is pthread
     dnl find if POSIX threads are available
 
     dnl standard lib name is pthread
@@ -1193,25 +2296,16 @@ if test "$wxUSE_THREADS" = "yes"; then
                 ])
             ])
         ])
                 ])
             ])
         ])
-    if test "$THREADS_LINK" != ""; then
-        AC_DEFINE(wxUSE_THREADS)
-    else
+
+    if test -z "$THREADS_OBJ" ; then
+        wxUSE_THREADS=no
         AC_MSG_WARN(No thread support on this system)
     fi
 fi
 
         AC_MSG_WARN(No thread support on this system)
     fi
 fi
 
-if test -z "$THREADS_OBJ"; then
-  wxUSE_THREADS=no
-fi
-
 dnl do other tests only if we are using threads
 dnl do other tests only if we are using threads
-if test "$wxUSE_THREADS" = "yes"; then
-  dnl must define _REENTRANT for multithreaded code
-  CFLAGS="${CFLAGS} -D_REENTRANT"
-  CXXFLAGS="${CXXFLAGS} -D_REENTRANT"
-
-  SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS thread"
-dnl  LTLIBOBJS="$LTLIBOBJS $THREADS_OBJ"
+if test "$wxUSE_THREADS" = "yes" ; then
+  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
@@ -1274,6 +2368,37 @@ dnl  LTLIBOBJS="$LTLIBOBJS $THREADS_OBJ"
   THREADS_LINK="-l$THREADS_LINK"
 fi
 
   THREADS_LINK="-l$THREADS_LINK"
 fi
 
+dnl from if !MSW
+fi
+
+if test "$wxUSE_THREADS" = "yes"; then
+  AC_DEFINE(wxUSE_THREADS)
+
+  dnl must define _REENTRANT for multithreaded code
+  CFLAGS="${CFLAGS} -D_REENTRANT"
+  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
   AC_DEFINE_UNQUOTED(__WXGTK12__,$WXGTK12)
 fi
 if test "$WXGTK12" = 1 ; then
   AC_DEFINE_UNQUOTED(__WXGTK12__,$WXGTK12)
 fi
@@ -1282,54 +2407,80 @@ if test "$WXWINE" = 1 ; then
   TOOLKIT_DEF="${TOOLKIT_DEF} -D__WXWINE__"
 fi
 
   TOOLKIT_DEF="${TOOLKIT_DEF} -D__WXWINE__"
 fi
 
-WXDEBUG=
-if test "$wxUSE_DEBUG_GDB" = "yes" ; then
-    wxUSE_DEBUG_INFO=yes
-    WXDEBUG="-ggdb"
+if test "$wxUSE_CYGWIN" = 1 ; then
+  TOOLKIT_DEF="${TOOLKIT_DEF} -D__WIN95__"
 fi
 
 fi
 
+WXDEBUG=
+
 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
 if test "$wxUSE_DEBUG_FLAG" = "yes" ; then
-  AC_DEFINE(WXDEBUG)
-  WXDEBUG_DEFINE="-D__WXDEBUG__"
+    AC_DEFINE(WXDEBUG)
+    WXDEBUG_DEFINE="-D__WXDEBUG__"
 else
 else
-  WXDEBUG_DEFINE="-DGTK_NO_CHECK_CASTS"
+    if test "$wxUSE_GTK" = 1 ; then
+        WXDEBUG_DEFINE="-DGTK_NO_CHECK_CASTS"
+    fi
 fi
 
 if test "$wxUSE_MEM_TRACING" = "yes" ; then
 fi
 
 if test "$wxUSE_MEM_TRACING" = "yes" ; then
-  AC_DEFINE(wxUSE_MEMORY_TRACING)
-  AC_DEFINE(wxUSE_GLOBAL_MEMORY_OPERATORS)
-  SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS memcheck"
+    AC_DEFINE(wxUSE_MEMORY_TRACING)
+    AC_DEFINE(wxUSE_GLOBAL_MEMORY_OPERATORS)
+    AC_DEFINE(wxUSE_DEBUG_NEW_ALWAYS)
+    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS memcheck"
 fi
 
 if test "$wxUSE_DMALLOC" = "yes" ; then
 fi
 
 if test "$wxUSE_DMALLOC" = "yes" ; then
-  DMALLOC_LINK="-ldmalloc"
+    DMALLOC_LINK="-ldmalloc"
 fi
 
 PROFILE=
 if test "$wxUSE_PROFILE" = "yes" ; then
 fi
 
 PROFILE=
 if test "$wxUSE_PROFILE" = "yes" ; then
-  PROFILE="-pg"
+    PROFILE="-pg"
+fi
+
+DEP_INFO_FLAGS=
+CODE_GEN_FLAGS=
+if test "$GCC" = yes ; then
+    if test "$wxUSE_NO_RTTI" = "yes" ; then
+        CODE_GEN_FLAGS="$CODE_GEN_FLAGS -fno-rtti"
+    fi
+    if test "$wxUSE_NO_EXCEPTIONS" = "yes" ; then
+        CODE_GEN_FLAGS="$CODE_GEN_FLAGS -fno-exceptions"
+    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
 
 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
-  OPTIMISE=
+    OPTIMISE=
 else
 else
-  if test "$GCC" = yes ; then
-    OPTIMISE="-O2"
-    case "${host}" in
-      i586-*-*|i686-*-* )
-        OPTIMISE="${OPTIMISE} "
-    ;;
-    esac
-  else
-    OPTIMISE="-O"
-  fi
+    if test "$GCC" = yes ; then
+        OPTIMISE="-O2"
+        case "${host}" in
+            i586-*-*|i686-*-* )
+            OPTIMISE="${OPTIMISE} "
+        ;;
+        esac
+    else
+        OPTIMISE="-O"
+    fi
 fi
 
 dnl ---------------------------------------------------------------------------
 fi
 
 dnl ---------------------------------------------------------------------------
@@ -1339,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
@@ -1413,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
@@ -1440,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
@@ -1453,6 +2574,26 @@ if test "$wxUSE_FILE" = "yes"; then
   AC_DEFINE(wxUSE_FILE)
 fi
 
   AC_DEFINE(wxUSE_FILE)
 fi
 
+if test "$wxUSE_FS_INET" = "yes"; then
+  AC_DEFINE(wxUSE_FS_INET)
+fi
+
+if test "$wxUSE_FS_ZIP" = "yes"; then
+  AC_DEFINE(wxUSE_FS_ZIP)
+fi
+
+if test "$wxUSE_ZIPSTREAM" = "yes"; then
+  AC_DEFINE(wxUSE_ZIPSTREAM)
+fi
+
+if test "$wxUSE_BUSYINFO" = "yes"; then
+  AC_DEFINE(wxUSE_BUSYINFO)
+fi
+
+if test "$wxUSE_STD_IOSTREAM" = "yes"; then
+  AC_DEFINE(wxUSE_STD_IOSTREAM)
+fi
+
 if test "$wxUSE_TEXTFILE" = "yes"; then
   if test "$wxUSE_FILE" != "yes"; then
     AC_MSG_WARN(wxTextFile requires wxFile and it won't be compiled without it)
 if test "$wxUSE_TEXTFILE" = "yes"; then
   if test "$wxUSE_FILE" != "yes"; then
     AC_MSG_WARN(wxTextFile requires wxFile and it won't be compiled without it)
@@ -1487,91 +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
-        AC_MSG_WARN("--with-dynlib and --with-odbc will be disabled due to missing shared library support")
-        wxUSE_ODBC=no
-        wxUSE_DYNLIB_CLASS=no
+        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 ---------------------------------------------------------------------------
@@ -1590,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 ----------------------------------------------------------------
@@ -1619,72 +2986,94 @@ dnl big GUI components: MDI, doc/view, printing, help, ...
 dnl ---------------------------------------------------------------------------
 
 if test "$wxUSE_CONSTRAINTS" = "yes"; then
 dnl ---------------------------------------------------------------------------
 
 if test "$wxUSE_CONSTRAINTS" = "yes"; then
-  AC_DEFINE(wxUSE_CONSTRAINTS)
-  SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS layout"
+    AC_DEFINE(wxUSE_CONSTRAINTS)
+    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS layout"
 fi
 
 if test "$wxUSE_MDI_ARCHITECTURE" = "yes"; then
 fi
 
 if test "$wxUSE_MDI_ARCHITECTURE" = "yes"; then
-  AC_DEFINE(wxUSE_MDI_ARCHITECTURE)
-  SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS mdi"
+    AC_DEFINE(wxUSE_MDI_ARCHITECTURE)
+    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS mdi"
 fi
 
 if test "$wxUSE_DOC_VIEW_ARCHITECTURE" = "yes" ; then
 fi
 
 if test "$wxUSE_DOC_VIEW_ARCHITECTURE" = "yes" ; then
-  AC_DEFINE(wxUSE_DOC_VIEW_ARCHITECTURE)
-  SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS docview"
-  if test "$wxUSE_MDI_ARCHITECTURE" = "yes"; then
-    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS docvwmdi"
-  fi
+    AC_DEFINE(wxUSE_DOC_VIEW_ARCHITECTURE)
+    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS docview"
+    if test "$wxUSE_MDI_ARCHITECTURE" = "yes"; then
+        SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS docvwmdi"
+    fi
 fi
 
 if test "$wxUSE_HELP" = "yes"; then
 fi
 
 if test "$wxUSE_HELP" = "yes"; then
-  AC_DEFINE(wxUSE_HELP)
-  SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS help"
+    AC_DEFINE(wxUSE_HELP)
+    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS help"
 fi
 
 if test "$wxUSE_PRINTING_ARCHITECTURE" = "yes" ; then
 fi
 
 if test "$wxUSE_PRINTING_ARCHITECTURE" = "yes" ; then
-  AC_DEFINE(wxUSE_PRINTING_ARCHITECTURE)
-  SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS printing"
+    if test "$wxUSE_CONSTRAINTS" != "yes"; then
+        AC_MSG_WARN(Printing support cannot be used without constraints so it won't be compiled without it)
+    else
+        AC_DEFINE(wxUSE_PRINTING_ARCHITECTURE)
+    fi
+    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS printing"
 fi
 
 if test "$wxUSE_PROLOGIO" = "yes" ; then
 fi
 
 if test "$wxUSE_PROLOGIO" = "yes" ; then
-  AC_DEFINE(wxUSE_PROLOGIO)
+    AC_DEFINE(wxUSE_PROLOGIO)
 fi
 
 if test "$wxUSE_RESOURCES" = "yes" ; then
 fi
 
 if test "$wxUSE_RESOURCES" = "yes" ; then
-  if test "$wxUSE_PROLOGIO" = "yes" ; then
-    AC_DEFINE(wxUSE_RESOURCES)
-    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS resource"
-  else
-    AC_MSG_WARN([wxWindows ressource system requires PrologIO and can't be compiled without it.])
-  fi
+    if test "$wxUSE_PROLOGIO" = "yes" ; then
+        AC_DEFINE(wxUSE_RESOURCES)
+        SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS resource"
+    else
+        AC_MSG_WARN([wxWindows ressource system requires PrologIO and can't be compiled without it.])
+    fi
 fi
 
 if test "$wxUSE_X_RESOURCES" = "yes"; then
 fi
 
 if test "$wxUSE_X_RESOURCES" = "yes"; then
-  AC_DEFINE(wxUSE_X_RESOURCES)
+    AC_DEFINE(wxUSE_X_RESOURCES)
 fi
 
 dnl ---------------------------------------------------------------------------
 fi
 
 dnl ---------------------------------------------------------------------------
-dnl IPC: IPC, d-n-d, clipboard, ...
+dnl IPC: IPC, Drag'n'Drop, Clipboard, ...
 dnl ---------------------------------------------------------------------------
 
 if test "$wxUSE_IPC" = "yes"; then
 dnl ---------------------------------------------------------------------------
 
 if test "$wxUSE_IPC" = "yes"; then
-  AC_DEFINE(wxUSE_IPC)
+    AC_DEFINE(wxUSE_IPC)
 fi
 
 if test "$wxUSE_CLIPBOARD" = "yes"; then
 fi
 
 if test "$wxUSE_CLIPBOARD" = "yes"; then
-  AC_DEFINE(wxUSE_CLIPBOARD)
+    AC_DEFINE(wxUSE_CLIPBOARD)
 fi
 
 fi
 
-if test "$wxUSE_DRAG_AND_DROP" = "yes"; then
-  if test "$WXGTK12" = 1 ; then
-    AC_DEFINE(wxUSE_DRAG_AND_DROP)
-    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS dnd"
-  else
-    AC_MSG_WARN(drag and drop is only supported under GTK 1.2)
-  fi
-  if test "$WXWINE" = 1 ; then
-    AC_MSG_WARN(drag and drop is only supported under WINE)
-  fi
+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 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])
+        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_SPLINES" = "yes" ; then
 fi
 
 if test "$wxUSE_SPLINES" = "yes" ; then
@@ -1708,6 +3097,10 @@ if test "$wxUSE_COMBOBOX" = "yes"; then
   AC_DEFINE(wxUSE_COMBOBOX)
 fi
 
   AC_DEFINE(wxUSE_COMBOBOX)
 fi
 
+if test "$wxUSE_CHOICE" = "yes"; then
+  AC_DEFINE(wxUSE_CHOICE)
+fi
+
 if test "$wxUSE_BMPBUTTON" = "yes"; then
   AC_DEFINE(wxUSE_BMPBUTTON)
 fi
 if test "$wxUSE_BMPBUTTON" = "yes"; then
   AC_DEFINE(wxUSE_BMPBUTTON)
 fi
@@ -1730,100 +3123,134 @@ 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
 if test "$wxUSE_IMAGLIST" = "yes"; then
-  AC_DEFINE(wxUSE_IMAGLIST)
+    AC_DEFINE(wxUSE_IMAGLIST)
 fi
 
 if test "$wxUSE_LISTBOX" = "yes"; then
 fi
 
 if test "$wxUSE_LISTBOX" = "yes"; then
-  AC_DEFINE(wxUSE_LISTBOX)
+    AC_DEFINE(wxUSE_LISTBOX)
 fi
 
 if test "$wxUSE_LISTCTRL" = "yes"; then
 fi
 
 if test "$wxUSE_LISTCTRL" = "yes"; then
-  if test "$wxUSE_IMAGLIST" = "yes"; then
-    AC_DEFINE(wxUSE_LISTCTRL)
-    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS listctrl"
-  else
-    AC_MSG_WARN([wxListCtrl requires wxImageList and won't be compiled without it])
-  fi
+    if test "$wxUSE_IMAGLIST" = "yes"; then
+        AC_DEFINE(wxUSE_LISTCTRL)
+        SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS listctrl"
+    else
+        AC_MSG_WARN([wxListCtrl requires wxImageList and won't be compiled without it])
+    fi
 fi
 
 if test "$wxUSE_NOTEBOOK" = "yes"; then
 fi
 
 if test "$wxUSE_NOTEBOOK" = "yes"; then
-  AC_DEFINE(wxUSE_NOTEBOOK)
-  SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS notebook"
+    AC_DEFINE(wxUSE_NOTEBOOK)
+    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS notebook"
 fi
 
 if test "$wxUSE_RADIOBOX" = "yes"; then
 fi
 
 if test "$wxUSE_RADIOBOX" = "yes"; then
-  AC_DEFINE(wxUSE_RADIOBOX)
+    AC_DEFINE(wxUSE_RADIOBOX)
 fi
 
 if test "$wxUSE_RADIOBTN" = "yes"; then
 fi
 
 if test "$wxUSE_RADIOBTN" = "yes"; then
-  AC_DEFINE(wxUSE_RADIOBTN)
+    AC_DEFINE(wxUSE_RADIOBTN)
 fi
 
 if test "$wxUSE_SASH" = "yes"; then
 fi
 
 if test "$wxUSE_SASH" = "yes"; then
-  AC_DEFINE(wxUSE_SASH)
-  SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS sashtest"
+    AC_DEFINE(wxUSE_SASH)
+    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS sashtest"
 fi
 
 if test "$wxUSE_SCROLLBAR" = "yes"; then
 fi
 
 if test "$wxUSE_SCROLLBAR" = "yes"; then
-  AC_DEFINE(wxUSE_SCROLLBAR)
-  SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS scroll"
+    AC_DEFINE(wxUSE_SCROLLBAR)
+    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS scroll scrollsub"
 fi
 
 if test "$wxUSE_SLIDER" = "yes"; then
 fi
 
 if test "$wxUSE_SLIDER" = "yes"; then
-  AC_DEFINE(wxUSE_SLIDER)
+    AC_DEFINE(wxUSE_SLIDER)
 fi
 
 if test "$wxUSE_SPINBTN" = "yes"; then
 fi
 
 if test "$wxUSE_SPINBTN" = "yes"; then
-  AC_DEFINE(wxUSE_SPINBTN)
+    AC_DEFINE(wxUSE_SPINBTN)
+fi
+
+if test "$wxUSE_SPINCTRL" = "yes"; then
+    AC_DEFINE(wxUSE_SPINCTRL)
 fi
 
 if test "$wxUSE_SPLITTER" = "yes"; then
 fi
 
 if test "$wxUSE_SPLITTER" = "yes"; then
-  AC_DEFINE(wxUSE_SPLITTER)
-  SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS splitter"
+    AC_DEFINE(wxUSE_SPLITTER)
+    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS splitter"
 fi
 
 if test "$wxUSE_STATBMP" = "yes"; then
 fi
 
 if test "$wxUSE_STATBMP" = "yes"; then
-  AC_DEFINE(wxUSE_STATBMP)
+    AC_DEFINE(wxUSE_STATBMP)
 fi
 
 if test "$wxUSE_STATBOX" = "yes"; then
 fi
 
 if test "$wxUSE_STATBOX" = "yes"; then
-  AC_DEFINE(wxUSE_STATBOX)
+    AC_DEFINE(wxUSE_STATBOX)
 fi
 
 if test "$wxUSE_STATLINE" = "yes"; then
 fi
 
 if test "$wxUSE_STATLINE" = "yes"; then
-  AC_DEFINE(wxUSE_STATLINE)
+    if test "$wxUSE_WINE" = 1 ; then
+        AC_MSG_WARN([wxStaticLine is not supported under WINE])
+    else
+        AC_DEFINE(wxUSE_STATLINE)
+    fi
 fi
 
 if test "$wxUSE_STATUSBAR" = "yes"; then
 fi
 
 if test "$wxUSE_STATUSBAR" = "yes"; then
-  AC_DEFINE(wxUSE_STATUSBAR)
+    AC_DEFINE(wxUSE_STATUSBAR)
+
+    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS statbar"
 fi
 
 if test "$wxUSE_TABDIALOG" = "yes"; then
 fi
 
 if test "$wxUSE_TABDIALOG" = "yes"; then
-  AC_DEFINE(wxUSE_TAB_DIALOG)
-  SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS tab"
+    AC_DEFINE(wxUSE_TAB_DIALOG)
+    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
 fi
 
 if test "$wxUSE_TOOLBAR" = "yes"; then
-  AC_DEFINE(wxUSE_TOOLBAR)
-  SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS toolbar"
+    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
+
+if test "$wxUSE_TOOLBAR_NATIVE" = "yes"; then
+    AC_DEFINE(wxUSE_TOOLBAR_NATIVE)
 fi
 
 fi
 
-if test "$wxUSE_TOOLTIPS" = "yes" ; then
+if test "$wxUSE_TOOLTIPS" = "yes"; then
     if test "$wxUSE_MOTIF" = 1; then
     if test "$wxUSE_MOTIF" = 1; then
-      AC_MSG_WARN(tooltips are not supported yet under Motif)
+        AC_MSG_WARN(wxTooltip not supported yet under Motif)
     else
     else
-      AC_DEFINE(wxUSE_TOOLTIPS)
+        if test "$wxUSE_WINE" = 1; then
+            AC_MSG_WARN(wxTooltip not supported under WINE)
+        else
+            AC_DEFINE(wxUSE_TOOLTIPS)
+        fi
     fi
 fi
 
 if test "$wxUSE_TREECTRL" = "yes"; then
     fi
 fi
 
 if test "$wxUSE_TREECTRL" = "yes"; then
-  if test "$wxUSE_IMAGLIST" = "yes"; then
-    AC_DEFINE(wxUSE_TREECTRL)
-    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS treectrl"
-  else
-    AC_MSG_WARN([wxTreeCtrl requires wxImageList and won't be compiled without it])
-  fi
+    if test "$wxUSE_IMAGLIST" = "yes"; then
+        AC_DEFINE(wxUSE_TREECTRL)
+        SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS treectrl"
+    else
+        AC_MSG_WARN([wxTreeCtrl requires wxImageList and won't be compiled without it])
+    fi
 fi
 
 dnl ---------------------------------------------------------------------------
 fi
 
 dnl ---------------------------------------------------------------------------
@@ -1836,116 +3263,194 @@ dnl   AC_DEFINE(wxUSE_WXTREE)
 dnl fi
 
 if test "$wxUSE_METAFILE" = "yes"; then
 dnl fi
 
 if test "$wxUSE_METAFILE" = "yes"; then
-  AC_DEFINE(wxUSE_METAFILE)
+    AC_DEFINE(wxUSE_METAFILE)
 fi
 
 fi
 
-if test "$wxUSE_COMMONDLGS" = "yes"; then
-  dnl these classes don't depend on anything at all
+if test "$wxUSE_DIRDLG" = "yes"; then
+    if test "$wxUSE_CONSTRAINTS" != "yes"; then
+       AC_MSG_WARN(wxDirDialog requires constraints so it won't be compiled without them)
+    else
+        if test "$wxUSE_TREECTRL" != "yes"; then
+            AC_MSG_WARN(wxDirDialog requires wxTreeCtrl so it won't be compiled without it)
+        else
+            AC_DEFINE(wxUSE_DIRDLG)
+        fi
+    fi
+fi
 
 
-  if test "$wxUSE_CONSTRAINTS" != "yes"; then
-    AC_MSG_WARN(many common dialogs cannot be used without constraints so they won't be compiled without them)
-  else
-    AC_DEFINE(wxUSE_CONSTRAINTS)
+if test "$wxUSE_TEXTDLG" = "yes"; then
     AC_DEFINE(wxUSE_TEXTDLG)
     AC_DEFINE(wxUSE_TEXTDLG)
+fi
 
 
-    if test "$wxUSE_TREECTRL" != "yes"; then
-      AC_MSG_WARN(wxDirDialog cannot be used without wxTreeCtrl and it won't be compiled without it)
+if test "$wxUSE_STARTUP_TIPS" = "yes"; then
+    if test "$wxUSE_CONSTRAINTS" != "yes"; then
+       AC_MSG_WARN(Startup tips requires constraints and won't be compiled without them)
     else
     else
-      AC_DEFINE(wxUSE_DIRDLG)
+        AC_DEFINE(wxUSE_STARTUP_TIPS)
     fi
     fi
-  fi
+fi
 
 
-  if test "$wxUSE_PRINTING_ARCHITECTURE" = "no"; then
-    AC_MSG_WARN([wxPrintDialog class won't be compiled without printing support])
-  fi
+if test "$wxUSE_PROGRESSDLG" = "yes"; then
+    if test "$wxUSE_CONSTRAINTS" != "yes"; then
+       AC_MSG_WARN(wxProgressDialog requires constraints so it won't be compiled without them)
+    else
+        AC_DEFINE(wxUSE_PROGRESSDLG)
+    fi
 fi
 
 if test "$wxUSE_MINIFRAME" = "yes"; then
 fi
 
 if test "$wxUSE_MINIFRAME" = "yes"; then
-  AC_DEFINE(wxUSE_MINIFRAME)
-  SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS minifram"
+    AC_DEFINE(wxUSE_MINIFRAME)
+    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS minifram"
+fi
+
+if test "$wxUSE_HTML" = "yes"; then
+    AC_DEFINE(wxUSE_HTML)
+    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS html"
+    INCLUDE_SUBDIRS="$INCLUDE_SUBDIRS html"
 fi
 
 if test "$wxUSE_VALIDATORS" = "yes"; then
 fi
 
 if test "$wxUSE_VALIDATORS" = "yes"; then
-  AC_DEFINE(wxUSE_VALIDATORS)
-  SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS validate"
+    AC_DEFINE(wxUSE_VALIDATORS)
+    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
 
 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"
+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 the library is not
-dnl yet installed)
-LIBS="\${top_builddir}/src/${TOOLKIT_DIR}/${WX_LIBRARY_NAME} $EXTRA_LIBS"
+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 -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
 
 dnl C/C++ compiler options used to compile wxWindows
-if test "$ac_cv_prog_gcc" = "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 CXXWARNINGS="-Wall -Werror"
+if test "$GXX" = yes ; then
+    dnl CXXWARNINGS="-Wall -W -Wcast-qual -Werror"
+    CXXWARNINGS="-Wall"
+    dnl FIXME: there is one weird warning in docview.h:71 which prevents me from
+    dnl        doing this... (VZ)
+    dnl CXXWARNINGS="-Wall -Werror"
 fi
 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'`
 
 
-CFLAGS="$CFLAGS $EXTRA_CFLAGS"
-CXXFLAGS="$CXXFLAGS $EXTRA_CFLAGS $CXXWARNINGS"
+LDFLAGS="$LDFLAGS $PROFILE"
 
 if test "$wxUSE_GUI" = "yes"; then
 
 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 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 richedit wxpoem"
-fi
+    dnl TODO some samples are never built so far:
+    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)
 AC_SUBST(WX_MINOR_VERSION_NUMBER)
 AC_SUBST(WX_RELEASE_NUMBER)
 AC_SUBST(WX_LIBRARY_NAME)
 
 dnl global options
 AC_SUBST(WX_MAJOR_VERSION_NUMBER)
 AC_SUBST(WX_MINOR_VERSION_NUMBER)
 AC_SUBST(WX_RELEASE_NUMBER)
 AC_SUBST(WX_LIBRARY_NAME)
+AC_SUBST(WX_LIBRARY_NAME_STATIC)
+AC_SUBST(WX_LIBRARY_NAME_SHARED)
 AC_SUBST(WX_LIBRARY)
 AC_SUBST(WX_LIBRARY)
-
-dnl suppress libtool's informational messages - they duplicate its command line
-LIBTOOL="$LIBTOOL --silent"
-AC_SUBST(LIBTOOL)
+AC_SUBST(WX_TARGET_LIBRARY)
+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?
+AC_SUBST(WX_ALL)
+AC_SUBST(WX_ALL_INSTALLED)
+
+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)
 
 AC_SUBST(TOOLKIT)
 AC_SUBST(TOOLKIT_DEF)
 AC_SUBST(TOOLKIT_DIR)
 AC_SUBST(TOOLKIT_INCLUDE)
 
-dnl additional sources
-AC_SUBST(EXTRA_VPATH)
-AC_SUBST(LTLIBOBJS)
+dnl what to compile
+AC_SUBST(GUIHEADERS)
+AC_SUBST(GUIOBJS)
+AC_SUBST(COMMONOBJS)
+AC_SUBST(GENERICOBJS)
+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)
@@ -1955,106 +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(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)
+AC_SUBST(LD_LIBS)
 
 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
             Makefile
             Makefile
-            src/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/protocol/Makefile
-            include/wx/unix/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/joytest/Makefile
-            samples/layout/Makefile
-            samples/listctrl/Makefile
-            samples/mdi/Makefile
-            samples/memcheck/Makefile
-            samples/mfc/Makefile
-            samples/minifram/Makefile
-            samples/minimal/Makefile
-            samples/nativdlg/Makefile
-            samples/notebook/Makefile
-            samples/oleauto/Makefile
-            samples/ownerdrw/Makefile
-            samples/png/Makefile
-            samples/printing/Makefile
-            samples/proplist/Makefile
-            samples/regtest/Makefile
-            samples/resource/Makefile
-            samples/richedit/Makefile
-            samples/sashtest/Makefile
-            samples/scroll/Makefile
-            samples/splitter/Makefile
-            samples/tab/Makefile
-            samples/taskbar/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
           ],
           [
             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}"
           ]
          )