aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/docsis
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2006-04-19 09:26:16 +0000
committerGuy Harris <guy@alum.mit.edu>2006-04-19 09:26:16 +0000
commit008d0d6c0062c83706d53ce43e71402888ce5e44 (patch)
treeaf8470060a1a23c6a878f26f9c12b5578a95e9b3 /plugins/docsis
parent2301071bda6f0e18ee24bb2a017c14faa88f3fdc (diff)
Have make-reg-dotc and make-reg-dotc.py generate either a register.c for
libetheral or a plugin.c for a plugin, rather than having plugin.c for a dissector call the routines from register.c. This means we don't ahve multiple register_all_protocols() and register_all_protocol_handoffs() routines, and that all the plugin boilerplate is automatically generated. svn path=/trunk/; revision=17903
Diffstat (limited to 'plugins/docsis')
-rw-r--r--plugins/docsis/Makefile.am47
-rw-r--r--plugins/docsis/plugin.c59
2 files changed, 26 insertions, 80 deletions
diff --git a/plugins/docsis/Makefile.am b/plugins/docsis/Makefile.am
index d653db540f..d92815478d 100644
--- a/plugins/docsis/Makefile.am
+++ b/plugins/docsis/Makefile.am
@@ -31,7 +31,6 @@ plugindir = @plugindir@
plugin_LTLIBRARIES = docsis.la
docsis_la_SOURCES = \
plugin.c \
- register.c \
moduleinfo.h \
$(DISSECTOR_SRC) \
$(DISSECTOR_INCLUDES)
@@ -44,57 +43,63 @@ docsis_la_LIBADD = @PLUGIN_LIBS@
LIBS =
#
-# Build "register.c", which contains a function "register_all_protocols()"
-# that calls the register routines for all protocols.
+# Build plugin.c, which contains the plugin version[] string, a
+# function plugin_register() that calls the register routines for all
+# protocols, and a function plugin_reg_handoff() that calls the handoff
+# registration routines for all protocols.
#
# We do this by scanning sources. If that turns out to be too slow,
# maybe we could just require every .o file to have an register routine
# of a given name (packet-aarp.o -> proto_register_aarp, etc.).
#
-# Formatting conventions: The name of the proto_register_* routines must
-# start in column zero, or must be preceded only by "void " starting in
-# column zero, and must not be inside #if.
+# Formatting conventions: The name of the proto_register_* routines an
+# proto_reg_handoff_* routines must start in column zero, or must be
+# preceded only by "void " starting in column zero, and must not be
+# inside #if.
#
# DISSECTOR_SRC is assumed to have all the files that need to be scanned.
#
# For some unknown reason, having a big "for" loop in the Makefile
# to scan all the files doesn't work with some "make"s; they seem to
-# pass only the first few names in the list to the shell, for some reason.
+# pass only the first few names in the list to the shell, for some
+# reason.
#
-# Therefore, we have a script to generate the "register.c" file.
+# Therefore, we have a script to generate the plugin.c file.
#
-# The first argument is the name of the file to write.
-# The second argument is the directory in which the source files live.
+# The first argument is the directory in which the source files live.
+# The second argument is "plugin", to indicate that we should build
+# a plugin.c file for a plugin.
# All subsequent arguments are the files to scan.
#
-register.c: $(DISSECTOR_SRC) $(top_srcdir)/tools/make-reg-dotc \
+plugin.c: $(DISSECTOR_SRC) $(top_srcdir)/tools/make-reg-dotc \
$(top_srcdir)/tools/make-reg-dotc.py
@if test -n $(PYTHON); then \
- echo Making register.c with python ; \
- $(PYTHON) $(top_srcdir)/tools/make-reg-dotc.py $(srcdir) $(DISSECTOR_SRC) ; \
+ echo Making plugin.c with python ; \
+ $(PYTHON) $(top_srcdir)/tools/make-reg-dotc.py $(srcdir) \
+ plugin $(DISSECTOR_SRC) ; \
else \
- echo Making register.c with shell script ; \
- $(top_srcdir)/tools/make-reg-dotc register.c $(srcdir) \
- $(plugin_src) $(DISSECTOR_SRC) ; \
+ echo Making plugin.c with shell script ; \
+ $(top_srcdir)/tools/make-reg-dotc $(srcdir) \
+ $(plugin_src) plugin $(DISSECTOR_SRC) ; \
fi
#
-# Currently register.c can be included in the distribution because
+# Currently plugin.c can be included in the distribution because
# we always build all protocol dissectors. We used to have to check
# whether or not to build the snmp dissector. If we again need to
-# variably build something, making register.c non-portable, uncomment
+# variably build something, making plugin.c non-portable, uncomment
# the dist-hook line below.
#
-# Oh, yuk. We don't want to include "register.c" in the distribution, as
+# Oh, yuk. We don't want to include "plugin.c" in the distribution, as
# its contents depend on the configuration, and therefore we want it
# to be built when the first "make" is done; however, Automake insists
# on putting *all* source into the distribution.
#
# We work around this by having a "dist-hook" rule that deletes
-# "register.c", so that "dist" won't pick it up.
+# "plugin.c", so that "dist" won't pick it up.
#
#dist-hook:
-# @rm -f $(distdir)/register.c
+# @rm -f $(distdir)/plugin.c
CLEANFILES = \
docsis \
diff --git a/plugins/docsis/plugin.c b/plugins/docsis/plugin.c
deleted file mode 100644
index 602420cd8b..0000000000
--- a/plugins/docsis/plugin.c
+++ /dev/null
@@ -1,59 +0,0 @@
-/* plugin.c
- * Standard plugin boilerplate
- *
- * $Id$
- *
- * Ethereal - Network traffic analyzer
- * By Gerald Combs <gerald@ethereal.com>
- * 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.
- */
-
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#include <gmodule.h>
-
-#include "moduleinfo.h"
-
-#ifndef ENABLE_STATIC
-G_MODULE_EXPORT const gchar version[] = VERSION;
-
-/* Start the functions we need for the plugin stuff */
-
-extern void register_all_protocols(void);
-extern void register_all_protocol_handoffs(void);
-
-G_MODULE_EXPORT void
-plugin_register (void)
-{
- static gboolean registered = FALSE;
-
- /* register the new protocol, protocol fields, and subtrees */
- if (!registered) {
- register_all_protocols();
- registered = TRUE;
- }
-}
-
-G_MODULE_EXPORT void
-plugin_reg_handoff (void)
-{
- register_all_protocol_handoffs();
-}
-
-#endif