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
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.