Autotools: Build rawshark.
[metze/wireshark/wip.git] / Makefile.am
index 85a30dc827be66125966d94b9cd529d11b28f98e..330e6612344913f83306ea90c1c209de0e7c2773 100644 (file)
@@ -32,30 +32,37 @@ COMMONCPPFLAGS =
 AM_CPPFLAGS = $(INCLUDEDIRS) $(WS_CPPFLAGS) $(COMMONCPPFLAGS)
 
 bin_PROGRAMS = \
-       @wireshark_bin@         \
-       @tshark_bin@            \
-       @tfshark_bin@           \
-       @text2pcap_bin@         \
-       @mergecap_bin@          \
        @capinfos_bin@          \
        @captype_bin@           \
+       @dumpcap_bin@           \
        @editcap_bin@           \
+       @mergecap_bin@          \
+       @mmdbresolve_bin@       \
        @randpkt_bin@           \
-       @dftest_bin@            \
-       @dumpcap_bin@           \
-       @reordercap_bin@        \
        @rawshark_bin@          \
-       @echld_test_bin@
+       @reordercap_bin@        \
+       @sharkd_bin@            \
+       @text2pcap_bin@         \
+       @tfshark_bin@           \
+       @tshark_bin@            \
+       @wireshark_bin@
+
+noinst_PROGRAMS = \
+       @dftest_bin@            \
+       @fuzzshark_bin@
 
 EXTRA_PROGRAMS = wireshark-gtk wireshark tshark tfshark capinfos captype \
        editcap mergecap dftest randpkt text2pcap dumpcap reordercap \
-       rawshark echld_test
+       mmdbresolve rawshark sharkd fuzzshark
 
 #
 # Wireshark configuration files are put in $(pkgdatadir).
 #
 dist_pkgdata_DATA = COPYING manuf services cfilters colorfilters dfilters \
-       smi_modules ipmap.html pdml2html.xsl
+       smi_modules pdml2html.xsl enterprises.tsv wka
+
+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA = wireshark.pc
 
 #
 # Install global profiles in the "profiles" subdirectory
@@ -63,6 +70,7 @@ dist_pkgdata_DATA = COPYING manuf services cfilters colorfilters dfilters \
 profilesdir = $(pkgdatadir)
 nobase_dist_profiles_DATA = \
        profiles/Bluetooth/colorfilters \
+       profiles/Bluetooth/preferences \
        profiles/Classic/colorfilters
 
 #
@@ -81,6 +89,8 @@ dist_diameter_DATA = $(_CUSTOM_diameter_xml_files_) \
        diameter/eap.xml \
        diameter/Ericsson.xml \
        diameter/etsie2e4.xml \
+       diameter/Inovar.xml \
+       diameter/Juniper.xml \
        diameter/mobileipv4.xml \
        diameter/mobileipv6.xml \
        diameter/nasreq.xml \
@@ -94,6 +104,7 @@ dist_diameter_DATA = $(_CUSTOM_diameter_xml_files_) \
        diameter/Nokia.xml \
        diameter/NokiaSolutionsAndNetworks.xml \
        diameter/HP.xml \
+       diameter/Huawei.xml \
        diameter/Oracle.xml
 
 #
@@ -130,13 +141,13 @@ dist_radius_DATA = $(_CUSTOM_radius_dict_) \
        radius/dictionary.3gpp2 \
        radius/dictionary.acc \
        radius/dictionary.acme \
-       radius/dictionary.airespace \
        radius/dictionary.actelis \
        radius/dictionary.aerohive \
+       radius/dictionary.airespace \
        radius/dictionary.alcatel \
+       radius/dictionary.alcatel-lucent.aaa \
        radius/dictionary.alcatel.esam \
        radius/dictionary.alcatel.sr \
-       radius/dictionary.alcatel-lucent.aaa \
        radius/dictionary.alteon \
        radius/dictionary.altiga \
        radius/dictionary.alvarion \
@@ -151,16 +162,16 @@ dist_radius_DATA = $(_CUSTOM_radius_dict_) \
        radius/dictionary.avaya \
        radius/dictionary.azaire \
        radius/dictionary.bay \
-       radius/dictionary.bluecoat \
        radius/dictionary.bintec \
+       radius/dictionary.bluecoat \
+       radius/dictionary.bristol \
        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.camiant \
        radius/dictionary.chillispot \
        radius/dictionary.cisco \
        radius/dictionary.cisco.asa \
@@ -169,15 +180,17 @@ dist_radius_DATA = $(_CUSTOM_radius_dict_) \
        radius/dictionary.cisco.vpn5000 \
        radius/dictionary.citrix \
        radius/dictionary.clavister \
+       radius/dictionary.cnergee \
        radius/dictionary.colubris \
        radius/dictionary.columbia_university \
-       radius/dictionary.compatible \
        radius/dictionary.compat \
+       radius/dictionary.compatible \
        radius/dictionary.cosine \
        radius/dictionary.dante \
+       radius/dictionary.dellemc \
        radius/dictionary.dhcp \
-       radius/dictionary.dlink \
        radius/dictionary.digium \
+       radius/dictionary.dlink \
        radius/dictionary.dragonwave \
        radius/dictionary.efficientip \
        radius/dictionary.eltex \
@@ -186,7 +199,6 @@ dist_radius_DATA = $(_CUSTOM_radius_dict_) \
        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 \
@@ -211,8 +223,8 @@ dist_radius_DATA = $(_CUSTOM_radius_dict_) \
        radius/dictionary.itk \
        radius/dictionary.jradius \
        radius/dictionary.juniper \
-       radius/dictionary.kineto \
        radius/dictionary.karlnet \
+       radius/dictionary.kineto \
        radius/dictionary.lancom \
        radius/dictionary.livingston \
        radius/dictionary.localweb \
@@ -221,6 +233,7 @@ dist_radius_DATA = $(_CUSTOM_radius_dict_) \
        radius/dictionary.meinberg \
        radius/dictionary.merit \
        radius/dictionary.meru \
+       radius/dictionary.microsemi \
        radius/dictionary.microsoft \
        radius/dictionary.mikrotik \
        radius/dictionary.motorola \
@@ -277,11 +290,13 @@ dist_radius_DATA = $(_CUSTOM_radius_dict_) \
        radius/dictionary.rfc7155 \
        radius/dictionary.rfc7268 \
        radius/dictionary.rfc7499 \
+       radius/dictionary.rfc7930 \
        radius/dictionary.riverbed \
        radius/dictionary.riverstone \
        radius/dictionary.roaringpenguin \
        radius/dictionary.ruckus \
        radius/dictionary.ruggedcom \
+       radius/dictionary.sangoma \
        radius/dictionary.sg \
        radius/dictionary.shasta \
        radius/dictionary.shiva \
@@ -302,6 +317,7 @@ dist_radius_DATA = $(_CUSTOM_radius_dict_) \
        radius/dictionary.travelping \
        radius/dictionary.tropos \
        radius/dictionary.ukerna \
+       radius/dictionary.unisphere \
        radius/dictionary.unix \
        radius/dictionary.usr \
        radius/dictionary.utstarcom \
@@ -339,39 +355,49 @@ dist_wimaxasncp_DATA = \
        wimaxasncp/dictionary.xml \
        wimaxasncp/dictionary.dtd
 
-if HAVE_PLUGINS
--include plugins/Custom.make
-plugin_ldadd = $(_CUSTOM_plugin_ldadd_) \
-       -dlopen plugins/docsis/docsis.la \
-       -dlopen plugins/ethercat/ethercat.la \
-       -dlopen plugins/gryphon/gryphon.la \
-       -dlopen plugins/irda/irda.la \
-       -dlopen plugins/m2m/m2m.la \
-       -dlopen plugins/mate/mate.la \
-       -dlopen plugins/opcua/opcua.la \
-       -dlopen plugins/profinet/profinet.la \
-       -dlopen plugins/stats_tree/stats_tree.la \
-       -dlopen plugins/unistim/unistim.la \
-       -dlopen plugins/wimax/wimax.la \
-       -dlopen plugins/wimaxmacphy/wimaxmacphy.la
-
-else           # HAVE_PLUGINS
-
-plugin_ldadd =
-
-endif          # HAVE_PLUGINS
-
-include Makefile.common
-
-if HAVE_EXTCAP
-SHARK_COMMON_SRC += $(EXTCAP_COMMON_SRC)
-endif
+# "BUILT_SOURCES" are built before any "make all" or "make check" targets.
+BUILT_HEADER_FILES = \
+       version.h
 
-if ENABLE_STATIC
-EXTRALINKFLAGS = -Wl,-static -all-static
-else
-EXTRALINKFLAGS = -export-dynamic
-endif
+BUILT_C_FILES =
+
+BUILT_SOURCES =        $(BUILT_C_FILES) $(BUILT_HEADER_FILES)
+
+# Header files generated from source files.
+GENERATED_HEADER_FILES = \
+       text2pcap-scanner_lex.h \
+       $(BUILT_HEADER_FILES)
+
+# C source files generated from source files.
+GENERATED_C_FILES =
+
+# All the generated files.
+GENERATED_FILES = $(GENERATED_C_FILES) $(GENERATED_HEADER_FILES)
+
+# sources common for wireshark, tshark, and rawshark
+SHARK_COMMON_SRC = \
+       cfile.c                 \
+       file_packet_provider.c  \
+       frame_tvbuff.c          \
+       sync_pipe_write.c       \
+       extcap.c                \
+       extcap_parser.c
+
+# wireshark specifics
+WIRESHARK_COMMON_SRC = \
+       $(SHARK_COMMON_SRC)     \
+       capture_info.c          \
+       capture_opts.c          \
+       file.c                  \
+       fileset.c               \
+       version_info.c
+
+EPAN_EXTRA_LIBS = \
+       @C_ARES_LIBS@                   \
+       @KRB5_LIBS@                     \
+       @LIBGCRYPT_LIBS@                \
+       @LIBGNUTLS_LIBS@                \
+       @LIBSMI_LIBS@
 
 # Libraries and plugin flags with which to link wireshark.
 #
@@ -382,30 +408,25 @@ wireshark_common_ldadd = \
        capchild/libcapchild.a          \
        caputils/libcaputils.a          \
        ui/libui.a                      \
-       ui/libui_dirty.a                \
+       ui/libui_generated.a            \
        codecs/libwscodecs.la           \
        wiretap/libwiretap.la           \
        epan/libwireshark.la            \
        wsutil/libwsutil.la             \
-       @SSL_LIBS@                      \
-       $(plugin_ldadd)                 \
        @PCAP_LIBS@                     \
-       @C_ARES_LIBS@                   \
-       @KRB5_LIBS@                     \
-       @APPLICATIONSERVICES_FRAMEWORKS@        \
-       @SYSTEMCONFIGURATION_FRAMEWORKS@        \
-       @COREFOUNDATION_FRAMEWORKS@     \
-       @LIBGCRYPT_LIBS@                \
-       @LIBGNUTLS_LIBS@                \
-       @LIBSMI_LDFLAGS@                \
+       $(EPAN_EXTRA_LIBS)              \
        @LIBNL_LIBS@
 
 if HAVE_Qt
 wireshark_SOURCES = $(WIRESHARK_COMMON_SRC) wireshark-qt.cpp
 
 wireshark_CPPFLAGS = $(AM_CPPFLAGS) $(GLIB_CFLAGS) $(Qt_CFLAGS)
+# Define compatibility macros for Qt 4.8
+if HAVE_QT_VERSION_4
+wireshark_CPPFLAGS += -DQ_NULLPTR=NULL
+endif
 
-wireshark_LDFLAGS = $(AM_LDFLAGS) $(EXTRALINKFLAGS) $(Qt_LDFLAGS)
+wireshark_LDFLAGS = $(AM_LDFLAGS) $(Qt_LDFLAGS)
 
 wireshark_LDADD = \
        ui/qt/libqtui.a                 \
@@ -423,7 +444,7 @@ wireshark_gtk_SOURCES = $(WIRESHARK_COMMON_SRC)
 
 wireshark_gtk_CPPFLAGS = $(AM_CPPFLAGS) $(GTK_CFLAGS)
 
-wireshark_gtk_LDFLAGS = $(AM_LDFLAGS) $(EXTRALINKFLAGS)
+wireshark_gtk_LDFLAGS = $(AM_LDFLAGS)
 
 wireshark_gtk_LDADD = \
        ui/gtk/libgtkui.a               \
@@ -432,9 +453,31 @@ wireshark_gtk_LDADD = \
        @PORTAUDIO_LIBS@
 endif
 
+fuzzshark_SOURCES = \
+       tools/oss-fuzzshark/fuzzshark.c \
+       tools/oss-fuzzshark/StandaloneFuzzTargetMain.c \
+       version_info.c
+
+fuzzshark_CPPFLAGS = $(AM_CPPFLAGS) $(GLIB_CFLAGS)
+
+fuzzshark_LDFLAGS = $(AM_LDFLAGS)
+
+fuzzshark_LDADD = \
+       wiretap/libwiretap.la           \
+       epan/libwireshark.la            \
+       wsutil/libwsutil.la             \
+       @GLIB_LIBS@                     \
+       ${EPAN_EXTRA_LIBS}
+
+tshark_SOURCES = \
+       $(SHARK_COMMON_SRC)     \
+       capture_opts.c          \
+       tshark.c                \
+       version_info.c
+
 tshark_CPPFLAGS = $(AM_CPPFLAGS) $(GLIB_CFLAGS)
 
-tshark_LDFLAGS = $(AM_LDFLAGS) $(EXTRALINKFLAGS)
+tshark_LDFLAGS = $(AM_LDFLAGS)
 
 # Libraries and plugin flags with which to link tshark.
 tshark_LDADD = \
@@ -445,21 +488,18 @@ tshark_LDADD = \
        wiretap/libwiretap.la           \
        epan/libwireshark.la            \
        wsutil/libwsutil.la             \
-       @SSL_LIBS@                      \
-       $(plugin_ldadd)                 \
        @GLIB_LIBS@                     \
        @PCAP_LIBS@                     \
-       @C_ARES_LIBS@                   \
-       @KRB5_LIBS@                     \
-       @SYSTEMCONFIGURATION_FRAMEWORKS@        \
-       @COREFOUNDATION_FRAMEWORKS@     \
-       @LIBGCRYPT_LIBS@                \
-       @LIBGNUTLS_LIBS@                \
-       @LIBSMI_LDFLAGS@
+       ${EPAN_EXTRA_LIBS}
+
+tfshark_SOURCES = \
+       $(SHARK_COMMON_SRC)     \
+       tfshark.c               \
+       version_info.c
 
 tfshark_CPPFLAGS = $(AM_CPPFLAGS) $(GLIB_CFLAGS)
 
-tfshark_LDFLAGS = $(AM_LDFLAGS) $(EXTRALINKFLAGS)
+tfshark_LDFLAGS = $(AM_LDFLAGS)
 
 # Libraries and plugin flags with which to link tfshark.
 tfshark_LDADD = \
@@ -468,19 +508,18 @@ tfshark_LDADD = \
        wiretap/libwiretap.la           \
        epan/libwireshark.la            \
        wsutil/libwsutil.la             \
-       @SSL_LIBS@                      \
-       $(plugin_ldadd)                 \
        @GLIB_LIBS@                     \
        @PCAP_LIBS@                     \
-       @KRB5_LIBS@                     \
-       @SYSTEMCONFIGURATION_FRAMEWORKS@        \
-       @COREFOUNDATION_FRAMEWORKS@     \
-       @LIBGNUTLS_LIBS@                \
-       @LIBSMI_LDFLAGS@
+       ${EPAN_EXTRA_LIBS}
+
+rawshark_SOURCES = \
+       $(SHARK_COMMON_SRC)     \
+       rawshark.c              \
+       version_info.c
 
 rawshark_CPPFLAGS = $(AM_CPPFLAGS) $(GLIB_CFLAGS)
 
-rawshark_LDFLAGS = $(AM_LDFLAGS) $(EXTRALINKFLAGS)
+rawshark_LDFLAGS = $(AM_LDFLAGS)
 
 # Libraries and plugin flags with which to link rawshark.
 rawshark_LDADD = \
@@ -489,25 +528,55 @@ rawshark_LDADD = \
        wiretap/libwiretap.la           \
        epan/libwireshark.la            \
        wsutil/libwsutil.la             \
-       @SSL_LIBS@                      \
-       $(plugin_ldadd)                 \
        @GLIB_LIBS@                     \
        @PCAP_LIBS@                     \
-       @C_ARES_LIBS@                   \
-       @KRB5_LIBS@                     \
-       @SYSTEMCONFIGURATION_FRAMEWORKS@        \
-       @COREFOUNDATION_FRAMEWORKS@     \
-       @LIBGCRYPT_LIBS@                \
-       @LIBGNUTLS_LIBS@                \
-       @LIBSMI_LDFLAGS@
+       ${EPAN_EXTRA_LIBS}
+
+mmdbresolve_SOURCES = mmdbresolve.c
+mmdbresolve_CPPFLAGS = $(AM_CPPFLAGS)
+mmdbresolve_LDFLAGS = $(AM_LDFLAGS)
+mmdbresolve_LDADD = @MAXMINDDB_LIBS@
+
+sharkd_SOURCES = \
+       $(SHARK_COMMON_SRC)     \
+       sharkd.c                \
+       sharkd.h                \
+       sharkd_daemon.c         \
+       sharkd_session.c        \
+       version_info.c
+
+sharkd_CPPFLAGS = $(AM_CPPFLAGS) $(GLIB_CFLAGS)
+
+if HAVE_SPEEXDSP
+sharkd_CPPFLAGS += $(SPEEXDSP_CFLAGS)
+endif
+
+sharkd_LDFLAGS = $(AM_LDFLAGS)
+
+# Libraries and plugin flags with which to link sharkd.
+sharkd_LDADD = \
+       ui/cli/libcliui.a               \
+       ui/libui.a                      \
+       codecs/libwscodecs.la           \
+       wiretap/libwiretap.la           \
+       epan/libwireshark.la            \
+       wsutil/libwsutil.la             \
+       @GLIB_LIBS@                     \
+       @PCAP_LIBS@                     \
+       ${EPAN_EXTRA_LIBS}
+
+if HAVE_SPEEXDSP
+sharkd_LDADD += $(SPEEXDSP_LIBS)
+endif
+
+text2pcap_SOURCES = \
+       text2pcap.c             \
+       text2pcap-scanner.l     \
+       version_info.c
 
 text2pcap_CPPFLAGS = $(AM_CPPFLAGS) $(GLIB_CFLAGS)
 
-# 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 = $(GENERATED_CFLAGS)
+text2pcap_CFLAGS = $(AM_CFLAGS)
 
 # Libraries with which to link text2pcap.
 text2pcap_LDADD = \
@@ -515,58 +584,92 @@ text2pcap_LDADD = \
        wsutil/libwsutil.la             \
        @GLIB_LIBS@
 
+mergecap_SOURCES = \
+       mergecap.c      \
+       version_info.c
+
 mergecap_CPPFLAGS = $(AM_CPPFLAGS) $(GLIB_CFLAGS)
 
 # Libraries with which to link mergecap.
 mergecap_LDADD = \
+       ui/libui.a                      \
        wiretap/libwiretap.la           \
        wsutil/libwsutil.la             \
        @GLIB_LIBS@
 
+capinfos_SOURCES = \
+       capinfos.c      \
+       version_info.c
+
 capinfos_CPPFLAGS = $(AM_CPPFLAGS) $(GLIB_CFLAGS)
 
 # Libraries with which to link capinfos.
 capinfos_LDADD = \
+       ui/libui.a                      \
        wiretap/libwiretap.la           \
        wsutil/libwsutil.la             \
        @GLIB_LIBS@                     \
        @LIBGCRYPT_LIBS@
 
+captype_SOURCES = \
+       captype.c       \
+       version_info.c
+
 captype_CPPFLAGS = $(AM_CPPFLAGS) $(GLIB_CFLAGS)
 
 # Libraries with which to link captype.
 captype_LDADD = \
+       ui/libui.a                      \
        wiretap/libwiretap.la           \
        wsutil/libwsutil.la             \
        @GLIB_LIBS@
 
+editcap_SOURCES = \
+       editcap.c       \
+       version_info.c
+
 editcap_CPPFLAGS = $(AM_CPPFLAGS) $(GLIB_CFLAGS)
 
 # Libraries with which to link editcap.
 editcap_LDADD = \
+       ui/libui.a                      \
        wiretap/libwiretap.la           \
        wsutil/libwsutil.la             \
-       @GLIB_LIBS@
+       @GLIB_LIBS@                     \
+       @LIBGCRYPT_LIBS@
+
+reordercap_SOURCES = \
+       reordercap.c    \
+       version_info.c
 
 reordercap_CPPFLAGS = $(AM_CPPFLAGS) $(GLIB_CFLAGS)
 
 # Libraries with which to link reordercap.
 reordercap_LDADD = \
+       ui/libui.a                      \
        wiretap/libwiretap.la           \
        wsutil/libwsutil.la             \
        @GLIB_LIBS@
 
+randpkt_SOURCES = \
+       randpkt.c       \
+       version_info.c
+
 randpkt_CPPFLAGS = $(AM_CPPFLAGS) $(GLIB_CFLAGS)
 
 # Libraries with which to link randpkt.
 randpkt_LDADD = \
        randpkt_core/librandpkt_core.a  \
+       ui/libui.a                      \
        wiretap/libwiretap.la           \
        wsutil/libwsutil.la             \
        @GLIB_LIBS@                     \
        @PCAP_LIBS@                     \
        @C_ARES_LIBS@
 
+dftest_SOURCES = \
+       dftest.c
+
 dftest_CPPFLAGS = $(AM_CPPFLAGS) $(GLIB_CFLAGS)
 
 # Libraries and plugin flags with which to link dftest.
@@ -575,30 +678,18 @@ dftest_LDADD = \
        wiretap/libwiretap.la           \
        wsutil/libwsutil.la             \
        epan/libwireshark.la            \
-       @SSL_LIBS@                      \
-       $(plugin_ldadd)                 \
        @GLIB_LIBS@                     \
        @PCAP_LIBS@                     \
-       @C_ARES_LIBS@                   \
-       @KRB5_LIBS@                     \
-       @LIBGCRYPT_LIBS@                \
-       @LIBGNUTLS_LIBS@                \
-       @LIBSMI_LDFLAGS@
+       ${EPAN_EXTRA_LIBS}
 
-echld_CPPFLAGS = $(AM_CPPFLAGS) $(GLIB_CFLAGS)
-
-echld_test_LDADD = \
-       epan/libwireshark.la            \
-       echld/libechld.la               \
-       writecap/libwritecap.a          \
-       wsutil/libwsutil.la             \
-       @GLIB_LIBS@                     \
-       @PCAP_LIBS@                     \
-       @C_ARES_LIBS@
-
-echld_test_DEPENDENCIES = \
-       echld/libechld.la \
-       epan/libwireshark.la
+dumpcap_SOURCES = \
+       capture_opts.c                  \
+       capture_stop_conditions.c       \
+       conditions.c                    \
+       dumpcap.c                       \
+       ringbuffer.c                    \
+       sync_pipe_write.c               \
+       version_info.c
 
 dumpcap_CPPFLAGS = $(AM_CPPFLAGS) $(GLIB_CFLAGS)
 
@@ -609,15 +700,39 @@ dumpcap_LDFLAGS = $(AM_LDFLAGS) $(PIE_LDFLAGS)
 # Libraries with which to link dumpcap.
 dumpcap_LDADD = \
        caputils/libcaputils.a          \
+       ui/libui.a                      \
        writecap/libwritecap.a          \
        wsutil/libwsutil.la             \
        @GLIB_LIBS@                     \
        @PCAP_LIBS@                     \
-       @SYSTEMCONFIGURATION_FRAMEWORKS@        \
-       @COREFOUNDATION_FRAMEWORKS@     \
        @LIBCAP_LIBS@                   \
        @LIBNL_LIBS@
 
+pkginclude_HEADERS = \
+       cfile.h                 \
+       file.h                  \
+       globals.h               \
+       log.h                   \
+       ws_attributes.h         \
+       ws_compiler_tests.h     \
+       ws_diag_control.h       \
+       ws_symbol_export.h
+
+# this target needed for distribution only
+noinst_HEADERS = \
+       tools/oss-fuzzshark/FuzzerInterface.h \
+       capture_info.h          \
+       capture_opts.h          \
+       capture_stop_conditions.h       \
+       conditions.h            \
+       extcap.h                \
+       extcap_parser.h         \
+       fileset.h               \
+       frame_tvbuff.h          \
+       ringbuffer.h            \
+       sync_pipe.h             \
+       version_info.h
+
 #
 # Build the version string
 #
@@ -641,71 +756,42 @@ SUFFIXES = .sh
 services:
        $(PYTHON) $(srcdir)/tools/make-services.py
 
-CLEANFILES =           \
-       *~              \
+CLEANFILES = \
        doxygen-core.tag        \
        vgcore.*
 
-#
-# We have to remove version.h with "make distclean", as, otherwise,
-# "make distcheck" fails.  We still need to make the tarballs work
-# even if you do "make distclean" and try to rebuild; that's a work in
-# progress.
-#
-# XXX - "ps.c" is distributed in the source tarballs; why is it in the
-# list of files removed by "make distclean"?  (It's deliberately
-# included in that list.)
-#
 DISTCLEANFILES = \
-       ps.c                    \
        version.h
 
-MAINTAINERCLEANFILES =         \
-       $(GENERATED_FILES)      \
-       Makefile.in             \
-       aclocal.m4              \
-       compile                 \
-       config.h.in             \
-       configure               \
-       depcomp                 \
-       install-sh              \
-       ltmain.sh               \
-       missing                 \
-       ylwrap
+MAINTAINERCLEANFILES = \
+       $(GENERATED_FILES)
 
 EXTRA_DIST = \
        .editorconfig           \
        .mailmap                \
        INSTALL.configure       \
        Makefile.am.inc         \
-       Makefile.common         \
-       Makefile.nmake          \
-       Makefile.nmake.inc      \
        README.aix              \
        README.bsd              \
        README.DECT             \
        README.hpux             \
        README.linux            \
        README.macos            \
-       README.tru64            \
-       README.vmware           \
+       README.md               \
        README.windows          \
        abi-descriptor.template \
        autogen.sh              \
        cfilters                \
        colorfilters            \
-       config.h.win32          \
-       config.nmake            \
        debian                  \
        dfilters                \
        doxygen_global.cfg      \
        doxygen.cfg.in          \
+       enterprises.tsv         \
        fix                     \
        idl                     \
        image                   \
-       ipmap.html              \
        m4                      \
-       macosx-setup.sh         \
        macosx-support-lib-patches      \
        make-version.pl         \
        manuf                   \
@@ -720,15 +806,13 @@ EXTRA_DIST = \
        wireshark-mime-package.xml      \
        wireshark.appdata.xml   \
        wireshark.pc.in         \
-       wka.tmpl                \
+       wka                     \
        CMakeLists.txt          \
        CMakeListsCustom.txt.example    \
        cmakeconfig.h.in        \
        CMakeOptions.txt        \
-       README.cmake            \
        ConfigureChecks.cmake   \
-       cmake                   \
-       CPackConfig.txt
+       cmake
 
 install-exec-hook:
 if HAVE_DUMPCAP_GROUP
@@ -745,13 +829,21 @@ endif
 endif
 
 
+if HAVE_PLUGINS
+if !ENABLE_STATIC
+plugins_subdir = plugins
+endif
+endif
+
+extcap_subdir = extcap
+
 DIST_SUBDIRS = \
        capchild        \
        caputils        \
        codecs          \
        doc             \
+       docbook         \
        epan            \
-       echld           \
        ui              \
        ui/cli          \
        ui/gtk          \
@@ -764,8 +856,7 @@ DIST_SUBDIRS = \
        wiretap         \
        writecap        \
        wsutil          \
-       extcap          \
-       docbook
+       extcap
 
 SUBDIRS = \
        tools                   \
@@ -775,17 +866,17 @@ SUBDIRS = \
        epan                    \
        capchild                \
        caputils                \
-       @echld_dir@             \
-       @plugins_dir@           \
-       packaging               \
+       $(plugins_subdir)       \
        help                    \
        ui                      \
+       codecs                  \
        @wireshark_SUBDIRS@     \
        ui/cli                  \
        randpkt_core            \
-       @extcap_subdir@         \
+       $(extcap_subdir)        \
        .                       \
-       doc
+       doc                     \
+       docbook
 
 help/faq.txt: $(srcdir)/help/faq.py
        $(AM_V_GEN)(cd help ; \
@@ -795,100 +886,40 @@ libtool: $(LIBTOOL_DEPS)
        $(SHELL) ./config.status --recheck
 
 
-# Used by patch-bzip2
-# Trim off any extra version information and find the previous micro release.
-BASE_VERSION=`echo "$(VERSION)" | awk -F. '{$$3 = $$3 + 0 ; printf("%d.%d.%d"), $$1, $$2, $$3}'`
-PREV_VERSION=`echo "$(VERSION)" | awk -F. '{$$3 = $$3 + 0 ; if ($$3 > 0) $$3-- ; printf("%d.%d.%d"), $$1, $$2, $$3}'`
-PREV_DIR="wireshark-$(PREV_VERSION)"
-PREV_FILE="$(PREV_DIR).tar.bz2"
-PREV_URL="https://www.wireshark.org/download/src/all-versions/$(PREV_FILE)"
-
-patch-bzip2: distdir
-       if test x$(BASE_VERSION) != x$(PREV_VERSION) ; then \
-               curl --time-cond $(PREV_FILE) --location --output $(PREV_FILE) $(PREV_URL) && \
-               tar -xjf $(PREV_FILE) && \
-               diff -urN $(PREV_DIR) $(distdir) | bzip2 > patch-wireshark-$(PREV_VERSION)-to-$(VERSION).bz2 && \
-               echo "Created patch-bzip2" ; \
-               rm -rf "$(PREV_FILE)" "$(PREV_DIR)" ; \
-       else \
-               echo "This appears to be the first micro version ($(PREV_VERSION)). Skipping." ; \
-       fi
-       $(am__remove_distdir)
-
 #
 # 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
+# can be consulted 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.
-#
-# 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).
+# We neither need nor want any of this 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)$(datadir)/applications $(srcdir)/wireshark.desktop  $(srcdir)/wireshark-gtk.desktop ; \
-       else \
-               install -m 644 $(srcdir)/wireshark.desktop $(srcdir)/wireshark-gtk.desktop $(DESTDIR)$(datadir)/applications; \
-       fi
+       $(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
+       $(INSTALL) -m 644 $(srcdir)/wireshark.desktop $(srcdir)/wireshark-gtk.desktop $(DESTDIR)$(datadir)/applications
        for size in 16 24 32 48 64 128 256; \
        do \
-               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 ; \
+               $(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)$(datadir)/icons/hicolor/scalable/apps
-       install -m 644 $(srcdir)/image/wsicon.svg $(DESTDIR)$(datadir)/icons/hicolor/scalable/apps/wireshark.svg
-endif
+       $(MKDIR_P) $(DESTDIR)$(datadir)/icons/hicolor/scalable/apps
+       $(INSTALL) -m 644 $(srcdir)/image/wsicon.svg $(DESTDIR)$(datadir)/icons/hicolor/scalable/apps/wireshark.svg
 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
@@ -900,140 +931,42 @@ if NOT_OS_X
        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.
+# ldconfig may be needed to update a shared library cache.
 #
-# We only need to run update-desktop-database and update-mime-database
-# on freedesktop.org desktops.
+# update-desktop-database and update-mime-database may be needed on
+# freedesktop.org desktops.
 #
-# We only need to run gtk-update-icon-cache if we're installing a GTK+
+# gtk-update-icon-cache may be needed only 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).
+# Only ldconfig may be needed 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 "-------------------------------------------------------------------------------"
        @echo "You may need to run \"ldconfig\" as root"
+if BUILDING_WIRESHARK
        @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
+       @echo "-------------------------------------------------------------------------------"
 
 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.
-top_stagedir=$(abs_top_builddir)/packaging/staging
-stagedir=$(top_stagedir)/$(PACKAGE).inst
-
-host_cpu=@host_cpu@
-host_os=@host_os@
-
-solaris-package: svr4-package
-
-svr4-package: $(PROGRAMS) $(SCRIPTS) $(MANS) $(DATA)
-       @if test x$(HAVE_SVR4_PACKAGING) = xyes ; then \
-               rm -rf $(stagedir) ; \
-               $(MAKE) DESTDIR=$(stagedir) install; \
-               $(srcdir)/packaging/svr4/mkpkg \
-                       $(PACKAGE) \
-                       $(PACKAGE)-$(VERSION)-$(host_os)-$(host_cpu)-local \
-                       $(prefix) \
-                       $(top_stagedir) ; \
-       else \
-               echo "Error: SVR4 packaging tools not found." ; \
-               echo "Package build abandoned." ; \
-       fi
-
-
-rpm_topdir=`cd $(top_builddir) && pwd`/packaging/rpm
-if HAVE_RPM
 rpm-package: dist
-       @cd $(rpm_topdir) && \
-         mkdir -p BUILD RPMS SOURCES SRPMS && \
-         cd SOURCES && \
-         ln -sf ../../../$(distdir).tar.bz2 && \
-         cd .. && \
-         $(RPMBUILD) --define "_topdir `cd . && pwd`" --define "_prefix $(prefix)" \
-               @RPMBUILD_WITH_ARGS@ --clean -ba SPECS/wireshark.spec && \
-         echo "Package successfully built in `pwd`/RPMS." ; \
-         rm -f SOURCES/$(distdir).tar.bz2 ../../$(distdir).tar.bz2
-else
-rpm-package:
-       @echo "RPM executable not available." ; \
-         false
-endif
-
-# XXX - This assumes we're building from the source directory.
-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 ; \
-               ./osx-app.sh @OSX_APP_FLAGS@ \
-                       --create-bundle \
-                       --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." ; \
-       fi
-
-packaging/macosx/COPYING.txt: COPYING
-       (cd packaging/macosx ; \
-       $(MAKE) COPYING.txt ;)
-
-osx-package: osx-app packaging/macosx/COPYING.txt
-       @if test x$(HAVE_OSX_PACKAGING) = xyes ; then \
-               cd $(srcdir)/packaging/macosx ; \
-               chmod +x ./osx-dmg.sh ; \
-               ./osx-dmg.sh @OSX_DMG_FLAGS@ ; \
-       fi
-
-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 ; \
-       fi
+       $(MAKE) -C packaging/rpm
 
 test-programs:
        cd epan && $(MAKE) $@
 
-clean-local:
-       rm -rf $(top_stagedir)
-
-dumpabi:
-       $(MAKE) -C wiretap dumpabi-libwiretap
-       $(MAKE) -C epan dumpabi-libwireshark
-       $(MAKE) -C wsutil dumpabi-libwsutil
-
 checkapi_local:
        $(PERL) $(top_srcdir)/tools/checkAPIs.pl -build \
        -sourcedir=$(srcdir) \
@@ -1061,6 +994,15 @@ checkapi: checkapi_local
        cd writecap && $(MAKE) checkapi
        cd wsutil && $(MAKE) checkapi
 
+# --external-sources requires 0.4.0 or later.
+shellcheck:
+       cd $(top_srcdir) && \
+       $(SHELLCHECK) --external-sources \
+         tools/fuzz-test.sh \
+         tools/randpkt-test.sh \
+         tools/test-captures.sh \
+         tools/valgrind-wireshark.sh
+
 wsar_html: doxygen.cfg doxygen_global.cfg FORCE
 if HAVE_DOXYGEN
        rm -rf wsar_html
@@ -1081,3 +1023,7 @@ endif
 # Update AUTHORS file with entries from git shortlog
 gen-authors:
        cd $(top_srcdir) && $(PERL) tools/generate_authors.pl AUTHORS.src > AUTHORS
+
+dist-hook:
+       printf "git_description=%s\n" "$$(git -C $(top_srcdir) describe --match 'v[1-9]*')" \
+               > $(top_distdir)/version.conf