]> arthur.barton.de Git - netatalk.git/commitdiff
macros for iconv() function, from Björn Fernhomberg cups patch.
authordidg <didg>
Sun, 9 Mar 2003 17:33:33 +0000 (17:33 +0000)
committerdidg <didg>
Sun, 9 Mar 2003 17:33:33 +0000 (17:33 +0000)
macros/iconv.m4 [new file with mode: 0644]

diff --git a/macros/iconv.m4 b/macros/iconv.m4
new file mode 100644 (file)
index 0000000..43450bd
--- /dev/null
@@ -0,0 +1,74 @@
+AC_DEFUN([AM_ICONV],
+[
+
+dnl    #################################################
+dnl    # check for libiconv support
+       AC_MSG_CHECKING(whether to use libiconv)
+       AC_ARG_WITH(libiconv,
+       [  --with-libiconv=BASEDIR Use libiconv in BASEDIR/lib and BASEDIR/include (default=auto) ],
+       [ case "$withval" in
+         no)
+           AC_MSG_RESULT(no)
+           ;;
+         *)
+           AC_MSG_RESULT(yes)
+            savedcflags="$CFLAGS"
+            savedldflags="$LDFLAGS"
+           CFLAGS="$CFLAGS -I$withval/include"
+           LDFLAGS="$LDFLAGS -L$withval/lib"
+           AC_CHECK_LIB(iconv, iconv_open, [
+                                if test "$withval" != "/usr" && "$withval" != ""; then
+                                    ICONV_CFLAGS="-I$withval/include"
+                                    ICONV_LIBS ="-L$withval/lib"
+                                fi
+                                ICONV_LIBS="$ICONV_LIBS -liconv"
+                        ])
+           AC_DEFINE_UNQUOTED(WITH_LIBICONV, "${withval}",[Path to iconv])
+           ;;
+         esac ],
+         AC_MSG_RESULT(no)
+       )
+       AC_SUBST(ICONV_CFLAGS)
+       AC_SUBST(ICONV_LIBS)
+
+dnl    ############
+dnl    # check for iconv usability
+       AC_CACHE_CHECK([for working iconv],netatalk_cv_HAVE_USABLE_ICONV,[
+               AC_TRY_RUN([
+       #include <iconv.h>
+       main() {
+              iconv_t cd = iconv_open("MAC", "UTF8");
+              if (cd == 0 || cd == (iconv_t)-1) return -1;
+              return 0;
+       }
+       ], netatalk_cv_HAVE_USABLE_ICONV=yes,netatalk_cv_HAVE_USABLE_ICONV=no,netatalk_cv_HAVE_USABLE_ICONV=cross)])
+
+       if test x"$netatalk_cv_HAVE_USABLE_ICONV" = x"yes"; then
+           AC_DEFINE(HAVE_USABLE_ICONV,1,[Whether to use native iconv])
+       fi
+
+dnl    ###########
+dnl    # check if iconv needs const
+       if test x"$cv_HAVE_USABLE_ICONV" = x"yes"; then
+               AC_CACHE_VAL(am_cv_proto_iconv, [
+               AC_TRY_COMPILE([
+               #include <stdlib.h>
+               #include <iconv.h>
+               extern
+               #ifdef __cplusplus
+               "C"
+               #endif
+               #if defined(__STDC__) || defined(__cplusplus)
+               size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
+               #else
+               size_t iconv();
+               #endif
+               ], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const")
+               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);"])
+               AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1,
+                       [Define as const if the declaration of iconv() needs const.])
+       fi
+        CFLAGS="$savedcflags"
+        LDFLAGS="$savedldflags"
+       
+])