wireshark/configure.in
Gerald Combs 92802883a6 Change the "--enable-setuid-install" option to install dumpcap and TShark
setuid instead of Wireshark.  Remove the "DANGEROUS" notices, but leave it
disabled by default.  Whine if the user runs Wireshark or TShark as root.
Add a preference to disable the whining.  Add a "setuid-root" script that
can be used to switch dumpcap and TShark's setuid-ness on and off for
development and testing.  Update the release notes and README.packaging.

svn path=/trunk/; revision=22733
2007-08-30 00:24:40 +00:00

1657 lines
43 KiB
Text

# $Id$
#
AC_INIT(cfile.h)
AC_PREREQ(2.52)
dnl Check for CPU / vendor / OS
dnl The user is encouraged to use either `AC_CANONICAL_BUILD', or
dnl `AC_CANONICAL_HOST', or `AC_CANONICAL_TARGET', depending on the
dnl needs. Using `AC_CANONICAL_TARGET' is enough to run the two other
dnl macros.
dnl AC_CANONICAL_HOST
dnl AC_CANONICAL_BUILD
AC_CANONICAL_TARGET
AM_INIT_AUTOMAKE(wireshark, 0.99.7)
AM_DISABLE_STATIC
dnl Checks for programs.
AC_PROG_CC
AC_PROG_CPP
dnl Work around libtool bug (fixed in the version 1.5a?)
AC_DEFUN([AC_PROVIDE_AC_LIBTOOL_DLOPEN], )
AC_LIBTOOL_DLOPEN
AC_PROG_LIBTOOL
AC_PROG_YACC
AM_PROG_LEX
AC_PATH_PROG(PERL, perl)
AC_PATH_PROG(POD2MAN, pod2man)
if test "x$POD2MAN" = x
then
#
# The alternative is not to build the man pages....
#
AC_MSG_ERROR(I couldn't find pod2man; make sure it's installed and in your path)
fi
AC_PATH_PROG(POD2HTML, pod2html)
if test "x$POD2HTML" = x
then
#
# The alternative is not to build the HTML man pages....
#
AC_MSG_ERROR(I couldn't find pod2html; make sure it's installed and in your path)
fi
AC_PATH_PROG(HTML_VIEWER, htmlview)
if test "x$HTML_VIEWER" = x
then
AC_DEFINE_UNQUOTED(HTML_VIEWER, "mozilla", [HTML viewer, e.g. mozilla])
else
AC_DEFINE_UNQUOTED(HTML_VIEWER, "htmlview", [HTML viewer, e.g. mozilla])
fi
AC_PATH_PROG(LEX, flex)
AC_PATH_PROG(PYTHON, python)
AC_SUBST(PERL)
AC_SUBST(POD2MAN)
AC_SUBST(POD2HTML)
AC_SUBST(LEX)
AC_SUBST(FLEX_PATH)
AC_SUBST(PYTHON)
AC_SUBST(XSLTPROC)
AC_SUBST(XMLLINT)
if test "x$CC_FOR_BUILD" = x
then
CC_FOR_BUILD=$CC
fi
AC_SUBST(CC_FOR_BUILD)
# Check for doxygen
AC_PATH_PROG(DOXYGEN, doxygen)
AC_CHECK_PROG(HAVE_DOXYGEN, doxygen, "yes", "no")
AM_CONDITIONAL(HAVE_DOXYGEN, test x$HAVE_DOXYGEN = xyes)
# gnu tls
tls_message="no"
AC_ARG_WITH([gnutls],
AC_HELP_STRING( [--with-gnutls=@<:@yes/no@:>@],
[use gnutls library @<:@default=yes@:>@]),
with_gnutls="$withval", with_gnutls="yes")
if test "x$with_gnutls" = "xyes"; then
AM_PATH_LIBGNUTLS(1.0.0,
[
echo "gnuTLS found, enabling ssl decryption"
AC_DEFINE(HAVE_LIBGNUTLS, 1, [Define to use gnutls library])
tls_message="yes"
]
, [
if test x$libgnutls_config_prefix != x ; then
AC_MSG_ERROR([[gnuTLS not found; install gnuTLS-devel package for your system]])
else
echo echo "gnuTLS not found, disabling ssl decryption"
tls_message="no"
fi
]
)
fi
# libgrypt
gcrypt_message="no"
AC_ARG_WITH([gcrypt],
AC_HELP_STRING( [--with-gcrypt=@<:@yes/no@:>@],
[use gcrypt library @<:@default=yes@:>@]),
with_gcrypt="$withval", with_gcrypt="yes")
if test "x$with_gcrypt" = "xyes"; then
AM_PATH_LIBGCRYPT(1.1.42,
[
echo "libgcrypt found, enabling ipsec decryption"
AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define to use libgcrypt])
gcrypt_message="yes"
]
, [
if test x$libgcrypt_config_prefix != x ; then
AC_MSG_ERROR([[libgcrypt not found; install libgcrypt-devel package for your system]])
else
echo "libgcrypt not found, disabling ipsec decryption"
gcrypt_message="no"
fi
]
)
fi
# libsmi
# FIXME: currently the path argument to with-libsmi is being ignored
libsmi="no"
AC_ARG_WITH([libsmi],
AC_HELP_STRING( [--with-libsmi=@<:@yes/no@:>@],
[use smi library @<:@default=yes@:>@]),
with_libsmi="$withval", with_libsmi="yes")
if test "x$with_libsmi" = "xyes"; then
AM_PATH_LIBSMI
AM_CONDITIONAL(HAVE_SMI, "x$with_libsmi" = "xyes")
fi
# Check for xsltproc
AC_PATH_PROG(XSLTPROC, xsltproc)
AC_CHECK_PROG(HAVE_XSLTPROC, xsltproc, "yes", "no")
AM_CONDITIONAL(HAVE_XSLTPROC, test x$HAVE_XSLTPROC = xyes)
# Check for xmllint
AC_PATH_PROG(XMLLINT, xmllint)
AC_CHECK_PROG(HAVE_XMLLINT, xmllint, "yes", "no")
AM_CONDITIONAL(HAVE_XMLLINT, test x$HAVE_XMLLINT = xyes)
# Check for fop (translate .fo to e.g. pdf)
AC_PATH_PROG(FOP, fop)
AC_CHECK_PROG(HAVE_FOP, fop, "yes", "no")
AM_CONDITIONAL(HAVE_FOP, test x$HAVE_FOP = xyes)
# Check for hhc (html help compiler)
AC_PATH_PROG(HHC, hhc.exe)
AC_CHECK_PROG(HAVE_HHC, hhc.exe, "yes", "no")
AM_CONDITIONAL(HAVE_HHC, test x$HAVE_HHC = xyes)
# Check for packaging utilities
# For now, we check to see if the various packaging utilites are in our
# path. I'm too lazy to write code to go hunt for them. - Gerald
AC_CHECK_PROG(HAVE_PKGPROTO, pkgproto, "yes", "no")
AC_CHECK_PROG(HAVE_PKGMK, pkgmk, "yes", "no")
AC_CHECK_PROG(HAVE_PKGTRANS, pkgtrans, "yes", "no")
if test x$HAVE_PKGPROTO = xyes -a x$HAVE_PKGMK = xyes \
-a x$HAVE_PKGTRANS = xyes ; then
HAVE_SVR4_PACKAGING=yes
else
HAVE_SVR4_PACKAGING=no
fi
AC_SUBST(HAVE_SVR4_PACKAGING)
AC_WIRESHARK_RPM_CHECK
AC_SUBST(HAVE_RPM)
#
# Try to add some additional gcc checks to CFLAGS
#
AC_ARG_ENABLE(extra-gcc-checks,
AC_HELP_STRING( [--enable-extra-gcc-checks],
[Do additional -W checks in GCC. @<:@default=no@:>@]),
[
wireshark_extra_gcc_flags=$enableval
if test $enableval != no
then
AC_WIRESHARK_GCC_CFLAGS_CHECK(-pedantic)
AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wno-long-long)
AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wbad-function-cast)
AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wcast-qual)
AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wwrite-strings)
AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wshorten-64-to-32)
AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wstrict-prototypes)
AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wmissing-declarations)
#Temporarily put cast-align here waiting eradication of 'cast
#increases required alignment of target type' on the Solaris
#slave.
AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wcast-align)
fi
],)
AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wall -W)
AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wdeclaration-after-statement)
AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wendif-labels)
AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wpointer-arith)
AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wno-pointer-sign)
#
# If we're running gcc add '-D_U_="__attribute__((unused))"' to CFLAGS as well,
# so we can use _U_ to flag unused function arguments and not get warnings
# about them. Otherwise, add '-D_U_=""', so that _U_ used to flag an unused
# function argument will compile with non-GCC compilers.
#
if test "x$GCC" = "xyes" ; then
CFLAGS="-D_U_=\"__attribute__((unused))\" $CFLAGS"
else
CFLAGS="-D_U_=\"\" $CFLAGS"
fi
#
# If we're running gcc, will enable a barrier "stop on warning".
# This barrier is set for a very large part of the code. However, it is
# typically not set for "generated" code (lex, ans2wrs, idl2wrs, ...)
#
AC_MSG_CHECKING(whether we should treat compiler warnings as errors)
AC_ARG_ENABLE(warnings-as-errors,
AC_HELP_STRING( [--enable-warnings-as-errors],
[Treat warnings as errors (only for gcc). @<:@default=yes@:>@]),
[
if test "x$GCC" = "xyes" -a "x$enableval" == "xyes" -a "x$wireshark_extra_gcc_flags" != "xyes"; then
with_warnings_as_errors="yes"
AC_MSG_RESULT(yes)
else
with_warnings_as_errors="no"
AC_MSG_RESULT(no)
fi
],
if test "x$GCC" = "xyes" -a "x$wireshark_extra_gcc_flags" = "x"; then
with_warnings_as_errors="yes"
AC_MSG_RESULT(yes)
else
with_warnings_as_errors="no"
AC_MSG_RESULT(no)
fi
)
AM_CONDITIONAL(HAVE_WARNINGS_AS_ERRORS, test "x$with_warnings_as_errors" = "xyes")
#
# Add any platform-specific compiler flags needed.
#
AC_MSG_CHECKING(for platform-specific compiler flags)
if test "x$GCC" = "xyes" ; then
#
# GCC - do any platform-specific tweaking necessary.
#
case "$host_os" in
solaris*)
# the X11 headers don't automatically include prototype info
# and a lot don't include the return type
CFLAGS="$CFLAGS -Wno-return-type -DFUNCPROTO=15"
AC_MSG_RESULT(GCC on Solaris - added -Wno-return-type -DFUNCPROTO=15)
;;
darwin*)
#
# See comments above about Apple's lovely C compiler.
#
CFLAGS="-no-cpp-precomp $CFLAGS"
AC_MSG_RESULT(Apple GCC - added -no-cpp-precomp)
;;
*)
AC_MSG_RESULT(none needed)
;;
esac
else
#
# Not GCC - assume it's the vendor's compiler.
#
case "$host_os" in
hpux*)
#
# HP's ANSI C compiler; flags suggested by Jost Martin.
# "-Ae" for ANSI C plus extensions such as "long long".
# "+O2", for optimization. XXX - works with "-g"?
#
CFLAGS="-Ae +O2 $CFLAGS"
AC_MSG_RESULT(HP ANSI C compiler - added -Ae +O2)
;;
darwin*)
#
# It may be called "cc", but it's really a GCC derivative
# with a problematic special precompiler and precompiled
# headers; turn off the special precompiler, as some
# apparently-legal code won't compile with its precompiled
# headers.
#
CFLAGS="-no-cpp-precomp $CFLAGS"
AC_MSG_RESULT(Apple GCC - added -no-cpp-precomp)
;;
*)
AC_MSG_RESULT(none needed)
;;
esac
fi
#
# Add any platform-specific linker flags needed.
#
AC_MSG_CHECKING(for platform-specific linker flags)
case "$host_os" in
darwin*)
#
# Add -Wl,-single_module to the LDFLAGS used with shared
# libraries, to fix some error that show up in some cases;
# some Apple documentation recommends it for most shared
# libraries.
#
LDFLAGS_SHAREDLIB="-Wl,-single_module"
#
# Add -Wl,-search_paths_first to make sure that if we search
# directories A and B, in that order, for a given library, a
# non-shared version in directory A, rather than a shared
# version in directory B, is chosen (so we can use
# --with-pcap=/usr/local to force all programs to be linked
# with a static version installed in /usr/local/lib rather than
# the system version in /usr/lib).
#
LDFLAGS="-Wl,-search_paths_first $LDFLAGS"
AC_MSG_RESULT([Apple linker - added -Wl,-single_module and -Wl,-search_paths_first])
;;
cygwin*)
#
# Shared libraries in cygwin/Win32 must never contain
# undefined symbols.
#
LDFLAGS="$LDFLAGS -no-undefined"
AC_MSG_RESULT(CygWin GNU ld - added -no-undefined)
;;
*)
AC_MSG_RESULT(none needed)
;;
esac
AC_SUBST(LDFLAGS_SHAREDLIB)
#
# On OS X, if we find the headers for Core Foundation and Launch Services,
# add -framework options to link with Application Services (of which
# Launch Services is a subframework) and Core Foundation (required by
# the Launch Services APIs), so we can use that to launch a Web browser
# from the Help menu.
#
# (Do those headers exist on pure Darwin? If so, does the CoreFoundation
# *and* Launch Services code exist there, or are those headers just stubs?
# If the frameworks aren't present on Darwin, how *should* we check for
# their existence?)
#
case "$host_os" in
darwin*)
AC_MSG_CHECKING(whether we can build with Core Foundation and Launch Services)
ac_save_LIBS="$LIBS"
ac_frameworks="-framework ApplicationServices -framework CoreFoundation"
LIBS="$LIBS $ac_frameworks"
AC_TRY_LINK(
[
# include <CoreFoundation/CFBase.h>
# include <CoreFoundation/CFString.h>
# include <CoreFoundation/CFURL.h>
# include <ApplicationServices/ApplicationServices.h>
],
[
CFStringRef url_CFString;
CFURLRef url_CFURL;
OSStatus status;
url_CFString = CFStringCreateWithCString(NULL, "", kCFStringEncodingASCII);
url_CFURL = CFURLCreateWithString(NULL, url_CFString, NULL);
status = LSOpenCFURLRef(url_CFURL, NULL);
],
ac_cv_can_use_cf_and_ls=yes,
ac_cv_can_use_cf_and_ls=no,
[echo $ac_n "cross compiling; assumed OK... $ac_c"])
if test "$ac_cv_can_use_cf_and_ls" = yes ; then
AC_DEFINE(HAVE_OS_X_FRAMEWORKS, 1, [Define to 1 if you have OS X frameworks])
FRAMEWORKS="$ac_frameworks"
AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no)
fi
LIBS="$ac_save_LIBS"
;;
esac
AC_SUBST(FRAMEWORKS)
dnl Look in /usr/local for header files and libraries ?
dnl XXX FIXME don't include /usr/local if it is already in the system
dnl search path as this causes gcc 3.2 on Linux to complain about a change
dnl of the system search order for includes
AC_ARG_ENABLE(usr-local,
AC_HELP_STRING( [--enable-usr-local],
[look for headers and libs in /usr/local tree. @<:@default=yes@:>@]),
ac_cv_enable_usr_local=$enableval,ac_cv_enable_usr_local=yes)
AC_MSG_CHECKING(whether to use /usr/local for headers and libraries)
if test "x$ac_cv_enable_usr_local" = "xyes" ; then
AC_MSG_RESULT(yes)
#
# Arrange that we search for header files in the source directory
# and in its "wiretap" subdirectory, as well as in "/usr/local/include",
# as various packages we use ("libpcap", "zlib", an SNMP library)
# may have been installed under "/usr/local/include".
#
CFLAGS="$CFLAGS -I/usr/local/include"
CPPFLAGS="$CPPFLAGS -I/usr/local/include"
#
# Arrange that we search for libraries in "/usr/local/lib".
#
AC_WIRESHARK_ADD_DASH_L(LDFLAGS, /usr/local/lib)
else
AC_MSG_RESULT(no)
fi
#
# If we're running Solaris, and LD_LIBRARY_PATH is defined, add it as a
# link directory.
#
case "$host_os" in
solaris*)
AC_MSG_CHECKING(for LD_LIBRARY_PATH, since you appear to be running Solaris)
if test x$LD_LIBRARY_PATH != x ; then
LIBS="$LIBS -R$LD_LIBRARY_PATH"
AC_MSG_RESULT(yes -- added LD_LIBRARY_PATH to run-time linker path)
else
AC_MSG_RESULT(no -- this may be a problem in a few seconds)
fi
;;
esac
#
# Check for versions of "sed" inadequate to handle, in libtool, a list
# of object files as large as the list in Wireshark.
#
# On Solaris, we check for "/bin/sed", "/usr/bin/sed", and "/usr/ucb/sed",
# as both "/usr/bin/sed" (which is also "/bin/sed", as "/bin" is just a
# symlink to "/usr/bin", but people may have "/bin" before "/usr/bin" in
# their search path) and "/usr/ucb/sed" are inadequate; "/usr/xpg4/bin/sed"
# is the only "sed" that comes with Solaris that can handle Wireshark.
#
# Add any checks here that are necessary for other OSes.
#
AC_WIRESHARK_GNU_SED_CHECK
if test "$HAVE_GNU_SED" = no ; then
case "$host_os" in
solaris*)
AC_MSG_CHECKING(whether one of /usr/bin/sed or /bin/sed or /usr/ucb/sed will be used)
case `which sed` in
/bin/sed|/usr/bin/sed|/usr/ucb/sed)
AC_MSG_RESULT(yes)
AC_MSG_ERROR([change your path to search /usr/xpg4/bin or directory containing GNU sed before /usr/bin (and /bin and /usr/ucb)])
;;
*)
AC_MSG_RESULT(no)
;;
esac
;;
*)
:
;;
esac
fi
# Enable/disable tshark
AC_ARG_ENABLE(wireshark,
AC_HELP_STRING( [--enable-wireshark],
[build GTK+-based wireshark. @<:@default=yes, if GTK+ available@:>@]),
enable_wireshark=$enableval,enable_wireshark=yes)
AC_ARG_ENABLE(gtk2,
AC_HELP_STRING( [--disable-gtk2],
[build Glib1/Gtk1+-based wireshark/tshark. @<:@default=no@:>@]),
enable_gtk2=$enableval,enable_gtk2=yes)
AM_CONDITIONAL(USE_GTK2, test x$enable_gtk2 = xyes)
AC_ARG_ENABLE(threads,
AC_HELP_STRING( [--enable-threads],
[use threads in wireshark. @<:@default=no@:>@]),
enable_threads=$enableval,enable_threads=no)
AM_CONDITIONAL(USE_THREADS, test x$enable_threads = xyes)
AC_ARG_ENABLE(profile-build,
AC_HELP_STRING( [--enable-profile-build],
[build profile-ready binaries. @<:@default=no@:>@]),
enable_profile_build=$enableval,enable_profile_build=no)
AM_CONDITIONAL(USE_PROFILE_BUILD, test x$enable_profile_build = xyes)
AC_MSG_CHECKING(if profile builds must be generated)
if test "x$enable_profile_build" = "xyes" ; then
if test "x$GCC" = "xyes" ; then
AC_MSG_RESULT(yes)
CFLAGS=" -pg $CFLAGS"
else
AC_MSG_RESULT(no)
echo "Building profile binaries currently only supported for GCC."
fi
else
AC_MSG_RESULT(no)
fi
# Create DATAFILE_DIR #define for config.h
datafiledir=$datadir/wireshark
datafiledir=`(
test "x$prefix" = xNONE && prefix=$ac_default_prefix
test "x$exec_prefix" = xNONE && exec_prefix=${prefix}
# Ugly hack, but I don't see how this problem can be solved
# properly that DATAFILE_DIR had a value starting with
# "${prefix}/" instead of e.g. "/usr/local/"
eval eval echo "$datafiledir"
)`
AC_DEFINE_UNQUOTED(DATAFILE_DIR,"$datafiledir", [Directory for data])
# GTK checks
# We don't add $GLIB_LIBS to LIBS, because we don't want to force all
# programs to be built with GTK+.
#
if test "x$enable_gtk2" = "xyes" -a "x$enable_wireshark" = "xyes"; then
GTK_OK=two
AM_PATH_GTK_2_0(2.0.0, CFLAGS="$CFLAGS $GTK_CFLAGS", GTK_OK=no, gthread)
elif test "x$enable_gtk2" != "xyes" -a "x$enable_wireshark" = "xyes"; then
GTK_OK=one
AM_PATH_GTK(1.2.0, CFLAGS="$CFLAGS $GTK_CFLAGS", GTK_OK=no )
else
GTK_OK=no
fi
# GLib checks
# This doesn't add GLIB_CFLAGS to CFLAGS, because AM_PATH_GTK will add
# GTK_CFLAGS to CFLAGS, and GTK_CFLAGS is a superset of CFLAGS.
# However, this means that both @GLIB_LIBS@ and @GTK_LIBS@ will be
# set when generating the Makefile, so we can make programs that require
# only GLib link with @GLIB_LIBS@ and make programs that require GTK+
# link with @GTK_LIBS@ (which includes @GLIB_LIBS@).
# We don't add $GLIB_LIBS to LIBS, because we don't want to force all
# programs to be built with GLib.
#
if test "$GTK_OK" = "no" ; then
#
# We don't have GTK+.
# If they didn't explicitly say "--disable-wireshark", fail (so
# that, unless they explicitly indicated that they don't want
# Wireshark, we stop so they know they won't be getting
# Wireshark unless they fix the GTK+ problem).
#
if test "x$enable_wireshark" = "xyes"; then
AC_MSG_ERROR([GTK+ isn't available, so Wireshark can't be compiled])
fi
wireshark_bin=""
wireshark_man=""
# Honor GLIB_CFLAGS
if test "x$enable_gtk2" = "xyes" ; then
AM_PATH_GLIB_2_0(2.0.0, CFLAGS="$CFLAGS $GLIB_CFLAGS", AC_MSG_ERROR(GLib2 distribution not found.), gmodule)
else
AM_PATH_GLIB(1.2.0, CFLAGS="$CFLAGS $GLIB_CFLAGS", AC_MSG_ERROR(GLib distribution not found.), gmodule)
fi
else
wireshark_bin="wireshark\$(EXEEXT)"
wireshark_man="wireshark.1"
wireshark_SUBDIRS="codecs gtk"
# Honor GLIB_CFLAGS
if test "$GTK_OK" = "two" ; then
AM_PATH_GLIB_2_0(2.0.0, , AC_MSG_ERROR(GLib distribution not found.), gmodule)
else
AM_PATH_GLIB(1.2.0, , AC_MSG_ERROR(GLib distribution not found.), gmodule)
fi
fi
#
# Check whether GLib modules are supported, to determine whether we
# can support plugins.
#
AC_MSG_CHECKING(whether GLib supports loadable modules)
ac_save_CFLAGS="$CFLAGS"
ac_save_LIBS="$LIBS"
CFLAGS="$CFLAGS $GLIB_CFLAGS"
LIBS="$GLIB_LIBS $LIBS"
AC_TRY_RUN([
#include <glib.h>
#include <gmodule.h>
#include <stdio.h>
#include <stdlib.h>
int
main ()
{
if (g_module_supported())
return 0; /* success */
else
return 1; /* failure */
}
], ac_cv_glib_supports_modules=yes, ac_cv_glib_supports_modules=no,
[echo $ac_n "cross compiling; assumed OK... $ac_c"
ac_cv_glib_supports_modules=yes])
CFLAGS="$ac_save_CFLAGS"
LIBS="$ac_save_LIBS"
if test "$ac_cv_glib_supports_modules" = yes ; then
AC_MSG_RESULT(yes)
have_plugins=yes
else
AC_MSG_RESULT(no)
have_plugins=no
fi
#
# We can't just check for <inttypes.h> - some systems have one that
# doesn't define all the PRI[doxu]64 macros.
#
AC_CHECK_HEADERS(inttypes.h,
[
#
# OK, we have inttypes.h, but does it define those macros?
#
AC_MSG_CHECKING([[whether inttypes.h defines the PRI[doxu]64 macros]])
AC_COMPILE_IFELSE(
[
AC_LANG_SOURCE(
[[
#include <inttypes.h>
#include <glib.h>
#include <stdio.h>
#include <sys/types.h>
main()
{
printf("%" PRId64 "\n", (gint64)1);
printf("%" PRIo64 "\n", (guint64)1);
printf("%" PRIx64 "\n", (guint64)1);
printf("%" PRIX64 "\n", (guint64)1);
printf("%" PRIu64 "\n", (guint64)1);
}
]])
],
[
AC_MSG_RESULT(yes)
ac_wireshark_inttypes_h_defines_formats=yes
],
[
AC_MSG_RESULT(no)
ac_wireshark_inttypes_h_defines_formats=no
])
],
[
#
# We don't have inttypes.h, so it obviously can't define those
# macros.
#
ac_wireshark_inttypes_h_defines_formats=no
])
if test "$ac_wireshark_inttypes_h_defines_formats" = yes; then
AC_DEFINE(INTTYPES_H_DEFINES_FORMATS,,[Define if <inttypes.h> defines PRI[doxu]64 macros])
else
AC_WIRESHARK_CHECK_64BIT_FORMAT(ll,
[
AC_WIRESHARK_CHECK_64BIT_FORMAT(L,
[
AC_WIRESHARK_CHECK_64BIT_FORMAT(q,
[
AC_MSG_ERROR([neither %llx nor %Lx nor %qx worked on a 64-bit integer])
])
])
])
fi
AC_SUBST(wireshark_bin)
AC_SUBST(wireshark_man)
rdps_bin="rdps\$(EXEEXT)"
AC_SUBST(rdps_bin)
# Enable/disable tshark
AC_ARG_ENABLE(tshark,
AC_HELP_STRING( [--enable-tshark],
[build tshark. @<:@default=yes@:>@]),
tshark=$enableval,enable_tshark=yes)
if test "x$enable_tshark" = "xyes" ; then
tshark_bin="tshark\$(EXEEXT)"
tshark_man="tshark.1"
wiresharkfilter_man="wireshark-filter.4"
else
tshark_bin=""
tshark_man=""
fi
AC_SUBST(tshark_bin)
AC_SUBST(tshark_man)
AC_SUBST(wiresharkfilter_man)
# Enable/disable editcap
AC_ARG_ENABLE(editcap,
AC_HELP_STRING( [--enable-editcap],
[build editcap. @<:@default=yes@:>@]),
enable_editcap=$enableval,enable_editcap=yes)
if test "x$enable_editcap" = "xyes" ; then
editcap_bin="editcap\$(EXEEXT)"
editcap_man="editcap.1"
else
editcap_bin=""
editcap_man=""
fi
AC_SUBST(editcap_bin)
AC_SUBST(editcap_man)
# Enabling/disabling of dumpcap is done later (after we know if we have PCAP
# or not)
# Enable/disable capinfos
AC_ARG_ENABLE(capinfos,
AC_HELP_STRING( [--enable-capinfos],
[build capinfos. @<:@default=yes@:>@]),
enable_capinfos=$enableval,enable_capinfos=yes)
if test "x$enable_capinfos" = "xyes" ; then
capinfos_bin="capinfos\$(EXEEXT)"
capinfos_man="capinfos.1"
else
capinfos_bin=""
capinfos_man=""
fi
AC_SUBST(capinfos_bin)
AC_SUBST(capinfos_man)
# Enable/disable mergecap
AC_ARG_ENABLE(mergecap,
AC_HELP_STRING( [--enable-mergecap],
[build mergecap. @<:@default=yes@:>@]),
enable_mergecap=$enableval,enable_mergecap=yes)
if test "x$enable_mergecap" = "xyes" ; then
mergecap_bin="mergecap\$(EXEEXT)"
mergecap_man="mergecap.1"
else
mergecap_bin=""
mergecap_man=""
fi
AC_SUBST(mergecap_bin)
AC_SUBST(mergecap_man)
# Enable/disable text2pcap
AC_ARG_ENABLE(text2pcap,
AC_HELP_STRING( [--enable-text2pcap],
[build text2pcap. @<:@default=yes@:>@]),
text2pcap=$enableval,enable_text2pcap=yes)
if test "x$enable_text2pcap" = "xyes" ; then
text2pcap_bin="text2pcap\$(EXEEXT)"
text2pcap_man="text2pcap.1"
else
text2pcap_bin=""
text2pcap_man=""
fi
AC_SUBST(text2pcap_bin)
AC_SUBST(text2pcap_man)
# Enable/disable idl2wrs
AC_ARG_ENABLE(idl2wrs,
AC_HELP_STRING( [--enable-idl2wrs],
[build idl2wrs. @<:@default=yes@:>@]),
enable_idl2wrs=$enableval,enable_idl2wrs=yes)
if test "x$enable_idl2wrs" = "xyes" ; then
idl2wrs_bin="idl2wrs"
idl2wrs_man="idl2wrs.1"
else
idl2wrs_bin=""
idl2wrs_man=""
fi
AC_SUBST(idl2wrs_bin)
AC_SUBST(idl2wrs_man)
# Enable/disable dftest
AC_ARG_ENABLE(dftest,
AC_HELP_STRING( [--enable-dftest],
[build dftest. @<:@default=yes@:>@]),
enable_dftest=$enableval,enable_dftest=yes)
if test "x$enable_dftest" = "xyes" ; then
dftest_bin="dftest\$(EXEEXT)"
else
dftest_bin=""
fi
AC_SUBST(dftest_bin)
# Enable/disable randpkt
AC_ARG_ENABLE(randpkt,
AC_HELP_STRING( [--enable-randpkt],
[build randpkt. @<:@default=yes@:>@]),
enable_randpkt=$enableval,enable_randpkt=yes)
if test "x$enable_randpkt" = "xyes" ; then
randpkt_bin="randpkt\$(EXEEXT)"
else
randpkt_bin=""
fi
AC_SUBST(randpkt_bin)
dnl Checks for "gethostbyname()" - and "-lnsl", if we need it to get
dnl "gethostbyname()".
AC_WIRESHARK_GETHOSTBY_LIB_CHECK
dnl Checks for "connect()", used as a proxy for "socket()" - and
dnl "-lsocket", if we need it to get "connect()".
AC_WIRESHARK_SOCKET_LIB_CHECK
dnl pcap check
AC_MSG_CHECKING(whether to use libpcap for packet capture)
AC_ARG_WITH(pcap,
AC_HELP_STRING( [--with-pcap@<:@=DIR@:>@],
[use libpcap for packet capturing. @<:@default=yes@:>@]),
[
if test $withval = no
then
want_pcap=no
elif test $withval = yes
then
want_pcap=yes
else
want_pcap=yes
pcap_dir=$withval
fi
],[
want_pcap=yes
pcap_dir=
])
if test "x$want_pcap" = "xno" ; then
AC_MSG_RESULT(no)
else
AC_MSG_RESULT(yes)
AC_WIRESHARK_PCAP_CHECK
fi
# Enable/disable dumpcap
dnl dumpcap check
AC_MSG_CHECKING(whether to build dumpcap)
AC_ARG_ENABLE(dumpcap,
AC_HELP_STRING( [--enable-dumpcap],
[build dumpcap. @<:@default=yes@:>@]),
enable_dumpcap=$enableval,enable_dumpcap=yes)
if test "x$enable_dumpcap" = "xyes" ; then
if test "x$want_pcap" = "xno" ; then
enable_dumpcap=no
AC_MSG_RESULT(pcap not available - disabling dumpcap)
else
AC_MSG_RESULT(yes)
fi
else
AC_MSG_RESULT(no)
fi
if test "x$enable_dumpcap" = "xyes" ; then
dumpcap_bin="dumpcap\$(EXEEXT)"
dumpcap_man="dumpcap.1"
else
dumpcap_bin=""
dumpcap_man=""
fi
AC_SUBST(dumpcap_bin)
AC_SUBST(dumpcap_man)
dnl zlib check
AC_MSG_CHECKING(whether to use zlib for reading compressed capture files)
AC_ARG_WITH(zlib,
AC_HELP_STRING( [--with-zlib@<:@=DIR@:>@],
[use zlib (located in directory DIR, if supplied) to read compressed data. @<:@default=yes, if available@:>@]),
[
if test $withval = no
then
want_zlib=no
elif test $withval = yes
then
want_zlib=yes
else
want_zlib=yes
zlib_dir=$withval
fi
],[
#
# Use zlib if it's present, otherwise don't.
#
want_zlib=ifavailable
zlib_dir=
])
if test "x$want_zlib" = "xno" ; then
AC_MSG_RESULT(no)
else
AC_MSG_RESULT(yes)
AC_WIRESHARK_ZLIB_CHECK
if test "x$want_zlib" = "xno" ; then
AC_MSG_RESULT(zlib not found - disabling compressed capture file support)
fi
fi
dnl pcre check
AC_MSG_CHECKING(whether to use libpcre for regular expressions in dfilters)
AC_ARG_WITH(pcre,
AC_HELP_STRING( [--with-pcre@<:@=DIR@:>@],
[use libpcre (located in directory DIR, if supplied) to use in dfilter regular expressions. @<:@default=yes, if available@:>@]),
[
if test $withval = no
then
want_pcre=no
elif test $withval = yes
then
want_pcre=yes
else
want_pcre=yes
pcre_dir=$withval
fi
],[
#
# Use libpcre if it's present, otherwise don't.
#
want_pcre=ifavailable
pcre_dir=
])
if test "x$want_pcre" = "xno" ; then
AC_MSG_RESULT(no)
else
AC_MSG_RESULT(yes)
AC_WIRESHARK_LIBPCRE_CHECK
if test "x$want_pcre" = "xno" ; then
AC_MSG_RESULT(libpcre not found - disabling support for perl compatible regular expressions in dfilters)
fi
fi
dnl lua check
AC_MSG_CHECKING(whether to use liblua for the lua scripting plugin)
AC_ARG_WITH(lua,
AC_HELP_STRING( [--with-lua@<:@=DIR@:>@],
[use liblua (located in directory DIR, if supplied) for the lua scripting plugin. @<:@default=no@:>@]),
[
if test $withval = no
then
want_lua=no
elif test $withval = yes
then
want_lua=yes
else
want_lua=yes
lua_dir=$withval
fi
],[
#
# Don't use liblua by default (it isn't ready yet)
#
want_lua=no
lua_dir=
])
if test "x$want_lua" = "xno" ; then
AC_MSG_RESULT(no)
else
AC_MSG_RESULT(yes)
AC_WIRESHARK_LIBLUA_CHECK
if test "x$want_lua" = "xno" ; then
AC_MSG_RESULT(liblua not found - disabling support for the lua scripting plugin)
fi
fi
AM_CONDITIONAL(HAVE_LIBLUA, test x$want_lua = xyes)
dnl portaudio check
AC_MSG_CHECKING(whether to use libportaudio for the rtp_player)
AC_ARG_WITH(portaudio,
AC_HELP_STRING( [--with-portaudio@<:@=DIR@:>@],
[use libportaudio (located in directory DIR, if supplied) for the rtp_player. @<:@default=yes, if available@:>@]),
[
if test $withval = no
then
want_portaudio=no
elif test $withval = yes
then
want_portaudio=yes
else
want_portaudio=yes
portaudio_dir=$withval
fi
],[
#
# Use libportaudio by default
#
want_portaudio=ifavailable
portaudio_dir=
])
if test "x$want_portaudio" = "xno" ; then
AC_MSG_RESULT(no)
else
AC_MSG_RESULT(yes)
AC_WIRESHARK_LIBPORTAUDIO_CHECK
if test "x$want_portaudio" = "xno" ; then
AC_MSG_RESULT(libportaudio not found - disabling support for the rtp_player)
fi
fi
AM_CONDITIONAL(HAVE_LIBPORTAUDIO, test x$want_portaudio = xyes)
dnl ipv6 check
AC_ARG_ENABLE(ipv6,
AC_HELP_STRING( [--enable-ipv6],
[use ipv6 name resolution, if available. @<:@default=yes@:>@]),
enable_ipv6=$enableval,enable_ipv6=yes)
AC_MSG_CHECKING(whether to enable ipv6 name resolution if available)
if test "x$enable_ipv6" = "xno" ; then
AC_MSG_RESULT(no)
else
AC_MSG_RESULT(yes)
AC_WIRESHARK_IPV6_STACK
fi
dnl Check if wireshark should be installed setuid
AC_ARG_ENABLE(setuid-install,
AC_HELP_STRING( [--enable-setuid-install],
[install tshark and dumpcap as setuid @<:@default=no@:>@]),
enable_setuid_install=$enableval,enable_setuid_install=no)
AC_MSG_CHECKING(whether to install tshark and dumpcap setuid)
if test "x$enable_setuid_install" = "xno" ; then
AC_MSG_RESULT(no)
else
if test "x$enable_dumpcap" = "xno" ; then
AC_MSG_ERROR(Setuid install works only with --enable-dumpcap, but dumpcap disabled)
else
AC_MSG_RESULT(yes)
fi
fi
AM_CONDITIONAL(SETUID_INSTALL, test x$enable_setuid_install = xyes)
dnl Checks for header files.
AC_HEADER_STDC
AC_CHECK_HEADERS(direct.h dirent.h fcntl.h grp.h netdb.h pwd.h stdarg.h stddef.h unistd.h)
AC_CHECK_HEADERS(sys/ioctl.h sys/param.h sys/socket.h sys/sockio.h sys/stat.h sys/time.h sys/types.h sys/utsname.h sys/wait.h)
AC_CHECK_HEADERS(netinet/in.h)
AC_CHECK_HEADERS(arpa/inet.h arpa/nameser.h)
dnl iconv check
AM_ICONV
dnl SSL Check
SSL_LIBS=''
AC_MSG_CHECKING(whether to use SSL library)
AC_ARG_WITH(ssl,
AC_HELP_STRING( [--with-ssl@<:@=DIR@:>@],
[use SSL crypto library (located in directory DIR, if supplied). @<:@default=no@:>@]),
[
if test "x$withval" = "xno"; then
want_ssl=no
elif test "x$withval" = "xyes"; then
want_ssl=yes
elif test -d "$withval"; then
want_ssl=yes
AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
fi
],[
want_ssl=no
])
if test "x$want_ssl" = "xyes"; then
AC_MSG_RESULT(yes)
AC_CHECK_LIB(crypto,EVP_md5,
[
SSL_LIBS=-lcrypto
],
[
AC_MSG_ERROR([SSL crypto library was requested, but is not available])
])
else
AC_MSG_RESULT(no)
fi
AC_SUBST(SSL_LIBS)
dnl Net-SNMP Check
SNMP_LIBS=''
AC_ARG_WITH(net-snmp,
AC_HELP_STRING( [--with-net-snmp@<:@=PATH@:>@],
[use Net-SNMP library (with PATH as the location of the net-snmp-config shell script that comes with the net-snmp package, if supplied) @<:@default=yes, if available@:>@]),
[
if test $withval = no
then
want_netsnmp=no
elif test $withval = yes
then
want_netsnmp=yes
else
want_netsnmp=yes
netsnmpconfig="$withval"
fi
],[
#
# Set "want_netsnmp" to "ifavailable" to make the default "use it
# if you find it, otherwise don't".
#
want_netsnmp=ifavailable
])
#
# Try Net-SNMP
#
AC_MSG_CHECKING(whether to use Net-SNMP library)
if test "x$want_netsnmp" = "xno" ; then
AC_MSG_RESULT(no)
else
if test "x$want_netsnmp" = "xifavailable" ; then
AC_MSG_RESULT([yes, if available])
else
AC_MSG_RESULT(yes)
fi
AC_WIRESHARK_NETSNMP_CHECK
fi
if test "x$have_net_snmp" = "xyes"; then
AC_DEFINE(HAVE_NET_SNMP, 1, [Define to 1 if Net-SNMP support is to be used])
fi
AC_SUBST(SNMP_LIBS)
dnl kerberos check
AC_MSG_CHECKING(whether to use kerberos)
AC_ARG_WITH(krb5,
AC_HELP_STRING( [--with-krb5@<:@=DIR@:>@],
[use kerberos (located in directory DIR, if supplied) to use in kerberos dissection @<:@default=yes@:>@]),
[
if test $withval = no
then
want_krb5=no
elif test $withval = yes
then
want_krb5=yes
else
want_krb5=yes
krb5_dir=$withval
fi
],[
#
# Use kerberos if specified, otherwise don't.
#
want_krb5=ifavailable
krb5_dir=
])
if test "x$want_krb5" = "xno" ; then
AC_MSG_RESULT(no)
else
AC_MSG_RESULT(yes)
AC_WIRESHARK_KRB5_CHECK
fi
dnl ADNS Check
ADNS_LIBS=''
AC_MSG_CHECKING(whether to use the GNU ADNS library if available)
AC_ARG_WITH(adns,
AC_HELP_STRING( [--with-adns@<:@=DIR@:>@],
[use GNU ADNS (located in directory DIR, if supplied). @<:@default=yes, if present@:>@]),
[
if test "x$withval" = "xno"; then
want_adns=no
elif test "x$withval" = "xyes"; then
want_adns=yes
elif test -d "$withval"; then
want_adns=yes
AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
fi
])
if test "x$with_adns" = "xno" ; then
AC_MSG_RESULT(no)
else
AC_MSG_RESULT(yes)
AC_WIRESHARK_ADNS_CHECK
fi
AC_SUBST(ADNS_LIBS)
#
# Define WS_VAR_IMPORT appropriately for declarations of external
# variables exported from dynamically-linked libraries.
#
AC_DEFINE(WS_VAR_IMPORT, extern, [Define as the string to precede external variable declarations in dynamically-linked libraries])
#
# Define HAVE_AIRPDCAP
# We'll want to remove this eventually.
#
AC_DEFINE(HAVE_AIRPDCAP, 1, [Enable AirPDcap (WPA/WPA2 decryption)])
dnl Checks for typedefs, structures, and compiler characteristics.
# AC_C_CONST
# We need to know whether "struct sockaddr" has an "sa_len" member
# for get_interface_list().
AC_WIRESHARK_STRUCT_SA_LEN
# We must know our byte order
AC_C_BIGENDIAN
# Checks whether "-traditional" is needed when using "ioctl".
# XXX - do we need this?
AC_PROG_GCC_TRADITIONAL
#
# Does GLib define G_GINT64_MODIFIER?
#
AC_MSG_CHECKING([[whether glib.h defines the G_GINT64_MODIFIER macro]])
AC_COMPILE_IFELSE(
[
AC_LANG_SOURCE(
[[
#include <glib.h>
#if GTK_MAJOR_VERSION >= 2
#include <glib/gprintf.h>
#endif
#include <stdio.h>
main()
{
char strbuf[16+1];
g_snprintf(strbuf, sizeof strbuf, "%" G_GINT64_MODIFIER "x\n", (gint64)1);
}
]])
],
[
AC_MSG_RESULT(yes)
],
[
AC_MSG_RESULT(no)
AC_WIRESHARK_CHECK_64BIT_FORMAT(l,
[
AC_WIRESHARK_CHECK_64BIT_FORMAT(ll,
[
AC_WIRESHARK_CHECK_64BIT_FORMAT(L,
[
AC_WIRESHARK_CHECK_64BIT_FORMAT(q,
[
AC_MSG_ERROR([neither %lx nor %llx nor %Lx nor %qx worked on a 64-bit integer])
])
])
])
])
])
GETOPT_C=""
GETOPT_O=""
AC_CHECK_FUNC(getopt, GETOPT_O="",
[GETOPT_O="getopt.o"
AC_DEFINE(NEED_GETOPT_H, 1, [Define if getopt.h needs to be included])
])
if test "$ac_cv_func_getopt" = no ; then
GETOPT_C="getopt.c"
GETOPT_O="getopt.o"
fi
AC_SUBST(GETOPT_C)
AC_SUBST(GETOPT_O)
AC_CHECK_FUNC(strerror, STRERROR_O="",
[STRERROR_O="strerror.o"
AC_DEFINE(NEED_STRERROR_H, 1, [Define if strerror.h needs to be included])
])
if test "$ac_cv_func_strerror" = no ; then
STRERROR_C="strerror.c"
STRERROR_O="strerror.o"
fi
AC_SUBST(STRERROR_C)
AC_SUBST(STRERROR_O)
AC_CHECK_FUNC(strcasecmp, STRCASECMP_O="",
STRCASECMP_O="strcasecmp.o")
if test "$ac_cv_func_strcasecmp" = no ; then
STRCASECMP_C="strcasecmp.c"
STRCASECMP_O="strcasecmp.o"
fi
AC_SUBST(STRCASECMP_C)
AC_SUBST(STRCASECMP_O)
AC_CHECK_FUNC(strncasecmp, STRNCASECMP_O="",
STRNCASECMP_O="strncasecmp.o")
if test "$ac_cv_func_strncasecmp" = no ; then
STRNCASECMP_C="strncasecmp.c"
STRNCASECMP_O="strncasecmp.o"
fi
AC_SUBST(STRNCASECMP_C)
AC_SUBST(STRNCASECMP_O)
AC_CHECK_FUNC(mkstemp, MKSTEMP_O="",
MKSTEMP_O="mkstemp.o")
if test "$ac_cv_func_mkstemp" = no ; then
MKSTEMP_C="mkstemp.c"
MKSTEMP_O="mkstemp.o"
fi
AC_SUBST(MKSTEMP_C)
AC_SUBST(MKSTEMP_O)
ac_save_LIBS="$LIBS"
LIBS="$GLIB_LIBS $LIBS"
G_ASCII_STRTOULL_C=""
G_ASCII_STRTOULL_O=""
G_ASCII_STRTOULL_LO=""
AC_CHECK_FUNC(g_ascii_strtoull,
[G_ASCII_STRTOULL_O=""
G_ASCII_STRTOULL_LO=""],
[G_ASCII_STRTOULL_O="g_ascii_strtoull.o"
G_ASCII_STRTOULL_LO="g_ascii_strtoull.lo"
AC_DEFINE(NEED_G_ASCII_STRTOULL_H, 1, [Define if g_ascii_strtoull.h needs to be included])
])
LIBS="$ac_save_LIBS"
if test "$ac_cv_func_g_ascii_strtoull" = no ; then
G_ASCII_STRTOULL_C="g_ascii_strtoull.c"
G_ASCII_STRTOULL_O="g_ascii_strtoull.o"
G_ASCII_STRTOULL_LO="g_ascii_strtoull.lo"
fi
AC_SUBST(G_ASCII_STRTOULL_C)
AC_SUBST(G_ASCII_STRTOULL_O)
AC_SUBST(G_ASCII_STRTOULL_LO)
AC_CHECK_FUNC(inet_aton,
[INET_ATON_O=""
INET_ATON_LO=""],
[INET_ATON_O="inet_aton.o"
INET_ATON_LO="inet_aton.lo"
])
if test "$ac_cv_func_inet_aton" = no ; then
INET_ATON_C="inet_aton.c"
INET_ATON_O="inet_aton.o"
INET_ATON_LO="inet_aton.lo"
AC_DEFINE(NEED_INET_ATON_H, 1, [Define if inet/aton.h needs to be included])
fi
AC_SUBST(INET_ATON_C)
AC_SUBST(INET_ATON_O)
AC_SUBST(INET_ATON_LO)
AC_SEARCH_LIBS(inet_pton, [socket nsl], [
dnl check for pre-BIND82 inet_pton() bug.
AC_MSG_CHECKING(for broken inet_pton)
AC_TRY_RUN([#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
int main()
{
#ifdef AF_INET6
char buf[16];
/* this should return 0 (error) */
return inet_pton(AF_INET6, "0:1:2:3:4:5:6:7:", buf);
#else
return 1;
#endif
}], [AC_MSG_RESULT(ok);
have_inet_pton=yes], [AC_MSG_RESULT(broken);
have_inet_pton=no], [AC_MSG_RESULT(cross compiling, assume it is broken);
have_inet_pton=no])],
have_inet_pton=no)
if test "$have_inet_pton" = no; then
INET_PTON_C="inet_pton.c"
INET_PTON_O="inet_pton.o"
INET_PTON_LO="inet_pton.lo"
else
INET_PTON_C=""
INET_PTON_O=""
INET_PTON_LO=""
fi
AC_SUBST(INET_PTON_C)
AC_SUBST(INET_PTON_O)
AC_SUBST(INET_PTON_LO)
AC_SEARCH_LIBS(inet_ntop, [socket nsl], [
AC_MSG_CHECKING([for inet_ntop prototype])
AC_TRY_COMPILE([#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
extern const char *inet_ntop(int, const void *, char *, size_t);],, [
AC_MSG_RESULT(yes)
AC_DEFINE(HAVE_INET_NTOP_PROTO, 1,
[Define if inet_ntop() prototype exists])], [
AC_TRY_COMPILE([#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
extern const char *inet_ntop(int, const void *, char *, socklen_t);],, [
AC_MSG_RESULT(yes)
AC_DEFINE(HAVE_INET_NTOP_PROTO, 1,
[Define if inet_ntop() prototype exists])], [
AC_MSG_RESULT(no)])])
INET_NTOP_O=""
INET_NTOP_LO=""], [
INET_NTOP_C="inet_ntop.c"
INET_NTOP_O="inet_ntop.o"
INET_NTOP_LO="inet_ntop.lo"
AC_DEFINE(NEED_INET_V6DEFS_H, 1,
[Define if inet/v6defs.h needs to be included])])
AC_SUBST(INET_NTOP_C)
AC_SUBST(INET_NTOP_O)
AC_SUBST(INET_NTOP_LO)
AC_CHECK_FUNC(strptime, STRPTIME_O="",
[STRPTIME_O="strptime.o"
AC_DEFINE(NEED_STRPTIME_H, 1, [Define if strptime.h needs to be included])
])
if test "$ac_cv_func_strptime" = no ; then
STRPTIME_C="strptime.c"
STRPTIME_O="strptime.o"
fi
AC_SUBST(STRPTIME_C)
AC_SUBST(STRPTIME_O)
AC_CHECK_FUNCS(getprotobynumber gethostbyname2)
AC_CHECK_FUNCS(issetugid)
AC_CHECK_FUNCS(mmap mprotect sysconf)
dnl blank for now, but will be used in future
AC_SUBST(wireshark_SUBDIRS)
dnl
dnl check whether plugins should be enabled and, if they should be,
dnl check for plugins directory - stolen from Amanda's configure.in
dnl
dnl we don't wish to expand ${libdir} yet
plugindir='${libdir}/wireshark/plugins/${VERSION}'
AC_ARG_WITH(plugins,
AC_HELP_STRING( [--with-plugins@<:@=DIR@:>@],
[support plugins (installed in DIR, if supplied). @<:@default=yes, if possible@:>@]),
[
if test "x$withval" = "xno"; then
have_plugins=no
elif test "x$have_plugins" = "xno"; then
AC_MSG_ERROR([GLib on this platform doesn't support loadable modules, so you can't enable plugins.])
if test "x$withval" != "xyes"; then
plugindir="$withval"
fi
fi
])
AM_CONDITIONAL(HAVE_PLUGINS, test "x$have_plugins" = "xyes")
if test x$have_plugins = xyes
then
AC_DEFINE(HAVE_PLUGINS, 1, [Define if plugins are enabled])
fi
AC_SUBST(plugindir)
CPPFLAGS="$CPPFLAGS '-DPLUGIN_DIR=\"\$(plugindir)\"'"
#
# The plugin dissectors reside in ./plugins/PROTO/
#
PLUGIN_LIBS="-L../../epan -lwireshark $GLIB_LIBS"
AC_SUBST(PLUGIN_LIBS)
dnl libtool defs
#
# Yes, AM_PROG_LIBTOOL is redundant with newer version(s) of some tool(s)
# (autoconf? automake? libtool?) - with the newer version(s), it's
# just an alias for AC_PROG_LIBTOOL, which is called earlier.
#
# With older version(s) of those tool(s), however, it's not just an
# alias, and the configure scripts don't work without it.
#
AM_PROG_LIBTOOL
AC_SUBST(LIBTOOL_DEPS)
AM_CONDITIONAL(ENABLE_STATIC, test x$enable_static = xyes)
if test x$enable_static = xyes -a x$have_plugins = xyes
then
AC_DEFINE(ENABLE_STATIC, 1, [Link plugins statically into Wireshark])
fi
AC_SUBST(ENABLE_STATIC)
dnl Save the cacheable configure results to config.cache before recursing
AC_CACHE_SAVE
AM_CONFIG_HEADER(config.h)
AC_CONFIG_SUBDIRS(wiretap)
AC_OUTPUT(
Makefile
doxygen.cfg
asn1/Makefile
doc/Makefile
epan/Makefile
epan/crypt/Makefile
epan/doxygen.cfg
epan/dfilter/Makefile
epan/dissectors/Makefile
epan/ftypes/Makefile
epan/wslua/Makefile
codecs/Makefile
gtk/Makefile
gtk/doxygen.cfg
help/Makefile
packaging/Makefile
packaging/nsis/Makefile
packaging/rpm/Makefile
packaging/rpm/SPECS/Makefile
packaging/rpm/SPECS/wireshark.spec
packaging/svr4/Makefile
packaging/svr4/checkinstall
packaging/svr4/pkginfo
plugins/Makefile
plugins/agentx/Makefile
plugins/artnet/Makefile
plugins/asn1/Makefile
plugins/ciscosm/Makefile
plugins/docsis/Makefile
plugins/enttec/Makefile
plugins/giop/Makefile
plugins/gryphon/Makefile
plugins/irda/Makefile
plugins/lwres/Makefile
plugins/m2m/Makefile
plugins/mate/Makefile
plugins/mgcp/Makefile
plugins/opcua/Makefile
plugins/opsi/Makefile
plugins/pcli/Makefile
plugins/profinet/Makefile
plugins/rlm/Makefile
plugins/rtnet/Makefile
plugins/rudp/Makefile
plugins/sbus/Makefile
plugins/stats_tree/Makefile
plugins/unistim/Makefile
plugins/v5ua/Makefile
plugins/wimax/Makefile
tools/Makefile
tools/idl2wrs.sh
tools/lemon/Makefile
,)
dnl AC_CONFIG_FILES([tools/setuid-root.pl], [chmod +x tools/setuid-root.pl])
# Pretty messages
if test "x$enable_setuid_install" = "xyes" ; then
setuid_message="yes"
else
setuid_message="no"
fi
if test "x$want_zlib" = "xno" ; then
zlib_message="no"
else
zlib_message="yes"
fi
if test "x$want_pcre" = "xno" ; then
pcre_message="no"
else
pcre_message="yes"
fi
if test "x$want_lua" = "xyes" -a "x$have_plugins" = "xyes" ; then
lua_message="yes"
else
lua_message="no"
fi
if test "x$want_portaudio" = "xyes" ; then
portaudio_message="yes"
else
portaudio_message="no"
fi
if test "x$want_ssl" = "xno" ; then
ssl_message="no"
else
ssl_message="yes"
fi
if test "x$want_krb5" = "xno" ; then
krb5_message="no"
else
krb5_message="yes ($ac_krb5_version)"
fi
if test "x$have_good_adns" = "xyes" ; then
adns_message="yes"
else
adns_message="no"
fi
if test "x$have_net_snmp" = "xyes" ; then
snmp_libs_message="yes"
else
snmp_libs_message="no"
fi
echo ""
echo "The Wireshark package has been configured with the following options."
echo " Build wireshark : $enable_wireshark"
echo " Build tshark : $enable_tshark"
echo " Build capinfos : $enable_capinfos"
echo " Build editcap : $enable_editcap"
echo " Build dumpcap : $enable_dumpcap"
echo " Build mergecap : $enable_mergecap"
echo " Build text2pcap : $enable_text2pcap"
echo " Build idl2wrs : $enable_idl2wrs"
echo " Build randpkt : $enable_randpkt"
echo " Build dftest : $enable_dftest"
echo ""
echo " Install setuid : $setuid_message"
echo " Use plugins : $have_plugins"
echo " Build lua plugin : $lua_message"
echo " Build rtp_player : $portaudio_message"
echo " Use GTK+ v2 library : $enable_gtk2"
if test "x$enable_gtk2" = "xyes" ; then
echo " Use threads : $enable_threads"
echo " Build profile binaries : $enable_profile_build"
fi
echo " Use pcap library : $want_pcap"
echo " Use zlib library : $zlib_message"
echo " Use pcre library : $pcre_message"
echo " Use kerberos library : $krb5_message"
echo " Use GNU ADNS library : $adns_message"
echo " Use SMI SNMP library : $libsmi"
echo " Use GNU crypto library : $gcrypt_message"
echo " Use SSL crypto library : $ssl_message"
echo " Use IPv6 name resolution : $enable_ipv6"
echo " Use Net-SNMP library : $snmp_libs_message"
echo " Use gnutls library : $tls_message"