On Wed, 3 Mar 1999 11:04:01 -0500, Mark A. Heilpern <heilpern@mindspring.com> wrote:
>I'm just curious to know what people have placed in
>shared libraries for CircleMUD? SpecProcs seems
>like an easy answer, but anything else?
I currently have options to have special procedures and commands
in shared objects (I also have a 3rd module type which is a combined
type [can contain both commands and spec procs]).
I plan on also putting skills and spells into modules too.
Actually, one thing that might be nice in CircleMUD would be
to have a module api that anyone can code to. For example, I could
code spec procs for my area, and then give my area and my spec mods
to anyone with a circleMUD and they're just plug in.
Or I'd code a new command, and there'd be no patch (unless you wanted
the code in the core functionality), but you could just plug it right
in.
I coded my shared objects with this in mind on FucMUD, but considering
how divergent that MUD is from standard circle, porting would prove
pretty difficulty for me. I am however willing to share knowledge with
anyone who wants to make a patch... it takes a lot of work, I re-wrote
much of the command interpreter, and I had previously entirely re-written
the spec proc system.
>
>This thread got me reading the manual pages on the
>dlXXX() calls. Sounds interesting and there's even a nice,
>short example on how to use them. There isn't an
>example in the man pages for how to write the shared
>library though; should I just pick up source to a PAM
>module (they're small, simple dll's) to see how it's
>compiled, or is there a better example somewhere?
>
Writing a shared library is no different from writing a normal
program. The only difference is there is no 'linking' stage of the compile.
Also, you cannot have a main() function.
The linking occurns runtime when you open the shared library (or
all at once when you open the shared library, depending on your open options).
You just need to be a bit more careful when write the things.
You also need to compile it with the -shared and -rdynamic... hmm
and i also use -nostdlib for some reason, maybe that's just with that
set of plug-ins. Dunno, i chose to do some funky makefile magic to make
compiling modules really easy... it makes my brain hurt to remember all
those wierd make options... :)
- Anil
RoadKill@FucMUD cthulhu.proxicom.com 4000
+------------------------------------------------------------+
| Ensure that you have read the CircleMUD Mailing List FAQ: |
| http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html |
+------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/15/00 PST