--- embedaddon/arping/configure.ac 2012/02/21 22:16:27 1.1.1.1 +++ embedaddon/arping/configure.ac 2017/01/23 14:36:33 1.1.1.3.2.1 @@ -2,7 +2,7 @@ # Process this file with autoconf to produce a configure script. AC_PREREQ(2.61) -AC_INIT(arping, 2.09, thomas@habets.pp.se) +AC_INIT(arping, 2.15, thomas@habets.se) AC_CANONICAL_SYSTEM AC_CONFIG_SRCDIR([src/arping.c]) AM_INIT_AUTOMAKE @@ -16,12 +16,16 @@ AC_PROG_INSTALL AC_PROG_MAKE_SET # Checks for libraries. +AC_CHECK_LIB([m], [sqrt]) AC_CHECK_LIB([socket], [socket]) AC_CHECK_LIB([nsl], [gethostbyname]) +AC_CHECK_LIB([cap], [cap_init]) +AC_CHECK_LIB([rt], [clock_gettime]) AC_CHECK_LIB([net], [libnet_name_resolve], [AC_MSG_ERROR([libnet 1.0.x found. Arping 2.x requires libnet 1.1.x])]) AC_CHECK_LIB([net], [libnet_init], ,[AC_MSG_ERROR([libnet 1.1.x not found])]) AC_CHECK_LIB([pcap], [pcap_open_live], ,[AC_MSG_ERROR([libpcap not found])]) +AC_SEARCH_LIBS([clock_gettime], [rt]) # Checks for header files. AC_HEADER_STDC @@ -30,12 +34,15 @@ arpa/inet.h \ netinet/in.h \ stdlib.h \ sys/socket.h \ +time.h \ sys/time.h \ sys/types.h \ +sys/capability.h \ stdint.h \ libnet.h \ win32/libnet.h \ net/bpf.h \ +pwd.h \ unistd.h]) # Libnet include file is not optional @@ -57,19 +64,51 @@ AC_PROG_GCC_TRADITIONAL AC_FUNC_SELECT_ARGTYPES AC_FUNC_SETVBUF_REVERSED AC_TYPE_SIGNAL -AC_CHECK_FUNCS([gettimeofday memset select strchr strdup strerror strstr]) +AC_CHECK_FUNCS([gettimeofday memset select strchr strdup strerror strstr \ +getifaddrs cap_init pcap_create pcap_list_tstamp_types pcap_set_immediate_mode]) -case "$target_os" in - *linux*) - AC_LIBOBJ([findif_linux]) - ;; - *freebsd*|*openbsd*|*solaris*) - AC_LIBOBJ([findif_bsd]) - ;; - *) - AC_LIBOBJ([findif_other]) - ;; -esac +if test x$ac_cv_func_getifaddrs = xyes; then + AC_LIBOBJ([findif_getifaddrs]) +else + case "$target_os" in + *linux*) + AC_LIBOBJ([findif_linux]) + ;; + *freebsd*|*openbsd*|*darwin*) + AC_LIBOBJ([findif_sysctl]) + ;; + *solaris*) + AC_LIBOBJ([findif_bsdroute]) + ;; + *) + AC_LIBOBJ([findif_other]) + ;; + esac +fi + + + +# check for CLOCK_MONOTONIC +#AC_CACHE_CHECK([for CLOCK_MONOTONIC], +# ac_cv_have_clock_monotonic, [ +# AC_TRY_RUN( +# [ +##include +##include +#int main() { +#struct timespec ts; +#exit(!!clock_gettime(CLOCK_MONOTONIC, &ts)); +#} +# ], +# [ ac_cv_have_clock_monotonic="yes" ], +# [ ac_cv_have_clock_monotonic="no" ] +# ) +#]) +#AM_CONDITIONAL(HAVE_CLOCK_MONOTONIC, test x$ac_cv_have_clock_monotonic = xyes) +#if test x$ac_cv_have_clock_monotonic = xyes; then + AC_DEFINE([HAVE_CLOCK_MONOTONIC], [1], [Monotonic clock]) +#fi + AC_CONFIG_FILES([Makefile]) AC_CONFIG_FILES([src/Makefile]) AC_CONFIG_FILES([doc/Makefile])