#
AC_PREREQ(2.60)
+AC_INIT(wireshark, 1.3.6)
+
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
+dnl As nothing in the Wireshark is itself a build tool (we are not,
+dnl for example, a compiler that generates machine code), we probably
+dnl don't need AC_CANONICAL_TARGET, so, in theory, we should be able
+dnl to use AC_CANONICAL_BUILD and AC_CANONICAL_HOST - or perhaps just
+dnl AC_CANONICAL_HOST - instead. Note that we do have tools, such as
+dnl lemon, that need to be built for the build machine, not for the
+dnl host machine, so we might need both.
+dnl
+dnl This has to be done *after* AC_INIT, otherwise autogen.sh fails.
-dnl AC_CANONICAL_HOST
dnl AC_CANONICAL_BUILD
-dnl AC_CANONICAL_TARGET
+dnl AC_CANONICAL_HOST
+AC_CANONICAL_TARGET
-AC_INIT(wireshark, 1.3.1)
-AM_INIT_AUTOMAKE([1.9 tar-ustar])
+AM_INIT_AUTOMAKE([1.9 tar-ustar dist-bzip2 no-dist-gzip])
AM_DISABLE_STATIC
dnl Checks for programs.
AC_PROG_CC
AM_PROG_CC_C_O
+AC_PROG_CXX
AC_PROG_CPP
dnl Work around libtool bug (fixed in the version 1.5a?)
AC_DEFUN([AC_PROVIDE_AC_LIBTOOL_DLOPEN], )
tls_message="yes"
]
, [
- echo echo "gnuTLS not found, disabling ssl decryption"
+ echo "gnuTLS not found, disabling ssl decryption"
tls_message="no"
]
)
AC_CHECK_PROG(HAVE_FOP, fop, "yes", "no")
AM_CONDITIONAL(HAVE_FOP, test x$HAVE_FOP = xyes)
+#
+# Look for something to convert HTML to text (for docbook/)
+#
+AC_PATH_PROG(ELINKS, elinks)
+AC_CHECK_PROG(HAVE_ELINKS, elinks, "yes", "no")
+AM_CONDITIONAL(HAVE_ELINKS, test x$HAVE_ELINKS = xyes)
+
+## links: Fails as used in docbook/Makefile.am
+## (Rather than fixing things we'll just disable the use of links).
+##AC_PATH_PROG(LINKS, links)
+##AC_CHECK_PROG(HAVE_LINKS, links, "yes", "no")
+##AM_CONDITIONAL(HAVE_LINKS, test x$HAVE_LINKS = xyes)
+
+AC_PATH_PROG(LYNX, lynx)
+AC_CHECK_PROG(HAVE_LYNX, lynx, "yes", "no")
+AM_CONDITIONAL(HAVE_LYNX, test x$HAVE_LYNX = xyes)
+
+
# Check for hhc (html help compiler)
AC_PATH_PROG(HHC, hhc.exe)
AC_CHECK_PROG(HAVE_HHC, hhc.exe, "yes", "no")
AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wpragmas)
AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wredundant-decls)
AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wvla)
+ AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wc++-compat)
+ AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wjump-misses-init)
#
# epan/dissectors/packet-ncp2222.inc blocks this one
# for now.
AC_WIRESHARK_GCC_CFLAGS_CHECK(-Warray-bounds)
AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wcast-align)
AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wformat-security)
+# Use the faster pre gcc 4.5 floating point precision
+AC_WIRESHARK_GCC_CFLAGS_CHECK(-fexcess-precision=fast)
AC_WIRESHARK_GCC_LDFLAGS_CHECK([-Wl,--as-needed])
+# AC_WIRESHARK_GCC_LDFLAGS_CHECK([-flto])
+# AC_WIRESHARK_GCC_LDFLAGS_CHECK([-fwhopr])
+# AC_WIRESHARK_GCC_LDFLAGS_CHECK([-fwhole-program])
#
# If we're running gcc add '-D_U_="__attribute__((unused))"' to CFLAGS as well,
esac
AC_SUBST(LDFLAGS_SHAREDLIB)
+# Control silent compiling
+m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([no])])
+
#
# On OS X, if we find the headers for Core Foundation, Launch Services,
# and Core Services, add -framework options to link with Application
# programs to be built with GTK+.
#
if test "x$enable_wireshark" = "xyes"; then
- AM_PATH_GTK_2_0(2.4.0, CFLAGS="$CFLAGS $GTK_CFLAGS", GTK_OK=no, gthread)
+ AM_PATH_GTK_2_0(2.4.0,
+ [
+ CFLAGS="$CFLAGS $GTK_CFLAGS"
+ CXXFLAGS="$CXXFLAGS $GTK_CFLAGS"
+ ], GTK_OK=no, gthread)
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.
+# GLib checks; we require GLib 2.4 or later, and require gmodule
+# support, as we need that for dynamically loading plugins.
+# If we found GTK+, 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 GLIB_CFLAGS. If we didn't find GTK+, it does add
+# GLIB_CFLAGS to 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+
fi
wireshark_bin=""
wireshark_man=""
- # Honor GLIB_CFLAGS
- AM_PATH_GLIB_2_0(2.4.0, CFLAGS="$CFLAGS $GLIB_CFLAGS", AC_MSG_ERROR(GLib 2.4 or later distribution not found.), gmodule)
-
+ # Use GLIB_CFLAGS
+ AM_PATH_GLIB_2_0(2.4.0,
+ [
+ CFLAGS="$CFLAGS $GLIB_CFLAGS"
+ CXXFLAGS="$CXXFLAGS $GLIB_CFLAGS"
+ ], AC_MSG_ERROR(GLib 2.4 or later distribution not found.), gmodule)
else
+ #
+ # We have GTK+, and thus will be building Wireshark unless the
+ # user explicitly disabled it.
+ #
wireshark_bin="wireshark\$(EXEEXT)"
wireshark_man="wireshark.1"
wireshark_SUBDIRS="codecs gtk"
- # Honor GLIB_CFLAGS
+ # Don't use GLIB_CFLAGS
AM_PATH_GLIB_2_0(2.4.0, , AC_MSG_ERROR(GLib 2.4 or later distribution not found.), gmodule)
fi
+#
+# Check whether GLib includes GRegex support.
+# We just assume that everybody builds GLib 2.14.0 and later
+# with GRegex support; it's possible to compile GLib without
+# GRegex but it doesn't look as if anyone does.
+#
+AC_MSG_CHECKING(for GLIB - version >= 2.14.0)
+if test x$PKG_CONFIG != xno ; then
+ ## don't try to run the test against uninstalled libtool libs
+ if $PKG_CONFIG --uninstalled $pkg_config_args; then
+ echo "Will use uninstalled version of GLib found in PKG_CONFIG_PATH"
+ enable_glibtest=no
+ fi
+
+ if $PKG_CONFIG --atleast-version 2.14.0 glib-2.0; then
+ have_gregex=yes
+ else
+ have_gregex=no
+ fi
+ AC_MSG_RESULT($have_gregex)
+fi
+
#
# Check whether GLib modules are supported, to determine whether we
# can support plugins.
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@:>@]),
+ [use libpcre (located in directory DIR, if supplied) to use in dfilter regular expressions. Not needed if you have GLib 2.14 or later. @<:@default=yes, if available and GLib < 2.14@:>@]),
[
if test $withval = no
then
fi
],[
#
- # Use libpcre if it's present, otherwise don't.
+ # Use libpcre if it's present and GRegex isn't, otherwise don't.
#
- want_pcre=ifavailable
+ if test $have_gregex = yes ; then
+ want_pcre=no
+ else
+ want_pcre=ifavailable
+ fi
pcre_dir=
])
if test "x$want_pcre" = "xno" ; then
fi
+dnl Check if dumpcap should be installed with filesystem capabilities
+AC_PATH_PROG(SETCAP, setcap)
+AC_ARG_ENABLE(setcap-install,
+ AC_HELP_STRING( [--enable-setcap-install],
+ [install dumpcap with cap_net_admin and cap_net_raw @<:@default=no@:>@]),
+ enable_setcap_install=$enableval,enable_setcap_install=no)
+
+AC_MSG_CHECKING(whether to install dumpcap with cap_net_admin and cap_net_raw capabilities)
+if test "x$enable_setcap_install" = "xno" ; then
+ AC_MSG_RESULT(no)
+else
+ if test "x$SETCAP" = "x" ; then
+ AC_MSG_RESULT(no. Setcap not found)
+ elif test "x$enable_dumpcap" = "xno" ; then
+ AC_MSG_ERROR(Setcap install works only with dumpcap but dumpcap is disabled)
+ else
+ AC_MSG_RESULT(yes)
+ fi
+fi
+
+AM_CONDITIONAL(SETCAP_INSTALL, test x$enable_setcap_install = xyes)
+
dnl Check if dumpcap should be installed setuid
AC_ARG_ENABLE(setuid-install,
AC_HELP_STRING( [--enable-setuid-install],
if test "x$enable_setuid_install" = "xno" ; then
AC_MSG_RESULT(no)
else
- if test "x$enable_dumpcap" = "xno" ; then
+ if test "x$enable_setcap_install" = "xyes" ; then
+ enable_setuid_install=no
+ AC_MSG_RESULT(no; using setcap instead)
+ elif test "x$enable_dumpcap" = "xno" ; then
AC_MSG_ERROR(Setuid install works only with dumpcap but dumpcap is disabled)
else
AC_MSG_RESULT(yes)
AM_CONDITIONAL(SETUID_INSTALL, test x$enable_setuid_install = xyes)
AC_CHECK_FUNCS(setresuid setresgid)
+dnl ...but our Network Operations group is named "no"!
+DUMPCAP_GROUP=''
+AC_ARG_WITH(dumpcap-group,
+ AC_HELP_STRING( [--with-dumpcap-group=GROUP],
+ [restrict dumpcap to GROUP]),
+[
+ if test "x$withval" = "xyes"; then
+ AC_MSG_ERROR([No dumpcap group specified.])
+ elif test "x$withval" != "xno"; then
+ AC_MSG_RESULT($withval)
+ DUMPCAP_GROUP="$withval"
+ fi
+])
+AC_SUBST(DUMPCAP_GROUP)
+AM_CONDITIONAL(HAVE_DUMPCAP_GROUP, test x$DUMPCAP_GROUP != x)
+
dnl libcap (not libpcap) check
LIBCAP_LIBS=''
AC_MSG_CHECKING(whether to use the libcap capabilities library)
dnl Checks for typedefs, structures, and compiler characteristics.
# AC_C_CONST
+# Check how we can get the time zone abbreviation
+AC_WIRESHARK_TIMEZONE_ABBREV
+
# We need to know whether "struct sockaddr" has an "sa_len" member
# for get_interface_list().
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])
-])
+AC_CHECK_FUNC(getopt,
+ [GETOPT_O=""
+ AC_DEFINE(HAVE_GETOPT_H, 1, [Define to 1 if you have the <getopt.h> header file.])
+ ],
+ GETOPT_O="wsgetopt.o"
+)
if test "$ac_cv_func_getopt" = no ; then
- GETOPT_C="getopt.c"
- GETOPT_O="getopt.o"
+ GETOPT_C="wsgetopt.c"
+ GETOPT_O="wsgetopt.o"
fi
AC_SUBST(GETOPT_C)
AC_SUBST(GETOPT_O)
AC_CHECK_FUNCS(getprotobynumber gethostbyname2)
AC_CHECK_FUNCS(issetugid)
AC_CHECK_FUNCS(mmap mprotect sysconf)
+AC_CHECK_FUNCS(strtoll)
dnl blank for now, but will be used in future
AC_SUBST(wireshark_SUBDIRS)
asn1/acp133/Makefile
asn1/acse/Makefile
asn1/ansi_map/Makefile
- asn1/ansi-tcap/Makefile
+ asn1/ansi_tcap/Makefile
asn1/camel/Makefile
asn1/cdt/Makefile
asn1/charging_ase/Makefile
asn1/cmip/Makefile
+ asn1/cmp/Makefile
+ asn1/crmf/Makefile
asn1/cms/Makefile
asn1/dap/Makefile
asn1/disp/Makefile
asn1/ftam/Makefile
asn1/gnm/Makefile
asn1/goose/Makefile
- asn1/gsmmap/Makefile
+ asn1/gsm_map/Makefile
asn1/h225/Makefile
asn1/h235/Makefile
asn1/h245/Makefile
asn1/h450-ros/Makefile
asn1/h460/Makefile
asn1/h501/Makefile
+ asn1/HI2Operations/Makefile
+ asn1/hnbap/Makefile
asn1/inap/Makefile
+ asn1/kerberos/Makefile
asn1/ldap/Makefile
- asn1/logotype-cert-extn/Makefile
+ asn1/logotypecertextn/Makefile
asn1/lte-rrc/Makefile
asn1/mms/Makefile
asn1/mpeg-audio/Makefile
asn1/mpeg-pes/Makefile
asn1/nbap/Makefile
- asn1/ns-cert-exts/Makefile
+ asn1/ns_cert_exts/Makefile
asn1/ocsp/Makefile
asn1/p7/Makefile
asn1/pcap/Makefile
asn1/pkcs1/Makefile
asn1/pkcs12/Makefile
asn1/pkinit/Makefile
+ asn1/pkixac/Makefile
asn1/pkix1explicit/Makefile
asn1/pkix1implicit/Makefile
- asn1/pkixcmp/Makefile
- asn1/pkixcrmf/Makefile
asn1/pkixproxy/Makefile
asn1/pkixqualified/Makefile
asn1/pkixtsp/Makefile
asn1/rrc/Makefile
asn1/rrlp/Makefile
asn1/rtse/Makefile
+ asn1/rua/Makefile
asn1/s1ap/Makefile
asn1/s4406/Makefile
asn1/sabp/Makefile
asn1/x509sat/Makefile
asn1/x721/Makefile
doc/Makefile
+ docbook/Makefile
epan/Makefile
epan/crc/Makefile
epan/crypt/Makefile
epan/doxygen.cfg
epan/dfilter/Makefile
epan/dissectors/Makefile
+ epan/dissectors/dcerpc/Makefile
+ epan/dissectors/pidl/Makefile
epan/ftypes/Makefile
epan/wslua/Makefile
epan/wspython/Makefile
plugins/ethercat/Makefile
plugins/giop/Makefile
plugins/gryphon/Makefile
+ plugins/interlink/Makefile
plugins/irda/Makefile
plugins/m2m/Makefile
plugins/mate/Makefile
# Pretty messages
+if test "x$enable_setcap_install" = "xyes" ; then
+ setcap_message="yes"
+else
+ setcap_message="no"
+fi
+
+
if test "x$enable_setuid_install" = "xyes" ; then
setuid_message="yes"
else
setuid_message="no"
fi
+if test "x$DUMPCAP_GROUP" = "x" ; then
+ dumpcap_group_message="(none)"
+else
+ dumpcap_group_message="$DUMPCAP_GROUP"
+fi
+
if test "x$want_zlib" = "xno" ; then
zlib_message="no"
else
fi
if test "x$want_pcre" = "xno" ; then
- pcre_message="no"
+ if test $have_gregex = yes
+ then
+ pcre_message="no (using GRegex instead)"
+ else
+ pcre_message="no"
+ fi
else
pcre_message="yes"
fi
echo " Build dftest : $enable_dftest"
echo " Build rawshark : $enable_rawshark"
echo ""
+echo " Install dumpcap with capabilities : $setcap_message"
echo " Install dumpcap setuid : $setuid_message"
+echo " Use dumpcap group : $dumpcap_group_message"
echo " Use plugins : $have_plugins"
echo " Use lua library : $lua_message"
echo " Use python binding : $python_message"