#
AC_PREREQ(2.60)
+AC_INIT(wireshark, 1.3.2)
+
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.1.2)
AM_INIT_AUTOMAKE([1.9 tar-ustar])
AM_DISABLE_STATIC
AC_MSG_ERROR(I couldn't find yacc (or bison or ...); make sure it's installed and in your path)
fi
AM_PROG_LEX
-AC_PATH_PROG(LEXDUMMY, $LEX)
-if test "x$LEXDUMMY" = x
+AC_PATH_PROG(LEX, flex)
+if test "x$LEX" = x
then
- AC_MSG_ERROR(I couldn't find (f)lex; make sure it's installed and in your path)
+ AC_MSG_ERROR(I couldn't find flex; make sure it's installed and in your path)
fi
AC_PATH_PROG(POD2MAN, pod2man)
if test "x$POD2MAN" = x
[use gnutls library @<:@default=yes@:>@]),
with_gnutls="$withval", with_gnutls="yes")
if test "x$with_gnutls" = "xyes"; then
- AM_PATH_LIBGNUTLS(1.2.0,
+ PKG_CHECK_MODULES([LIBGNUTLS], [gnutls >= 1.2.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
+ echo echo "gnuTLS not found, disabling ssl decryption"
+ tls_message="no"
]
)
fi
then
AC_WIRESHARK_GCC_CFLAGS_CHECK(-pedantic)
AC_WIRESHARK_GCC_CFLAGS_CHECK(-Woverflow)
+ AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wlogical-op)
AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wno-overlength-strings)
# AC_WIRESHARK_GCC_CFLAGS_CHECK(-fstrict-overflow -Wstrict-overflow=4)
# AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wunreachable-code)
+# AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wunsafe-loop-optimizations)
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(-Waddress)
+ AC_WIRESHARK_GCC_CFLAGS_CHECK(-Warray-bounds)
+ AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wattributes)
+ AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wdeclaration-after-statement)
+ AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wdiv-by-zero)
+ AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wformat-security)
+ AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wignored-qualifiers)
+ 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(-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.
#
# epan/dissectors/packet-afs.c blocks this one for now.
#
AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wshadow)
+ #
+ # More cleanup needed for this on LP64.
+ #
+ AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wshorten-64-to-32)
fi
],)
AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wall -W) # -W is now known as -Wextra
+AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wextra) # -W is now known as -Wextra
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)
AC_WIRESHARK_GCC_CFLAGS_CHECK(-Warray-bounds)
AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wcast-align)
+AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wformat-security)
+
+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,
#
# 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, ...)
+# typically not set for "generated" code (flex, ans2wrs, idl2wrs, ...)
#
warnings_as_errors_default="yes"
AC_MSG_CHECKING(whether we should treat compiler warnings as errors)
have_plugins=no
fi
+#
+# If we have <dlfcn.h>, check whether we can use dladdr to find a
+# filename (hopefully, a full pathname, but no guarantees) for
+# the executable.
+#
+if test "$ac_cv_header_dlfcn_h" = "yes"
+then
+ AC_MSG_CHECKING(whether dladdr can be used to find the pathname of an executable)
+ ac_save_CFLAGS="$CFLAGS"
+ ac_save_LIBS="$LIBS"
+ CFLAGS="$CFLAGS $GLIB_CFLAGS"
+ LIBS="$GLIB_LIBS $LIBS"
+ AC_TRY_RUN([
+#define _GNU_SOURCE /* required on Linux, sigh */
+#include <dlfcn.h>
+
+int
+main(void)
+{
+ Dl_info info;
+
+ if (!dladdr((void *)main, &info))
+ return 1; /* failure */
+ return 0; /* assume success */
+}
+], ac_cv_dladdr_finds_executable_path=yes, ac_cv_dladdr_finds_executable_path=no,
+ [echo $ac_n "cross compiling; assumed OK... $ac_c"
+ ac_cv_dladdr_finds_executable_path=yes])
+ CFLAGS="$ac_save_CFLAGS"
+ LIBS="$ac_save_LIBS"
+ if test x$ac_cv_dladdr_finds_executable_path = xyes
+ then
+ AC_DEFINE(DLADDR_FINDS_EXECUTABLE_PATH, 1, [Define if dladdr can be used to find the path of the executable])
+ fi
+ AC_MSG_RESULT($ac_cv_dladdr_finds_executable_path)
+fi
+
dnl IGE Mac integration check
AC_MSG_CHECKING(whether to use IGE Mac integration functions)
AC_SUBST(wireshark_bin)
AC_SUBST(wireshark_man)
-rdps_bin="rdps\$(EXEEXT)"
-AC_SUBST(rdps_bin)
-
# Enable/disable tshark
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@:>@]),
+ [use liblua (located in directory DIR, if supplied) for the lua scripting plugin. @<:@default=yes, if available@:>@]),
[
if test $withval = no
then
fi
],[
#
- # Don't use liblua by default (it isn't ready yet)
+ # Use liblua by default
#
- want_lua=no
+ want_lua=ifavailable
lua_dir=
])
if test "x$want_lua" = "xno" ; then
fi
AC_SUBST(GEOIP_LIBS)
+dnl Python devel Check
+AC_ARG_WITH(python,
+ AC_HELP_STRING( [--with-python@<:@=DIR@:>@],
+ [use python interpretor (installed in DIR, if supplied). @<:@default=no@:>@ (EXPERIMENTAL)]),
+[
+pythondir='${libdir}/wireshark/python/${VERSION}'
+if test "x$withval" = "xno"; then
+ want_python=no
+elif test "x$withval" != "xyes"; then
+ pythondir="$withval"
+ want_python=yes
+ AC_WIRESHARK_PYTHON_CHECK
+else
+ want_python=yes
+ AC_WIRESHARK_PYTHON_CHECK
+fi
+])
+AM_CONDITIONAL(HAVE_LIBPY, test x$want_python = xyes)
+AC_SUBST(pythondir)
+
#
# 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])
+AC_ARG_ENABLE(airpcap,
+ AC_HELP_STRING( [--enable-airpcap],
+ [use airpcap in wireshark. @<:@default=no@:>@]),
+ enable_airpcap=$enableval
+ if test x$enable_airpcap != xno; then
+ AC_DEFINE(HAVE_AIRPCAP, 1, [Enable AirPcap])
+ fi
+)
#
# Define HAVE_AIRPDCAP
# We'll want to remove this eventually.
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_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
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_CHECK_FUNCS(mkstemp mkdtemp)
#
# XXX - if inet_aton isn't found, the build fails, with a complaint from
fi
AC_SUBST(ENABLE_STATIC)
+AC_ARG_ENABLE(new-packet-list,
+ AC_HELP_STRING( [--enable-new-packet-list],
+ [use new packet list feature. @<:@default=yes@:>@]),
+ new_packet_list=$enableval,new_packet_list=yes)
+AC_MSG_CHECKING(if new packet list is used);
+if test "x$new_packet_list" = "xyes" ; then
+ AC_MSG_RESULT(yes)
+ CFLAGS=" -DNEW_PACKET_LIST $CFLAGS"
+else
+ AC_MSG_RESULT(no)
+fi
+
dnl Save the cacheable configure results to config.cache before recursing
AC_CACHE_SAVE
sinclude(plugins/Custom.m4) dnl
-ifdef(_CUSTOM_AC_OUTPUT_, '', define(_CUSTOM_AC_OUTPUT_, )) dnl
+ifdef(_CUSTOM_AC_OUTPUT_,, define(_CUSTOM_AC_OUTPUT_, )) dnl
AM_CONFIG_HEADER(config.h)
AC_OUTPUT(
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/h501/Makefile
asn1/inap/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/pkinit/Makefile
asn1/pkix1explicit/Makefile
asn1/pkix1implicit/Makefile
- asn1/pkixcmp/Makefile
- asn1/pkixcrmf/Makefile
asn1/pkixproxy/Makefile
asn1/pkixqualified/Makefile
asn1/pkixtsp/Makefile
asn1/x721/Makefile
doc/Makefile
epan/Makefile
+ epan/crc/Makefile
epan/crypt/Makefile
epan/doxygen.cfg
epan/dfilter/Makefile
epan/dissectors/Makefile
epan/ftypes/Makefile
epan/wslua/Makefile
+ epan/wspython/Makefile
codecs/Makefile
gtk/Makefile
gtk/doxygen.cfg
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/ethercat/Makefile
plugins/giop/Makefile
plugins/gryphon/Makefile
- plugins/infiniband/Makefile
plugins/irda/Makefile
- plugins/lwres/Makefile
plugins/m2m/Makefile
plugins/mate/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/sercosiii/Makefile
plugins/stats_tree/Makefile
plugins/unistim/Makefile
- plugins/v5ua/Makefile
plugins/wimax/Makefile
plugins/wimaxasncp/Makefile
tools/Makefile
pcre_message="yes"
fi
-if test "x$want_lua" = "xyes" -a "x$have_plugins" = "xyes" ; then
+if test "x$want_lua" = "xyes" ; then
lua_message="yes"
else
lua_message="no"
fi
+if test "x$want_python" = "xyes"; then
+ python_message="yes"
+else
+ python_message="no"
+fi
+
if test "x$want_portaudio" = "xyes" ; then
portaudio_message="yes"
else
libcap_message="no"
fi
+if test "x$have_good_geoip" = "xyes" ; then
+ geoip_message="yes"
+else
+ geoip_message="no"
+fi
+
echo ""
echo "The Wireshark package has been configured with the following options."
echo " Build wireshark : $enable_wireshark"
echo ""
echo " Install dumpcap setuid : $setuid_message"
echo " Use plugins : $have_plugins"
-echo " Build lua plugin : $lua_message"
+echo " Use lua library : $lua_message"
+echo " Use python binding : $python_message"
echo " Build rtp_player : $portaudio_message"
echo " Use threads : $enable_threads"
echo " Build profile binaries : $enable_profile_build"
echo " Use IPv6 name resolution : $enable_ipv6"
echo " Use gnutls library : $tls_message"
echo " Use POSIX capabilities library : $libcap_message"
-echo " Use GeoIP library : $want_geoip"
+echo " Use GeoIP library : $geoip_message"