Add Cmake stuff to the source distribution so more people can try it out.
[obnox/wireshark/wip.git] / plugins / docsis / Makefile.am
1 # Makefile.am
2 # Automake file for DOCSIS plugin
3 #
4 # $Id$
5 #
6 # Wireshark - Network traffic analyzer
7 # By Gerald Combs <gerald@wireshark.org>
8 # Copyright 1998 Gerald Combs
9 #
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.
14 #
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.
19 #
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., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
23 #
24
25 INCLUDES = -I$(top_srcdir) -I$(includedir)
26
27 include Makefile.common
28
29 if HAVE_WARNINGS_AS_ERRORS
30 AM_CFLAGS = -Werror
31 endif
32
33 plugindir = @plugindir@
34
35 plugin_LTLIBRARIES = docsis.la
36 docsis_la_SOURCES = \
37         plugin.c \
38         moduleinfo.h \
39         $(DISSECTOR_SRC) \
40         $(DISSECTOR_INCLUDES)
41 docsis_la_LDFLAGS = -module -avoid-version
42 docsis_la_LIBADD = @PLUGIN_LIBS@
43
44 # Libs must be cleared, or else libtool won't create a shared module.
45 # If your module needs to be linked against any particular libraries,
46 # add them here.
47 LIBS =
48
49 #
50 # Build plugin.c, which contains the plugin version[] string, a
51 # function plugin_register() that calls the register routines for all
52 # protocols, and a function plugin_reg_handoff() that calls the handoff
53 # registration routines for all protocols.
54 #
55 # We do this by scanning sources.  If that turns out to be too slow,
56 # maybe we could just require every .o file to have an register routine
57 # of a given name (packet-aarp.o -> proto_register_aarp, etc.).
58 #
59 # Formatting conventions:  The name of the proto_register_* routines an
60 # proto_reg_handoff_* routines must start in column zero, or must be
61 # preceded only by "void " starting in column zero, and must not be
62 # inside #if.
63 #
64 # DISSECTOR_SRC is assumed to have all the files that need to be scanned.
65 #
66 # For some unknown reason, having a big "for" loop in the Makefile
67 # to scan all the files doesn't work with some "make"s; they seem to
68 # pass only the first few names in the list to the shell, for some
69 # reason.
70 #
71 # Therefore, we have a script to generate the plugin.c file.
72 # The shell script runs slowly, as multiple greps and seds are run
73 # for each input file; this is especially slow on Windows.  Therefore,
74 # if Python is present (as indicated by PYTHON being defined), we run
75 # a faster Python script to do that work instead.
76 #
77 # The first argument is the directory in which the source files live.
78 # The second argument is "plugin", to indicate that we should build
79 # a plugin.c file for a plugin.
80 # All subsequent arguments are the files to scan.
81 #
82 plugin.c: $(DISSECTOR_SRC) $(top_srcdir)/tools/make-dissector-reg \
83     $(top_srcdir)/tools/make-dissector-reg.py
84         @if test -n "$(PYTHON)"; then \
85                 echo Making plugin.c with python ; \
86                 $(PYTHON) $(top_srcdir)/tools/make-dissector-reg.py $(srcdir) \
87                     plugin $(DISSECTOR_SRC) ; \
88         else \
89                 echo Making plugin.c with shell script ; \
90                 $(top_srcdir)/tools/make-dissector-reg $(srcdir) \
91                     $(plugin_src) plugin $(DISSECTOR_SRC) ; \
92         fi
93
94 #
95 # Currently plugin.c can be included in the distribution because
96 # we always build all protocol dissectors. We used to have to check
97 # whether or not to build the snmp dissector. If we again need to
98 # variably build something, making plugin.c non-portable, uncomment
99 # the dist-hook line below.
100 #
101 # Oh, yuk.  We don't want to include "plugin.c" in the distribution, as
102 # its contents depend on the configuration, and therefore we want it
103 # to be built when the first "make" is done; however, Automake insists
104 # on putting *all* source into the distribution.
105 #
106 # We work around this by having a "dist-hook" rule that deletes
107 # "plugin.c", so that "dist" won't pick it up.
108 #
109 #dist-hook:
110 #       @rm -f $(distdir)/plugin.c
111
112 CLEANFILES = \
113         docsis \
114         *~
115
116 MAINTAINERCLEANFILES = \
117         Makefile.in     \
118         plugin.c
119
120 EXTRA_DIST = \
121         Makefile.common         \
122         Makefile.nmake          \
123         moduleinfo.nmake        \
124         plugin.rc.in            \
125         README                  \
126         CMakeLists.txt
127
128 checkapi:
129         $(PERL) $(top_srcdir)/tools/checkAPIs.pl -g abort -g termoutput $(DISSECTOR_SRC) $(DISSECTOR_INCLUDES)