aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGerald Combs <gerald@wireshark.org>2006-07-13 18:17:32 +0000
committerGerald Combs <gerald@wireshark.org>2006-07-13 18:17:32 +0000
commita832d689c6723f75fba9ebdd330f7cdc16a87505 (patch)
treeea7c536125331094ad4c3c1de2419a96c9f461ad
parent8b9e4e40e4fcb3d210a5a95d97b148eacf4e60bb (diff)
Under Solaris (9, at least) the "iconv.h" header supplied with GNU libiconv
is incompatible with the iconv routines in libc. Add an aclocal macro from Bruno Haible that sorts everything out. svn path=/trunk/; revision=18729
-rw-r--r--Makefile.am2
-rw-r--r--aclocal-fallback/iconv.m472
-rw-r--r--configure.in4
3 files changed, 77 insertions, 1 deletions
diff --git a/Makefile.am b/Makefile.am
index f1c8a901cb..5f0dabb06b 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -314,6 +314,7 @@ wireshark_LDADD = \
$(plugin_ldadd) \
@PCRE_LIBS@ \
@PCAP_LIBS@ @GTK_LIBS@ @ADNS_LIBS@ @KRB5_LIBS@ @FRAMEWORKS@ \
+ @LIBICONV@ \
@LIBGNUTLS_LIBS@
# Additional libs that I know how to build. These will be
@@ -520,6 +521,7 @@ EXTRA_DIST = \
aclocal-fallback/glib.m4 \
aclocal-fallback/gtk-2.0.m4 \
aclocal-fallback/gtk.m4 \
+ aclocal-fallback/iconv.m4 \
aclocal-flags \
autogen.sh \
capinfos.c \
diff --git a/aclocal-fallback/iconv.m4 b/aclocal-fallback/iconv.m4
new file mode 100644
index 0000000000..36684105e3
--- /dev/null
+++ b/aclocal-fallback/iconv.m4
@@ -0,0 +1,72 @@
+dnl Copied from: http://gcc.gnu.org/ml/gcc-bugs/2001-06/msg01398.html
+
+#serial AM2
+
+dnl From Bruno Haible.
+
+AC_DEFUN([AM_ICONV],
+[
+ dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and
+ dnl those with the standalone portable GNU libiconv installed).
+
+ AC_ARG_WITH([libiconv-prefix],
+[ --with-libiconv-prefix=DIR search for libiconv in DIR/include and DIR/lib], [
+ for dir in `echo "$withval" | tr : ' '`; do
+ if test -d $dir/include; then CPPFLAGS="$CPPFLAGS -I$dir/include"; fi
+ if test -d $dir/lib; then LDFLAGS="$LDFLAGS -L$dir/lib"; fi
+ done
+ ])
+
+ AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [
+ am_cv_func_iconv="no, consider installing GNU libiconv"
+ am_cv_lib_iconv=no
+ AC_TRY_LINK([#include <stdlib.h>
+#include <iconv.h>],
+ [iconv_t cd = iconv_open("","");
+ iconv(cd,NULL,NULL,NULL,NULL);
+ iconv_close(cd);],
+ am_cv_func_iconv=yes)
+ if test "$am_cv_func_iconv" != yes; then
+ am_save_LIBS="$LIBS"
+ LIBS="$LIBS -liconv"
+ AC_TRY_LINK([#include <stdlib.h>
+#include <iconv.h>],
+ [iconv_t cd = iconv_open("","");
+ iconv(cd,NULL,NULL,NULL,NULL);
+ iconv_close(cd);],
+ am_cv_lib_iconv=yes
+ am_cv_func_iconv=yes)
+ LIBS="$am_save_LIBS"
+ fi
+ ])
+ if test "$am_cv_func_iconv" = yes; then
+ AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.])
+ AC_MSG_CHECKING([for iconv declaration])
+ 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);"])
+ am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'`
+ AC_MSG_RESULT([$]{ac_t:-
+ }[$]am_cv_proto_iconv)
+ AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1,
+ [Define as const if the declaration of iconv() needs const.])
+ fi
+ LIBICONV=
+ if test "$am_cv_lib_iconv" = yes; then
+ LIBICONV="-liconv"
+ fi
+ AC_SUBST(LIBICONV)
+])
+
diff --git a/configure.in b/configure.in
index 42d069be28..676ffc6e4f 100644
--- a/configure.in
+++ b/configure.in
@@ -854,7 +854,9 @@ AC_CHECK_HEADERS(direct.h dirent.h fcntl.h netdb.h stdarg.h stddef.h unistd.h)
AC_CHECK_HEADERS(sys/ioctl.h sys/param.h sys/socket.h sys/sockio.h sys/stat.h sys/time.h sys/types.h sys/utsname.h sys/wait.h)
AC_CHECK_HEADERS(netinet/in.h)
AC_CHECK_HEADERS(arpa/inet.h arpa/nameser.h)
-AC_CHECK_HEADERS(iconv.h)
+
+dnl iconv check
+AM_ICONV
dnl SSL Check
SSL_LIBS=''