Merge pull request #74 from lukeorland/fixup-4.1-release

Fixup 4.1 release
diff --git a/.gitignore b/.gitignore
index 6aedb1c..4594b7f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -69,3 +69,12 @@
 test/scripts/tokenization/diff
 test/scripts/tokenization/output
 .cachepipe
+
+joshua-decoder.org
+release
+test/bn-en/samt/output.scores
+test/decoder/n-ary/diff
+test/decoder/n-ary/log
+test/decoder/n-ary/output
+test/decoder/n-ary/output.scores
+debug.txt
diff --git a/build.xml b/build.xml
index dcb198d..189952c 100644
--- a/build.xml
+++ b/build.xml
@@ -38,10 +38,7 @@
   <!-- ~~~~~ Init build task ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
 
   <!-- Create the build directory for compiled class files -->
-  <target name="init" depends="set-joshua-home,resolve">
-    <tstamp />
-    <mkdir dir="${build}" />
-    <mkdir dir="${lib}" />
+  <target name="init" depends="set-joshua-home, resolve, download-thrax, download-hadoop">
   </target>
 
   <!-- Check for environment variables -->
@@ -50,7 +47,7 @@
   </target>
 
   <target name="set-joshua-version" unless="env.JOSHUA_VERSION">
-    <fail message="Please set the $JOSHUA_VERSION environment variable." />
+    <fail message="Please set the JOSHUA_VERSION environment variable." />
   </target>
 
   <!-- Check for environment variables -->
@@ -102,7 +99,7 @@
     </exec>
   </target>
 
-  <target name="thrax" depends="set-joshua-home">
+  <target name="download-thrax" depends="set-joshua-home">
     <exec executable="git">
       <arg value="submodule" />
       <arg value="init" />
@@ -111,6 +108,9 @@
       <arg value="submodule" />
       <arg value="update" />
     </exec>
+  </target>
+
+  <target name="thrax" depends="set-joshua-home">
     <subant buildpath="thrax">
       <property name="env.HADOOP" value="${env.JOSHUA}/${lib}" />
       <property name="env.HADOOP_VERSION" value="0.20.203.0" />
@@ -119,9 +119,22 @@
     </subant>
   </target>
 
+  <!-- Download the hadoop tool tarball (not jar library), which gets used by
+       pipeline.pl and test/hadoop/ -->
+  <target name="download-hadoop" depends="set-joshua-home">
+    <get
+      src="http://archive.apache.org/dist/hadoop/core/hadoop-0.20.2/hadoop-0.20.2.tar.gz"
+      dest="${env.JOSHUA}/lib"
+      usetimestamp="true"
+      skipexisting="true" />
+  </target>
+
   <!-- ~~~~~ Java build tasks ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
 
-  <target name="all" depends="java,giza,kenlm,parallelize">
+  <target name="all" depends="giza, kenlm, parallelize">
+  </target>
+
+  <target name="devel" depends="init, java, all">
   </target>
 
   <!-- Compile the Java code. -->
@@ -173,7 +186,7 @@
   </target>
 
   <!-- Create a versioned release -->
-  <target name="release" depends="set-joshua-version, resolve">
+  <target name="release" depends="devel-clean, set-joshua-version, init">
     <exec executable="./scripts/support/make-release.sh">
       <arg value="${env.JOSHUA_VERSION}" />
     </exec>
@@ -246,6 +259,27 @@
   </target>
 
 
+  <!-- Delete *all* generated files,
+       including files and directories not tracked by git -->
+  <target name="devel-clean">
+
+    <input
+      message="WARNING: all untracked, ignored files will be removed. Continue? (y/n) "
+      validargs="y,n"
+      addproperty="do.delete"
+    />
+    <condition property="do.abort">
+      <equals arg1="n" arg2="${do.delete}"/>
+    </condition>
+    <fail if="do.abort">Build aborted by user.</fail>
+
+    <!-- Delete untracked, ignored files and directories. -->
+    <exec executable="git">
+      <arg value="clean" />
+      <arg value="-fdX" />
+    </exec>
+  </target>
+
   <!-- ~~~~~ Javadoc ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
 
   <!-- Compile the Javadocs into web pages -->
diff --git a/doc/develop.markdown b/doc/develop.markdown
index 181fad7..14b7cb0 100644
--- a/doc/develop.markdown
+++ b/doc/develop.markdown
@@ -9,11 +9,21 @@
 [http://github.com/joshua-decoder/joshua](http://github.com/joshua-decoder/joshua).
 Active development is being done in the `devel` branch.
 
-## Tools required
+## Development tools required
 
 * [Apache Ant](http://ant.apache.org/) version 1.8.0 or greater
 * [Doxygen](http://www.doxygen.org) version 1.8.0 or greater
 * A POSIX environment
+* Git
+* (optional) Eclipse
+  If you are developing Joshua using Eclipse, please import the GoogleStyle 
+  formatter configuration `eclipse-java-google-style.xml`, which can be 
+  downloaded from 
+  [http://code.google.com/p/google-styleguide/source/browse/trunk](http://code.google.com/p/google-styleguide/source/browse/trunk).
+
+  In Eclipse preferences, go to *Java* -> *Code Style* -> *Formatter*. Then click 
+  on *Import...* and choose `eclipse-java-google-style.xml`.
+
 
 ## Discussion list
 
@@ -35,16 +45,6 @@
 
 TBD
 
-### Tools
-
-If you are developing Joshua using Eclipse, please import the GoogleStyle 
-formatter configuration `eclipse-java-google-style.xml`, which can be 
-downloaded from 
-[http://code.google.com/p/google-styleguide/source/browse/trunk](http://code.google.com/p/google-styleguide/source/browse/trunk).
-
-In Eclipse preferences, go to *Java* -> *Code Style* -> *Formatter*. Then click 
-on *Import...* and choose `eclipse-java-google-style.xml`.
-
 ### Format
 
 * 100 characters maximum line width
diff --git a/scripts/support/make-release.sh b/scripts/support/make-release.sh
index 5d08a4d..b180269 100755
--- a/scripts/support/make-release.sh
+++ b/scripts/support/make-release.sh
@@ -25,6 +25,7 @@
     joshua-$version/test \
     joshua-$version/examples \
     joshua-$version/thrax/bin/thrax.jar \
+    joshua-$version/thrax/scripts \
 		joshua-$version/joshua-decoder.org \
     joshua-$version/joshua-decoder