<?xml version="1.0"?>

<project name="NGram" default="jar">
	<property file="${user.home}/build.properties"/>
	<property file="${basedir}/build.properties"/>
 
 	<property name="dir.hadoop" value="/home/pmw/Research/Hadoop/hadoop-0.18.2"/>
	<property name="dir.tests" value="tests"/>
	<property name="dir.doc" value="doc"/>
	<property name="javac.args" value="-Xlint:unchecked"/>

	<path id="classpath">
		<pathelement location="${build.classes}"/>
		<fileset dir="${dir.hadoop}">
			<include name="**/*.jar"/>
			<exclude name="**/excluded/"/>
		</fileset>
		<pathelement location="${conf.dir}"/>
	</path>

	<path id="classpath-tests">
		<pathelement location="."/>
		<pathelement location="${dir.tests}"/>
		<fileset dir="/usr/share/junit-4">
			<include name="**/*.jar"/>
		</fileset>
		<fileset dir="/usr/share/hamcrest-core">
			<include name="**/*.jar"/>
		</fileset>
	</path>

	<target name="compile">
		<javac 
		 srcdir="."
		 includes="*.java"
		 debug="${javac.debug}"
		 optimize="${javac.optimize}"
		 deprecation="${javac.deprecation}">
			<compilerarg line="${javac.args}"/>
			<classpath refid="classpath"/>
		</javac>    
	</target>

	<target name="tests-compile" depends="compile">
		<javac
		 srcdir="${dir.tests}"
		 includes="*.java">
			<compilerarg line="${javac.args}"/>
			<classpath refid="classpath-tests"/>
		</javac>
	</target>

	<target name="tests" depends="tests-compile">
		<java
		 dir="${dir.tests}"
		 classname="org.junit.runner.JUnitCore">
		 	<classpath refid="classpath-tests"/>
			<arg value="WordManipulatorTest"/>
		</java>
	</target>

	<target name="docs">
		<javadoc
		 destdir="${dir.doc}"
		 classpathref="classpath-tests">
		 	<sourcefiles>
				<fileset dir=".">
					<include name="*.java"/>
				</fileset>
			</sourcefiles>
		</javadoc>
	</target>

	<target name="jar" depends="compile, tests, docs">
		<jar
		 jarfile="ngram.jar"
		 basedir="."
		 includes="*.class">
		</jar>
	</target>

	<target name="clean">
		<delete includeemptydirs="true">
			<fileset dir=".">
				<include name="*.class"/>
				<include name="*.jar"/>
			</fileset>
			<fileset dir="${dir.tests}">
				<include name="*.class"/>
			</fileset>
			<fileset dir="${dir.doc}">
				<include name="**/*"/>
				<include name="*"/>
			</fileset>
		</delete>
	</target>
</project>
