prxs: PRoftpd eXtenSion toolprxs program is used to build
DSO modules (also known as "shared" modules).
The most current version of prxs is distributed with the
ProFTPD source code.
Please contact TJ Saunders <tj at castaglia.org> with any questions, concerns, or suggestions regarding this program.
prxs is a tool for building and installing extension modules for
the ProFTPD FTP server. This is achieved by building a dynamic shared object
(DSO) from one or more source or object
files which then can be loaded into the ProFTPD server at runtime via
the LoadModule
directive from the mod_dso
module.
To use this extension mechanism your platform has to support the DSO feature
and your proftpd executable has to be built with the
mod_dso module. The
prxs tool automatically complains if this is not the case.  You
can check this yourself by manually running the command:
$ proftpd -lThe module
mod_dso should
be part of the displayed list.  If these requirements are fulfilled you can
easily extend your ProFTPD server's functionality by installing your own
modules with the DSO mechanism by the help of this prxs tool.
The DSO documentation also
describes how prxs works in more details.
prxs --help:
usage: prxs <action> <opts> <source files>
Actions:
 -c, --compile          Compiles the listed .c source files into a proftpd
                        DSO module.
 -i, --install          Installs a compiled proftpd DSO module into the
                        directory where proftpd expects to find loadable
                        DSO modules.
 -d, --clean            Removes any generated files, returning the build
                        directory to a clean state.
Options:
 -h, --help             Displays this message.
 -n, --name             Tells prxs the name of the module being compiled.
                        By default, prxs determines the module name from
                        the list of .c files listed, expecting to see a
                        "mod_$name.c" file.
 -D key                 Passes these macros through to the compilation step.
 -D key=value           Note that the space before the key is important.
 -I includedir          Specify additional include file search directories.
                        Note that the space before the directory is important.
 -L libdir              Specify additional library file search directories.
                        Note that the space before the directory is important.
 -l library             Specify additional libraries for linking.
                        Note that the space before the library name is
                        important.
At least one of the above actions must be specified when using prxs.  More
than one action can be specified at the same time.
To use prxs all in one step, you could do:
  prxs -c -i -d mod_custom.c