dnl Process this file with autoconf to produce a configure script.
AC_INIT(ethtool, 5.13, netdev@vger.kernel.org)
AC_PREREQ(2.52)
AC_CONFIG_SRCDIR([ethtool.c])
AM_INIT_AUTOMAKE([gnu subdir-objects serial-tests])
AC_CONFIG_HEADERS([ethtool-config.h])

AM_MAINTAINER_MODE

dnl Checks for programs.
AC_PROG_CC
AC_PROG_GCC_TRADITIONAL
AM_PROG_CC_C_O
PKG_PROG_PKG_CONFIG

dnl Checks for libraries.

dnl Checks for header files.

dnl Checks for typedefs, structures, and compiler characteristics.
AC_MSG_CHECKING([whether <linux/types.h> defines big-endian types])
AC_TRY_COMPILE([#include <linux/types.h>],
	       [__be16 foo;__be32 bar;],
	       [AC_MSG_RESULT(yes)
		AC_DEFINE([HAVE_BE_TYPES], [1],
			  [Define to 1 if <linux/types.h> defines big-endian types])],
	       [AC_MSG_RESULT(no)])

dnl Checks for library functions.
AC_HEADER_STDC
AC_CHECK_FUNCS(socket strtol)

dnl Check for options
AC_ARG_ENABLE(pretty-dump,
	      [  --enable-pretty-dump	  enable registers, EEPROM and SFP pretty dumps (enabled by default)],
	      ,
	      enable_pretty_dump=yes)
if test x$enable_pretty_dump = xyes; then
    AC_DEFINE(ETHTOOL_ENABLE_PRETTY_DUMP, 1,
	      [Define this to enable register, EEPROM and SFP pretty dumps.])
fi
AM_CONDITIONAL([ETHTOOL_ENABLE_PRETTY_DUMP], [test x$enable_pretty_dump = xyes])

AC_ARG_WITH([bash-completion-dir],
	    AS_HELP_STRING([--with-bash-completion-dir[=PATH]],
	                   [Install the bash-completion script in this directory. @<:@default=yes@:>@]),
	    [],
	    [with_bash_completion_dir=yes])
AS_IF([test "x$with_bash_completion_dir" = xyes],
      [AC_MSG_CHECKING([for bash-completion directory])
       dnl Attempt to use pkg-config completionsdir variable with given $prefix.
       dnl This matches distcheck expectation that all files install to $prefix.
       dnl It works with /usr and /usr/local (for default $XDG_DATA_DIRS) but
       dnl may install to directory not used by bash-completion in other cases.
       dnl See: https://lore.kernel.org/netdev/20190417025333.GA28674@kevinolos/
       AS_IF([test "x$PKG_CONFIG" != x \
	      && bash_completion_prefix=`"$PKG_CONFIG" --print-errors --variable=prefix bash-completion 2>&AS_MESSAGE_LOG_FD` \
	      && bash_completion_dir=`"$PKG_CONFIG" --print-errors --variable=completionsdir bash-completion 2>&AS_MESSAGE_LOG_FD`],
	     [bash_completion_dir="${bash_completion_dir#"$bash_completion_prefix"}"
	      bash_completion_dir="${bash_completion_dir#/}"
	      BASH_COMPLETION_DIR='${prefix}'/"$bash_completion_dir"],
	     [BASH_COMPLETION_DIR='${datadir}/bash-completion/completions'])
       AC_MSG_RESULT([$BASH_COMPLETION_DIR])],
      [BASH_COMPLETION_DIR="$with_bash_completion_dir"])
AC_SUBST([BASH_COMPLETION_DIR])
AM_CONDITIONAL([ENABLE_BASH_COMPLETION],
	       [test "x$with_bash_completion_dir" != xno])

AC_ARG_ENABLE(netlink,
	      [  --enable-netlink	  enable netlink interface (enabled by default)],
	      ,
	      enable_netlink=yes)
if test x$enable_netlink = xyes; then
    PKG_PROG_PKG_CONFIG
    PKG_CHECK_MODULES([MNL], [libmnl])
    AC_DEFINE(ETHTOOL_ENABLE_NETLINK, 1,
	      Define this to support netlink interface to talk to kernel.)
fi
AM_CONDITIONAL([ETHTOOL_ENABLE_NETLINK], [test x$enable_netlink = xyes])

AC_CONFIG_FILES([Makefile ethtool.spec ethtool.8])
AC_OUTPUT
