
To build and install as a DSO outside of the httpd source
build, from the ftp source root directory, simply;

    ./configure.apxs
    make
    make install

If apxs is not in your path, or you are building to a different
httpd installation, either set the APXS environment variable, or
the syntax;

    APXS=/path/to/bin/apxs ./configure.apxs

so the desired configuration is picked up.

To build static, or as a DSO but within the same build as httpd,
copy the entire ftp source directory tree on top of your existing 
httpd source tree, and from the httpd source root directory

    ./buildconf  (to pick up ftp)
    ./configure --enable-ftp {your usual options}

and proceed as usual.



On windows, before building for httpd-2.0, you must adjust the
two apr 1.x specific lines in modules\ftp\mod_ftp.dsp which begin

    # ADD LINK32 libapr-1.lib libaprutil-1.lib ...

to start with the apr 0.9 equivilants for httpd-2.0,

    # ADD LINK32 libapr.lib libaprutil.lib ...

The windows packages prior to 2.2.7 (2.0.62) left out the file
include\mod_log_config.h, just copy these from the source tree
or you can export them from subversion, just change to your
installed Apache 2.2 (or 2.0) include subdirectory and...

  svn export http://svn.apache.org/repos/asf/httpd/httpd/branches/2.2.x/modules/loggers/mod_log_config.h

(for your 2.0 installation, replace 2.2.x with 2.0.x in the
command above).  You should be ready to compile the project.

To build on windows out-of-tree as a DSO, simply

    set APACHE2_HOME=c:\path\to\Apache2.2

and then, for Visual Studio 6.0 (98)...

    msdev /useenv mod_ftp.dsw

or for Visual Studio .NET (2002) and later ...

    devenv /useenv mod_ftp.dsw

The later command is needed on Visual Studio .NET/2002 and later, 
and converts mod_ftp.dsw to mod_ftp.sln.  So after converting once,
use the newly converted solution instead...

    devenv /useenv mod_ftp.sln

On windows you can overlay mod_ftp source files into the httpd source
file tree, and make the following changes for an in-tree build;

 * Manually add the project mod_ftp.dsp to the Apache.dsw workspace.
 * Ensure the BuildBin project includes the mod_ftp project dependency.
 * Add mod_ftp project dependencies of libhttpd, libapr and libaprutil.
 * Remove /D "FTP_APXS_BUILD" from the modules\ftp\mod_ftp.dsp
   lines beginning with # ADD CPP ...
 * You may remove /I "$(APACHE2_HOME)/include" from those # ADD CPP 
   lines of modules\ftp\mod_ftp.dsp.
 * You may remove /libpath:"$(APACHE2_HOME)\lib" from the # ADD LINK32 
   lines of modules\ftp\mod_ftp.dsp.

Note that mod_ftp.so needs to be added to the module installation 
lines in Makefile.win, or you must manually copy the .so module from 
modules\ftp\Release after compiling.



To compile the module for NetWare platform setup your build environment
as described in the main documentation to build Apache 2.x itself: 
http://httpd.apache.org/docs/2.2/platform/netware.html#comp
or:
http://httpd.apache.org/docs/2.0/platform/netware.html#comp
Then chance to the base directory and use:
gmake -f NWGNUftp-makefile
to compile the module; to install the module and documentation into
the default distribution directory use: 
gmake -f NWGNUftp-makefile install



To regenerate the html.en documentation, here again it's as simple
as copying the content docs/ into an httpd/docs/ tree and regenerating
httpd's documentation.  However, it's also possible you are generating
a local copy for reference in mod_ftp's tree, in that case you must
have a copy of the httpd docs/manual/style.  For example;

    cd docs/manual
    svn co http://svn.apache.org/repos/asf/httpd/httpd/branches/2.2.x/docs/manual/style

In either case;

    cd docs/manual
    svn co http://svn.apache.org/repos/asf/httpd/docs-build/trunk build
    cd build

and finally;

    ./build.sh all

or on windows...

    build.bat all

To make this simpler on unix, after invoking ./configure.apxs in the 
top level directory, you can simply;

    make generate-docs

which will fetch up those style and build directories (for httpd-2.2)
and generate the docs for you.  After using make and make install, you
can even merge the directives for the installed manual using this target;  

    make manualdir=/path/to/httpd/manual generate-docs

The same rules about an installed, locatable JAVA_HOME apply to building
mod_ftp docs as apply to building the httpd manual.

The advantage to building in-tree within httpd is that you gain the complete
directive cross references applicable to all httpd and mod_ftp directives,
before installing the httpd\manual files.


