dnl AC_CANONICAL_BUILD
AC_CANONICAL_TARGET
-AM_INIT_AUTOMAKE(wireshark, 0.99.5)
+AM_INIT_AUTOMAKE(wireshark, 0.99.6)
AM_DISABLE_STATIC
AC_SUBST(HAVE_RPM)
#
-# If we're running gcc, add '-Wall -W' to CFLAGS, and add
-# '-D_U_="__attribute__((unused))"' as well, so we can use _U_ to
-# flag unused function arguments and not get warnings about them.
-# If "--with-extra-gcc-checks" was specified, add "-Wcast-qual
-# -Wcast-align" as well. (Add more checks here in the future?)
+# Try to add some additional gcc checks to CFLAGS
#
-# Otherwise, add '-D_U_=""', so that _U_ used to flag an unused function
-# argument will compile with non-GCC compilers.
-#
-AC_ARG_WITH(extra-gcc-checks,
-[ --with-extra-gcc-checks Do additional -W checks in GCC. [default=no]],
+AC_ARG_ENABLE(extra-gcc-checks,
+ AC_HELP_STRING( [--enable-extra-gcc-checks],
+ [Do additional -W checks in GCC. @<:@default=no@:>@]),
[
- if test $withval != no
+ wireshark_extra_gcc_flags=$enableval
+ if test $enableval != no
then
- wireshark_extra_gcc_flags=" -Wcast-qual -Wcast-align -Wbad-function-cast -pedantic -Wstrict-prototypes -Wmissing-declarations -Wwrite-strings"
+ 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)
fi
],)
-AC_MSG_CHECKING(to see if we can add '-Wall -W $wireshark_extra_gcc_flags' to CFLAGS)
-if test x$GCC != x ; then
- CFLAGS="-D_U_=\"__attribute__((unused))\" -Wall -Wpointer-arith -W $wireshark_extra_gcc_flags $CFLAGS"
- AC_MSG_RESULT(yes)
+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)
+AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wcast-align)
+
+#
+# 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"
- AC_MSG_RESULT(no)
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" = x
-then
+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.
#
AC_MSG_RESULT(none needed)
;;
esac
-else
- 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)
- ;;
- cygwin*)
- #
- # Shared libraries in cygwin/Win32 must never contain
- # undefined symbols.
- #
- LDFLAGS="$LDFLAGS -no-undefined"
- AC_MSG_RESULT(CygWin GCC - added -no-undefined to LDFLAGS)
- ;;
- *)
- 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
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,
-[ --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_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
# Enable/disable tshark
AC_ARG_ENABLE(wireshark,
-[ --enable-wireshark build GTK+-based wireshark. [default=yes]],enable_wireshark=$enableval,enable_wireshark=yes)
+ AC_HELP_STRING( [--enable-wireshark],
+ [build GTK+-based wireshark. @<:@default=yes, if GTK+ available@:>@]),
+ enable_wireshark=$enableval,enable_wireshark=ifgtkavailable)
AC_ARG_ENABLE(gtk2,
-[ --disable-gtk2 build Glib1/Gtk1+-based wireshark. [default=no]],enable_gtk2=$enableval,enable_gtk2=yes)
+ 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,
-[ --enable-threads use threads in wireshark. [default=no]],enable_threads=$enableval,enable_threads=no)
+ 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,
-[ --enable-profile-build build profile-ready binaries. [default=no]],enable_profile_build=$enableval,enable_profile_build=no)
+ 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 -n "$GCC" ; then
+ if test "x$GCC" = "xyes" ; then
AC_MSG_RESULT(yes)
CFLAGS=" -pg $CFLAGS"
else
# 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
+if test "x$enable_gtk2" = "xyes" -a \
+ "(" "x$enable_wireshark" = "xyes" -o "x$enable_wireshark" = "xifgtkavailable" ")"; 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
+elif test "x$enable_gtk2" != "xyes" \
+ -a "(" "x$enable_wireshark" = "xyes" -o "x$enable_wireshark" = "xifgtkavailable" ")"; then
GTK_OK=one
AM_PATH_GTK(1.2.0, CFLAGS="$CFLAGS $GTK_CFLAGS", GTK_OK=no )
else
# programs to be built with GLib.
#
if test "$GTK_OK" = "no" ; then
+ #
+ # We don't have GTK+.
+ # If they explicitly said "--enable-wireshark", fail (so that if
+ # they insist on building Wireshark, we don't drive on and build
+ # only TShark, we stop so they can 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
enable_wireshark="no"
wireshark_bin=""
wireshark_man=""
# Enable/disable tshark
AC_ARG_ENABLE(tshark,
-[ --enable-tshark build tshark. [default=yes]],tshark=$enableval,enable_tshark=yes)
+ 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)"
# Enable/disable editcap
AC_ARG_ENABLE(editcap,
-[ --enable-editcap build editcap. [default=yes]],enable_editcap=$enableval,enable_editcap=yes)
+ 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)"
# Enable/disable dumpcap
AC_ARG_ENABLE(dumpcap,
-[ --enable-dumpcap build dumpcap. [default=yes]],enable_dumpcap=$enableval,enable_dumpcap=yes)
+ AC_HELP_STRING( [--enable-dumpcap],
+ [build dumpcap. @<:@default=yes@:>@]),
+ enable_dumpcap=$enableval,enable_dumpcap=yes)
if test "x$enable_dumpcap" = "xyes" ; then
dumpcap_bin="dumpcap\$(EXEEXT)"
# Enable/disable capinfos
AC_ARG_ENABLE(capinfos,
-[ --enable-capinfos build capinfos. [default=yes]],enable_capinfos=$enableval,enable_capinfos=yes)
+ 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)"
# Enable/disable mergecap
AC_ARG_ENABLE(mergecap,
-[ --enable-mergecap build mergecap. [default=yes]],enable_mergecap=$enableval,enable_mergecap=yes)
+ 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)"
# Enable/disable text2pcap
AC_ARG_ENABLE(text2pcap,
-[ --enable-text2pcap build text2pcap. [default=yes]],text2pcap=$enableval,enable_text2pcap=yes)
+ 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)"
# Enable/disable idl2wrs
AC_ARG_ENABLE(idl2wrs,
-[ --enable-idl2wrs build idl2wrs. [default=yes]],enable_idl2wrs=$enableval,enable_idl2wrs=yes)
+ 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"
# Enable/disable dftest
AC_ARG_ENABLE(dftest,
-[ --enable-dftest build dftest. [default=yes]],enable_dftest=$enableval,enable_dftest=yes)
+ 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)"
# Enable/disable randpkt
AC_ARG_ENABLE(randpkt,
-[ --enable-randpkt build randpkt. [default=yes]],enable_randpkt=$enableval,enable_randpkt=yes)
+ 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)"
AC_MSG_CHECKING(whether to use libpcap for packet capture)
AC_ARG_WITH(pcap,
-[ --with-pcap[[=DIR]] use libpcap for packet capturing. [[default=yes]]],
+ AC_HELP_STRING( [--with-pcap@<:@=DIR@:>@],
+ [use libpcap for packet capturing. @<:@default=yes@:>@]),
[
if test $withval = no
then
AC_MSG_CHECKING(whether to use zlib for reading compressed capture files)
AC_ARG_WITH(zlib,
-[ --with-zlib[[=DIR]] use zlib (located in directory DIR, if supplied) to read compressed data. [[default=yes, if available]]],
+ 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
AC_MSG_CHECKING(whether to use libpcre for regular expressions in dfilters)
AC_ARG_WITH(pcre,
-[ --with-pcre[[=DIR]] use libpcre (located in directory DIR, if supplied) to use in dfilter regular expressions. [[default=yes, if available]]],
+ 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
AC_MSG_CHECKING(whether to use liblua for the lua scripting plugin)
AC_ARG_WITH(lua,
-[ --with-lua[[=DIR]] use liblua (located in directory DIR, if supplied) for the lua scripting plugin. [[default=no]]],
+ 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
AC_MSG_CHECKING(whether to use libportaudio for the rtp_player)
AC_ARG_WITH(portaudio,
-[ --with-portaudio[[=DIR]] use libportaudio (located in directory DIR, if supplied) for the rtp_player. [[default=yes, if available]]],
+ 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
dnl ipv6 check
AC_ARG_ENABLE(ipv6,
-[ --enable-ipv6 use ipv6 name resolution, if available. [default=yes]],enable_ipv6=$enableval,enable_ipv6=yes)
+ 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
dnl Check if wireshark should be installed setuid
AC_ARG_ENABLE(setuid-install,
-[ --enable-setuid-install install wireshark as setuid. DANGEROUS!!! [default=no]],enable_setuid_install=$enableval,enable_setuid_install=no)
+ AC_HELP_STRING( [--enable-setuid-install],
+ [install wireshark as setuid. DANGEROUS!!! @<:@default=no@:>@]),
+ enable_setuid_install=$enableval,enable_setuid_install=no)
AC_MSG_CHECKING(whether to install wireshark setuid)
if test "x$enable_setuid_install" = "xno" ; then
AC_MSG_CHECKING(whether to use SSL library)
AC_ARG_WITH(ssl,
-[ --with-ssl[[=DIR]] use SSL crypto library (located in directory DIR, if supplied). [[default=no]]],
+ 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
SNMP_LIBS=''
AC_ARG_WITH(net-snmp,
-[ --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]]],
+ 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
AC_MSG_CHECKING(whether to use kerberos)
AC_ARG_WITH(krb5,
-[ --with-krb5[[=DIR]] use kerberos (located in directory DIR, if supplied) to use in kerberos dissection [[default=yes]]],
+ 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
AC_MSG_CHECKING(whether to use the GNU ADNS library if available)
AC_ARG_WITH(adns,
-[ --with-adns[[=DIR]] use GNU ADNS (located in directory DIR, if supplied). [[default=yes, if present]]],
+ 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
dnl
plugindir="$libdir/wireshark/plugins/$VERSION"
AC_ARG_WITH(plugins,
-[ --with-plugins[[=DIR]] support plugins (installed in DIR, if supplied).],
+ AC_HELP_STRING( [--with-plugins@<:@=DIR@:>@],
+ [support plugins (installed in DIR, if supplied). @<:@default=yes, if possible@:>@]),
[
case "$withval" in
"" | y | ye | yes )
AC_OUTPUT(
Makefile
doxygen.cfg
- airpdcap/Makefile
asn1/Makefile
doc/Makefile
epan/Makefile
+ epan/crypt/Makefile
epan/doxygen.cfg
epan/dfilter/Makefile
epan/dissectors/Makefile
plugins/irda/Makefile
plugins/lwres/Makefile
plugins/mate/Makefile
- plugins/megaco/Makefile
plugins/mgcp/Makefile
plugins/opsi/Makefile
plugins/pcli/Makefile