2018-12-05 10:50:35 -08:00
|
|
|
#
|
|
|
|
# $Id: configure.ac $
|
|
|
|
#
|
|
|
|
|
2021-10-07 14:04:12 -07:00
|
|
|
AC_INIT([yarrp],[0.8],[yarrp@cmand.org])
|
2018-12-05 10:50:35 -08:00
|
|
|
AC_CONFIG_SRCDIR([yarrp.cpp])
|
|
|
|
AC_CONFIG_AUX_DIR([build-aux])
|
2019-11-17 09:13:49 -08:00
|
|
|
AM_INIT_AUTOMAKE([-Wall foreign subdir-objects])
|
2018-12-05 10:50:35 -08:00
|
|
|
AC_CONFIG_HEADERS([config.h])
|
|
|
|
AC_CONFIG_MACRO_DIR([m4])
|
|
|
|
AC_CANONICAL_HOST
|
|
|
|
AC_PROG_CXX
|
|
|
|
AC_LANG(C++)
|
2021-08-19 08:34:49 -07:00
|
|
|
AX_CXX_COMPILE_STDCXX([17],[],[])
|
2021-03-18 15:56:45 +01:00
|
|
|
|
2018-12-05 10:50:35 -08:00
|
|
|
AC_REVISION([m4_esyscmd_s([git describe --always])])
|
|
|
|
AC_DEFINE(GITREV,"[m4_esyscmd_s([git describe --always])]", "Git revision")
|
|
|
|
|
|
|
|
AX_PTHREAD([],AC_MSG_ERROR([Requires POSIX threading.]))
|
2019-11-17 09:13:49 -08:00
|
|
|
LIBS="$PTHREAD_LIBS"
|
2018-12-05 10:50:35 -08:00
|
|
|
CXXFLAGS="$PTHREAD_CFLAGS $CXXFLAGS -I/usr/local/include"
|
|
|
|
LDFLAGS="-L/usr/local/lib"
|
|
|
|
|
|
|
|
AX_CHECK_ZLIB
|
|
|
|
|
|
|
|
AC_MSG_RESULT(Determined host operating system: $host_os)
|
|
|
|
case $host_os in
|
|
|
|
*linux*)
|
|
|
|
AC_DEFINE(OS,"LINUX",[Operating System String])
|
|
|
|
AC_DEFINE(_LINUX,1,[Define to 1 if a Linux operating system]);;
|
2020-06-27 09:30:41 -07:00
|
|
|
*freebsd*)
|
|
|
|
AC_DEFINE(OS,"FBSD",[Operating System String])
|
|
|
|
AC_DEFINE(_BSD,1,[Define to 1 if a BSD-like operating system])
|
|
|
|
freebsd_version=$(uname -K)
|
|
|
|
AX_COMPARE_VERSION($freebsd_version,[lt],[1100000],
|
|
|
|
AC_DEFINE(_OLD_BSD,1,[Define to 1 if Freebsd<11]),
|
|
|
|
AC_DEFINE(_NEW_FBSD,1,[Define to 1 if Freebsd>=11]));;
|
2018-12-05 10:50:35 -08:00
|
|
|
*bsd*)
|
|
|
|
AC_DEFINE(OS,"BSD",[Operating System String])
|
|
|
|
AC_DEFINE(_BSD,1,[Define to 1 if a BSD-like operating system]);;
|
|
|
|
*darwin*)
|
|
|
|
AC_DEFINE(OS,"OSX",[Operating System String])
|
|
|
|
AC_DEFINE(_BSD,1,[Define to 1 if a BSD-like operating system])
|
|
|
|
AC_DEFINE(_OSX,1,[Define to 1 if an Apple OSX operating system]);;
|
|
|
|
*)
|
|
|
|
AC_DEFINE(OS,"UNDEF",[Operating System String]);;
|
|
|
|
esac
|
|
|
|
|
|
|
|
# Checks for header files.
|
|
|
|
AC_CHECK_HEADERS([arpa/inet.h fcntl.h inttypes.h netdb.h])
|
2019-11-19 11:19:24 -08:00
|
|
|
AC_CHECK_HEADERS([inttypes.h],,AC_MSG_ERROR([required header file missing]))
|
2018-12-05 10:50:35 -08:00
|
|
|
AC_CHECK_HEADERS([netinet/in.h stdint.h stdlib.h string.h strings.h])
|
2019-08-30 09:23:06 -07:00
|
|
|
AC_CHECK_HEADERS([sys/param.h sys/stat.h sys/types.h sys/socket.h unistd.h])
|
2018-12-05 10:50:35 -08:00
|
|
|
AC_CHECK_HEADERS([netinet/in_systm.h netinet/udp.h])
|
|
|
|
AC_CHECK_HEADERS([netinet/tcp.h])
|
|
|
|
AC_CHECK_HEADERS([netinet/ip.h netinet/ip_icmp.h netinet/ip_var.h], [], [], [
|
|
|
|
#ifdef HAVE_SYS_TYPES_H
|
|
|
|
#include <sys/types.h>
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_NETINET_IN_SYSTM_H
|
|
|
|
#include <netinet/in_systm.h>
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_NETINET_IN_H
|
|
|
|
#include <netinet/in.h>
|
|
|
|
#endif
|
|
|
|
])
|
|
|
|
AC_CHECK_HEADERS([netinet/udp_var.h], [], [], [
|
|
|
|
#ifdef HAVE_SYS_TYPES_H
|
|
|
|
#include <sys/types.h>
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_NETINET_IN_SYSTM_H
|
|
|
|
#include <netinet/in_systm.h>
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_NETINET_IN_H
|
|
|
|
#include <netinet/in.h>
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_NETINET_UDP_H
|
|
|
|
#include <netinet/udp.h>
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_NETINET_IP_H
|
|
|
|
#include <netinet/ip_var.h>
|
|
|
|
#endif
|
|
|
|
])
|
|
|
|
|
|
|
|
# Checks for typedefs, structures, and compiler characteristics.
|
|
|
|
AC_TYPE_PID_T
|
|
|
|
AC_TYPE_SIZE_T
|
|
|
|
AC_TYPE_SSIZE_T
|
|
|
|
AC_HEADER_STDBOOL
|
|
|
|
AC_TYPE_UINT16_T
|
|
|
|
AC_TYPE_UINT32_T
|
|
|
|
AC_TYPE_UINT64_T
|
|
|
|
AC_TYPE_UINT8_T
|
|
|
|
|
|
|
|
AC_CACHE_CHECK(whether in_addr_t is defined, sip_cv_type_in_addr_t,
|
|
|
|
[AC_EGREP_HEADER(in_addr_t, netinet/in.h,
|
|
|
|
sip_cv_type_in_addr_t=yes,
|
|
|
|
sip_cv_type_in_addr_t=no)])
|
|
|
|
|
|
|
|
if test $sip_cv_type_in_addr_t = yes; then
|
|
|
|
AC_DEFINE(HAVE_IN_ADDR_T,1,[Define to 1 if type in_addr_t is available.])
|
|
|
|
fi[]
|
|
|
|
|
|
|
|
# Check architecture endianness
|
|
|
|
AC_C_BIGENDIAN
|
|
|
|
if test "x$ac_cv_c_bigendian" = "xyes"; then
|
|
|
|
AC_DEFINE(HAVE_BIG_ENDIAN,1,[Define to 1 for big endian, 0 otherwise.])
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Checks for library functions.
|
|
|
|
AC_CHECK_FUNCS([inet_ntoa memset select socket strerror])
|
|
|
|
|
|
|
|
AC_SEARCH_LIBS([socket], [socket])
|
|
|
|
|
|
|
|
# Include pcap library on non-Linux systems
|
|
|
|
# Don't need pcap on Linux since we can use recvfrom on raw socket
|
|
|
|
AS_CASE([$host_os], [*linux*], ,
|
|
|
|
[AC_SEARCH_LIBS(pcap_close, pcap,, AC_MSG_ERROR(pcap library required))])
|
|
|
|
|
|
|
|
AC_CONFIG_FILES([
|
|
|
|
Makefile
|
|
|
|
utils/Makefile
|
|
|
|
])
|
|
|
|
AC_OUTPUT
|