<!--
 Copyright (c) 2007, 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="awt2d" default="build" basedir=".">
    <description>
        JDK: AWT &amp; Java2D Ant build file
    </description>

    <import file="../common/shared.xml"/>

    <target name="-build-make" depends="-make.init,-build-make-unix,-build-make-windows" if="use.make"/>

    <target name="-build-make-unix" depends="-make.init" if="osfamily.unix">
        <make-run target="all" dir="${make.dir}/java/awt"/>
        <make-run target="all" dir="${make.dir}/sun/dcpr"/>
        <make-run target="all" dir="${make.dir}/sun/image"/>
        <make-run target="all" dir="${make.dir}/sun/awt"/>
        <make-run target="all" dir="${make.dir}/sun/splashscreen"/>
        <make-run target="all" dir="${make.dir}/sun/xawt"/>
        <make-run target="all" dir="${make.dir}/sun/headless"/>
        <make-run target="all" dir="${make.dir}/sun/font"/>
        <make-run target="all" dir="${make.dir}/sun/jpeg"/>
        <make-run target="all" dir="${make.dir}/sun/cmm"/>
        <make-run target="all" dir="${make.dir}/sun/jawt"/>
        <make-run target="all" dir="${make.dir}/sun/text"/>
        <make-run target="all" dir="${make.dir}/com/sun/image"/>
        <make-run target="all" dir="${make.dir}/com/sun/java2d"/>
    </target>

    <target name="-build-make-windows" depends="-make.init" if="os.windows">
        <make-run target="all" dir="${make.dir}/java/awt"/>
        <make-run target="all" dir="${make.dir}/sun/dcpr"/>
        <make-run target="all" dir="${make.dir}/sun/awt"/>
        <make-run target="all" dir="${make.dir}/sun/splashscreen"/>
        <make-run target="all" dir="${make.dir}/sun/font"/>
        <make-run target="all" dir="${make.dir}/sun/jpeg"/>
        <make-run target="all" dir="${make.dir}/sun/cmm"/>
        <make-run target="all" dir="${make.dir}/sun/jawt"/>
        <make-run target="all" dir="${make.dir}/sun/text"/>
        <make-run target="all" dir="${make.dir}/com/sun/image"/>
        <make-run target="all" dir="${make.dir}/com/sun/java2d"/>
    </target>

    <target name="-clean-make" depends="-make.init,-clean-docs-tests" if="use.make">
        <make-run target="clean" dir="${make.dir}/java/awt"/>
        <make-run target="clean" dir="${make.dir}/sun/dcpr"/>
        <make-run target="clean" dir="${make.dir}/sun/image"/>
        <make-run target="clean" dir="${make.dir}/sun/awt"/>
        <make-run target="clean" dir="${make.dir}/sun/splashscreen"/>
        <make-run target="clean" dir="${make.dir}/sun/xawt"/>
        <make-run target="clean" dir="${make.dir}/sun/font"/>
        <make-run target="clean" dir="${make.dir}/sun/jpeg"/>
        <make-run target="clean" dir="${make.dir}/sun/cmm"/>
        <make-run target="clean" dir="${make.dir}/sun/jawt"/>
        <make-run target="clean" dir="${make.dir}/sun/text"/>
        <make-run target="clean" dir="${make.dir}/com/sun/image"/>
        <make-run target="clean" dir="${make.dir}/com/sun/java2d"/>
        <make-run target="clean" dir="${make.dir}/mkdemo/jfc"/>
    </target>
    
    <target name="run" depends="-make.init">
        <make-run target="all" dir="${make.dir}/mkdemo/jfc"/>
        <property name="jvm.args" value=""/>
        <java jar="${build.dir}/demo/jfc/Font2DTest/Font2DTest.jar"
            fork="true"
            classpath="${classes.dir}:${bootstrap.jdk}/jre/lib/rt.jar">
            <jvmarg line="${jvm.args}"/>
        </java>
     </target>


</project>
