]> arthur.barton.de Git - netatalk.git/blob - macros/iconv.m4
fix init script uninstall
[netatalk.git] / macros / iconv.m4
1 AC_DEFUN([AC_CHECK_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
37         saved_CPPFLAGS="$CPPFLAGS"
38         CPPFLAGS="$CFLAGS $ICONV_CFLAGS $ICONV_LIBS"
39         AC_CACHE_CHECK([for working iconv],netatalk_cv_HAVE_USABLE_ICONV,[
40                 AC_TRY_RUN([\
41 #include <iconv.h>
42 main() {
43        iconv_t cd = iconv_open("ASCII", "UTF-8");
44        if (cd == 0 || cd == (iconv_t)-1) return -1;
45        return 0;
46 }
47 ], netatalk_cv_HAVE_USABLE_ICONV=yes,netatalk_cv_HAVE_USABLE_ICONV=no,netatalk_cv_HAVE_USABLE_ICONV=cross)])
48
49         if test x"$netatalk_cv_HAVE_USABLE_ICONV" = x"yes"; then
50             AC_DEFINE(HAVE_USABLE_ICONV,1,[Whether to use native iconv])
51         fi
52
53 dnl     ###########
54 dnl     # check if iconv needs const
55         if test x"$netatalk_cv_HAVE_USABLE_ICONV" = x"yes"; then
56                 AC_CACHE_VAL(am_cv_proto_iconv, [
57                 AC_TRY_COMPILE([\
58 #include <stdlib.h>
59 #include <iconv.h>
60 extern
61 #ifdef __cplusplus
62 "C"
63 #endif
64 #if defined(__STDC__) || defined(__cplusplus)
65 size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
66 #else
67 size_t iconv();
68 #endif
69 ], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const")
70                 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);"])
71                 AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1,
72                         [Define as const if the declaration of iconv() needs const.])
73         fi
74         CFLAGS="$savedcflags"
75         LDFLAGS="$savedldflags"
76         CPPFLAGS="$saved_CPPFLAGS"
77         
78 ])