bugfix to a bug reported by Ian Schorr:
[obnox/wireshark/wip.git] / acinclude.m4
index 54b12f8fc66e9e0ca68943a0b6cf4efcf32a6534..69b2b8ce3f7afb017936e37e9e7e4194b90e5d77 100644 (file)
@@ -2,7 +2,7 @@ dnl Macros that test for specific features.
 dnl This file is part of the Autoconf packaging for Ethereal.
 dnl Copyright (C) 1998-2000 by Gerald Combs.
 dnl
-dnl $Id: acinclude.m4,v 1.71 2004/03/27 12:07:56 jmayer Exp $
+dnl $Id: acinclude.m4,v 1.79 2004/06/29 07:59:12 guy Exp $
 dnl
 dnl This program is free software; you can redistribute it and/or modify
 dnl it under the terms of the GNU General Public License as published by
@@ -92,6 +92,48 @@ if test $ac_cv_ethereal_struct_sa_len = yes; then
 fi
 ])
 
+
+dnl
+dnl Check whether a given format can be used to print 64-bit integers
+dnl
+AC_DEFUN([AC_ETHEREAL_CHECK_64BIT_FORMAT],
+[
+  AC_MSG_CHECKING([whether %$1x can be used to format 64-bit integers])
+  AC_RUN_IFELSE(
+    [
+      AC_LANG_SOURCE(
+       [[
+#        ifdef HAVE_INTTYPES_H
+         #include <inttypes.h>
+#        endif
+         #include <stdio.h>
+         #include <sys/types.h>
+
+         main()
+         {
+           u_int64_t t = 1;
+           char strbuf[16+1];
+           sprintf(strbuf, "%016$1x", t << 32);
+           if (strcmp(strbuf, "0000000100000000") == 0)
+             exit(0);
+           else
+             exit(1);
+         }
+       ]])
+    ],
+    [
+      AC_DEFINE(PRId64, "$1d", [Format for printing 64-bit signed decimal numbers])
+      AC_DEFINE(PRIo64, "$1o", [Format for printing 64-bit unsigned octal numbers])
+      AC_DEFINE(PRIx64, "$1x", [Format for printing 64-bit unsigned hexadecimal numbers])
+      AC_DEFINE(PRIu64, "$1u", [Format for printing 64-bit unsigned decimal numbers])
+      AC_MSG_RESULT(yes)
+    ],
+    [
+      AC_MSG_RESULT(no)
+      $2
+    ])
+])
+
 #
 # AC_ETHEREAL_IPV6_STACK
 #
@@ -275,7 +317,11 @@ AC_DEFUN([AC_ETHEREAL_PCAP_CHECK],
          #
          AC_MSG_CHECKING(for extraneous pcap header directories)
          found_pcap_dir=""
-         for pcap_dir in /usr/include/pcap $prefix/include/pcap $prefix/include /usr/local/include/pcap
+         pcap_dir_list="/usr/include/pcap $prefix/include/pcap $prefix/include"
+         if test "x$ac_cv_enable_usr_local" = "xyes" ; then
+           pcap_dir_list="$pcap_dir_list /usr/local/include/pcap"
+         fi
+         for pcap_dir in $pcap_dir_list
          do
            if test -d $pcap_dir ; then
                if test x$pcap_dir != x/usr/include -a x$pcap_dir != x/usr/local/include ; then
@@ -874,18 +920,20 @@ AC_DEFUN([AC_ETHEREAL_KRB5_CHECK],
          CFLAGS="$CFLAGS -I$krb5_dir/include"
          ethereal_save_CPPFLAGS="$CPPFLAGS"
          CPPFLAGS="$CPPFLAGS -I$krb5_dir/include"
-         ethereal_save_LIBS="$LIBS"
-         LIBS="$LIBS -lkrb5 -lasn1 -lcrypto -lroken -lcrypt -lresolv"
+         #ethereal_save_LIBS="$LIBS"
+         #LIBS="$LIBS -lkrb5 -lasn1 -lcrypto -lroken -lcrypt -lresolv"
+         KRB5_LIBS="-lkrb5 -lasn1 -lcrypto -lroken -lcrypt -lresolv"
          ethereal_save_LDFLAGS="$LDFLAGS"
          LDFLAGS="$LDFLAGS -L$krb5_dir/lib"
+         ac_krb5_version=`grep -i heimdal $krb5_dir/include/krb5.h | head -n 1 | sed 's/^.*heimdal.*$/HEIMDAL/i'` 
        else
          AC_PATH_PROG(KRB5_CONFIG, krb5-config) 
-         if test -x $KRB5_CONFIG
+         if test -x "$KRB5_CONFIG"
          then
-           KRB5_FLAGS=`$KRB5_CONFIG --cflags`
+           KRB5_FLAGS=`"$KRB5_CONFIG" --cflags`
            CFLAGS="$CFLAGS $KRB5_FLAGS"
             CPPFLAGS="$CPPFLAGS $KRB5_FLAGS"
-           KRB5_LIBS=`$KRB5_CONFIG --libs`
+           KRB5_LIBS=`"$KRB5_CONFIG" --libs`
            # Looks like krb5-config is lacking -lresolv on some systems
            AC_MSG_CHECKING(whether library list looks OK)
            if echo "$KRB5_LIBS" | grep resolv >/dev/null
@@ -896,8 +944,8 @@ AC_DEFUN([AC_ETHEREAL_KRB5_CHECK],
                AC_MSG_RESULT(Adding -lresolv to libs)
            fi
 
-           LIBS="$LIBS $KRB5_LIBS"
-           ac_krb5_version=`$KRB5_CONFIG --version | head -n 1 | sed 's/^.*heimdal.*$/HEIMDAL/i'`
+           #LIBS="$LIBS $KRB5_LIBS"
+           ac_krb5_version=`"$KRB5_CONFIG" --version | head -n 1 | sed 's/^.*heimdal.*$/HEIMDAL/i'`
          fi
        fi
 
@@ -945,7 +993,7 @@ AC_DEFUN([AC_ETHEREAL_KRB5_CHECK],
                        if test "x$krb5_dir" != "x"
                        then
                                #
-                               # Put the "-I" and "-L" flags for pcre at
+                               # Put the "-I" and "-L" flags for krb5 at
                                # the beginning of CFLAGS, CPPFLAGS,
                                # LDFLAGS, and LIBS.
                                #
@@ -965,14 +1013,15 @@ AC_DEFUN([AC_ETHEREAL_KRB5_CHECK],
                                CFLAGS="$ethereal_save_CFLAGS"
                                CPPFLAGS="$ethereal_save_CPPFLAGS"
                                LDFLAGS="$ethereal_save_LDFLAGS"
-                               LIBS="$ethereal_save_LIBS"
+                               #LIBS="$ethereal_save_LIBS"
                                KRB5_LIBS=""
                        fi
                        want_krb5=no
-               ])
-               AC_SUBST(KRB5_LIBS)
+               ], $KRB5_LIBS)
        else
+               KRB5_LIBS=""
                want_krb5=no
        fi
+       AC_SUBST(KRB5_LIBS)
 ])