<!--
 Copyright (c) 2007, 2008, Oracle and/or its affiliates. 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 Oracle 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.java.template"
            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}"/>
            <arg line="${jconsole.args}"/>
        </java>
    </target>

    <target name="clean" depends="-init,shared.clean">
        <delete file="${dist.dir}/lib/jconsole.jar"/>
    </target>

</project>
