dnl Process this file with autoconf to produce a configure script.
AC_REVISION($Id$)dnl

dnl ---------------------------------------------------------------------------
dnl
dnl Top-level configure.in for wxWindows by Robert Roebling, Phil Blecker and
dnl Vadim Zeitlin
dnl
dnl This script is under the wxWindows licence.
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`
    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 the file passed to AC_INIT should be specific to our package
AC_INIT(wx-config.in)

AC_CANONICAL_SYSTEM

dnl When making releases do:
dnl
dnl WX_RELEASE_NUMBER += 1
dnl WX_INTERFACE_AGE += 1
dnl WX_BINARY_AGE += 1
dnl
dnl if any functions have been added, do:
dnl
dnl WX_INTERFACE_AGE = 0

WX_MAJOR_VERSION_NUMBER=2
WX_MINOR_VERSION_NUMBER=1
WX_RELEASE_NUMBER=12

WX_INTERFACE_AGE=0
WX_BINARY_AGE=0

WX_VERSION=$WX_MAJOR_VERSION_NUMBER.$WX_MINOR_VERSION_NUMBER.$WX_RELEASE_NUMBER

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 assume Unix
USE_UNIX=1
USE_WIN32=0
USE_LINUX=
USE_SGI=
USE_HPUX=
USE_SYSV=
USE_SVR4=
USE_AIX=
USE_SUN=
USE_SOLARIS=
USE_SUNOS=
USE_ALPHA=
USE_OSF=
USE_BSD=
USE_FREEBSD=
USE_VMS=
USE_ULTRIX=
USE_CYGWIN=
USE_MINGW=
USE_DATA_GENERAL=

dnl on some platforms xxx_r() functions are declared inside "#ifdef
dnl _REENTRANT" and it's easier to just define this symbol for these platforms
dnl than checking it during run-time
NEEDS_D_REENTRANT_FOR_R_FUNCS=0

dnl the list of all available toolkits
ALL_TOOLKITS="CYGWIN GTK MINGW MOTIF WINE"

dnl NB: these wxUSE_XXX constants have value of 0 or 1 unlike all the other ones
dnl     which are either yes or no
DEFAULT_wxUSE_GTK=0
DEFAULT_wxUSE_MOTIF=0
DEFAULT_wxUSE_MSW=0
DEFAULT_wxUSE_WINE=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 nothing was found in the cache
DEFAULT_DEFAULT_wxUSE_GTK=0
DEFAULT_DEFAULT_wxUSE_MOTIF=0
DEFAULT_DEFAULT_wxUSE_MSW=0
DEFAULT_DEFAULT_wxUSE_WINE=0

case "${host}" in
  *-hp-hpux* )
    USE_HPUX=1
    DEFAULT_DEFAULT_wxUSE_MOTIF=1
    NEEDS_D_REENTRANT_FOR_R_FUNCS=1
    AC_DEFINE(__HPUX__)
  ;;
  *-*-linux* )
    USE_LINUX=1
    AC_DEFINE(__LINUX__)
    TMP=`uname -m`
    if test "x$TMP" = "xalpha"; then
      USE_ALPHA=1
      AC_DEFINE(__ALPHA__)
    fi
    DEFAULT_DEFAULT_wxUSE_GTK=1
  ;;
  *-*-irix5* | *-*-irix6* )
    USE_SGI=1
    USE_SVR4=1
    AC_DEFINE(__SGI__)
    AC_DEFINE(__SVR4__)
    DEFAULT_DEFAULT_wxUSE_MOTIF=1
  ;;
  *-*-solaris2* )
    USE_SUN=1
    USE_SOLARIS=1
    USE_SVR4=1
    AC_DEFINE(__SUN__)
    AC_DEFINE(__SOLARIS__)
    AC_DEFINE(__SVR4__)
    DEFAULT_DEFAULT_wxUSE_MOTIF=1
    NEEDS_D_REENTRANT_FOR_R_FUNCS=1
  ;;
  *-*-sunos4* )
    USE_SUN=1
    USE_SUNOS=1
    USE_BSD=1
    AC_DEFINE(__SUN__)
    AC_DEFINE(__SUNOS__)
    AC_DEFINE(__BSD__)
    DEFAULT_DEFAULT_wxUSE_MOTIF=1
  ;;
  *-*-freebsd* | *-*-netbsd*)
    USE_BSD=1
    USE_FREEBSD=1
    AC_DEFINE(__FREEBSD__)
    AC_DEFINE(__BSD__)
    DEFAULT_DEFAULT_wxUSE_GTK=1
  ;;
  *-*-osf* )
    USE_ALPHA=1
    USE_OSF=1
    AC_DEFINE(__ALPHA__)
    AC_DEFINE(__OSF__)
    DEFAULT_DEFAULT_wxUSE_MOTIF=1
  ;;
  *-*-dgux5* )
    USE_ALPHA=1
    USE_SVR4=1
    AC_DEFINE(__ALPHA__)
    AC_DEFINE(__SVR4__)
    DEFAULT_DEFAULT_wxUSE_MOTIF=1
  ;;
  *-*-sysv5* )
    USE_SYSV=1
    USE_SVR4=1
    AC_DEFINE(__SYSV__)
    AC_DEFINE(__SVR4__)
    DEFAULT_DEFAULT_wxUSE_MOTIF=1
  ;;
  *-*-aix* )
    USE_AIX=1
    USE_SYSV=1
    USE_SVR4=1
    AC_DEFINE(__AIX__)
    AC_DEFINE(__SYSV__)
    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)
    DEFAULT_DEFAULT_wxUSE_MSW=1
  ;;

  *-pc-os2_emx )
    AC_DEFINE(__EMX__)
  ;;

  *)
    AC_MSG_ERROR(unknown system type ${host}.)
esac

if test "$USE_UNIX" = 1 ; then
  wxUSE_UNIX=yes
  AC_DEFINE(__UNIX__)
  SRC_SUBDIRS="$SRC_SUBDIRS unix"
  INCLUDE_SUBDIRS="$INCLUDE_SUBDIRS unix"
fi

dnl Linux: test for libc5/glibc2: glibc2 has gettext() included
if test "$USE_LINUX" = 1; then
  AC_CHECK_LIB(c,gettext,AC_DEFINE(wxHAVE_GLIBC2))
fi

dnl ---------------------------------------------------------------------------
dnl command line options for configure
dnl ---------------------------------------------------------------------------

dnl the default values for all options - we collect them all here to simplify
dnl modification of the default values (for example, if the defaults for some
dnl platform should be changed, it can be done here too)
dnl
dnl NB: see also DEFAULT_wxUSE<toolkit> variables defined above

WX_ARG_CACHE_INIT

dnl useful to test the compilation with minimum options, define as 0 for normal
dnl usage
DEBUG_CONFIGURE=0
if test $DEBUG_CONFIGURE = 1; then
  DEFAULT_wxUSE_THREADS=yes

  DEFAULT_wxUSE_SHARED=yes
  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=yes
  DEFAULT_wxUSE_DEBUG_INFO=yes
  DEFAULT_wxUSE_DEBUG_GDB=yes
  DEFAULT_wxUSE_MEM_TRACING=no
  DEFAULT_wxUSE_DEBUG_CONTEXT=no
  DEFAULT_wxUSE_DMALLOC=no
  DEFAULT_wxUSE_APPLE_IEEE=no

  DEFAULT_wxUSE_LOG=yes

  DEFAULT_wxUSE_GUI=yes

  DEFAULT_wxUSE_ZLIB=no
  DEFAULT_wxUSE_LIBPNG=no
  DEFAULT_wxUSE_LIBJPEG=no
  DEFAULT_wxUSE_LIBTIFF=no
  DEFAULT_wxUSE_ODBC=no

  DEFAULT_wxUSE_STD_IOSTREAM=no
  DEFAULT_wxUSE_FILE=no
  DEFAULT_wxUSE_TEXTFILE=no
  DEFAULT_wxUSE_TIMEDATE=no
  DEFAULT_wxUSE_WAVE=no
  DEFAULT_wxUSE_INTL=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_LONGLONG=no

  DEFAULT_wxUSE_AFM_FOR_POSTSCRIPT=no
  DEFAULT_wxUSE_NORMALIZED_PS_FONTS=no
  DEFAULT_wxUSE_POSTSCRIPT=no

  DEFAULT_wxUSE_X_RESOURCES=no
  DEFAULT_wxUSE_CLIPBOARD=no
  DEFAULT_wxUSE_TOOLTIPS=no
  DEFAULT_wxUSE_DRAG_AND_DROP=no
  DEFAULT_wxUSE_SPLINES=no

  DEFAULT_wxUSE_MDI_ARCHITECTURE=no
  DEFAULT_wxUSE_DOC_VIEW_ARCHITECTURE=no
  DEFAULT_wxUSE_PRINTING_ARCHITECTURE=no

  DEFAULT_wxUSE_PROLOGIO=no
  DEFAULT_wxUSE_RESOURCES=no
  DEFAULT_wxUSE_CONSTRAINTS=no
  DEFAULT_wxUSE_IPC=no
  DEFAULT_wxUSE_HELP=no
  DEFAULT_wxUSE_WXTREE=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_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_CARET=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_NEW_GRID=no
  DEFAULT_wxUSE_IMAGLIST=no
  DEFAULT_wxUSE_LISTBOX=no
  DEFAULT_wxUSE_LISTCTRL=no
  DEFAULT_wxUSE_NOTEBOOK=no
  DEFAULT_wxUSE_RADIOBOX=no
  DEFAULT_wxUSE_RADIOBTN=no
  DEFAULT_wxUSE_SASH=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_STATLINE=no
  DEFAULT_wxUSE_STATUSBAR=yes
  DEFAULT_wxUSE_TABDIALOG=no
  DEFAULT_wxUSE_TOOLBAR=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

  DEFAULT_wxUSE_SHARED=yes
  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_MEM_TRACING=no
  DEFAULT_wxUSE_DEBUG_CONTEXT=no
  DEFAULT_wxUSE_DMALLOC=no
  DEFAULT_wxUSE_APPLE_IEEE=yes

  DEFAULT_wxUSE_LOG=yes

  DEFAULT_wxUSE_GUI=yes

  DEFAULT_wxUSE_ZLIB=yes
  DEFAULT_wxUSE_LIBPNG=yes
  DEFAULT_wxUSE_LIBJPEG=yes
  DEFAULT_wxUSE_LIBTIFF=no
  DEFAULT_wxUSE_ODBC=yes

  DEFAULT_wxUSE_STD_IOSTREAM=no
  DEFAULT_wxUSE_FILE=yes
  DEFAULT_wxUSE_TEXTFILE=yes
  DEFAULT_wxUSE_TIMEDATE=yes
  DEFAULT_wxUSE_WAVE=no
  DEFAULT_wxUSE_INTL=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_LONGLONG=no

  DEFAULT_wxUSE_AFM_FOR_POSTSCRIPT=yes
  DEFAULT_wxUSE_NORMALIZED_PS_FONTS=yes
  DEFAULT_wxUSE_POSTSCRIPT=yes

  DEFAULT_wxUSE_X_RESOURCES=no
  DEFAULT_wxUSE_CLIPBOARD=yes
  DEFAULT_wxUSE_TOOLTIPS=yes
  DEFAULT_wxUSE_DRAG_AND_DROP=yes
  DEFAULT_wxUSE_SPLINES=yes

  DEFAULT_wxUSE_MDI_ARCHITECTURE=yes
  DEFAULT_wxUSE_DOC_VIEW_ARCHITECTURE=yes
  DEFAULT_wxUSE_PRINTING_ARCHITECTURE=yes

  DEFAULT_wxUSE_PROLOGIO=yes
  DEFAULT_wxUSE_RESOURCES=yes
  DEFAULT_wxUSE_CONSTRAINTS=yes
  DEFAULT_wxUSE_IPC=yes
  DEFAULT_wxUSE_HELP=yes
  DEFAULT_wxUSE_WXTREE=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_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_CARET=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_NEW_GRID=no
  DEFAULT_wxUSE_IMAGLIST=yes
  DEFAULT_wxUSE_LISTBOX=yes
  DEFAULT_wxUSE_LISTCTRL=yes
  DEFAULT_wxUSE_NOTEBOOK=yes
  DEFAULT_wxUSE_RADIOBOX=yes
  DEFAULT_wxUSE_RADIOBTN=yes
  DEFAULT_wxUSE_SASH=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_STATLINE=yes
  DEFAULT_wxUSE_STATUSBAR=yes
  DEFAULT_wxUSE_TABDIALOG=no
  DEFAULT_wxUSE_TOOLBAR=yes
  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
dnl used or not, to configure compile-time features of this package itself,
dnl use WX_ARG_ENABLE instead

dnl ============================
dnl external package dependecies
dnl ============================

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
  LINE=`grep "wxUSE_$toolkit" ${wx_arg_cache_file}`
  if test "x$LINE" != x ; then
    has_toolkit_in_cache=1
    eval "DEFAULT_$LINE"
    eval "CACHE_$toolkit=1"
  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)

dnl disable everything GUI related then
if test "$wxUSE_GUI" = "no"; then
  DEFAULT_wxUSE_ZLIB=no
  DEFAULT_wxUSE_LIBPNG=no
  DEFAULT_wxUSE_LIBJPEG=no
  DEFAULT_wxUSE_LIBTIFF=no
  DEFAULT_wxUSE_SOCKETS=no
  DEFAULT_wxUSE_JOYSTICK=no
  DEFAULT_wxUSE_AFM_FOR_POSTSCRIPT=no
  DEFAULT_wxUSE_NORMALIZED_PS_FONTS=no
  DEFAULT_wxUSE_POSTSCRIPT=no
  DEFAULT_wxUSE_X_RESOURCES=no
  DEFAULT_wxUSE_CLIPBOARD=no
  DEFAULT_wxUSE_TOOLTIPS=no
  DEFAULT_wxUSE_DRAG_AND_DROP=no
  DEFAULT_wxUSE_SPLINES=no
  DEFAULT_wxUSE_MDI_ARCHITECTURE=no
  DEFAULT_wxUSE_DOC_VIEW_ARCHITECTURE=no
  DEFAULT_wxUSE_PRINTING_ARCHITECTURE=no
  DEFAULT_wxUSE_PROLOGIO=no
  DEFAULT_wxUSE_RESOURCES=no
  DEFAULT_wxUSE_CONSTRAINTS=no
  DEFAULT_wxUSE_IPC=no
  DEFAULT_wxUSE_HELP=no
  DEFAULT_wxUSE_WXTREE=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_HTML=no
  DEFAULT_wxUSE_FS_INET=no
  DEFAULT_wxUSE_FS_ZIP=no
  DEFAULT_wxUSE_BUSYINFO=no
  DEFAULT_wxUSE_ZIPSTREAM=no
  DEFAULT_wxUSE_VALIDATORS=no
  DEFAULT_wxUSE_ACCEL=no
  DEFAULT_wxUSE_CARET=no
  DEFAULT_wxUSE_BMPBUTTON=no
  DEFAULT_wxUSE_CHECKBOX=no
  DEFAULT_wxUSE_CHECKLST=no
  DEFAULT_wxUSE_CHOICE=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_NOTEBOOK=no
  DEFAULT_wxUSE_RADIOBOX=no
  DEFAULT_wxUSE_RADIOBTN=no
  DEFAULT_wxUSE_SASH=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_STATLINE=no
  DEFAULT_wxUSE_STATUSBAR=no
  DEFAULT_wxUSE_TABDIALOG=no
  DEFAULT_wxUSE_TOOLBAR=no
  DEFAULT_wxUSE_TREECTRL=no
  DEFAULT_wxUSE_GIF=no
  DEFAULT_wxUSE_PCX=no
  DEFAULT_wxUSE_PNM=no
fi

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-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(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(odbc,          [  --with-odbc             use the IODBC and wxODBC classes], wxUSE_ODBC)

dnl ====================
dnl compile-time options
dnl ====================

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)

if test "$wxUSE_DEBUG" = "yes"; then
  DEFAULT_wxUSE_DEBUG_FLAG=yes
  DEFAULT_wxUSE_DEBUG_INFO=yes
elif test "$wxUSE_DEBUG" = "no"; then
  DEFAULT_wxUSE_DEBUG_FLAG=no
  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)
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 ---------------------------------------------------------------------------

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(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 ---------------------------------------------------------------------------

WX_ARG_ENABLE(threads,     [  --enable-threads        use threads], wxUSE_THREADS)
WX_ARG_ENABLE(serial,      [  --enable-serial         use class serialization], wxUSE_SERIAL)

dnl ---------------------------------------------------------------------------
dnl "big" GUI options
dnl ---------------------------------------------------------------------------

WX_ARG_ENABLE(docview,     [  --enable-docview        use document view architecture], wxUSE_DOC_VIEW_ARCHITECTURE)
WX_ARG_ENABLE(help,        [  --enable-help           use help (using external browser at present)], wxUSE_HELP)
WX_ARG_ENABLE(constraints, [  --enable-constraints    use layout-constraints system], wxUSE_CONSTRAINTS)
WX_ARG_ENABLE(printarch,   [  --enable-printarch      use printing architecture], wxUSE_PRINTING_ARCHITECTURE)
WX_ARG_ENABLE(mdi,         [  --enable-mdi            use multiple document interface architecture], wxUSE_MDI_ARCHITECTURE)

dnl ---------------------------------------------------------------------------
dnl PostScript options
dnl ---------------------------------------------------------------------------
WX_ARG_ENABLE(postscript,  [  --enable-postscript     use wxPostscriptDC device context (default for gtk+)], wxUSE_POSTSCRIPT)

dnl VZ: these options seem to be always on, if someone wants to change it please do
dnl WX_ARG_ENABLE(PS-normalized,    [  --enable-PS-normalized  use normalized PS fonts], dnl             wxUSE_NORMALIZED_PS_FONTS)
dnl WX_ARG_ENABLE(afmfonts,        [  --enable-afmfonts       use Adobe Font Metric Font table], dnl             wxUSE_AFM_FOR_POSTSCRIPT)

dnl ---------------------------------------------------------------------------
dnl resources
dnl ---------------------------------------------------------------------------
WX_ARG_ENABLE(prologio,    [  --enable-prologio       use Prolog IO library], wxUSE_PROLOGIO)
WX_ARG_ENABLE(resources,   [  --enable-resources      use wxWindows resources], wxUSE_RESOURCES)

WX_ARG_ENABLE(xresources,  [  --enable-xresources     use X resources for save (default for gtk+)], wxUSE_X_RESOURCES)

dnl ---------------------------------------------------------------------------
dnl IPC &c
dnl ---------------------------------------------------------------------------

WX_ARG_ENABLE(clipboard,   [  --enable-clipboard      use wxClipboard classes], wxUSE_CLIPBOARD)
WX_ARG_ENABLE(dnd,         [  --enable-dnd            use Drag'n'Drop classes], wxUSE_DRAG_AND_DROP)

dnl TODO: doesn't work yet
WX_ARG_ENABLE(wxtree,      [  --enable-wxtree         make wxTree library], wxUSE_WXTREE)

dnl ---------------------------------------------------------------------------
dnl optional GUI controls (in alphabetical order except the first one)
dnl ---------------------------------------------------------------------------

WX_ARG_ENABLE(controls,    [  --enable-controls       use all usual controls], wxUSE_CONTROLS)

dnl even with --enable-controls, some may be disabled by giving
dnl --disable-<control> later on the command line - but by default all will be
dnl used (and vice versa)
if test "$wxUSE_CONTROLS" = "yes"; then
  DEFAULT_wxUSE_ACCEL=yes
  DEFAULT_wxUSE_CARET=yes
  DEFAULT_wxUSE_COMBOBOX=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_NEW_GRID=no
  DEFAULT_wxUSE_IMAGLIST=yes
  DEFAULT_wxUSE_LISTBOX=yes
  DEFAULT_wxUSE_LISTCTRL=yes
  DEFAULT_wxUSE_NOTEBOOK=yes
  DEFAULT_wxUSE_RADIOBOX=yes
  DEFAULT_wxUSE_RADIOBTN=yes
  DEFAULT_wxUSE_SASH=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_STATLINE=yes
  DEFAULT_wxUSE_STATUSBAR=yes
  DEFAULT_wxUSE_TAB_DIALOG=yes
  DEFAULT_wxUSE_TOOLBAR=yes
  DEFAULT_wxUSE_TOOLTIPS=yes
  DEFAULT_wxUSE_TREECTRL=yes
elif test "$wxUSE_CONTROLS" = "no"; then
  DEFAULT_wxUSE_ACCEL=no
  DEFAULT_wxUSE_CARET=no
  DEFAULT_wxUSE_COMBOBOX=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_NEW_GRID=no
  DEFAULT_wxUSE_IMAGLIST=no
  DEFAULT_wxUSE_LISTBOX=no
  DEFAULT_wxUSE_LISTCTRL=no
  DEFAULT_wxUSE_NOTEBOOK=no
  DEFAULT_wxUSE_RADIOBOX=no
  DEFAULT_wxUSE_RADIOBTN=no
  DEFAULT_wxUSE_SASH=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_STATLINE=no
  DEFAULT_wxUSE_STATUSBAR=no
  DEFAULT_wxUSE_TAB_DIALOG=no
  DEFAULT_wxUSE_TOOLBAR=no
  DEFAULT_wxUSE_TOOLTIPS=no
  DEFAULT_wxUSE_TREECTRL=no
fi

WX_ARG_ENABLE(accel,       [  --enable-accel          use accelerators], wxUSE_ACCEL)
WX_ARG_ENABLE(caret,       [  --enable-caret          use wxCaret class], wxUSE_CARET)
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(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(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(notebook,    [  --enable-notebook       use wxNotebook class], wxUSE_NOTEBOOK)
WX_ARG_ENABLE(radiobox,    [  --enable-radiobox       use wxRadioBox class], wxUSE_RADIOBOX)
WX_ARG_ENABLE(radiobtn,    [  --enable-radiobtn       use wxRadioButton class], wxUSE_RADIOBTN)
WX_ARG_ENABLE(sash,        [  --enable-sash           use wxSashWindow class], wxUSE_SASH)
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(statline,    [  --enable-statline       use wxStaticLine class], wxUSE_STATLINE)
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(treectrl,    [  --enable-treectrl       use wxTreeCtrl class], wxUSE_TREECTRL)

dnl ---------------------------------------------------------------------------
dnl misc GUI options
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(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(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)

dnl cache the options values before (may be) aborting below
WX_ARG_CACHE_FLUSH

dnl check that no more than one toolkit is given and that if none are given that
dnl we have a default one

AC_MSG_CHECKING(for toolkit)

if test "$wxUSE_GUI" = "yes"; then

if test "$TOOLKIT_GIVEN" = 1; then
  dnl convert "yes" to 1 and "no" to 0
  for toolkit in `echo $ALL_TOOLKITS`; do
    var=wxUSE_$toolkit
    eval "value=\$${var}"
    eval "$var=`echo \$value | sed -e "s/yes/1/" -e "s/no/0/"`"
  done
else
  dnl try to guess the most apropriate toolkit for this platform
  for toolkit in `echo $ALL_TOOLKITS`; do
    if test "$has_toolkit_in_cache" != 1; then
      var=DEFAULT_DEFAULT_wxUSE_$toolkit
    else
      var=DEFAULT_wxUSE_$toolkit
    fi
    eval "wxUSE_$toolkit=\$${var}"
  done
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}`

case "$NUM_TOOLKITS" in
  1)
  ;;
  0)
    AC_MSG_ERROR(Please specify a toolkit - cannot determine the default for ${host})
  ;;
  *)
    AC_MSG_ERROR(Please specify at most one toolkit (may be some are cached?))
esac

dnl cache the wxUSE_<TOOLKIT> values too
for toolkit in `echo $ALL_TOOLKITS`; do
  var=wxUSE_$toolkit
  eval "value=\$${var}"
  if test "x$value" != x; then
    cache_var=CACHE_$toolkit
    eval "cache=\$${cache_var}"
    if test "$cache" = 1; then
      echo "$var=$value" >> ${wx_arg_cache_file}
    fi
    if test "$value" = 1; then
      AC_MSG_RESULT(`echo $toolkit | tr [[A-Z]] [[a-z]]`)
    fi
  fi
done

dnl from "if wxUSE_GUI"
else
    AC_MSG_RESULT(base only)
fi

dnl ---------------------------------------------------------------------------
dnl Checks for programs
dnl ---------------------------------------------------------------------------

dnl flush the cache because checking for programs might abort
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
  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

dnl C-compiler checks
dnl   defines CC with the compiler to use
dnl   defines GCC with yes if using gcc
dnl   defines GCC empty if not using gcc
dnl   defines CFLAGS
AC_PROG_CC

CFLAGS=`echo "$CFLAGS" | sed 's/-g//g'`

dnl what is the c-preprocessor
dnl   defines CPP with the c-preprocessor
AC_PROG_CPP

dnl is -traditional needed for correct compilations
dnl   adds -traditional for gcc if needed
AC_PROG_GCC_TRADITIONAL

AC_LANG_SAVE
AC_LANG_CPLUSPLUS

dnl C++-compiler checks
dnl   defines CXX with the compiler to use
dnl   defines GXX with yes if using gxx
dnl   defines GXX empty if not using gxx
dnl   defines CXXFLAGS
AC_PROG_CXX

dnl what is the C++-preprocessor
dnl   defines CXXCPP with the C++-preprocessor
AC_PROG_CXXCPP

CXXFLAGS=`echo "$CXXFLAGS" | sed 's/-g//g'`

AC_LANG_RESTORE

dnl ranlib command
dnl   defines RANLIB with the appropriate command
AC_PROG_RANLIB

dnl ar command
dnl   defines AR with the appropriate command
AC_CHECK_PROG(AR, ar, ar, ar)

dnl install checks
dnl   defines INSTALL with the appropriate command
AC_PROG_INSTALL

dnl strip command
dnl   defines STRIP as strip or nothing if not found
AC_CHECK_PROG(STRIP, strip, strip, true)

dnl check if VPATH works
AC_MSG_CHECKING("make for VPATH support")
dnl create Makefile
cat - << EOF > confMake
check : file
	cp \$? \$@
	cp \$? final_file
EOF

if test ! -d sub ; then
  mkdir sub
fi
echo dummy > sub/file
${MAKE-make} -f confMake VPATH=sub 2> config.log > /dev/null
RESULT=$?
rm -f sub/file check final_file confMake
rmdir sub
if test "$RESULT" = 0; then
  AC_MSG_RESULT(yes)
else
  AC_MSG_RESULT(no)
  AC_MSG_ERROR(
You need a make-utility that is able to use the variable
VPATH correctly.
If your version of make does not support VPATH correctly,
please install GNU-make (possibly as gmake), and start
configure with the following command:
export MAKE=gmake; ./configure  for sh-type shells
setenv MAKE gmake; ./configure  for csh-type shells
Also please do remember to use gmake in this case every time
you are trying to compile.
)
fi

dnl YACC checks
dnl   defines YACC with the appropriate command
AC_PROG_YACC

dnl LEX checks
dnl   defines LEX with the appropriate command
dnl   defines LEXLIB with the appropriate library
AC_PROG_LEX

dnl needed for making link to setup.h
AC_PROG_LN_S

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="\
    /usr/local/include        \
                              \
    /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/openwin/include      \
                              \
    /usr/include/Xm           \
                              \
    /usr/X11R6/include        \
    /usr/X11R6.4/include      \
    /usr/X11R5/include        \
    /usr/X11R4/include        \
                              \
    /usr/include/X11R6        \
    /usr/include/X11R5        \
    /usr/include/X11R4        \
                              \
    /usr/local/X11R6/include  \
    /usr/local/X11R5/include  \
    /usr/local/X11R4/include  \
                              \
    /usr/local/include/X11R6  \
    /usr/local/include/X11R5  \
    /usr/local/include/X11R4  \
                              \
    /usr/X11/include          \
    /usr/include/X11          \
    /usr/local/X11/include    \
    /usr/local/include/X11    \
                              \
    /usr/X386/include         \
    /usr/x386/include         \
    /usr/XFree86/include/X11  \
                              \
    /usr/include/gtk          \
    /usr/local/include/gtk    \
    /usr/include/glib         \
    /usr/local/include/glib   \
                              \
    /usr/include/qt           \
    /usr/local/include/qt     \
                              \
    /usr/include/windows      \
    /usr/include/wine         \
    /usr/local/include/wine   \
                              \
    /usr/unsupported/include  \
    /usr/athena/include       \
    /usr/local/x11r5/include  \
    /usr/lpp/Xamples/include  \
                              \
    /usr/openwin/share/include \
                               \
    /usr/include"

SEARCH_LIB="`echo "$SEARCH_INCLUDE" | sed s/include/lib/g` "

dnl ------------------------------------------------------------------------
dnl Check for libraries
dnl ------------------------------------------------------------------------

dnl flush the cache because checking for libraries below might abort
AC_CACHE_SAVE

dnl ----------------------------------------------------------------
dnl search for toolkit (widget sets)
dnl ----------------------------------------------------------------

if test "$wxUSE_GUI" = "yes"; then

TOOLKIT=
TOOLKIT_INCLUDE=

GUIOBJS=
COMMONOBJS=
GENERICOBJS=

GUI_TK_LIBRARY=
GUI_TK_LINK=

WXGTK12=

WXWINE=

dnl Extension for programs; '.exe' for msw builds
PROGRAM_EXT=

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
    PROGRAM_EXT=.exe
fi

if test "$wxUSE_GTK" = 1; then
    dnl avoid calling AM_PATH_GTK twice, so check first for the newer version and
    dnl only then, if it wasn't found, for an older one
    AM_PATH_GTK(1.2.1, WXGTK12=1, AC_MSG_ERROR(Is gtk-config in path and GTK+ is version 1.2.1 or above?))

    TOOLKIT_INCLUDE="$GTK_CFLAGS"
    GUI_TK_LIBRARY="$GTK_LIBS"
    TOOLKIT=GTK

    GUIOBJS="\$(GTK_GUIOBJS)"
    GUIHEADERS="\$(GTK_HEADERS)"
    COMMONOBJS="\$(GTK_COMMONOBJS)"
    GENERICOBJS="\$(GTK_GENERICOBJS)"
    GUIDEPS="\$(GTK_GUIDEPS)"
    COMMONDEPS="\$(GTK_COMMONDEPS)"
    GENERICDEPS="\$(GTK_GENERICDEPS)"
    UNIXOBJS="\$(UNIX_OBJS)"
    GUIDIST=GTK_DIST
fi

if test "$wxUSE_WINE" = 1; then
    AC_MSG_CHECKING(for WINE includes)
    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

    XPM_LINK=""
    AC_MSG_CHECKING(for Xpm library)
    WX_PATH_FIND_LIBRARIES($SEARCH_LIB,Xpm)
    if test "$ac_find_libraries" != "" ; then
        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_MSG_RESULT(no)
        AC_MSG_WARN(library will be compiled without support for images in XPM format)
    fi

    MESA_LINK=""
    AC_MSG_CHECKING(for Mesa library)
    WX_PATH_FIND_LIBRARIES($SEARCH_LIB,MesaGL)
    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

    GUIHEADERS="\$(MSW_HEADERS)"
    GUIOBJS="\$(MSW_GUIOBJS)"
    COMMONOBJS="\$(MSW_COMMONOBJS)"
    GENERICOBJS="\$(MSW_GENERICOBJS)"
    GUIDEPS="\$(MSW_GUIDEPS)"
    COMMONDEPS="\$(MSW_COMMONDEPS)"
    GENERICDEPS="\$(MSW_GENERICDEPS)"
    UNIXOBJS="\$(UNIX_OBJS)"
    GUIDIST=MSW_DIST
fi

if test "$wxUSE_MOTIF" = 1; then
    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_MSG_ERROR(X11 not found, please use --x-includes and/or --x-libraries options)
    fi

    GUI_TK_LIBRARY="$X_LIBS"
    TOOLKIT_INCLUDE="$X_CFLAGS"

    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

    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
        AC_MSG_RESULT(no)
        AC_MSG_ERROR(please set CFLAGS to contain the location of Xm/Xm.h)
    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)

        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
        AC_MSG_RESULT(no)
        AC_MSG_ERROR(please set LDFLAGS to contain the location of libXm)
    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)
        GUI_TK_LIBRARY="$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

    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)
        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
        AC_MSG_RESULT(no)
        AC_MSG_WARN(library will be compiled without support for images in XPM format)
    fi

    GUI_TK_LINK="-lXm $XPM_LINK -lXmu -lXext -lXt -lX11 -lm"
    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)"
    GUIDIST=MOTIF_DIST
fi

dnl the name of the directory where the files for this toolkit live
TOOLKIT_DIR=`echo ${TOOLKIT} | tr "A-Z" "a-z"`

dnl the symbol which allows conditional compilation for the given toolkit
TOOLKIT_DEF="-D__WX${TOOLKIT}__"

dnl the name of the (libtool) library
WX_LIBRARY="wx_${TOOLKIT_DIR}"

    dnl the sources, their dependenices and the headers
    ALL_OBJECTS="\$(GUIOBJS) \$(COMMONOBJS) \$(GENERICOBJS) \$(UNIXOBJS) \$(HTMLOBJS) \$(JPEGOBJS) \$(PNGOBJS) \$(ZLIBOBJS) \$(IODBCOBJS)"
    ALL_DEPFILES="\$(GUIDEPS) \$(COMMONDEPS) \$(GENERICDEPS) \$(UNIXDEPS) \$(HTMLDEPS)"
    ALL_HEADERS="\$(GUIHEADERS) \$(HTML_HEADERS) \$(UNIX_HEADERS) \$(PROTOCOL_HEADERS) \$(GENERIC_HEADERS) \$(WX_HEADERS)"
else
    dnl leave all TOOLKIT_XXX vars empty

    dnl the sources, their dependenices and the headers
    ALL_OBJECTS="\$(BASE_OBJS)"
    ALL_DEPFILES="\${BASE_DEPS}"
    ALL_HEADERS="\${BASE_HEADERS}"

    dnl building wxBase only
    WX_LIBRARY="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=

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}
      ;;
      *-*-linux* )
        SHARED_LD="${CC} -shared -o"
        PIC_FLAG="-fPIC"
        WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS"
        WX_ALL="CREATE_LINKS"
      ;;
      *-*-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 )
      ;;
      *)
        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
AC_TYPE_SIZE_T
dnl   defines uid_t and gid_t if not already defined
AC_TYPE_UID_T

dnl ---------------------------------------------------------------------------
dnl Checks for structures
dnl ---------------------------------------------------------------------------

dnl ---------------------------------------------------------------------------
dnl Checks for compiler characteristics
dnl ---------------------------------------------------------------------------

dnl defines const to be empty if c-compiler does not support const fully
AC_C_CONST
dnl defines inline to a sensible value for the c-compiler
AC_C_INLINE

dnl check the sizes of integral types (give some reasonable default values for
dnl cross-compiling)
dnl   defines the size of certain types of variables in SIZEOF_<TYPE>
AC_CHECK_SIZEOF(char, 1)
AC_CHECK_SIZEOF(short, 2)
AC_CHECK_SIZEOF(int *, 4)
AC_CHECK_SIZEOF(int, 4)
AC_CHECK_SIZEOF(long, 4)
AC_CHECK_SIZEOF(long long, 0)

dnl for bytesex stuff (don't use AC_C_BIGENDIAN to allow cross-compiling)
WX_C_BIGENDIAN

dnl check for iostream (as opposed to iostream.h) standard header
WX_CPP_NEW_HEADERS(, AC_DEFINE(wxUSE_IOSTREAMH))

dnl check whether C++ compiler supports bool built-in type
WX_CPP_BOOL

dnl check whether we should define _GNU_SOURCE
WX_GNU_EXTENSIONS

dnl ---------------------------------------------------------------------------
dnl Check for functions
dnl ---------------------------------------------------------------------------

dnl check for wcslen
AC_CHECK_LIB(c, wcslen, [
            AC_DEFINE(HAVE_WCSLEN)
            WCHAR_LINK=""
        ], [
            AC_CHECK_LIB(w, wcslen, [
                AC_DEFINE(HAVE_WCSLEN)
                WCHAR_LINK="-lw"
            ])
        ])

dnl check for vprintf/vsprintf() which are GNU extensions
AC_FUNC_VPRINTF

dnl check for vsnprintf() - a safe version of vsprintf()
AC_CHECK_FUNCS(vsnprintf,
               AC_DEFINE(HAVE_VSNPRINTF),
               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

if test "$USE_UNIX" = 1; then

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 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 Unix

dnl ===========================================================================
dnl Now we have all the info we need - use it!
dnl ===========================================================================

dnl flush the cache
AC_CACHE_SAVE

dnl ---------------------------------------------------------------------------
dnl thread support for Unix (always available under Win32)
dnl ---------------------------------------------------------------------------

if test "$USE_UNIX" = 1; 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   defines wxUSE_THREADS=1 if thread support is activated

THREADS_LINK=""
THREADS_OBJ=""

if test "$wxUSE_THREADS" = "yes" ; then
    if test "$wxUSE_WINE" = 1 ; then
        AC_MSG_WARN([Threads are not supported under WINE])
        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 We no longer test for pthread-0.7 as it breaks compilation on some
    dnl glibc2 systems, especially for static linkage.
    AC_CHECK_LIB(pthread, pthread_create, [
            THREADS_OBJ="threadpsx.lo"
            THREADS_LINK="pthread"
        ], [
            dnl thread functions are in libc_r under FreeBSD
            AC_CHECK_LIB(c_r, pthread_create, [
                THREADS_OBJ="threadpsx.lo"
                THREADS_LINK="c_r"
            ], [
                dnl VZ: SGI threads are not supported currently
                AC_CHECK_HEADER(sys/prctl.h, [
                    THREADS_OBJ="threadsgi.lo"
                ])
            ])
        ])

    if test -z "$THREADS_OBJ" ; then
        wxUSE_THREADS=no
        AC_MSG_WARN(No thread support on this system)
    fi
fi

dnl do other tests only if we are using threads
if test "$wxUSE_THREADS" = "yes" ; then
  dnl define autoconf macro to check for given function in both pthread and
  dnl posix4 libraries
  dnl usage: AC_FUNC_THREAD(FUNCTION_NAME)
  dnl VZ: TODO
  dnl AC_DEFUN(AC_FUNC_THREAD,
  dnl [
  dnl     AC_CHECK_LIB($THREADS_LINK, $1,
  dnl            AC_DEFINE(HAVE_`'translit($1, `A-Z', 'a-z'),
  dnl            [AC_CHECK_LIB("posix4", $1,
  dnl                [AC_DEFINE(HAVE_`'translit($1, `A-Z', 'a-z'))
  dnl                 POSIX4_LINK="-lposix4"
  dnl             ])
  dnl            ])
  dnl ])

  AC_CHECK_HEADERS(sched.h)

  AC_CHECK_LIB($THREADS_LINK, sched_yield,
               AC_DEFINE(HAVE_SCHED_YIELD),
               [AC_CHECK_LIB("posix4", sched_yield,
                   [AC_DEFINE(HAVE_SCHED_YIELD) POSIX4_LINK="-lposix4"],
                   AC_MSG_WARN(wxThread::Yield will not work properly)
                )]
               )

  dnl VZ: we should be checking for all of the following functions instead:
  dnl   1. pthread_attr_getschedpolicy
  dnl   2. sched_get_priority_min and sched_get_priority_max
  dnl   3. pthread_attr_getschedparam and pthread_attr_setschedparam
  dnl but it seems that if the first one is there, the other ones are too (of
  dnl course the proper solution would be to implement AC_FUNC_THREAD above
  dnl and do test for them all - anyone?)
  AC_CHECK_LIB($THREADS_LINK, pthread_attr_getschedpolicy,
               AC_DEFINE(HAVE_THREAD_PRIORITY_FUNCTIONS),
               [AC_CHECK_LIB("posix4", pthread_attr_getschedpolicy,
                   [AC_DEFINE(HAVE_THREAD_PRIORITY_FUNCTIONS) POSIX4_LINK="-lposix4"],
                   AC_MSG_WARN(Setting thread priority will not work)
                )]
               )

  AC_CHECK_LIB($THREADS_LINK, pthread_cancel,
               AC_DEFINE(HAVE_PTHREAD_CANCEL),
               AC_MSG_WARN([wxThread::Kill() will not work properly]))

  AC_CACHE_CHECK([for pthread_cleanup_push/pop], wx_cv_func_pthread_cleanup_push,
  [
    AC_TRY_COMPILE([#include <pthread.h>],
                 [
                    pthread_cleanup_push(NULL, NULL);
                    pthread_cleanup_pop(0);
                 ], [
                    wx_cv_func_pthread_cleanup_push=yes
                    AC_DEFINE(HAVE_THREAD_CLEANUP_FUNCTIONS)
                 ], [
                    wx_cv_func_pthread_cleanup_push=no
                 ])
  ])

  THREADS_LINK="-l$THREADS_LINK"
fi

dnl from if USE_UNIX
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 bedefined 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 "$WXGTK12" = 1 ; then
  AC_DEFINE_UNQUOTED(__WXGTK12__,$WXGTK12)
fi

if test "$WXWINE" = 1 ; then
  TOOLKIT_DEF="${TOOLKIT_DEF} -D__WXWINE__"
fi

if test "$wxUSE_CYGWIN" = 1 ; then
  TOOLKIT_DEF="${TOOLKIT_DEF} -D__WIN95__"
fi

WXDEBUG=

if test "$wxUSE_DEBUG_INFO" = "yes" ; then
    WXDEBUG="-g"
    wxUSE_OPTIMISE=no
fi

if test "$wxUSE_DEBUG_GDB" = "yes" ; then
    wxUSE_DEBUG_INFO=yes
    WXDEBUG="-ggdb"
fi

if test "$wxUSE_DEBUG_FLAG" = "yes" ; then
    AC_DEFINE(WXDEBUG)
    WXDEBUG_DEFINE="-D__WXDEBUG__"
else
    if test "$wxUSE_GTK" = 1 ; then
        WXDEBUG_DEFINE="-DGTK_NO_CHECK_CASTS"
    fi
fi

if test "$wxUSE_MEM_TRACING" = "yes" ; then
    AC_DEFINE(wxUSE_MEMORY_TRACING)
    AC_DEFINE(wxUSE_GLOBAL_MEMORY_OPERATORS)
    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS memcheck"
fi

if test "$wxUSE_DMALLOC" = "yes" ; then
    DMALLOC_LINK="-ldmalloc"
fi

PROFILE=
if test "$wxUSE_PROFILE" = "yes" ; then
    PROFILE="-pg"
fi

DEP_INFO_FLAGS=
if test "$GCC" = yes ; then
    if test "$wxUSE_NO_RTTI" = "yes" ; then
        WXDEBUG_DEFINE="$WXDEBUG_DEFINE -fno-rtti"
    fi
    if test "$wxUSE_NO_EXCEPTIONS" = "yes" ; then
        WXDEBUG_DEFINE="$WXDEBUG_DEFINE -fno-exceptions"
    fi
    if test "$wxUSE_PERMISSIVE" = "yes" ; then
       CFLAGS="${CFLAGS} -fpermissive"
       CXXFLAGS="${CXXFLAGS} -fpermissive"
    fi
    if test "$wxUSE_NO_DEPS" = "no" ; then
        DEP_INFO_FLAGS="-MMD"
    fi
fi


CXXFLAGS=`echo "${CXXFLAGS}" | sed "s/\-O.//g" `
CFLAGS=`echo "${CFLAGS}" | sed "s/\-O.//g" `
if test "$wxUSE_OPTIMISE" = "no" ; then
    OPTIMISE=
else
    if test "$GCC" = yes ; then
        OPTIMISE="-O2"
        case "${host}" in
            i586-*-*|i686-*-* )
            OPTIMISE="${OPTIMISE} "
        ;;
        esac
    else
        OPTIMISE="-O"
    fi
fi

dnl ---------------------------------------------------------------------------
dnl Optional libraries
dnl ---------------------------------------------------------------------------

ZLIB_INCLUDE=
if test "$wxUSE_ZLIB" = "yes" ; then
  AC_DEFINE(wxUSE_ZLIB)
  ZLIB_INCLUDE="-I\${top_srcdir}/src/zlib"
fi

PNG_INCLUDE=
if test "$wxUSE_LIBPNG" = "yes" ; then
  AC_DEFINE(wxUSE_LIBPNG)
  PNG_INCLUDE="-I\${top_srcdir}/src/png"
  SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS png"
fi

JPEG_INCLUDE=
if test "$wxUSE_LIBJPEG" = "yes" ; then
  AC_DEFINE(wxUSE_LIBJPEG)
  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
  AC_CHECK_HEADER(GL/gl.h, [
    AC_CHECK_LIB(GL, glInitNames, [
      OPENGL_LINK="-lGL"
      AC_DEFINE(wxUSE_OPENGL)
      UTILS_SUBDIRS="$UTILS_SUBDIRS glcanvas/src"
    ],[
        AC_CHECK_LIB(MesaGL, glInitNames, [
        OPENGL_LINK="-lMesaGL"
        AC_DEFINE(wxUSE_OPENGL)
        UTILS_SUBDIRS="$UTILS_SUBDIRS glcanvas/src"
      ],wxUSE_OPENGL=0)
     ],wxUSE_OPENGL=0)
    ],wxUSE_OPENGL=0)
fi

dnl ---------------------------------------------------------------------------
dnl the library may be built without GUI classes at all
dnl ---------------------------------------------------------------------------

if test "$wxUSE_GUI" = "yes"; then
  AC_DEFINE(wxUSE_GUI)

  dnl the things we always pull in the GUI version of the library:
  dnl 1. basic things like wxApp, wxWindow, wxControl, wxFrame, wxDialog (the
  dnl    library really can't be built without those)
  dnl 2. basic controls: wxButton, wxStaticText, wxTextCtrl (these are used in
  dnl    almost any program and the first 2 are needed to show a message box
  dnl    which want to be always able to do)
  dnl 3. GDI stuff: icon, cursors and all that. Although it would be very nice
  dnl    to compile without them (if the app doesn't do any drawing, it doesn't
  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
else
  AC_DEFINE(wxUSE_NOGUI)
fi

dnl ---------------------------------------------------------------------------
dnl Unix/Windows
dnl ---------------------------------------------------------------------------

if test "$wxUSE_UNIX" = "yes"; then
  AC_DEFINE(wxUSE_UNIX)
fi

dnl ---------------------------------------------------------------------------
dnl Register non-GUI class options for makefiles and setup.h
dnl ---------------------------------------------------------------------------

if test "$wxUSE_APPLE_IEEE" = "yes"; then
  AC_DEFINE(wxUSE_APPLE_IEEE)
fi

if test "$wxUSE_WAVE" = "yes"; then
  AC_DEFINE(wxUSE_WAVE)
fi

if test "$wxUSE_FILE" = "yes"; then
  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)
  else
    AC_DEFINE(wxUSE_TEXTFILE)
  fi
fi

if test "$wxUSE_CONFIG" = "yes" ; then
  if test "$wxUSE_TEXTFILE" != "yes"; then
    AC_MSG_WARN(wxConfig requires wxTextFile and it won't be compiled without it)
  else
    AC_DEFINE(wxUSE_CONFIG)
    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS config"
  fi
fi

if test "$wxUSE_INTL" = "yes" ; then
  if test "$wxUSE_FILE" != "yes"; then
    AC_MSG_WARN(I18n code requires wxFile and it won't be compiled without it)
  else
    AC_DEFINE(wxUSE_INTL)
    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS internat"
  fi
fi

if test "$wxUSE_LOG" = "yes"; then
  AC_DEFINE(wxUSE_LOG)
fi

if test "$wxUSE_LONGLONG" = "yes"; then
  AC_DEFINE(wxUSE_LONGLONG)
fi

if test "$wxUSE_DIALUP_MANAGER" = "yes" ; then
  AC_DEFINE(wxUSE_DIALUP_MANAGER)
  SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS nettest"
fi

if test "$wxUSE_STREAMS" = "yes" ; then
  AC_DEFINE(wxUSE_STREAMS)
fi

if test "$wxUSE_SERIAL" = "yes" ; then
  AC_DEFINE(wxUSE_SERIAL)
fi

dnl ------------------------------------------------------------------------
dnl time/date functions
dnl ------------------------------------------------------------------------

if test "$wxUSE_TIMEDATE" = "yes"; then
    dnl check for localtime (POSIX), gettimeofday (SVr4, BSD 4.3) and ftime
    dnl (V7, BSD 4.3)
    AC_CHECK_FUNCS(localtime gettimeofday ftime, break)

    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
            )
        ])
    elif 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 ------------------------------------------------------------------------

if test "$wxUSE_SOCKETS" = "yes"; then
    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
            ]
        )
    )
fi

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, 0, &len);],
        AC_DEFINE(SOCKLEN_T, socklen_t) AC_MSG_RESULT(socklen_t),
           AC_TRY_COMPILE(
            [#include <sys/socket.h>],
            [size_t len; getsockname(0, 0, &len);],
            AC_DEFINE(SOCKLEN_T, size_t) AC_MSG_RESULT(size_t),
            AC_TRY_COMPILE(
                [#include <sys/socket.h>],
                [int len; getsockname(0, 0, &len);],
                AC_DEFINE(SOCKLEN_T, int) AC_MSG_RESULT(int),
                AC_MSG_RESULT(unknown)
            )
        )
    )
    AC_LANG_RESTORE

    AC_DEFINE(wxUSE_SOCKETS)
    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS wxsocket"
    INCLUDE_SUBDIRS="$INCLUDE_SUBDIRS protocol"
fi

dnl ---------------------------------------------------------------------------
dnl Joystick support
dnl ---------------------------------------------------------------------------

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
    AC_DEFINE(wxUSE_JOYSTICK)
    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS joytest"
  fi
fi

dnl ------------------------------------------------------------------------
dnl DLL support
dnl ------------------------------------------------------------------------

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 and we also try to find shl_load() if there is no
    dnl dlopen() on this system
    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
                            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_SHL_FUNCS" = 0; then
          if test "$USE_UNIX" = 1; then
              AC_MSG_WARN("--with-dynlib and --with-odbc will be disabled due to missing shared library support")
              wxUSE_ODBC=no
              wxUSE_DYNLIB_CLASS=no
          else
              AC_MSG_WARN("Cannot check dynlib requirements on non-Unix platforms. dynlib remains enabled.")
          fi
        fi
    fi
fi

if test "$wxUSE_DYNLIB_CLASS" = "yes" ; then
  AC_DEFINE(wxUSE_DYNLIB_CLASS)
fi

dnl ---------------------------------------------------------------------------
dnl String stuff
dnl ---------------------------------------------------------------------------

if test "$wxUSE_UNICODE" = "yes" ; then
  AC_DEFINE(wxUSE_UNICODE)
fi

if test "$wxUSE_WCSRTOMBS" = "yes" ; then
  AC_DEFINE(wxUSE_WCSRTOMBS)
fi

if test "$wxUSE_wxUSE_EXPERIMENTAL_PRINTF" = "yes"; then
  AC_DEFINE(wxUSE_EXPERIMENTAL_PRINTF)
fi

dnl ----------------------------------------------------------------
dnl iODBC support
dnl ----------------------------------------------------------------

IODBC_C_SRC=""
if test "$wxUSE_ODBC" = "yes" ; then
    AC_DEFINE(wxUSE_ODBC)
    WXODBCFLAG="-D_IODBC_"
    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS db"
    IODBCOBJS="\$(IODBC_OBJS)"
else
    IODBCOBJS=
fi

dnl ----------------------------------------------------------------
dnl Register PostScript options for makefiles and setup.h
dnl ----------------------------------------------------------------

if test "$wxUSE_POSTSCRIPT" = "yes" ; then
  AC_DEFINE(wxUSE_POSTSCRIPT)
fi

AC_DEFINE(wxUSE_AFM_FOR_POSTSCRIPT)

AC_DEFINE(wxUSE_NORMALIZED_PS_FONTS)

dnl ---------------------------------------------------------------------------
dnl big GUI components: MDI, doc/view, printing, help, ...
dnl ---------------------------------------------------------------------------

if test "$wxUSE_CONSTRAINTS" = "yes"; then
    AC_DEFINE(wxUSE_CONSTRAINTS)
    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS layout"
fi

if test "$wxUSE_MDI_ARCHITECTURE" = "yes"; then
    AC_DEFINE(wxUSE_MDI_ARCHITECTURE)
    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS mdi"
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
fi

if test "$wxUSE_HELP" = "yes"; then
    AC_DEFINE(wxUSE_HELP)
    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS help"
fi

if test "$wxUSE_PRINTING_ARCHITECTURE" = "yes" ; then
    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
    AC_DEFINE(wxUSE_PROLOGIO)
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
fi

if test "$wxUSE_X_RESOURCES" = "yes"; then
    AC_DEFINE(wxUSE_X_RESOURCES)
fi

dnl ---------------------------------------------------------------------------
dnl IPC: IPC, Drag'n'Drop, Clipboard, ...
dnl ---------------------------------------------------------------------------

if test "$wxUSE_IPC" = "yes"; then
    AC_DEFINE(wxUSE_IPC)
fi

if test "$wxUSE_CLIPBOARD" = "yes"; then
    AC_DEFINE(wxUSE_CLIPBOARD)
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
  AC_DEFINE(wxUSE_SPLINES)
fi

dnl ---------------------------------------------------------------------------
dnl GUI controls
dnl ---------------------------------------------------------------------------

if test "$wxUSE_ACCEL" = "yes"; then
  AC_DEFINE(wxUSE_ACCEL)
fi

if test "$wxUSE_CARET" = "yes"; then
  AC_DEFINE(wxUSE_CARET)
  SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS caret"
fi

if test "$wxUSE_COMBOBOX" = "yes"; then
  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_CHECKBOX" = "yes"; then
  AC_DEFINE(wxUSE_CHECKBOX)
fi

if test "$wxUSE_CHECKLST" = "yes"; then
  AC_DEFINE(wxUSE_CHECKLISTBOX)
  SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS checklst"
fi

if test "$wxUSE_GAUGE" = "yes"; then
  AC_DEFINE(wxUSE_GAUGE)
fi

if test "$wxUSE_GRID" = "yes"; then
  AC_DEFINE(wxUSE_GRID)
  SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS grid"
fi

if test "$wxUSE_NEW_GRID" = "yes"; then
  AC_DEFINE(wxUSE_NEW_GRID)
  SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS newgrid"
fi

if test "$wxUSE_IMAGLIST" = "yes"; then
    AC_DEFINE(wxUSE_IMAGLIST)
fi

if test "$wxUSE_LISTBOX" = "yes"; then
    AC_DEFINE(wxUSE_LISTBOX)
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
fi

if test "$wxUSE_NOTEBOOK" = "yes"; then
    AC_DEFINE(wxUSE_NOTEBOOK)
    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS notebook"
fi

if test "$wxUSE_RADIOBOX" = "yes"; then
    AC_DEFINE(wxUSE_RADIOBOX)
fi

if test "$wxUSE_RADIOBTN" = "yes"; then
    AC_DEFINE(wxUSE_RADIOBTN)
fi

if test "$wxUSE_SASH" = "yes"; then
    AC_DEFINE(wxUSE_SASH)
    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS sashtest"
fi

if test "$wxUSE_SCROLLBAR" = "yes"; then
    AC_DEFINE(wxUSE_SCROLLBAR)
    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS scroll scrollsub"
fi

if test "$wxUSE_SLIDER" = "yes"; then
    AC_DEFINE(wxUSE_SLIDER)
fi

if test "$wxUSE_SPINBTN" = "yes"; then
    AC_DEFINE(wxUSE_SPINBTN)
fi

if test "$wxUSE_SPINCTRL" = "yes"; then
    AC_DEFINE(wxUSE_SPINCTRL)
fi

if test "$wxUSE_SPLITTER" = "yes"; then
    AC_DEFINE(wxUSE_SPLITTER)
    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS splitter"
fi

if test "$wxUSE_STATBMP" = "yes"; then
    AC_DEFINE(wxUSE_STATBMP)
fi

if test "$wxUSE_STATBOX" = "yes"; then
    AC_DEFINE(wxUSE_STATBOX)
fi

if test "$wxUSE_STATLINE" = "yes"; then
    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
    AC_DEFINE(wxUSE_STATUSBAR)
fi

if test "$wxUSE_TABDIALOG" = "yes"; then
    AC_DEFINE(wxUSE_TAB_DIALOG)
    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS tab"
fi

if test "$wxUSE_TOOLBAR" = "yes"; then
    AC_DEFINE(wxUSE_TOOLBAR)
    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS toolbar"
fi

if test "$wxUSE_TOOLTIPS" = "yes"; then
    if test "$wxUSE_MOTIF" = 1; then
        AC_MSG_WARN(wxTooltip not supported yet under Motif)
    else
        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
    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 ---------------------------------------------------------------------------
dnl misc options
dnl ---------------------------------------------------------------------------

dnl TODO this is unused for now...
dnl if test "$wxUSE_WXTREE" = "yes"; then
dnl   AC_DEFINE(wxUSE_WXTREE)
dnl fi

if test "$wxUSE_METAFILE" = "yes"; then
    AC_DEFINE(wxUSE_METAFILE)
fi

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_TEXTDLG" = "yes"; then
    AC_DEFINE(wxUSE_TEXTDLG)
fi

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
        AC_DEFINE(wxUSE_STARTUP_TIPS)
    fi
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
    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
    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

if test "$wxUSE_PNM" = "yes" ; then
  AC_DEFINE(wxUSE_PNM)
fi

dnl ---------------------------------------------------------------------------
dnl Output the makefiles and such from the results found above
dnl ---------------------------------------------------------------------------

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 $INET_LINK $WCHAR_LINK $THREADS_LINK $DMALLOC_LINK $DL_LINK"
if test "$wxUSE_GUI" = "yes"; then
    EXTRA_LIBS="$EXTRA_LIBS $GUILIBS"
fi

dnl all the libraries needed to link wxWindows programs when using the
dnl makefile system without libtool
LD_LIBS="\${top_builddir}/lib/${WX_LIBRARY_NAME_STATIC} $EXTRA_LIBS"

dnl all -I options we must pass to the compiler
INCLUDES="-I. -I\${top_builddir}/include -I\${top_srcdir}/include $ZLIB_INCLUDE $PNG_INCLUDE $JPEG_INCLUDE $TIFF_INCLUDE $TOOLKIT_INCLUDE"

dnl C/C++ compiler options used to compile wxWindows
if test "$GXX" = yes ; then
    dnl CXXWARNINGS="-Wall -W -Wcast-qual -Werror"
    CXXWARNINGS="-Wall"
    dnl FIXME: there is one weird warning in docview.h:71 which prevents me from
    dnl        doing this... (VZ)
    dnl CXXWARNINGS="-Wall -Werror"
fi
EXTRA_CFLAGS="$WXDEBUG $WXODBCFLAG $PROFILE $OPTIMISE $INCLUDES"

CFLAGS=`echo $CFLAGS $EXTRA_CFLAGS | sed 's/ \\+/ /g'`
CXXFLAGS=`echo $CXXFLAGS $EXTRA_CFLAGS $CXXWARNINGS | sed 's/ \+/ /g'`

if test "$wxUSE_GUI" = "yes"; then
    dnl TODO add checks that these samples will really compile (i.e. all the
    dnl      library features they need are present)

    dnl TODO some samples are never built so far:
    dnl      mfc, nativdlg, oleauto, ownerdrw, proplist
    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS bombs controls dialogs drawing dynamic \
                     font forty fractal image minimal richedit wxpoem"
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!
SAMPLES_SUBDIRS="`echo $SAMPLES_SUBDIRS | tr -s ' ' | tr ' ' '\n' | sort | uniq | tr '\n' ' '`"

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_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)

dnl debugging options
AC_SUBST(WXDEBUG_DEFINE)

dnl toolkit options
AC_SUBST(TOOLKIT)
AC_SUBST(TOOLKIT_DEF)
AC_SUBST(TOOLKIT_DIR)
AC_SUBST(TOOLKIT_INCLUDE)

dnl what to compile
AC_SUBST(GUIHEADERS)
AC_SUBST(GUIOBJS)
AC_SUBST(COMMONOBJS)
AC_SUBST(GENERICOBJS)
AC_SUBST(GUIDEPS)
AC_SUBST(COMMONDEPS)
AC_SUBST(GENERICDEPS)
AC_SUBST(IODBCOBJS)
AC_SUBST(UNIXOBJS)
AC_SUBST(UNIXDEPS)
AC_SUBST(ALL_OBJECTS)
AC_SUBST(ALL_DEPFILES)
AC_SUBST(ALL_HEADERS)
AC_SUBST(GUIDIST)

dnl additional subdirectories where we will build
AC_SUBST(SRC_SUBDIRS)
AC_SUBST(INCLUDE_SUBDIRS)
AC_SUBST(UTILS_SUBDIRS)
AC_SUBST(DOCS_SUBDIRS)
AC_SUBST(SAMPLES_SUBDIRS)
AC_SUBST(USER_SUBDIRS)

dnl additional libraries
AC_SUBST(EXTRA_LIBS)
AC_SUBST(LIBS)
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

AC_CONFIG_HEADER(setup.h:setup.h.in)

dnl Duh! glcanvas/$(TOOLKIT_DIR) doesn't work for msw because some
dnl genius called it "win"
if test "${TOOLKIT_DIR}" = "msw" ; then
  GL_TOOLKIT_DIR="win"
else
  GL_TOOLKIT_DIR="${TOOLKIT_DIR}"
fi
dnl It's needed in glcanvas/Makefile.in so we even have to subst this hack!
AC_SUBST(GL_TOOLKIT_DIR)

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
            samples/Makefile
            samples/bombs/Makefile
            samples/caret/Makefile
            samples/checklst/Makefile
            samples/config/Makefile
            samples/controls/Makefile
            samples/db/Makefile
            samples/dialogs/Makefile
            samples/docview/Makefile
            samples/docvwmdi/Makefile
            samples/dnd/Makefile
            samples/drawing/Makefile
            samples/forty/Makefile
            samples/font/Makefile
            samples/fractal/Makefile
            samples/image/Makefile
            samples/internat/Makefile
            samples/layout/Makefile
            samples/listctrl/Makefile
            samples/mdi/Makefile
            samples/minifram/Makefile
            samples/minimal/Makefile
            samples/nettest/Makefile
            samples/newgrid/Makefile
            samples/notebook/Makefile
            samples/png/Makefile
            samples/printing/Makefile
            samples/proplist/Makefile
            samples/richedit/Makefile
            samples/resource/Makefile
            samples/sashtest/Makefile
            samples/scroll/Makefile
            samples/scrollsub/Makefile
            samples/splitter/Makefile
            samples/text/Makefile
            samples/thread/Makefile
            samples/toolbar/Makefile
            samples/treectrl/Makefile
            samples/typetest/Makefile
            samples/validate/Makefile
            samples/wxpoem/Makefile
            samples/wxsocket/Makefile
            samples/wizard/Makefile
            samples/html/Makefile
            samples/html/about/Makefile
            samples/html/help/Makefile
            samples/html/printing/Makefile
            samples/html/helpview/Makefile
            samples/html/test/Makefile
            samples/html/zip/Makefile
            samples/html/virtual/Makefile
            samples/html/widget/Makefile
            utils/Makefile
            utils/wxMMedia2/Makefile
            utils/wxMMedia2/lib/Makefile
            utils/wxMMedia2/sample/Makefile
            utils/glcanvas/Makefile
            utils/glcanvas/${GL_TOOLKIT_DIR}/Makefile
            utils/ogl/Makefile
            utils/ogl/src/Makefile
          ],
          [
            chmod +x wx-config
            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
          ],
          [
            TOOLKIT_DIR="${TOOLKIT_DIR}"
          ]
         )