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 createWe could do that...
a file with conststent formatted declarations. This makes it possible
to extract the symbol names with a regular expression...
...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 /\\ [EMAIL PROTECTED] 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.
