+<target name="compile-site" depends="prepare-site,clean-site">
+ <!-- update transpiler -->
+ <copy file="${swingjsdir}/net.sf.j2s.core.jar" todir="${eclipse-inst}/dropins" overwrite="true" failonerror="true"/>
+ <!-- update the git repo linked to the eclipse workspace -->
+ <exec executable="/usr/bin/git" outputproperty="git.commit" failifexecutionfails="true">
+ <arg value="rev-parse" />
+ <arg value="--short" />
+ <arg value="HEAD" />
+ </exec>
+ <!-- update and checkout the same commit in the workspace project -->
+ <exec executable="/usr/bin/git" failifexecutionfails="true" dir="${eclipse-workrepo}">
+ <arg value="reset" />
+ <arg value="--hard" />
+ </exec>
+ <exec executable="/usr/bin/git" failifexecutionfails="true" dir="${eclipse-workrepo}">
+ <arg value="pull" />
+ </exec>
+ <exec executable="/usr/bin/git" failifexecutionfails="true" dir="${eclipse-workrepo}">
+ <arg value="checkout" />
+ <arg value="${git.commit}" />
+ </exec>
+ <!-- custom classpath for .js builds -->
+ <copy file=".classpath.js" tofile="${eclipse-workrepo}/.classpath" overwrite="true"/>
+ <!-- clean eclipse log -->
+ <delete file="${eclipse-work}/.metadata/.log"/>
+
+ <!-- execute the eclipse build - the build may fail but valid javascript may still be produced, so we ignore return codes -->
+ <exec executable="${eclipse-exec}" failonerror="no">
+ <arg value="-nosplash"/>
+ <arg value="--launcher.suppressErrors"/>
+ <arg value="-application"/>
+ <arg value="org.eclipse.jdt.apt.core.aptBuild"/>
+ <arg value="-data"/>
+ <arg value="${eclipse-work}"/>
+ </exec>
+ <!-- report log -->
+ <exec executable="/bin/cat">
+ <arg value="${eclipse-work}/.metadata/.log"/>
+ </exec>
+ <!-- TODO: run jslint and something else here to check we have a complete set of .js files for java -->
+ <!-- possibly compare timestamps between .js files and their mate in source - any newer or not present triggers a new build -->