Huge thanks to our Platinum Members Endace and LiveAction,
and our Silver Member Veeam, for supporting the Wireshark Foundation and project.

Ethereal-dev: Re: [Ethereal-dev] ethereal plugin interface

Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.

From: Matthijs Melchior <mmelchior@xxxxxxxxx>
Date: Thu, 03 Jul 2003 23:01:54 +0200
Matthijs Melchior wrote:

Guy Harris wrote:

On Mon, Jun 30, 2003 at 10:14:22PM +0200, Matthijs Melchior wrote:


Use cygwin "gcc -aux-info xyzzy ... -c plugin_api_list.c" to create
a file with conststent formatted declarations.  This makes it possible
to extract the symbol names with a regular expression...
We could do that...

...but not as part of the build procedure, as:

	1) people might be using older versions of GCC that don't
	   support "-aux-info";

	2) people might not be using GCC at all.

I.e., that'd have to be done manually whenever the plugin interface is
updated.


OK, I will make that part a separate makefile target.
Expect a patch in the next few days.

I think the patch is too large for the mailing list, and therefor I
have made it available at
http://www.xs4all.nl/~mmelchio/win32-plugin.diff

... and as of Jul 3 22:47 a more correct version of the Makefile.nmake patch.

The README.interface file is new, and attached as well.

--
Regards,
----------------------------------------------------------------  -o)
Matthijs Melchior                                       Maarssen  /\\
mmelchior@xxxxxxxxx                                  Netherlands _\_v
---------------------------------------------------------------- ----


README.interface

When developing a plugin in the Win32 world, it is nessecary
to explicitly export addresses from the main process to the
plugin.  ethereal does have a mechanism for this, and it uses
the file 'plugin_api_list.c' to list declarations for everything
that needs to be exported.

The build process of ethereal needs this list in 5 different forms.

These are generated by a Python script and saved in the X* files
in this directory.

I do not have a real C parser in Python to read the input file...,
so I have used 'gcc -aux-info xyzzy ...' to clean up any formatting
preferences in the input file and create the file named 'xyzzy'
that contains a neatly formatted list of declarations.  This list
can be parsed with a regular expression to extract the required
info.

Use the following procedure when updateing the plugin_api_list.c file:

nmake -f Makefile.nmake xyzzy
nmake -f Makefile.nmake

The 'xyzzy' makefile target is the only target that depends on gcc.
This can be done on a Unix machine or you can use cygwin gcc.