|
Packit |
b802ec |
AC_PREREQ([2.59])
|
|
Packit |
b802ec |
AC_INIT([mtr],
|
|
Packit |
b802ec |
[m4_esyscmd([build-aux/git-version-gen .tarball-version])],
|
|
Packit |
b802ec |
[R.E.Wolff@BitWizard.nl], [],
|
|
Packit |
b802ec |
[http://www.BitWizard.nl/mtr/])
|
|
Packit |
b802ec |
AC_CONFIG_SRCDIR([ui/mtr.c])
|
|
Packit |
b802ec |
AC_CONFIG_AUX_DIR([build-aux])
|
|
Packit |
b802ec |
AC_USE_SYSTEM_EXTENSIONS
|
|
Packit |
b802ec |
AM_INIT_AUTOMAKE([
|
|
Packit |
b802ec |
1.7.9
|
|
Packit |
b802ec |
foreign
|
|
Packit |
b802ec |
subdir-objects
|
|
Packit |
b802ec |
])
|
|
Packit |
b802ec |
|
|
Packit |
b802ec |
# --enable-silent-rules
|
|
Packit |
b802ec |
m4_ifdef([AM_SILENT_RULES],
|
|
Packit |
b802ec |
[AM_SILENT_RULES([yes])],
|
|
Packit |
b802ec |
[AC_SUBST([AM_DEFAULT_VERBOSITY], [1])])
|
|
Packit |
b802ec |
|
|
Packit |
b802ec |
AC_CANONICAL_HOST
|
|
Packit |
b802ec |
AC_PROG_CC
|
|
Packit |
b802ec |
|
|
Packit |
b802ec |
# Check pkg-config availability.
|
|
Packit |
b802ec |
m4_ifndef([PKG_PROG_PKG_CONFIG],
|
|
Packit |
b802ec |
[m4_fatal(
|
|
Packit |
b802ec |
[Could not locate the pkg-config autoconf macros. These are usually located
|
|
Packit |
b802ec |
in /usr/share/aclocal/pkg.m4. If your macros are in a different location,
|
|
Packit |
b802ec |
try setting the environment variable ACLOCAL_OPTS="-I/other/macro/dir"
|
|
Packit |
b802ec |
before running ./bootstrap.sh again.])
|
|
Packit |
b802ec |
])
|
|
Packit |
b802ec |
PKG_PROG_PKG_CONFIG
|
|
Packit |
b802ec |
|
|
Packit |
b802ec |
AM_CONDITIONAL([CYGWIN], [test "$host_os" = cygwin])
|
|
Packit |
b802ec |
|
|
Packit |
b802ec |
# Check bytes in types.
|
|
Packit |
b802ec |
AC_CHECK_SIZEOF([unsigned char], [1])
|
|
Packit |
b802ec |
AC_CHECK_SIZEOF([unsigned short], [2])
|
|
Packit |
b802ec |
AC_CHECK_SIZEOF([unsigned int], [4])
|
|
Packit |
b802ec |
AC_CHECK_SIZEOF([unsigned long], [4])
|
|
Packit |
b802ec |
|
|
Packit |
b802ec |
# Check headers.
|
|
Packit |
b802ec |
AC_CHECK_HEADERS([ \
|
|
Packit |
b802ec |
arpa/nameser_compat.h \
|
|
Packit |
b802ec |
curses.h \
|
|
Packit |
b802ec |
cursesX.h \
|
|
Packit |
b802ec |
error.h \
|
|
Packit |
b802ec |
fcntl.h \
|
|
Packit |
b802ec |
linux/icmp.h \
|
|
Packit |
b802ec |
ncurses.h \
|
|
Packit |
b802ec |
ncurses/curses.h \
|
|
Packit |
b802ec |
netinet/in.h \
|
|
Packit |
b802ec |
socket.h \
|
|
Packit |
b802ec |
sys/cdefs.h \
|
|
Packit |
b802ec |
sys/limits.h \
|
|
Packit |
b802ec |
sys/socket.h \
|
|
Packit |
b802ec |
stdio_ext.h \
|
|
Packit |
b802ec |
sys/types.h \
|
|
Packit |
b802ec |
sys/xti.h \
|
|
Packit |
b802ec |
values.h \
|
|
Packit |
b802ec |
])
|
|
Packit |
b802ec |
|
|
Packit |
b802ec |
# Check functions.
|
|
Packit |
b802ec |
AC_CHECK_FUNCS([ \
|
|
Packit |
b802ec |
__fpending \
|
|
Packit |
b802ec |
fcntl \
|
|
Packit |
b802ec |
])
|
|
Packit |
b802ec |
|
|
Packit |
b802ec |
AC_CHECK_FUNC([error], [with_error=no],
|
|
Packit |
b802ec |
[AC_CHECK_FUNCS([verr verrx vwarn vwarnx], [with_error=yes],
|
|
Packit |
b802ec |
[AC_MSG_ERROR([cannot find working error printing function])
|
|
Packit |
b802ec |
])
|
|
Packit |
b802ec |
])
|
|
Packit |
b802ec |
AM_CONDITIONAL([WITH_ERROR], [test "x$with_error" = "xyes"])
|
|
Packit |
b802ec |
|
|
Packit |
b802ec |
AC_CHECK_FUNC([getopt_long], [with_getopt=no], [with_getopt=yes])
|
|
Packit |
b802ec |
AS_IF([test "x$with_getopt" = "xno"], [
|
|
Packit |
b802ec |
AC_DEFINE([HAVE_GETOPT], [1], [Define if libc has getopt_long])
|
|
Packit |
b802ec |
])
|
|
Packit |
b802ec |
AM_CONDITIONAL([WITH_GETOPT], [test "x$with_getopt" = "xyes"])
|
|
Packit |
b802ec |
|
|
Packit |
b802ec |
AC_CHECK_LIB([m], [floor], [], [AC_MSG_ERROR([No math library found])])
|
|
Packit |
b802ec |
|
|
Packit |
b802ec |
# Find GTK
|
|
Packit |
b802ec |
AC_ARG_WITH([gtk],
|
|
Packit |
b802ec |
[AS_HELP_STRING([--without-gtk], [Build without the GTK+2.0 interface])],
|
|
Packit |
b802ec |
[], [with_gtk=yes])
|
|
Packit |
b802ec |
AS_IF([test "x$with_gtk" = "xyes"],
|
|
Packit |
b802ec |
[PKG_CHECK_MODULES([GTK], [gtk+-2.0],
|
|
Packit |
b802ec |
[AC_DEFINE([HAVE_GTK], [1], [Define if gtk+-2.0 library available])],
|
|
Packit |
b802ec |
[with_gtk=no])
|
|
Packit |
b802ec |
])
|
|
Packit |
b802ec |
AM_CONDITIONAL([WITH_GTK], [test "x$with_gtk" = xyes])
|
|
Packit |
b802ec |
|
|
Packit |
b802ec |
# Find ncurses
|
|
Packit |
b802ec |
AC_ARG_WITH([ncurses],
|
|
Packit |
b802ec |
[AS_HELP_STRING([--without-ncurses], [Build without the ncurses interface])],
|
|
Packit |
b802ec |
[], [with_ncurses=yes])
|
|
Packit |
b802ec |
AS_IF([test "x$with_ncurses" = "xyes"],
|
|
Packit |
b802ec |
|
|
Packit |
b802ec |
# Prefer ncurses over curses, if both are available.
|
|
Packit |
b802ec |
# (On Solaris 11.3, ncurses builds and links for us, but curses does not.)
|
|
Packit |
b802ec |
[AC_SEARCH_LIBS(
|
|
Packit |
b802ec |
[initscr], [ncurses curses],
|
|
Packit |
b802ec |
[AC_DEFINE([HAVE_CURSES], [1], [Define if a curses library available])],
|
|
Packit |
b802ec |
[with_ncurses=no])
|
|
Packit |
b802ec |
])
|
|
Packit |
b802ec |
AM_CONDITIONAL([WITH_CURSES], [test "x$with_ncurses" = xyes])
|
|
Packit |
b802ec |
|
|
Packit |
b802ec |
AC_CHECK_LIB([cap], [cap_set_proc], [],
|
|
Packit |
b802ec |
AS_IF([test "$host_os" = linux-gnu],
|
|
Packit |
b802ec |
AC_MSG_WARN([Capabilities support is strongly recommended for increased security. See SECURITY for more information.])))
|
|
Packit |
b802ec |
|
|
Packit |
b802ec |
# Enable ipinfo
|
|
Packit |
b802ec |
AC_ARG_WITH([ipinfo],
|
|
Packit |
b802ec |
[AS_HELP_STRING([--without-ipinfo], [Do not try to use ipinfo lookup at all])],
|
|
Packit |
b802ec |
[], [with_ipinfo=yes])
|
|
Packit |
b802ec |
AM_CONDITIONAL([WITH_IPINFO], [test "x$with_ipinfo" = "xyes"])
|
|
Packit |
b802ec |
AS_IF([test "x$with_ipinfo" = "xyes"], [
|
|
Packit |
b802ec |
AC_DEFINE([HAVE_IPINFO], [1], [Define when ipinfo lookups are in use])
|
|
Packit |
b802ec |
])
|
|
Packit |
b802ec |
|
|
Packit |
b802ec |
AC_ARG_ENABLE([ipv6],
|
|
Packit |
b802ec |
[AS_HELP_STRING([--disable-ipv6], [Do not enable IPv6])],
|
|
Packit |
b802ec |
[WANTS_IPV6=$enableval], [WANTS_IPV6=yes])
|
|
Packit |
b802ec |
|
|
Packit |
b802ec |
AS_IF([test "x$WANTS_IPV6" = "xyes"], [
|
|
Packit |
b802ec |
AC_DEFINE([ENABLE_IPV6], [1], [Define to enable IPv6])
|
|
Packit |
b802ec |
USES_IPV6=yes
|
|
Packit |
b802ec |
])
|
|
Packit |
b802ec |
|
|
Packit |
b802ec |
AC_CHECK_FUNC([socket], [],
|
|
Packit |
b802ec |
[AC_CHECK_LIB([socket], [socket], [], [AC_MSG_ERROR([No socket library found])])])
|
|
Packit |
b802ec |
|
|
Packit |
b802ec |
AC_CHECK_FUNC([gethostbyname], [],
|
|
Packit |
b802ec |
[AC_CHECK_LIB([nsl], [gethostbyname], [], [AC_MSG_ERROR([No nameservice library found])])])
|
|
Packit |
b802ec |
|
|
Packit |
b802ec |
# Find resolver library.
|
|
Packit |
b802ec |
AC_CHECK_FUNC([res_query], [RESOLV_LIBS=""], [
|
|
Packit |
b802ec |
AC_CHECK_LIB([resolv], [__res_query], [RESOLV_LIBS="-lresolv"], [
|
|
Packit |
b802ec |
AC_CHECK_LIB([resolv], [res_query], [RESOLV_LIBS="-lresolv"], [
|
|
Packit |
b802ec |
AC_CHECK_LIB([bind], [res_query], [RESOLV_LIBS="-lbind"], [
|
|
Packit |
b802ec |
AC_MSG_ERROR([No resolver library found])
|
|
Packit |
b802ec |
])
|
|
Packit |
b802ec |
])
|
|
Packit |
b802ec |
])
|
|
Packit |
b802ec |
])
|
|
Packit |
b802ec |
dnl MacOS has res_query in libc, but needs libresolv for dn_expand().
|
|
Packit |
b802ec |
AS_IF([test "x" = "x$RESOLV_LIBS"], [
|
|
Packit |
b802ec |
AC_CHECK_LIB([resolv], [dn_expand], [RESOLV_LIBS="-lresolv"])
|
|
Packit |
b802ec |
])
|
|
Packit |
b802ec |
AC_SUBST([RESOLV_LIBS])
|
|
Packit |
b802ec |
|
|
Packit |
b802ec |
# Check errno and socket data types.
|
|
Packit |
b802ec |
AC_CHECK_DECLS([errno], [], [], [[
|
|
Packit |
b802ec |
#include <errno.h>
|
|
Packit |
b802ec |
#include <sys/errno.h>
|
|
Packit |
b802ec |
]])
|
|
Packit |
b802ec |
|
|
Packit |
b802ec |
AC_CHECK_TYPE([socklen_t],
|
|
Packit |
b802ec |
[AC_DEFINE([HAVE_SOCKLEN_T], [], [Define if your system has socklen_t])], [],
|
|
Packit |
b802ec |
[[#include <netinet/in.h>
|
|
Packit |
b802ec |
#ifdef HAVE_SOCKET_H
|
|
Packit |
b802ec |
#include <socket.h>
|
|
Packit |
b802ec |
#endif
|
|
Packit |
b802ec |
#ifdef HAVE_SYS_SOCKET_H
|
|
Packit |
b802ec |
#include <sys/socket.h>
|
|
Packit |
b802ec |
#endif]])
|
|
Packit |
b802ec |
|
|
Packit |
b802ec |
AC_CHECK_TYPES([time_t], [], [], [[
|
|
Packit |
b802ec |
#include <time.h>
|
|
Packit |
b802ec |
]])
|
|
Packit |
b802ec |
|
|
Packit |
b802ec |
# Add C flags to display more warnings
|
|
Packit |
b802ec |
AC_MSG_CHECKING([for C flags to get more warnings])
|
|
Packit |
b802ec |
ac_save_CFLAGS="$CFLAGS"
|
|
Packit |
b802ec |
|
|
Packit |
b802ec |
AS_IF([test "x$ac_cv_c_compiler_gnu" = "xyes"], [
|
|
Packit |
b802ec |
dnl gcc is the easiest C compiler
|
|
Packit |
b802ec |
warning_CFLAGS="-Wall"
|
|
Packit |
b802ec |
# Check if compiler supports -Wno-pointer-sign and add it if supports
|
|
Packit |
b802ec |
CFLAGS_saved="$CFLAGS"
|
|
Packit |
b802ec |
CFLAGS="$CFLAGS -Wno-pointer-sign"
|
|
Packit |
b802ec |
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[int foo;]])],
|
|
Packit |
b802ec |
[warning_CFLAGS="${warning_CFLAGS} -Wno-pointer-sign"], [])
|
|
Packit |
b802ec |
CFLAGS="$CFLAGS_saved"
|
|
Packit |
b802ec |
], [
|
|
Packit |
b802ec |
dnl Vendor supplied C compilers are a bit tricky
|
|
Packit |
b802ec |
AS_CASE([$host_os],
|
|
Packit |
b802ec |
dnl SGI IRIX with the MipsPRO C compiler
|
|
Packit |
b802ec |
[irix*], [
|
|
Packit |
b802ec |
CFLAGS="$CFLAGS -fullwarn"
|
|
Packit |
b802ec |
AC_COMPILE_IFELSE([
|
|
Packit |
b802ec |
AC_LANG_PROGRAM(
|
|
Packit |
b802ec |
[[#include <stdio.h>]],
|
|
Packit |
b802ec |
[[printf("test");]])],
|
|
Packit |
b802ec |
[warning_CFLAGS="-fullwarn"], []
|
|
Packit |
b802ec |
)
|
|
Packit |
b802ec |
],
|
|
Packit |
b802ec |
dnl SunOS 4.x with the SparcWorks(?) acc compiler
|
|
Packit |
b802ec |
[sunos*], [
|
|
Packit |
b802ec |
AS_IF([test "$CC" = "acc"], [
|
|
Packit |
b802ec |
CFLAGS="$CFLAGS -vc"
|
|
Packit |
b802ec |
AC_COMPILE_IFELSE([
|
|
Packit |
b802ec |
AC_LANG_PROGRAM(
|
|
Packit |
b802ec |
[[#include <stdio.h>]],
|
|
Packit |
b802ec |
[[printf("test");]])],
|
|
Packit |
b802ec |
[warning_CFLAGS="-vc"], []
|
|
Packit |
b802ec |
)
|
|
Packit |
b802ec |
])
|
|
Packit |
b802ec |
]
|
|
Packit |
b802ec |
dnl Unknown, do nothing
|
|
Packit |
b802ec |
[*], [
|
|
Packit |
b802ec |
warning_CFLAGS="none"
|
|
Packit |
b802ec |
]
|
|
Packit |
b802ec |
)
|
|
Packit |
b802ec |
])
|
|
Packit |
b802ec |
CFLAGS="$ac_save_CFLAGS"
|
|
Packit |
b802ec |
|
|
Packit |
b802ec |
AS_IF([test "$warning_CFLAGS" = "none"], [
|
|
Packit |
b802ec |
AC_MSG_RESULT([none])
|
|
Packit |
b802ec |
], [
|
|
Packit |
b802ec |
CFLAGS="$CFLAGS $warning_CFLAGS"
|
|
Packit |
b802ec |
AC_MSG_RESULT([$warning_CFLAGS])
|
|
Packit |
b802ec |
])
|
|
Packit |
b802ec |
|
|
Packit |
b802ec |
# bash-completion
|
|
Packit |
b802ec |
AC_ARG_WITH([bashcompletiondir],
|
|
Packit |
b802ec |
AS_HELP_STRING([--with-bashcompletiondir=DIR], [Bash completions directory]),
|
|
Packit |
b802ec |
[],
|
|
Packit |
b802ec |
[AS_IF([`$PKG_CONFIG --exists bash-completion`], [
|
|
Packit |
b802ec |
with_bashcompletiondir=`$PKG_CONFIG --variable=completionsdir bash-completion`
|
|
Packit |
b802ec |
], [
|
|
Packit |
b802ec |
with_bashcompletiondir=${datadir}/bash-completion/completions
|
|
Packit |
b802ec |
])
|
|
Packit |
b802ec |
])
|
|
Packit |
b802ec |
AC_SUBST([bashcompletiondir], [$with_bashcompletiondir])
|
|
Packit |
b802ec |
AC_ARG_ENABLE([bash-completion],
|
|
Packit |
b802ec |
AS_HELP_STRING([--disable-bash-completion], [do not install bash completion files]),
|
|
Packit |
b802ec |
[], [enable_bash_completion=yes]
|
|
Packit |
b802ec |
)
|
|
Packit |
b802ec |
AM_CONDITIONAL([BUILD_BASH_COMPLETION], [test "x$enable_bash_completion" = xyes])
|
|
Packit |
b802ec |
|
|
Packit |
b802ec |
# Prepare config.h, Makefile, and output them.
|
|
Packit |
b802ec |
AC_CONFIG_HEADERS([config.h])
|
|
Packit |
b802ec |
AC_CONFIG_FILES([Makefile])
|
|
Packit |
b802ec |
AC_OUTPUT
|