Use the more advanced iconv.m4 script from ELinks
[tig] / acinclude.m4
1 dnl From Bruno Haible.
2 AC_DEFUN([AM_ICONV],
3 [
4   dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and
5   dnl those with the standalone portable GNU libiconv installed).
6
7   AC_ARG_WITH([libiconv],
8 [  --with-libiconv=DIR     search for libiconv in DIR/include and DIR/lib], [
9     for dir in `echo "$withval" | tr : ' '`; do
10       if test -d $dir/include; then CPPFLAGS="$CPPFLAGS -I$dir/include"; fi
11       if test -d $dir/lib; then LDFLAGS="$LDFLAGS -L$dir/lib"; fi
12     done
13    ])
14
15   AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [
16     am_cv_func_iconv="no, consider installing GNU libiconv"
17     am_cv_lib_iconv=no
18     AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <stdlib.h>
19 #include <iconv.h>]], [[iconv_t cd = iconv_open("","");
20        iconv(cd,NULL,NULL,NULL,NULL);
21        iconv_close(cd);]])],[am_cv_func_iconv=yes],[])
22     if test "$am_cv_func_iconv" != yes; then
23       am_save_LIBS="$LIBS"
24       LIBS="$LIBS -liconv"
25       AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <stdlib.h>
26 #include <iconv.h>]], [[iconv_t cd = iconv_open("","");
27          iconv(cd,NULL,NULL,NULL,NULL);
28          iconv_close(cd);]])],[am_cv_lib_iconv=yes
29         am_cv_func_iconv=yes],[])
30       LIBS="$am_save_LIBS"
31     fi
32   ])
33   if test "$am_cv_func_iconv" = yes; then
34     AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.])
35     AC_MSG_CHECKING([for iconv declaration])
36     AC_CACHE_VAL(am_cv_proto_iconv, [
37       AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
38 #include <stdlib.h>
39 #include <iconv.h>
40 extern
41 #ifdef __cplusplus
42 "C"
43 #endif
44 #if defined(__STDC__) || defined(__cplusplus)
45 size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
46 #else
47 size_t iconv();
48 #endif
49 ]], [[]])],[am_cv_proto_iconv_arg1=""],[am_cv_proto_iconv_arg1="const"])
50       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);"])
51     am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'`
52     AC_MSG_RESULT([$]{ac_t:-
53          }[$]am_cv_proto_iconv)
54     AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1,
55       [Define as const if the declaration of iconv() needs const.])
56   else
57     AC_MSG_FAILURE([iconv() not found. Please install libiconv and use --with-libiconv=/path/to/dir.],[1])
58   fi
59   if test "$am_cv_lib_iconv" = yes; then
60     LIBS="$LIBS -liconv"
61   fi
62 ])