prxs: PRoftpd eXtenSion tool

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

## Author

Please contact TJ Saunders <tj at castaglia.org> with any questions, concerns, or suggestions regarding this program.

## Usage

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

## Options

The following is the output from running `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

© Copyright 2000-2016 TJ Saunders
All Rights Reserved