<!--
 Copyright 2007 Sun Microsystems, Inc.  All Rights Reserved.

 Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions
 are met:

   - Redistributions of source code must retain the above copyright
     notice, this list of conditions and the following disclaimer.

   - Redistributions in binary form must reproduce the above copyright
     notice, this list of conditions and the following disclaimer in the
     documentation and/or other materials provided with the distribution.

   - Neither the name of Sun Microsystems nor the names of its
     contributors may be used to endorse or promote products derived
     from this software without specific prior written permission.

 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
 IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
 THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
 LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-->

<project name="jconsole" default="build" basedir=".">
    
    <import file="../common/shared.xml"/>
    
    <target name="-pre-compile">
        <copy
            file="${root}/src/share/classes/sun/tools/jconsole/Version-template.java"
            tofile="${gensrc.dir}/sun/tools/jconsole/Version.java"/>
        <replace
            file="${gensrc.dir}/sun/tools/jconsole/Version.java"
            token="@@jconsole_version@@"
            value="${jconsole.version}"/>
    </target>
    
    <target name="-post-compile">
        <mkdir dir="${dist.dir}/lib"/>
        <jar destfile="${dist.dir}/lib/jconsole.jar"
             manifest="${classes.dir}/sun/tools/jconsole/manifest">
            <fileset dir="${classes.dir}">
                <include name="sun/tools/jconsole/**/*.class"/>
                <include name="com/sun/tools/jconsole/**/*.class"/>
                <include name="sun/tools/jconsole/resources/*.gif"/>
                <include name="sun/tools/jconsole/resources/*.png"/>
            </fileset>
        </jar>
    </target>
    
    <target name="run" depends="-init,build">
        <property name="jvm.args" value=""/>
        <java classname="sun.tools.jconsole.JConsole"
              fork="true"
              classpath="${classes.dir}:${bootstrap.jdk}/lib/tools.jar">
            <jvmarg line="${jvm.args}"/>
        </java>
    </target>
    
    <target name="clean" depends="-init,shared.clean">
        <delete file="${dist.dir}/lib/jconsole.jar"/>
    </target>
    
</project>
