diff options
author | Steve Slaven <bpk@hoopajoo.net> | 2005-03-21 21:41:52 (GMT) |
---|---|---|
committer | Steve Slaven <bpk@hoopajoo.net> | 2005-03-21 21:41:52 (GMT) |
commit | 5966d167f2193a9965f024532e4a95afdbee2efb (patch) | |
tree | c240bc11536cad79b67817fbe86d21fade7255e9 | |
parent | ec16b26b28ff6a2f028ca4039d2a84844e471a6d (diff) | |
download | powwow-5966d167f2193a9965f024532e4a95afdbee2efb.zip powwow-5966d167f2193a9965f024532e4a95afdbee2efb.tar.gz powwow-5966d167f2193a9965f024532e4a95afdbee2efb.tar.bz2 |
A rough overview of module support
-rw-r--r-- | README.modules | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/README.modules b/README.modules new file mode 100644 index 0000000..8f8eae8 --- /dev/null +++ b/README.modules @@ -0,0 +1,34 @@ +There is a sample module included to test module support. To build +it run: + +make plugtest.so + +from your powwow source directory. This will build a test plugin that +can be loaded using: + +#module plugtest + +If it works, when you do "#help" you will see a new command called +"#plugtest" that is listed. It will just echo the arguments back +to the terminal. This is the minimum required to make a functional +module for powwow 1.2.7 and later. + +Modules are loaded using the libdl interface with RTLD_LAZY so that +symbol resolution is deferred until as late as possible. This means +that you should test any commands you create since just because a +module loads, that doesn't mean that there are no undefined references. + +The basic requirements for a module are: + +1) define a cmdstruct with your command name, help text, and function to + call +2) add your cmdstruct to the global command list via cmd_add_command in + your powwow_init function. You can also initialize anything else you + need here, it will be called once at module load time. +3) perform whatever extentions you want at runtime in your custom functions + +For a more complete example, you should look at the powwow-perl package +which creates the bindings from powwow using the #perl command and allows +access to powwow internals from perl via the powwow:: namespace in perl. +It also includes autoconf support and is probably the most complete +module for powwow currently. |