fix iconv-issues on *BSD and MacOSX

This commit is contained in:
mathias 2005-04-21 19:09:10 +00:00
parent 1077cd1a77
commit b809abcfd0
2 changed files with 47 additions and 33 deletions

View file

@ -1,6 +1,8 @@
(Format: Year/Month/Day)
Changes for 0.9.13
*05/04/21:
* Fixed iconv-issues on *BSD/MacOSX (Mathias)
configure.in
* Fixed #1133809, ArrangeWindows covers Toolbar/Slit (Mathias)
WorkspaceCmd.cc
*05/04/20:

View file

@ -25,7 +25,12 @@ fi
dnl Check for system header files
AC_HEADER_STDC
AC_CHECK_HEADERS(errno.h ctype.h dirent.h fcntl.h libgen.h locale.h nl_types.h process.h signal.h stdarg.h stdio.h time.h unistd.h sys/param.h sys/select.h sys/signal.h sys/stat.h sys/time.h sys/types.h sys/wait.h)
AC_CHECK_HEADERS(errno.h ctype.h dirent.h fcntl.h libgen.h \
locale.h nl_types.h process.h signal.h stdarg.h \
stdio.h time.h unistd.h \
sys/param.h sys/select.h sys/signal.h sys/stat.h \
sys/time.h sys/types.h sys/wait.h \
iconv.h)
AC_CHECK_HEADERS(sstream, ,
[ AC_CHECK_HEADERS(strstream,,
@ -63,41 +68,48 @@ size_t x = strftime(s, 5, "%a", localtime(&t));
],
[AC_MSG_RESULT(no)])
AC_MSG_CHECKING([for iconv])
AC_TRY_COMPILE(
[#include <iconv.h>],
[iconv_t cd = iconv_open("", "")],
HAVE_ICONV=yes,
HAVE_ICONV=no)
if test x"$HAVE_ICONV" = x"yes"; then
AC_DEFINE(HAVE_ICONV, 1, "iconv")
dnl now check for const char *msg argument in iconv(..)
AC_TRY_COMPILE(
[#include <iconv.h>],
[
char **msg, **new_msg;
size_t result, inleft, outleft;
result = iconv((iconv_t)(-1), msg, &inleft, new_msg, &outleft);
return 0;
],
[ AC_MSG_RESULT([yes (non const msg)])],
[ AC_DEFINE(HAVE_CONST_ICONV, 1, "iconv")
AC_MSG_RESULT([yes (const msg)])])
dnl ---------------
dnl CHECK FOR ICONV
dnl ---------------
dnl Check if iconv is part of libiconv
AC_CHECK_LIB(iconv, iconv_close,
AC_MSG_CHECKING([for iconv_close in libiconv])
AC_TRY_LINK(
#include <iconv.h>,
[int main() { return iconv_close((iconv_t)(-1)); }],
AC_MSG_RESULT([yes]),
LIBS="$LIBS -liconv"
)
)
else
AC_MSG_RESULT([no])
dnl Find iconv. It may be in libiconv and may be iconv() or libiconv()
if test "x$ac_cv_header_iconv_h" = "xyes"; then
AC_CHECK_FUNC(iconv, ac_found_iconv=yes, ac_found_iconv=no)
if test "x$ac_found_iconv" = "xno"; then
AC_CHECK_LIB(iconv, iconv, ac_found_iconv=yes)
if test "x$ac_found_iconv" = "xno"; then
AC_CHECK_LIB(iconv, libiconv, ac_found_iconv=yes)
fi
if test "x$ac_found_iconv" != "xno"; then
LIBS="-liconv $LIBS"
fi
fi
fi
if test "x$ac_found_iconv" = xyes; then
AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.])
fi
dnl Check if iconv uses const in prototype declaration
if test "x$ac_found_iconv" = "xyes"; then
AC_CACHE_CHECK(for iconv declaration, ac_cv_iconv_const,
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdlib.h>
#include <iconv.h>]],
[[#ifdef __cplusplus
"C"
#endif
#if defined(__STDC__) || defined(__cplusplus)
size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
#else
size_t iconv();
#endif]])],
[ac_cv_iconv_const=],
[ac_cv_iconv_const=const])])
AC_DEFINE_UNQUOTED([HAVE_CONST_ICONV], $ac_cv_iconv_const,
[Define as const if the declaration of iconv() needs const.])
fi
AC_CHECK_LIB(nsl, t_open, LIBS="$LIBS -lnsl")
AC_CHECK_LIB(socket, socket, LIBS="$LIBS -lsocket")