]> arthur.barton.de Git - netatalk.git/blob - macros/iconv.m4
unblock signals in children (cf previous commit for RH9 )
[netatalk.git] / macros / iconv.m4
1 AC_DEFUN([AM_ICONV],
2 [
3
4 dnl     #################################################
5 dnl     # check for libiconv support
6         AC_MSG_CHECKING(whether to use libiconv)
7         savedcflags="$CFLAGS"
8         savedldflags="$LDFLAGS"
9         AC_ARG_WITH(libiconv,
10         [  --with-libiconv=BASEDIR Use libiconv in BASEDIR/lib and BASEDIR/include [[default=auto]]],
11         [ case "$withval" in
12           no)
13             AC_MSG_RESULT(no)
14             ;;
15           *)
16             AC_MSG_RESULT(yes)
17             CFLAGS="$CFLAGS -I$withval/include"
18             LDFLAGS="$LDFLAGS -L$withval/lib"
19             AC_CHECK_LIB(iconv, iconv_open, [
20                                 ICONV_CFLAGS="-I$withval/include"
21                                 ICONV_LIBS="-L$withval/lib -liconv"
22             ])
23             AC_DEFINE_UNQUOTED(WITH_LIBICONV, "${withval}",[Path to iconv])
24             ;;
25           esac ],
26           AC_MSG_RESULT(no)
27         )
28
29         CFLAGS_REMOVE_USR_INCLUDE(ICONV_CFLAGS)
30         LIB_REMOVE_USR_LIB(ICONV_LIBS)
31         AC_SUBST(ICONV_CFLAGS)
32         AC_SUBST(ICONV_LIBS)
33
34 dnl     ############
35 dnl     # check for iconv usability
36         AC_CACHE_CHECK([for working iconv],netatalk_cv_HAVE_USABLE_ICONV,[
37                 AC_TRY_RUN([\
38 #include <iconv.h>
39 main() {
40        iconv_t cd = iconv_open("MAC", "UTF8");
41        if (cd == 0 || cd == (iconv_t)-1) return -1;
42        return 0;
43 }
44 ], netatalk_cv_HAVE_USABLE_ICONV=yes,netatalk_cv_HAVE_USABLE_ICONV=no,netatalk_cv_HAVE_USABLE_ICONV=cross)])
45
46         if test x"$netatalk_cv_HAVE_USABLE_ICONV" = x"yes"; then
47             AC_DEFINE(HAVE_USABLE_ICONV,1,[Whether to use native iconv])
48         fi
49
50 dnl     ###########
51 dnl     # check if iconv needs const
52         if test x"$cv_HAVE_USABLE_ICONV" = x"yes"; then
53                 AC_CACHE_VAL(am_cv_proto_iconv, [
54                 AC_TRY_COMPILE([\
55 #include <stdlib.h>
56 #include <iconv.h>
57 extern
58 #ifdef __cplusplus
59 "C"
60 #endif
61 #if defined(__STDC__) || defined(__cplusplus)
62 size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
63 #else
64 size_t iconv();
65 #endif
66 ], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const")
67                 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);"])
68                 AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1,
69                         [Define as const if the declaration of iconv() needs const.])
70         fi
71         CFLAGS="$savedcflags"
72         LDFLAGS="$savedldflags"
73         
74 ])