dnl Process this file with autoconf to produce a configure script.
AC_REVISION($Id: configure.in,v 1.351 2001/05/08 14:00:46 GD Exp $)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: configure.in,v 1.351 2001/05/08 14:00:46 GD Exp $
dnl ---------------------------------------------------------------------------

dnl ---------------------------------------------------------------------------
dnl AM_PATH_GTK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
dnl Test for GTK, and define GTK_CFLAGS and GTK_LIBS. Uses variables
dnl gtk_config_prefix and/or gtk_config_exec_prefix if defined.
dnl ---------------------------------------------------------------------------
dnl
AC_DEFUN(AM_PATH_GTK,
[
  if test x$gtk_config_exec_prefix != x ; then
     gtk_config_args="$gtk_config_args --exec-prefix=$gtk_config_exec_prefix"
     if test x${GTK_CONFIG+set} != xset ; then
        GTK_CONFIG=$gtk_config_exec_prefix/bin/gtk-config
     fi
  fi
  if test x$gtk_config_prefix != x ; then
     gtk_config_args="$gtk_config_args --prefix=$gtk_config_prefix"
     if test x${GTK_CONFIG+set} != xset ; then
        GTK_CONFIG=$gtk_config_prefix/bin/gtk-config
     fi
  fi

  AC_PATH_PROG(GTK_CONFIG, gtk-config, no)
  min_gtk_version=ifelse([$1], ,0.99.7,$1)
  AC_MSG_CHECKING(for GTK - version >= $min_gtk_version)
  no_gtk=""
  if test "$GTK_CONFIG" != "no" ; then
    GTK_CFLAGS=`$GTK_CONFIG --cflags`
    GTK_LIBS=`$GTK_CONFIG --libs gthread`
    ac_save_CFLAGS="$CFLAGS"
    ac_save_LIBS="$LIBS"
    CFLAGS="$CFLAGS $GTK_CFLAGS"
    LIBS="$LIBS $GTK_LIBS"
dnl
dnl Now check if the installed GTK is sufficiently new. (Also sanity
dnl checks the results of gtk-config to some extent)
dnl
    AC_TRY_RUN([
#include <gtk/gtk.h>
#include <gtk/gtkfeatures.h>
#include <stdio.h>
#include <stdlib.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 three-valued command line --with argument:
dnl   possible arguments are 'yes', 'no', or 'sys'
dnl usage: WX_ARG_SYS_WITH(option, helpmessage, variable-name)
AC_DEFUN(WX_ARG_SYS_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'
                        elif test "$withval" = no; then
                          ac_cv_use_$1='$3=no'
                        elif test "$withval" = sys; then
                          ac_cv_use_$1='$3=sys'
                        else
                          AC_MSG_ERROR([Invalid value for --with-$1: should be yes, no or sys])
                        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)
          elif test "$$3" = no; then
            AC_MSG_RESULT(no)
          elif test "$$3" = sys; then
            AC_MSG_RESULT(system version)
          else
            AC_MSG_ERROR([Invalid value for --with-$1: should be yes, no or sys])
          fi
        ])

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)

dnl sets build, host, target variables and the same with _alias
AC_CANONICAL_SYSTEM

dnl When making releases do:
dnl
dnl WX_RELEASE_NUMBER += 1
dnl
dnl ..and update WX_CURRENT, WX_RELEASE and WX_AGE according to the
dnl following rules:
dnl
dnl    If any changes have been made to the public interface, that is if any
dnl    exported class, method, global or global type has been added, removed
dnl    or changed in any way, then do:  WX_CURRENT += 1
dnl
dnl    If source changes have been made that *do not* alter the public
dnl    interface then do:  WX_REVISION += 1
dnl    If WX_CURRENT was incremented (as above) instead do:  WX_REVISION = 0
dnl
dnl    If any public interface was added, do:  WX_AGE += 1
dnl    If any public interface was removed (or altered in a way effectively
dnl    removing the previous definition), instead do:  WX_AGE = 0
dnl
dnl When the major or minor version numbers are incremented, all the above
dnl variables should be reset to 0.
dnl
dnl The resulting library name will be of the form:
dnl   libwx_$(TOOLKIT)-$(WX_RELEASE).so.$(WX_CURRENT).$(WX_REVISION).$(WX_AGE)

WX_MAJOR_VERSION_NUMBER=2
WX_MINOR_VERSION_NUMBER=3
WX_RELEASE_NUMBER=0

WX_VERSION=$WX_MAJOR_VERSION_NUMBER.$WX_MINOR_VERSION_NUMBER.$WX_RELEASE_NUMBER
WX_RELEASE=$WX_MAJOR_VERSION_NUMBER.$WX_MINOR_VERSION_NUMBER

WX_CURRENT=0
WX_REVISION=0
WX_AGE=0


dnl ------------------------------------------------------------------------
dnl Check platform (host system)
dnl ------------------------------------------------------------------------

dnl assume Unix
USE_UNIX=1
USE_WIN32=0
USE_BEOS=0
USE_MAC=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_OPENBSD=
USE_NETBSD=
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 MAC WINE PM"

dnl NB: these wxUSE_XXX constants have value of 0 or 1 unlike all the other ones
dnl     which are either yes or no
DEFAULT_wxUSE_GTK=0
DEFAULT_wxUSE_MOTIF=0
DEFAULT_wxUSE_MSW=0
DEFAULT_wxUSE_MAC=0
DEFAULT_wxUSE_WINE=0
DEFAULT_wxUSE_PM=0

dnl these are the values which are really default for the given platform -
dnl they're not cached and are only used if no --with-toolkit was given *and*
dnl nothing was found in the cache
DEFAULT_DEFAULT_wxUSE_GTK=0
DEFAULT_DEFAULT_wxUSE_MOTIF=0
DEFAULT_DEFAULT_wxUSE_MSW=0
DEFAULT_DEFAULT_wxUSE_MAC=0
DEFAULT_DEFAULT_wxUSE_WINE=0
DEFAULT_DEFAULT_wxUSE_PM=0

PROGRAM_EXT=

dnl to support a new system, you need to add its canonical name (as determined
dnl by config.sub or specified by the configure command line) to this "case"
dnl and also define the shared library flags below - search for
dnl SHARED_LIB_SETUP to find the exact place
case "${host}" in
  *-hp-hpux* )
    USE_HPUX=1
    DEFAULT_DEFAULT_wxUSE_MOTIF=1
    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*)
    USE_BSD=1
    USE_FREEBSD=1
    AC_DEFINE(__FREEBSD__)
    AC_DEFINE(__BSD__)
    DEFAULT_DEFAULT_wxUSE_GTK=1
  ;;
  *-*-openbsd*)
    USE_BSD=1
    USE_OPENBSD=1
    AC_DEFINE(__FREEBSD__)
    AC_DEFINE(__OPENBSD__)
    DEFAULT_DEFAULT_wxUSE_GTK=1
  ;;
  *-*-netbsd*)
    USE_BSD=1
    USE_NETBSD=1
    AC_DEFINE(__FREEBSD__)
    AC_DEFINE(__NETBSD__)
    DEFAULT_DEFAULT_wxUSE_GTK=1
  ;;
  *-*-osf* )
    USE_ALPHA=1
    USE_OSF=1
    AC_DEFINE(__ALPHA__)
    AC_DEFINE(__OSF__)
    DEFAULT_DEFAULT_wxUSE_MOTIF=1
    NEEDS_D_REENTRANT_FOR_R_FUNCS=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
  ;;

  *-*-cygwin* | *-*-mingw32* )
    USE_UNIX=0
    USE_WIN32=1
    AC_DEFINE(__WIN32__)
    AC_DEFINE(__WIN95__)
    AC_DEFINE(__WINDOWS__)
    AC_DEFINE(__GNUWIN32__)
    AC_DEFINE(STRICT)
    AC_DEFINE(WINVER, 0x0400)
    PROGRAM_EXT=".exe"
    DEFAULT_DEFAULT_wxUSE_MSW=1
  ;;

  *-pc-os2_emx )
    AC_DEFINE(__EMX__)
    PROGRAM_EXT=".exe"
    DEFAULT_DEFAULT_wxUSE_PM=1
  ;;

  *-*-darwin* )
    USE_BSD=1
    USE_MAC=1
    AC_DEFINE(__MAC__)
    AC_DEFINE(__BSD__)
    AC_DEFINE(__UNIX__)
    DEFAULT_DEFAULT_wxUSE_MAC=1
  ;;

  *-*-beos* )
    dnl leave USE_UNIX on - BeOS is sufficiently Unix-like for this
    USE_BEOS=1
    AC_DEFINE(__BEOS__)
  ;;

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

if test "$USE_UNIX" = 1 ; then
    wxUSE_UNIX=yes
    AC_DEFINE(__UNIX__)

    SRC_SUBDIRS="$SRC_SUBDIRS unix"
    INCLUDE_SUBDIRS="$INCLUDE_SUBDIRS unix"
fi

if test "$USE_BEOS" = 1; then
    SRC_SUBDIRS="$SRC_SUBDIRS be"
    INCLUDE_SUBDIRS="$INCLUDE_SUBDIRS be"
fi

dnl Linux: test for libc5/glibc2: glibc2 has gettext() included
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_BURNT_NAME=no
  DEFAULT_wxUSE_OPTIMISE=yes
  DEFAULT_wxUSE_PROFILE=no
  DEFAULT_wxUSE_NO_DEPS=no
  DEFAULT_wxUSE_NO_RTTI=no
  DEFAULT_wxUSE_NO_EXCEPTIONS=no
  DEFAULT_wxUSE_PERMISSIVE=no
  DEFAULT_wxUSE_DEBUG_FLAG=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_FREETYPE=no
  DEFAULT_wxUSE_OPENGL=no

  DEFAULT_wxUSE_ON_FATAL_EXCEPTION=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_GEOMETRY=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_FILESYSTEM=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_TOGGLEBTN=no
  DEFAULT_wxUSE_TOOLBAR=no
  DEFAULT_wxUSE_TOOLBAR_NATIVE=no
  DEFAULT_wxUSE_TOOLBAR_SIMPLE=no
  DEFAULT_wxUSE_TREECTRL=no

  DEFAULT_wxUSE_UNICODE=no
  DEFAULT_wxUSE_WCSRTOMBS=no

  DEFAULT_wxUSE_IMAGE=no
  DEFAULT_wxUSE_GIF=no
  DEFAULT_wxUSE_PCX=no
  DEFAULT_wxUSE_PNM=no
  DEFAULT_wxUSE_XPM=no
else
  DEFAULT_wxUSE_THREADS=yes

  DEFAULT_wxUSE_SHARED=yes
  DEFAULT_wxUSE_BURNT_NAME=no
  DEFAULT_wxUSE_OPTIMISE=yes
  DEFAULT_wxUSE_PROFILE=no
  DEFAULT_wxUSE_NO_DEPS=no
  DEFAULT_wxUSE_NO_RTTI=no
  DEFAULT_wxUSE_NO_EXCEPTIONS=no
  DEFAULT_wxUSE_PERMISSIVE=no
  DEFAULT_wxUSE_DEBUG_FLAG=no
  DEFAULT_wxUSE_DEBUG_INFO=no
  DEFAULT_wxUSE_DEBUG_GDB=no
  DEFAULT_wxUSE_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=yes
  DEFAULT_wxUSE_ODBC=no
  DEFAULT_wxUSE_FREETYPE=no
  DEFAULT_wxUSE_OPENGL=no

  DEFAULT_wxUSE_ON_FATAL_EXCEPTION=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=yes
  DEFAULT_wxUSE_GEOMETRY=yes

  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_FILESYSTEM=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=yes
  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_TOGGLEBTN=yes
  DEFAULT_wxUSE_TOOLBAR=yes
  DEFAULT_wxUSE_TOOLBAR_NATIVE=yes
  DEFAULT_wxUSE_TOOLBAR_SIMPLE=yes
  DEFAULT_wxUSE_TREECTRL=yes

  DEFAULT_wxUSE_UNICODE=no
  DEFAULT_wxUSE_WCSRTOMBS=no

  DEFAULT_wxUSE_IMAGE=yes
  DEFAULT_wxUSE_GIF=yes
  DEFAULT_wxUSE_PCX=yes
  DEFAULT_wxUSE_PNM=yes
  DEFAULT_wxUSE_XPM=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)

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

AC_ARG_WITH(gtk,           [  --with-gtk              use GTK+], [wxUSE_GTK="$withval" CACHE_GTK=1 TOOLKIT_GIVEN=1])
AC_ARG_WITH(motif,         [  --with-motif            use Motif/Lesstif], [wxUSE_MOTIF="$withval" CACHE_MOTIF=1 TOOLKIT_GIVEN=1])
AC_ARG_WITH(mac,           [  --with-mac              use Mac OS X], [wxUSE_MAC="$withval" TOOLKIT_GIVEN=1])
AC_ARG_WITH(wine,          [  --with-wine             use WINE], [wxUSE_WINE="$withval" CACHE_WINE=1 TOOLKIT_GIVEN=1])
AC_ARG_WITH(cygwin,        [  --with-cygwin           use Cygwin for MS-Windows], [wxUSE_CYGWIN="$withval" CACHE_CYGWIN=1 TOOLKIT_GIVEN=1])
AC_ARG_WITH(mingw,         [  --with-mingw            use GCC Minimal MS-Windows], [wxUSE_MINGW="$withval" CACHE_MINGW=1 TOOLKIT_GIVEN=1])
AC_ARG_WITH(pm,            [  --with-pm               use OS/2 Presentation Manager], [wxUSE_PM="$withval" CACHE_PM=1 TOOLKIT_GIVEN=1])

AC_ARG_WITH(gtk-prefix,    [  --with-gtk-prefix=PFX   Prefix where GTK is installed],
            gtk_config_prefix="$withval", gtk_config_prefix="")
AC_ARG_WITH(gtk-exec-prefix, [  --with-gtk-exec-prefix=PFX  Exec prefix where GTK is installed],
            gtk_config_exec_prefix="$withval", gtk_config_exec_prefix="")

WX_ARG_SYS_WITH(libpng,    [  --with-libpng           use libpng (PNG image format)], wxUSE_LIBPNG)
WX_ARG_SYS_WITH(libjpeg,   [  --with-libjpeg          use libjpeg (JPEG file format)], wxUSE_LIBJPEG)
WX_ARG_SYS_WITH(libtiff,   [  --with-libtiff          use libtiff (TIFF file format)], wxUSE_LIBTIFF)
WX_ARG_SYS_WITH(freetype,  [  --with-freetype         use freetype (font rasterizer)], wxUSE_FREETYPE)
WX_ARG_WITH(opengl,        [  --with-opengl           use OpenGL (or Mesa)], wxUSE_OPENGL)

fi
dnl for GUI only

WX_ARG_WITH(dmalloc,       [  --with-dmalloc          use dmalloc library (www.letters.com/dmalloc)], wxUSE_DMALLOC)
WX_ARG_SYS_WITH(zlib,      [  --with-zlib             use zlib for LZW compression], wxUSE_ZLIB)
WX_ARG_WITH(odbc,          [  --with-odbc             use the IODBC and wxODBC classes], wxUSE_ODBC)

dnl ====================
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(burnt_name,  [  --enable-burnt_name     create set name in shared library ], wxUSE_BURNT_NAME)
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(ipc,           [  --enable-ipc            use interprocess communication (wxSocket etc.)], wxUSE_IPC)

WX_ARG_ENABLE(dialupman,     [  --enable-dialupman      use dialup network classes], wxUSE_DIALUP_MANAGER)
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(geometry,      [  --enable-geometry       use geometry class], wxUSE_GEOMETRY)
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(std_iostreams, [  --enable-std_iostreams  use standard C++ stream classes], wxUSE_STD_IOSTREAM)
WX_ARG_ENABLE(filesystem,    [  --enable-filesystem     use virtual file systems classes], wxUSE_FILESYSTEM)
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)

WX_ARG_ENABLE(catch_segvs,   [  --enable-catch_segvs    catch signals and pass them to wxApp::OnFatalException], wxUSE_ON_FATAL_EXCEPTION)

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)

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

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)
WX_ARG_ENABLE(metafile,    [  --enable-metafile       use win32 metafiles], wxUSE_METAFILE)

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=yes
  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_TOGGLEBTN=yes
  DEFAULT_wxUSE_TOOLBAR=yes
  DEFAULT_wxUSE_TOOLBAR_NATIVE=yes
  DEFAULT_wxUSE_TOOLBAR_SIMPLE=yes
  DEFAULT_wxUSE_TOOLTIPS=yes
  DEFAULT_wxUSE_TREECTRL=yes
elif test "$wxUSE_CONTROLS" = "no"; then
  DEFAULT_wxUSE_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_TOGGLEBTN=no
  DEFAULT_wxUSE_TOOLBAR=no
  DEFAULT_wxUSE_TOOLBAR_NATIVE=no
  DEFAULT_wxUSE_TOOLBAR_SIMPLE=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(togglebtn,   [  --enable-togglebtn      use wxToggleButton class], wxUSE_TOGGLEBTN)
WX_ARG_ENABLE(toolbar,     [  --enable-toolbar        use wxToolBar class], wxUSE_TOOLBAR)
WX_ARG_ENABLE(tbarnative,  [  --enable-tbarnative     use native wxToolBar class], wxUSE_TOOLBAR_NATIVE)
WX_ARG_ENABLE(tbarsmpl,    [  --enable-tbarsmpl       use wxToolBarSimple class], wxUSE_TOOLBAR_SIMPLE)
WX_ARG_ENABLE(treectrl,    [  --enable-treectrl       use wxTreeCtrl class], wxUSE_TREECTRL)

dnl ---------------------------------------------------------------------------
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)
WX_ARG_ENABLE(joystick,    [  --enable-joystick       compile in joystick support (Linux only)], wxUSE_JOYSTICK)

dnl ---------------------------------------------------------------------------
dnl support for image formats that do not rely on external library
dnl ---------------------------------------------------------------------------

WX_ARG_ENABLE(image,       [  --enable-image          use wxImage class], wxUSE_IMAGE)
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)
WX_ARG_ENABLE(pnm,         [  --enable-xpm            use xpm images (XPM file format)], wxUSE_XPM)

fi
dnl for GUI only

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 "$USE_BEOS" = 1; then
    AC_MSG_ERROR([BeOS GUI is not supported yet, use --disable-gui])
fi

if test "$TOOLKIT_GIVEN" = 1; then
  dnl convert "yes" to 1 and "no" to 0
  for toolkit in `echo $ALL_TOOLKITS`; do
    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_MAC:-0} + ${wxUSE_WINE:-0} + ${wxUSE_MINGW:-0} + ${wxUSE_CYGWIN:-0}`

dnl Allow wxUSE_PM only for OS/2 with EMX.
dnl Path separator; ':' for unix.
dnl Stem for flex output; lexyy for OS/2, lex.yy otherwise
dnl Extension for programs; '.exe' for OS/2 and msw builds (set later).
case "${host}" in
  *-pc-os2_emx )
    NUM_TOOLKITS=`expr ${NUM_TOOLKITS} + ${wxUSE_PM:-0}`
    # PATH_IFS is autodetected by OS/2's configure (usually ';')
    LEX_STEM="lexyy"
  ;;
  *)
    PATH_IFS=':'
    LEX_STEM="lex.yy"
  ;;
esac

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
    PATH_IFS=':'
    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 test "$build" != "$host" ; then
    CC=$host_alias-gcc
    CXX=$host_alias-c++
    AR=$host_alias-ar
    RANLIB=$host_alias-ranlib
    DLLTOOL=$host_alias-dlltool
    RESCOMP=$host_alias-windres
    LD=$host_alias-ld
    NM=$host_alias-nm
    STRIP=$host_alias-strip
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>&5 > /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  \
                              \
    X:/XFree86/include        \
    X:/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 ----------------------------------------------------------------

AFMINSTALL=

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

USE_GUI=1

TOOLKIT=
TOOLKIT_INCLUDE=

GUI_TK_LIBRARY=
GUI_TK_LINK=

WXGTK12=
WXGTK127=
WXGTK20=

WXWINE=

if test "$wxUSE_CYGWIN" = 1 || test "$wxUSE_MINGW" = 1 ; then
    if test "$cross_compiling" = "yes" ; then
        dnl mingw32 will find them even if they're not in one of standard paths
        AC_MSG_WARN(skipping windows.h check for cross-compilation)
    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 add extra odbc libs if we have compiled in odbc
    if test "$wxUSE_ODBC" = "yes" ; then
        LIBS="$LIBS -lodbc32 -lole32 -loleaut32"
    fi

    dnl -mwindows is needed to avoid that spawning of a console window
    if test "$wxUSE_MINGW" = 1; then
        LDFLAGS="$LDFLAGS -mwindows"
    fi

    TOOLKIT=MSW
    GUIDIST=MSW_DIST

    dnl we should calculate these
    RCINCSWITCH="--include-dir"
    RCDEFSWITCH="--define"
    RCPREPROCESSOR="--preprocessor \"\$(CC) -c -E -xc-header -DRC_INVOKED\""
    RCINPUTSWITCH="-i"
    RCOUTPUTSWITCH="-o"
    RESFLAGS="$RCPREPROCESSOR $RCINCSWITCH \$(top_srcdir)/include $RCINCSWITCH \$(top_srcdir)/\$(program_dir) $RCDEFSWITCH __WIN32__ $RCDEFSWITCH __WIN95__ $RCDEFSWITCH __GNUWIN32__"

    dnl set optinal RES_PROGRAM_OPT to RES_PROGRAM
    RESPROGRAM="\$(RES_PROGRAM)"

fi

if test "$wxUSE_GTK" = 1; then
    dnl avoid calling AM_PATH_GTK twice, so check first for the newer version
    dnl and only then, if it wasn't found, for an older one
    AM_PATH_GTK_2_0(1.3.1, WXGTK20=1,[
      AM_PATH_GTK(1.2.7, WXGTK127=1)
      AM_PATH_GTK(1.2.3, WXGTK12=1)
    ], gthread)

    if test "$WXGTK12" != 1 -a "$WXGTK20" != 1; then
        AC_MSG_ERROR([
            Please check that gtk-config is in path, the directory
            where GTK+ libraries are installed (returned by
            'gtk-config --libs' command) is in LD_LIBRARY_PATH or
            equivalent variable and GTK+ is version 1.2.3 or above.
        ])
    fi

    TOOLKIT_INCLUDE="$GTK_CFLAGS"

dnl Appending gthreads as it was done here is not portable, instead
dnl we now call "gtk-config --libs gthread" which sets the right library
dnl name for us. The following hacks are no longer required.

    GUI_TK_LIBRARY="$GTK_LIBS"

dnl dnl On FreeBSD, the libs are called gtk12 etc, so we must append gthread12
dnl    echo $GTK_LIBS | fgrep -q "glib12"
dnl    if test $? = 0  ; then
dnl       GUI_TK_LIBRARY="$GTK_LIBS -gthread12"
dnl    else
dnl       GUI_TK_LIBRARY="$GTK_LIBS -lgthread"
dnl    fi

    AFMINSTALL=afminstall
    TOOLKIT=GTK
    GUIDIST=GTK_DIST

    dnl test for XIM support in libgdk
    AC_CHECK_LIB(gdk, gdk_im_open, AC_DEFINE(HAVE_XIM))
fi

if test "$wxUSE_WINE" = 1; then
    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"
    GUI_TK_LIBRARY="$GUI_TK_LIBRARY $GUI_TK_LINK"
    WXWINE=1
    TOOLKIT=MSW
    GUIDIST=MSW_DIST
fi

dnl use standard macros to check for X headers/libs, this brings support
dnl for the standard configure options --x-includes and --x-libraries;
dnl the path to the X headers/libs is not only needed for motif, but also
dnl by the OpenGL and XKBlib.h checks further down

AC_PATH_XTRA
CPPFLAGS="$CPPFLAGS $X_CFLAGS"
LDFLAGS="$LDFLAGS $X_LIBS"

if test "$wxUSE_MOTIF" = 1; then
    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"

    AFMINSTALL=afminstall

    dnl manual check for X11 headers/libs
    dnl
    dnl    AC_MSG_CHECKING(for X11 headers)
    dnl    WX_PATH_FIND_INCLUDES($SEARCH_INCLUDE, X11/Intrinsic.h)
    dnl    if test "$ac_find_includes" != "" ; then
    dnl        AC_MSG_RESULT(found $ac_find_includes)
    dnl    else
    dnl        AC_MSG_RESULT(no)
    dnl        AC_MSG_ERROR(please set CFLAGS to contain the location of X11/Intrinsic.h)
    dnl    fi
    dnl
    dnl    AC_MSG_CHECKING(for X11 libraries)
    dnl    WX_PATH_FIND_LIBRARIES($SEARCH_LIB, X11)
    dnl    if test "$ac_find_libraries" != "" ; then
    dnl        WX_INCLUDE_PATH_EXIST($ac_find_includes, $TOOLKIT_INCLUDE)
    dnl        WX_LINK_PATH_EXIST($ac_find_libraries, $GUI_TK_LIBRARY)
    dnl
    dnl        GUI_TK_LIBRARY="$GUI_TK_LIBRARY $ac_path_to_link"
    dnl        TOOLKIT_INCLUDE="$TOOLKIT_INCLUDE $ac_path_to_include"
    dnl        AC_MSG_RESULT(found at $ac_find_libraries)
    dnl    else
    dnl        AC_MSG_RESULT(no)
    dnl        AC_MSG_ERROR(please set LDFLAGS to contain the location of libX11)
    dnl    fi

    COMPILED_X_PROGRAM=0

    AC_MSG_CHECKING(for Motif/Lesstif headers)
    WX_PATH_FIND_INCLUDES($SEARCH_INCLUDE, Xm/Xm.h)
    if test "$ac_find_includes" != "" ; then
        AC_MSG_RESULT(found $ac_find_includes)
    else
        AC_TRY_COMPILE(
            [
                #include <Xm/Xm.h>
            ],
            [
                int version;

                version = xmUseVersion;
            ],
            [
                AC_MSG_RESULT(found in default search path)
                COMPILED_X_PROGRAM=1
            ],
            [
                AC_MSG_RESULT(no)
                AC_MSG_ERROR(please set CFLAGS to contain the location of Xm/Xm.h)
            ]
        )
    fi

    if test "$COMPILED_X_PROGRAM" = 0; then
        AC_MSG_CHECKING(for Motif/Lesstif library)
        WX_PATH_FIND_LIBRARIES($SEARCH_LIB, Xm)
        if test "$ac_find_libraries" != "" ; then
            WX_INCLUDE_PATH_EXIST($ac_find_includes, $TOOLKIT_INCLUDE)
            WX_LINK_PATH_EXIST($ac_find_libraries, $GUI_TK_LIBRARY)

            GUI_TK_LIBRARY="$GUI_TK_LIBRARY $ac_path_to_link"
            TOOLKIT_INCLUDE="$TOOLKIT_INCLUDE $ac_path_to_include"
            AC_MSG_RESULT(found at $ac_find_libraries)
        else
            dnl it might happen that we found headers in one of the standard
            dnl paths but the libs are elsewhere - we do need to try to
            dnl compile a sample program then here
            AC_TRY_COMPILE(
                [
                    #include <Xm/Xm.h>
                ],
                [
                    int version;

                    version = xmUseVersion;
                ],
                [
                    AC_MSG_RESULT(found in default search path)
                    COMPILED_X_PROGRAM=1
                ],
                [
                    AC_MSG_RESULT(no)
                    AC_MSG_ERROR(please set LDFLAGS to contain the location of libXm)
                ]
            )
        fi
    fi

    dnl we don't need this as we used AC_PATH_XTRA above which does it for us
    dnl
    dnl dnl if we already compiled a sample program, X libs are surely there
    dnl if test "$COMPILED_X_PROGRAM" = 0; then
    dnl     AC_MSG_CHECKING(for Xt library)
    dnl     WX_PATH_FIND_LIBRARIES($SEARCH_LIB,Xt)
    dnl     if test "$ac_find_libraries" != "" ; then
    dnl         WX_LINK_PATH_EXIST($ac_find_libraries,$GUI_TK_LIBRARY)
    dnl         GUI_TK_LIBRARY="$GUI_TK_LIBRARY $ac_path_to_link"
    dnl         AC_MSG_RESULT(found at $ac_find_libraries)
    dnl     else
    dnl         AC_TRY_COMPILE
    dnl         (
    dnl             [
    dnl                 #include <X11/Intrinsic.h>
    dnl             ],
    dnl             [
    dnl                 char *p;
    dnl                 p = XtMalloc(5);
    dnl             ],
    dnl             [
    dnl                 AC_MSG_RESULT(found in default search path)
    dnl                 COMPILED_X_PROGRAM=1
    dnl             ],
    dnl             [
    dnl                 AC_MSG_RESULT(no)
    dnl                 AC_MSG_ERROR(please set LDFLAGS to contain the location of libXt)
    dnl             ]
    dnl         )
    dnl     fi
    dnl fi

    XPM_LINK=""
    AC_MSG_CHECKING(for Xpm library)
    WX_PATH_FIND_LIBRARIES($SEARCH_LIB,Xpm)
    if test "$ac_find_libraries" != "" ; then
        WX_LINK_PATH_EXIST($ac_find_libraries,$GUI_TK_LIBRARY)
        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_TRY_COMPILE(
            [
                #include <X11/xpm.h>
            ],
            [
                int version;

                version = XpmLibraryVersion();
            ],
            [
            XPM_LINK="-lXpm "
            AC_DEFINE(wxHAVE_LIB_XPM)
                AC_MSG_RESULT(found in default search path)
                COMPILED_X_PROGRAM=0
            ],
            [
                AC_MSG_RESULT(no)
                AC_MSG_WARN(library will be compiled without support for images in XPM format)
            ]
        )
    fi

    GUI_TK_LINK="-lXm $XPM_LINK -lXmu -lXext -lXt -lX11"
    GUI_TK_LIBRARY="$GUI_TK_LIBRARY $GUI_TK_LINK"
    TOOLKIT=MOTIF
    GUIDIST=MOTIF_DIST
fi

if test "$wxUSE_MAC" = 1; then
    TOOLKIT=MAC
    dnl we can't call this MAC_DIST or autoconf thinks its a macro
    GUIDIST=MACX_DIST
fi

if test "$wxUSE_PM" = 1; then
    TOOLKIT=PM
    GUIDIST=GTK_DIST
fi

dnl the name of the directory where the files for this toolkit live
if test "$TOOLKIT" != "PM" ; then
    TOOLKIT_DIR=`echo ${TOOLKIT} | tr "[[A-Z]]" "[[a-z]]"`
else
    TOOLKIT_DIR="os2"
fi

    dnl the (base) name of the library and support files for this toolkit
    if test "$wxUSE_DEBUG_FLAG" = "yes"; then
        TOOLKIT_NAME="${TOOLKIT_DIR}d"
    else
        TOOLKIT_NAME="${TOOLKIT_DIR}"
    fi

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

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

    dnl the sources, their dependenices and the headers
    ALL_OBJECTS="\$(GUIOBJS) \$(COMMONOBJS) \$(GENERICOBJS) \$(UNIXOBJS) \$(HTMLOBJS) \$(OGLOBJS)"

    dnl ODBC objects are Unix only
    if test "$TOOLKIT" != "MSW" -a "$wxUSE_ODBC" = "yes" ; then
        ALL_OBJECTS="${ALL_OBJECTS} \$(IODBCOBJS)"
    fi

    if test "$wxUSE_LIBJPEG" = "yes" ; then
        ALL_OBJECTS="${ALL_OBJECTS} \$(JPEGOBJS)"
    fi
    if test "$wxUSE_LIBTIFF" = "yes" ; then
        ALL_OBJECTS="${ALL_OBJECTS} \$(TIFFOBJS)"
    fi
    if test "$wxUSE_LIBPNG" = "yes" ; then
        ALL_OBJECTS="${ALL_OBJECTS} \$(PNGOBJS)"
    fi
    if test "$wxUSE_ZLIB" = "yes" ; then
        ALL_OBJECTS="${ALL_OBJECTS} \$(ZLIBOBJS)"
    fi
    if test "$wxUSE_FREETYPE" = "yes" ; then
        ALL_OBJECTS="${ALL_OBJECTS} \$(FREETYPEOBJS)"
    fi
    ALL_DEPFILES="\$(GUIDEPS) \$(COMMONDEPS) \$(GENERICDEPS) \$(UNIXDEPS) \$(HTMLDEPS) \$(OGLDEPS)"

    PORT_FILES="src/\$(TOOLKITDIR)/files.lst"
    RPM_FILES="src/\$(TOOLKITDIR)/rpmfiles.lst"
    RPM_SPEC="wx\$(TOOLKIT).spec"

    dnl distribute samples/demos/utils with GUI versions
    GUIDIST="${GUIDIST} SAMPLES_DIST DEMOS_DIST UTILS_DIST MISC_DIST"
    DISTDIR="wx\$(TOOLKIT)"
else
    USE_GUI=0

    dnl this may be (almost) unneccesary for wxBase now we use TOOLKIT_NAME
    TOOLKIT_DIR="base"

    dnl the base name of the library and wxXXX-config files
    if test "$wxUSE_DEBUG_FLAG" = "yes"; then
        TOOLKIT_NAME="${TOOLKIT_DIR}d"
    else
        TOOLKIT_NAME="${TOOLKIT_DIR}"
    fi

    TOOLKIT_DEF="-D__WXBASE__"

    dnl the sources, their dependenices and the headers
    ALL_OBJECTS="\$(BASE_OBJS) \$(BASE_UNIX_OBJS)"
    ALL_DEPFILES="\$(BASE_DEPS) \$(BASE_UNIX_DEPS)"

    if test "$wxUSE_ZLIB" = "yes" ; then
        ALL_OBJECTS="${ALL_OBJECTS} \$(ZLIBOBJS)"
    fi

    dnl building wxBase only
    WX_LIBRARY="wx_${TOOLKIT_NAME}"

    PORT_FILES="src/files.lst"
    RPM_FILES="src/rpmfiles.lst"
    RPM_SPEC="wxBase.spec"

    dnl distribute only wxBase sources/headers
    GUIDIST="BASE_DIST"
    DISTDIR="wxBase"
fi

dnl the name of the (libtool) library
WX_LIBRARY_NAME="lib${WX_LIBRARY}.la"
WX_LIBRARY_NAME_GL="lib${WX_LIBRARY}_gl.la"

dnl the name of the static library
WX_LIBRARY_NAME_STATIC="lib${WX_LIBRARY}.a"
WX_LIBRARY_NAME_STATIC_GL="lib${WX_LIBRARY}_gl.a"

dnl the name of the shared library
WX_LIBRARY_NAME_SHARED="lib${WX_LIBRARY}-${WX_RELEASE}.so.${WX_CURRENT}.${WX_REVISION}.${WX_AGE}"
WX_LIBRARY_NAME_SHARED_GL="lib${WX_LIBRARY}_gl-${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"
WX_LIBRARY_LINK1_GL="lib${WX_LIBRARY}_gl-${WX_RELEASE}.so.${WX_CURRENT}"
WX_LIBRARY_LINK2_GL="lib${WX_LIBRARY}_gl-${WX_RELEASE}.so"
WX_LIBRARY_LINK3_GL="lib${WX_LIBRARY}_gl.so"

dnl shared library settings
SHARED_LD=
PIC_FLAG=
WX_ALL=
WX_ALL_INSTALLED=
BURNT_LIBRARY_NAME=
WX_TARGET_LIBRARY_SONAME=

dnl --- the marker for quick search, leave it here: SHARED_LIB_SETUP ---

if test "$wxUSE_SHARED" = "yes"; then
    case "${host}" in
      *-hp-hpux* )
        if test "$GCC" = yes ; then
            SHARED_LD="${CC} -shared -fPIC -o"
            PIC_FLAG="-fPIC"
        else
            dnl no idea why it wants it, but it does
            LDFLAGS="-L/usr/lib"

            SHARED_LD="${CXX} -b -o"
            PIC_FLAG="+Z"
        fi
        WX_LIBRARY_NAME_SHARED="libwx_${TOOLKIT_NAME}.sl"
        WX_LIBRARY_NAME_SHARED_GL="libwx_${TOOLKIT_NAME}_gl.sl"
        if test "$wxUSE_OPENGL" = "yes"; then
            WX_ALL_INSTALLED="preinstall_gl"
            WX_ALL="${WX_LIBRARY_NAME_SHARED} ${WX_LIBRARY_NAME_SHARED_GL}"
        else
            WX_ALL="${WX_LIBRARY_NAME_SHARED}"
        fi
      ;;

      dnl in fact, these settings are for any platform using gcc
      *-*-linux* )
        SHARED_LD="${CC} -shared -o"
        PIC_FLAG="-fPIC"
        if test "$wxUSE_BURNT_NAME" = "yes" ; then
            BURNT_LIBRARY_NAME="-Wl,-soname,${WX_LIBRARY_LINK1}"
            BURNT_LIBRARY_NAME_GL="-Wl,-soname,${WX_LIBRARY_LINK1_GL}"
            dnl substitute this in makelib.env for the contrib libs
            WX_TARGET_LIBRARY_SONAME="-Wl,-soname,\$(TARGETLIB_LINK1)"
        fi
        if test "$wxUSE_OPENGL" = "yes"; then
            WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS CREATE_INSTALLED_LINKS_GL"
            WX_ALL="CREATE_LINKS CREATE_LINKS_GL"
        else
            WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS"
            WX_ALL="CREATE_LINKS"
        fi
      ;;
      *-*-irix5* | *-*-irix6* )
        if test "$GCC" = yes ; then
           SHARED_LD="${CC} -shared -o"
           PIC_FLAG="-fPIC"
        else
           SHARED_LD="${CXX} -shared -o"
        fi
        if test "$wxUSE_OPENGL" = "yes"; then
            WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS CREATE_INSTALLED_LINKS_GL"
            WX_ALL="CREATE_LINKS CREATE_LINKS_GL"
        else
            WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS"
            WX_ALL="CREATE_LINKS"
        fi
      ;;
      *-*-solaris2* )
        if test "$GCC" = yes ; then
            SHARED_LD="${CC} -shared -o"
            PIC_FLAG="-fPIC"

            dnl newer versions of gcc need -isystem to compile X headers on
            dnl Solaris (which use old style C syntax)
            CPPFLAGS="$CPPFLAGS -isystem /usr/openwin/include"
        else
            SHARED_LD="${CXX} -G -o"
            PIC_FLAG="-KPIC"
        fi
        if test "$wxUSE_OPENGL" = "yes"; then
            WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS CREATE_INSTALLED_LINKS_GL"
            WX_ALL="CREATE_LINKS CREATE_LINKS_GL"
        else
            WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS"
            WX_ALL="CREATE_LINKS"
        fi
      ;;
      *-*-sunos4* )
        SHARED_LD="${CC} -shared -o"
        PIC_FLAG="-fPIC"
        WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS"
        WX_ALL="CREATE_LINKS"
      ;;
      *-*-freebsd* | *-*-openbsd* | *-*-netbsd* )
        SHARED_LD="${CC} -shared -o"
        PIC_FLAG="-fPIC"
        if test "$wxUSE_OPENGL" = "yes"; then
            WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS CREATE_INSTALLED_LINKS_GL"
            WX_ALL="CREATE_LINKS CREATE_LINKS_GL"
        else
            WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS"
            WX_ALL="CREATE_LINKS"
        fi
      ;;
      *-*-darwin* )
        SHARED_LD="${CXX} -dynamiclib -o"
        PIC_FLAG="-dynamic -fPIC"
        if test "$wxUSE_OPENGL" = "yes"; then
            WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS CREATE_INSTALLED_LINKS_GL"
            WX_ALL="CREATE_LINKS CREATE_LINKS_GL"
        else
            WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS"
            WX_ALL="CREATE_LINKS"
        fi
	dnl add the resources target
	WX_ALL="${WX_ALL} ./lib/lib${WX_LIBRARY}-${WX_RELEASE}.${WX_CURRENT}.r"
	dnl the name of the shared library
	WX_LIBRARY_NAME_SHARED="lib${WX_LIBRARY}-${WX_RELEASE}.${WX_CURRENT}.${WX_REVISION}.${WX_AGE}.dylib"
	WX_LIBRARY_NAME_SHARED_GL="lib${WX_LIBRARY}_gl-${WX_RELEASE}.${WX_CURRENT}.${WX_REVISION}.${WX_AGE}.dylib"
	dnl the name of the links to the shared library
	WX_LIBRARY_LINK1="lib${WX_LIBRARY}-${WX_RELEASE}.${WX_CURRENT}.dylib"
	WX_LIBRARY_LINK2="lib${WX_LIBRARY}-${WX_RELEASE}.dylib"
	WX_LIBRARY_LINK3="lib${WX_LIBRARY}.dylib"
	WX_LIBRARY_LINK1_GL="lib${WX_LIBRARY}_gl-${WX_RELEASE}.${WX_CURRENT}.dylib"
	WX_LIBRARY_LINK2_GL="lib${WX_LIBRARY}_gl-${WX_RELEASE}.dylib"
	WX_LIBRARY_LINK3_GL="lib${WX_LIBRARY}_gl.dylib"
      ;;
      *-*-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}
      ;;
      *-*-cygwin* )
        dnl only static for now
        WX_TARGET_LIBRARY="${WX_LIBRARY_NAME_STATIC}"
        WX_TARGET_LIBRARY_GL="${WX_LIBRARY_NAME_STATIC_GL}"
        if test "$wxUSE_OPENGL" = "yes"; then
            WX_ALL_INSTALLED="preinstall_gl"
            WX_ALL="${WX_LIBRARY_NAME_STATIC} ${WX_LIBRARY_NAME_STATIC_GL}"
        else
            WX_ALL="${WX_LIBRARY_NAME_STATIC}"
        fi
      ;;
      *-*-mingw32* )
        dnl only static for now
        WX_TARGET_LIBRARY="${WX_LIBRARY_NAME_STATIC}"
        WX_TARGET_LIBRARY_GL="${WX_LIBRARY_NAME_STATIC_GL}"
        if test "$wxUSE_OPENGL" = "yes"; then
            WX_ALL_INSTALLED="preinstall_gl"
            WX_ALL="${WX_LIBRARY_NAME_STATIC} ${WX_LIBRARY_NAME_STATIC_GL}"
        else
            WX_ALL="${WX_LIBRARY_NAME_STATIC}"
        fi
      ;;
      *-pc-os2_emx )
        dnl only static for now
        WX_TARGET_LIBRARY="${WX_LIBRARY_NAME_STATIC}"
        WX_ALL="${WX_LIBRARY_NAME_STATIC}"
      ;;
      *-*-beos* )
        dnl can't use gcc under BeOS for shared library creation because it
        dnl complains about missing 'main'
        SHARED_LD="${LD} -shared -o"
        PIC_FLAG="-fPIC"
        WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS"
        WX_ALL="CREATE_LINKS"
      ;;
      *)
        AC_MSG_ERROR(unknown system type ${host}.)
    esac

    dnl set target to shared if not explicitly chose static before
    if test "x$WX_TARGET_LIBRARY" = "x"; then
        WX_TARGET_LIBRARY="${WX_LIBRARY_NAME_SHARED}"
        WX_TARGET_LIBRARY_GL="${WX_LIBRARY_NAME_SHARED_GL}"
    fi
    dnl do not alter the LIBRARY_TYPE strings "so" and "a", they are magic
    WX_TARGET_LIBRARY_TYPE="so"
else
    dnl set target to static
    WX_TARGET_LIBRARY="${WX_LIBRARY_NAME_STATIC}"
    WX_TARGET_LIBRARY_GL="${WX_LIBRARY_NAME_STATIC_GL}"

    if test "$wxUSE_OPENGL" = "yes"; then
        WX_ALL_INSTALLED="preinstall_gl"
        WX_ALL="${WX_LIBRARY_NAME_STATIC} ${WX_LIBRARY_NAME_STATIC_GL}"
    else
        WX_ALL="${WX_LIBRARY_NAME_STATIC}"
    fi

    dnl give static wxBase build a working install target
    if test "$wxUSE_GUI" = "no"; then
        dnl we're here because WX_ALL_INSTALLED is empty, but play safe anyway
        WX_ALL_INSTALLED="${WX_ALL_INSTALLED} preinstall"
    fi

    WX_TARGET_LIBRARY_TYPE="a"
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_FCNTL_H
AC_CHECK_HEADERS(fcntl.h)
dnl defines HAVE_WCHAR_H
AC_CHECK_HEADERS(wchar.h)
dnl defines HAVE_WCSTR_H
AC_CHECK_HEADERS(wcstr.h)
dnl defines HAVE_FNMATCH_H
AC_CHECK_HEADERS(fnmatch.h)
dnl defines HAVE_ICONV_H (Unix98 encoding conversion routines)
AC_CHECK_HEADERS(iconv.h)
dnl defines HAVE_LANGINFO_H (GNU libc locale parameters)
AC_CHECK_HEADERS(langinfo.h)

if test "$wxUSE_GUI" = "yes"; then
    if test "$wxUSE_UNIX" = "yes"; then
        dnl defines HAVE_X11_XKBLIB_H
        AC_CHECK_HEADERS(X11/XKBlib.h)
    fi
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   check for wchar_t
AC_CACHE_CHECK([for wchar_t], wx_cv_type_wchar_t,
[
    AC_TRY_COMPILE([#include <wchar.h>],
        [
	    wchar_t wc, *ws;
	    wc = L'a';
	    ws = L"Hello, world!";
        ],
	wx_cv_type_wchar_t=yes,
	wx_cv_type_wchar_t=no)
])
if test "$wx_cv_type_wchar_t" = yes ; then
    AC_DEFINE(wxUSE_WCHAR_T)
fi

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

dnl does passwd struct has the pw_gecos field?
AC_CACHE_CHECK([for pw_gecos in struct passwd], wx_cv_struct_pw_gecos,
    [
        AC_TRY_COMPILE([#include <pwd.h>],
             [
                char *p;
                struct passwd *pw;
                p = pw->pw_gecos;
             ],
             [
                wx_cv_struct_pw_gecos=yes
             ],
             [
                wx_cv_struct_pw_gecos=no
             ]
        )
    ]
)

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

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 we have to do it ourselves because SGI/Irix's stdio.h does not include
dnl wchar_t an AC_CHECK_SIZEOF only includes stdio.h
AC_CACHE_CHECK([size of wchar_t], wx_cv_sizeof_wchar_t,
[
    AC_TRY_RUN(
        [
	    #include <wchar.h>
	    #include <stdio.h>
	    int main()
	    {
            FILE *f=fopen("conftestval", "w");
            if (!f) exit(1);
	    fprintf(f, "%i", sizeof(wchar_t));
	    exit(0);
	    }
        ],
	wx_cv_sizeof_wchar_t=`cat conftestval`,
	wx_cv_sizeof_wchar_t=0,
	wx_cv_sizeof_wchar_t=4
	)
])

AC_DEFINE_UNQUOTED(SIZEOF_WCHAR_T, $wx_cv_sizeof_wchar_t)


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 vsscanf() and vsnprintf() - on some platforms (Linux, glibc
dnl 2.1.1 for the first one, HP-UX for the second) it's available in the
dnl library but the prototype is missing, so we can't use AC_CHECK_FUNCS here,
dnl do it manually

dnl we use AC_TRY_COMPILE() here instead of AC_TRY_RUN() to make the checks
dnl work for cross-compilation, but AC_TRY_COMPILE() normally only compiles
dnl one function while we need at least 2 - hence the ugly hack below. To
dnl understand why it works, remember that AC_TRY_COMPILE() just prepends
dnl "int main() {" in the beginning of the code and "; return 0; }" at the
dnl end...

dnl if we fail to find vsnprintf, also try for _vsnprintf as that is what
dnl we'll find under MSW if it exists.

dnl final note: AC_TRY_COMPILE will only be executed if there is nothing in
dnl the cache so we have to do AC_DEFINE(HAVE_VSNPRINTF) below and not inside
dnl it or the symbol wouldn't be defined for the 2nd and subsequent configure
dnl runs

dnl check for vsnprintf() - a safe version of vsprintf()
AC_CACHE_CHECK([for vsnprintf], wx_cv_func_vsnprintf,
[
  AC_TRY_COMPILE([
                    #include <stdio.h>
                    #include <stdarg.h>
                 ], [
                    int wx_test_vsnprintf(const char *, ...);

                    wx_test_vsnprintf("%s");
                    return 0;
                 }

                 int wx_test_vsnprintf(const char *fmt, ...)
                 {
                    char *s;

                    va_list argp;
                    va_start(argp, fmt);
                    vsnprintf(s, 42, fmt, argp);
                    va_end(argp);
                 ], [
                    wx_cv_func_vsnprintf=yes
                 ], [
                    AC_TRY_COMPILE([
                                      #include <stdio.h>
                                      #include <stdarg.h>
                                   ], [
                                      int wx_test_vsnprintf(const char *, ...);

                                      wx_test_vsnprintf("%s");
                                      return 0;
                                   }

                                   int wx_test_vsnprintf(const char *fmt, ...)
                                   {
                                      char *s;

                                      va_list argp;
                                      va_start(argp, fmt);
                                      _vsnprintf(s, 42, fmt, argp);
                                      va_end(argp);
                                   ], [
                                      wx_cv_func_vsnprintf=yes
                                   ], [
                                      wx_cv_func_vsnprintf=no
                                   ])
                 ])
])

if test "$wx_cv_func_vsnprintf" = yes; then
    AC_DEFINE(HAVE_VSNPRINTF)
else
    AC_MSG_WARN(unsafe function sprintf will be used instead of snprintf)
fi

dnl check for vsscanf()
AC_CACHE_CHECK([for vsscanf], wx_cv_func_vsscanf,
[
  AC_TRY_COMPILE([
                    #include <stdio.h>
                    #include <stdarg.h>
                ], [
                    int wx_test_vsscanf(const char *, ...);

                    wx_test_vsscanf("%d");
                    return 0;
                }

                int wx_test_vsscanf(const char *fmt, ...)
                {
                    va_list argp;
                    va_start(argp, fmt);
                    vsscanf("42", fmt, argp);
                    va_end(argp);
                ], [
                    wx_cv_func_vsscanf=yes
                ], [
                    wx_cv_func_vsscanf=no
                ])
])

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

AC_LANG_RESTORE

dnl the following tests are for Unix(like) systems only
if test "$TOOLKIT" != "MSW"; then

dnl check for available version of iconv()

AC_LANG_SAVE
AC_LANG_CPLUSPLUS
AC_CACHE_CHECK([if iconv() takes char**], wx_cv_iconv_takes_char,
[
    AC_TRY_COMPILE([#include <iconv.h>],
    [
        char **inbuf, **outbuf;
	iconv_t cd;
	size_t insz, outsz;
	iconv(cd, inbuf, &insz, outbuf, &outsz);
    ],
    wx_cv_iconv_takes_char=yes,
    wx_cv_iconv_takes_char=no)
])
AC_LANG_RESTORE
if test "$wx_cv_iconv_takes_char" = yes ; then
    AC_DEFINE(WX_ICONV_TAKES_CHAR)
fi


dnl check for POSIX signals if we need them
if test "$wxUSE_ON_FATAL_EXCEPTION" = "yes" -a "$wxUSE_UNIX" = "yes"; then
    AC_CHECK_FUNCS(sigaction)

    if test "$ac_cv_func_sigaction" = "no"; then
        AC_MSG_WARN([No POSIX signal functions on this system, wxApp::OnFatalException will not be called])
        wxUSE_ON_FATAL_EXCEPTION=no
    fi

    if test "$wxUSE_ON_FATAL_EXCEPTION" = "yes"; then
      AC_LANG_SAVE
      AC_LANG_CPLUSPLUS

      AC_CACHE_CHECK([for sa_handler type], wx_cv_type_sa_handler,
      [
        AC_TRY_COMPILE([#include <signal.h>],
                     [
                        extern void testSigHandler(int);

                        struct sigaction sa;
                        sa.sa_handler = testSigHandler;
                     ], [
                        wx_cv_type_sa_handler=int
                     ], [
                        wx_cv_type_sa_handler=void
                     ])
      ])

      AC_LANG_RESTORE

      AC_DEFINE_UNQUOTED(wxTYPE_SA_HANDLER, $wx_cv_type_sa_handler)
    fi
fi

dnl check for vfork() (even if it's the same as fork() in modern Unices)
AC_CHECK_FUNCS(vfork)

dnl check for timegm() used by datetime.cpp
AC_CHECK_FUNCS(timegm)

dnl look for a functiopn to modify the environment
AC_CHECK_FUNCS(putenv setenv, break)

HAVE_SOME_SLEEP_FUNC=0
if test "$USE_BEOS" = 1; then
    dnl BeOS has its own (wonder where did they get it from) sleep() function
    dnl in unistd.h
    AC_DEFINE(HAVE_SLEEP)
    HAVE_SOME_SLEEP_FUNC=1
fi

if test "$USE_MAC" = 1; then
    dnl Mac OS X has both nanosleep and usleep
    dnl but only usleep is defined in unistd.h
    AC_DEFINE(HAVE_USLEEP)
    HAVE_SOME_SLEEP_FUNC=1
fi

if test "$HAVE_SOME_SLEEP_FUNC" != 1; then
    dnl try nanosleep() in libc and libposix4, if this fails - usleep()
    POSIX4_LINK=
    AC_CHECK_FUNCS(nanosleep,
        AC_DEFINE(HAVE_NANOSLEEP),
        [
            AC_CHECK_LIB(posix4, nanosleep,
                [
                    AC_DEFINE(HAVE_NANOSLEEP)
                    POSIX4_LINK="-lposix4"
                ],
                [
                    AC_CHECK_FUNCS(usleep,
        		AC_DEFINE(HAVE_USLEEP),
		    )
                    AC_MSG_WARN([wxSleep() function will not work])
                ]
            )
        ]
    )
fi

dnl check for uname (POSIX) and gethostname (BSD)
AC_CHECK_FUNCS(uname gethostname, break)

dnl check for MT-safe version of strtok (on DEC Alpha, it's ok for C compiler
dnl but not for C++ one - hence change language)
AC_LANG_SAVE
AC_LANG_CPLUSPLUS

AC_CHECK_FUNCS(strtok_r)

AC_LANG_RESTORE

dnl check for inet_addr and inet_aton (these may live either in libc, or in
dnl libnsl or libresolv)
INET_LINK=
AC_CHECK_FUNCS(inet_addr,
    AC_DEFINE(HAVE_INET_ADDR),
    [
        AC_CHECK_LIB(nsl, inet_addr,
            INET_LINK="nsl",
            AC_CHECK_LIB(resolv, inet_addr,
                INET_LINK="resolv"
            )
        )
    ]
)

AC_CHECK_FUNCS(inet_aton,
        AC_DEFINE(HAVE_INET_ATON),
        [
            dnl only check it in the same lib
            AC_CHECK_LIB($INET_LINK, inet_aton, AC_DEFINE(HAVE_INET_ATON))
        ])

if test "x$INET_LINK" != "x"; then
    AC_DEFINE(HAVE_INET_ADDR)
    INET_LINK="-l$INET_LINK"
fi

fi
dnl if !MSW

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

dnl flush the cache
AC_CACHE_SAVE

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

dnl under MSW we always have thread support
if test "$TOOLKIT" != "MSW"; then

dnl the code below:
dnl   defines THREADS_OBJ which contains the object files to build
dnl   defines THREADS_LINK which contains the thread library to link with
dnl   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"
    elif test "$USE_BEOS" = 1; then
        AC_MSG_WARN([BeOS threads are not yet supported])
        wxUSE_THREADS="no"
    fi
fi

if test "$wxUSE_THREADS" = "yes" ; then
    dnl find if POSIX threads are available

    dnl AIX calls the library libpthreads - thanks IBM!
    if test "$USE_AIX" = 1; then
        THREADS_LIB=pthreads
    elif test "$USE_MAC" = 1; then
        THREADS_LIB=cc_dynamic
    else
        THREADS_LIB=pthread
    fi

    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($THREADS_LIB, pthread_create, [
            THREADS_OBJ="threadpsx.lo"
            THREADS_LINK=$THREADS_LIB
        ], [
            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 thread functions are in libcc_dynamic under Mac OS X/Darwin
                AC_CHECK_LIB(cc_dynamic, pthread_create, [
                    THREADS_OBJ="threadpsx.lo"
                    THREADS_LINK="cc_dynamic"
                ], [
                    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
  AC_CHECK_FUNCS(thr_setconcurrency)

  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 to be able to set the thread priority, we need to have all of the
  dnl following functions:
  dnl   1. pthread_attr_getschedpolicy
  dnl   2. sched_get_priority_min and sched_get_priority_max
  dnl      (this one can be in either libpthread or libposix4 (under Solaris))
  dnl   3. pthread_attr_getschedparam and pthread_attr_setschedparam
  HAVE_PRIOR_FUNCS=0
  AC_CHECK_LIB($THREADS_LINK, pthread_attr_getschedpolicy,
                 AC_CHECK_LIB($THREADS_LINK, pthread_attr_setschedparam,
                   AC_CHECK_LIB($THREADS_LINK, sched_get_priority_max,
                       HAVE_PRIOR_FUNCS=1,
                       AC_CHECK_LIB("posix4", sched_get_priority_max,
                         [
                            HAVE_PRIOR_FUNCS=1
                            POSIX4_LINK="-lposix4"
                         ],
                       )
                   )
                 )
               )

  if test "$HAVE_PRIOR_FUNCS" = 1; then
    AC_DEFINE(HAVE_THREAD_PRIORITY_FUNCTIONS)
  else
    AC_MSG_WARN(Setting thread priority will not work)
  fi

  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
                 ], [
                    wx_cv_func_pthread_cleanup_push=no
                 ])
  ])

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

  dnl mutexattr_t initialization is done in quite different ways on different
  dnl platforms, so check for a few things:
  dnl
  dnl HAVE_MUTEX_RECURSIVE means that we can create recursive mutexes
  dnl HAVE_MUTEXATTR_SETTYPE means that we do it using
  dnl pthread_mutexattr_settype(PTHREAD_MUTEX_RECURSIVE) and if it is not
  dnl defined, we do it by directly assigned
  dnl PTHREAD_MUTEX_RECURSIVE_MUTEX_INITIALIZER_NP to attr

  AC_CACHE_CHECK([for pthread_mutexattr_t], wx_cv_type_pthread_mutexattr_t,
  [
    AC_TRY_COMPILE([#include <pthread.h>],
        [
           pthread_mutexattr_t attr;
           pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
        ], [
           wx_cv_type_pthread_mutexattr_t=yes
        ], [
           wx_cv_type_pthread_mutexattr_t=no
        ]
    )
  ])

  if test "$wx_cv_type_pthread_mutexattr_t" = "yes"; then
    AC_DEFINE(HAVE_PTHREAD_MUTEXATTR_T)
  else
    dnl don't despair, there may be another way to do it
    AC_CACHE_CHECK([for PTHREAD_RECURSIVE_MUTEX_INITIALIZER],
                   wx_cv_type_pthread_rec_mutex_init,
    [
        AC_TRY_COMPILE([#include <pthread.h>],
            [
                pthread_mutex_t attr = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP;
            ], [
                wx_cv_type_pthread_rec_mutex_init=yes
            ], [
                wx_cv_type_pthread_rec_mutex_init=no
            ]
        )
    ])
    if test "$wx_cv_type_pthread_rec_mutex_init"="yes"; then
      AC_DEFINE(HAVE_PTHREAD_RECURSIVE_MUTEX_INITIALIZER)
    else
      dnl this may break code working elsewhere, so at least warn about it
      AC_MSG_WARN([wxMutex won't be recursive on this platform])
    fi
  fi

  THREADS_LINK="-l$THREADS_LINK"

  dnl building MT programs under Solaris with the native compiler requires -mt
  dnl switch
  if test "$USE_SOLARIS" = "yes" -a "$GCC" != "yes"; then
      CFLAGS="${CFLAGS} -mt"
      CXXFLAGS="${CXXFLAGS} -mt"
      LDFLAGS="${LDFLAGS} -mt"
  fi
fi

dnl from if !MSW
fi

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

  dnl must define _REENTRANT for multithreaded code except for Mac OS X
  if test "$wxUSE_MAC" = "0"; then
    CFLAGS="${CFLAGS} -D_REENTRANT"
    CXXFLAGS="${CXXFLAGS} -D_REENTRANT"
  fi

  SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS thread"
else
  dnl on some systems, _REENTRANT should be defined if we want to use any _r()
  dnl functions - add tests for other functions here as well
  if test "$ac_cv_func_strtok_r" = "yes"; then
    AC_MSG_CHECKING(if -D_REENTRANT is needed)
    if test "$NEEDS_D_REENTRANT_FOR_R_FUNCS" = 1; then
        CFLAGS="${CFLAGS} -D_REENTRANT"
        CXXFLAGS="${CXXFLAGS} -D_REENTRANT"
        AC_MSG_RESULT(yes)
    else
        AC_MSG_RESULT(no)
    fi
  fi
fi

if test "$WXGTK20" = 1 ; then
  AC_DEFINE_UNQUOTED(__WXGTK20__,$WXGTK20)
  WXGTK12=1
fi

if test "$WXGTK12" = 1 ; then
  AC_DEFINE_UNQUOTED(__WXGTK12__,$WXGTK12)
fi

if test "$WXGTK127" = 1 ; then
  AC_DEFINE_UNQUOTED(__WXGTK127__,$WXGTK127)
fi

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

if test "$wxUSE_MAC" = 1 ; then
  TOOLKIT_DEF="${TOOLKIT_DEF} -D__UNIX__ -D__POWERPC__ -DTARGET_CARBON"
  CFLAGS="${CFLAGS} -fno-common -fpascal-strings"
  CPPFLAGS="${CPPFLAGS} -fno-common -fpascal-strings"
  AC_CHECK_PROG(REZ, Rez, Rez, /Developer/Tools/Rez)
  AC_CHECK_PROG(DEREZ, Derez, Derez, /Developer/Tools/Derez)
  RESCOMP=${REZ}
  REZFLAGS="-d __UNIX__ -useDF"
  DEREZFLAGS="Carbon.r -useDF"
  RESFLAGS="Carbon.r -t APPL"
  LIBWXMACRES="\$(LIBWX_MACRES)"
  LIBWXMACRESCOMP="\$(LIBWX_MACRESCOMP)"
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)
    AC_DEFINE(wxUSE_DEBUG_NEW_ALWAYS)
    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=
CODE_GEN_FLAGS=
CODE_GEN_FLAGS_CXX=
if test "$GCC" = yes ; then
    if test "$wxUSE_NO_RTTI" = "yes" ; then
        CODE_GEN_FLAGS_CXX="$CODE_GEN_FLAGS -fno-rtti"
    fi
    if test "$wxUSE_NO_EXCEPTIONS" = "yes" ; then
        CODE_GEN_FLAGS_CXX="$CODE_GEN_FLAGS -fno-exceptions"
    fi
    if test "$wxUSE_PERMISSIVE" = "yes" ; then
       CODE_GEN_FLAGS="$CODE_GEN_FLAGS -fpermissive"
    fi
    if test "$wxUSE_NO_DEPS" = "no" ; then
        DEP_INFO_FLAGS="-MMD"
    fi
fi


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" -o "$wxUSE_ZLIB" = "sys" ; then
  AC_DEFINE(wxUSE_ZLIB)
  if test "$wxUSE_ZLIB" = "yes" ; then
    ZLIB_INCLUDE="-I\${top_srcdir}/src/zlib"
  else
    ZLIB_LINK=
    AC_CHECK_HEADER(zlib.h, AC_CHECK_LIB(z, deflate, ZLIB_LINK="-lz"))
    if test "x$ZLIB_LINK" = "x" ; then
        AC_MSG_ERROR(system zlib compression library not found! Use --with-zlib=yes to use built-in zlib)
    fi
  fi
fi

PNG_INCLUDE=
if test "$wxUSE_LIBPNG" = "yes" -o "$wxUSE_LIBPNG" = "sys" ; then
  AC_DEFINE(wxUSE_LIBPNG)
  dnl for the check below to have a chance to succeed, we must already have
  dnl libz somewhere
  if test "$wxUSE_LIBPNG" = "sys" -a "$wxUSE_ZLIB" != "sys" ; then
    AC_MSG_WARN([--with-libpng=sys doesn't work without --with-zlib=sys, will compile the built-in libpng instead])
    wxUSE_LIBPNG=yes
  fi

  if test "$wxUSE_LIBPNG" = "yes" ; then
    PNG_INCLUDE="-I\${top_srcdir}/src/png"
  else
    PNG_LINK=
    AC_CHECK_HEADER(png.h,
                    AC_CHECK_LIB(png, png_check_sig,
                                 PNG_LINK="-lpng",
                                 ,
                                 [-lz -lm])
                   )
    if test "x$PNG_LINK" = "x" ; then
        AC_MSG_ERROR(system png library not found! Use --with-libpng=yes to use the built-in libpng)
    fi
  fi

  SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS png"
fi

JPEG_INCLUDE=
if test "$wxUSE_LIBJPEG" = "yes" -o "$wxUSE_LIBJPEG" = "sys" ; then
  AC_DEFINE(wxUSE_LIBJPEG)
  if test "$wxUSE_LIBJPEG" = "yes" ; then
    JPEG_INCLUDE="-I\${top_srcdir}/src/jpeg"
  else
    JPEG_LINK=
    AC_CHECK_HEADER(jpeglib.h, AC_CHECK_LIB(jpeg, jpeg_read_header, JPEG_LINK="-ljpeg"))
    if test "x$JPEG_LINK" = "x" ; then
        AC_MSG_ERROR(system jpeg library not found! Use --with-libjpeg=yes to use the built-in one)
    fi
  fi
fi

TIFF_INCLUDE=
if test "$wxUSE_LIBTIFF" = "yes" -o "$wxUSE_LIBTIFF" = "sys" ; then
  AC_DEFINE(wxUSE_LIBTIFF)
  if test "$wxUSE_LIBTIFF" = "yes" ; then  
    TIFF_INCLUDE="-I\${top_srcdir}/src/tiff"
  else
    TIFF_LINK=
    AC_CHECK_HEADER(tiffio.h, AC_CHECK_LIB(tiff, TIFFError,
                                           TIFF_LINK="-ltiff",
                                           ,
                                           -lm))
    if test "x$TIFF_LINK" = "x" ; then
        AC_MSG_ERROR(system tiff library not found! Use --with-libtiff=yes to use the built-in one)
    fi
  fi
fi

FREETYPE_INCLUDE=
if test "$wxUSE_FREETYPE" = "yes" -o "$wxUSE_FREETYPE" = "sys" ; then
  AC_DEFINE(wxUSE_FREETYPE)
  if test "$wxUSE_FREETYPE" = "yes" ; then
    FREETYPE_INCLUDE="-I\${top_srcdir}/src/freetype"
  else
    FREETYPE_LINK=
    AC_CHECK_HEADER(freetype.h,
                    AC_CHECK_LIB(freetype, FT_Render_Glyph,
                                 FREETYPE_LINK="-lfreetype",
                                 ,
                                 [-lm])
                   )
    if test "x$FREETYPE_LINK" = "x" ; then
        AC_MSG_ERROR(system freetype library not found! Use --with-freetype=yes to use the built-in freetype)
    fi
  fi
fi

if test "$wxUSE_OPENGL" = "yes"; then
  AC_CHECK_HEADER(GL/gl.h, [
    AC_DEFINE(wxUSE_OPENGL)
    AC_DEFINE(wxUSE_GLCANVAS)
    AC_CHECK_LIB(GL, glFlush, [
      OPENGL_LINK="-lGL -lGLU"
    ],[
        AC_CHECK_LIB(MesaGL, glFlush, [
        OPENGL_LINK="-lMesaGL -lMesaGLU"
      ],)
     ],)
    ],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_FILESYSTEM" = "yes"; then
  AC_DEFINE(wxUSE_FILESYSTEM)
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_ON_FATAL_EXCEPTION" = "yes"; then
  AC_DEFINE(wxUSE_ON_FATAL_EXCEPTION)
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"
    GUIDIST="$GUIDIST INTL_DIST"
  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_GEOMETRY" = "yes"; then
  AC_DEFINE(wxUSE_GEOMETRY)
fi

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

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

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

if test "$wxUSE_TIMEDATE" = "yes"; then
    dnl check for strptime
    AC_CHECK_FUNCS(strptime)

    dnl check for timezone variable
    AC_CACHE_CHECK(for timezone variable in <time.h>,
                   wx_cv_var_timezone,
                   [
                        AC_TRY_COMPILE(
                            [
                                #include <time.h>
                            ],
                            [
                                int tz;
                                tz = __timezone;
                            ],
                            [
                                wx_cv_var_timezone=__timezone
                            ],
                            [
                                AC_TRY_COMPILE(
                                    [
                                        #include <time.h>
                                    ],
                                    [
                                        int tz;
                                        tz = _timezone;
                                    ],
                                    [
                                        wx_cv_var_timezone=_timezone
                                    ],
                                    [
                                        AC_TRY_COMPILE(
                                            [
                                                #include <time.h>
                                            ],
                                            [
                                                int tz;
                                                tz = timezone;
                                            ],
                                            [
                                                wx_cv_var_timezone=timezone
                                            ],
                                            AC_MSG_ERROR(no timezone variable)
                                        )
                                    ]
                                )
                            ]
                        )
                   ]
    )

    dnl as we want $wx_cv_var_timezone to be expanded, use AC_DEFINE_UNQUOTED
    AC_DEFINE_UNQUOTED(WX_TIMEZONE, $wx_cv_var_timezone)

    dnl check for localtime (it's POSIX, but the check can do no harm...)
    AC_CHECK_FUNCS(localtime)

    if test "$ac_cv_func_localtime" = "yes"; then
        AC_CACHE_CHECK(for tm_gmtoff in struct tm,
                       wx_cv_struct_tm_has_gmtoff,
        [
            AC_TRY_COMPILE(
                [
                    #include <time.h>
                ],
                [
                    struct tm tm;
                    tm.tm_gmtoff++;
                ],
                [
                    wx_cv_struct_tm_has_gmtoff=yes
                    AC_DEFINE(WX_GMTOFF_IN_TM)
                ],
                wx_cv_struct_tm_has_gmtoff=no
            )
        ])
    fi

    dnl check for gettimeofday (SVr4, BSD 4.3) and ftime (V7, BSD 4.3) for the
    dnl function to be used for high resolution timers
    AC_CHECK_FUNCS(gettimeofday ftime, break)

    if test "$ac_cv_func_gettimeofday" = "yes"; then
        AC_CACHE_CHECK([whether gettimeofday takes two arguments],
                       wx_cv_func_gettimeofday_has_2_args,
        [
            dnl on some _really_ old systems it takes only 1 argument
            AC_LANG_SAVE
            AC_LANG_CPLUSPLUS

            AC_TRY_COMPILE(
                [
                    #include <sys/time.h>
                    #include <unistd.h>
                ],
                [
                    struct timeval tv;
                    struct timezone tz;
                    gettimeofday(&tv, &tz);
                ],
                wx_cv_func_gettimeofday_has_2_args=yes,
                AC_TRY_COMPILE(
                    [
                        #include <sys/time.h>
                        #include <unistd.h>
                    ],
                    [
                        struct timeval tv;
                        gettimeofday(&tv);
                    ],
                    wx_cv_func_gettimeofday_has_2_args=no,
                    wx_cv_func_gettimeofday_has_2_args=unknown
                )
            )
            AC_LANG_RESTORE
        ])

        if test "$wx_cv_func_gettimeofday_has_2_args" != "yes"; then
            AC_DEFINE(WX_GETTIMEOFDAY_NO_TZ)
        fi
    fi

    AC_DEFINE(wxUSE_TIMEDATE)
    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS typetest"
fi

dnl ------------------------------------------------------------------------
dnl wxSocket
dnl ------------------------------------------------------------------------

dnl under MSW we always have sockets
if test "$TOOLKIT" != "MSW"; then

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

dnl this test may be appropriate if building under cygwin
dnl right now I'm assuming it also uses the winsock stuff
dnl like mingw does..  -- RL

if test "$wxUSE_SOCKETS" = "yes" ; then
    dnl determine the type of third argument for getsockname
    AC_CACHE_CHECK([what is the type of the third argument of getsockname],
                   wx_cv_type_getsockname3,
        [
            AC_LANG_SAVE
            AC_LANG_CPLUSPLUS

            AC_TRY_COMPILE(
                [
                    #include <sys/types.h>
                    #include <sys/socket.h>
                ],
                [
                    socklen_t len;
                    getsockname(0, 0, &len);
                ],
                wx_cv_type_getsockname3=socklen_t,
                AC_TRY_COMPILE(
                    [
                        #include <sys/types.h>
                        #include <sys/socket.h>
                    ],
                    [
                        size_t len;
                        getsockname(0, 0, &len);
                    ],
                    wx_cv_type_getsockname3=size_t,
                    AC_TRY_COMPILE(
                        [
                            #include <sys/types.h>
                            #include <sys/socket.h>
                        ],
                        [
                            int len;
                            getsockname(0, 0, &len);
                        ],
                        wx_cv_type_getsockname3=int,
                        wx_cv_type_getsockname3=unknown
                    )
                )
            )

            AC_LANG_RESTORE
        ])

    if test "$wx_cv_type_getsockname3" = "unknown"; then
        wxUSE_SOCKETS=no
        AC_MSG_WARN([Couldn't find socklen_t synonym for this system])
    else
        AC_DEFINE_UNQUOTED(SOCKLEN_T, $wx_cv_type_getsockname3)
    fi
fi

fi
dnl if !MSW

if test "$wxUSE_SOCKETS" = "yes" ; then
    AC_DEFINE(wxUSE_SOCKETS)
    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS sockets"
    INCLUDE_SUBDIRS="$INCLUDE_SUBDIRS protocol"
fi

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

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

dnl under MSW we always have joystick support
if test "$TOOLKIT" != "MSW"; then

if test "$wxUSE_JOYSTICK" = "yes"; 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
    wxUSE_JOYSTICK=no
    AC_MSG_WARN(Joystick not supported by this system, disabled)
  fi
fi

fi
dnl if !MSW

if test "$wxUSE_JOYSTICK" = "yes"; then
    AC_DEFINE(wxUSE_JOYSTICK)
    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS joytest"
fi

fi
dnl if wxUSE_GUI

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

dnl under MSW we always have LoadLibrary/GetProcAddress
if test "$TOOLKIT" != "MSW"; then

HAVE_DL_FUNCS=0
HAVE_SHL_FUNCS=0
if test "$wxUSE_DYNLIB_CLASS" = "yes"; then
    if test "$USE_MAC" = 1; then
        dnl Mac OS X needs dl_macosx.c to be compiled in to fake dlopen/dlerror
        HAVE_DL_FUNCS=1
    else
        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
                                          ],
                                          [
                                            AC_CHECK_LIB(shl_load, dld,
                                                         [
                                                            HAVE_SHL_FUNCS=1
                                                            LIBS="$LIBS -ldld"
                                                         ])
                                          ])
                        ])
        ])

    dnl check also for dlerror()
    if test "$HAVE_DL_FUNCS" = 1; then
        AC_CHECK_FUNCS(dlerror,
                       AC_DEFINE(HAVE_DLERROR),
                       AC_CHECK_LIB(dl, dlerror, AC_DEFINE(HAVE_DLERROR)))
    fi
    fi

    if test "$HAVE_DL_FUNCS" = 0; then
        if test "$HAVE_SHL_FUNCS" = 0; then
          if test "$USE_UNIX" = 1; then
              AC_MSG_WARN([Missing dynamic loading support, several features will be disabled])
              wxUSE_DYNLIB_CLASS=no
          else
              AC_MSG_WARN([Assuming wxLibrary class works on this platform])
          fi
        fi
    fi
fi

fi
dnl if !MSW

if test "$wxUSE_DYNLIB_CLASS" = "yes" ; then
    AC_DEFINE(wxUSE_DYNLIB_CLASS)
else
    wxUSE_ODBC=no
    wxUSE_SERIAL=no
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 serialization support
dnl ----------------------------------------------------------------

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

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

IODBC_C_SRC=""
if test "$wxUSE_ODBC" = "yes" ; then
    AC_DEFINE(wxUSE_ODBC)
    WXODBCFLAG="-D_IODBC_"
    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS db"
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
    if test "$wxUSE_SOCKETS" != "yes"; then
        AC_MSG_WARN(wxWindows IPC classes require sockets, disabled)
    fi

    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 "$wxUSE_MAC" = 1; then
        AC_MSG_WARN([Drag and drop is not yet supported under Mac OS X])
        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)

	dnl for some reason this test always fails here??
        dnl if test "x$HAVE_OLE2_H" != x ; then
	dnl this one does the right thing though
        if test "$ac_cv_header_ole2_h" = "yes" ; then
            if test "$GCC" = yes ; then
                ALL_OBJECTS="$ALL_OBJECTS \$(OLEOBJS)"
                ALL_DEPFILES="$ALL_DEPFILES \$(OLEDEPS)"
                CODE_GEN_FLAGS_CXX="$CODE_GEN_FLAGS_CXX -fvtable-thunks"
                LIBS="$LIBS -lole32 -luuid"

                dnl metafiles need the ole code, right??  if not this
                dnl doesn't need to be in here.
                if test "$wxUSE_METAFILE" = "yes"; then
                    AC_DEFINE(wxUSE_METAFILE)
                    dnl this one should probably be made separately configurable
                    AC_DEFINE(wxUSE_ENH_METAFILE)
                fi
            fi
        else
            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_NEW_GRID" = "yes"; then
  wxUSE_GRID="yes"
  AC_DEFINE(wxUSE_NEW_GRID)
  SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS newgrid"
fi

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

    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS statbar"
fi

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

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

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

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

    dnl if wxUSE_TOOLBAR and !wxUSE_TOOLBAR_SIMPLE => wxUSE_TOOLBAR_NATIVE
    if test "$wxUSE_TOOLBAR_SIMPLE" != "yes"; then
        wxUSE_TOOLBAR_NATIVE="yes"
    fi

    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS toolbar"
fi

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

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_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_IMAGE" = "yes" ; then
  AC_DEFINE(wxUSE_IMAGE)
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

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

dnl ---------------------------------------------------------------------------
dnl get the string with OS info - used by wxGetOsDescription()
dnl ---------------------------------------------------------------------------

if test "$cross_compiling" = "yes"; then
    dnl Use best guess from host as we can't use uname when cross compiling
    OSINFO="\"$host\""
else
    dnl attualy work out OS version
    OSINFO=`uname -s -r -m`
    OSINFO="\"$OSINFO\""
fi

AC_DEFINE_UNQUOTED(WXWIN_OS_DESCRIPTION, $OSINFO)

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

GUILIBS="$GUI_TK_LIBRARY $TOOLKIT_LINK"
OPENGL_LIBS="$OPENGL_LINK"

dnl all additional libraries (except wxWindows itself) we link with
dnl
dnl note that we always link with -lm except for Mac OS X
dnl extended.c uses floor() and is always linked in
EXTRA_LIBS="$LIBS $POSIX4_LINK $INET_LINK $WCHAR_LINK $THREADS_LINK $DMALLOC_LINK $DL_LINK $ZLIB_LINK -lm"
if test "$USE_MAC" = 1 ; then
    EXTRA_LIBS="$EXTRA_LIBS -framework Carbon -framework System"
fi
if test "$wxUSE_GUI" = "yes"; then
    EXTRA_LIBS="$GUILIBS $PNG_LINK $JPEG_LINK $TIFF_LINK $FREETYPE_LINK $EXTRA_LIBS"
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 $FREETYPE_INCLUDE $TOOLKIT_INCLUDE"

dnl wxGTK does not need TOOLKIT includes in wx-config
if test "$wxUSE_GTK" = 1; then
    WXCONFIG_INCLUDE=""
else
    WXCONFIG_INCLUDE="$TOOLKIT_INCLUDE"
fi

dnl C/C++ compiler options used to compile wxWindows
if test "$GXX" = yes ; then
    dnl CXXWARNINGS="-Wall -W -Wcast-qual -Werror"
    CXXWARNINGS="-Wall"
    dnl should enable this one day...
    dnl CXXWARNINGS="-Wall -Werror"
fi
EXTRA_CFLAGS="$WXDEBUG $WXODBCFLAG $PROFILE $OPTIMISE $INCLUDES"

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

LDFLAGS="$LDFLAGS $PROFILE"

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

    dnl TODO some samples are never built so far:
    dnl      ipc, mfc, nativdlg, oleauto, ownerdrw, proplist
    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS controls dialogs dragimag \
                     drawing dynamic event font fractal image menu \
                     minimal richedit"

    dnl this is needed to be able to find AFM files
    CPPFLAGS="$CPPFLAGS \$(EXTRADEFS) \$(APPEXTRADEFS)"
else
    SAMPLES_SUBDIRS=""
fi

dnl for convenience, sort the samples in alphabetical order
dnl
dnl FIXME For some mysterious reasons, sometimes the directories are duplicated
dnl       in this list - hence uniq. But normally, this shouldn't be needed!
dnl
dnl       Unfortunately, there is a bug in OS/2's tr, such that
dnl       tr ' ' '\n' introduces DOS-like line breaks, whereas tr '\n' ' '
dnl       only removes the Unix-like part of the introduced line break.
SAMPLES_SUBDIRS="`echo $SAMPLES_SUBDIRS | tr -s ' ' | tr ' ' '\n' | sort | uniq | tr '\n' ' '| tr -d '\r'`"

dnl makefile variables
AC_SUBST(LEX_STEM)
AC_SUBST(PATH_IFS)

dnl global options
AC_SUBST(WX_MAJOR_VERSION_NUMBER)
AC_SUBST(WX_MINOR_VERSION_NUMBER)
AC_SUBST(WX_RELEASE_NUMBER)
AC_SUBST(WX_LIBRARY_NAME)
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 global gl options
AC_SUBST(WX_LIBRARY_NAME_GL)
AC_SUBST(WX_LIBRARY_NAME_STATIC_GL)
AC_SUBST(WX_LIBRARY_NAME_SHARED_GL)
AC_SUBST(WX_LIBRARY_GL)
AC_SUBST(WX_TARGET_LIBRARY_GL)
AC_SUBST(WX_LIBRARY_LINK1_GL)
AC_SUBST(WX_LIBRARY_LINK2_GL)
AC_SUBST(WX_LIBRARY_LINK3_GL)

dnl are we supposed to create the links?
AC_SUBST(WX_ALL)
AC_SUBST(WX_ALL_INSTALLED)

AC_SUBST(SHARED_LD)
AC_SUBST(PIC_FLAG)
AC_SUBST(DEP_INFO_FLAGS)
AC_SUBST(CODE_GEN_FLAGS)
AC_SUBST(CODE_GEN_FLAGS_CXX)
AC_SUBST(BURNT_LIBRARY_NAME)
AC_SUBST(BURNT_LIBRARY_NAME_GL)
AC_SUBST(WX_TARGET_LIBRARY_SONAME)
AC_SUBST(WX_TARGET_LIBRARY_TYPE)

dnl debugging options
AC_SUBST(WXDEBUG_DEFINE)

dnl toolkit options
AC_SUBST(USE_GUI)
AC_SUBST(AFMINSTALL)
AC_SUBST(TOOLKIT)
AC_SUBST(TOOLKIT_DEF)
AC_SUBST(TOOLKIT_DIR)
AC_SUBST(TOOLKIT_NAME)
AC_SUBST(TOOLKIT_INCLUDE)
AC_SUBST(WXCONFIG_INCLUDE)

dnl what to compile
AC_SUBST(ALL_OBJECTS)
AC_SUBST(ALL_DEPFILES)

dnl distribution vars
AC_SUBST(GUIDIST)
AC_SUBST(PORT_FILES)
AC_SUBST(DISTDIR)
AC_SUBST(RPM_SPEC)
AC_SUBST(RPM_FILES)

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

dnl additional libraries and linker settings
AC_SUBST(LDFLAGS)
AC_SUBST(EXTRA_LIBS)
AC_SUBST(OPENGL_LIBS)
AC_SUBST(EXTRADEFS)
AC_SUBST(LIBS)
AC_SUBST(LD_LIBS)

dnl additional resurces settings
AC_SUBST(RCINPUTSWITCH)
AC_SUBST(RCOUTPUTSWITCH)
AC_SUBST(RESPROGRAM)
AC_SUBST(RESCOMP)
AC_SUBST(RESFLAGS)
dnl additional for Mac OS X
AC_SUBST(REZ)
AC_SUBST(REZFLAGS)
AC_SUBST(DEREZ)
AC_SUBST(DEREZFLAGS)
AC_SUBST(LIBWXMACRES)
AC_SUBST(LIBWXMACRESCOMP)

dnl These seam to be missing
AC_SUBST(DLLTOOL)
AC_SUBST(AS)
AC_SUBST(NM)
AC_SUBST(LD)
AC_SUBST(MAKEINFO)


dnl MAKE_SET will be replaced with "MAKE=..." or nothing if make sets MAKE
dnl itself (this is macro is required if SUBDIRS variable is used in Makefile.am
dnl - and we do use it)
AC_PROG_MAKE_SET

dnl move setup.h back if available
if test -d include; then
    if test -d include/wx; then
        if test -d include/wx/${TOOLKIT_DIR}; then
            if test -f include/wx/${TOOLKIT_DIR}/setup.h; then
                mv -f include/wx/${TOOLKIT_DIR}/setup.h setup.h 
            fi
        fi
    fi
fi
            
AC_CONFIG_HEADER(setup.h:setup.h.in)

dnl some more GUI only things
if test "$wxUSE_GUI" = "yes"; then
    dnl we need to pass SAMPLES_SUBDIRS (and some other) to the configure in
    dnl samples and the only way to do it is, again, use the cache
    wx_cv_path_samplesubdirs=$SAMPLES_SUBDIRS
    wx_cv_path_ifs=$PATH_IFS
    wx_cv_program_ext=$PROGRAM_EXT
    wx_cv_target_library=$WX_TARGET_LIBRARY
    wx_cv_target_libtype=$WX_TARGET_LIBRARY_TYPE
    AC_CONFIG_SUBDIRS(demos samples utils contrib)
fi
dnl from wxUSE_GUI

dnl create each of the files in the space separated list from the file.in
dnl (the original file name may be overriden by appending another name after a
dnl colon)
AC_OUTPUT([
            wx-config
            src/make.env
            src/makeprog.env
            src/makelib.env
            Makefile
          ],
          [
            chmod +x wx-config
            mv wx-config wx${TOOLKIT_NAME}-config
            ${LN_S} wx${TOOLKIT_NAME}-config wx-config
            
            dnl the debian build process wants setup.h in the lib subdir so we
            dnl can pretend wxWin is already installed, so we *copy* it there
         
            if test ! -d lib; then
              mkdir lib
            fi
            if test ! -d lib/wx; then
              mkdir lib/wx
            fi
            if test ! -d lib/wx/include; then
              mkdir lib/wx/include
            fi
            if test ! -d lib/wx/include/wx; then
              mkdir lib/wx/include/wx
            fi
            if test ! -d lib/wx/include/wx/${TOOLKIT_NAME}; then
              mkdir lib/wx/include/wx/${TOOLKIT_NAME}
            fi
            if test -f setup.h; then
                cp -fp setup.h lib/wx/include/wx/${TOOLKIT_NAME}/setup.h
            fi

            dnl *move* setup.h to its final place

            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
                cp -fp setup.h include/wx/${TOOLKIT_DIR}/setup.h
            fi
            
          ],
          [
            TOOLKIT_DIR="${TOOLKIT_DIR}"
            TOOLKIT_NAME="${TOOLKIT_NAME}"
            LN_S="${LN_S}"
          ]
         )

