<?xml version="1.0" encoding="UTF-8"?>

<!--
 Copyright 2005 Sun Microsystems, Inc.  All Rights Reserved.
 DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.

 This code is free software; you can redistribute it and/or modify it
 under the terms of the GNU General Public License version 2 only, as
 published by the Free Software Foundation.  Sun designates this
 particular file as subject to the "Classpath" exception as provided
 by Sun in the LICENSE file that accompanied this code.

 This code is distributed in the hope that it will be useful, but WITHOUT
 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 version 2 for more details (a copy is included in the LICENSE file that
 accompanied this code).

 You should have received a copy of the GNU General Public License version
 2 along with this work; if not, write to the Free Software Foundation,
 Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.

 Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
 CA 95054 USA or visit www.sun.com if you need additional information or
 have any questions.
-->

<!-- 

 The contents of this file are subject to the Sun Public License
 Version 1.0 (the "License"); you may not use this file except in
 compliance with the License. A copy of the License is available at
 http://www.sun.com/, and in the file LICENSE.html in the
 doc directory.
 
 The Original Code is HAT. The Initial Developer of the
 Original Code is Bill Foote, with contributions from others
 at JavaSoft/Sun. Portions created by Bill Foote and others
 at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved.
 
 In addition to the formal license, I ask that you don't
 change the history or donations files without permission.

-->

<!-- This is an Ant project file to build Heap Analysis Tool (HAT).
     For more information on Ant, please see http://ant.apache.org/ 

     To build jhat.jar, run ant in current directory. jhat.jar is
     built in ./build directory.
-->

<project name="Java Heap Analysis Tool" default="all" basedir=".">

  <!-- Property Definitions -->

  <property name="app.name" value="jhat"/>
  <property name="src.dir"  value="."/>
  <property name="build.dir"  value="build"/>
  <property name="classes.dir"  value="${build.dir}/classes"/>
  <property name="dist.jar" value="${app.name}.jar"/>

  <target name="prepare">
    <mkdir dir="${build.dir}"/>
    <mkdir dir="${classes.dir}"/>
  </target>

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

  <target name="compile" depends="prepare" description="Compiles the sources">
    <javac srcdir="${src.dir}" destdir="${classes.dir}"
           debug="on" deprecation="on">
    </javac>

  </target>

  <target name="deploy" depends="compile" description="Creates a deployment bundle">
    <delete file="${build.dir}/${dist.jar}" />
    <mkdir dir="${classes.dir}/com/sun/tools/hat/resources" />
    <copy todir="${classes.dir}/com/sun/tools/hat/resources">
      <fileset dir="${src.dir}/resources" includes="*" />
    </copy>

    <jar jarfile="${build.dir}/${dist.jar}"
         manifest="${src.dir}/MANIFEST.mf" basedir="${classes.dir}"/>
  </target>

  <target name="all" depends="deploy" description="Builds sources and deployment jar"/>

</project>
