+dnl maybe wchar_t is in wcstr.h if we don't have wchar.h?
+if test "$ac_cv_header_wchar_h" != "yes"; then
+ dnl defines HAVE_WCSTR_H
+ AC_CHECK_HEADERS(wcstr.h)
+fi
+
+dnl defines HAVE_FNMATCH_H
+AC_CHECK_HEADERS(fnmatch.h)
+
+if test "x$ac_cv_header_fnmatch_h" = "xyes"; then
+ AC_CHECK_FUNCS(fnmatch)
+fi
+
+dnl defines HAVE_LANGINFO_H (GNU libc locale parameters)
+AC_CHECK_HEADERS(langinfo.h)
+
+case "${host}" in
+ *-pc-os2_emx | *-pc-os2-emx )
+ dnl Explicitly link -lintl if langinfo.h is available.
+ if test $ac_cv_header_langinfo_h = "yes"; then
+ LIBS="$LIBS -lintl"
+ fi
+ ;;
+esac
+
+if test "$wxUSE_GUI" = "yes"; then
+ if test "$wxUSE_UNIX" = "yes" -a "$wxUSE_PM" != 1; then
+ dnl defines HAVE_X11_XKBLIB_H
+ AC_CHECK_HEADERS(X11/Xlib.h)
+ AC_CHECK_HEADERS([X11/XKBlib.h], [], [],
+ [
+ #if HAVE_X11_XLIB_H
+ #include <X11/Xlib.h>
+ #endif
+ ])
+ fi
+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(void *, 4)
+AC_CHECK_SIZEOF(int, 4)
+AC_CHECK_SIZEOF(long, 4)
+AC_CHECK_SIZEOF(size_t, 4)
+
+case "${host}" in
+ arm-*-linux* )
+ AC_CHECK_SIZEOF(long long, 8)
+ ;;
+ *-hp-hpux* )
+ AC_CHECK_SIZEOF(long long, 0)
+ if test "$ac_cv_sizeof_long_long" != "0"; then
+ dnl HPUX 10.20 headers need this define in order to use long long definitions
+ CPPFLAGS="$CPPFLAGS -D_INCLUDE_LONGLONG"
+ fi
+ ;;
+ * )
+ AC_CHECK_SIZEOF(long long, 0)
+esac
+
+dnl we have to do it ourselves because SGI/Irix's stdio.h does not include
+dnl wchar_t and AC_CHECK_SIZEOF only includes stdio.h
+dnl Mac OS X does not provide wchar.h and wchar_t is defined by stdlib.h (GD)
+AC_CACHE_CHECK([size of wchar_t], wx_cv_sizeof_wchar_t,
+[
+ AC_TRY_RUN(
+ [
+ /* DJGPP only has fake wchar_t: */
+ #ifdef __DJGPP__
+ # error "fake wchar_t"
+ #endif
+ #ifdef HAVE_WCHAR_H
+ # ifdef __CYGWIN__
+ # include <stddef.h>
+ # endif
+ # include <wchar.h>
+ #endif
+ #ifdef HAVE_STDLIB_H
+ # include <stdlib.h>
+ #endif
+ #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,
+ [
+ case "${host}" in
+ *-pc-msdosdjgpp )
+ wx_cv_sizeof_wchar_t=0
+ ;;
+ * )
+ wx_cv_sizeof_wchar_t=4
+ ;;
+ esac
+ ]
+ )
+])
+
+AC_DEFINE_UNQUOTED(SIZEOF_WCHAR_T, $wx_cv_sizeof_wchar_t)
+
+dnl check for large file support
+AC_SYS_LARGEFILE
+
+dnl we need to define _FILE_OFFSET_BITS or _LARGE_FILES on the compiler command
+dnl line because otherwise the system headers risk being included before
+dnl wx/defs.h which defines these constants leading to inconsistent
+dnl sizeof(off_t) in different source files of the same program and linking
+dnl problems
+if test "x$wx_largefile" = "xyes"; then
+ if test "x$ac_cv_sys_file_offset_bits" = "x64"; then
+ WX_LARGEFILE_FLAGS="-D_FILE_OFFSET_BITS=64 -D_LARGE_FILES"
+ else
+ WX_LARGEFILE_FLAGS="-D_LARGE_FILES"
+ fi
+ CPPFLAGS="$CPPFLAGS $WX_LARGEFILE_FLAGS"
+fi
+
+dnl check 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 C++ compiler supports explicit keyword
+WX_CPP_EXPLICIT
+
+dnl check whether C++ compiler supports C++ casts
+AC_CXX_CONST_CAST
+AC_CXX_STATIC_CAST
+
+dnl check various STL features
+if test "$wxUSE_STL" = "yes"; then
+ AC_LANG_PUSH(C++)
+
+ dnl check for basic STL functionality
+ AC_MSG_CHECKING([for basic STL functionality])
+ AC_TRY_COMPILE([#include <string>
+ #include <functional>
+ #include <algorithm>
+ #include <vector>
+ #include <list>],
+ [std::vector<int> moo;
+ std::list<int> foo;
+ std::vector<int>::iterator it =
+ std::find_if(moo.begin(), moo.end(),
+ std::bind2nd(std::less<int>(), 3));],
+ [AC_MSG_RESULT([yes])],
+ [AC_MSG_RESULT([no])
+ AC_MSG_ERROR([Basic STL functionality missing])])
+
+ dnl check if <string> declares std::wstring
+ AC_MSG_CHECKING([for std::wstring in <string>])
+ AC_TRY_COMPILE([#include <string>],
+ [std::wstring foo;],
+ [AC_MSG_RESULT(yes)
+ AC_DEFINE(HAVE_STD_WSTRING)],
+ [AC_MSG_RESULT(no)])
+
+ dnl check for compliant std::string::compare
+ AC_MSG_CHECKING([for compliant std::string::compare])
+ AC_TRY_COMPILE([#include <string>],
+ [std::string foo, bar;
+ foo.compare(bar);
+ foo.compare(1, 1, bar);
+ foo.compare(1, 1, bar, 1, 1);
+ foo.compare("");
+ foo.compare(1, 1, "");
+ foo.compare(1, 1, "", 2);],
+ [AC_MSG_RESULT(yes)
+ AC_DEFINE(HAVE_STD_STRING_COMPARE)],
+ [AC_MSG_RESULT(no)])
+
+ dnl check for hash_map and hash_set headers
+ AC_CHECK_HEADER([hash_map],
+ [AC_MSG_CHECKING([for hash_map and hash_set])
+ AC_TRY_COMPILE([#include <hash_map>
+ #include <hash_set>],
+ [std::hash_map<double*, char*, std::hash<double*>, std::equal_to<double*> > test1;
+ std::hash_set<char*, std::hash<char*>, std::equal_to<char*> > test2;],
+ [AC_MSG_RESULT(yes)
+ AC_DEFINE(HAVE_HASH_MAP)
+ AC_DEFINE(HAVE_STD_HASH_MAP)],
+ [AC_MSG_RESULT(no)])
+ ])
+
+ AC_CHECK_HEADER([ext/hash_map],
+ [AC_MSG_CHECKING([for hash_map and hash_set])
+ AC_TRY_COMPILE([#include <ext/hash_map>
+ #include <ext/hash_set>],
+ [__gnu_cxx::hash_map<double*, char*, __gnu_cxx::hash<double*>, std::equal_to<double*> > test1;
+ __gnu_cxx::hash_set<char*, __gnu_cxx::hash<char*>, std::equal_to<char*> > test2;],
+ [AC_MSG_RESULT(yes)
+ AC_DEFINE(HAVE_EXT_HASH_MAP)
+ AC_DEFINE(HAVE_GNU_CXX_HASH_MAP)],
+ [AC_MSG_RESULT(no)])
+ ])
+
+ AC_LANG_POP
+fi
+
+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/AIX/... with gcc because standard (non ANSI C)
+dnl headers are included instead of the "fixed" (ANSI-fied) gcc ones.
+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!
+dnl
+dnl In the same vein. Motif 2.1 should be tried before Motif 1.2 for the
+dnl systems which have both (AIX 4.x does)
+SEARCH_INCLUDE="\
+ /usr/local/include \
+ \
+ /usr/Motif-2.1/include \
+ /usr/Motif-1.2/include \
+ /usr/include/Motif1.2 \
+ /opt/xpm/include/X11 \
+ /opt/GBxpm/include/ \
+ /opt/GBxpm/X11/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/local/arm/3.3.2/include \
+ \
+ /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"
+
+dnl prepend lib and lib32 for IRIX where the files in these directories should
+dnl be found before the ones in lib64 for 32bit compilation -- of course, this
+dnl probably/surely breaks 64bit compilation... IMO the only real solution is to
+dnl stop using WX_PATH_FIND_LIBRARIES() at all and use AC_CHECK_LIB() instead
+dnl
+dnl add 64 bit versions for Linux on AMD (this is not perfect but well...)
+SEARCH_LIB="/usr/lib /usr/lib32 `echo "$SEARCH_INCLUDE" | sed s/include/lib/g` /usr/lib64 /usr/X11R6/lib64"
+
+dnl ------------------------------------------------------------------------
+dnl Check for libraries
+dnl ------------------------------------------------------------------------
+
+dnl flush the cache because checking for libraries below might abort
+AC_CACHE_SAVE
+
+dnl check for glibc version
+dnl
+dnl VZ: I have no idea why had this check been there originally, but now
+dnl we could probably do without it by just always adding _GNU_SOURCE
+if test "$USE_LINUX" = 1 -o "$USE_GNU" = 1; then
+ AC_CACHE_CHECK([for glibc 2.1 or later], wx_cv_lib_glibc21,[
+ AC_TRY_COMPILE([#include <features.h>],
+ [
+ #if (__GLIBC__ < 2) || (__GLIBC_MINOR__ < 1)
+ #error not glibc2.1