3 # Wireshark - Network traffic analyzer
4 # By Gerald Combs <gerald@wireshark.org>
5 # Copyright 2004 Gerald Combs
7 # This program is free software; you can redistribute it and/or
8 # modify it under the terms of the GNU General Public License
9 # as published by the Free Software Foundation; either version 2
10 # of the License, or (at your option) any later version.
12 # This program is distributed in the hope that it will be useful,
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 # GNU General Public License for more details.
17 # You should have received a copy of the GNU General Public License
18 # along with this program; if not, write to the Free Software
19 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
21 include $(top_srcdir)/Makefile.am.inc
23 AM_CPPFLAGS = $(INCLUDEDIRS) -I$(top_srcdir)/epan $(WS_CPPFLAGS) \
24 $(GLIB_CFLAGS) $(LIBGNUTLS_CFLAGS) $(LIBGCRYPT_CFLAGS)
28 # "BUILT_SOURCES" are built before any "make all" or "make check" targets.
32 BUILT_SOURCES = $(BUILT_C_FILES) $(BUILT_HEADER_FILES)
34 # Header files generated from source files.
35 GENERATED_HEADER_FILES = \
38 # C source files generated from source files.
43 # All the generated files.
44 GENERATED_FILES = $(GENERATED_HEADER_FILES) $(GENERATED_C_FILES)
47 # PIDL-generated DCE RPC dissectors without warnings.
49 PIDL_DISSECTOR_SRC = \
50 packet-dcerpc-atsvc.c \
51 packet-dcerpc-budb.c \
52 packet-dcerpc-butc.c \
53 packet-dcerpc-clusapi.c \
55 packet-dcerpc-dnsserver.c \
56 packet-dcerpc-drsuapi.c \
57 packet-dcerpc-dssetup.c \
59 packet-dcerpc-eventlog.c \
60 packet-dcerpc-frstrans.c \
61 packet-dcerpc-initshutdown.c \
63 packet-dcerpc-mapi.c \
64 packet-dcerpc-mdssvc.c \
65 packet-dcerpc-misc.c \
66 packet-dcerpc-nspi.c \
68 packet-dcerpc-srvsvc.c \
69 packet-dcerpc-winreg.c \
70 packet-dcerpc-witness.c \
71 packet-dcerpc-wkssvc.c \
72 packet-dcerpc-wzcsvc.c
75 # Headers for PIDL-generated dissectors.
77 PIDL_DISSECTOR_INCLUDES = \
78 packet-dcerpc-atsvc.h \
79 packet-dcerpc-clusapi.h \
81 packet-dcerpc-dssetup.h \
82 packet-dcerpc-drsuapi.h \
84 packet-dcerpc-eventlog.h \
85 packet-dcerpc-initshutdown.h \
87 packet-dcerpc-mapi.h \
88 packet-dcerpc-mdssvc.h \
89 packet-dcerpc-misc.h \
90 packet-dcerpc-nspi.h \
92 packet-dcerpc-srvsvc.h \
93 packet-dcerpc-winreg.h \
94 packet-dcerpc-witness.h \
95 packet-dcerpc-wkssvc.h \
96 packet-dcerpc-wzcsvc.h \
97 packet-dcerpc-frstrans.h
100 # asn2wrs-generated ASN.1 dissectors without warnings.
102 ASN1_DISSECTOR_SRC = \
113 packet-charging_ase.c \
128 packet-HI2Operations.c \
148 packet-logotypecertextn.c \
156 packet-mpeg-audio.c \
159 packet-novell_pkis.c \
160 packet-ns_cert_exts.c \
170 packet-pkix1explicit.c \
171 packet-pkix1implicit.c \
174 packet-pkixqualified.c \
200 packet-wlancertextn.c \
208 # idl2wrs-generated CORBA IDL dissectors without warnings.
210 CORBA_IDL_DISSECTOR_SRC = \
211 packet-coseventcomm.c
214 # asn2wrs-generated ASN.1 dissectors with warnings.
216 DIRTY_ASN1_DISSECTOR_SRC = \
217 $(CUSTOM_DIRTY_ASN1_DISSECTOR_SRC)
220 # idl2wrs-generated CORBA IDL dissectors with warnings.
222 DIRTY_CORBA_IDL_DISSECTOR_SRC = \
228 FILE_DISSECTOR_SRC = \
239 # Dissectors without warnings.
242 packet-2dparityfec.c \
243 packet-3com-njack.c \
250 packet-aastra-aasp.c \
257 packet-adb_service.c \
258 packet-adwin-config.c \
265 packet-aim-adverts.c \
267 packet-aim-buddylist.c \
269 packet-aim-chatnav.c \
270 packet-aim-directory.c \
272 packet-aim-generic.c \
274 packet-aim-invitation.c \
275 packet-aim-location.c \
276 packet-aim-messaging.c \
279 packet-aim-signon.c \
283 packet-aim-translate.c \
284 packet-aim-userlookup.c \
301 packet-app-pkix-cert.c \
305 packet-armagetronad.c \
311 packet-aruba-papi.c \
343 packet-bittorrent.c \
351 packet-bootparams.c \
364 packet-btbredr_rf.c \
372 packet-bthci_vendor.c \
388 packet-calcappprotocol.c \
393 packet-catapult-dct2000.c \
398 packet-cell_broadcast.c \
411 packet-cisco-erspan.c \
412 packet-cisco-fp-mim.c \
413 packet-cisco-marker.c \
414 packet-cisco-metadata.c \
417 packet-cisco-ttag.c \
418 packet-cisco-wids.c \
419 packet-classicstun.c \
428 packet-componentstatus.c \
430 packet-corosync-totemnet.c \
431 packet-corosync-totemsrp.c \
438 packet-csm-encaps.c \
449 packet-dcerpc-bossvr.c \
450 packet-dcerpc-browser.c \
451 packet-dcerpc-cds_clerkserver.c \
452 packet-dcerpc-cds_solicit.c \
453 packet-dcerpc-conv.c \
454 packet-dcerpc-cprpc_server.c \
455 packet-dcerpc-dce122.c \
456 packet-dcerpc-dtsprovider.c \
457 packet-dcerpc-dtsstime_req.c \
458 packet-dcerpc-epm.c \
459 packet-dcerpc-fileexp.c \
460 packet-dcerpc-fldb.c \
461 packet-dcerpc-frsapi.c \
462 packet-dcerpc-frsrpc.c \
463 packet-dcerpc-ftserver.c \
464 packet-dcerpc-icl_rpc.c \
465 packet-dcerpc-krb5rpc.c \
466 packet-dcerpc-llb.c \
467 packet-dcerpc-messenger.c \
468 packet-dcerpc-mgmt.c \
469 packet-dcerpc-ndr.c \
470 packet-dcerpc-netlogon.c \
471 packet-dcerpc-pnp.c \
472 packet-dcerpc-rdaclif.c \
473 packet-dcerpc-rep_proc.c \
474 packet-dcerpc-roverride.c \
475 packet-dcerpc-rpriv.c \
476 packet-dcerpc-rras.c \
477 packet-dcerpc-rs_acct.c \
478 packet-dcerpc-rs_attr.c \
479 packet-dcerpc-rs_attr_schema.c \
480 packet-dcerpc-rs_bind.c \
481 packet-dcerpc-rs_misc.c \
482 packet-dcerpc-rs_pgo.c \
483 packet-dcerpc-rs_plcy.c \
484 packet-dcerpc-rs_prop_acct.c \
485 packet-dcerpc-rs_prop_acl.c \
486 packet-dcerpc-rs_prop_attr.c \
487 packet-dcerpc-rs_prop_pgo.c \
488 packet-dcerpc-rs_prop_plcy.c \
489 packet-dcerpc-rs_pwd_mgmt.c \
490 packet-dcerpc-rs_repadm.c \
491 packet-dcerpc-rs_replist.c \
492 packet-dcerpc-rs_repmgr.c \
493 packet-dcerpc-rs_unix.c \
494 packet-dcerpc-rsec_login.c \
495 packet-dcerpc-samr.c \
496 packet-dcerpc-secidmap.c \
497 packet-dcerpc-spoolss.c \
498 packet-dcerpc-svcctl.c \
499 packet-dcerpc-tapi.c \
500 packet-dcerpc-tkn4int.c \
501 packet-dcerpc-trksvr.c \
502 packet-dcerpc-ubikdisk.c \
503 packet-dcerpc-ubikvote.c \
504 packet-dcerpc-update.c \
507 packet-dcom-dispatch.c \
509 packet-dcom-remact.c \
510 packet-dcom-remunkn.c \
511 packet-dcom-sysact.c \
519 packet-dhcp-failover.c \
522 packet-diameter_3gpp.c \
523 packet-diffserv-mpls-common.c \
535 packet-dpnss-link.c \
548 packet-dvb-data-mpe.c \
572 packet-elasticsearch.c \
592 packet-etsi_card_app_toolkit.c \
596 packet-exported_pdu.c \
623 packet-fmp_notify.c \
625 packet-force10-oui.c \
630 packet-fractalgeneratorprotocol.c \
646 packet-gluster_cli.c \
647 packet-gluster_pmap.c \
650 packet-glusterfs_hndsk.c \
653 packet-gmr1_common.c \
664 packet-gsm_a_bssmap.c \
665 packet-gsm_a_common.c \
666 packet-gsm_a_dtap.c \
670 packet-gsm_abis_om2000.c \
671 packet-gsm_abis_oml.c \
672 packet-gsm_abis_tfp.c \
673 packet-gsm_abis_pgsl.c \
674 packet-gsm_bsslap.c \
675 packet-gsm_bssmap_le.c \
678 packet-gsm_rlcmac.c \
681 packet-gsm_sms_ud.c \
691 packet-h221_nonstd.c \
697 packet-h248_annex_c.c \
698 packet-h248_annex_e.c \
699 packet-h248_q1950.c \
720 packet-homeplug-av.c \
727 packet-hsr-prp-supervision.c \
732 packet-http-urlencoded.c \
749 packet-ieee80211-netmon.c \
750 packet-ieee80211-prism.c \
751 packet-ieee80211-radio.c \
752 packet-ieee80211-radiotap-iter.c\
753 packet-ieee80211-radiotap.c \
754 packet-ieee80211-wlancap.c \
756 packet-ieee802154.c \
757 packet-ieee8021ah.c \
766 packet-infiniband.c \
767 packet-infiniband_sdp.c \
776 packet-ipmi-bridge.c \
777 packet-ipmi-chassis.c \
778 packet-ipmi-picmg.c \
780 packet-ipmi-session.c \
781 packet-ipmi-storage.c \
782 packet-ipmi-trace.c \
783 packet-ipmi-transport.c \
785 packet-ipmi-update.c \
796 packet-ipvs-syncd.c \
806 packet-isis-hello.c \
822 packet-iwarp-ddp-rdmap.c\
824 packet-ixiatrailer.c \
825 packet-ixveriwave.c \
838 packet-kingfisher.c \
868 packet-lge_monitor.c \
882 packet-logcat-text.c \
897 packet-mac-lte-framed.c \
899 packet-maccontrol.c \
918 packet-mime-encap.c \
934 packet-mpeg-descriptor.c \
935 packet-mpeg-dsmcc.c \
943 packet-mplstp-oam.c \
944 packet-mpls-y1711.c \
958 packet-msn-messenger.c \
972 packet-nasdaq-itch.c \
973 packet-nasdaq-soup.c \
989 packet-netanalyzer.c \
993 packet-netlink-netfilter.c \
994 packet-netlink-route.c \
995 packet-netlink-sock_diag.c \
997 packet-netperfmeter.c \
1012 packet-nordic_ble.c \
1031 packet-omron-fins.c \
1037 packet-openflow_v1.c \
1038 packet-openflow_v4.c \
1039 packet-openflow_v5.c \
1040 packet-opensafety.c \
1046 packet-osi-options.c \
1055 packet-packetlogger.c \
1059 packet-pcap_pktdata.c \
1060 packet-pcapng_block.c \
1067 packet-peekremote.c \
1073 packet-pingpongprotocol.c \
1082 packet-ppi-antenna.c \
1083 packet-ppi-geolocation-common.c \
1085 packet-ppi-sensor.c \
1086 packet-ppi-vector.c \
1097 packet-pw-cesopsn.c \
1098 packet-pw-common.c \
1113 packet-quakeworld.c \
1116 packet-radius_packetcable.c \
1123 packet-redbackli.c \
1124 packet-reload-framing.c \
1126 packet-retix-bpdu.c \
1128 packet-rfid-felica.c \
1129 packet-rfid-mifare.c \
1130 packet-rfid-pn532.c \
1131 packet-rfid-pn532-hci.c \
1170 packet-rtp-events.c \
1182 packet-s7comm_szl_ids.c \
1192 packet-scriptingservice.c \
1206 packet-sercosiii.c \
1213 packet-simulcrypt.c \
1221 packet-slowprotocols.c \
1223 packet-smb-browse.c \
1224 packet-smb-common.c \
1225 packet-smb-logon.c \
1226 packet-smb-mailslot.c \
1228 packet-smb-sidsnooping.c \
1229 packet-smb-direct.c \
1238 packet-sndcp-xid.c \
1240 packet-socketcan.c \
1242 packet-soupbintcp.c \
1253 packet-ssl-utils.c \
1256 packet-stanag4607.c \
1258 packet-stat-notify.c \
1267 packet-synphasor.c \
1268 packet-sysdig-event.c \
1280 packet-teamspeak2.c \
1281 packet-teimanagement.c \
1286 packet-text-media.c \
1292 packet-tivoconnect.c \
1305 packet-turbocell.c \
1306 packet-turnchannel.c \
1314 packet-ubertooth.c \
1326 packet-usb-audio.c \
1332 packet-usb-masstorage.c \
1333 packet-usb-video.c \
1336 packet-user_encap.c \
1357 packet-vssmonitoring.c \
1365 packet-waveagent.c \
1369 packet-websocket.c \
1370 packet-wfleet-hdlc.c \
1373 packet-wifi-display.c \
1375 packet-windows-common.c \
1392 packet-xip-serval.c \
1395 packet-xmpp-conference.c \
1396 packet-xmpp-core.c \
1397 packet-xmpp-gtalk.c \
1398 packet-xmpp-jingle.c \
1399 packet-xmpp-other.c \
1400 packet-xmpp-utils.c \
1414 packet-zbee-nwk-gp.c \
1415 packet-zbee-security.c \
1417 packet-zbee-zcl-closures.c \
1418 packet-zbee-zcl-general.c \
1419 packet-zbee-zcl-ha.c \
1420 packet-zbee-zcl-hvac.c \
1421 packet-zbee-zcl-lighting.c \
1422 packet-zbee-zcl-meas-sensing.c \
1423 packet-zbee-zcl-misc.c \
1424 packet-zbee-zcl-sas.c \
1425 packet-zbee-zcl-se.c \
1427 packet-zbee-zdp-binding.c \
1428 packet-zbee-zdp-discovery.c \
1429 packet-zbee-zdp-management.c \
1435 $(CUSTOM_DISSECTOR_SRC)
1438 # Headers for file dissectors.
1440 FILE_DISSECTOR_INCLUDES = \
1444 # Headers for dissectors.
1446 DISSECTOR_INCLUDES = \
1447 $(PIDL_DISSECTOR_INCLUDES) \
1453 packet-adb_service.h \
1459 packet-ansi_tcap.h \
1469 packet-bluetooth.h \
1476 packet-bthci_acl.h \
1477 packet-bthci_cmd.h \
1478 packet-bthci_evt.h \
1479 packet-bthci_sco.h \
1487 packet-cell_broadcast.h \
1488 packet-charging_ase.h \
1491 packet-cipsafety.h \
1492 packet-clearcase.h \
1503 packet-dcerpc-browser.h \
1504 packet-dcerpc-budb.h \
1505 packet-dcerpc-butc.h \
1506 packet-dcerpc-dce122.h \
1507 packet-dcerpc-dcom.h \
1508 packet-dcerpc-dnsserver.h \
1509 packet-dcerpc-frsapi.h \
1510 packet-dcerpc-frsrpc.h \
1511 packet-dcerpc-netlogon.h \
1512 packet-dcerpc-nt.h \
1513 packet-dcerpc-pnp.h \
1514 packet-dcerpc-rras.h \
1515 packet-dcerpc-samr.h \
1516 packet-dcerpc-spoolss.h \
1517 packet-dcerpc-svcctl.h \
1518 packet-dcerpc-tapi.h \
1520 packet-dcom-dispatch.h \
1523 packet-diffserv-mpls-common.h \
1556 packet-gmr1_common.h \
1561 packet-gsm_a_common.h \
1564 packet-gsm_rlcmac.h \
1586 packet-ieee80211.h \
1587 packet-ieee80211-radiotap-iter.h \
1588 packet-ieee80211-radiotap-defs.h \
1589 packet-ieee802154.h \
1595 packet-infiniband.h \
1606 packet-iwarp-ddp-rdmap.h \
1621 packet-logotypecertextn.h \
1632 packet-mpeg-descriptor.h \
1634 packet-mpeg-sect.h \
1654 packet-opensafety.h \
1656 packet-osi-options.h \
1661 packet-pcap_pktdata.h \
1667 packet-pkix1explicit.h \
1668 packet-pkix1implicit.h \
1670 packet-pkixproxy.h \
1671 packet-pkixqualified.h \
1676 packet-ppi-geolocation-common.h \
1682 packet-pw-common.h \
1695 packet-rmt-common.h \
1705 packet-rtp-events.h \
1713 packet-s7comm_szl_ids.h \
1730 packet-smb-browse.h \
1731 packet-smb-common.h \
1732 packet-smb-mailslot.h \
1734 packet-smb-sidsnooping.h \
1743 packet-ssl-utils.h \
1745 packet-stat-notify.h \
1763 packet-ubertooth.h \
1773 packet-windows-common.h \
1774 packet-wlancertextn.h \
1780 packet-x11-keysymdef.h \
1782 x11-declarations.h \
1783 x11-register-info.h \
1784 x11-extension-implementation.h \
1785 x11-extension-errors.h \
1786 x11-glx-render-enum.h \
1793 packet-xmpp-conference.h \
1794 packet-xmpp-core.h \
1795 packet-xmpp-gtalk.h \
1797 packet-xmpp-jingle.h \
1798 packet-xmpp-other.h \
1799 packet-xmpp-utils.h \
1807 packet-zbee-security.h \
1812 $(GENERATED_HEADER_FILES) \
1813 $(CUSTOM_HEADER_FILES)
1815 # Dissector helpers. They're included in the source files in this
1816 # directory, but they're not dissectors themselves, i.e. they're not
1817 # used to generate "register.c").
1818 DISSECTOR_SUPPORT_SRC = \
1819 packet-dcerpc-nt.c \
1823 ALL_DISSECTORS_SRC = \
1825 $(FILE_DISSECTOR_SRC) \
1826 $(PIDL_DISSECTOR_SRC) \
1827 $(ASN1_DISSECTOR_SRC) \
1828 $(DIRTY_ASN1_DISSECTOR_SRC) \
1829 $(CORBA_IDL_DISSECTOR_SRC) \
1830 $(DIRTY_CORBA_IDL_DISSECTOR_SRC)
1832 noinst_LTLIBRARIES = libdirtydissectors.la libfiledissectors.la libdissectors.la
1834 libdirtydissectors_la_SOURCES = \
1835 $(DIRTY_ASN1_DISSECTOR_SRC) \
1836 $(DIRTY_CORBA_IDL_DISSECTOR_SRC)
1838 libdirtydissectors_la_CFLAGS = $(GENERATED_CFLAGS)
1840 libfiledissectors_la_SOURCES = \
1841 $(FILE_DISSECTOR_SRC)
1843 libdissectors_la_SOURCES = \
1845 $(ASN1_DISSECTOR_SRC) \
1846 $(CORBA_IDL_DISSECTOR_SRC) \
1847 $(PIDL_DISSECTOR_SRC) \
1848 $(DISSECTOR_SUPPORT_SRC)
1850 # this target needed for distribution only
1852 $(DISSECTOR_INCLUDES) \
1853 $(FILE_DISSECTOR_INCLUDES)
1855 # include asn1 in the source tarball. But nothing to build...
1856 DIST_SUBDIRS = asn1 dcerpc
1863 packet-ncp2222.inc \
1867 CMakeListsCustom.txt.example \
1870 packet-ncp2222.c : $(top_srcdir)/tools/ncp2222.py
1871 $(AM_V_python)$(PYTHON) $(top_srcdir)/tools/ncp2222.py -o $@
1873 # Target to rebuild the X11 dissector header files.
1874 # See README.X11 before using this--it requires the xcb and mesa source.
1875 x11-dissector: $(top_srcdir)/tools/process-x11-fields.pl $(srcdir)/x11-fields $(top_srcdir)/tools/process-x11-xcb.pl
1876 $(PERL) $(top_srcdir)/tools/process-x11-fields.pl $(srcdir) < $(srcdir)/x11-fields
1877 $(PERL) $(top_srcdir)/tools/process-x11-xcb.pl $(srcdir)
1880 # Build register.c, which contains a function register_all_protocols()
1881 # that calls the register routines for all protocols and a function
1882 # register_all_protocol_handoffs() that calls the handoff registration
1883 # routines for all protocols.
1885 # We do this by scanning through sources. If that turns out to be too slow,
1886 # maybe we could just require every .o file to have an register routine
1887 # of a given name (packet-aarp.o -> proto_register_aarp, etc.).
1889 # Formatting conventions: The name of the proto_register_* routines an
1890 # proto_reg_handoff_* routines must start in column zero, or must be
1891 # preceded only by "void " starting in column zero, and must not be
1894 # ALL_DISSECTORS_SRC is assumed to have all the files that need to be scanned.
1896 # For some unknown reason, having a big "for" loop in the Makefile
1897 # to scan all the files doesn't work with some "make"s; they seem to
1898 # pass only the first few names in the list to the shell, for some
1901 # Therefore, we use a script to generate the register.c file.
1902 # The first argument is the directory in which the source files live.
1903 # The second argument is "dissectors", to indicate that we should build
1904 # a register.c file for libwireshark.
1905 # All subsequent arguments are the files to scan.
1907 register.c: $(plugin_src) $(ALL_DISSECTORS_SRC) Custom.common \
1908 $(top_srcdir)/tools/make-dissector-reg.py
1909 @echo Making register.c ; \
1910 $(PYTHON) $(top_srcdir)/tools/make-dissector-reg.py $(srcdir) \
1911 dissectors $(ALL_DISSECTORS_SRC) ;
1913 # Currently register.c can be included in the distribution because
1914 # we always build all protocol dissectors. We used to have to check
1915 # whether or not to build the snmp dissector. If we again need to
1916 # variably build something, making register.c non-portable, uncomment
1917 # the dist-hook line below.
1919 # Oh, yuk. We don't want to include "register.c" in the distribution, as
1920 # its contents depend on the configuration, and therefore we want it
1921 # to be built when the first "make" is done; however, Automake insists
1922 # on putting *all* source into the distribution.
1924 # We work around this by having a "dist-hook" rule that deletes
1925 # "register.c", so that "dist" won't pick it up.
1928 # @rm -f $(distdir)/register.c
1930 # XXX - We may want to add register-cache.pkl to the distribution at
1931 # some point. It should be portable across architectures.
1935 libdirtydissectors.a \
1936 libdirtydissectors.la \
1938 register-cache.pkl \
1939 $(GENERATED_HEADER_FILES) \
1942 MAINTAINERCLEANFILES = \
1943 $(GENERATED_FILES) \
1947 $(PERL) $(top_srcdir)/tools/checkAPIs.pl -g abort -g termoutput -build \
1948 -sourcedir=$(srcdir) \
1949 $(ALL_DISSECTORS_SRC) $(DISSECTOR_INCLUDES) $(DISSECTOR_SUPPORT_SRC)