<?xml version="1.0"?>

<project name="HTTPClient Project" default="compile" basedir=".">

  <!-- =================================================================== -->
  <!-- Defines configurable properties                                     -->
  <!-- =================================================================== -->

  <property name="package.names"   value="HTTPClient.*,HTTPClient.http.*,HTTPClient.https.*"/>
  
  <property name="src.dir"         value="."/>

  <property name="build.dir"       value="build"/>
  <property name="build.classes"   value="${build.dir}/classes"/>
  <property name="build.javadocs"  value="${build.dir}/javadocs"/>
  <property name="build.src"       value="${build.dir}/src"/>

  <property name="dist.dir"        value="dist"/>

  <property name="jsse.dir"        value="../jsse1.0.2"/>
  <property name="jcert.jar"       value="${jsse.dir}/lib/jcert.jar"/>
  <property name="jnet.jar"        value="${jsse.dir}/lib/jnet.jar"/>
  <property name="jsse.jar"        value="${jsse.dir}/lib/jsse.jar"/>

  <path id="build.classpath">
    <pathelement location="${jcert.jar}"/>
    <pathelement location="${jnet.jar}"/>
    <pathelement location="${jsse.jar}"/>
  </path>

  <!-- =================================================================== -->
  <!-- Removes all generated files                                         -->
  <!-- =================================================================== -->

  <target name="clean">
    <delete dir="${build.dir}"/>
  </target>

  <!-- =================================================================== -->
  <!-- Compiles the source code                                            -->
  <!-- =================================================================== -->

  <target name="compile">
    <mkdir dir="${build.classes}/HTTPClient"/>

    <copy todir="${build.src}/HTTPClient">
      <fileset dir="." >
        <include name="*.java"/>
        <include name="http/*.java"/>
        <include name="https/*.java"/>
      </fileset>
    </copy>

    <javac srcdir="${build.src}"
           destdir="${build.classes}"
           debug="on"
           deprecation="on">
      <classpath refid="build.classpath"/>
    </javac>
  </target>

  <!-- =================================================================== -->
  <!-- Creates the jar archives                                            -->
  <!-- =================================================================== -->

  <target name="jars" depends="compile">
    <jar jarfile="${build.dir}/httpclient.jar"
         basedir="${build.classes}"/>
  </target>

  <!-- =================================================================== -->
  <!-- Creates the API documentation                                       -->
  <!-- =================================================================== -->

  <target name="javadocs">
    <mkdir dir="${build.javadocs}"/>

    <javadoc packagenames="${package.names}"
             sourcepath="${build.src}"
             destdir="${build.javadocs}"
             author="true"
             version="true"
             use="true"
             windowtitle="HTTPClient API Documentation"
             doctitle="HTTPClient API Documentation">
      <classpath refid="build.classpath"/>
    </javadoc>
  </target>

  <!-- =================================================================== -->
  <!-- Executes all of the defined targets                                 -->
  <!-- =================================================================== -->

  <target name="all" depends="clean,compile,jars,javadocs"/>

  <!-- =================================================================== -->
  <!-- Copies files to create a distribution                               -->
  <!-- =================================================================== -->

  <target name="dist" depends="compile,jars,javadocs">
    <mkdir dir="${dist.dir}"/>

    <copy todir="${dist.dir}">
      <fileset dir=".">
        <include name="0COPYRIGHT"/>
        <include name="0LICENSE"/>
        <include name="0README"/>
        <include name="README"/>
        <include name="doc/**"/>
      </fileset>
      <fileset dir="${build.dir}">
        <include name="httpclient.jar"/>
        <include name="javadocs/**"/>
        <include name="src/**"/>
      </fileset>
    </copy>
  </target>

</project>

