<?xml version="1.0" encoding="iso-8859-1"?>
<project name="JiGo" default="help" basedir=".">
<description>
Compiles the JiGo suite.
</description>
<target name="help">
<echo>all - Build all JiGo programs</echo>
<echo>guesser - Build JiGo Guesser</echo>
<echo>presenter - Build JiGo Presenter</echo>
<echo>replayer - Build JiGo Replayer</echo>
<echo>highlight - Build Demo: Higlighted Goban</echo>
<echo>random - Build Demo: Random Player</echo>
<echo>simple - Build Demo: Simple Goban</echo>
<echo>doc - Build JiGo API Documentation</echo>
</target>
<property name="build.compiler" value="javac1.3" />
<property name="build.sysclasspath" value="ignore"/>
<property name="src" location="source"/>
<property name="lib" location="lib"/>
<property name="build" location="build"/>
<property name="conf" location="conf"/>
<property name="api" location="javadoc"/>
<property name="dist" location="dist"/>
<property name="app.vendor" value="White Magic Software, Ltd."/>
<property name="app.archive" value="jigo"/>
<property name="app.common" value="com.joot.jigo"/>
<property name="app.version" value="build.properties"/>
<property file="${app.version}"/>
<defaultexcludes add="**/.git/**"/>
<defaultexcludes add="**/.gitignore"/>
<defaultexcludes add="**/.data"/>
<defaultexcludes add="**/*.odt"/>
<defaultexcludes add="**/dist/**"/>
<property name="compile.debug" value="false"/>
<available classname="proguard.ProGuard" property="proguard.present" />
<target name="init">
<mkdir dir="${build}" />
<mkdir dir="${lib}" />
</target>
<target name="all" depends="clean,init">
<antcall target="replayer" />
<antcall target="presenter" />
<antcall target="guesser" />
<antcall target="designer" />
<antcall target="highlight" />
<antcall target="random" />
<antcall target="simple" />
</target>
<macrodef name="build">
<attribute name="target" default="replayer" />
<attribute name="path" default="com/joot/jigo/replayer/Replayer.java" />
<attribute name="main" default="com.joot.jigo.replayer.Replayer" />
<sequential>
<javac srcdir="${src}" destdir="${build}" nowarn="true">
<compilerarg value="-Xlint" />
<include name="@{path}" />
</javac>
<property name="build-name" value="@{target}" />
<jar jarfile="${lib}/${build-name}.jar" basedir="${build}">
<manifest>
<attribute name="Main-Class" value="@{main}" />
</manifest>
</jar>
<antcall target="obfuscate" />
</sequential>
</macrodef>
<target name="replayer" depends="clean,init" description="JiGo Replayer">
<build target="replayer"
path="com/joot/jigo/replayer/Replayer.java"
main="com.joot.jigo.replayer.Replayer" />
</target>
<target name="guesser" depends="clean,init" description="JiGo Guesser">
<build target="guesser"
path="com/joot/jigo/guesser/Guesser.java"
main="com.joot.jigo.guesser.Guesser" />
</target>
<target name="presenter" depends="clean,init" description="JiGo Presenter">
<build target="presenter"
path="com/joot/jigo/presenter/Presenter.java"
main="com.joot.jigo.presenter.Presenter" />
</target>
<target name="designer" depends="clean,init" description="JiGo Designer">
<build target="designer"
path="com/joot/jigo/designer/Designer.java"
main="com.joot.jigo.designer.Designer" />
</target>
<target name="simple" depends="clean,init" description="Demo: Simple Goban">
<build target="simple"
path="com/joot/jigo/examples/Simple.java"
main="com.joot.jigo.examples.Simple" />
</target>
<target name="highlight" depends="clean,init" description="Demo: Highlighted Goban">
<build target="highlight"
path="com/joot/jigo/examples/HighlightGoban.java"
main="com.joot.jigo.examples.HighlightGoban" />
</target>
<target name="random" depends="clean,init" description="Demo: Random Player">
<build target="random"
path="com/joot/jigo/examples/RandomPlayer.java"
main="com.joot.jigo.examples.RandomPlayer" />
</target>
<target name="obfuscate" if="proguard.present">
<java classname="proguard.ProGuard">
<arg value="@${conf}/jigo.pro" />
<arg value="-injars ${lib}/${build-name}.jar" />
<arg value="-outjar ${lib}/obfuscated-${build-name}.jar" />
</java>
</target>
<target name="api" depends="javadoc"/>
<target name="doc" depends="javadoc"/>
<target name="javadoc">
<delete dir="${api}" />
<mkdir dir="${api}" />
<javadoc
sourcepath="${src}" destdir="${api}" packageList="${conf}/packages.txt"
Windowtitle="JiGo API Documentation" Author="true" nohelp="true">
<link href="http://java.sun.com/j2se/1.5.0/docs/api/"/>
</javadoc>
</target>
<target name="clean" description="Remove classes and API documentation.">
<delete dir="${build}" />
<delete dir="${api}" />
</target>
<target name="dist" depends="all">
<delete dir="${dist}" />
<mkdir dir="${dist}"/>
<zip destfile="${dist}/${app.archive}-${v.major}.${v.minor}.${v.build}.zip">
<zipfileset
dir="."
prefix="${app.archive}-${v.major}.${v.minor}.${v.build}"/>
</zip>
<antcall target="version.build"/>
</target>
<target name="version.build">
<propertyfile file="${app.version}">
<entry key="v.build" type="int" operation="+" value="1" pattern="00"/>
</propertyfile>
</target>
<target name="version.minor">
<propertyfile file="${app.version}">
<entry key="v.minor" type="int" operation="+" value="1" pattern="00"/>
<entry key="v.build" type="int" value="0" pattern="00"/>
</propertyfile>
</target>
<target name="version.major">
<propertyfile file="${app.version}">
<entry key="v.major" type="int" operation="+" value="1" pattern="00"/>
<entry key="v.minor" type="int" value="0" pattern="00"/>
<entry key="v.build" type="int" value="0" pattern="00"/>
</propertyfile>
</target>
</project>