1# iconv.m4 serial AM3 (gettext-0.11) 2dnl Copyright (C) 2000-2002 Free Software Foundation, Inc. 3dnl This file is free software, distributed under the terms of the GNU 4dnl General Public License. As a special exception to the GNU General 5dnl Public License, this file may be distributed as part of a program 6dnl that contains a configuration script generated by Autoconf, under 7dnl the same distribution terms as the rest of that program. 8 9dnl From Bruno Haible. 10 11AC_DEFUN([AM_ICONV_LINK], 12[ 13 dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and 14 dnl those with the standalone portable GNU libiconv installed). 15 16 dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. 17 AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) 18 AC_REQUIRE([AC_LIB_RPATH]) 19 20 dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV 21 dnl accordingly. 22 AC_LIB_LINKFLAGS_BODY([iconv]) 23 24 dnl Add $INCICONV to CPPFLAGS before performing the following checks, 25 dnl because if the user has installed libiconv and not disabled its use 26 dnl via --without-libiconv-prefix, he wants to use it. The first 27 dnl AC_TRY_LINK will then fail, the second AC_TRY_LINK will succeed. 28 am_save_CPPFLAGS="$CPPFLAGS" 29 AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV]) 30 31 AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [ 32 am_cv_func_iconv="no, consider installing GNU libiconv" 33 am_cv_lib_iconv=no 34 AC_TRY_LINK([#include <stdlib.h> 35#include <iconv.h>], 36 [iconv_t cd = iconv_open("",""); 37 iconv(cd,NULL,NULL,NULL,NULL); 38 iconv_close(cd);], 39 am_cv_func_iconv=yes) 40 if test "$am_cv_func_iconv" != yes; then 41 am_save_LIBS="$LIBS" 42 LIBS="$LIBS $LIBICONV" 43 AC_TRY_LINK([#include <stdlib.h> 44#include <iconv.h>], 45 [iconv_t cd = iconv_open("",""); 46 iconv(cd,NULL,NULL,NULL,NULL); 47 iconv_close(cd);], 48 am_cv_lib_iconv=yes 49 am_cv_func_iconv=yes) 50 LIBS="$am_save_LIBS" 51 fi 52 ]) 53 if test "$am_cv_func_iconv" = yes; then 54 AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.]) 55 fi 56 if test "$am_cv_lib_iconv" = yes; then 57 AC_MSG_CHECKING([how to link with libiconv]) 58 AC_MSG_RESULT([$LIBICONV]) 59 else 60 dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV 61 dnl either. 62 CPPFLAGS="$am_save_CPPFLAGS" 63 LIBICONV= 64 LTLIBICONV= 65 fi 66 AC_SUBST(LIBICONV) 67 AC_SUBST(LTLIBICONV) 68]) 69 70AC_DEFUN([AM_ICONV], 71[ 72 AC_REQUIRE([AM_ICONV_LINK]) 73 if test "$am_cv_func_iconv" = yes; then 74 AC_MSG_CHECKING([for iconv declaration]) 75 AC_CACHE_VAL(am_cv_proto_iconv, [ 76 AC_TRY_COMPILE([ 77#include <stdlib.h> 78#include <iconv.h> 79extern 80#ifdef __cplusplus 81"C" 82#endif 83#if defined(__STDC__) || defined(__cplusplus) 84size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); 85#else 86size_t iconv(); 87#endif 88], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const") 89 am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"]) 90 am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` 91 AC_MSG_RESULT([$]{ac_t:- 92 }[$]am_cv_proto_iconv) 93 AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1, 94 [Define as const if the declaration of iconv() needs const.]) 95 fi 96]) 97