prxs: PRoftpd eXtenSion tool

This prxs 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> 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 -l
The 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.


The following is the output from running prxs --help:
usage: prxs <action> <opts> <source files>


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


 -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

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

© Copyright 2000-2016 TJ Saunders
All Rights Reserved