# -------------------------------------------------------------------
# build.properties.sample
#
# This is an example "build.properties" file, used to customize 
# building Jakarta Coyote for your local environment.  
# Make any changes you need, and rename this file to 
# "build.properties" 
#
# $Id$
# -------------------------------------------------------------------


# -------------------------------------------------------------------
# CONFIGURATION OPTIONS
# -------------------------------------------------------------------

# 


# -------------------------------------------------------------------
# EXTERNAL DEPENDENCIES 
# -------------------------------------------------------------------

# tomcat33.home -- Tomcat 3.3 distribution directory
tomcat33.home=../../jakarta-tomcat/build/tomcat

# catalina.home -- Tomcat 4.x distribution directory
catalina.home=../../jakarta-tomcat-4.0/build

# tomcat-util.jar -- Tomcat util package
tomcat-util.jar=../util/build/lib/tomcat-util.jar

# junit.jar -- JUnit classes (http://junit.org)
junit.jar=/java/junit/junit.jar

