<project name="Servlet API Classes" default="compile" basedir=".">

  <!-- =================== Environmental Properties ======================= -->

  <property name="compile.debug"       value="true"/>
  <property name="compile.deprecation" value="false"/>
  <property name="compile.optimize"    value="true"/>
  <property name="implementation.revision" value="1"/>
  <property name="servletapi.build" value="build"/>
  <property name="servletapi.dist"  value="dist"/>
  <property name="servletapi.lib"   value="lib"/>

  <!-- ===================== Prepare Directories ========================= -->
  <target name="prepare">
    <!-- "Build" Hierarchy -->
    <mkdir dir="${servletapi.build}"/>
    <mkdir dir="${servletapi.build}/classes"/>
    <mkdir dir="${servletapi.build}/docs"/>
    <mkdir dir="${servletapi.build}/docs/api"/>
    <!-- "Dist" Hierarchy -->
    <mkdir dir="${servletapi.dist}"/>
    <mkdir dir="${servletapi.dist}/docs"/>
    <mkdir dir="${servletapi.dist}/docs/api"/>
    <mkdir dir="${servletapi.dist}/lib"/>
    <mkdir dir="${servletapi.dist}/src"/>
    <!-- "Library" Hierarchy -->
    <mkdir dir="${servletapi.lib}"/>
  </target>

  <!-- ======================== Compile Classes ========================== -->
  <target name="compile" depends="prepare">
    <javac srcdir="src/share" destdir="${servletapi.build}/classes"
           debug="${compile.debug}" deprecation="${compile.deprecation}"
        optimize="${compile.optimize}"/>
    <copy todir="${servletapi.build}/classes">
        <fileset dir="src/share">
          <exclude name="**/*.java"/>
        </fileset>
    </copy>
  </target>

  <!-- ======================== Build JavaDoc =========================== -->
  <target name="javadoc" depends="prepare">
    <javadoc packagenames="javax.servlet.*"
             sourcepath="${basedir}/src/share"
             destdir="${servletapi.build}/docs/api"
             use="true"
             windowtitle="Servlet and JavaServer Pages API Documentation"
             doctitle="Servlet and JavaServer Pages API Documentation"
             bottom="Copyright &amp;copy; 1999-2002 The Apache Software Foundation.  All Rights Reserved."/>
  </target>

  <!-- ===================== Distribution Files ========================= -->
  <target name="dist" depends="compile,javadoc">
    <copy todir="${servletapi.dist}/docs/api">
        <fileset dir="${servletapi.build}/docs/api"/>
    </copy>

    <copy tofile="${servletapi.build}/manifest"
            file="src/etc/manifest" overwrite="yes">
      <filterset>
        <filter token="implementation.revision"
                value="${implementation.revision}"/>
      </filterset>
    </copy>

    <jar jarfile="${servletapi.dist}/lib/servlet.jar"
         basedir="${servletapi.build}/classes"
        manifest="${servletapi.build}/manifest"/>

    <copy file="LICENSE" tofile="${servletapi.dist}"/>
    <copy todir="${servletapi.dist}/src">
        <fileset dir="src/share"/>
    </copy>
    <copy file="${servletapi.dist}/lib/servlet.jar" tofile="${servletapi.lib}/servlet.jar"/>

  </target>

  <!-- ====================== Clean Generated Files ===================== -->
  <target name="clean">
    <delete dir="${servletapi.build}"/>
    <delete dir="${servletapi.dist}"/>
    <delete dir="${servletapi.lib}"/>
  </target>

  <!-- ========================= All In One Build ======================= -->
  <target name="all" depends="clean,dist"/>

</project>
