1 dnl @(#) $Header: /pub/NetBSD/misc/repositories/cvsroot/src/dist/libpcap/aclocal.m4,v 1.1.1.1 2006/02/27 15:45:40 drochner Exp $ (LBL)
3 dnl Copyright (c) 1995, 1996, 1997, 1998
4 dnl The Regents of the University of California. All rights reserved.
6 dnl Redistribution and use in source and binary forms, with or without
7 dnl modification, are permitted provided that: (1) source code distributions
8 dnl retain the above copyright notice and this paragraph in its entirety, (2)
9 dnl distributions including binary code include the above copyright notice and
10 dnl this paragraph in its entirety in the documentation or other materials
11 dnl provided with the distribution, and (3) all advertising materials mentioning
12 dnl features or use of this software display the following acknowledgement:
13 dnl ``This product includes software developed by the University of California,
14 dnl Lawrence Berkeley Laboratory and its contributors.'' Neither the name of
15 dnl the University nor the names of its contributors may be used to endorse
16 dnl or promote products derived from this software without specific prior
17 dnl written permission.
18 dnl THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
19 dnl WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
20 dnl MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
22 dnl LBL autoconf macros
26 dnl Determine which compiler we're using (cc or gcc)
27 dnl If using gcc, determine the version number
28 dnl If using cc, require that it support ansi prototypes
29 dnl If using gcc, use -O2 (otherwise use -O)
30 dnl If using cc, explicitly specify /usr/local/include
34 dnl AC_LBL_C_INIT(copt, incls)
42 dnl ac_cv_lbl_gcc_vers
45 AC_DEFUN(AC_LBL_C_INIT,
47 AC_BEFORE([$0], [AC_PROG_CC])
48 AC_BEFORE([$0], [AC_LBL_FIXINCLUDES])
49 AC_BEFORE([$0], [AC_LBL_DEVEL])
50 AC_ARG_WITH(gcc, [ --without-gcc don't use gcc])
53 if test "${srcdir}" != "." ; then
56 if test "${CFLAGS+set}" = set; then
59 if test -z "$CC" ; then
63 AC_CHECK_PROG(SHLICC2, shlicc2, yes, no)
64 if test $SHLICC2 = yes ; then
71 if test -z "$CC" -a "$with_gcc" = no ; then
76 if test "$GCC" = yes ; then
77 if test "$SHLICC2" = yes ; then
81 AC_MSG_CHECKING(gcc version)
82 AC_CACHE_VAL(ac_cv_lbl_gcc_vers,
83 ac_cv_lbl_gcc_vers=`$CC -v 2>&1 | \
84 sed -e '/^gcc version /!d' \
85 -e 's/^gcc version //' \
86 -e 's/ .*//' -e 's/^[[[^0-9]]]*//' \
88 AC_MSG_RESULT($ac_cv_lbl_gcc_vers)
89 if test $ac_cv_lbl_gcc_vers -gt 1 ; then
94 AC_MSG_CHECKING(that $CC handles ansi prototypes)
95 AC_CACHE_VAL(ac_cv_lbl_cc_ansi_prototypes,
97 [#include <sys/types.h>],
98 [int frob(int, char *)],
99 ac_cv_lbl_cc_ansi_prototypes=yes,
100 ac_cv_lbl_cc_ansi_prototypes=no))
101 AC_MSG_RESULT($ac_cv_lbl_cc_ansi_prototypes)
102 if test $ac_cv_lbl_cc_ansi_prototypes = no ; then
106 AC_MSG_CHECKING(for HP-UX ansi compiler ($CC -Aa -D_HPUX_SOURCE))
107 savedcflags="$CFLAGS"
108 CFLAGS="-Aa -D_HPUX_SOURCE $CFLAGS"
109 AC_CACHE_VAL(ac_cv_lbl_cc_hpux_cc_aa,
111 [#include <sys/types.h>],
112 [int frob(int, char *)],
113 ac_cv_lbl_cc_hpux_cc_aa=yes,
114 ac_cv_lbl_cc_hpux_cc_aa=no))
115 AC_MSG_RESULT($ac_cv_lbl_cc_hpux_cc_aa)
116 if test $ac_cv_lbl_cc_hpux_cc_aa = no ; then
117 AC_MSG_ERROR(see the INSTALL doc for more info)
119 CFLAGS="$savedcflags"
120 V_CCOPT="-Aa $V_CCOPT"
121 AC_DEFINE(_HPUX_SOURCE,1,[needed on HP-UX])
125 AC_MSG_ERROR(see the INSTALL doc for more info)
129 $2="$$2 -I/usr/local/include"
130 LDFLAGS="$LDFLAGS -L/usr/local/lib"
135 V_CCOPT="$V_CCOPT -xansi -signed -g3"
139 V_CCOPT="$V_CCOPT -std1 -g3"
143 AC_MSG_CHECKING(that Ultrix $CC hacks const in prototypes)
144 AC_CACHE_VAL(ac_cv_lbl_cc_const_proto,
146 [#include <sys/types.h>],
147 [struct a { int b; };
148 void c(const struct a *)],
149 ac_cv_lbl_cc_const_proto=yes,
150 ac_cv_lbl_cc_const_proto=no))
151 AC_MSG_RESULT($ac_cv_lbl_cc_const_proto)
152 if test $ac_cv_lbl_cc_const_proto = no ; then
161 # Try compiling a sample of the type of code that appears in
162 # gencode.c with "inline", "__inline__", and "__inline".
164 # Autoconf's AC_C_INLINE, at least in autoconf 2.13, isn't good enough,
165 # as it just tests whether a function returning "int" can be inlined;
166 # at least some versions of HP's C compiler can inline that, but can't
167 # inline a function that returns a struct pointer.
169 # Make sure we use the V_CCOPT flags, because some of those might
172 AC_DEFUN(AC_LBL_C_INLINE,
173 [AC_MSG_CHECKING(for inline)
174 save_CFLAGS="$CFLAGS"
176 AC_CACHE_VAL(ac_cv_lbl_inline, [
179 for ac_lbl_inline in inline __inline__ __inline
182 [#define inline $ac_lbl_inline
183 static inline struct iltest *foo(void);
189 static inline struct iltest *
192 static struct iltest xxx;
195 }],,ac_lbl_cc_inline=yes,)
196 if test "$ac_lbl_cc_inline" = yes ; then
200 if test "$ac_lbl_cc_inline" = yes ; then
201 ac_cv_lbl_inline=$ac_lbl_inline
203 CFLAGS="$save_CFLAGS"
204 if test ! -z "$ac_cv_lbl_inline" ; then
205 AC_MSG_RESULT($ac_cv_lbl_inline)
209 AC_DEFINE_UNQUOTED(inline, $ac_cv_lbl_inline, [Define as token for inline if inlining supported])])
212 dnl Use pfopen.c if available and pfopen() not in standard libraries
214 dnl Look for libpcap in ..
215 dnl Use the installed libpcap if there is no local version
219 dnl AC_LBL_LIBPCAP(pcapdep, incls)
224 dnl $2 (incls appended)
228 AC_DEFUN(AC_LBL_LIBPCAP,
229 [AC_REQUIRE([AC_LBL_LIBRARY_NET])
231 dnl save a copy before locating libpcap.a
234 pfopen=/usr/examples/packetfilter/pfopen.c
235 if test -f $pfopen ; then
236 AC_CHECK_FUNCS(pfopen)
237 if test $ac_cv_func_pfopen = "no" ; then
238 AC_MSG_RESULT(Using $pfopen)
242 AC_MSG_CHECKING(for local pcap library)
245 places=`ls .. | sed -e 's,/$,,' -e 's,^,../,' | \
246 egrep '/libpcap-[[0-9]]*\.[[0-9]]*(\.[[0-9]]*)?([[ab]][[0-9]]*)?$'`
247 for dir in $places ../libpcap libpcap ; do
248 basedir=`echo $dir | sed -e 's/[[ab]][[0-9]]*$//'`
249 if test $lastdir = $basedir ; then
250 dnl skip alphas when an actual release is present
254 if test -r $dir/pcap.c ; then
255 libpcap=$dir/libpcap.a
257 dnl continue and select the last one that exists
260 if test $libpcap = FAIL ; then
261 AC_MSG_RESULT(not found)
262 AC_CHECK_LIB(pcap, main, libpcap="-lpcap")
263 if test $libpcap = FAIL ; then
264 AC_MSG_ERROR(see the INSTALL doc for more info)
269 AC_MSG_RESULT($libpcap)
271 LIBS="$libpcap $LIBS"
275 pseexe="/lib/pse.exp"
276 AC_MSG_CHECKING(for $pseexe)
277 if test -f $pseexe ; then
279 LIBS="$LIBS -I:$pseexe"
285 dnl Define RETSIGTYPE and RETSIGVAL
289 dnl AC_LBL_TYPE_SIGNAL
293 dnl RETSIGTYPE (defined)
294 dnl RETSIGVAL (defined)
296 AC_DEFUN(AC_LBL_TYPE_SIGNAL,
297 [AC_BEFORE([$0], [AC_LBL_LIBPCAP])
299 if test "$ac_cv_type_signal" = void ; then
300 AC_DEFINE(RETSIGVAL,[],[return value of signal handlers])
302 AC_DEFINE(RETSIGVAL,(0),[return value of signal handlers])
307 AC_DEFINE(_BSD_SIGNALS,1,[get BSD semantics on Irix])
311 dnl prefer sigset() to sigaction()
312 AC_CHECK_FUNCS(sigset)
313 if test $ac_cv_func_sigset = no ; then
314 AC_CHECK_FUNCS(sigaction)
320 dnl If using gcc, make sure we have ANSI ioctl definitions
324 dnl AC_LBL_FIXINCLUDES
326 AC_DEFUN(AC_LBL_FIXINCLUDES,
327 [if test "$GCC" = yes ; then
328 AC_MSG_CHECKING(for ANSI ioctl definitions)
329 AC_CACHE_VAL(ac_cv_lbl_gcc_fixincludes,
332 * This generates a "duplicate case value" when fixincludes
335 # include <sys/types.h>
336 # include <sys/time.h>
337 # include <sys/ioctl.h>
338 # ifdef HAVE_SYS_IOCCOM_H
339 # include <sys/ioccom.h>
345 ac_cv_lbl_gcc_fixincludes=yes,
346 ac_cv_lbl_gcc_fixincludes=no))
347 AC_MSG_RESULT($ac_cv_lbl_gcc_fixincludes)
348 if test $ac_cv_lbl_gcc_fixincludes = no ; then
349 # Don't cache failure
350 unset ac_cv_lbl_gcc_fixincludes
351 AC_MSG_ERROR(see the INSTALL for more info)
356 dnl Check for flex, default to lex
357 dnl Require flex 2.4 or higher
358 dnl Check for bison, default to yacc
359 dnl Default to lex/yacc if both flex and bison are not available
360 dnl Define the yy prefix string if using flex and bison
364 dnl AC_LBL_LEX_AND_YACC(lex, yacc, yyprefix)
369 dnl $2 (yacc appended)
370 dnl $3 (optional flex and bison -P prefix)
372 AC_DEFUN(AC_LBL_LEX_AND_YACC,
373 [AC_ARG_WITH(flex, [ --without-flex don't use flex])
374 AC_ARG_WITH(bison, [ --without-bison don't use bison])
375 if test "$with_flex" = no ; then
378 AC_CHECK_PROGS($1, flex, lex)
380 if test "$$1" = flex ; then
381 # The -V flag was added in 2.4
382 AC_MSG_CHECKING(for flex 2.4 or higher)
383 AC_CACHE_VAL(ac_cv_lbl_flex_v24,
384 if flex -V >/dev/null 2>&1; then
385 ac_cv_lbl_flex_v24=yes
387 ac_cv_lbl_flex_v24=no
389 AC_MSG_RESULT($ac_cv_lbl_flex_v24)
390 if test $ac_cv_lbl_flex_v24 = no ; then
391 s="2.4 or higher required"
392 AC_MSG_WARN(ignoring obsolete flex executable ($s))
396 if test "$with_bison" = no ; then
399 AC_CHECK_PROGS($2, bison, yacc)
401 if test "$$2" = bison ; then
404 if test "$$1" != lex -a "$$2" = yacc -o "$$1" = lex -a "$$2" != yacc ; then
405 AC_MSG_WARN(don't have both flex and bison; reverting to lex/yacc)
409 if test "$$1" = flex -a -n "$3" ; then
415 dnl Checks to see if union wait is used with WEXITSTATUS()
419 dnl AC_LBL_UNION_WAIT
423 dnl DECLWAITSTATUS (defined)
425 AC_DEFUN(AC_LBL_UNION_WAIT,
426 [AC_MSG_CHECKING(if union wait is used)
427 AC_CACHE_VAL(ac_cv_lbl_union_wait,
429 # include <sys/types.h>
430 # include <sys/wait.h>],
432 u_int i = WEXITSTATUS(status);
433 u_int j = waitpid(0, &status, 0);],
434 ac_cv_lbl_union_wait=no,
435 ac_cv_lbl_union_wait=yes))
436 AC_MSG_RESULT($ac_cv_lbl_union_wait)
437 if test $ac_cv_lbl_union_wait = yes ; then
438 AC_DEFINE(DECLWAITSTATUS,union wait,[type for wait])
440 AC_DEFINE(DECLWAITSTATUS,int,[type for wait])
444 dnl Checks to see if the sockaddr struct has the 4.4 BSD sa_len member
448 dnl AC_LBL_SOCKADDR_SA_LEN
452 dnl HAVE_SOCKADDR_SA_LEN (defined)
454 AC_DEFUN(AC_LBL_SOCKADDR_SA_LEN,
455 [AC_MSG_CHECKING(if sockaddr struct has sa_len member)
456 AC_CACHE_VAL(ac_cv_lbl_sockaddr_has_sa_len,
458 # include <sys/types.h>
459 # include <sys/socket.h>],
460 [u_int i = sizeof(((struct sockaddr *)0)->sa_len)],
461 ac_cv_lbl_sockaddr_has_sa_len=yes,
462 ac_cv_lbl_sockaddr_has_sa_len=no))
463 AC_MSG_RESULT($ac_cv_lbl_sockaddr_has_sa_len)
464 if test $ac_cv_lbl_sockaddr_has_sa_len = yes ; then
465 AC_DEFINE(HAVE_SOCKADDR_SA_LEN,1,[if struct sockaddr has sa_len])
469 dnl Checks to see if there's a sockaddr_storage structure
473 dnl AC_LBL_SOCKADDR_STORAGE
477 dnl HAVE_SOCKADDR_STORAGE (defined)
479 AC_DEFUN(AC_LBL_SOCKADDR_STORAGE,
480 [AC_MSG_CHECKING(if sockaddr_storage struct exists)
481 AC_CACHE_VAL(ac_cv_lbl_has_sockaddr_storage,
483 # include <sys/types.h>
484 # include <sys/socket.h>],
485 [u_int i = sizeof (struct sockaddr_storage)],
486 ac_cv_lbl_has_sockaddr_storage=yes,
487 ac_cv_lbl_has_sockaddr_storage=no))
488 AC_MSG_RESULT($ac_cv_lbl_has_sockaddr_storage)
489 if test $ac_cv_lbl_has_sockaddr_storage = yes ; then
490 AC_DEFINE(HAVE_SOCKADDR_STORAGE,1,[if struct sockaddr_storage exists])
494 dnl Checks to see if the dl_hp_ppa_info_t struct has the HP-UX 11.00
495 dnl dl_module_id_1 member
499 dnl AC_LBL_HP_PPA_INFO_T_DL_MODULE_ID_1
503 dnl HAVE_HP_PPA_INFO_T_DL_MODULE_ID_1 (defined)
505 dnl NOTE: any compile failure means we conclude that it doesn't have
506 dnl that member, so if we don't have DLPI, don't have a <sys/dlpi_ext.h>
507 dnl header, or have one that doesn't declare a dl_hp_ppa_info_t type,
508 dnl we conclude it doesn't have that member (which is OK, as either we
509 dnl won't be using code that would use that member, or we wouldn't
510 dnl compile in any case).
512 AC_DEFUN(AC_LBL_HP_PPA_INFO_T_DL_MODULE_ID_1,
513 [AC_MSG_CHECKING(if dl_hp_ppa_info_t struct has dl_module_id_1 member)
514 AC_CACHE_VAL(ac_cv_lbl_dl_hp_ppa_info_t_has_dl_module_id_1,
516 # include <sys/types.h>
517 # include <sys/dlpi.h>
518 # include <sys/dlpi_ext.h>],
519 [u_int i = sizeof(((dl_hp_ppa_info_t *)0)->dl_module_id_1)],
520 ac_cv_lbl_dl_hp_ppa_info_t_has_dl_module_id_1=yes,
521 ac_cv_lbl_dl_hp_ppa_info_t_has_dl_module_id_1=no))
522 AC_MSG_RESULT($ac_cv_lbl_dl_hp_ppa_info_t_has_dl_module_id_1)
523 if test $ac_cv_lbl_dl_hp_ppa_info_t_has_dl_module_id_1 = yes ; then
524 AC_DEFINE(HAVE_HP_PPA_INFO_T_DL_MODULE_ID_1,1,[if ppa_info_t_dl_module_id exists])
528 dnl Checks to see if -R is used
532 dnl AC_LBL_HAVE_RUN_PATH
536 dnl ac_cv_lbl_have_run_path (yes or no)
538 AC_DEFUN(AC_LBL_HAVE_RUN_PATH,
539 [AC_MSG_CHECKING(for ${CC-cc} -R)
540 AC_CACHE_VAL(ac_cv_lbl_have_run_path,
541 [echo 'main(){}' > conftest.c
542 ${CC-cc} -o conftest conftest.c -R/a1/b2/c3 >conftest.out 2>&1
543 if test ! -s conftest.out ; then
544 ac_cv_lbl_have_run_path=yes
546 ac_cv_lbl_have_run_path=no
549 AC_MSG_RESULT($ac_cv_lbl_have_run_path)
553 dnl Due to the stupid way it's implemented, AC_CHECK_TYPE is nearly useless.
557 dnl AC_LBL_CHECK_TYPE
561 dnl int32_t (defined)
562 dnl u_int32_t (defined)
564 AC_DEFUN(AC_LBL_CHECK_TYPE,
565 [AC_MSG_CHECKING(for $1 using $CC)
566 AC_CACHE_VAL(ac_cv_lbl_have_$1,
568 # include "confdefs.h"
569 # include <sys/types.h>
575 ac_cv_lbl_have_$1=yes,
576 ac_cv_lbl_have_$1=no))
577 AC_MSG_RESULT($ac_cv_lbl_have_$1)
578 if test $ac_cv_lbl_have_$1 = no ; then
579 AC_DEFINE($1, $2, [if we have $1])
583 dnl Checks to see if unaligned memory accesses fail
587 dnl AC_LBL_UNALIGNED_ACCESS
591 dnl LBL_ALIGN (DEFINED)
593 AC_DEFUN(AC_LBL_UNALIGNED_ACCESS,
594 [AC_MSG_CHECKING(if unaligned accesses fail)
595 AC_CACHE_VAL(ac_cv_lbl_unaligned_fail,
599 # These are CPU types where:
601 # the CPU faults on an unaligned access, but at least some
602 # OSes that support that CPU catch the fault and simulate
603 # the unaligned access (e.g., Alpha/{Digital,Tru64} UNIX) -
604 # the simulation is slow, so we don't want to use it;
606 # the CPU, I infer (from the old
608 # XXX: should also check that they don't do weird things (like on arm)
610 # comment) doesn't fault on unaligned accesses, but doesn't
611 # do a normal unaligned fetch, either (e.g., presumably, ARM);
613 # for whatever reason, the test program doesn't work
614 # (this has been claimed to be the case for several of those
615 # CPUs - I don't know what the problem is; the problem
616 # was reported as "the test program dumps core" for SuperH,
617 # but that's what the test program is *supposed* to do -
618 # it dumps core before it writes anything, so the test
619 # for an empty output file should find an empty output
620 # file and conclude that unaligned accesses don't work).
622 # This run-time test won't work if you're cross-compiling, so
623 # in order to support cross-compiling for a particular CPU,
624 # we have to wire in the list of CPU types anyway, as far as
625 # I know, so perhaps we should just have a set of CPUs on
626 # which we know it doesn't work, a set of CPUs on which we
627 # know it does work, and have the script just fail on other
628 # cpu types and update it when such a failure occurs.
630 alpha*|arm*|hp*|mips*|sh*|sparc*|ia64|nv1)
631 ac_cv_lbl_unaligned_fail=yes
635 cat >conftest.c <<EOF
636 # include <sys/types.h>
637 # include <sys/wait.h>
639 unsigned char a[[5]] = { 1, 2, 3, 4, 5 };
644 /* avoid "core dumped" message */
650 pid = waitpid(pid, &status, 0);
653 exit(!WIFEXITED(status));
656 i = *(unsigned int *)&a[[1]];
661 ${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS \
662 conftest.c $LIBS >/dev/null 2>&1
663 if test ! -x conftest ; then
664 dnl failed to compile for some reason
665 ac_cv_lbl_unaligned_fail=yes
667 ./conftest >conftest.out
668 if test ! -s conftest.out ; then
669 ac_cv_lbl_unaligned_fail=yes
671 ac_cv_lbl_unaligned_fail=no
674 rm -f conftest* core core.conftest
677 AC_MSG_RESULT($ac_cv_lbl_unaligned_fail)
678 if test $ac_cv_lbl_unaligned_fail = yes ; then
679 AC_DEFINE(LBL_ALIGN,1,[if unaligned access fails])
683 dnl If using gcc and the file .devel exists:
684 dnl Compile with -g (if supported) and -Wall
685 dnl If using gcc 2, do extra prototype checking
686 dnl If an os prototype include exists, symlink os-proto.h to it
690 dnl AC_LBL_DEVEL(copt)
694 dnl $1 (copt appended)
695 dnl HAVE_OS_PROTO_H (defined)
696 dnl os-proto.h (symlinked)
698 AC_DEFUN(AC_LBL_DEVEL,
700 if test "${LBL_CFLAGS+set}" = set; then
701 $1="$$1 ${LBL_CFLAGS}"
703 if test -f .devel ; then
704 if test "$GCC" = yes ; then
705 if test "${LBL_CFLAGS+set}" != set; then
706 if test "$ac_cv_prog_cc_g" = yes ; then
710 if test $ac_cv_lbl_gcc_vers -gt 1 ; then
711 $1="$$1 -Wmissing-prototypes -Wstrict-prototypes"
718 V_CCOPT="$V_CCOPT -n32"
725 os=`echo $target_os | sed -e 's/\([[0-9]][[0-9]]*\)[[^0-9]].*$/\1/'`
727 if test -f $name ; then
728 ln -s $name os-proto.h
729 AC_DEFINE(HAVE_OS_PROTO_H,1,[if there's an os_proto.h])
731 AC_MSG_WARN(can't find $name)
736 dnl Improved version of AC_CHECK_LIB
738 dnl Thanks to John Hawkinson (jhawk@mit.edu)
742 dnl AC_LBL_CHECK_LIB(LIBRARY, FUNCTION [, ACTION-IF-FOUND [,
743 dnl ACTION-IF-NOT-FOUND [, OTHER-LIBRARIES]]])
750 define(AC_LBL_CHECK_LIB,
751 [AC_MSG_CHECKING([for $2 in -l$1])
752 dnl Use a cache variable name containing both the library and function name,
753 dnl because the test really is for library $1 defining function $2, not
754 dnl just for library $1. Separate tests with the same $1 and different $2's
755 dnl may have different results.
756 ac_lib_var=`echo $1['_']$2['_']$5 | sed 'y%./+- %__p__%'`
757 AC_CACHE_VAL(ac_cv_lbl_lib_$ac_lib_var,
758 [ac_save_LIBS="$LIBS"
761 ifelse([$2], [main], , dnl Avoid conflicting decl of main.
762 [/* Override any gcc2 internal prototype to avoid an error. */
763 ]ifelse(AC_LANG, CPLUSPLUS, [#ifdef __cplusplus
767 [/* We use char because int might match the return type of a gcc2
768 builtin and then its argument prototype would still apply. */
772 eval "ac_cv_lbl_lib_$ac_lib_var=yes",
773 eval "ac_cv_lbl_lib_$ac_lib_var=no")
776 if eval "test \"`echo '$ac_cv_lbl_lib_'$ac_lib_var`\" = yes"; then
780 ac_tr_lib=HAVE_LIB`echo $1 | sed -e 's/[^a-zA-Z0-9_]/_/g' \
781 -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
783 AC_DEFINE_UNQUOTED($ac_tr_lib)
794 dnl AC_LBL_LIBRARY_NET
796 dnl This test is for network applications that need socket() and
797 dnl gethostbyname() -ish functions. Under Solaris, those applications
798 dnl need to link with "-lsocket -lnsl". Under IRIX, they need to link
799 dnl with "-lnsl" but should *not* link with "-lsocket" because
800 dnl libsocket.a breaks a number of things (for instance:
801 dnl gethostbyname() under IRIX 5.2, and snoop sockets under most
802 dnl versions of IRIX).
804 dnl Unfortunately, many application developers are not aware of this,
805 dnl and mistakenly write tests that cause -lsocket to be used under
806 dnl IRIX. It is also easy to write tests that cause -lnsl to be used
807 dnl under operating systems where neither are necessary (or useful),
808 dnl such as SunOS 4.1.4, which uses -lnsl for TLI.
810 dnl This test exists so that every application developer does not test
811 dnl this in a different, and subtly broken fashion.
813 dnl It has been argued that this test should be broken up into two
814 dnl seperate tests, one for the resolver libraries, and one for the
815 dnl libraries necessary for using Sockets API. Unfortunately, the two
816 dnl are carefully intertwined and allowing the autoconf user to use
817 dnl them independantly potentially results in unfortunate ordering
818 dnl dependancies -- as such, such component macros would have to
819 dnl carefully use indirection and be aware if the other components were
820 dnl executed. Since other autoconf macros do not go to this trouble,
821 dnl and almost no applications use sockets without the resolver, this
822 dnl complexity has not been implemented.
824 dnl The check for libresolv is in case you are attempting to link
825 dnl statically and happen to have a libresolv.a lying around (and no
828 AC_DEFUN(AC_LBL_LIBRARY_NET, [
829 # Most operating systems have gethostbyname() in the default searched
830 # libraries (i.e. libc):
831 # Some OSes (eg. Solaris) place it in libnsl
832 # Some strange OSes (SINIX) have it in libsocket:
833 AC_SEARCH_LIBS(gethostbyname, nsl socket resolv)
834 # Unfortunately libsocket sometimes depends on libnsl and
835 # AC_SEARCH_LIBS isn't up to the task of handling dependencies like this.
836 if test "$ac_cv_search_gethostbyname" = "no"
838 AC_CHECK_LIB(socket, gethostbyname,
839 LIBS="-lsocket -lnsl $LIBS", , -lnsl)
841 AC_SEARCH_LIBS(socket, socket, ,
842 AC_CHECK_LIB(socket, socket, LIBS="-lsocket -lnsl $LIBS", , -lnsl))
843 # DLPI needs putmsg under HPUX so test for -lstr while we're at it
844 AC_SEARCH_LIBS(putmsg, str)
848 dnl Test for __attribute__
851 AC_DEFUN(AC_C___ATTRIBUTE__, [
852 AC_MSG_CHECKING(for __attribute__)
853 AC_CACHE_VAL(ac_cv___attribute__, [
858 static void foo(void) __attribute__ ((noreturn));
867 main(int argc, char **argv)
872 ac_cv___attribute__=yes,
873 ac_cv___attribute__=no)])
874 if test "$ac_cv___attribute__" = "yes"; then
875 AC_DEFINE(HAVE___ATTRIBUTE__, 1, [define if your compiler has __attribute__])
876 V_DEFS="$V_DEFS -D_U_=\"__attribute__((unused))\""
878 V_DEFS="$V_DEFS -D_U_=\"\""
880 AC_MSG_RESULT($ac_cv___attribute__)
884 dnl Checks to see if tpacket_stats is defined in linux/if_packet.h
885 dnl If so then pcap-linux.c can use this to report proper statistics.
889 AC_DEFUN(AC_LBL_TPACKET_STATS,
890 [AC_MSG_CHECKING(if if_packet.h has tpacket_stats defined)
891 AC_CACHE_VAL(ac_cv_lbl_tpacket_stats,
893 # include <linux/if_packet.h>],
894 [struct tpacket_stats stats],
895 ac_cv_lbl_tpacket_stats=yes,
896 ac_cv_lbl_tpacket_stats=no))
897 AC_MSG_RESULT($ac_cv_lbl_tpacket_stats)
898 if test $ac_cv_lbl_tpacket_stats = yes; then
899 AC_DEFINE(HAVE_TPACKET_STATS,1,[if if_packet.h has tpacket_stats defined])