From 869704349c23528fa6e27254fe09d787bc42f38b Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Sat, 25 Dec 2010 14:18:50 +0000 Subject: [PATCH] Give an error from configure if wchar_t is not available. wxWidgets 2.9 doesn't support building without wchar_t any more so always define wxUSE_WCHAR_T and give an error from configure if wchar_t is really not available. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66445 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- configure | 69 +++++++++++++++-------------------------- configure.in | 87 ++++++++++++++++++++-------------------------------- 2 files changed, 59 insertions(+), 97 deletions(-) diff --git a/configure b/configure index 9543430310..2eeddda8af 100755 --- a/configure +++ b/configure @@ -23919,11 +23919,15 @@ cat >>confdefs.h <<_ACEOF _ACEOF -if test "$ac_cv_sizeof_wchar_t" != 0; then - wxUSE_WCHAR_T=yes -else - wxUSE_WCHAR_T=no +if test "$ac_cv_sizeof_wchar_t" = 0; then + { { echo "$as_me:$LINENO: error: wxWidgets requires wchar_t support." >&5 +echo "$as_me: error: wxWidgets requires wchar_t support." >&2;} + { (exit 1); exit 1; }; } fi +cat >>confdefs.h <<\_ACEOF +#define wxUSE_WCHAR_T 1 +_ACEOF + { echo "$as_me:$LINENO: checking for va_copy" >&5 echo $ECHO_N "checking for va_copy... $ECHO_C" >&6; } @@ -28788,19 +28792,6 @@ echo "$as_me: WARNING: system tiff library not found, will use built-in instead" fi -if test "$wxUSE_WCHAR_T" != "yes"; then - if test "$wxUSE_EXPAT" != "no"; then - { echo "$as_me:$LINENO: WARNING: wxWidgets requires wchar_t to use expat, disabling" >&5 -echo "$as_me: WARNING: wxWidgets requires wchar_t to use expat, disabling" >&2;} - wxUSE_EXPAT=no - fi - if test "$wxUSE_XML" != "no"; then - { echo "$as_me:$LINENO: WARNING: wxWidgets requires wchar_t to use xml, disabling" >&5 -echo "$as_me: WARNING: wxWidgets requires wchar_t to use xml, disabling" >&2;} - wxUSE_XML=no - fi -fi - if test "$wxUSE_EXPAT" != "no"; then wxUSE_XML=yes cat >>confdefs.h <<\_ACEOF @@ -35905,14 +35896,8 @@ _ACEOF fi -if test "$wxUSE_WCHAR_T" = "yes"; then - cat >>confdefs.h <<\_ACEOF -#define wxUSE_WCHAR_T 1 -_ACEOF - - - WCSLEN_FOUND=0 - WCHAR_LINK= +WCSLEN_FOUND=0 +WCHAR_LINK= for ac_func in wcslen do @@ -36008,9 +35993,9 @@ fi done - if test "$WCSLEN_FOUND" = 0; then - if test "$TOOLKIT" = "MSW"; then - { echo "$as_me:$LINENO: checking for wcslen in -lmsvcrt" >&5 +if test "$WCSLEN_FOUND" = 0; then + if test "$TOOLKIT" = "MSW"; then + { echo "$as_me:$LINENO: checking for wcslen in -lmsvcrt" >&5 echo $ECHO_N "checking for wcslen in -lmsvcrt... $ECHO_C" >&6; } if test "${ac_cv_lib_msvcrt_wcslen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -36075,8 +36060,8 @@ if test $ac_cv_lib_msvcrt_wcslen = yes; then WCHAR_OK=1 fi - else - { echo "$as_me:$LINENO: checking for wcslen in -lw" >&5 + else + { echo "$as_me:$LINENO: checking for wcslen in -lw" >&5 echo $ECHO_N "checking for wcslen in -lw... $ECHO_C" >&6; } if test "${ac_cv_lib_w_wcslen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -36139,20 +36124,20 @@ fi echo "${ECHO_T}$ac_cv_lib_w_wcslen" >&6; } if test $ac_cv_lib_w_wcslen = yes; then - WCHAR_LINK=" -lw" - WCSLEN_FOUND=1 + WCHAR_LINK=" -lw" + WCSLEN_FOUND=1 fi - fi fi +fi - if test "$WCSLEN_FOUND" = 1; then - cat >>confdefs.h <<\_ACEOF +if test "$WCSLEN_FOUND" = 1; then + cat >>confdefs.h <<\_ACEOF #define HAVE_WCSLEN 1 _ACEOF - fi +fi @@ -36253,11 +36238,11 @@ fi done - if test "$USE_HPUX" = 1 -a "$GCC" != "yes"; then - CPPFLAGS="-D_INCLUDE__STDC_A1_SOURCE $CPPFLAGS" - fi +if test "$USE_HPUX" = 1 -a "$GCC" != "yes"; then + CPPFLAGS="-D_INCLUDE__STDC_A1_SOURCE $CPPFLAGS" +fi - { echo "$as_me:$LINENO: checking for mbstate_t" >&5 +{ echo "$as_me:$LINENO: checking for mbstate_t" >&5 echo $ECHO_N "checking for mbstate_t... $ECHO_C" >&6; } if test "${ac_cv_type_mbstate_t+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -36413,10 +36398,6 @@ done fi -else - { echo "$as_me:$LINENO: WARNING: Wide character support is unavailable" >&5 -echo "$as_me: WARNING: Wide character support is unavailable" >&2;} -fi diff --git a/configure.in b/configure.in index bc4dae89b1..b16249083a 100644 --- a/configure.in +++ b/configure.in @@ -1664,11 +1664,10 @@ AC_CHECK_SIZEOF(wchar_t, 0, #include ] ) -if test "$ac_cv_sizeof_wchar_t" != 0; then - wxUSE_WCHAR_T=yes -else - wxUSE_WCHAR_T=no +if test "$ac_cv_sizeof_wchar_t" = 0; then + AC_MSG_ERROR([wxWidgets requires wchar_t support.]) fi +AC_DEFINE(wxUSE_WCHAR_T) dnl checks needed to define wxVaCopy AC_CACHE_CHECK([for va_copy], @@ -2749,17 +2748,6 @@ dnl ------------------------------------------------------------------------ dnl Check for expat libraries dnl ------------------------------------------------------------------------ -if test "$wxUSE_WCHAR_T" != "yes"; then - if test "$wxUSE_EXPAT" != "no"; then - AC_MSG_WARN([wxWidgets requires wchar_t to use expat, disabling]) - wxUSE_EXPAT=no - fi - if test "$wxUSE_XML" != "no"; then - AC_MSG_WARN([wxWidgets requires wchar_t to use xml, disabling]) - wxUSE_XML=no - fi -fi - if test "$wxUSE_EXPAT" != "no"; then wxUSE_XML=yes AC_DEFINE(wxUSE_EXPAT) @@ -4241,51 +4229,44 @@ dnl --------------------------------------------------------------------------- dnl Check for functions dnl --------------------------------------------------------------------------- -dnl don't check for wchar_t functions if we haven't got wchar_t itself -if test "$wxUSE_WCHAR_T" = "yes"; then - AC_DEFINE(wxUSE_WCHAR_T) +dnl check for wcslen in all possible places +WCSLEN_FOUND=0 +WCHAR_LINK= +AC_CHECK_FUNCS(wcslen, WCSLEN_FOUND=1) - dnl check for wcslen in all possible places - WCSLEN_FOUND=0 - WCHAR_LINK= - AC_CHECK_FUNCS(wcslen, WCSLEN_FOUND=1) - - if test "$WCSLEN_FOUND" = 0; then - if test "$TOOLKIT" = "MSW"; then - AC_CHECK_LIB(msvcrt, wcslen, WCHAR_OK=1) - else - AC_CHECK_LIB(w, wcslen, [ - WCHAR_LINK=" -lw" - WCSLEN_FOUND=1 - ]) - fi - fi - - if test "$WCSLEN_FOUND" = 1; then - AC_DEFINE(HAVE_WCSLEN) +if test "$WCSLEN_FOUND" = 0; then + if test "$TOOLKIT" = "MSW"; then + AC_CHECK_LIB(msvcrt, wcslen, WCHAR_OK=1) + else + AC_CHECK_LIB(w, wcslen, [ + WCHAR_LINK=" -lw" + WCSLEN_FOUND=1 + ]) fi +fi - AC_CHECK_FUNCS([wcsdup strnlen wcsnlen wcscasecmp wcsncasecmp]) +if test "$WCSLEN_FOUND" = 1; then + AC_DEFINE(HAVE_WCSLEN) +fi - dnl On HP-UX aCC need this define to find mbstrtowcs() &c - dnl Can't be used for g++ since the mbstate_t in wchar.h can conflict - dnl with g++'s in (unless -D_INCLUDE__STDC_A1_SOURCE is in the - dnl flags when g++ is configured, it will declare it's own). - if test "$USE_HPUX" = 1 -a "$GCC" != "yes"; then - CPPFLAGS="-D_INCLUDE__STDC_A1_SOURCE $CPPFLAGS" - fi +AC_CHECK_FUNCS([wcsdup strnlen wcsnlen wcscasecmp wcsncasecmp]) - dnl Try to use wcsrtombs instead of wcstombs which is buggy in old GNU - dnl libc versions if possible. AC_CHECK_FUNCS only checks it's in the - dnl library, not the header, so do a header check for mbstate_t first. - AC_CHECK_TYPES([mbstate_t], - [AC_CHECK_FUNCS(wcsrtombs)], - [], - [#include ]) -else - AC_MSG_WARN([Wide character support is unavailable]) +dnl On HP-UX aCC need this define to find mbstrtowcs() &c +dnl Can't be used for g++ since the mbstate_t in wchar.h can conflict +dnl with g++'s in (unless -D_INCLUDE__STDC_A1_SOURCE is in the +dnl flags when g++ is configured, it will declare it's own). +if test "$USE_HPUX" = 1 -a "$GCC" != "yes"; then + CPPFLAGS="-D_INCLUDE__STDC_A1_SOURCE $CPPFLAGS" fi +dnl Try to use wcsrtombs instead of wcstombs which is buggy in old GNU +dnl libc versions if possible. AC_CHECK_FUNCS only checks it's in the +dnl library, not the header, so do a header check for mbstate_t first. +AC_CHECK_TYPES([mbstate_t], + [AC_CHECK_FUNCS(wcsrtombs)], + [], + [#include ]) + dnl check for vsnprintf() -- a safe version of vsprintf()) dnl dnl the trouble here is that on some systems (e.g HP-UX 10) this function is -- 2.47.2