<?xml version="1.0"?>


<project name="Thinking in Java (com)" default="com.run" basedir=".">

  <description>
  build.xml for com of "Thinking in Java, 3rd Edition"
  by Bruce Eckel
  Available at http://www.MindView.net
  See copyright notice in CopyRight.txt

  Ant must be downloaded from:
  http://jakarta.apache.org/ant

  Options:
  ant
    compiles and runs all examples
  ant com.build
    compiles but does not run examples
  ant clean
    removes old class files
  </description>

  <target name="JDK.version.check" unless="JDK.version.ok">
    <javac
      includes="CheckVersion.java"
      srcdir="${basedir}/../com/bruceeckel/tools/"
      classpath="${basedir}/.."
    />
    <java
      taskname="CheckVersion"
      classname="com.bruceeckel.tools.CheckVersion"
      classpath="${basedir}/.."
      fork="true"
      failonerror="true"
    />
    <property name="JDK.version.ok" value="true"/>
  </target>

  <!-- build all dependencies and check to see if tests are up to date -->
  <target name="com.prepare">
    <uptodate property="force.run">
      <srcfiles dir= "${basedir}" includes="**/*Output.txt"/>
      <mapper type="glob" from="*Output.txt" to="*.class"/>
    </uptodate>
  </target>

  <!-- build all classes in this directory -->
  <target name="com.build" depends="JDK.version.check,com.prepare">
    <javac
      srcdir="${basedir}"
      classpath="${basedir}/.."
      source="1.4"
    />
  </target>

  <!-- force all tests to be run -->
  <target name="force">
    <property name="force.run" value="true"/>
    <antcall target="com.run"/>
  </target>

  <!-- run all untested examples in this directory -->
  <target name="com.run" depends="com.build" if="force.run">
    <echo message="* CheckVersion must be run by hand. *"/>
  </target>

  <!-- delete all class files -->
  <target name="clean" description="Removes all old class files">
    <delete>
      <fileset dir="${basedir}" includes="**/*.class"/>
      <fileset dir="${basedir}" includes="**/*Output.txt"/>
      <fileset dir="${basedir}" includes="**/log.txt"/>
    </delete>
    <echo message="clean successful"/>
  </target>

</project>
