dnl pcap.h winds up in wierd places. AC_DEFUN(AC_WF_CHECK_PCAP_HEADER_DIR, [AC_MSG_CHECKING(for pcap header directory) ac_pcap_header_dir="none" for dir in $prefix/include /include /usr/include /usr/local/include /include/pcap /usr/include/pcap /usr/local/include/pcap do if test -f "$dir/pcap.h" ; then ac_pcap_header_dir=$dir fi done if test $ac_pcap_header_dir = "none" ; then AC_MSG_ERROR([ I cannot find the pcap header file anywhere. Perhaps you did not install the pcap package, or you did not install its development header files.], 1) fi AC_MSG_RESULT($ac_pcap_header_dir)]) dnl on some broken systems /usr/local/lib is not in the linker's dnl default path. so we'll sift about. AC_DEFUN(AC_WF_CHECK_PCAP_LIB_DIR, [AC_MSG_CHECKING(for pcap library directory) ac_pcap_lib_dir="none" for dir in $prefix/lib /lib /usr/lib /usr/local/lib do if test -f "$dir/libpcap.a" ; then ac_pcap_lib_dir=$dir fi done if test $ac_pcap_lib_dir = "none" ; then AC_MSG_ERROR([ I cannot find the pcap library anywhere. Perhaps you did not install the pcap package, or you did not install its development header files.], 1) fi AC_MSG_RESULT($ac_pcap_lib_dir)]) AC_DEFUN(AC_WF_TRY_PRI_MACROS, [AC_MSG_CHECKING(for stdint conversion macros) AC_TRY_COMPILE([#include #include #include ], [uint32_t t=1; printf("%"PRIu32, t);], [AC_MSG_RESULT(found) have_primacros="yes"], AC_MSG_RESULT(not found))]) AC_DEFUN(AC_WF_CHECK_KILL_SIGNAL_DETECT, [AC_MSG_CHECKING(if kill(0, pid) can be used to detect a process) AC_TRY_RUN([ /* Check the behaviour of kill(pid, 0). * We expect it to return 0 for an existing process that we can * signal, and < 0 otherwise. */ #include #include #include #include #include #include int main(int argc, char *argv[]) { pid_t child_pid; int kill_existing, kill_nonexisting; int wait_status; child_pid = fork(); if (child_pid == -1) { perror("fork"); exit(1); } else if (child_pid == 0) { (void)sleep(3600); _exit(0); } kill_existing = kill(child_pid, 0); (void)kill(child_pid, SIGTERM); (void)wait(&wait_status); kill_nonexisting = kill(child_pid, 0); if (kill_existing == 0 && kill_nonexisting < 0) exit(0); /* the behaviour we expect */ else fprintf(stderr, "error: returned (%d,%d); expecting (0,-1)\n", kill_existing, kill_nonexisting); exit(1); } ], [AC_DEFINE(KILL_SIGNAL_DETECT, 1, [kill(pid, 0) can be used to detect a process we can signal]) AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no)])]) AC_DEFUN(AC_WF_CHECK_BPF_IMMEDIATE, [AC_MSG_CHECKING(for bpf immediate ioctl) AC_TRY_COMPILE([#include #include #include #include #include #include #include ], [ ioctl(0, BIOCIMMEDIATE, NULL);], [AC_MSG_RESULT(found) AC_DEFINE(HAVE_BPF_IMMEDIATE, 1, [have BPF_IMMEDIATE])], AC_MSG_RESULT(not found))])