<!--
  -- Example Ant buildfile
  --
  -- CS 530 Section 2
  -- Spring 2003
  --
  -->

<project name="example"
         default="all"
         basedir=".">

  <description> An Example Ant buildfile.xml </description>

  <!-- Magic property for forcing latest compiler version -->
  <property name="build.compiler" value="modern"/>

  <!-- Directories -->
  <property name="src.dir" value="src"/>
  <property name="lib.dir" value="lib"/>
  <property name="dst.dir" value="dest"/>
  <property name="doc.dir" value="docs"/>

  <!-- Target File -->
  <property name="jar.file" value="example.jar"/>

  <!-- ClassPath -->
  <path id="classpath">
    <fileset dir="${lib.dir}"> <include name="**/*.jar"/> </fileset>
    <pathelement path="${dst.dir}"/>
  </path>

  <!-- Public Targets -->

  <target name="all"
          depends="code,jar,docs"
          description="Default target. Does everything.">
    <!-- All logic taken care of with the targets in depends -->
  </target>

  <target name="docs"
          description="Generates the javadoc.">
    <javadoc packagenames="edu.*"
             sourcepath="${src.dir}"
             destdir="${doc.dir}"
             windowtitle="Example API"
             author="true"
             version="true"
             use="true">
      <classpath refid="classpath"/>
      <link href="http://java.sun.com/j2se/1.4/docs/api/"/>
    </javadoc>
  </target>

  <target name="clean"
          description="Delete all generated objects">
    <delete dir="${dst.dir}"/>
    <delete dir="${doc.dir}"/>
    <delete file="${jar.file}"/>
  </target>

  <!-- Non-public targets --> 

  <target name="jar" depends="code">
    <jar jarfile="${jar.file}"
         basedir="${dst.dir}"
         update="yes">
      <manifest>
        <attribute name="Main-Class" value="edu.sdsu.example.MainClass"/>
      </manifest>
    </jar>
  </target>

  <target name="code">
    <javac destdir="${dst.dir}" debug="on" deprecation="on">
      <src path="${src.dir}"/>
      <classpath refid="classpath"/>
    </javac>
  </target>

</project>