filter out wlua_plugin_list from libwireshark.sym when compiling without Lua
[obnox/wireshark/wip.git] / epan / Makefile.am
index 9851b3e859bab2a7c779efde57a3c081169296a3..01080128be0bd249baa056b09a442691540fd182 100644 (file)
 # Wireshark - Network traffic analyzer
 # By Gerald Combs <gerald@wireshark.org>
 # Copyright 1998 Gerald Combs
-# 
+#
 # This program is free software; you can redistribute it and/or
 # modify it under the terms of the GNU General Public License
 # as published by the Free Software Foundation; either version 2
 # of the License, or (at your option) any later version.
-# 
+#
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 # GNU General Public License for more details.
-# 
+#
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 
+include ../Makefile.am.inc
 
 if HAVE_LIBLUA
 wslua_lib = wslua/libwslua.la
 wslua_dir = wslua
-wslua_dist_dir = 
+wslua_dist_dir =
+wslua_filter_symbols = 
 else            # HAVE_LIBLUA
 wslua_lib =
 wslua_dir =
 wslua_dist_dir = wslua
+wslua_filter_symbols = /^wlua_plugin_list$$/{next;};
 endif           # HAVE_LIBLUA
 
+if HAVE_LIBPY
+wspython_lib = wspython/libwspython.la
+wspython_dir = wspython
+wspython_dist_dir =
+py_dissectors_dir = -DPYTHON_DIR=\"@pythondir@\"
+else
+wspython_lib =
+wspython_dir =
+wspython_dist_dir = wspython
+py_dissectors_dir = -DPYTHONDIR=
+endif
 
-SUBDIRS = crypt ftypes dfilter dissectors $(wslua_dir)
+SUBDIRS = crc crypt ftypes dfilter dissectors $(wslua_dir) $(wspython_dir)
 
-DIST_SUBDIRS = $(SUBDIRS) $(wslua_dist_dir)
-
-# EPAN will eventually be a shared library. While I move source code around,
-# however, it is an archive library.
+DIST_SUBDIRS = $(SUBDIRS) $(wslua_dist_dir) $(wspython_dist_dir)
 
 ACLOCAL_AMFLAGS = `../aclocal-flags`
 
+noinst_LTLIBRARIES = libwireshark_generated.la libwireshark_asmopt.la
 lib_LTLIBRARIES = libwireshark.la
-libwireshark_la_LDFLAGS = -version-info 0:1:0 @LDFLAGS_SHAREDLIB@
+libwireshark_la_LDFLAGS = -version-info 0:1:0 -export-symbols libwireshark.sym @LDFLAGS_SHAREDLIB@
 
 include Makefile.common
 
 INCLUDES = -I$(srcdir)/.. -I$(srcdir)/$(LEMON) @LUA_INCLUDES@ \
-       $(LIBGNUTLS_CFLAGS) $(LIBGCRYPT_CFLAGS)
+       $(LIBGNUTLS_CFLAGS) $(LIBGCRYPT_CFLAGS) $(LIBSMI_CFLAGS) \
+       $(LIBGEOIP_CFLAGS)
+
 
+if HAVE_WARNINGS_AS_ERRORS
+AM_NON_GENERATED_CFLAGS = -Werror
+endif
+
+#Since code generated by lex may trigger gcc warnings, we are now generating two
+#libraries.  A single library is generated with the lex code without the barrier
+#"stop on warning". An other library is generated from the remaining source
+#files with the "stop on warning" barrier.
 libwireshark_la_SOURCES = \
        $(LIBWIRESHARK_SRC)     \
        $(LIBWIRESHARK_INCLUDES)
+libwireshark_la_CFLAGS = $(AM_NON_GENERATED_CFLAGS) $(py_dissectors_dir)
+
+libwireshark_generated_la_SOURCES = \
+       $(LIBWIRESHARK_GENERATED_SRC) \
+       $(LIBWIRESHARK_GENERATED_INCLUDES)
 
-EXTRA_libwireshark_la_SOURCES =        \
-       g_ascii_strtoull.c      \
-       g_ascii_strtoull.h      \
-       inet_aton.c             \
-       inet_pton.c             \
-       inet_ntop.c             \
-       inet_aton.h             \
-       inet_v6defs.h
+# code optionally implemented in assembler
+# only C source available for platforms other than Win32
+libwireshark_asmopt_la_SOURCES = \
+       asm_utils.c             \
+       asm_utils.h             \
+       asm_utils_win32_x86.asm
 
 EXTRA_DIST = \
-       dtd_grammar.lemon \
-       dtd_parse.l \
-       dtd_preparse.l \
-       enterprise-numbers  \
+       diam_dict.l             \
+       dtd_grammar.lemon       \
+       dtd_parse.l             \
+       dtd_parse.h             \
+       dtd_preparse.l          \
+       enterprise-numbers      \
        libwireshark.def        \
-       Makefile.common \
-       Makefile.nmake  \
-       make-sminmpec.pl \
-       radius_dict.l   \
-       tvbtest.c       \
-       reassemble_test.c \
-       uat_load.l      \
-       exntest.c       \
-       doxygen.cfg.in
+       libwireshark.vcproj     \
+       Makefile.common         \
+       Makefile.nmake          \
+       radius_dict.l           \
+       tvbtest.c               \
+       reassemble_test.c       \
+       uat_load.l              \
+       exntest.c               \
+       doxygen.cfg.in          \
+       CMakeLists.txt
 
 CLEANFILES = \
-       libwireshark.a          \
-       libwireshark.la         \
+       libwireshark.a                  \
+       libwireshark.la                 \
+       libwireshark_generated.a        \
+       libwireshark_generated.la       \
+       libwireshark_asmopt.a           \
+       libwireshark_asmopt.la          \
+       libwireshark.sym                \
        *~
 
 DISTCLEANFILES = \
-       dtd_grammar.out         \
-       dtd_grammar.c           \
-       dtd_grammar.h           \
-       dtd_parse.c             \
-       dtd_preparse.c          \
-       radius_dict.c
-       
+       $(LIBWIRESHARK_DISTCLEAN_GENERATED_SRC) \
+       $(LIBWIRESHARK_DISTCLEAN_GENERATED_INCLUDES) \
+       dtd_grammar.out
 
 MAINTAINERCLEANFILES = \
+       $(LIBWIRESHARK_NODISTCLEAN_GENERATED_SRC) \
+       $(LIBWIRESHARK_NODISTCLEAN_GENERATED_INCLUDES) \
        Makefile.in             \
        sminmpec.c
 
-
 #
 # Add the object files for missing routines, if any.
 #
-libwireshark_la_LIBADD = @G_ASCII_STRTOULL_LO@ @INET_ATON_LO@ @INET_PTON_LO@ @INET_NTOP_LO@ crypt/libairpdcap.la ftypes/libftypes.la dfilter/libdfilter.la dissectors/libdissectors.la $(wslua_lib) @ADNS_LIBS@ @LIBGNUTLS_LIBS@ @LIBICONV@ @KRB5_LIBS@ @SNMP_LIBS@ @SSL_LIBS@ -lm
-libwireshark_la_DEPENDENCIES = @G_ASCII_STRTOULL_LO@ @INET_ATON_LO@ @INET_PTON_LO@ @INET_NTOP_LO@ crypt/libairpdcap.la ftypes/libftypes.la dfilter/libdfilter.la dissectors/libdissectors.la $(wslua_lib)
-
-EXTRA_PROGRAMS = reassemble_test
-reassemble_test_LDADD = $(GLIB_LIBS) libwireshark.la
+libwireshark_la_LIBADD = \
+       libwireshark_generated.la \
+       libwireshark_asmopt.la crc/libcrc.la crypt/libairpdcap.la \
+       ftypes/libftypes.la dfilter/libdfilter.la dissectors/libdissectors.la \
+       dissectors/libdirtydissectors.la $(wslua_lib) $(wspython_lib) @SOCKET_LIBS@ @NSL_LIBS@ \
+       @C_ARES_LIBS@ @ADNS_LIBS@ @LIBGCRYPT_LIBS@ @LIBGNUTLS_LIBS@ \
+       @KRB5_LIBS@ @SSL_LIBS@ @LIBSMI_LDFLAGS@ @GEOIP_LIBS@ \
+       ${top_builddir}/wiretap/libwiretap.la @GLIB_LIBS@ \
+       ${top_builddir}/wsutil/libwsutil.la -lm
+
+libwireshark_la_DEPENDENCIES = \
+       libwireshark_generated.la \
+       libwireshark_asmopt.la crc/libcrc.la crypt/libairpdcap.la \
+       ftypes/libftypes.la dfilter/libdfilter.la dissectors/libdissectors.la \
+       dissectors/libdirtydissectors.la $(wslua_lib) $(wspython_lib) \
+       ${top_builddir}/wsutil/libwsutil.la \
+       ${top_builddir}/wiretap/libwiretap.la \
+       libwireshark.sym
+
+# filter out undefined symbols
+libwireshark.sym: libwireshark.def
+       $(AWK) '/^EXPORTS$$/ {next;};${wslua_filter_symbols}/^[^;]/ { print $$1;}' < $< > $@
+
+#EXTRA_PROGRAMS = reassemble_test
+#reassemble_test_LDADD = $(GLIB_LIBS)
+
+reassemble_test: reassemble_test.o tvbuff.o except.o to_str.o strutil.o emem.o \
+                 reassemble.o
+       $(LINK) $^ $(GLIB_LIBS) -lz
 
-tvbtest: tvbtest.o tvbuff.o except.o strutil.o emem.o
+tvbtest: tvbtest.o tvbuff.o except.o to_str.o strutil.o emem.o
        $(LINK) $^ $(GLIB_LIBS) -lz
 
 exntest: exntest.o except.o
        $(LINK) $^ $(GLIB_LIBS)
 
-radius_dict.c: radius_dict.l
-       $(LEX) $^
+RUNLEX=$(top_srcdir)/tools/runlex.sh
 
-uat_load.c: uat_load.l
-       $(LEX) -ouat_load.c $(srcdir)/uat_load.l
-       
-dtd_parse.c : dtd_parse.l
-       $(LEX) -odtd_parse.c $(srcdir)/dtd_parse.l
+diam_dict_lex.h: diam_dict.c
 
-dtd_preparse.c : dtd_preparse.l
-       $(LEX) -odtd_preparse.c $(srcdir)/dtd_preparse.l
+dtd_parse_lex.h: dtd_parse.c
 
-dtd_grammar.h: dtd_grammar.c
+dtd_preparse_lex.h: dtd_preparse.c
+
+radius_dict_lex.h: radius_dict.c
+
+uat_load_lex.h: uat_load.c
 
 LEMON=../tools/lemon
 
-dtd_grammar.c: dtd_grammar.lemon $(LEMON)/lemon$(EXEEXT)
+dtd_grammar.h: dtd_grammar.c
+
+dtd_grammar.c: $(LEMON)/lemon$(EXEEXT) $(srcdir)/$(LEMON)/lempar.c $(srcdir)/dtd_grammar.lemon
        $(LEMON)/lemon$(EXEEXT) t=$(srcdir)/$(LEMON)/lempar.c $(srcdir)/dtd_grammar.lemon
-       
+
 tvbtest.o exntest.o: exceptions.h
 
-sminmpec.c: enterprise-numbers make-sminmpec.pl
-       $(PERL) $(srcdir)/make-sminmpec.pl $(srcdir)/enterprise-numbers sminmpec.c
+sminmpec.c: enterprise-numbers ../tools/make-sminmpec.pl
+       $(PERL) $(srcdir)/../tools/make-sminmpec.pl $(srcdir)/enterprise-numbers sminmpec.c
 
 if HAVE_PLUGINS
 
 if ENABLE_STATIC
-
+-include ../plugins/Custom.make
 plugin_src = \
-       ../plugins/artnet/packet-artnet.c \
        ../plugins/asn1/packet-asn1.c \
+       ../plugins/docsis/packet-bintrngreq.c \
        ../plugins/docsis/packet-bpkmattr.c \
        ../plugins/docsis/packet-bpkmreq.c \
        ../plugins/docsis/packet-bpkmrsp.c \
@@ -170,18 +224,66 @@ plugin_src = \
        ../plugins/docsis/packet-uccreq.c \
        ../plugins/docsis/packet-uccrsp.c \
        ../plugins/docsis/packet-ucd.c \
-       ../plugins/enttec/packet-enttec.c \
        ../plugins/giop/packet-cosnaming.c \
        ../plugins/giop/packet-coseventcomm.c \
        ../plugins/gryphon/packet-gryphon.c \
+       ../plugins/interlink/packet-interlink.c \
        ../plugins/irda/packet-irda.c \
-       ../plugins/lwres/packet-lwres.c \
-       ../plugins/megaco/packet-megaco.c \
+       ../plugins/m2m/packet-m2m.c \
+       ../plugins/m2m/wimax_tlv.c \
        ../plugins/mgcp/packet-mgcp.c \
-       ../plugins/pcli/packet-pcli.c \
        ../plugins/rdm/packet-rdm.c \
-       ../plugins/rtnet/packet-rtnet.c \
-       ../plugins/v5ua/packet-v5ua.c
+       ../plugins/sercosiii/packet-sercosiii_1v1_at.c \
+       ../plugins/sercosiii/packet-sercosiii_1v1_at_devstat.c \
+       ../plugins/sercosiii/packet-sercosiii_1v1.c \
+       ../plugins/sercosiii/packet-sercosiii_1v1_hp.c \
+       ../plugins/sercosiii/packet-sercosiii_1v1_mdt.c \
+       ../plugins/sercosiii/packet-sercosiii_1v1_mdt_devctrl.c \
+       ../plugins/sercosiii/packet-sercosiii_1v1_mst.c \
+       ../plugins/sercosiii/packet-sercosiii_1v1_svc.c \
+        ../plugins/wimax/crc.c \
+        ../plugins/wimax/crc_data.c \
+        ../plugins/wimax/mac_hd_generic_decoder.c \
+        ../plugins/wimax/mac_hd_type1_decoder.c \
+        ../plugins/wimax/mac_hd_type2_decoder.c \
+        ../plugins/wimax/mac_mgmt_msg_decoder.c \
+        ../plugins/wimax/msg_aas_beam.c \
+        ../plugins/wimax/msg_aas_fbck.c \
+        ../plugins/wimax/msg_arq.c \
+        ../plugins/wimax/msg_clk_cmp.c \
+        ../plugins/wimax/msg_dcd.c \
+        ../plugins/wimax/msg_dlmap.c \
+        ../plugins/wimax/msg_dreg.c \
+        ../plugins/wimax/msg_dsa.c \
+        ../plugins/wimax/msg_dsc.c \
+        ../plugins/wimax/msg_dsd.c \
+        ../plugins/wimax/msg_dsx_rvd.c \
+        ../plugins/wimax/msg_fpc.c \
+        ../plugins/wimax/msg_pkm.c \
+        ../plugins/wimax/msg_pmc.c \
+        ../plugins/wimax/msg_prc_lt_ctrl.c \
+        ../plugins/wimax/msg_reg_req.c \
+        ../plugins/wimax/msg_reg_rsp.c \
+        ../plugins/wimax/msg_rep.c \
+        ../plugins/wimax/msg_res_cmd.c \
+        ../plugins/wimax/msg_rng_req.c \
+        ../plugins/wimax/msg_rng_rsp.c \
+        ../plugins/wimax/msg_sbc.c \
+        ../plugins/wimax/msg_ucd.c \
+        ../plugins/wimax/msg_ulmap.c \
+        ../plugins/wimax/packet-wmx.c \
+        ../plugins/wimax/wimax_cdma_code_decoder.c \
+        ../plugins/wimax/wimax_compact_dlmap_ie_decoder.c \
+        ../plugins/wimax/wimax_compact_ulmap_ie_decoder.c \
+        ../plugins/wimax/wimax_fch_decoder.c \
+        ../plugins/wimax/wimax_ffb_decoder.c \
+        ../plugins/wimax/wimax_hack_decoder.c \
+        ../plugins/wimax/wimax_harq_map_decoder.c \
+        ../plugins/wimax/wimax_pdu_decoder.c \
+        ../plugins/wimax/wimax_phy_attributes_decoder.c \
+        ../plugins/wimax/wimax_tlv.c \
+        ../plugins/wimax/wimax_utils.c
+
 
 else           # ENABLE_STATIC
 
@@ -199,3 +301,5 @@ if HAVE_DOXYGEN
        $(DOXYGEN) doxygen.cfg
 endif          # HAVE_DOXYGEN
 
+checkapi:
+       $(PERL) ../tools/checkAPIs.pl -g termoutput $(LIBWIRESHARK_SRC)