blob: 23c177f171e8d29fa61493880d70e14d8d745bfa [file] [log] [blame]
<project name="Servlet API Classes" default="compile" basedir=".">
<!-- =================== Environmental Properties ======================= -->
<!-- Load user property definition overrides -->
<property file="build.properties"/>
<property file="${user.home}/build.properties"/>
<!-- Establish property definition defaults -->
<property name="compile.debug" value="true"/>
<property name="compile.deprecation" value="false"/>
<property name="compile.optimize" value="true"/>
<property name="implementation.revision" value="public_draft"/>
<property name="servlet-api.build" value="build"/>
<property name="servlet-api.dist" value="dist"/>
<property name="servlet-api.jar" value="${servlet-api.dist}/lib/servlet-api.jar"/>
<path id="examples.classpath">
<pathelement location="${servlet-api.build}/classes"/>
</path>
<!-- ===================== Prepare Directories ========================= -->
<target name="prepare">
<!-- "Build" Hierarchy -->
<mkdir dir="${servlet-api.build}"/>
<mkdir dir="${servlet-api.build}/classes"/>
<mkdir dir="${servlet-api.build}/docs"/>
<mkdir dir="${servlet-api.build}/docs/api"/>
<mkdir dir="${servlet-api.build}/examples"/>
<!-- "Dist" Hierarchy -->
<mkdir dir="${servlet-api.dist}"/>
<mkdir dir="${servlet-api.dist}/docs"/>
<mkdir dir="${servlet-api.dist}/docs/api"/>
<mkdir dir="${servlet-api.dist}/lib"/>
<mkdir dir="${servlet-api.dist}/src"/>
<mkdir dir="${servlet-api.dist}/examples"/>
<uptodate property="docs.uptodate" targetfile="${servlet-api.build}/docs/api/index.html">
<srcfiles dir="src/share" includes="**/*.java" />
</uptodate>
</target>
<!-- ======================= Static Files ============================== -->
<target name="static" depends="prepare">
<!-- "Dist" Hierarchy -->
<copy todir="${servlet-api.dist}">
<fileset dir="." includes="BUILDING.txt"/>
<fileset dir="." includes="LICENSE"/>
<fileset dir="." includes="README.txt"/>
</copy>
</target>
<!-- ======================== Compile Classes ========================== -->
<target name="compile" depends="static"
description="Compile API classes (Default)">
<!-- Java classes -->
<javac srcdir="src/share" destdir="${servlet-api.build}/classes"
debug="${compile.debug}" deprecation="${compile.deprecation}"
optimize="${compile.optimize}"/>
<!-- Associated property files -->
<copy todir="${servlet-api.build}/classes">
<fileset dir="src/share">
<include name="**/*.properties"/>
</fileset>
</copy>
<!-- Servlet resources -->
<copy todir="${servlet-api.build}/classes/javax/servlet/resources">
<fileset dir="src/share/dtd" includes="*.dtd,*.xsd">
<exclude name="jsp*.dtd"/>
<exclude name="web-jsp*.dtd"/>
</fileset>
</copy>
</target>
<!-- ======================== Build JavaDoc =========================== -->
<target name="javadoc" depends="prepare" unless="docs.uptodate">
<javadoc packagenames="javax.servlet.*"
sourcepath="${basedir}/src/share"
destdir="${servlet-api.build}/docs/api"
use="true"
windowtitle="Servlet API Documentation"
doctitle="Servlet API Documentation"
bottom="Copyright &amp;copy; 1999-2002 The Apache Software Foundation. All Rights Reserved."/>
</target>
<!-- ======================== Build JavaDoc =========================== -->
<target name="examples" depends="prepare">
<copy todir="${servlet-api.build}/examples">
<fileset dir="examples">
<exclude name="build.*"/>
</fileset>
</copy>
<javac srcdir="examples/WEB-INF/classes"
destdir="${servlet-api.build}/examples/WEB-INF/classes"
debug="${compile.debug}" deprecation="${compile.deprecation}"
optimize="${compile.optimize}"
excludes="**/CVS/**">
<classpath refid="examples.classpath" />
</javac>
<jar jarfile="${servlet-api.dist}/examples/examples.war"
basedir="${servlet-api.build}/examples" includes="**"/>
</target>
<!-- ===================== Distribution Files ========================= -->
<target name="jar" depends="compile"
description="Create the jar">
<!-- Prepare Manifest -->
<copy tofile="${servlet-api.build}/manifest"
file="src/etc/manifest" overwrite="yes">
<filterset>
<filter token="implementation.revision"
value="${implementation.revision}"/>
</filterset>
</copy>
<!-- Create JAR file -->
<jar jarfile="${servlet-api.jar}"
basedir="${servlet-api.build}/classes"
manifest="${servlet-api.build}/manifest">
<include name="javax/servlet/**"/>
<exclude name="javax/servlet/jsp/**"/>
</jar>
</target>
<target name="dist" depends="compile,examples,javadoc,jar"
description="Create binary distribution">
<!-- Copy Javadocs -->
<copy todir="${servlet-api.dist}/docs/api">
<fileset dir="${servlet-api.build}/docs/api"/>
</copy>
<!-- Copy API source files -->
<copy todir="${servlet-api.dist}/src">
<fileset dir="src/share"/>
</copy>
</target>
<!-- ====================== Clean Generated Files ===================== -->
<target name="clean"
description="Clean previous build results">
<delete dir="${servlet-api.build}"/>
<delete dir="${servlet-api.dist}"/>
</target>
<!-- ========================= All In One Build ======================= -->
<target name="all" depends="clean,dist"
description="Clean, compile, and dist"/>
</project>