You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by Fredrik Viklund <fr...@biotech.kth.se> on 2002/08/07 17:20:19 UTC

[5.0] Build notes - new BUILDING.txt

At 23:24 2002-08-04 -0400, Bob Herman wrote:
 >I have heard a few people report that setting up a development
 >environment was difficult.  Certainly reading through BUILDING.txt can
 >make it seem complex.... anyway....

This is a proposal for a new BUILDING.txt.

For example: The reader is supposed to be able to fetch files using cvs but
is told a dozen times or so to use zip-files for Windows and  gzip-files for
Unix systems. At the same time, there is a warning not to check in
"build.properties" which clearly directed to developers with write-access -
who should know better whithout reading building.txt...

A few weeks ago I rewrote the file and posted it together with patches to
make the download process for Tomcat 4.1 automatic.  Nobody seemed
to notice and the changes were partly overrun and obsoleted by
the transition to Tomcat 5.

However, the readability is very important in a file like this, and
BUILDING.txt has definitely outgrown its original design.
I think that anybody comparing the two files will find this version much
easier to read.

At 18:48 2002-07-26 +0200, Remy Maucherat wrote:
 >Tomcat 5 now builds (and runs), although the build process
 >is not documented yet (and obviously is also lacking some testing).

I have not yet build version 5 and do not know the details of that process.
Hopefully this file can start out as a template anyway.

Pleas read, comment, change and/or commit.

	/Fredrik


Building The Tomcat 5 Servlet/JSP Container
===========================================

This subproject contains the source code for Tomcat 5, a server that
implements the Servlet 2.4 and JSP 2.0 specifications from the Java
Community Process (http://www.jcp.org/). In order to build a binary
distribution version of the container from a source distribution, you must
have a Java Development Kit (JDK) for version 1.3 (or later) downloaded and
installed (version 1.3.1 recommended).

Each package described below should be unpacked into its own subdirectory.
To minimize the changes to the build.properties file, it is convenient to
store the separate distributions below in subdirectories of one and the same
directory.

E.g.
   ../jakarta
   ../jakarta/jakarta-ant-1.5
   ../jakarta/jakarta-tomcat-5-src
etc.

Building Jakarta-Tomcat 5 from source requires approximately 200 MB disk
space, varying with how many of the depending packages you compile from
source.


(0) Download and Install a Java Development Kit

* Download a Java Development Kit (JDK) version 1.3 or later or a Standard
   Edition Software Development Kit (J2SE SDK) version 1.4 or later from:

     http://java.sun.com/j2se/

* Install the JDK according to the instructions included with the release.

* Set an environment variable JAVA_HOME to the pathname of the directory
   into which you installed the JDK release.


(1) Download and Install Ant

* Ant 1.5 or later is required. Download a binary distribution from

     http://jakarta.apache.org/builds/jakarta-ant/release/v1.5/bin/

* Unpack the binary distribution into a convenient location so that the Ant
   release resides in its own directory (conventionally named
   "jakarta-ant-1.5"). The symbolic name "${ant.home}" refers to the full
   pathname of the Ant release directory.

* Modify the PATH environment variable to include directory "${ant.home}/bin"
   in its list.  This makes the "ant" command line script available, which will
   be used to actually perform the build.

* You can test your installation of Ant by typing "ant -help" at the command
   prompt.



(2) Download and Install the Tomcat Subproject Source Code

* Use anonymous CVS as described on the Jakarta web site
   http://jakarta.apache.org/site/cvsindex.html or download a current source
   distribution from:

     http://jakarta.apache.org/builds/jakarta-tomcat-4.0/nightly/src/

   If you want to compile the latest release, you will find the sources at

     http://jakarta.apache.org/builds/jakarta-tomcat-4.0/release/

   Unpack the files into a convenient location, preferably in an empty
   subdirectory (that will later also be populated with supporting packages and
   distributions.)

* The symbolic name "${tomcat.source}" is used to refer to the full pathname of
   the release directory.


(3) Automatic download of libraries and subprojects

* To build Tomcat, several libraries and subprojects are needed. The easiest
   way to get them is to use the download build target to do automated
   download.

   As the download proceeds, ant will use CVS to download sources that have
   not yet had formal releases. For this to work, you need to have the cvs
   command available in your PATH environment variable. If you don't have a
   CVS command- line client, you can download sources or binaries from

     http://www.cvshome.org/downloads.html

   To automatically download the needed packages into, issue the command

     ant download

   This will fetch the packages described below for building the complete
   Tomcat distribution into a directory hierarchy rooted in ../ resulting in
   a convenient structure.

   If the downloads completes without errors, you can now continue with step
   (29), "Building a binary distribution".

   If you are behind a firewall or using a proxy, you can edit the network
   settings in build.properties.


(4) Manual download and installation

* If the download fails or for some reason you want to fetch the files
   manually, read on.

* If you are working in a Microsoft Windows environment, you may want to use
   the zip files available from the directories listed below. If you are
   working in a Unix- like environment the tar.gz-files may suit you better.


(5) Download and Install Packages for JDK Version 1.3

* If you are using J2SDK version 1.4 or later you can skip this step

* If you are using the JDK version 1.3 you need to download

   - The JNDI Reference Implementation version 1.2.1 or later and
   - The LDAP Service Provider Maintenance package version 1.2.3 or later

     They can both be found at

       http://java.sun.com/products/jndi/

     These files unpack into the current directory. It is therefore
     convenient to create a directory (conventionally named jndi-1.2.1) and
     unpack them both there so that "ldap.jar" and "jaas.jar" (from the LDAP
     package) resides in the "lib" subdirectory of the JNDI directory,
     parallel to "jndi.jar".


   - The Java XML Pack Binary Distribution version 1.1.3 or later

     It can be found at

       http://java.sun.com/xml/downloads/javaxmlpack.html

     The symbolic name "${jaxp.home}" is used to refer to the full pathname
     to the jaxp-1.x subdirectory of the Java XML Pack release directory.

     Make the "xalan.jar" file in the of this distribution available to Ant
     (so that it can be used with the <style> tag) by copying it to
     "${ant.home}/lib". It is located in the jaxp-1.x subdirectory of the
     distribution.


   - Xerces version 1.4.4 or later binary distribution

     It can be found at

       http://xml.apache.org/dist/xerces-j/

     In your build.properties file, you will need to set properties
     differently based on which version of Xerces you are using:

     - For versions 1.4.4 up through and including 2.0.0beta3, uncomment
       the Xerces 1.4.4... section in the build.properties file.

     - If you have defined both sets of properties, the newer (two files)
       packaging will be loaded into the Tomcat you are building


(6) Download and Install the Jakarta-Tomcat-Catalina Subproject

* Use anonymous CVS as described on the Jakarta web site
   http://jakarta.apache.org/site/cvsindex.html or download a current source
   distribution.

* By default, the build system will try to find this repository in the
   "${tomcat.source}/../jakarta-tomcat-catalina" directory.

* The symbolic name "${catalina.home}" is used to refer to the full
   pathname of the release directory.


(7) Download and Install the Jakarta-Tomcat-Connectors Subproject

* Use anonymous CVS as described on the Jakarta web site
   http://jakarta.apache.org/site/cvsindex.html or download a current source
   distribution.

* By default, the build system will try to find this repository in the
   "${tomcat.source}/../jakarta-tomcat-connectors" directory.

* The symbolic name "${jtc.home}" is used to refer to the full pathname of
   the release directory.


(8) Download and Install the Jasper 2 Distribution

* Use anonymous CVS as described on the Jakarta web site
   http://jakarta.apache.org/site/cvsindex.html or download a current source
   source distribution.

* By default, the build system will try to find this repository in the
   "${tomcat.source}/../jakarta-tomcat-jasper2" directory.

* The symbolic name "${jasper.home}" is used to refer to the full pathname
   of the release directory.


(9) Download and Install the Servlet API Distribution

* Download a source or binary distribution from:

     http://jakarta.apache.org/builds/jakarta-servletapi-5/nightly/

* By default, the build system will try to find this repository in the
   "${tomcat.source}/../jakarta-servletapi-5" directory.

* The symbolic name "${api.home}" is used to refer to the full pathname
   of the release directory.


(10) Download and Install the Commons Beanutils Distribution

* Download a source or binary distribution of version 1.3 or later from:

     http://jakarta.apache.org/builds/jakarta-commons/release/commons-beanutils

* By default, the build system will try to find this repository in the
   "${tomcat.source}/../commons-beanutils-1.3" directory.


(11) Download and Install the Commons Collections Distribution

* Download a soure or binary distribution of version 1.0 or later from:

     http://jakarta.apache.org/builds/jakarta-commons/release/commons-collections

* By default, the build system will try to find this repository in the
   "${tomcat.source}/../commons-collections-2.0" directory.


(12) Download and Install the Commons Digester Distribution

* Download a source or binary distribution of version 1.1.1 or later from:

     http://jakarta.apache.org/builds/jakarta-commons/release/commons-digester

* By default, the build system will try to find this repository in the
   "${tomcat.source}/../commons-digester-1.2" directory.


(13) Download and Install the Commons Logging Distribution

* Download a source or binary distribution of version 1.0.1 or later (nightly
   build 20020728 or later) from:

     http://jakarta.apache.org/builds/jakarta-commons/nightly/commons-logging

* By default, the build system will try to find this repository in the
   "${tomcat.source}/../commons-logging-1.0.1" directory.


(14) Download and Install the Regexp Distribution

* Download a source or binary distribution of version 1.2 or later from:

     http://jakarta.apache.org/builds/jakarta-regexp/release/

* By default, the build system will try to find this repository in the
   "${tomcat.source}/../jakarta-regexp-1.2" directory.


(15) Download and Install the Commons Daemon Binary Distribution

* This is only required if you wish to be able to run Tomcat as a native
   operating system daemon using commons-daemon.

* Download a source or binary distribution of version 20020731 or later from:

     http://jakarta.apache.org/builds/jakarta-commons/nightly/commons-daemon

* By default, the build system will try to find this repository in the
   "${tomcat.source}/../commons-daemon" directory.


(16) Downloading for a complete Tomcat distribution

* Steps 17-27 are optional, but are necessary to build a complete binary
   distribution of Tomcat 5.

* Set the "full.dist" property to "on" in the build.properties file (see step
   28) to build a complete distribution. Regular contributors to Tomcat are
   encouraged to use the complete build option.


(17) Download and Install Packages for JDK Version 1.3

* If you are using J2SDK version 1.4.0 or later you can skip this step.

* If you are using the JDK version 1.3 you need to download

   - The JDBC Optional Package API

     It can be found at

       http://java.sun.com/products/jdbc/download.html

     If necessary, rename the .jar file to jdbc2_0-stdext.jar.

     By default, the build system will try to find this repository in the
     "${tomcat.source}/../jdbc2_0-stdext" directory.

   - Download and Install the JSSE 1.0.2 Reference Implementation

     Download the Java Secure Sockets Extension (JSSE) package version 1.0.2 or
     later from

         http://java.sun.com/products/jsse/

     By default, the build system will try to find this repository in the
     "${tomcat.source}/../jsse-1.0.2" directory.


(18) Download and Install an Implementation of the JMX 1.0 Specification.

* This is only required if you wish to build the Config/Admin web application.

* This can be either MX4J (http://mx4j.sourceforge.net) or Sun JMX 1.0
   Reference Implementation. The Tomcat binaries are distributed with MX4J.

   - Download MX4J (version 1.1 or later) from

       http://sourceforge.net/project/showfiles.php?group_id=47745

   - Alternately, download the JMX Instrumentation and Agent Reference
     Implementation (version 1.0 or later) from

       http://java.sun.com/products/JavaManagement/download.html

* By default, the build system will try to find this repository in the
   "${tomcat.source}/../mx4j-1.1" directory.


(19) Download and Install the Java Activation Framework

* Download the Java Activation Framework package version 1.0.1 or later from

     http://java.sun.com/products/javabeans/glasgow/jaf.html

* By default, the build system will try to find this repository in the
   "${tomcat.source}/../jaf-1.0.2" directory.


(20) Download and Install JavaMail 1.2

* Download the JavaMail package version 1.2 or later from

     http://java.sun.com/products/javamail/index.html

* By default, the build system will try to find this repository in the
   "${tomcat.source}/../javamail-1.2" directory.


(21) Download and Install the Java Transaction APIs

* Download the Java Transaction API (JTA) package version 1.0.1 or later
   from:

     http://java.sun.com/products/jta/

* By default, the build system will try to find this repository in the
   "${tomcat.source}/../jta-spec1_0_1" directory.


(22) Download and Install the Struts Binary Distribution

* Download a binary distribution of Struts 1.0.2 or later from:

     http://jakarta.apache.org/builds/jakarta-struts/release/

* By default, the build system will try to find this repository in the
   "${tomcat.source}/../jakarta-struts-1.0.2" directory.


(23) Download and Install the Tyrex Data Source Package

* Download the Tyrex JAR or release version 1.0 or later from:

     http://tyrex.exolab.org/download.html

* By default, the build system will try to find this repository in the
   "${tomcat.source}/../tyrex-1.0" directory.


(24) Download and Install the JUnit Testing Package

* This is only required if you wish to build and execute the unit tests
   that are part of the Tomcat 5 source base.

* Download the JUnit unit test package version 3.7 or later from:

     http://www.junit.org/

* By default, the build system will try to find this repository in the
   "${tomcat.source}/../junit3.7" directory.


(25) Download and Install the Commons Modeler Binary Distribution

* This is only required if you wish to build the Config/Admin web
   application.

* Download a binary distribution of version 1.0 or later from:

     http://jakarta.apache.org/builds/jakarta-commons/release/commons-modeler

* By default, the build system will try to find this repository in the
   "${tomcat.source}/../commons-modeler-1.0" directory.


(26) Download and Install the Commons DBCP Binary Distribution

* This is only required if you wish to use the database JDBC data source
   factory.

* Download a source or binary distribution from:

   http://jakarta.apache.org/builds/jakarta-commons/nightly/commons-dbcp/

* By default, the build system will try to find this repository in the
   "${tomcat.source}/../commons-dbcp" directory.


(27) Download and Install the Commons Pool Binary Distribution

* This is only required if you wish to use the database JDBC data source
   factory.)

* Download a binary distribution of version 1.0 or later from:

     http://jakarta.apache.org/builds/jakarta-commons/release/commons-pool/

* By default, the build system will try to find this repository in the
   "${tomcat.source}/../commons-pool-1.0" directory.


(28) Customize Build Properties for this Subproject

* Most Jakarta subprojects allow you to customize build properties (with
   default values defined in the "build.xml" file.  This is done by creating
   a text file named "build.properties" in the source distribution directory
   (for property definitions local to this subproject) and/or your user home
   directory (for property definitions shared across subprojects).

* You can use the included "build.properties.sample" file as a starting point
   and adjust the properties, e.g. the locations of the packages described
   above.

* Be *sure* that you do not check "build.properties" in to the CVS repository.
   This file is local to your own development environment, and each developer
   will have their own version.


(29) Build A Binary Distribution

* Assuming you have a command shell open with ${tomcat.source} as the current
   directory, you can issue the following command:

     ant -projecthelp

* If everything is installed correctly, you should see a list of the Ant
   "targets" you might wish to build and short explanations for them.

* You can check that all dependencies are correctly installed by using the
   following command:

     ant detect

* By convention, the "dist" target creates a complete binary distribution.  To
   execute it, type the following commands:

     ant dist

* This will create a complete binary distribution of the subproject
   (equivalent in structure to the corresponding binary distribution
   downloadable from the Jakarta web site), in the "${tomcat.source}/dist"
   directory.  It will have the contents described in the corresponding
   "README.txt" file.

* See the document RUNNING.txt for instructions on how to start up and shut
   down the servlet/JSP container.


(30) Keeping your source up-to-date and contributing to the project

* If you want access to the latest sources for any reason, you should
   definitely consider using CVS to get the source tree. You can find more
   information on using CVS with the Jakarta project at

     http://jakarta.apache.org/site/cvsindex.html

* If you want to contribute to the project in any way, you will find essential
   information at

     http://jakarta.apache.org/site/guidelines.html


--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>


Re: [5.0] Build notes - new BUILDING.txt

Posted by co...@covalent.net.
'ant download' would be great if it would just _download_ - aparently 
it also compiles a lot of stuff. I don't mind compiling ( I prefer 
that for all the stuff we directly depend on ) - but not mixed in
download. 

Very soon we'll have all jakarta in the dependency list - and our
build.xml will be harder than gump ( which turns out to be quite 
user-friendly after all !).

Costin

On Thu, 8 Aug 2002, Patrick Luby wrote:

> Fredrik,
> 
> Bob Herrmann convinced me to use the Ant download target and I must 
> agree that using Ant download makes building Tomcat vastly simpler. As 
> you can see from my Unix script below, getting the code and building it 
> is only a few steps:
> 
> ant clean
> runsocks ant download
> runsocks cvs update -A -d
> ( cd "../jakarta-servletapi-5" ; runsocks cvs update -A -d )
> ( cd "../jakarta-tomcat-jasper/jasper2" ; runsocks cvs update -A -d )
> ( cd "../jakarta-tomcat-connectors" ; runsocks cvs update -A -d )
> ( cd "../jakarta-tomcat-catalina" ; runsocks cvs update -A -d )
> ant dist
> 
> I agree that we should put ant download as the primary instructions in 
> BUILDING.txt. Maybe at the end of the file, we can just like the 
> versions of each dependency that we are using and not the whole bloody 
> process for downloading them since the locations are in the 
> build.properties.default file.
> 
> Patrick
> 
> Fredrik Viklund wrote:
> > At 09:49 2002-08-07 -0700, costinm@covalent.net wrote:
> > 
> >  >A 30-step process... I don't know about other people, but I find it scary.
> > 
> > I agree. That's why I thought it is so important with a functional
> > "ant download" target. Then it becomes a three steps process.
> > The manual way should still be explained in BUILDING.txt.
> > 
> > OTOH if the download target is kept up-to-date, it might suffice with a
> > reference to build.properties for those who want/must use manual download.
> > 
> >     /Fredrik
> > 
> > 
> > 
> > --
> > To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
> > For additional commands, e-mail: <ma...@jakarta.apache.org>
> 
> 


--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>


Re: [5.0] Build notes - new BUILDING.txt

Posted by Patrick Luby <pa...@sun.com>.
Fredrik,

Bob Herrmann convinced me to use the Ant download target and I must 
agree that using Ant download makes building Tomcat vastly simpler. As 
you can see from my Unix script below, getting the code and building it 
is only a few steps:

ant clean
runsocks ant download
runsocks cvs update -A -d
( cd "../jakarta-servletapi-5" ; runsocks cvs update -A -d )
( cd "../jakarta-tomcat-jasper/jasper2" ; runsocks cvs update -A -d )
( cd "../jakarta-tomcat-connectors" ; runsocks cvs update -A -d )
( cd "../jakarta-tomcat-catalina" ; runsocks cvs update -A -d )
ant dist

I agree that we should put ant download as the primary instructions in 
BUILDING.txt. Maybe at the end of the file, we can just like the 
versions of each dependency that we are using and not the whole bloody 
process for downloading them since the locations are in the 
build.properties.default file.

Patrick

Fredrik Viklund wrote:
> At 09:49 2002-08-07 -0700, costinm@covalent.net wrote:
> 
>  >A 30-step process... I don't know about other people, but I find it scary.
> 
> I agree. That's why I thought it is so important with a functional
> "ant download" target. Then it becomes a three steps process.
> The manual way should still be explained in BUILDING.txt.
> 
> OTOH if the download target is kept up-to-date, it might suffice with a
> reference to build.properties for those who want/must use manual download.
> 
>     /Fredrik
> 
> 
> 
> --
> To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
> For additional commands, e-mail: <ma...@jakarta.apache.org>

-- 
________________________________________________________________
Patrick Luby                     Email: patrick.luby@sun.com
Sun Microsystems                         Phone: 408-276-7471
901 San Antonio Road, USCA14-303
Palo Alto, CA 94303-4900
________________________________________________________________


--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>


Re: [5.0] Build notes - new BUILDING.txt

Posted by Fredrik Viklund <fr...@biotech.kth.se>.
At 09:49 2002-08-07 -0700, costinm@covalent.net wrote:

 >A 30-step process... I don't know about other people, but I find it scary.

I agree. That's why I thought it is so important with a functional
"ant download" target. Then it becomes a three steps process.
The manual way should still be explained in BUILDING.txt.

OTOH if the download target is kept up-to-date, it might suffice with a
reference to build.properties for those who want/must use manual download.

	/Fredrik



--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>


Re: [5.0] Build notes - new BUILDING.txt

Posted by co...@covalent.net.
A 30-step process... I don't know about other people, but I find it
scary.

I think the only solution ( at least for 5.0 ) is to start spliting the
code in components, with 'tomcat' having minimal dependencies and 
different components having specific deps and build procedures.

For example all the dbcp will be required for the JDBC realm, which will
be a separate 'module'. And so on - even the examples app ( which requires
quite a few libs ) can be a separate 'module'.

This way people will be able to build tomcat quickly and easily ( get 
the sources and compile ). The only binaries they should need are jndi
if on JDK1.2 and JMX.  

One thing I tried in 3.3 was to organise the 'modules' as self-contained
webapps - that could be deployed, reloaded, etc. It didn't seem to catch,
so probably a different ( simpler ) solution need to be found.

I'm trying to get antlib to work ( in ant), maybe some code could be
reused. 

Costin

On Wed, 7 Aug 2002, Fredrik Viklund wrote:

> At 23:24 2002-08-04 -0400, Bob Herman wrote:
>  >I have heard a few people report that setting up a development
>  >environment was difficult.  Certainly reading through BUILDING.txt can
>  >make it seem complex.... anyway....
> 
> This is a proposal for a new BUILDING.txt.
> 
> For example: The reader is supposed to be able to fetch files using cvs but
> is told a dozen times or so to use zip-files for Windows and  gzip-files for
> Unix systems. At the same time, there is a warning not to check in
> "build.properties" which clearly directed to developers with write-access -
> who should know better whithout reading building.txt...
> 
> A few weeks ago I rewrote the file and posted it together with patches to
> make the download process for Tomcat 4.1 automatic.  Nobody seemed
> to notice and the changes were partly overrun and obsoleted by
> the transition to Tomcat 5.
> 
> However, the readability is very important in a file like this, and
> BUILDING.txt has definitely outgrown its original design.
> I think that anybody comparing the two files will find this version much
> easier to read.
> 
> At 18:48 2002-07-26 +0200, Remy Maucherat wrote:
>  >Tomcat 5 now builds (and runs), although the build process
>  >is not documented yet (and obviously is also lacking some testing).
> 
> I have not yet build version 5 and do not know the details of that process.
> Hopefully this file can start out as a template anyway.
> 
> Pleas read, comment, change and/or commit.
> 
> 	/Fredrik
> 
> 
> Building The Tomcat 5 Servlet/JSP Container
> ===========================================
> 
> This subproject contains the source code for Tomcat 5, a server that
> implements the Servlet 2.4 and JSP 2.0 specifications from the Java
> Community Process (http://www.jcp.org/). In order to build a binary
> distribution version of the container from a source distribution, you must
> have a Java Development Kit (JDK) for version 1.3 (or later) downloaded and
> installed (version 1.3.1 recommended).
> 
> Each package described below should be unpacked into its own subdirectory.
> To minimize the changes to the build.properties file, it is convenient to
> store the separate distributions below in subdirectories of one and the same
> directory.
> 
> E.g.
>    ../jakarta
>    ../jakarta/jakarta-ant-1.5
>    ../jakarta/jakarta-tomcat-5-src
> etc.
> 
> Building Jakarta-Tomcat 5 from source requires approximately 200 MB disk
> space, varying with how many of the depending packages you compile from
> source.
> 
> 
> (0) Download and Install a Java Development Kit
> 
> * Download a Java Development Kit (JDK) version 1.3 or later or a Standard
>    Edition Software Development Kit (J2SE SDK) version 1.4 or later from:
> 
>      http://java.sun.com/j2se/
> 
> * Install the JDK according to the instructions included with the release.
> 
> * Set an environment variable JAVA_HOME to the pathname of the directory
>    into which you installed the JDK release.
> 
> 
> (1) Download and Install Ant
> 
> * Ant 1.5 or later is required. Download a binary distribution from
> 
>      http://jakarta.apache.org/builds/jakarta-ant/release/v1.5/bin/
> 
> * Unpack the binary distribution into a convenient location so that the Ant
>    release resides in its own directory (conventionally named
>    "jakarta-ant-1.5"). The symbolic name "${ant.home}" refers to the full
>    pathname of the Ant release directory.
> 
> * Modify the PATH environment variable to include directory "${ant.home}/bin"
>    in its list.  This makes the "ant" command line script available, which will
>    be used to actually perform the build.
> 
> * You can test your installation of Ant by typing "ant -help" at the command
>    prompt.
> 
> 
> 
> (2) Download and Install the Tomcat Subproject Source Code
> 
> * Use anonymous CVS as described on the Jakarta web site
>    http://jakarta.apache.org/site/cvsindex.html or download a current source
>    distribution from:
> 
>      http://jakarta.apache.org/builds/jakarta-tomcat-4.0/nightly/src/
> 
>    If you want to compile the latest release, you will find the sources at
> 
>      http://jakarta.apache.org/builds/jakarta-tomcat-4.0/release/
> 
>    Unpack the files into a convenient location, preferably in an empty
>    subdirectory (that will later also be populated with supporting packages and
>    distributions.)
> 
> * The symbolic name "${tomcat.source}" is used to refer to the full pathname of
>    the release directory.
> 
> 
> (3) Automatic download of libraries and subprojects
> 
> * To build Tomcat, several libraries and subprojects are needed. The easiest
>    way to get them is to use the download build target to do automated
>    download.
> 
>    As the download proceeds, ant will use CVS to download sources that have
>    not yet had formal releases. For this to work, you need to have the cvs
>    command available in your PATH environment variable. If you don't have a
>    CVS command- line client, you can download sources or binaries from
> 
>      http://www.cvshome.org/downloads.html
> 
>    To automatically download the needed packages into, issue the command
> 
>      ant download
> 
>    This will fetch the packages described below for building the complete
>    Tomcat distribution into a directory hierarchy rooted in ../ resulting in
>    a convenient structure.
> 
>    If the downloads completes without errors, you can now continue with step
>    (29), "Building a binary distribution".
> 
>    If you are behind a firewall or using a proxy, you can edit the network
>    settings in build.properties.
> 
> 
> (4) Manual download and installation
> 
> * If the download fails or for some reason you want to fetch the files
>    manually, read on.
> 
> * If you are working in a Microsoft Windows environment, you may want to use
>    the zip files available from the directories listed below. If you are
>    working in a Unix- like environment the tar.gz-files may suit you better.
> 
> 
> (5) Download and Install Packages for JDK Version 1.3
> 
> * If you are using J2SDK version 1.4 or later you can skip this step
> 
> * If you are using the JDK version 1.3 you need to download
> 
>    - The JNDI Reference Implementation version 1.2.1 or later and
>    - The LDAP Service Provider Maintenance package version 1.2.3 or later
> 
>      They can both be found at
> 
>        http://java.sun.com/products/jndi/
> 
>      These files unpack into the current directory. It is therefore
>      convenient to create a directory (conventionally named jndi-1.2.1) and
>      unpack them both there so that "ldap.jar" and "jaas.jar" (from the LDAP
>      package) resides in the "lib" subdirectory of the JNDI directory,
>      parallel to "jndi.jar".
> 
> 
>    - The Java XML Pack Binary Distribution version 1.1.3 or later
> 
>      It can be found at
> 
>        http://java.sun.com/xml/downloads/javaxmlpack.html
> 
>      The symbolic name "${jaxp.home}" is used to refer to the full pathname
>      to the jaxp-1.x subdirectory of the Java XML Pack release directory.
> 
>      Make the "xalan.jar" file in the of this distribution available to Ant
>      (so that it can be used with the <style> tag) by copying it to
>      "${ant.home}/lib". It is located in the jaxp-1.x subdirectory of the
>      distribution.
> 
> 
>    - Xerces version 1.4.4 or later binary distribution
> 
>      It can be found at
> 
>        http://xml.apache.org/dist/xerces-j/
> 
>      In your build.properties file, you will need to set properties
>      differently based on which version of Xerces you are using:
> 
>      - For versions 1.4.4 up through and including 2.0.0beta3, uncomment
>        the Xerces 1.4.4... section in the build.properties file.
> 
>      - If you have defined both sets of properties, the newer (two files)
>        packaging will be loaded into the Tomcat you are building
> 
> 
> (6) Download and Install the Jakarta-Tomcat-Catalina Subproject
> 
> * Use anonymous CVS as described on the Jakarta web site
>    http://jakarta.apache.org/site/cvsindex.html or download a current source
>    distribution.
> 
> * By default, the build system will try to find this repository in the
>    "${tomcat.source}/../jakarta-tomcat-catalina" directory.
> 
> * The symbolic name "${catalina.home}" is used to refer to the full
>    pathname of the release directory.
> 
> 
> (7) Download and Install the Jakarta-Tomcat-Connectors Subproject
> 
> * Use anonymous CVS as described on the Jakarta web site
>    http://jakarta.apache.org/site/cvsindex.html or download a current source
>    distribution.
> 
> * By default, the build system will try to find this repository in the
>    "${tomcat.source}/../jakarta-tomcat-connectors" directory.
> 
> * The symbolic name "${jtc.home}" is used to refer to the full pathname of
>    the release directory.
> 
> 
> (8) Download and Install the Jasper 2 Distribution
> 
> * Use anonymous CVS as described on the Jakarta web site
>    http://jakarta.apache.org/site/cvsindex.html or download a current source
>    source distribution.
> 
> * By default, the build system will try to find this repository in the
>    "${tomcat.source}/../jakarta-tomcat-jasper2" directory.
> 
> * The symbolic name "${jasper.home}" is used to refer to the full pathname
>    of the release directory.
> 
> 
> (9) Download and Install the Servlet API Distribution
> 
> * Download a source or binary distribution from:
> 
>      http://jakarta.apache.org/builds/jakarta-servletapi-5/nightly/
> 
> * By default, the build system will try to find this repository in the
>    "${tomcat.source}/../jakarta-servletapi-5" directory.
> 
> * The symbolic name "${api.home}" is used to refer to the full pathname
>    of the release directory.
> 
> 
> (10) Download and Install the Commons Beanutils Distribution
> 
> * Download a source or binary distribution of version 1.3 or later from:
> 
>      http://jakarta.apache.org/builds/jakarta-commons/release/commons-beanutils
> 
> * By default, the build system will try to find this repository in the
>    "${tomcat.source}/../commons-beanutils-1.3" directory.
> 
> 
> (11) Download and Install the Commons Collections Distribution
> 
> * Download a soure or binary distribution of version 1.0 or later from:
> 
>      http://jakarta.apache.org/builds/jakarta-commons/release/commons-collections
> 
> * By default, the build system will try to find this repository in the
>    "${tomcat.source}/../commons-collections-2.0" directory.
> 
> 
> (12) Download and Install the Commons Digester Distribution
> 
> * Download a source or binary distribution of version 1.1.1 or later from:
> 
>      http://jakarta.apache.org/builds/jakarta-commons/release/commons-digester
> 
> * By default, the build system will try to find this repository in the
>    "${tomcat.source}/../commons-digester-1.2" directory.
> 
> 
> (13) Download and Install the Commons Logging Distribution
> 
> * Download a source or binary distribution of version 1.0.1 or later (nightly
>    build 20020728 or later) from:
> 
>      http://jakarta.apache.org/builds/jakarta-commons/nightly/commons-logging
> 
> * By default, the build system will try to find this repository in the
>    "${tomcat.source}/../commons-logging-1.0.1" directory.
> 
> 
> (14) Download and Install the Regexp Distribution
> 
> * Download a source or binary distribution of version 1.2 or later from:
> 
>      http://jakarta.apache.org/builds/jakarta-regexp/release/
> 
> * By default, the build system will try to find this repository in the
>    "${tomcat.source}/../jakarta-regexp-1.2" directory.
> 
> 
> (15) Download and Install the Commons Daemon Binary Distribution
> 
> * This is only required if you wish to be able to run Tomcat as a native
>    operating system daemon using commons-daemon.
> 
> * Download a source or binary distribution of version 20020731 or later from:
> 
>      http://jakarta.apache.org/builds/jakarta-commons/nightly/commons-daemon
> 
> * By default, the build system will try to find this repository in the
>    "${tomcat.source}/../commons-daemon" directory.
> 
> 
> (16) Downloading for a complete Tomcat distribution
> 
> * Steps 17-27 are optional, but are necessary to build a complete binary
>    distribution of Tomcat 5.
> 
> * Set the "full.dist" property to "on" in the build.properties file (see step
>    28) to build a complete distribution. Regular contributors to Tomcat are
>    encouraged to use the complete build option.
> 
> 
> (17) Download and Install Packages for JDK Version 1.3
> 
> * If you are using J2SDK version 1.4.0 or later you can skip this step.
> 
> * If you are using the JDK version 1.3 you need to download
> 
>    - The JDBC Optional Package API
> 
>      It can be found at
> 
>        http://java.sun.com/products/jdbc/download.html
> 
>      If necessary, rename the .jar file to jdbc2_0-stdext.jar.
> 
>      By default, the build system will try to find this repository in the
>      "${tomcat.source}/../jdbc2_0-stdext" directory.
> 
>    - Download and Install the JSSE 1.0.2 Reference Implementation
> 
>      Download the Java Secure Sockets Extension (JSSE) package version 1.0.2 or
>      later from
> 
>          http://java.sun.com/products/jsse/
> 
>      By default, the build system will try to find this repository in the
>      "${tomcat.source}/../jsse-1.0.2" directory.
> 
> 
> (18) Download and Install an Implementation of the JMX 1.0 Specification.
> 
> * This is only required if you wish to build the Config/Admin web application.
> 
> * This can be either MX4J (http://mx4j.sourceforge.net) or Sun JMX 1.0
>    Reference Implementation. The Tomcat binaries are distributed with MX4J.
> 
>    - Download MX4J (version 1.1 or later) from
> 
>        http://sourceforge.net/project/showfiles.php?group_id=47745
> 
>    - Alternately, download the JMX Instrumentation and Agent Reference
>      Implementation (version 1.0 or later) from
> 
>        http://java.sun.com/products/JavaManagement/download.html
> 
> * By default, the build system will try to find this repository in the
>    "${tomcat.source}/../mx4j-1.1" directory.
> 
> 
> (19) Download and Install the Java Activation Framework
> 
> * Download the Java Activation Framework package version 1.0.1 or later from
> 
>      http://java.sun.com/products/javabeans/glasgow/jaf.html
> 
> * By default, the build system will try to find this repository in the
>    "${tomcat.source}/../jaf-1.0.2" directory.
> 
> 
> (20) Download and Install JavaMail 1.2
> 
> * Download the JavaMail package version 1.2 or later from
> 
>      http://java.sun.com/products/javamail/index.html
> 
> * By default, the build system will try to find this repository in the
>    "${tomcat.source}/../javamail-1.2" directory.
> 
> 
> (21) Download and Install the Java Transaction APIs
> 
> * Download the Java Transaction API (JTA) package version 1.0.1 or later
>    from:
> 
>      http://java.sun.com/products/jta/
> 
> * By default, the build system will try to find this repository in the
>    "${tomcat.source}/../jta-spec1_0_1" directory.
> 
> 
> (22) Download and Install the Struts Binary Distribution
> 
> * Download a binary distribution of Struts 1.0.2 or later from:
> 
>      http://jakarta.apache.org/builds/jakarta-struts/release/
> 
> * By default, the build system will try to find this repository in the
>    "${tomcat.source}/../jakarta-struts-1.0.2" directory.
> 
> 
> (23) Download and Install the Tyrex Data Source Package
> 
> * Download the Tyrex JAR or release version 1.0 or later from:
> 
>      http://tyrex.exolab.org/download.html
> 
> * By default, the build system will try to find this repository in the
>    "${tomcat.source}/../tyrex-1.0" directory.
> 
> 
> (24) Download and Install the JUnit Testing Package
> 
> * This is only required if you wish to build and execute the unit tests
>    that are part of the Tomcat 5 source base.
> 
> * Download the JUnit unit test package version 3.7 or later from:
> 
>      http://www.junit.org/
> 
> * By default, the build system will try to find this repository in the
>    "${tomcat.source}/../junit3.7" directory.
> 
> 
> (25) Download and Install the Commons Modeler Binary Distribution
> 
> * This is only required if you wish to build the Config/Admin web
>    application.
> 
> * Download a binary distribution of version 1.0 or later from:
> 
>      http://jakarta.apache.org/builds/jakarta-commons/release/commons-modeler
> 
> * By default, the build system will try to find this repository in the
>    "${tomcat.source}/../commons-modeler-1.0" directory.
> 
> 
> (26) Download and Install the Commons DBCP Binary Distribution
> 
> * This is only required if you wish to use the database JDBC data source
>    factory.
> 
> * Download a source or binary distribution from:
> 
>    http://jakarta.apache.org/builds/jakarta-commons/nightly/commons-dbcp/
> 
> * By default, the build system will try to find this repository in the
>    "${tomcat.source}/../commons-dbcp" directory.
> 
> 
> (27) Download and Install the Commons Pool Binary Distribution
> 
> * This is only required if you wish to use the database JDBC data source
>    factory.)
> 
> * Download a binary distribution of version 1.0 or later from:
> 
>      http://jakarta.apache.org/builds/jakarta-commons/release/commons-pool/
> 
> * By default, the build system will try to find this repository in the
>    "${tomcat.source}/../commons-pool-1.0" directory.
> 
> 
> (28) Customize Build Properties for this Subproject
> 
> * Most Jakarta subprojects allow you to customize build properties (with
>    default values defined in the "build.xml" file.  This is done by creating
>    a text file named "build.properties" in the source distribution directory
>    (for property definitions local to this subproject) and/or your user home
>    directory (for property definitions shared across subprojects).
> 
> * You can use the included "build.properties.sample" file as a starting point
>    and adjust the properties, e.g. the locations of the packages described
>    above.
> 
> * Be *sure* that you do not check "build.properties" in to the CVS repository.
>    This file is local to your own development environment, and each developer
>    will have their own version.
> 
> 
> (29) Build A Binary Distribution
> 
> * Assuming you have a command shell open with ${tomcat.source} as the current
>    directory, you can issue the following command:
> 
>      ant -projecthelp
> 
> * If everything is installed correctly, you should see a list of the Ant
>    "targets" you might wish to build and short explanations for them.
> 
> * You can check that all dependencies are correctly installed by using the
>    following command:
> 
>      ant detect
> 
> * By convention, the "dist" target creates a complete binary distribution.  To
>    execute it, type the following commands:
> 
>      ant dist
> 
> * This will create a complete binary distribution of the subproject
>    (equivalent in structure to the corresponding binary distribution
>    downloadable from the Jakarta web site), in the "${tomcat.source}/dist"
>    directory.  It will have the contents described in the corresponding
>    "README.txt" file.
> 
> * See the document RUNNING.txt for instructions on how to start up and shut
>    down the servlet/JSP container.
> 
> 
> (30) Keeping your source up-to-date and contributing to the project
> 
> * If you want access to the latest sources for any reason, you should
>    definitely consider using CVS to get the source tree. You can find more
>    information on using CVS with the Jakarta project at
> 
>      http://jakarta.apache.org/site/cvsindex.html
> 
> * If you want to contribute to the project in any way, you will find essential
>    information at
> 
>      http://jakarta.apache.org/site/guidelines.html
> 
> 
> --
> To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
> For additional commands, e-mail: <ma...@jakarta.apache.org>
> 
> 


--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>