<?xml version="1.0" encoding="UTF-8"?>

<!-- Ant build file for COMP2100/2500 Assignment 2 
     Author: Ian Barnes (with ideas contributed by James Barker)
     $Revision: 2005.3 $, $Date: 2005/05/18 05:41:40 $ -->

<project name="oops"
	 default="compile"
	 basedir=".">
  <description>
    Oops: A graphical viewer for OpenOffice.org Writer documents.
  </description>

  <target name="-init">
    <!-- Create a time stamp -->
    <tstamp>
      <format property="timestamp"
	      pattern="yyyy-MM-dd-HH-mm"
	      locale="en-AU" />
    </tstamp>
  </target>

  <target name="compile"
	  depends="-init"
	  description="Bring build up to date.">
    <depend srcdir="."
	    destdir="."
	    closure="no" />
    <javac srcdir="."
	   destdir="." />
  </target>

  <target name="clean"
	  description="Remove all generated files">
    <!-- Java .class files -->
    <delete>
      <fileset dir="."
	       includes="**/*.class" />
    </delete>
    <!-- Javadoc documentation -->
    <delete dir="docs" />
    <!-- All output files from the sample documents -->
    <delete>
      <fileset dir="." includes="sample*.txt" />
      <fileset dir="." includes="sample*.xml" />
      <fileset dir="." includes="sample*.html" />
    </delete>
    <!-- Executable and submission Jar files -->
    <delete>
      <fileset dir="." includes="oops-*.jar" />
      <fileset dir="." includes="a2.jar" />
    </delete>
  </target>
  
  <target name="rebuild"
	  depends="clean, compile"
	  description="Recompile everything from scratch" />
  
  <target name="executable"
	  depends="compile"
	  description="Create a timestamped executable JAR file">
    <jar basedir="."
	 destfile="oops-${timestamp}.jar"
	 includes="**/*.class">
      <manifest>
	<attribute name="Main-class"
		   value="comp2100.oops.Oops" />
      </manifest>
    </jar>
  </target>
  
  <target name="backup"
          depends="-init"
	  description="Create a timestamped backup JAR file">
    <jar basedir="."
	 destfile="backup-${timestamp}.jar"
	 includes="**/*.java, build.xml" />
  </target>

  <target name="submission"
	  description="Create a Jar file suitable for submission">
    <jar basedir="."
         destfile="a2.jar"
	 includes="**/*.java" />
  </target>
  
  <target name="docs"
	  depends="compile"
	  description="Create Javadoc documentation in docs directory">
    <mkdir dir="docs" />
    <javadoc sourcepath="."
	     destdir="docs"
	     private="yes"
	     version="yes"
	     author="yes"
	     linksource="yes"
	     link="http://java.sun.com/j2se/1.5.0/docs/api">
      <fileset dir="." />
    </javadoc>
  </target>

  <target name="all"
          depends="compile, docs, executable, backup, submission"
	  description="Bring everything up to date" />

</project>
