2 # Automake file for the libwireshark library
3 # (EPAN is a historical name; it stands for Ethereal Protocol ANalyzer
6 # Wireshark - Network traffic analyzer
7 # By Gerald Combs <gerald@wireshark.org>
8 # Copyright 1998 Gerald Combs
10 # This program is free software; you can redistribute it and/or
11 # modify it under the terms of the GNU General Public License
12 # as published by the Free Software Foundation; either version 2
13 # of the License, or (at your option) any later version.
15 # This program is distributed in the hope that it will be useful,
16 # but WITHOUT ANY WARRANTY; without even the implied warranty of
17 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 # GNU General Public License for more details.
20 # You should have received a copy of the GNU General Public License
21 # along with this program; if not, write to the Free Software
22 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
24 include $(top_srcdir)/Makefile.am.inc
27 wslua_lib = wslua/libwslua.la
33 wslua_dist_dir = wslua
36 SUBDIRS = compress crypt ftypes dfilter dissectors wmem $(wslua_dir)
38 DIST_SUBDIRS = $(SUBDIRS) $(wslua_dist_dir)
40 AM_CPPFLAGS = $(INCLUDEDIRS) -I$(builddir)/wslua $(WS_CPPFLAGS) \
41 $(GLIB_CFLAGS) $(LUA_CFLAGS) $(LIBGNUTLS_CFLAGS) \
42 $(LIBGCRYPT_CFLAGS) $(LIBSMI_CFLAGS) $(LIBGEOIP_CFLAGS) \
43 $(LZ4_CFLAGS) $(KRB5_CFLAGS) $(SNAPPY_CFLAGS) $(LIBXML2_CFLAGS)
45 noinst_LTLIBRARIES = libwireshark_generated.la libwireshark_asmopt.la
46 lib_LTLIBRARIES = libwireshark.la
56 capture_dissectors.c \
63 conversation_table.c \
81 filter_expressions.c \
84 frame_data_sequence.c \
135 # We distribute Lemon and rdps.py with Wireshark, so we don't distribute the
136 # files they produce.
138 NODIST_LIBWIRESHARK_GENERATED_C_FILES = \
142 NODIST_LIBWIRESHARK_GENERATED_HEADER_FILES = \
146 # These don't get removed on "make distclean", as the tools we use to
147 # generate them aren't part of the Wireshark distribution, and aren't
148 # tools assumed to be present for any system capable of compiling
149 # from a tarball (e.g., make and a C compiler are assumed to be present,
152 LIBWIRESHARK_GENERATED_C_FILES = \
159 LIBWIRESHARK_GENERATED_HEADER_FILES = \
166 LIBWIRESHARK_GENERATED_SRC = \
167 $(LIBWIRESHARK_GENERATED_C_FILES) \
168 $(NODIST_LIBWIRESHARK_GENERATED_C_FILES)
170 LIBWIRESHARK_ALL_SRC = \
171 $(LIBWIRESHARK_SRC) \
172 $(LIBWIRESHARK_GENERATED_SRC)
174 LIBWIRESHARK_INCLUDES = \
187 capture_dissectors.h \
196 conversation_debug.h \
197 conversation_table.h \
207 dissector_filters.h \
213 eapol_keydes_types.h \
225 filter_expressions.h \
228 frame_data_sequence.h \
269 slow_protocol_subtypes.h \
297 #Since code generated by lex may trigger gcc warnings, we are now generating two
298 #libraries. A single library is generated with the lex code without the barrier
299 #"stop on warning". An other library is generated from the remaining source
300 #files with the "stop on warning" barrier.
301 libwireshark_la_SOURCES = \
302 $(LIBWIRESHARK_SRC) \
303 $(LIBWIRESHARK_INCLUDES) \
306 libwireshark_la_CPPFLAGS = $(AM_CPPFLAGS) -DWS_BUILD_DLL
308 # http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html
309 libwireshark_la_LDFLAGS = -version-info 0:0:0 @LDFLAGS_BIGSHAREDLIB@ @LDFLAGS_SHAREDLIB@
312 # Add the object files for missing routines, if any.
314 libwireshark_la_LIBADD = \
315 libwireshark_generated.la \
316 libwireshark_asmopt.la \
317 crypt/libairpdcap.la \
318 ftypes/libftypes.la \
319 dfilter/libdfilter.la \
320 dissectors/libdissectors.la \
321 dissectors/libdirtydissectors.la \
322 dissectors/libfiledissectors.la \
325 ${top_builddir}/wiretap/libwiretap.la \
326 ${top_builddir}/wsutil/libwsutil.la \
340 libwireshark_la_DEPENDENCIES = \
341 libwireshark_generated.la \
342 compress/liblzxpress.la \
343 libwireshark_asmopt.la \
344 crypt/libairpdcap.la \
345 ftypes/libftypes.la \
346 dfilter/libdfilter.la \
347 dissectors/libdissectors.la \
348 dissectors/libdirtydissectors.la \
351 ${top_builddir}/wsutil/libwsutil.la \
352 ${top_builddir}/wiretap/libwiretap.la
354 libwireshark_generated_la_SOURCES = \
355 $(LIBWIRESHARK_GENERATED_C_FILES) \
356 $(LIBWIRESHARK_GENERATED_HEADER_FILES)
358 nodist_libwireshark_generated_la_SOURCES = \
359 $(NODIST_LIBWIRESHARK_GENERATED_C_FILES) \
360 $(NODIST_LIBWIRESHARK_GENERATED_HEADER_FILES)
362 libwireshark_generated_la_CFLAGS = $(GENERATED_CFLAGS)
364 # code optionally implemented in assembler
365 # only C source available for platforms other than Win32
366 libwireshark_asmopt_la_SOURCES = \
369 asm_utils_win32_x86.asm
389 libwireshark_generated.a \
390 libwireshark_generated.la \
391 libwireshark_asmopt.a \
392 libwireshark_asmopt.la \
396 $(NODIST_LIBWIRESHARK_GENERATED_C_FILES) \
397 $(NODIST_LIBWIRESHARK_GENERATED_HEADER_FILES) \
401 MAINTAINERCLEANFILES = \
402 $(LIBWIRESHARK_GENERATED_C_FILES) \
403 $(LIBWIRESHARK_GENERATED_HEADER_FILES) \
407 $(LIBWIRESHARK_GENERATED_HEADER_FILES) \
408 $(NODIST_LIBWIRESHARK_GENERATED_HEADER_FILES) \
411 EXTRA_PROGRAMS = reassemble_test tvbtest oids_test exntest
413 reassemble_test_LDADD = \
428 exntest_SOURCES = exntest.c except.c
430 exntest_LDADD = $(GLIB_LIBS)
432 test-programs: $(EXTRA_PROGRAMS)
435 diam_dict_lex.h: diam_dict.c
437 dtd_parse_lex.h: dtd_parse.c
439 dtd_preparse_lex.h: dtd_preparse.c
441 radius_dict_lex.h: radius_dict.c
443 uat_load_lex.h: uat_load.c
445 dtd_grammar.h: dtd_grammar.c
446 dtd_grammar.c : $(LEMON) $(lemon_srcdir)/lempar.c $(srcdir)/dtd_grammar.lemon
447 $(AM_V_LEMON)$(LEMON) T=$(lemon_srcdir)/lempar.c $(srcdir)/dtd_grammar.lemon
449 ws_version_info.c: $(top_srcdir)/ws_version_info.c
450 $(AM_V_LN_S)$(LN_S) $<
452 tvbtest.o exntest.o oids_test.o: exceptions.h
455 $(PERL) $(srcdir)/../tools/make-sminmpec.pl
457 ps.c: print.ps $(top_srcdir)/tools/rdps.py
458 $(AM_V_python)$(PYTHON) $(top_srcdir)/tools/rdps.py $(srcdir)/print.ps ps.c
463 -include ../plugins/Custom.make
465 ../plugins/docsis/packet-docsis.c \
466 ../plugins/docsis/packet-macmgmt.c \
467 ../plugins/docsis/packet-tlv.c \
468 ../plugins/docsis/packet-vendor.c \
469 ../plugins/docsis/plugin.c \
470 ../plugins/easy_codec/codec-g722.c \
471 ../plugins/easy_codec/codec-g7231.c \
472 ../plugins/easy_codec/codec-g729a.c \
473 ../plugins/easy_codec/easy_codec_plugin.c \
474 ../plugins/ethercat/packet-ams.c \
475 ../plugins/ethercat/packet-ecatmb.c \
476 ../plugins/ethercat/packet-esl.c \
477 ../plugins/ethercat/packet-ethercat-datagram.c \
478 ../plugins/ethercat/packet-ethercat-frame.c \
479 ../plugins/ethercat/packet-ioraw.c \
480 ../plugins/ethercat/packet-nv.c \
481 ../plugins/ethercat/plugin.c \
482 ../plugins/gryphon/packet-gryphon.c \
483 ../plugins/gryphon/plugin.c \
484 ../plugins/irda/packet-ircomm.c \
485 ../plugins/irda/packet-irda.c \
486 ../plugins/irda/packet-sir.c \
487 ../plugins/irda/plugin.c \
488 ../plugins/m2m/packet-m2m.c \
489 ../plugins/m2m/plugin.c \
490 ../plugins/m2m/wimax_tlv.c \
491 ../plugins/Makefile.am.inc \
492 ../plugins/mate/mate_grammar.c \
493 ../plugins/mate/mate_parser.c \
494 ../plugins/mate/mate_runtime.c \
495 ../plugins/mate/mate_setup.c \
496 ../plugins/mate/mate_util.c \
497 ../plugins/mate/packet-mate.c \
498 ../plugins/mate/plugin.c \
499 ../plugins/opcua/opcua_application_layer.c \
500 ../plugins/opcua/opcua.c \
501 ../plugins/opcua/opcua_complextypeparser.c \
502 ../plugins/opcua/opcua_enumparser.c \
503 ../plugins/opcua/opcua_extensionobjecttable.c \
504 ../plugins/opcua/opcua_hfindeces.c \
505 ../plugins/opcua/opcua_security_layer.c \
506 ../plugins/opcua/opcua_serviceparser.c \
507 ../plugins/opcua/opcua_servicetable.c \
508 ../plugins/opcua/opcua_simpletypes.c \
509 ../plugins/opcua/opcua_statuscode.c \
510 ../plugins/opcua/opcua_transport_layer.c \
511 ../plugins/opcua/plugin.c \
512 ../plugins/pluginifdemo/pluginifdemo.c \
513 ../plugins/profinet/packet-dcerpc-pn-io.c \
514 ../plugins/profinet/packet-dcom-cba-acco.c \
515 ../plugins/profinet/packet-dcom-cba.c \
516 ../plugins/profinet/packet-pn.c \
517 ../plugins/profinet/packet-pn-dcp.c \
518 ../plugins/profinet/packet-pn-mrp.c \
519 ../plugins/profinet/packet-pn-mrrt.c \
520 ../plugins/profinet/packet-pn-ptcp.c \
521 ../plugins/profinet/packet-pn-rt.c \
522 ../plugins/profinet/packet-pn-rtc-one.c \
523 ../plugins/profinet/plugin.c \
524 ../plugins/stats_tree/pinfo_stats_tree.c \
525 ../plugins/stats_tree/stats_tree_plugin.c \
526 ../plugins/tpg/packet-http.c \
527 ../plugins/transum/decoders.c \
528 ../plugins/transum/extractors.c \
529 ../plugins/transum/packet-transum.c \
530 ../plugins/transum/plugin.c \
531 ../plugins/unistim/packet-unistim.c \
532 ../plugins/unistim/plugin.c \
533 ../plugins/wimaxasncp/packet-wimaxasncp.c \
534 ../plugins/wimaxasncp/plugin.c \
535 ../plugins/wimaxasncp/wimaxasncp_dict.c \
536 ../plugins/wimax/crc.c \
537 ../plugins/wimax/crc_data.c \
538 ../plugins/wimax/mac_hd_generic_decoder.c \
539 ../plugins/wimax/mac_hd_type1_decoder.c \
540 ../plugins/wimax/mac_hd_type2_decoder.c \
541 ../plugins/wimax/mac_mgmt_msg_decoder.c \
542 ../plugins/wimaxmacphy/packet-wimaxmacphy.c \
543 ../plugins/wimaxmacphy/plugin.c \
544 ../plugins/wimax/msg_aas_beam.c \
545 ../plugins/wimax/msg_aas_fbck.c \
546 ../plugins/wimax/msg_arq.c \
547 ../plugins/wimax/msg_clk_cmp.c \
548 ../plugins/wimax/msg_dcd.c \
549 ../plugins/wimax/msg_dlmap.c \
550 ../plugins/wimax/msg_dreg.c \
551 ../plugins/wimax/msg_dsa.c \
552 ../plugins/wimax/msg_dsc.c \
553 ../plugins/wimax/msg_dsd.c \
554 ../plugins/wimax/msg_dsx_rvd.c \
555 ../plugins/wimax/msg_fpc.c \
556 ../plugins/wimax/msg_pkm.c \
557 ../plugins/wimax/msg_pmc.c \
558 ../plugins/wimax/msg_prc_lt_ctrl.c \
559 ../plugins/wimax/msg_reg_req.c \
560 ../plugins/wimax/msg_reg_rsp.c \
561 ../plugins/wimax/msg_rep.c \
562 ../plugins/wimax/msg_res_cmd.c \
563 ../plugins/wimax/msg_rng_req.c \
564 ../plugins/wimax/msg_rng_rsp.c \
565 ../plugins/wimax/msg_sbc.c \
566 ../plugins/wimax/msg_ucd.c \
567 ../plugins/wimax/msg_ulmap.c \
568 ../plugins/wimax/packet-wmx.c \
569 ../plugins/wimax/plugin.c \
570 ../plugins/wimax/wimax_cdma_code_decoder.c \
571 ../plugins/wimax/wimax_compact_dlmap_ie_decoder.c \
572 ../plugins/wimax/wimax_compact_ulmap_ie_decoder.c \
573 ../plugins/wimax/wimax_fch_decoder.c \
574 ../plugins/wimax/wimax_ffb_decoder.c \
575 ../plugins/wimax/wimax_hack_decoder.c \
576 ../plugins/wimax/wimax_harq_map_decoder.c \
577 ../plugins/wimax/wimax_pdu_decoder.c \
578 ../plugins/wimax/wimax_phy_attributes_decoder.c \
579 ../plugins/wimax/wimax_tlv.c \
580 ../plugins/wimax/wimax_utils.c
586 endif # ENABLE_STATIC
595 $(AM_V_GEN)$(DOXYGEN) doxygen.cfg
598 wsar_html: doxygen.cfg ../doxygen_global.cfg
600 (umask 022 ; $(DOXYGEN) doxygen.cfg)
603 # ABI compliance checker can be obtained from
604 # http://ispras.linux-foundation.org/index.php/ABI_compliance_checker
605 # Checked using version 1.21.12
606 # TODO: fix wrong headers and select ones providing external API
607 dumpabi-libwireshark: all abi-descriptor.xml
608 rm -rf abi-check-headers abi_dumps .libs/*.abi.tar.gz
609 mkdir abi-check-headers
610 cp ../config.h ../register.h abi-check-headers/
611 mkdir abi-check-headers/epan
612 cp *.h abi-check-headers/epan
613 mkdir abi-check-headers/crypt
614 cp crypt/*.h abi-check-headers/crypt
615 mkdir abi-check-headers/compress
616 cp compress/*.h abi-check-headers/compress
617 mkdir abi-check-headers/dfilter
618 cp dfilter/*.h ../tools/lemon/cppmagic.h abi-check-headers/dfilter
619 mkdir abi-check-headers/dissectors
620 cp dissectors/*.h abi-check-headers/dissectors
622 abi-check-headers/*/*_lex.h \
623 abi-check-headers/dissectors/x11-extension-implementation.h \
624 abi-check-headers/dissectors/x11-glx-render-enum.h \
625 abi-check-headers/dissectors/x11-register-info.h \
626 abi-check-headers/dissectors/packet-lb* \
627 abi-check-headers/dissectors/packet-idmp.h
628 mkdir abi-check-headers/ftypes
629 cp ftypes/*.h abi-check-headers/ftypes
630 mkdir abi-check-headers/wmem
631 cp wmem/*.h abi-check-headers/wmem
632 abi-compliance-checker -log-path abi_logs/log.txt -l libwireshark -v1 `readlink .libs/libwireshark.so | sed 's/.*\.so\.//'` \
633 -relpath $(abs_srcdir) -dump-abi abi-descriptor.xml || \
635 cp -f abi_dumps/libwireshark/libwireshark_* .libs/
636 cd .libs && ln -sf libwireshark_*.abi.tar.gz libwireshark.abi.tar.gz
638 maintainer-clean-local: clean-dumpabi-libwireshark
640 .PHONY: clean-dumpabi-libwireshark
642 clean-dumpabi-libwireshark:
643 rm -rf abi-check-headers abi_dumps .libs/*.abi.tar.gz abi_logs abi-descriptor.xml
646 $(AM_V_GEN)$(PERL) $(top_srcdir)/tools/checkAPIs.pl -g termoutput -build \
647 -sourcedir=$(srcdir) \