aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnders Broman <anders.broman@ericsson.com>2012-05-30 19:01:29 +0000
committerAnders Broman <anders.broman@ericsson.com>2012-05-30 19:01:29 +0000
commitd8b0471ded0ea6be350ed69f173ca59d942bbf0e (patch)
treef6440400b7960d6c676f253f26e60ac6127b272d
parent6341191d72226cca7c4d1377b70ec50681f5021f (diff)
downloadwireshark-d8b0471ded0ea6be350ed69f173ca59d942bbf0e.tar.gz
wireshark-d8b0471ded0ea6be350ed69f173ca59d942bbf0e.tar.bz2
wireshark-d8b0471ded0ea6be350ed69f173ca59d942bbf0e.zip
Add files to use 'new plugin build style'
svn path=/trunk/; revision=42924
-rw-r--r--plugins/giop/Makefile.am117
-rw-r--r--plugins/giop/Makefile.common41
-rw-r--r--plugins/giop/Makefile.nmake99
-rw-r--r--plugins/giop/moduleinfo.nmake28
-rw-r--r--plugins/giop/packet-coseventcomm.c21
-rw-r--r--plugins/giop/packet-cosnaming.c22
-rw-r--r--plugins/giop/packet-parlay.c22
-rw-r--r--plugins/giop/packet-tango.c8
-rw-r--r--plugins/giop/plugin.rc.in34
9 files changed, 267 insertions, 125 deletions
diff --git a/plugins/giop/Makefile.am b/plugins/giop/Makefile.am
index beff767cc3..0ea3e7f5e6 100644
--- a/plugins/giop/Makefile.am
+++ b/plugins/giop/Makefile.am
@@ -1,11 +1,10 @@
# Makefile.am
-# Automake file for Wireshark/GIOP subdissectors
+# Automake file for Gryphon plugin
+# By Steve Limkemann <stevelim@dgtech.com>
+# Copyright 1998 Steve Limkemann
#
# $Id$
#
-# Copyright 2001, Ericsson Inc.
-# Frank Singleton <frank.singleton@ericsson.com>
-#
# Wireshark - Network traffic analyzer
# By Gerald Combs <gerald@wireshark.org>
# Copyright 1998 Gerald Combs
@@ -25,37 +24,96 @@
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
-INCLUDES = -I$(top_srcdir)
-
-plugindir = @plugindir@
+INCLUDES = -I$(top_srcdir) -I$(includedir)
-plugin_LTLIBRARIES = cosnaming.la coseventcomm.la tango.la parlay.la
-cosnaming_la_SOURCES = packet-cosnaming.c moduleinfo.h
-cosnaming_la_LDFLAGS = -module -avoid-version
-cosnaming_la_LIBADD = @PLUGIN_LIBS@
+include Makefile.common
-coseventcomm_la_SOURCES = packet-coseventcomm.c moduleinfo.h
-coseventcomm_la_LDFLAGS = -module -avoid-version
-coseventcomm_la_LIBADD = @PLUGIN_LIBS@
+if HAVE_WARNINGS_AS_ERRORS
+AM_CFLAGS = -Werror
+endif
-tango_la_SOURCES = packet-tango.c moduleinfo.h
-tango_la_LDFLAGS = -module -avoid-version
-tango_la_LIBADD = @PLUGIN_LIBS@
+plugindir = @plugindir@
-parlay_la_SOURCES = packet-parlay.c moduleinfo.h
-parlay_la_LDFLAGS = -module -avoid-version
-parlay_la_LIBADD = @PLUGIN_LIBS@
+plugin_LTLIBRARIES = gryphon.la
+gryphon_la_SOURCES = \
+ plugin.c \
+ moduleinfo.h \
+ $(DISSECTOR_SRC) \
+ $(DISSECTOR_SUPPORT_SRC) \
+ $(DISSECTOR_INCLUDES)
+gryphon_la_LDFLAGS = -module -avoid-version
+gryphon_la_LIBADD = @PLUGIN_LIBS@
# Libs must be cleared, or else libtool won't create a shared module.
# If your module needs to be linked against any particular libraries,
# add them here.
LIBS =
+#
+# 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 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.
+#
+# Therefore, we have a script to generate the plugin.c file.
+# The shell script runs slowly, as multiple greps and seds are run
+# for each input file; this is especially slow on Windows. Therefore,
+# if Python is present (as indicated by PYTHON being defined), we run
+# a faster Python script to do that work instead.
+#
+# 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.
+#
+plugin.c: $(DISSECTOR_SRC) $(top_srcdir)/tools/make-dissector-reg \
+ $(top_srcdir)/tools/make-dissector-reg.py
+ @if test -n "$(PYTHON)"; then \
+ echo Making plugin.c with python ; \
+ $(PYTHON) $(top_srcdir)/tools/make-dissector-reg.py $(srcdir) \
+ plugin $(DISSECTOR_SRC) ; \
+ else \
+ echo Making plugin.c with shell script ; \
+ $(top_srcdir)/tools/make-dissector-reg $(srcdir) \
+ $(plugin_src) plugin $(DISSECTOR_SRC) ; \
+ fi
+
+#
+# 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 plugin.c non-portable, uncomment
+# the dist-hook line below.
+#
+# 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
+# "plugin.c", so that "dist" won't pick it up.
+#
+#dist-hook:
+# @rm -f $(distdir)/plugin.c
+
CLEANFILES = \
- cosnaming \
- coseventcomm \
- tango \
- parlay \
+ gryphon \
*~
MAINTAINERCLEANFILES = \
@@ -63,12 +121,11 @@ MAINTAINERCLEANFILES = \
plugin.c
EXTRA_DIST = \
- Makefile.nmake \
+ Makefile.common \
+ Makefile.nmake \
+ moduleinfo.nmake \
+ plugin.rc.in \
CMakeLists.txt
checkapi:
- $(PERL) $(top_srcdir)/tools/checkAPIs.pl -g abort -g termoutput -build \
- packet-cosnaming.c \
- packet-coseventcomm.c \
- packet-tango.c \
- packet-parlay.c
+ $(PERL) $(top_srcdir)/tools/checkAPIs.pl -g abort -g termoutput -build $(DISSECTOR_SRC) $(DISSECTOR_INCLUDES)
diff --git a/plugins/giop/Makefile.common b/plugins/giop/Makefile.common
new file mode 100644
index 0000000000..817e0dd822
--- /dev/null
+++ b/plugins/giop/Makefile.common
@@ -0,0 +1,41 @@
+# Makefile.common for OpcUa plugin
+# Contains the stuff from Makefile.am and Makefile.nmake that is
+# a) common to both files and
+# b) portable between both files
+#
+# $Id$
+#
+# Adapted by Gerhard Gappmeier for OpcUa
+# 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.
+
+# the name of the plugin
+PLUGIN_NAME = giop
+
+# the dissector sources (without any helpers)
+DISSECTOR_SRC = \
+ packet-coseventcomm.c \
+ packet-cosnaming.c \
+ packet-parlay.c \
+ packet-tango.c
+
+# corresponding headers
+DISSECTOR_INCLUDES =
+
+# other sources
+DISSECTOR_SUPPORT_SRC =
diff --git a/plugins/giop/Makefile.nmake b/plugins/giop/Makefile.nmake
index b921cd105b..b415b1e7a1 100644
--- a/plugins/giop/Makefile.nmake
+++ b/plugins/giop/Makefile.nmake
@@ -1,59 +1,104 @@
+# Makefile.nmake
+# nmake file for Wireshark plugin
#
# $Id$
#
include ..\..\config.nmake
+include moduleinfo.nmake
-############### no need to modify below this line #########
+include Makefile.common
CFLAGS=$(WARNINGS_ARE_ERRORS) $(STANDARD_CFLAGS) \
/I../.. $(GLIB_CFLAGS) \
/I$(PCAP_DIR)\include
+.c.obj::
+ $(CC) $(CFLAGS) -Fd.\ -c $<
+
LDFLAGS = $(PLUGIN_LDFLAGS)
!IFDEF ENABLE_LIBWIRESHARK
LINK_PLUGIN_WITH=..\..\epan\libwireshark.lib
CFLAGS=/D_NEED_VAR_IMPORT_ $(CFLAGS)
-OBJECTS=packet-cosnaming.obj packet-coseventcomm.obj packet-tango.obj packet-parlay.obj
+DISSECTOR_OBJECTS = $(DISSECTOR_SRC:.c=.obj)
+
+DISSECTOR_SUPPORT_OBJECTS = $(DISSECTOR_SUPPORT_SRC:.c=.obj)
-all : cosnaming.dll coseventcomm.dll tango.dll parlay.dll
+OBJECTS = $(DISSECTOR_OBJECTS) $(DISSECTOR_SUPPORT_OBJECTS) plugin.obj
-cosnaming.dll cosnaming.exp cosnaming.lib : packet-cosnaming.obj $(LINK_PLUGIN_WITH)
- link -dll /out:cosnaming.dll $(LDFLAGS) packet-cosnaming.obj $(LINK_PLUGIN_WITH) \
- $(GLIB_LIBS)
+RESOURCE=$(PLUGIN_NAME).res
-coseventcomm.dll coseventcomm.exp coseventcomm.lib : packet-coseventcomm.obj $(LINK_PLUGIN_WITH)
- link -dll /out:coseventcomm.dll $(LDFLAGS) packet-coseventcomm.obj $(LINK_PLUGIN_WITH) \
- $(GLIB_LIBS)
+all: $(PLUGIN_NAME).dll
-tango.dll tango.exp tango.lib : packet-tango.obj $(LINK_PLUGIN_WITH)
- link -dll /out:tango.dll $(LDFLAGS) packet-tango.obj $(LINK_PLUGIN_WITH) \
- $(GLIB_LIBS)
+$(PLUGIN_NAME).rc : moduleinfo.nmake
+ sed -e s/@PLUGIN_NAME@/$(PLUGIN_NAME)/ \
+ -e s/@RC_MODULE_VERSION@/$(RC_MODULE_VERSION)/ \
+ -e s/@RC_VERSION@/$(RC_VERSION)/ \
+ -e s/@MODULE_VERSION@/$(MODULE_VERSION)/ \
+ -e s/@PACKAGE@/$(PACKAGE)/ \
+ -e s/@VERSION@/$(VERSION)/ \
+ -e s/@MSVC_VARIANT@/$(MSVC_VARIANT)/ \
+ < plugin.rc.in > $@
-parlay.dll parlay.exp parlay.lib : packet-parlay.obj $(LINK_PLUGIN_WITH)
- link -dll /out:parlay.dll $(LDFLAGS) packet-parlay.obj $(LINK_PLUGIN_WITH) \
- $(GLIB_LIBS)
+$(PLUGIN_NAME).dll $(PLUGIN_NAME).exp $(PLUGIN_NAME).lib : $(OBJECTS) $(LINK_PLUGIN_WITH) $(RESOURCE)
+ link -dll /out:$(PLUGIN_NAME).dll $(LDFLAGS) $(OBJECTS) $(LINK_PLUGIN_WITH) \
+ $(GLIB_LIBS) $(RESOURCE)
+#
+# 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 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.
+#
+# Therefore, we have a script to generate the plugin.c file.
+# The shell script runs slowly, as multiple greps and seds are run
+# for each input file; this is especially slow on Windows. Therefore,
+# if Python is present (as indicated by PYTHON being defined), we run
+# a faster Python script to do that work instead.
+#
+# 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.
+#
+!IFDEF PYTHON
+plugin.c: $(DISSECTOR_SRC) moduleinfo.h ../../tools/make-dissector-reg.py
+ @echo Making plugin.c (using python)
+ @$(PYTHON) "../../tools/make-dissector-reg.py" . plugin $(DISSECTOR_SRC)
+!ELSE
+plugin.c: $(DISSECTOR_SRC) moduleinfo.h ../../tools/make-dissector-reg
+ @echo Making plugin.c (using sh)
+ @$(SH) ../../tools/make-dissector-reg . plugin $(DISSECTOR_SRC)
!ENDIF
-clean:
- rm -f $(OBJECTS) cosnaming.dll cosnaming.exp cosnaming.lib \
- coseventcomm.dll coseventcomm.exp coseventcomm.lib \
- tango.dll tango.exp tango.lib \
- parlay.dll parlay.exp parlay.lib *.pdb *.sbr \
- cosnaming.dll.manifest coseventcomm.dll.manifest \
- parlay.dll.manifest tango.dll.manifest
+!ENDIF
+clean:
+ rm -f $(OBJECTS) $(RESOURCE) plugin.c *.pdb *.sbr \
+ $(PLUGIN_NAME).dll $(PLUGIN_NAME).dll.manifest $(PLUGIN_NAME).lib \
+ $(PLUGIN_NAME).exp $(PLUGIN_NAME).rc
distclean: clean
maintainer-clean: distclean
checkapi:
- $(PERL) ../../tools/checkAPIs.pl -g abort -g termoutput -build \
- packet-cosnaming.c \
- packet-coseventcomm.c \
- packet-tango.c \
- packet-parlay.c
+ $(PERL) ../../tools/checkAPIs.pl -g abort -g termoutput -build $(DISSECTOR_SRC) $(DISSECTOR_INCLUDES)
diff --git a/plugins/giop/moduleinfo.nmake b/plugins/giop/moduleinfo.nmake
new file mode 100644
index 0000000000..d4c6d4583c
--- /dev/null
+++ b/plugins/giop/moduleinfo.nmake
@@ -0,0 +1,28 @@
+#
+# $Id$
+#
+
+# The name
+PACKAGE=opcua
+
+# The version
+MODULE_VERSION_MAJOR=1
+MODULE_VERSION_MINOR=0
+MODULE_VERSION_MICRO=0
+MODULE_VERSION_EXTRA=0
+
+#
+# The RC_VERSION should be comma-separated, not dot-separated,
+# as per Graham Bloice's message in
+#
+# http://www.ethereal.com/lists/ethereal-dev/200303/msg00283.html
+#
+# "The RC_VERSION variable in config.nmake should be comma separated.
+# This allows the resources to be built correctly and the version
+# number to be correctly displayed in the explorer properties dialog
+# for the executables, and XP's tooltip, rather than 0.0.0.0."
+#
+
+MODULE_VERSION=$(MODULE_VERSION_MAJOR).$(MODULE_VERSION_MINOR).$(MODULE_VERSION_MICRO).$(MODULE_VERSION_EXTRA)
+RC_MODULE_VERSION=$(MODULE_VERSION_MAJOR),$(MODULE_VERSION_MINOR),$(MODULE_VERSION_MICRO),$(MODULE_VERSION_EXTRA)
+
diff --git a/plugins/giop/packet-coseventcomm.c b/plugins/giop/packet-coseventcomm.c
index 5ed7a4881a..4a4e0cf906 100644
--- a/plugins/giop/packet-coseventcomm.c
+++ b/plugins/giop/packet-coseventcomm.c
@@ -47,9 +47,6 @@ static int hf_operationrequest = -1;/* Request_Operation field */
#include <epan/proto.h>
#include <epan/dissectors/packet-giop.h>
-#ifndef ENABLE_STATIC
-G_MODULE_EXPORT const gchar version[] = "0.0.1";
-#endif
#ifdef _MSC_VER
/* disable warning: "unreference local variable" */
@@ -737,7 +734,7 @@ void proto_register_giop_coseventcomm(void) {
/* register me as handler for these interfaces */
-void proto_register_handoff_giop_coseventcomm(void) {
+void proto_reg_handoff_giop_coseventcomm(void) {
@@ -769,19 +766,3 @@ void proto_register_handoff_giop_coseventcomm(void) {
}
-#ifndef ENABLE_STATIC
-
-G_MODULE_EXPORT void
-plugin_register(void)
-{
- if (proto_coseventcomm == -1) {
- proto_register_giop_coseventcomm();
- }
-}
-
-G_MODULE_EXPORT void
-plugin_reg_handoff(void){
- proto_register_handoff_giop_coseventcomm();
-}
-#endif
-
diff --git a/plugins/giop/packet-cosnaming.c b/plugins/giop/packet-cosnaming.c
index 11105d51cd..40932e8e12 100644
--- a/plugins/giop/packet-cosnaming.c
+++ b/plugins/giop/packet-cosnaming.c
@@ -47,10 +47,6 @@ static int hf_operationrequest = -1;/* Request_Operation field */
#include <epan/proto.h>
#include <epan/dissectors/packet-giop.h>
-#ifndef ENABLE_STATIC
-G_MODULE_EXPORT const gchar version[] = "0.0.1";
-#endif
-
#ifdef _MSC_VER
/* disable warning: "unreference local variable" */
#pragma warning(disable:4101)
@@ -1537,7 +1533,7 @@ void proto_register_giop_cosnaming(void) {
/* register me as handler for these interfaces */
-void proto_register_handoff_giop_cosnaming(void) {
+void proto_reg_handoff_giop_cosnaming(void) {
@@ -1559,19 +1555,3 @@ void proto_register_handoff_giop_cosnaming(void) {
}
-#ifndef ENABLE_STATIC
-
-G_MODULE_EXPORT void
-plugin_register(void)
-{
- if (proto_cosnaming == -1) {
- proto_register_giop_cosnaming();
- }
-}
-
-G_MODULE_EXPORT void
-plugin_reg_handoff(void){
- proto_register_handoff_giop_cosnaming();
-}
-#endif
-
diff --git a/plugins/giop/packet-parlay.c b/plugins/giop/packet-parlay.c
index 3b7b1cf5e7..c53af08277 100644
--- a/plugins/giop/packet-parlay.c
+++ b/plugins/giop/packet-parlay.c
@@ -47,10 +47,6 @@ static int hf_operationrequest = -1;/* Request_Operation field */
#include <epan/proto.h>
#include <epan/dissectors/packet-giop.h>
-#ifndef ENABLE_STATIC
-G_MODULE_EXPORT const gchar version[] = "0.0.1";
-#endif
-
#ifdef _MSC_VER
/* disable warning: "unreference local variable" */
#pragma warning(disable:4101)
@@ -104380,7 +104376,7 @@ void proto_register_giop_parlay(void) {
/* register me as handler for these interfaces */
-void proto_register_handoff_giop_parlay(void) {
+void proto_reg_handoff_giop_parlay(void) {
@@ -105137,19 +105133,3 @@ void proto_register_handoff_giop_parlay(void) {
}
-#ifndef ENABLE_STATIC
-
-G_MODULE_EXPORT void
-plugin_register(void)
-{
- if (proto_parlay == -1) {
- proto_register_giop_parlay();
- }
-}
-
-G_MODULE_EXPORT void
-plugin_reg_handoff(void){
- proto_register_handoff_giop_parlay();
-}
-#endif
-
diff --git a/plugins/giop/packet-tango.c b/plugins/giop/packet-tango.c
index bb74626e3d..7609c704d8 100644
--- a/plugins/giop/packet-tango.c
+++ b/plugins/giop/packet-tango.c
@@ -47,10 +47,6 @@ static int hf_operationrequest = -1;/* Request_Operation field */
#include <epan/proto.h>
#include <epan/dissectors/packet-giop.h>
-#ifndef ENABLE_STATIC
-G_MODULE_EXPORT const gchar version[] = "0.0.1";
-#endif
-
#ifdef _MSC_VER
/* disable warning: "unreference local variable" */
#pragma warning(disable:4101)
@@ -4353,7 +4349,7 @@ void proto_register_giop_tango(void) {
/* register me as handler for these interfaces */
-void proto_register_handoff_giop_tango(void) {
+void proto_reg_handoff_giop_tango(void) {
@@ -4380,7 +4376,7 @@ void proto_register_handoff_giop_tango(void) {
}
-#ifndef ENABLE_STATIC
+#if 0
G_MODULE_EXPORT void
plugin_register(void)
diff --git a/plugins/giop/plugin.rc.in b/plugins/giop/plugin.rc.in
new file mode 100644
index 0000000000..665276e936
--- /dev/null
+++ b/plugins/giop/plugin.rc.in
@@ -0,0 +1,34 @@
+#include "winver.h"
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION @RC_MODULE_VERSION@
+ PRODUCTVERSION @RC_VERSION@
+ FILEFLAGSMASK 0x0L
+#ifdef _DEBUG
+ FILEFLAGS VS_FF_DEBUG
+#else
+ FILEFLAGS 0
+#endif
+ FILEOS VOS_NT_WINDOWS32
+ FILETYPE VFT_DLL
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "040904b0"
+ BEGIN
+ VALUE "CompanyName", "The Wireshark developer community, http://www.wireshark.org/\0"
+ VALUE "FileDescription", "OPC Unified Architecture Dissector\0"
+ VALUE "FileVersion", "@MODULE_VERSION@\0"
+ VALUE "InternalName", "@PACKAGE@ @MODULE_VERSION@\0"
+ VALUE "LegalCopyright", "Copyright © 1998 Gerald Combs <gerald@wireshark.org>, Gilbert Ramirez <gram@alumni.rice.edu> and others\0"
+ VALUE "OriginalFilename", "@PLUGIN_NAME@.dll\0"
+ VALUE "ProductName", "Wireshark\0"
+ VALUE "ProductVersion", "@VERSION@\0"
+ VALUE "Comments", "Build with @MSVC_VARIANT@\0"
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x409, 1200
+ END
+END