HTTPS is now needed to download the pkg-config source.
[metze/wireshark/wip.git] / Makefile.am
index df97d1fbaac51e01febf7a18a74167f1f32ee729..c6a44a130c31c00fd75573a765b368e19224cdf4 100644 (file)
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
+include ./Makefile.am.inc
+
 AM_DISTCHECK_CONFIGURE_FLAGS=@GUI_CONFIGURE_FLAGS@
+# Make sure to keep ACLOCAL_AMFLAGS in Makefile.am and AC_CONFIG_MACRO_DIRS
+# in configure.ac in sync, otherwise there will be an error running autogen.sh.
 ACLOCAL_AMFLAGS = `./aclocal-flags`
 
-if HAVE_WARNINGS_AS_ERRORS
-AM_CLEAN_CFLAGS = -Werror
-endif
+# Common headers
+COMMONCPPFLAGS =
+
+AM_CPPFLAGS = $(INCLUDEDIRS) $(WS_CPPFLAGS) $(COMMONCPPFLAGS)
 
 bin_PROGRAMS = \
        @wireshark_bin@         \
@@ -42,9 +47,9 @@ bin_PROGRAMS = \
        @rawshark_bin@          \
        @echld_test_bin@
 
-EXTRA_PROGRAMS = wireshark-gtk wireshark tshark tfshark capinfos captype editcap \
-       mergecap dftest randpkt text2pcap dumpcap reordercap rawshark \
-       wireshark_cxx echld_test
+EXTRA_PROGRAMS = wireshark-gtk wireshark tshark tfshark capinfos captype \
+       editcap mergecap dftest randpkt text2pcap dumpcap reordercap \
+       rawshark echld_test
 
 #
 # Wireshark configuration files are put in $(pkgdatadir).
@@ -68,7 +73,6 @@ diameterdir = $(pkgdatadir)/diameter
 include diameter/Custom.make
 dist_diameter_DATA = $(_CUSTOM_diameter_xml_files_) \
        diameter/chargecontrol.xml \
-       diameter/ChinaTelecom.xml \
        diameter/Cisco.xml \
        diameter/Custom.xml \
        diameter/dictionary.dtd \
@@ -87,10 +91,9 @@ dist_diameter_DATA = $(_CUSTOM_diameter_xml_files_) \
        diameter/Vodafone.xml \
        diameter/AlcatelLucent.xml \
        diameter/Nokia.xml \
-       diameter/NokiaSiemensNetworks.xml \
-       diameter/SKT.xml \
+       diameter/NokiaSolutionsAndNetworks.xml \
        diameter/HP.xml \
-       diameter/VerizonWireless.xml
+       diameter/Oracle.xml
 
 #
 # Install the DTDs directory files in the "dtds" subdirectory
@@ -118,127 +121,130 @@ dist_dtds_DATA = \
 radiusdir = $(pkgdatadir)/radius
 include radius/Custom.make
 dist_radius_DATA = $(_CUSTOM_radius_dict_) \
-       radius/README.radius_dictionary  \
-       radius/custom.includes  \
-       radius/dictionary  \
-       radius/dictionary.3com  \
-       radius/dictionary.3gpp  \
-       radius/dictionary.3gpp2  \
-       radius/dictionary.acc  \
+       radius/README.radius_dictionary \
+       radius/custom.includes \
+       radius/dictionary \
+       radius/dictionary.3com \
+       radius/dictionary.3gpp \
+       radius/dictionary.3gpp2 \
+       radius/dictionary.acc \
        radius/dictionary.acme \
        radius/dictionary.airespace \
-       radius/dictionary.actelis  \
+       radius/dictionary.actelis \
        radius/dictionary.aerohive \
-       radius/dictionary.alcatel  \
+       radius/dictionary.alcatel \
        radius/dictionary.alcatel.esam \
        radius/dictionary.alcatel.sr \
        radius/dictionary.alcatel-lucent.aaa \
-       radius/dictionary.alteon  \
-       radius/dictionary.altiga  \
+       radius/dictionary.alteon \
+       radius/dictionary.altiga \
        radius/dictionary.alvarion \
-       radius/dictionary.alvarion.wimax.v2_2  \
+       radius/dictionary.alvarion.wimax.v2_2 \
        radius/dictionary.apc \
-       radius/dictionary.aptis  \
-       radius/dictionary.aruba  \
-       radius/dictionary.ascend  \
+       radius/dictionary.aptis \
+       radius/dictionary.arbor \
+       radius/dictionary.aruba \
+       radius/dictionary.ascend \
        radius/dictionary.asn \
        radius/dictionary.audiocodes \
        radius/dictionary.avaya \
        radius/dictionary.azaire \
-       radius/dictionary.bay  \
+       radius/dictionary.bay \
        radius/dictionary.bluecoat \
-       radius/dictionary.bintec  \
-       radius/dictionary.broadsoft  \
-       radius/dictionary.brocade  \
-       radius/dictionary.bskyb  \
-       radius/dictionary.bristol  \
-       radius/dictionary.bt  \
-       radius/dictionary.camiant  \
-       radius/dictionary.cablelabs  \
-       radius/dictionary.cabletron  \
+       radius/dictionary.bintec \
+       radius/dictionary.broadsoft \
+       radius/dictionary.brocade \
+       radius/dictionary.bskyb \
+       radius/dictionary.bristol \
+       radius/dictionary.bt \
+       radius/dictionary.camiant \
+       radius/dictionary.cablelabs \
+       radius/dictionary.cabletron \
        radius/dictionary.chillispot \
-       radius/dictionary.cisco  \
-       radius/dictionary.cisco.asa  \
-       radius/dictionary.cisco.bbsm  \
-       radius/dictionary.cisco.vpn3000  \
-       radius/dictionary.cisco.vpn5000  \
-       radius/dictionary.citrix  \
+       radius/dictionary.cisco \
+       radius/dictionary.cisco.asa \
+       radius/dictionary.cisco.bbsm \
+       radius/dictionary.cisco.vpn3000 \
+       radius/dictionary.cisco.vpn5000 \
+       radius/dictionary.citrix \
        radius/dictionary.clavister \
-       radius/dictionary.colubris  \
-       radius/dictionary.columbia_university  \
-       radius/dictionary.compatible  \
-       radius/dictionary.compat  \
-       radius/dictionary.cosine  \
-       radius/dictionary.dante  \
+       radius/dictionary.colubris \
+       radius/dictionary.columbia_university \
+       radius/dictionary.compatible \
+       radius/dictionary.compat \
+       radius/dictionary.cosine \
+       radius/dictionary.dante \
        radius/dictionary.dhcp \
-       radius/dictionary.dlink  \
+       radius/dictionary.dlink \
        radius/dictionary.digium \
-       radius/dictionary.dragonwave  \
-       radius/dictionary.efficientip  \
+       radius/dictionary.dragonwave \
+       radius/dictionary.efficientip \
        radius/dictionary.eltex \
        radius/dictionary.epygi \
-       radius/dictionary.equallogic  \
-       radius/dictionary.ericsson  \
-       radius/dictionary.ericsson.ab  \
-       radius/dictionary.ericsson.packet.core.networks  \
-       radius/dictionary.erx  \
-       radius/dictionary.extreme  \
-       radius/dictionary.f5  \
-       radius/dictionary.fdxtended  \
+       radius/dictionary.equallogic \
+       radius/dictionary.ericsson \
+       radius/dictionary.ericsson.ab \
+       radius/dictionary.ericsson.packet.core.networks \
+       radius/dictionary.erx \
+       radius/dictionary.extreme \
+       radius/dictionary.f5 \
+       radius/dictionary.fdxtended \
        radius/dictionary.fortinet \
-       radius/dictionary.foundry  \
-       radius/dictionary.freedhcp  \
-       radius/dictionary.freeradius  \
-       radius/dictionary.freeradius.internal  \
+       radius/dictionary.foundry \
+       radius/dictionary.freedhcp \
+       radius/dictionary.freeradius \
+       radius/dictionary.freeradius.internal \
        radius/dictionary.freeswitch \
-       radius/dictionary.gandalf  \
-       radius/dictionary.garderos  \
-       radius/dictionary.gemtek  \
+       radius/dictionary.gandalf \
+       radius/dictionary.garderos \
+       radius/dictionary.gemtek \
        radius/dictionary.h3c \
        radius/dictionary.hp \
        radius/dictionary.huawei \
-       radius/dictionary.iana  \
+       radius/dictionary.iana \
        radius/dictionary.iea \
-       radius/dictionary.infoblox  \
+       radius/dictionary.infoblox \
        radius/dictionary.infonet \
        radius/dictionary.ipunplugged \
        radius/dictionary.issanni \
-       radius/dictionary.itk  \
+       radius/dictionary.itk \
        radius/dictionary.jradius \
-       radius/dictionary.juniper  \
-       radius/dictionary.kineto  \
-       radius/dictionary.karlnet  \
+       radius/dictionary.juniper \
+       radius/dictionary.kineto \
+       radius/dictionary.karlnet \
        radius/dictionary.lancom \
-       radius/dictionary.livingston  \
-       radius/dictionary.localweb  \
+       radius/dictionary.livingston \
+       radius/dictionary.localweb \
        radius/dictionary.lucent \
        radius/dictionary.manzara \
-       radius/dictionary.merit  \
-       radius/dictionary.meru  \
-       radius/dictionary.microsoft  \
-       radius/dictionary.mikrotik  \
+       radius/dictionary.meinberg \
+       radius/dictionary.merit \
+       radius/dictionary.meru \
+       radius/dictionary.microsoft \
+       radius/dictionary.mikrotik \
        radius/dictionary.motorola \
        radius/dictionary.motorola.wimax \
-       radius/dictionary.navini  \
-       radius/dictionary.netscreen  \
+       radius/dictionary.navini \
+       radius/dictionary.netscreen \
        radius/dictionary.networkphysics \
        radius/dictionary.nexans \
-       radius/dictionary.nokia  \
+       radius/dictionary.nokia \
        radius/dictionary.nokia.conflict \
-       radius/dictionary.nomadix  \
+       radius/dictionary.nomadix \
        radius/dictionary.nortel \
        radius/dictionary.ntua \
        radius/dictionary.openser \
        radius/dictionary.packeteer \
-       radius/dictionary.paloalto  \
+       radius/dictionary.paloalto \
        radius/dictionary.patton \
-       radius/dictionary.propel  \
+       radius/dictionary.perle \
+       radius/dictionary.propel \
        radius/dictionary.prosoft \
-       radius/dictionary.proxim  \
-       radius/dictionary.purewave  \
+       radius/dictionary.proxim \
+       radius/dictionary.purewave \
        radius/dictionary.quiconnect \
-       radius/dictionary.quintum  \
-       radius/dictionary.redcreek  \
+       radius/dictionary.quintum \
+       radius/dictionary.redcreek \
        radius/dictionary.rfc2865 \
        radius/dictionary.rfc2866 \
        radius/dictionary.rfc2867 \
@@ -269,47 +275,50 @@ dist_radius_DATA = $(_CUSTOM_radius_dict_) \
        radius/dictionary.rfc7055 \
        radius/dictionary.rfc7155 \
        radius/dictionary.rfc7268 \
-       radius/dictionary.riverbed  \
+       radius/dictionary.rfc7499 \
+       radius/dictionary.riverbed \
        radius/dictionary.riverstone \
-       radius/dictionary.ruckus  \
        radius/dictionary.roaringpenguin \
-       radius/dictionary.sg  \
-       radius/dictionary.shasta  \
-       radius/dictionary.shiva  \
-       radius/dictionary.siemens  \
+       radius/dictionary.ruckus \
+       radius/dictionary.ruggedcom \
+       radius/dictionary.sg \
+       radius/dictionary.shasta \
+       radius/dictionary.shiva \
+       radius/dictionary.siemens \
        radius/dictionary.slipstream \
        radius/dictionary.sofaware \
-       radius/dictionary.sonicwall  \
-       radius/dictionary.springtide  \
-       radius/dictionary.starent  \
-       radius/dictionary.starent.vsa1  \
-       radius/dictionary.surfnet  \
-       radius/dictionary.symbol  \
-       radius/dictionary.t_systems_nova  \
-       radius/dictionary.telebit  \
+       radius/dictionary.sonicwall \
+       radius/dictionary.springtide \
+       radius/dictionary.starent \
+       radius/dictionary.starent.vsa1 \
+       radius/dictionary.surfnet \
+       radius/dictionary.symbol \
+       radius/dictionary.t_systems_nova \
+       radius/dictionary.telebit \
        radius/dictionary.telkom \
-       radius/dictionary.terena  \
-       radius/dictionary.trapeze  \
+       radius/dictionary.terena \
+       radius/dictionary.trapeze \
+       radius/dictionary.travelping \
        radius/dictionary.tropos \
-       radius/dictionary.ukerna  \
-       radius/dictionary.unix  \
-       radius/dictionary.usr  \
+       radius/dictionary.ukerna \
+       radius/dictionary.unix \
+       radius/dictionary.usr \
        radius/dictionary.utstarcom \
-       radius/dictionary.valemount  \
-       radius/dictionary.versanet  \
+       radius/dictionary.valemount \
+       radius/dictionary.versanet \
        radius/dictionary.vqp \
        radius/dictionary.walabi \
        radius/dictionary.waverider \
        radius/dictionary.wichorus \
-       radius/dictionary.wimax  \
-       radius/dictionary.wimax.alvarion  \
+       radius/dictionary.wimax \
+       radius/dictionary.wimax.alvarion \
        radius/dictionary.wimax.wichorus \
-       radius/dictionary.wispr  \
+       radius/dictionary.wispr \
        radius/dictionary.xedia \
-       radius/dictionary.xylan  \
-       radius/dictionary.yubico  \
-       radius/dictionary.zeus  \
-       radius/dictionary.zte  \
+       radius/dictionary.xylan \
+       radius/dictionary.yubico \
+       radius/dictionary.zeus \
+       radius/dictionary.zte \
        radius/dictionary.zyxel
 
 #
@@ -354,19 +363,9 @@ endif              # HAVE_PLUGINS
 include Makefile.common
 
 if ENABLE_STATIC
-if HAVE_GTK
-wireshark_gtk_LDFLAGS = -Wl,-static -all-static
-endif
-if HAVE_Qt
-wireshark_LDFLAGS = -Wl,-static -all-static
-endif
+EXTRALINKFLAGS = -Wl,-static -all-static
 else
-if HAVE_GTK
-wireshark_gtk_LDFLAGS = -export-dynamic
-endif
-if HAVE_Qt
-wireshark_LDFLAGS = -export-dynamic
-endif
+EXTRALINKFLAGS = -export-dynamic
 endif
 
 # Libraries and plugin flags with which to link wireshark.
@@ -377,26 +376,15 @@ endif
 # needed for X applications, and GTK+ applications are X applications
 # if the version of GTK+ they're built with runs atop X11).
 #
-# However, it *does* have to be linked with @GLIB_LIBS@; not all of
-# the necessary GLib libraries are included in @GTK_LIBS@.  To quote
-# Gentoo bug 423743 at
-#
-#      https://bugs.gentoo.org/show_bug.cgi?id=423743
-#
-# "The Makefile.am claims including GLIB_LIBS when linking wireshark is
-# unnecessary, because wireshark links to GTK_LIBS which is a superset.
-# It is not actually a superset: gmodule is included in GLIB_LIBS but
-# not in GTK_LIBS (unless accidentally on older glibs/gtks)."
-#
-# although it's also possible that -lgmodule is in GTK_LIBS but not
-# GLIB_LIBS (that's the case on my machine right now, for example).
+# GTK_CFLAGS/GTK_LIBS is a strict superset of GLIB_CFLAGS/GLIB_LIBS
+# (see configure.ac for pkg-config modules used).
 #
 wireshark_common_ldadd = \
        capchild/libcapchild.a          \
        caputils/libcaputils.a          \
        ui/libui.a                      \
        ui/libui_dirty.a                \
-       codecs/libcodec.a               \
+       codecs/libwscodecs.la           \
        wiretap/libwiretap.la           \
        epan/libwireshark.la            \
        wsutil/libwsutil.la             \
@@ -412,57 +400,40 @@ wireshark_common_ldadd = \
        @LIBGCRYPT_LIBS@                \
        @LIBGNUTLS_LIBS@                \
        @LIBSMI_LDFLAGS@                \
-       @GLIB_LIBS@                     \
-       -lm
+       @LIBNL_LIBS@
 
 if HAVE_Qt
-wireshark_SOURCES = $(WIRESHARK_COMMON_SRC)
-wireshark_INCLUDES = $(WIRESHARK_COMMON_INCLUDES)
-wireshark_CFLAGS = $(AM_CLEAN_CFLAGS)
-wireshark_LDADD = \
-       ui/qt/libqtui.a \
-       $(wireshark_common_ldadd) \
-       @Qt_LIBS@
+wireshark_SOURCES = $(WIRESHARK_COMMON_SRC) wireshark-qt.cpp
 
-#
-# XXX - this makes wireshark_LDFLAGS not work; we should figure out
-# another way to get wireshark linked as a C++ program, perhaps by
-# having a top-level wireshark-qt.cpp file that contains main() and
-# that calls the UI code from ui/qt.
-#
-wireshark_LINK = $(CXXLINK)
+wireshark_CPPFLAGS = $(AM_CPPFLAGS) $(GLIB_CFLAGS) $(Qt_CFLAGS)
+
+wireshark_LDFLAGS = $(AM_LDFLAGS) $(EXTRALINKFLAGS) $(Qt_LDFLAGS)
+
+wireshark_LDADD = \
+       ui/qt/libqtui.a                 \
+       $(wireshark_common_ldadd)       \
+       $(GLIB_LIBS)                    \
+       $(Qt_LIBS)
 endif
 
 if HAVE_GTK
 wireshark_gtk_SOURCES = $(WIRESHARK_COMMON_SRC)
-wireshark_gtk_INCLUDES = $(WIRESHARK_COMMON_INCLUDES)
-wireshark_gtk_CFLAGS = $(AM_CLEAN_CFLAGS)
-wireshark_gtk_LDADD = \
-       ui/gtk/libgtkui.a \
-       $(wireshark_common_ldadd) \
-       @PORTAUDIO_LIBS@                \
-       @GTK_LIBS@
-endif
 
-# Ideally we could trigger automatic c++ linking here with
-#   nodist_EXTRA_wireshark_SOURCES = dummy.cpp
-# Unfortunately that check is done by automake and not configure.
-# We do the following to try to avoid using c++ to link Wireshark at
-# all times.
-nodist_EXTRA_wireshark_cxx_SOURCES = dummy.cpp
-wireshark_cxx_SOURCES =
+wireshark_gtk_CPPFLAGS = $(AM_CPPFLAGS) $(GTK_CFLAGS)
 
-dummy.cpp:
-       echo 'static void dummy();' > $@
-# Generate the dummy.cpp for above so that "make tags" will still work.
-# ("make clean" will remove it.)
+wireshark_gtk_LDFLAGS = $(AM_LDFLAGS) $(EXTRALINKFLAGS)
 
-if ENABLE_STATIC
-tshark_LDFLAGS = -Wl,-static -all-static
-else
-tshark_LDFLAGS = -export-dynamic
+wireshark_gtk_LDADD = \
+       ui/gtk/libgtkui.a               \
+       $(wireshark_common_ldadd)       \
+       $(GTK_LIBS)                     \
+       @PORTAUDIO_LIBS@
 endif
 
+tshark_CPPFLAGS = $(AM_CPPFLAGS) $(GLIB_CFLAGS)
+
+tshark_LDFLAGS = $(AM_LDFLAGS) $(EXTRALINKFLAGS)
+
 # Libraries and plugin flags with which to link tshark.
 tshark_LDADD = \
        capchild/libcapchild.a          \
@@ -485,15 +456,11 @@ tshark_LDADD = \
        @COREFOUNDATION_FRAMEWORKS@     \
        @LIBGCRYPT_LIBS@                \
        @LIBGNUTLS_LIBS@                \
-       @LIBSMI_LDFLAGS@                \
-       -lm
-tshark_CFLAGS = $(AM_CLEAN_CFLAGS)
+       @LIBSMI_LDFLAGS@
 
-if ENABLE_STATIC
-tfshark_LDFLAGS = -Wl,-static -all-static
-else
-tfshark_LDFLAGS = -export-dynamic
-endif
+tfshark_CPPFLAGS = $(AM_CPPFLAGS) $(GLIB_CFLAGS)
+
+tfshark_LDFLAGS = $(AM_LDFLAGS) $(EXTRALINKFLAGS)
 
 # Libraries and plugin flags with which to link tfshark.
 tfshark_LDADD = \
@@ -512,15 +479,11 @@ tfshark_LDADD = \
        @SYSTEMCONFIGURATION_FRAMEWORKS@        \
        @COREFOUNDATION_FRAMEWORKS@     \
        @LIBGNUTLS_LIBS@                \
-       @LIBSMI_LDFLAGS@                \
-       -lm
-tfshark_CFLAGS = $(AM_CLEAN_CFLAGS)
+       @LIBSMI_LDFLAGS@
 
-if ENABLE_STATIC
-rawshark_LDFLAGS = -Wl,-static -all-static
-else
-rawshark_LDFLAGS = -export-dynamic
-endif
+rawshark_CPPFLAGS = $(AM_CPPFLAGS) $(GLIB_CFLAGS)
+
+rawshark_LDFLAGS = $(AM_LDFLAGS) $(EXTRALINKFLAGS)
 
 # Libraries and plugin flags with which to link rawshark.
 rawshark_LDADD = \
@@ -542,27 +505,30 @@ rawshark_LDADD = \
        @COREFOUNDATION_FRAMEWORKS@     \
        @LIBGCRYPT_LIBS@                \
        @LIBGNUTLS_LIBS@                \
-       @LIBSMI_LDFLAGS@                \
-       -lm
-rawshark_CFLAGS = $(AM_CLEAN_CFLAGS)
+       @LIBSMI_LDFLAGS@
+
+text2pcap_CPPFLAGS = $(AM_CPPFLAGS) $(GLIB_CFLAGS)
 
-# Libraries with which to link text2pcap.
-text2pcap_LDADD = \
-       wsutil/libwsutil.la             \
-       @GLIB_LIBS@                     \
-       -lm
 # Don't turn on -Werror for text2pcap: its source includes text2pcap-scanner.c
 # which is generated (and therefore not always clean).
 # We could generate text2pcap.o as a library with -Werror but for now it
 # doesn't seem worth the effort.
-#text2pcap_CFLAGS = $(AM_CLEAN_CFLAGS)
+text2pcap_CFLAGS = $(GENERATED_CFLAGS)
+
+# Libraries with which to link text2pcap.
+text2pcap_LDADD = \
+       wsutil/libwsutil.la             \
+       @GLIB_LIBS@
+
+mergecap_CPPFLAGS = $(AM_CPPFLAGS) $(GLIB_CFLAGS)
 
 # Libraries with which to link mergecap.
 mergecap_LDADD = \
        wiretap/libwiretap.la           \
        wsutil/libwsutil.la             \
        @GLIB_LIBS@
-mergecap_CFLAGS = $(AM_CLEAN_CFLAGS)
+
+capinfos_CPPFLAGS = $(AM_CPPFLAGS) $(GLIB_CFLAGS)
 
 # Libraries with which to link capinfos.
 capinfos_LDADD = \
@@ -570,31 +536,36 @@ capinfos_LDADD = \
        wsutil/libwsutil.la             \
        @GLIB_LIBS@                     \
        @LIBGCRYPT_LIBS@
-capinfos_CFLAGS = $(AM_CLEAN_CFLAGS)
+
+captype_CPPFLAGS = $(AM_CPPFLAGS) $(GLIB_CFLAGS)
 
 # Libraries with which to link captype.
 captype_LDADD = \
        wiretap/libwiretap.la           \
        wsutil/libwsutil.la             \
        @GLIB_LIBS@
-captype_CFLAGS = $(AM_CLEAN_CFLAGS)
+
+editcap_CPPFLAGS = $(AM_CPPFLAGS) $(GLIB_CFLAGS)
 
 # Libraries with which to link editcap.
 editcap_LDADD = \
        wiretap/libwiretap.la           \
        wsutil/libwsutil.la             \
        @GLIB_LIBS@
-editcap_CFLAGS = $(AM_CLEAN_CFLAGS)
+
+reordercap_CPPFLAGS = $(AM_CPPFLAGS) $(GLIB_CFLAGS)
 
 # Libraries with which to link reordercap.
 reordercap_LDADD = \
        wiretap/libwiretap.la           \
        wsutil/libwsutil.la             \
        @GLIB_LIBS@
-reordercap_CFLAGS = $(AM_CLEAN_CFLAGS)
+
+randpkt_CPPFLAGS = $(AM_CPPFLAGS) $(GLIB_CFLAGS)
 
 # Libraries with which to link randpkt.
 randpkt_LDADD = \
+       randpkt_core/librandpkt_core.a  \
        wiretap/libwiretap.la           \
        wsutil/libwsutil.la             \
        @GLIB_LIBS@                     \
@@ -602,9 +573,9 @@ randpkt_LDADD = \
        @SOCKET_LIBS@                   \
        @NSL_LIBS@                      \
        @C_ARES_LIBS@                   \
-       @ADNS_LIBS@                     \
-       -lm
-randpkt_CFLAGS = $(AM_CLEAN_CFLAGS)
+       @ADNS_LIBS@
+
+dftest_CPPFLAGS = $(AM_CPPFLAGS) $(GLIB_CFLAGS)
 
 # Libraries and plugin flags with which to link dftest.
 dftest_LDADD = \
@@ -623,9 +594,9 @@ dftest_LDADD = \
        @KRB5_LIBS@                     \
        @LIBGCRYPT_LIBS@                \
        @LIBGNUTLS_LIBS@                \
-       @LIBSMI_LDFLAGS@                \
-       -lm
-dftest_CFLAGS = $(AM_CLEAN_CFLAGS)
+       @LIBSMI_LDFLAGS@
+
+echld_CPPFLAGS = $(AM_CPPFLAGS) $(GLIB_CFLAGS)
 
 echld_test_LDADD = \
        epan/libwireshark.la            \
@@ -636,15 +607,17 @@ echld_test_LDADD = \
        @SOCKET_LIBS@                   \
        @NSL_LIBS@                      \
        @C_ARES_LIBS@                   \
-       @ADNS_LIBS@                     \
-       -lm
+       @ADNS_LIBS@
 
 echld_test_DEPENDENCIES = \
        echld/libechld.la \
        epan/libwireshark.la
 
-echld_test_CFLAGS = $(AM_CLEAN_CFLAGS)
+dumpcap_CPPFLAGS = $(AM_CPPFLAGS) $(GLIB_CFLAGS)
 
+dumpcap_CFLAGS = $(AM_CFLAGS) $(PIE_CFLAGS)
+
+dumpcap_LDFLAGS = $(AM_LDFLAGS) $(PIE_LDFLAGS)
 
 # Libraries with which to link dumpcap.
 dumpcap_LDADD = \
@@ -656,14 +629,8 @@ dumpcap_LDADD = \
        @NSL_LIBS@                      \
        @SYSTEMCONFIGURATION_FRAMEWORKS@        \
        @COREFOUNDATION_FRAMEWORKS@     \
-       @LIBCAP_LIBS@
-dumpcap_CFLAGS = $(AM_CLEAN_CFLAGS) $(PIE_CFLAGS)
-dumpcap_LDFLAGS = $(PIE_LDFLAGS)
-
-# Common headers
-AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/wiretap \
-       $(LIBGNUTLS_CFLAGS) $(LIBGCRYPT_CFLAGS) $(LIBSMI_CFLAGS) \
-       @LUA_INCLUDES@ -DTOP_SRCDIR=\"$(abs_top_srcdir)\"
+       @LIBCAP_LIBS@                   \
+       @LIBNL_LIBS@
 
 #
 # Build the version string
@@ -671,11 +638,6 @@ AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/wiretap \
 # FORCE is the portable version of .PHONY
 FORCE:
 
-AM_V_PERL = $(am__v_PERL_@AM_V@)
-am__v_PERL_ = $(am__v_PERL_@AM_DEFAULT_V@)
-am__v_PERL_0 = @echo "  PERL    " $@;
-am__v_PERL_1 =
-
 version.h: FORCE
        $(AM_V_PERL)$(PERL) $(srcdir)/make-version.pl $(srcdir)
 
@@ -696,7 +658,6 @@ services:
 CLEANFILES =           \
        *~              \
        doxygen-core.tag        \
-       dummy.cpp       \
        vgcore.*
 
 #
@@ -727,6 +688,7 @@ MAINTAINERCLEANFILES =              \
        ylwrap
 
 EXTRA_DIST = \
+       .mailmap                \
        INSTALL.configure       \
        Makefile.am.inc         \
        Makefile.common         \
@@ -742,15 +704,14 @@ EXTRA_DIST = \
        README.vmware           \
        README.windows          \
        abi-descriptor.template \
-       aclocal-fallback/libsmi.m4 \
-       aclocal-fallback/libgcrypt.m4 \
-       aclocal-fallback/glib-2.0.m4 \
-       aclocal-fallback/gtk-2.0.m4 \
-       aclocal-fallback/gtk-3.0.m4 \
+       aclocal-fallback/ax_append_flag.m4              \
        aclocal-fallback/ax_check_compile_flag.m4       \
-       aclocal-fallback/ax_gcc_x86_cpuid.m4    \
-       aclocal-fallback/ax_ext.m4      \
+       aclocal-fallback/ax_compiler_vendor.m4          \
+       aclocal-fallback/ax_ext.m4                      \
+       aclocal-fallback/ax_gcc_x86_cpuid.m4            \
        aclocal-fallback/ax_gcc_x86_avx_xgetbv.m4       \
+       aclocal-fallback/libsmi.m4                      \
+       aclocal-fallback/libgcrypt.m4                   \
        aclocal-flags           \
        adns_dll.dep            \
        adns_dll.rc             \
@@ -761,28 +722,29 @@ EXTRA_DIST = \
        colorfilters            \
        config.h.win32          \
        config.nmake            \
-       debian/README.Debian    \
-       debian/README.Debian.security   \
        debian/changelog        \
        debian/compat           \
        debian/control          \
        debian/copyright        \
        debian/dirs             \
        debian/ethereal-common.NEWS     \
+       debian/geoip_db_paths   \
        debian/headers-check.c  \
-       debian/libwireshark-data.install        \
-       debian/libwireshark-dev.install \
        debian/libwireshark0.install    \
        debian/libwireshark0.symbols    \
-       debian/libwiretap-dev.install   \
+       debian/libwireshark-data.install        \
+       debian/libwireshark-dev.install \
        debian/libwiretap0.docs \
        debian/libwiretap0.install      \
        debian/libwiretap0.symbols      \
-       debian/libwsutil-dev.install    \
+       debian/libwiretap-dev.install   \
+       debian/libwscodecs0.install     \
+       debian/libwscodecs0.symbols     \
        debian/libwsutil0.install       \
        debian/libwsutil0.symbols       \
+       debian/libwsutil-dev.install    \
        debian/license-text-about-dialog        \
-       debian/patches/01_Disable-building-documentation-in-PDF-and-release-no.patch    \
+       debian/patches/02_use_packaged_openlayers_js.patch      \
        debian/patches/04_asn2wrs_ply.patch     \
        debian/patches/05_note-README-when-running-as-root.patch        \
        debian/patches/06_release-version.patch \
@@ -812,6 +774,8 @@ EXTRA_DIST = \
        debian/po/templates.pot \
        debian/po/vi.po \
        debian/postinst         \
+       debian/README.Debian    \
+       debian/README.Debian.security   \
        debian/rules            \
        debian/source/format    \
        debian/templates        \
@@ -830,10 +794,9 @@ EXTRA_DIST = \
        debian/wireshark-doc.docs       \
        debian/wireshark-gtk.docs       \
        debian/wireshark-gtk.install    \
-       debian/wireshark.manpages \
-       debian/wireshark.menu   \
        debian/wireshark-qt.docs        \
        debian/wireshark-qt.install     \
+       debian/wireshark-qt.manpages \
        dfilters                \
        doxygen_global.cfg      \
        doxygen.cfg.in          \
@@ -893,33 +856,12 @@ EXTRA_DIST = \
        image/capture_comment_add.png   \
        image/capture_comment_disabled.png      \
        image/capture_comment_update.png        \
+       image/capture_comment_update.svg        \
        image/clist_ascend.xpm                  \
        image/clist_descend.xpm                 \
        image/copy-8.png                        \
-       image/dfilter_apply_disabled.png        \
-       image/dfilter_apply_hover.png           \
-       image/dfilter_apply_normal.png          \
-       image/dfilter_apply_pressed.png         \
-       image/dfilter_bookmark_disabled.png     \
-       image/dfilter_bookmark_hover.png        \
-       image/dfilter_bookmark_normal.png       \
-       image/dfilter_bookmark_pressed.png      \
-       image/dfilter_dropdown.png              \
-       image/dfilter_erase_active.png          \
-       image/dfilter_erase_normal.png          \
-       image/dfilter_erase_selected.png        \
-       image/dfilter_refresh_active.png        \
-       image/dfilter_refresh_normal.png        \
-       image/display_filter.qrc                \
        image/dumpcap.rc.in     \
        image/editcap.rc.in     \
-       image/expert_chat.png   \
-       image/expert_error.png  \
-       image/expert_indicators.svg     \
-       image/expert_none.png   \
-       image/expert_note.png   \
-       image/expert_ok.png     \
-       image/expert_warn.png   \
        image/file_dlg_win32.rc \
        image/hi16-app-wireshark.png    \
        image/hi32-app-wireshark.png    \
@@ -932,11 +874,18 @@ EXTRA_DIST = \
        image/languages/pl.svg          \
        image/languages/zh_CN.svg       \
        image/layout_1.png              \
+       image/layout_1@2x.png           \
        image/layout_2.png              \
+       image/layout_2@2x.png           \
        image/layout_3.png              \
+       image/layout_3@2x.png           \
        image/layout_4.png              \
+       image/layout_4@2x.png           \
        image/layout_5.png              \
+       image/layout_5@2x.png           \
        image/layout_6.png              \
+       image/layout_6@2x.png           \
+       image/libwscodecs.rc.in         \
        image/libwireshark.rc.in        \
        image/libwsutil.rc.in           \
        image/lo16-app-wireshark.png    \
@@ -953,7 +902,6 @@ EXTRA_DIST = \
        image/README.image                      \
        image/reordercap.rc.in                  \
        image/rubberband-16.png                 \
-       image/status.qrc                        \
        image/stock_dialog_error_48.xpm         \
        image/stock_dialog_info_48.xpm          \
        image/stock_dialog_question_48.xpm      \
@@ -961,6 +909,60 @@ EXTRA_DIST = \
        image/stock_dialog_warning_48.xpm       \
        image/text2pcap.rc.in                   \
        image/tfshark.rc.in                     \
+       image/expert_ok.png                     \
+       image/toolbar/14x14/x-capture-comment-update.png        \
+       image/toolbar/14x14/x-capture-comment-update.svg        \
+       image/toolbar/14x14/x-capture-comment-update@2x.png     \
+       image/toolbar/14x14/x-capture-filter-bookmark.active.png \
+       image/toolbar/14x14/x-capture-filter-bookmark.active.svg \
+       image/toolbar/14x14/x-capture-filter-bookmark.active@2x.png \
+       image/toolbar/14x14/x-capture-filter-bookmark.png \
+       image/toolbar/14x14/x-capture-filter-bookmark.selected.png \
+       image/toolbar/14x14/x-capture-filter-bookmark.selected.svg \
+       image/toolbar/14x14/x-capture-filter-bookmark.selected@2x.png \
+       image/toolbar/14x14/x-capture-filter-bookmark.svg \
+       image/toolbar/14x14/x-capture-filter-bookmark@2x.png \
+       image/toolbar/14x14/x-display-filter-bookmark.active.png \
+       image/toolbar/14x14/x-display-filter-bookmark.active.svg \
+       image/toolbar/14x14/x-display-filter-bookmark.active@2x.png \
+       image/toolbar/14x14/x-display-filter-bookmark.png \
+       image/toolbar/14x14/x-display-filter-bookmark.selected.png \
+       image/toolbar/14x14/x-display-filter-bookmark.selected.svg \
+       image/toolbar/14x14/x-display-filter-bookmark.selected@2x.png \
+       image/toolbar/14x14/x-display-filter-bookmark.svg \
+       image/toolbar/14x14/x-display-filter-bookmark@2x.png \
+       image/toolbar/14x14/x-expert-chat.png   \
+       image/toolbar/14x14/x-expert-chat@2x.png        \
+       image/toolbar/14x14/x-expert-error.png  \
+       image/toolbar/14x14/x-expert-error@2x.png       \
+       image/toolbar/14x14/x-expert-indicators-all.svg \
+       image/toolbar/14x14/x-expert-none.png   \
+       image/toolbar/14x14/x-expert-none@2x.png        \
+       image/toolbar/14x14/x-expert-note.png   \
+       image/toolbar/14x14/x-expert-note@2x.png        \
+       image/toolbar/14x14/x-expert-warn.png   \
+       image/toolbar/14x14/x-expert-warn@2x.png        \
+       image/toolbar/14x14/x-filter-clear.active.png \
+       image/toolbar/14x14/x-filter-clear.active.svg \
+       image/toolbar/14x14/x-filter-clear.active@2x.png \
+       image/toolbar/14x14/x-filter-clear.png \
+       image/toolbar/14x14/x-filter-clear.selected.png \
+       image/toolbar/14x14/x-filter-clear.selected.svg \
+       image/toolbar/14x14/x-filter-clear.selected@2x.png \
+       image/toolbar/14x14/x-filter-clear.svg \
+       image/toolbar/14x14/x-filter-clear@2x.png \
+       image/toolbar/14x14/x-filter-dropdown.png \
+       image/toolbar/14x14/x-filter-dropdown.svg \
+       image/toolbar/14x14/x-filter-dropdown@2x.png \
+       image/toolbar/14x14/x-filter-matching-bookmark.active.png \
+       image/toolbar/14x14/x-filter-matching-bookmark.active.svg \
+       image/toolbar/14x14/x-filter-matching-bookmark.active@2x.png \
+       image/toolbar/14x14/x-filter-matching-bookmark.png \
+       image/toolbar/14x14/x-filter-matching-bookmark.selected.png \
+       image/toolbar/14x14/x-filter-matching-bookmark.selected.svg \
+       image/toolbar/14x14/x-filter-matching-bookmark.selected@2x.png \
+       image/toolbar/14x14/x-filter-matching-bookmark.svg \
+       image/toolbar/14x14/x-filter-matching-bookmark@2x.png \
        image/toolbar/16x16/edit-find.png               \
        image/toolbar/16x16/edit-find.svg               \
        image/toolbar/16x16/edit-find@2x.png            \
@@ -986,6 +988,7 @@ EXTRA_DIST = \
        image/toolbar/16x16/x-capture-file-reload.png   \
        image/toolbar/16x16/x-capture-file-reload.svg   \
        image/toolbar/16x16/x-capture-file-reload@2x.png        \
+       image/toolbar/16x16/x-capture-file-reload@2x.svg        \
        image/toolbar/16x16/x-capture-file-save.png     \
        image/toolbar/16x16/x-capture-file-save.svg     \
        image/toolbar/16x16/x-capture-file-save@2x.png  \
@@ -1029,6 +1032,15 @@ EXTRA_DIST = \
        image/toolbar/16x16/zoom-out.png                \
        image/toolbar/16x16/zoom-out.svg                \
        image/toolbar/16x16/zoom-out@2x.png             \
+       image/toolbar/24x14/x-filter-apply.active.png \
+       image/toolbar/24x14/x-filter-apply.active.svg \
+       image/toolbar/24x14/x-filter-apply.active@2x.png \
+       image/toolbar/24x14/x-filter-apply.png \
+       image/toolbar/24x14/x-filter-apply.selected.png \
+       image/toolbar/24x14/x-filter-apply.selected.svg \
+       image/toolbar/24x14/x-filter-apply.selected@2x.png \
+       image/toolbar/24x14/x-filter-apply.svg \
+       image/toolbar/24x14/x-filter-apply@2x.png \
        image/toolbar/24x24/edit-find.png       \
        image/toolbar/24x24/edit-find.svg       \
        image/toolbar/24x24/edit-find@2x.png    \
@@ -1054,6 +1066,7 @@ EXTRA_DIST = \
        image/toolbar/24x24/x-capture-file-reload.png           \
        image/toolbar/24x24/x-capture-file-reload.svg           \
        image/toolbar/24x24/x-capture-file-reload@2x.png        \
+       image/toolbar/24x24/x-capture-file-reload@2x.svg        \
        image/toolbar/24x24/x-capture-file-save.png             \
        image/toolbar/24x24/x-capture-file-save.svg             \
        image/toolbar/24x24/x-capture-file-save@2x.png          \
@@ -1109,7 +1122,13 @@ EXTRA_DIST = \
        image/toolbar/capture_ethernet_16.xpm   \
        image/toolbar/capture_filter_24.xpm     \
        image/toolbar/capture_interfaces_16.png \
+       image/toolbar/capture_interfaces_16.svg \
        image/toolbar/capture_interfaces_24.png \
+       image/toolbar/capture_interfaces_24.svg \
+       image/toolbar/capture_pause_16.png      \
+       image/toolbar/capture_pause_16.svg      \
+       image/toolbar/capture_pause_24.png      \
+       image/toolbar/capture_pause_24.svg      \
        image/toolbar/capture_prepare_16.xpm    \
        image/toolbar/checkbox_16.xpm           \
        image/toolbar/colorize_24.xpm           \
@@ -1151,12 +1170,15 @@ EXTRA_DIST = \
        image/toolbar/remote_sat_16.png \
        image/toolbar/resize_columns_24.xpm     \
        image/toolbar/svg-to-png.sh     \
+       image/toolbar/svg/x-filter-apply.svg    \
+       image/toolbar/svg/x-filter-bookmark.svg \
+       image/toolbar/svg/x-filter-clear.svg    \
        image/toolbar/telephone_16.xpm  \
        image/toolbar/telephony_16.xpm  \
        image/toolbar/time_24.xpm       \
        image/toolbar/voip_flow_24.xpm  \
        image/toolbar/web_support_24.xpm        \
-       image/toolbar/wep_closed_24.xpm \
+       image/toolbar/wep_closed_24.xpm \
        image/tshark.rc.in      \
        image/voip_select.xpm   \
        image/wireshark.exe.manifest.in \
@@ -1204,7 +1226,7 @@ EXTRA_DIST = \
        image/wssplash.png      \
        ipmap.html              \
        macosx-setup.sh         \
-        macosx-support-lib-patches/glib-gconvert.c.patch \
+       macosx-support-lib-patches/glib-gconvert.c.patch \
        macosx-support-lib-patches/glib-pkgconfig.patch \
        macosx-support-lib-patches/gnutls-pkgconfig.patch \
        macosx-support-lib-patches/portaudio-pa_mac_core.h.patch \
@@ -1222,34 +1244,34 @@ EXTRA_DIST = \
        text2pcap.h             \
        services                \
        wireshark.desktop       \
+       wireshark-gtk.desktop   \
        wireshark-mime-package.xml \
+       wireshark.appdata.xml   \
        wireshark.pc.in         \
        wka.tmpl                \
        CMakeLists.txt          \
+       CMakeListsCustom.txt.example            \
        cmakeconfig.h.in        \
        wsutil/CMakeLists.txt   \
        CMakeOptions.txt        \
        wiretap/CMakeLists.txt  \
        README.cmake            \
        ConfigureChecks.cmake   \
-       cmake/TestFileOffsetBits.c      \
-       cmake/TestLargeFiles.c.cmakein  \
-       cmake/TestWindowsFSeek.c        \
-       cmake/modules/CMakeInstallDirs.cmake    \
-       cmake/modules/COPYING-CMAKE-SCRIPTS     \
        cmake/modules/CheckCCompilerFlag.cmake  \
        cmake/modules/CheckCLinkerFlag.cmake    \
+       cmake/modules/CMakeInstallDirs.cmake    \
+       cmake/modules/COPYING-CMAKE-SCRIPTS     \
        cmake/modules/FindADNS.cmake            \
        cmake/modules/FindAIRPCAP.cmake         \
        cmake/modules/FindASCIIDOC.cmake        \
        cmake/modules/FindCAP.cmake             \
        cmake/modules/FindCARES.cmake           \
-       cmake/modules/FindFOP.cmake             \
-       cmake/modules/FindGCRYPT.cmake          \
-       cmake/modules/FindGEOIP.cmake           \
        cmake/modules/FindChocolatey.cmake      \
        cmake/modules/FindDOXYGEN.cmake         \
+       cmake/modules/FindFOP.cmake             \
        cmake/modules/FindFreetype.cmake        \
+       cmake/modules/FindGCRYPT.cmake          \
+       cmake/modules/FindGEOIP.cmake           \
        cmake/modules/FindGLIB2.cmake           \
        cmake/modules/FindGMODULE2.cmake        \
        cmake/modules/FindGNUTLS.cmake          \
@@ -1258,36 +1280,54 @@ EXTRA_DIST = \
        cmake/modules/FindGTK3.cmake            \
        cmake/modules/FindHtmlViewer.cmake      \
        cmake/modules/FindKERBEROS.cmake        \
-       cmake/modules/FindNL.cmake              \
        cmake/modules/FindLEX.cmake             \
        cmake/modules/FindLUA.cmake             \
        cmake/modules/FindLYNX.cmake            \
        cmake/modules/FindM.cmake               \
+       cmake/modules/FindMSVC_REDIST.cmake     \
+       cmake/modules/FindNL.cmake              \
+       cmake/modules/FindNSIS.cmake            \
        cmake/modules/FindOS_X_FRAMEWORKS.cmake \
        cmake/modules/FindPCAP.cmake            \
        cmake/modules/FindPOD.cmake             \
+       cmake/modules/FindPortableApps.cmake    \
        cmake/modules/FindPORTAUDIO.cmake       \
+       cmake/modules/FindPowerShell.cmake      \
        cmake/modules/FindSBC.cmake             \
        cmake/modules/FindSED.cmake             \
        cmake/modules/FindSETCAP.cmake          \
        cmake/modules/FindSH.cmake              \
        cmake/modules/FindSMI.cmake             \
+       cmake/modules/FindLIBSSH.cmake  \
+       cmake/modules/FindWinSparkle.cmake      \
+       cmake/modules/FindWireshark.cmake       \
        cmake/modules/FindWSWinLibs.cmake       \
        cmake/modules/FindXMLLINT.cmake         \
        cmake/modules/FindXSLTPROC.cmake        \
        cmake/modules/FindYACC.cmake            \
        cmake/modules/FindYAPP.cmake            \
        cmake/modules/FindZLIB.cmake            \
+       cmake/modules/GenerateTestSh.cmake      \
+       cmake/modules/gmxTestLargeFiles.cmake   \
+       cmake/modules/hhc.cmake \
        cmake/modules/LICENSE.txt               \
+       cmake/modules/LocatePythonExecutable.cmake      \
+       cmake/modules/LocatePythonModule.cmake  \
+       cmake/modules/readme.txt                \
        cmake/modules/UseABICheck.cmake         \
        cmake/modules/UseAsn2Wrs.cmake          \
        cmake/modules/UseCheckAPI.cmake         \
+       cmake/modules/UseCustomIncludes.cmake           \
        cmake/modules/UseLemon.cmake            \
        cmake/modules/UseMakeDissectorReg.cmake \
        cmake/modules/UseMakeTapReg.cmake       \
        cmake/modules/UseWinLibs.cmake          \
-       cmake/modules/gmxTestLargeFiles.cmake   \
-       cmake/modules/readme.txt                \
+       cmake/modules/WiresharkConfig.cmake.in  \
+       cmake/modules/WiresharkConfigVersion.cmake.in \
+       cmake/modules/WiresharkPlugin.cmake     \
+       cmake/TestFileOffsetBits.c      \
+       cmake/TestLargeFiles.c.cmakein  \
+       cmake/TestWindowsFSeek.c        \
        ui/win32/Makefile.nmake                 \
        ui/win32/console_win32.c                \
        ui/win32/console_win32.h                \
@@ -1296,6 +1336,7 @@ EXTRA_DIST = \
        ui/win32/print_win32.c                  \
        ui/win32/print_win32.h                  \
        ui/win32/settings.ini                   \
+       version.h.in                            \
        CPackConfig.txt
 
 install-exec-hook:
@@ -1328,9 +1369,11 @@ DIST_SUBDIRS = \
        help            \
        packaging       \
        plugins         \
+       randpkt_core    \
        tools           \
        wiretap         \
        wsutil          \
+       extcap          \
        docbook
 
 SUBDIRS = \
@@ -1347,6 +1390,8 @@ SUBDIRS = \
        ui                      \
        @wireshark_SUBDIRS@     \
        ui/cli                  \
+       randpkt_core            \
+       extcap                  \
        .                       \
        doc
 
@@ -1378,33 +1423,136 @@ patch-bzip2: distdir
        fi
        $(am__remove_distdir)
 
-# Install some desktop files (for use with GNOME, KDE, or any other freedesktop.org-compliant desktops)
-# No, these do not go into $(datarootdir): the desktop won't look for them there.
-# Yes, that violate's autofoo's principle of relocatability.
-# What we (probably) should do is check `pkg-config --variable=prefix gtk+-2.0` to know where
-# to install this stuff...
+#
+# Install icons and other desktop files for (for use with GNOME, KDE, or
+# any other freedesktop.org-compliant desktops).
+#
+# We use $(datadir).  If the desktop doesn't look for them there,
+# the desktop is broken; the latest XDG Base Directory Specification
+# at
+#
+#    http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html
+#
+# says
+#
+# $XDG_DATA_DIRS defines the preference-ordered set of base directories
+# to search for data files in addition to the $XDG_DATA_HOME base
+# directory. The directories in $XDG_DATA_DIRS should be seperated with a
+# colon ':'.
+#
+# If $XDG_DATA_DIRS is either not set or empty, a value equal to
+# /usr/local/share/:/usr/share/ should be used.
+#
+# so:
+#
+#    if this is configured to install under /usr, that should Just Work,
+#    unless XDG_DATA_DIRS is set incorrectly or the desktop isn't
+#    compliant with the latest version of the spec;
+#
+#    if this installs under the default /usr/share, that should Just Work,
+#    unless XDG_DATA_DIRS is set incorrectly or the desktop isn't
+#    compliant with the latest version of the spec;
+#
+#    if this is configured to install somewhere else, whoever configured
+#    it should also have made sure that XDG_DATA_DIRS was set correctly
+#    and, if that doesn't work, the desktop isn't compliant with the
+#    latest version of the spec.
+#
+# We install these as part of the standard installation process, just
+# as, for example, Inkscape does with its icons.  See bug 10737.
 #
 # Do not use the -T flag to the install command, as it's not portable.
 # Some versions of install don't support a -T flag at all, and the
 # FreeBSD install command has a -T flag that takes an argument and
 # that has completely different semantics.
-install_desktop_files:
-       mkdir -p $(DESTDIR)/usr/share/{mime/packages,applications}
-       install -m 644 $(srcdir)/wireshark-mime-package.xml $(DESTDIR)/usr/share/mime/packages/wireshark.xml
+#
+# We neither need nor want any of this on OS X, nor do we want it if
+# we're not building Wireshark (that being the only desktop app).
+#
+install-data-local:
+if BUILDING_WIRESHARK
+if NOT_OS_X
+       mkdir -p $(DESTDIR)$(datadir)/mime/packages
+       install -m 644 $(srcdir)/wireshark-mime-package.xml $(DESTDIR)$(datadir)/mime/packages/wireshark.xml
+       mkdir -p $(DESTDIR)$(datadir)/appdata
+       install -m 644 $(srcdir)/wireshark.appdata.xml $(DESTDIR)$(datadir)/appdata/wireshark.appdata.xml
+       mkdir -p $(DESTDIR)$(datadir)/applications
        if test x$(DESKTOP_FILE_INSTALL) != x ; then \
-               $(DESKTOP_FILE_INSTALL) --dir $(DESTDIR)/usr/share/applications $(srcdir)/wireshark.desktop; \
+               $(DESKTOP_FILE_INSTALL) --dir $(DESTDIR)$(datadir)/applications $(srcdir)/wireshark.desktop  $(srcdir)/wireshark-gtk.desktop ; \
        else \
-               install -m 644 $(srcdir)/wireshark.desktop $(DESTDIR)/usr/share/applications/wireshark.desktop; \
+               install -m 644 $(srcdir)/wireshark.desktop $(srcdir)/wireshark-gtk.desktop $(DESTDIR)$(datadir)/applications; \
        fi
        for size in 16 24 32 48 64 128 256; \
        do \
-               mkdir -p $(DESTDIR)/usr/share/icons/hicolor/$${size}x$${size}/{apps,mimetypes} ; \
-               install -m 644 $(srcdir)/image/wsicon$${size}.png $(DESTDIR)/usr/share/icons/hicolor/$${size}x$${size}/apps/wireshark.png ; \
-               install -m 644 $(srcdir)/image/WiresharkDoc-$${size}.png $(DESTDIR)/usr/share/icons/hicolor/$${size}x$${size}/mimetypes/application-wireshark-doc.png ; \
+               mkdir -p $(DESTDIR)$(datadir)/icons/hicolor/$${size}x$${size}/apps ; \
+               install -m 644 $(srcdir)/image/wsicon$${size}.png $(DESTDIR)$(datadir)/icons/hicolor/$${size}x$${size}/apps/wireshark.png ; \
+               mkdir -p $(DESTDIR)$(datadir)/icons/hicolor/$${size}x$${size}/mimetypes ; \
+               install -m 644 $(srcdir)/image/WiresharkDoc-$${size}.png $(DESTDIR)$(datadir)/icons/hicolor/$${size}x$${size}/mimetypes/application-wireshark-doc.png ; \
        done
-       mkdir -p $(DESTDIR)/usr/share/icons/hicolor/scalable/apps
-       install -m 644 image/wsicon.svg $(DESTDIR)/usr/share/icons/hicolor/scalable/apps/wireshark.svg
-       @echo "Don't forget to run \"update-desktop-database\" and \"update-mime-database /usr/share/mime\""
+       mkdir -p $(DESTDIR)$(datadir)/icons/hicolor/scalable/apps
+       install -m 644 $(srcdir)/image/wsicon.svg $(DESTDIR)$(datadir)/icons/hicolor/scalable/apps/wireshark.svg
+endif
+endif
+
+uninstall-local:
+if BUILDING_WIRESHARK
+if NOT_OS_X
+       rm -f $(DESTDIR)$(datadir)/appdata/wireshark.appdata.xml
+       rm -f $(DESTDIR)$(datadir)/applications/wireshark.desktop
+       rm -f $(DESTDIR)$(datadir)/applications/wireshark-gtk.desktop
+       rm -f $(DESTDIR)$(datadir)/mime/packages/wireshark.xml
+       for size in 16 24 32 48 64 128 256; \
+       do \
+               rm -f $(DESTDIR)$(datadir)/icons/hicolor/$${size}x$${size}/apps/wireshark.png ; \
+               rm -f $(DESTDIR)$(datadir)/icons/hicolor/$${size}x$${size}/mimetypes/application-wireshark-doc.png ; \
+       done
+       rm -f $(DESTDIR)$(datadir)/icons/hicolor/scalable/apps/wireshark.svg
+endif
+endif
+
+install-data-hook: update-databases-and-caches-install
+uninstall-hook: update-databases-and-caches-uninstall
+
+#
+# XXX - which of this stuff can, and should, we do ourselves?
+#
+# If we're "installing" under $(DESTDIR) as part of the process of
+# building a package, we probably don't need to, and shouldn't, do
+# any of this.
+#
+# If we're installing for use, we may need to do some of this; which
+# of them do we need to tell where to search, especially if we're
+# installing somewhere other than under /usr or /usr/local?
+#
+# What if we're installing in the user's home directory?
+#
+# What if we're installing under /opt?
+#
+# We only need to run ldconfig on systems where it's necessary in order
+# to update a shared library cache to know about our shared libraries.
+#
+# We only need to run update-desktop-database and update-mime-database
+# on freedesktop.org desktops.
+#
+# We only need to run gtk-update-icon-cache if we're installing a GTK+
+# version of Wireshark.
+#
+# We neither need nor want any of this on OS X, nor do we want it if
+# we're not building Wireshark (that being the only desktop app).
+#
+update-databases-and-caches-common:
+if BUILDING_WIRESHARK
+if NOT_OS_X
+       @echo "You may need to run \"ldconfig\" as root"
+       @echo "You may need to run \"update-desktop-database $(datadir)/applications\""
+       @echo "You may need to run \"update-mime-database $(datadir)/mime\""
+       @echo "You may need to run \"gtk-update-icon-cache -f -t $(datadir)/icons/hicolor\""
+endif
+endif
+
+update-databases-and-caches-install: update-databases-and-caches-common
+
+update-databases-and-caches-uninstall: update-databases-and-caches-common
 
 # Used by svr4-package and osx-package
 # We load top_stagedir with an absolute path so that libtool doesn't freak.
@@ -1453,10 +1601,13 @@ osx-app: $(PROGRAMS) $(SCRIPTS) $(MANS) $(DATA) packaging/macosx/Info.plist
        @if test x$(HAVE_OSX_PACKAGING) = xyes ; then \
                rm -rf $(stagedir) ; \
                $(MAKE) DESTDIR=$(stagedir) install; \
-               cd $(srcdir)/packaging/macosx ;  \
+               cd $(srcdir)/packaging/macosx ; \
                ./osx-app.sh @OSX_APP_FLAGS@ \
                        --create-bundle \
-                       --binary-path ../staging/$(PACKAGE).inst$(bindir) ; \
+                       --binary-path ../staging/$(PACKAGE).inst$(bindir) \
+                       --plugin-path ../staging/$(PACKAGE).inst$(plugindir) \
+                       --extcap-path ../staging/$(PACKAGE).inst$(extcapdir) \
+                       --library-path ../staging/$(PACKAGE).inst$(libdir) ; \
        else \
                echo "Error: OS X packaging tools not found." ; \
                echo "Package build abandoned." ; \
@@ -1468,7 +1619,7 @@ packaging/macosx/COPYING.txt: COPYING
 
 osx-package: osx-app packaging/macosx/COPYING.txt
        @if test x$(HAVE_OSX_PACKAGING) = xyes ; then \
-               cd $(srcdir)/packaging/macosx ;  \
+               cd $(srcdir)/packaging/macosx ; \
                chmod +x ./osx-dmg.sh ; \
                ./osx-dmg.sh @OSX_DMG_FLAGS@ ; \
        fi
@@ -1476,9 +1627,12 @@ osx-package: osx-app packaging/macosx/COPYING.txt
 osx-install: osx-app
        @if test x$(HAVE_OSX_PACKAGING) = xyes ; then \
                echo "Copying Wireshark.app to /Applications" ; \
-               cp -pr $(srcdir)/packaging/macosx/Wireshark.app /Applications ;  \
+               cp -pr $(srcdir)/packaging/macosx/Wireshark.app /Applications ; \
        fi
 
+test-programs:
+       cd epan && $(MAKE) $@
+
 clean-local:
        rm -rf $(top_stagedir)
 
@@ -1507,7 +1661,9 @@ checkapi: checkapi_local
 ##     cd epan/ftypes && $(MAKE) checkapi
 ##     cd epan/wslua && $(MAKE) checkapi
        cd epan/dissectors && $(MAKE) checkapi
+       cd epan/dissectors/dcerpc && $(MAKE) checkapi
        cd plugins && $(MAKE) checkapi
+       cd randpkt_core && $(MAKE) checkapi
        cd wsutil && $(MAKE) checkapi
 
 wsar_html: doxygen.cfg doxygen_global.cfg FORCE
@@ -1516,6 +1672,7 @@ if HAVE_DOXYGEN
        cd epan && $(MAKE) $@
        cd capchild && $(MAKE) $@
        cd caputils && $(MAKE) $@
+       cd randpkt_core && $(MAKE) $@
        cd ui && $(MAKE) $@
        (umask 022 ; $(DOXYGEN) doxygen.cfg)
 endif