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