1 AC_DEFUN([AC_CHECK_ICONV],
4 dnl #################################################
5 dnl # check for libiconv support
6 AC_MSG_CHECKING(whether to use libiconv)
8 savedldflags="$LDFLAGS"
9 netatalk_cv_libiconv=no
11 [ --with-libiconv=BASEDIR Use libiconv in BASEDIR/lib and BASEDIR/include [[default=auto]]],
18 CFLAGS="$CFLAGS -I$withval/include"
19 LDFLAGS="$LDFLAGS -L$withval/$atalk_libname"
20 AC_CHECK_LIB(iconv, iconv_open, [
21 ICONV_CFLAGS="-I$withval/include"
22 ICONV_LIBS="-L$withval/$atalk_libname -liconv"
23 netatalk_cv_libiconv=yes
24 AC_DEFINE_UNQUOTED(WITH_LIBICONV, "${withval}",[Path to iconv])
26 AC_MSG_ERROR([libiconv not found in specified path: $withval])
33 CFLAGS_REMOVE_USR_INCLUDE(ICONV_CFLAGS)
34 LIB_REMOVE_USR_LIB(ICONV_LIBS)
35 AC_SUBST(ICONV_CFLAGS)
39 dnl # check for iconv usability
41 saved_CPPFLAGS="$CPPFLAGS"
42 CPPFLAGS="$CFLAGS $ICONV_CFLAGS $ICONV_LIBS"
43 AC_CACHE_CHECK([for working iconv],netatalk_cv_HAVE_USABLE_ICONV,[
47 iconv_t cd = iconv_open("ASCII", "UTF-8");
48 if (cd == 0 || cd == (iconv_t)-1) return -1;
51 ], netatalk_cv_HAVE_USABLE_ICONV=yes,netatalk_cv_HAVE_USABLE_ICONV=no,netatalk_cv_HAVE_USABLE_ICONV=cross)])
53 if test x"$netatalk_cv_HAVE_USABLE_ICONV" = x"yes"; then
54 AC_DEFINE(HAVE_USABLE_ICONV,1,[Whether to use native iconv])
58 dnl # check if iconv needs const
59 if test x"$netatalk_cv_HAVE_USABLE_ICONV" = x"yes"; then
60 AC_CACHE_VAL(am_cv_proto_iconv, [
68 #if defined(__STDC__) || defined(__cplusplus)
69 size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
73 ], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const")
74 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);"])
75 AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1,
76 [Define as const if the declaration of iconv() needs const.])
80 dnl # check if libiconv supports UCS-2-INTERNAL
81 if test x"$netatalk_cv_libiconv" = x"yes"; then
82 AC_CACHE_CHECK([whether iconv supports UCS-2-INTERNAL],netatalk_cv_HAVE_UCS2INTERNAL,[
86 iconv_t cd = iconv_open("ASCII", "UCS-2-INTERNAL");
87 if (cd == 0 || cd == (iconv_t)-1) return -1;
90 ], netatalk_cv_HAVE_UCS2INTERNAL=yes,netatalk_cv_HAVE_UCS2INTERNAL=no,netatalk_cv_HAVEUCS2INTERNAL=cross)])
92 if test x"$netatalk_cv_HAVE_UCS2INTERNAL" = x"yes"; then
93 AC_DEFINE(HAVE_UCS2INTERNAL,1,[Whether UCS-2-INTERNAL is supported])
97 LDFLAGS="$savedldflags"
98 CPPFLAGS="$saved_CPPFLAGS"