#
# 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.
#

includes=\
    com/sun/java2d/ \
    com/sun/image/ \
    com/sun/imageio/ \
    java/awt/ \
    javax/imageio/ \
    javax/print/ \
    sun/dcpr/ \
    sun/image/ \
    sun/awt/ \
    sun/splashscreen/ \
    sun/xawt/ \
    sun/headless/ \
    sun/font/ \
    sun/jpeg/ \
    sun/cmm/ \
    sun/jawt/ \
    sun/text/ \
    sun/java2d/ \
    sun/print/
excludes=\
    java/awt/doc-files/ \
    java/awt/im/ \
    sun/awt/im/ \
    sun/awt/resources/ \
    sun/print/resources/
demos=\
    java2d/J2DBench/src/ \
    java2d/J2DBench/options/ \
    java2d/J2DBench/build.xml \
    jfc/
jtreg.tests=\
    java/awt/ \
    javax/imageio/ \
    javax/print/ \
    sun/awt/ \
    sun/java2d/ \
    closed/java/awt/ \
    closed/javax/imageio/ \
    closed/javax/print/ \
    closed/sun/awt/ \
    closed/sun/java2d/
jtreg.options=-automatic
use.make=true
javadoc.options=-J-Xmx256m
