1 dnl Macros that test for specific features.
2 dnl This file is part of the Autoconf packaging for Ethereal.
3 dnl Copyright (C) 1998-2000 by Gerald Combs.
5 dnl $Id: acinclude.m4,v 1.15 1999/11/30 22:45:09 gram Exp $
7 dnl This program is free software; you can redistribute it and/or modify
8 dnl it under the terms of the GNU General Public License as published by
9 dnl the Free Software Foundation; either version 2, or (at your option)
10 dnl any later version.
12 dnl This program is distributed in the hope that it will be useful,
13 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
14 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 dnl GNU General Public License for more details.
17 dnl You should have received a copy of the GNU General Public License
18 dnl along with this program; if not, write to the Free Software
19 dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
22 dnl As a special exception, the Free Software Foundation gives unlimited
23 dnl permission to copy, distribute and modify the configure scripts that
24 dnl are the output of Autoconf. You need not follow the terms of the GNU
25 dnl General Public License when using or distributing such scripts, even
26 dnl though portions of the text of Autoconf appear in them. The GNU
27 dnl General Public License (GPL) does govern all other use of the material
28 dnl that constitutes the Autoconf program.
30 dnl Certain portions of the Autoconf source text are designed to be copied
31 dnl (in certain cases, depending on the input) into the output of
32 dnl Autoconf. We call these the "data" portions. The rest of the Autoconf
33 dnl source text consists of comments plus executable code that decides which
34 dnl of the data portions to output in any given case. We call these
35 dnl comments and executable code the "non-data" portions. Autoconf never
36 dnl copies any of the non-data portions into its output.
38 dnl This special exception to the GPL applies to versions of Autoconf
39 dnl released by the Free Software Foundation. When you make and
40 dnl distribute a modified version of Autoconf, you may extend this special
41 dnl exception to the GPL to apply to your modified version as well, *unless*
42 dnl your modified version has the potential to copy into its output some
43 dnl of the text that was the non-data portion of the version that you started
44 dnl with. (In other words, unless your change moves or copies text from
45 dnl the non-data portions to the data portions.) If your modification has
46 dnl such potential, you must delete any notice of this special exception
47 dnl to the GPL from your modified version.
49 dnl Written by David MacKenzie, with help from
50 dnl Franc,ois Pinard, Karl Berry, Richard Pixley, Ian Lance Taylor,
51 dnl Roland McGrath, Noah Friedman, david d zuhn, and many others.
54 # AC_ETHEREAL_STRUCT_SA_LEN
56 dnl AC_STRUCT_ST_BLKSIZE extracted from the file in qustion,
57 dnl "acspecific.m4" in GNU Autoconf 2.12, and turned into
58 dnl AC_ETHEREAL_STRUCT_SA_LEN, which checks if "struct sockaddr"
59 dnl has the 4.4BSD "sa_len" member, and defines HAVE_SA_LEN; that's
60 dnl what's in this file.
61 dnl Done by Guy Harris <guy@alum.mit.edu> on 1998-11-14.
63 dnl ### Checks for structure members
65 AC_DEFUN(AC_ETHEREAL_STRUCT_SA_LEN,
66 [AC_CACHE_CHECK([for sa_len in struct sockaddr], ac_cv_ethereal_struct_sa_len,
67 [AC_TRY_COMPILE([#include <sys/types.h>
68 #include <sys/socket.h>], [struct sockaddr s; s.sa_len;],
69 ac_cv_ethereal_struct_sa_len=yes, ac_cv_ethereal_struct_sa_len=no)])
70 if test $ac_cv_ethereal_struct_sa_len = yes; then
71 AC_DEFINE(HAVE_SA_LEN)
77 # AC_ETHEREAL_IPV6_STACK
79 # By Jun-ichiro "itojun" Hagino, <itojun@iijlab.net>
81 AC_DEFUN(AC_ETHEREAL_IPV6_STACK,
86 AC_MSG_CHECKING([ipv6 stack type])
87 for i in v6d toshiba kame inria zeta linux; do
90 AC_EGREP_CPP(yes, [dnl
91 #include </usr/local/v6/include/sys/types.h>
96 v6libdir=/usr/local/v6/lib;
97 CFLAGS="-I/usr/local/v6/include $CFLAGS"])
100 AC_EGREP_CPP(yes, [dnl
101 #include <sys/param.h>
102 #ifdef _TOSHIBA_INET6
105 [v6type=$i; v6lib=inet6;
106 v6libdir=/usr/local/v6/lib;
107 CFLAGS="-DINET6 $CFLAGS"])
110 AC_EGREP_CPP(yes, [dnl
111 #include <netinet/in.h>
115 [v6type=$i; v6lib=inet6;
116 v6libdir=/usr/local/v6/lib;
117 CFLAGS="-DINET6 $CFLAGS"])
120 AC_EGREP_CPP(yes, [dnl
121 #include <netinet/in.h>
122 #ifdef IPV6_INRIA_VERSION
125 [v6type=$i; CFLAGS="-DINET6 $CFLAGS"])
128 AC_EGREP_CPP(yes, [dnl
129 #include <sys/param.h>
130 #ifdef _ZETA_MINAMI_INET6
133 [v6type=$i; v6lib=inet6;
134 v6libdir=/usr/local/v6/lib;
135 CFLAGS="-DINET6 $CFLAGS"])
138 if test -d /usr/inet6; then
142 CFLAGS="-DINET6 $CFLAGS"
146 if test "$v6type" != "unknown"; then
151 if test "$v6lib" != "none"; then
152 for dir in $v6libdir /usr/local/v6/lib /usr/local/lib; do
153 if test -d $dir -a -f $dir/lib$v6lib.a; then
154 LIBS="-L$dir $LIBS -l$v6lib"
162 AC_MSG_RESULT(["$v6type, $v6lib"])
166 # AC_ETHEREAL_PCAP_CHECK
168 AC_DEFUN(AC_ETHEREAL_PCAP_CHECK,
170 # Evidently, some systems have pcap.h, etc. in */include/pcap
171 AC_MSG_CHECKING(for extraneous pcap header directories)
173 for pcap_dir in /usr/include/pcap /usr/local/include/pcap $prefix/include
175 if test -d $pcap_dir ; then
176 LIBS="$LIBS -L$pcap_dir"
177 CFLAGS="$CFLAGS -I$pcap_dir"
178 CPPFLAGS="$CPPFLAGS -I$pcap_dir"
179 found_pcap_dir=" $found_pcap_dir -L$pcap_dir"
183 if test "$found_pcap_dir" != "" ; then
184 AC_MSG_RESULT(found --$found_pcap_dir added to LIBS and CFLAGS)
186 AC_MSG_RESULT(not found)
190 AC_CHECK_HEADER(net/bpf.h,,
191 AC_MSG_ERROR([[Header file net/bpf.h not found; if you installed libpcap from source, did you also do \"make install-incl\"?]]))
192 AC_CHECK_HEADER(pcap.h,, AC_MSG_ERROR(Header file pcap.h not found.))
193 AC_CHECK_LIB(pcap, pcap_open_offline,, AC_MSG_ERROR(Library libpcap not found.))
197 # AC_ETHEREAL_ZLIB_CHECK
199 AC_DEFUN(AC_ETHEREAL_ZLIB_CHECK,
201 AC_CHECK_HEADER(zlib.h,,enable_zlib=no)
204 dnl Check for "gzgets()" in zlib, because we need it, but
205 dnl some older versions of zlib don't have it. It appears
206 dnl from the ChangeLog that any released version of zlib
207 dnl with "gzgets()" should have the other routines we
208 dnl depend on, such as "gzseek()", "gztell()", and "zError()".
210 AC_CHECK_LIB(z, gzgets,,enable_zlib=no)
214 # AC_ETHEREAL_UCDSNMP_CHECK
216 AC_DEFUN(AC_ETHEREAL_UCDSNMP_CHECK,
221 [ --with-ucdsnmp=DIR use UCD SNMP client library, located in directory DIR.], [
222 if test $withval = no
227 ucdsnmp_user_dir=$withval
231 if test $want_ucdsnmp = yes
235 for d in $ucdsnmp_user_dir $prefix
239 AC_MSG_CHECKING($d for ucd-snmp)
241 if test x$d != x/usr/local && test -f $d/include/ucd-snmp/snmp.h
247 AC_MSG_RESULT(not found)
252 if test x$ucdsnmpdir != x
254 AC_MSG_RESULT(added $d to paths)
255 CFLAGS="$CFLAGS -I${ucdsnmpdir}/include"
256 CPPFLAGS="$CPPFLAGS -I${ucdsnmpdir}/include"
257 LIBS="$LIBS -L${ucdsnmpdir}/lib"