Building the WebApp module

Outlined here are the procedures required to build the WebApp module on UNIX platforms. Please note that due to the difference across the different UNIX or UNIX-like platforms, some of the steps might be slightly inaccurate for your specific setup. Please report any inconsistency or error to our developers mailing list at:
<tomcat-dev@jakarta.apache.org>.

Prerequisites

There are two major components in the WebApp module: a set of C-language files containing the web-server side of the module, and a set of Java source files containing the Tomcat portion of the connector.

To compile the C portion of the module, you will need an ANSI-C compliler (we recommend using GCC the GNU C Compiler) and a make tool (again, the recommended version is GNU make).

The C portion of the container relies on the Apache Portable Runtime library (APR). If you are compiling the module for a web server different from Apache HTTPd 2.0, you will need to compile the APR library, and this requires GNU libtool.

If you decide not to download a source distribution, but rely on a CVS snapshot to build the module, you will also require an M4 macro processor and GNU autoconf installed.

If you decide to compile the Java portion of the connector, you will need a suitable J2SDK environment (including JAR and JAVAC) and a binary distribution of Tomcat 4.x.

The API documentation gets automatically generated from the Java and C source files. To build those you will require JAVADOC (from your J2SDK environment) for the Java portion and PERL 5.0 or later for the C portion.

Obtaining the sources

You can obtain the sources of the WebApp module from a source distribution which can be obtained from our main distribution site <http://jakarta.apache.org/builds/jakarta-tomcat-4.0/> or from our CVS server.

To obtain a copy of the sources from CVS, you will have to download two of our CVS repositories: the Apache Portable Runtime apr repository and the WebApp Module jakarta-tomcat-connectors/webapp repository. Using CSH, for example, you will have to do the following:

# CVSROOT=:pserver:anoncvs@cvs.apache.org:/home/cvspublic
# export CVSROOT
# cvs login
Password: anoncvs
# cvs checkout apr
[...]
# cvs checkout jakarta-tomcat-connectors/webapp
[...]
# mv apr jakarta-tomcat-connectors/webapp
# mv jakarta-tomcat-connectors/webapp webapp
# rm -rf jakarta-tomcat-connectors
# cd webapp
# cvs update -Pd
[...]
#

At this point you will have to generate the configure for both the WebApp module and APR:

# sh ./support/buildconf.sh
[...]
# sh ./apr/buildconf
[...]
#

Analyze any error messages that might be generated during this phase, APR has some tight requirements in terms of which version of GNU libtool you need to have.

At this point in the webapp directory you will have a source tree comparable to the distributed sources from a tar/zip archive.