<?xml version="1.0"?>
<!DOCTYPE project [
<!--

    Copyright (c) 2017, 2018 Oracle and/or its affiliates. All rights reserved.

    This program and the accompanying materials are made available under the
    terms of the Eclipse Public License v. 2.0, which is available at
    http://www.eclipse.org/legal/epl-2.0.

    This Source Code may also be made available under the following Secondary
    Licenses when the conditions for such availability set forth in the
    Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
    version 2 with the GNU Classpath Exception, which is available at
    https://www.gnu.org/software/classpath/license.html.

    SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0

-->

<!ENTITY setup-props SYSTEM "build.properties">
]>

<project name="reporter" basedir="." default="all">
&setup-props;

  <target name="all" depends="clean,init,jar"/>

  <target name="init">
    <tstamp/>
     <mkdir dir="${build.dest}"/>

  </target>


  <target name="build" depends="init">
  <javac
                destdir="${build.dest}"
                classpath="${classpath}"
                srcdir="${basedir}"
                debug="on"
    />

  </target>


  <target name="jar" depends="build">
  <jar destfile="${reporter.jar}">
        <fileset dir="${build.dest}"/>
  </jar>
  </target>

<!--
  <exec executable="jar">
   <arg line="cvf ${reporter.jar} -C ${build.dest} ." />
   </exec>
-->

  <target name="clean">
    <delete dir="${build.dest}"/>
  </target>


  <target name="usage">
  <echo message="ant build    will compile"/>
  <echo message="ant jar      will compile and put reporter.jar at $APS_HOME/lib"/>
  </target>


</project>

