view Makefile @ 818:daad166e397b draft default tip

Five new tests added ClippingCircleByRectangleShape.
author Pavel Tisnovsky <ptisnovs@redhat.com>
date Fri, 08 Apr 2016 11:47:54 +0200
parents 68ec6483724e
children
line wrap: on
line source

# Java gfx-test framework
#
#    Copyright (C) 2010, 2011, 2012, 2013  Red Hat
#
# This file is part of IcedTea.
#
# IcedTea is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
# 
# IcedTea 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 for more details.
#
# You should have received a copy of the GNU General Public License
# along with IcedTea; see the file COPYING.  If not, write to the
# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
# 02110-1301 USA.
# 
# Linking this library statically or dynamically with other modules is
# making a combined work based on this library.  Thus, the terms and
# conditions of the GNU General Public License cover the whole
# combination.
#
# As a special exception, the copyright holders of this library give you
# permission to link this library with independent modules to produce an
# executable, regardless of the license terms of these independent
# modules, and to copy and distribute the resulting executable under
# terms of your choice, provided that you also meet, for each linked
# independent module, the terms and conditions of the license of that
# module.  An independent module is a module which is not derived from
# or based on this library.  If you modify this library, you may extend
# this exception to your version of the library, but you are not
# obligated to do so.  If you do not wish to do so, delete this
# exception statement from your version.

SOURCEPATH=src
CLASSES=build
OUTPUT=output
SAMPLES=samples
RESULTS=results
TEST_BUILD=test-build
DOCS=docs

COMMON_DIR=org/gfxtest/common
CALLBACKS_DIR=org/gfxtest/callbacks
FRAMEWORK_DIR=org/gfxtest/framework
TESTSUITE_DIR=org/gfxtest/testsuites
REPORTER_DIR=org/gfxtest/reporter
IMAGE_DIFFER_DIR=org/gfxtest/ImageDiffer
HARNESS=org/gfxtest/harness

TEST_PACKAGE=org.gfxtest.testsuites
RUN_OPTIONS=-w=640 -h=480 -t=rgb
TESTED_JAVA=/usr/java/default/bin/java
REFERENCE_JAVA=/usr/java/default/bin/java
# TESTED_JAVA=/usr/lib/jvm/java-openjdk/bin/java
# REFERENCE_JAVA=/usr/lib/jvm/java-sun/bin/java
JAVAC=javac

FRAMEWORK_CLASSES = \
	$(CLASSES)/$(COMMON_DIR)/InvalidParameterValueException.class \
	$(CLASSES)/$(COMMON_DIR)/ConfigurationException.class \
	$(CLASSES)/$(COMMON_DIR)/Configuration.class \
	$(CLASSES)/$(COMMON_DIR)/PostScriptRendererConfiguration.class \
	$(CLASSES)/$(REPORTER_DIR)/TestResult.class \
	$(CLASSES)/$(REPORTER_DIR)/ReporterConfiguration.class \
	$(CLASSES)/$(REPORTER_DIR)/Reporter.class \
	$(CLASSES)/$(FRAMEWORK_DIR)/annotations/GraphicsPrimitives.class \
	$(CLASSES)/$(FRAMEWORK_DIR)/annotations/GraphicsPrimitive.class \
	$(CLASSES)/$(FRAMEWORK_DIR)/annotations/RenderStyles.class \
	$(CLASSES)/$(FRAMEWORK_DIR)/annotations/RenderStyle.class \
	$(CLASSES)/$(FRAMEWORK_DIR)/annotations/TestTypes.class \
	$(CLASSES)/$(FRAMEWORK_DIR)/annotations/TestType.class \
	$(CLASSES)/$(FRAMEWORK_DIR)/annotations/Transformations.class \
	$(CLASSES)/$(FRAMEWORK_DIR)/annotations/Transformation.class \
	$(CLASSES)/$(FRAMEWORK_DIR)/annotations/PathVariant.class \
	$(CLASSES)/$(FRAMEWORK_DIR)/annotations/PathVariants.class \
	$(CLASSES)/$(FRAMEWORK_DIR)/annotations/ShapeVariant.class \
	$(CLASSES)/$(FRAMEWORK_DIR)/annotations/ShapeVariants.class \
	$(CLASSES)/$(FRAMEWORK_DIR)/annotations/BitBltOperation.class \
	$(CLASSES)/$(FRAMEWORK_DIR)/annotations/BitBltOperations.class \
	$(CLASSES)/$(FRAMEWORK_DIR)/annotations/OtherOperation.class \
	$(CLASSES)/$(FRAMEWORK_DIR)/annotations/OtherOperations.class \
	$(CLASSES)/$(FRAMEWORK_DIR)/annotations/RasterOperation.class \
	$(CLASSES)/$(FRAMEWORK_DIR)/annotations/RasterOperations.class \
	$(CLASSES)/$(FRAMEWORK_DIR)/annotations/Zoom.class \
	$(CLASSES)/$(FRAMEWORK_DIR)/ColorPalette.class \
	$(CLASSES)/$(FRAMEWORK_DIR)/GrayscalePalette.class \
	$(CLASSES)/$(FRAMEWORK_DIR)/HSBPalette.class \
	$(CLASSES)/$(FRAMEWORK_DIR)/BitBltOperations.class \
	$(CLASSES)/$(FRAMEWORK_DIR)/CommonAreaOperations.class \
	$(CLASSES)/$(FRAMEWORK_DIR)/CommonCAGOperations.class \
	$(CLASSES)/$(FRAMEWORK_DIR)/CommonRenderingStyles.class \
	$(CLASSES)/$(FRAMEWORK_DIR)/CommonShapesRenderer.class \
	$(CLASSES)/$(FRAMEWORK_DIR)/CommonClippingOperations.class \
	$(CLASSES)/$(FRAMEWORK_DIR)/CommonPathsGenerator.class \
	$(CLASSES)/$(FRAMEWORK_DIR)/CommonBitmapOperations.class \
	$(CLASSES)/$(FRAMEWORK_DIR)/BitmapCropRegions.class \
	$(CLASSES)/$(FRAMEWORK_DIR)/EntityRenderingStyle.class \
	$(CLASSES)/$(FRAMEWORK_DIR)/TestResult.class \
	$(CLASSES)/$(FRAMEWORK_DIR)/ParameterNotFoundException.class \
	$(CLASSES)/$(FRAMEWORK_DIR)/GfxTestConfiguration.class \
	$(CLASSES)/$(FRAMEWORK_DIR)/TestImage.class \
	$(CLASSES)/$(FRAMEWORK_DIR)/GfxTest.class \
	$(CLASSES)/$(FRAMEWORK_DIR)/PrintingTest.class \
	$(CLASSES)/$(FRAMEWORK_DIR)/Log.class \
	$(CLASSES)/$(FRAMEWORK_DIR)/ProceduralTextureFactory.class \
	$(CLASSES)/$(FRAMEWORK_DIR)/ImageFactory.class \
	$(CLASSES)/$(FRAMEWORK_DIR)/PostScriptToPngConverter.class \
	$(CLASSES)/$(FRAMEWORK_DIR)/PrintJobWatcher.class \
	$(CLASSES)/$(CALLBACKS_DIR)/CommonCallbacks.class \
	$(CLASSES)/$(CALLBACKS_DIR)/CommonArcDrawCallbacks.class \
	$(CLASSES)/$(CALLBACKS_DIR)/CommonCircleDrawCallbacks.class \
	$(CLASSES)/$(CALLBACKS_DIR)/CommonCurveDrawCallbacks.class \
	$(CLASSES)/$(CALLBACKS_DIR)/CommonEllipseDrawCallbacks.class \
	$(CLASSES)/$(CALLBACKS_DIR)/CommonLineDrawCallbacks.class \
	$(CLASSES)/$(CALLBACKS_DIR)/CubicCurveDrawCallbacks.class \
	$(CLASSES)/$(CALLBACKS_DIR)/QuadraticCurveDrawCallbacks.class \
	$(CLASSES)/$(CALLBACKS_DIR)/HorizontalLineDrawCallbacks.class \
	$(CLASSES)/$(CALLBACKS_DIR)/VerticalLineDrawCallbacks.class \
	$(CLASSES)/$(CALLBACKS_DIR)/DiagonalLineDrawCallbacks.class \
	$(CLASSES)/$(CALLBACKS_DIR)/RectangleDrawCallbacks.class \
	$(CLASSES)/$(CALLBACKS_DIR)/PolylineDrawCallbacks.class \
	$(CLASSES)/$(CALLBACKS_DIR)/PolygonDrawCallbacks.class \
	$(CLASSES)/$(IMAGE_DIFFER_DIR)/ComparisonResult.class \
	$(CLASSES)/$(IMAGE_DIFFER_DIR)/Configuration.class \
	$(CLASSES)/$(IMAGE_DIFFER_DIR)/ImageComparator.class \
	$(CLASSES)/$(IMAGE_DIFFER_DIR)/ImageUtils.class \
	$(CLASSES)/$(IMAGE_DIFFER_DIR)/Main.class \
	$(CLASSES)/$(IMAGE_DIFFER_DIR)/ResultWriters/HtmlStructureWriter.class \
	$(CLASSES)/$(IMAGE_DIFFER_DIR)/ResultWriters/ResultWriter.class \
	$(CLASSES)/$(IMAGE_DIFFER_DIR)/ResultWriters/HtmlWriter.class \
	$(CLASSES)/$(IMAGE_DIFFER_DIR)/ResultWriters/XmlWriter.class \
	$(CLASSES)/$(HARNESS)/MainWindow.class

TESTSUITE_CLASSES = \
	$(CLASSES)/$(TESTSUITE_DIR)/Areas.class \
	$(CLASSES)/$(TESTSUITE_DIR)/AALines.class \
	$(CLASSES)/$(TESTSUITE_DIR)/AAEllipses.class \
	$(CLASSES)/$(TESTSUITE_DIR)/AlphaComposite.class \
	$(CLASSES)/$(TESTSUITE_DIR)/BlankImage.class \
	$(CLASSES)/$(TESTSUITE_DIR)/BitBltBasicTests.class \
	$(CLASSES)/$(TESTSUITE_DIR)/BitBltCropImage.class \
	$(CLASSES)/$(TESTSUITE_DIR)/BitBltMirrorImage.class \
	$(CLASSES)/$(TESTSUITE_DIR)/BitBltRotateImage.class \
	$(CLASSES)/$(TESTSUITE_DIR)/BitBltScaleImage.class \
	$(CLASSES)/$(TESTSUITE_DIR)/BitBltUsingBgColor.class \
	$(CLASSES)/$(TESTSUITE_DIR)/BitBltUsingBgColorAlpha.class \
	$(CLASSES)/$(TESTSUITE_DIR)/BitBltBufferedImageOp.class \
	$(CLASSES)/$(TESTSUITE_DIR)/BitBltAffineTransformOp.class \
	$(CLASSES)/$(TESTSUITE_DIR)/BitBltAffineIdentityTransformOp.class \
	$(CLASSES)/$(TESTSUITE_DIR)/BitBltAffineQuadrantRotateTransformOp.class \
	$(CLASSES)/$(TESTSUITE_DIR)/BitBltAffineRotateTransformOp.class \
	$(CLASSES)/$(TESTSUITE_DIR)/BitBltAffineScaleTransformOp.class \
	$(CLASSES)/$(TESTSUITE_DIR)/BitBltAffineShearTransformOp.class \
	$(CLASSES)/$(TESTSUITE_DIR)/BitBltAffineTranslateTransformOp.class \
	$(CLASSES)/$(TESTSUITE_DIR)/BitBltColorConvertOp.class \
	$(CLASSES)/$(TESTSUITE_DIR)/BitBltConvolveOp.class \
	$(CLASSES)/$(TESTSUITE_DIR)/BitBltCustomOp.class \
	$(CLASSES)/$(TESTSUITE_DIR)/BitBltLookupOp.class \
	$(CLASSES)/$(TESTSUITE_DIR)/BitBltRescaleOp.class \
	$(CLASSES)/$(TESTSUITE_DIR)/ColorPaint.class \
	$(CLASSES)/$(TESTSUITE_DIR)/NormalArcs.class \
	$(CLASSES)/$(TESTSUITE_DIR)/NormalLines.class \
	$(CLASSES)/$(TESTSUITE_DIR)/NormalCircles.class \
	$(CLASSES)/$(TESTSUITE_DIR)/NormalEllipses.class \
	$(CLASSES)/$(TESTSUITE_DIR)/NormalPolygons.class \
	$(CLASSES)/$(TESTSUITE_DIR)/NormalPolylines.class \
	$(CLASSES)/$(TESTSUITE_DIR)/NormalRectangles.class \
	$(CLASSES)/$(TESTSUITE_DIR)/NormalRoundRectangles.class \
	$(CLASSES)/$(TESTSUITE_DIR)/Normal3DRectangles.class \
	$(CLASSES)/$(TESTSUITE_DIR)/NormalQuadraticCurves.class \
	$(CLASSES)/$(TESTSUITE_DIR)/NormalQuadraticCurvesAsPaths.class \
	$(CLASSES)/$(TESTSUITE_DIR)/NormalCubicCurves.class \
	$(CLASSES)/$(TESTSUITE_DIR)/NormalCubicCurvesAsPaths.class \
	$(CLASSES)/$(TESTSUITE_DIR)/Paths.class \
	$(CLASSES)/$(TESTSUITE_DIR)/FilledArcs.class \
	$(CLASSES)/$(TESTSUITE_DIR)/FilledCircles.class \
	$(CLASSES)/$(TESTSUITE_DIR)/FilledEllipses.class \
	$(CLASSES)/$(TESTSUITE_DIR)/FilledRectangles.class \
	$(CLASSES)/$(TESTSUITE_DIR)/FilledRoundRectangles.class \
	$(CLASSES)/$(TESTSUITE_DIR)/FilledPolygons.class \
	$(CLASSES)/$(TESTSUITE_DIR)/ScaledLines.class \
	$(CLASSES)/$(TESTSUITE_DIR)/ScaledPolylines.class \
	$(CLASSES)/$(TESTSUITE_DIR)/ScaledRectangles.class \
	$(CLASSES)/$(TESTSUITE_DIR)/DashedArcs.class \
	$(CLASSES)/$(TESTSUITE_DIR)/DashedCircles.class \
	$(CLASSES)/$(TESTSUITE_DIR)/DashedEllipses.class \
	$(CLASSES)/$(TESTSUITE_DIR)/DashedLines.class \
	$(CLASSES)/$(TESTSUITE_DIR)/DashedPolylines.class \
	$(CLASSES)/$(TESTSUITE_DIR)/DashedPolygons.class \
	$(CLASSES)/$(TESTSUITE_DIR)/DashedRectangles.class \
	$(CLASSES)/$(TESTSUITE_DIR)/DashedRoundRectangles.class \
	$(CLASSES)/$(TESTSUITE_DIR)/PathsFromLines.class \
	$(CLASSES)/$(TESTSUITE_DIR)/SpecialCases.class \
	$(CLASSES)/$(TESTSUITE_DIR)/GradientPaint.class \
	$(CLASSES)/$(TESTSUITE_DIR)/LinearGradientPaint.class \
	$(CLASSES)/$(TESTSUITE_DIR)/RadialGradientPaint.class \
	$(CLASSES)/$(TESTSUITE_DIR)/CAGOperationsOnChordAndRectangle.class \
	$(CLASSES)/$(TESTSUITE_DIR)/CAGOperationsOnPieAndRectangle.class \
	$(CLASSES)/$(TESTSUITE_DIR)/CAGOperationsOnRoundRectangleAndRectangle.class \
	$(CLASSES)/$(TESTSUITE_DIR)/CAGOperationsOnTwoOverlappingCircles.class \
	$(CLASSES)/$(TESTSUITE_DIR)/CAGOperationsOnTwoTouchingCircles.class \
	$(CLASSES)/$(TESTSUITE_DIR)/CAGOperationsOnTwoConcentricCircles.class \
	$(CLASSES)/$(TESTSUITE_DIR)/CAGOperationsOnTwoOverlappingRectangles.class \
	$(CLASSES)/$(TESTSUITE_DIR)/CAGOperationsOnCircleAndRectangle.class \
	$(CLASSES)/$(TESTSUITE_DIR)/TexturePaint.class \
	$(CLASSES)/$(TESTSUITE_DIR)/Clipping.class \
	$(CLASSES)/$(TESTSUITE_DIR)/ClippingCircleByRectangleArea.class \
	$(CLASSES)/$(TESTSUITE_DIR)/ClippingCircleByEllipseShape.class \
	$(CLASSES)/$(TESTSUITE_DIR)/ClippingCircleByConvexPolygonalShape.class \
	$(CLASSES)/$(TESTSUITE_DIR)/ClippingCircleByConcavePolygonalShape.class \
	$(CLASSES)/$(TESTSUITE_DIR)/ClippingCircleBySelfIntersectingPolygonalShape.class \
	$(CLASSES)/$(TESTSUITE_DIR)/ClippingCircleByRectangleShape.class \
	$(CLASSES)/$(TESTSUITE_DIR)/ClippingCircleByRoundRectangleShape.class \
	$(CLASSES)/$(TESTSUITE_DIR)/ClippingPathByRectangleArea.class \
	$(CLASSES)/$(TESTSUITE_DIR)/ClippingPathByRectangleShape.class \
	$(CLASSES)/$(TESTSUITE_DIR)/ClippingPathByArbitraryShape.class \
	$(CLASSES)/$(TESTSUITE_DIR)/ClippingPathByEllipseShape.class \
	$(CLASSES)/$(TESTSUITE_DIR)/ClippingPathByConvexPolygonalShape.class \
	$(CLASSES)/$(TESTSUITE_DIR)/ClippingPathByConcavePolygonalShape.class \
	$(CLASSES)/$(TESTSUITE_DIR)/ClippingPathBySelfIntersectingPolygonalShape.class \
	$(CLASSES)/$(TESTSUITE_DIR)/ClippingPathByRoundRectangleShape.class \
	$(CLASSES)/$(TESTSUITE_DIR)/PrintTestBasic.class \
	$(CLASSES)/$(TESTSUITE_DIR)/PrintTestArcs.class \
	$(CLASSES)/$(TESTSUITE_DIR)/PrintTestCubicCurves.class \
	$(CLASSES)/$(TESTSUITE_DIR)/PrintTestCubicCurvesAsPaths.class \
	$(CLASSES)/$(TESTSUITE_DIR)/PrintTestLines.class \
	$(CLASSES)/$(TESTSUITE_DIR)/PrintTestLinesAsPaths.class \
	$(CLASSES)/$(TESTSUITE_DIR)/PrintTestSlopedLines.class \
	$(CLASSES)/$(TESTSUITE_DIR)/PrintTestRectangles.class \
	$(CLASSES)/$(TESTSUITE_DIR)/PrintTestRoundRectangles.class \
	$(CLASSES)/$(TESTSUITE_DIR)/PrintTestPaths.class \
	$(CLASSES)/$(TESTSUITE_DIR)/PrintTestPolylines.class \
	$(CLASSES)/$(TESTSUITE_DIR)/PrintTestPolygons.class \
	$(CLASSES)/$(TESTSUITE_DIR)/PrintTestQuadraticCurves.class \
	$(CLASSES)/$(TESTSUITE_DIR)/PrintTestQuadraticCurvesAsPaths.class \
	$(CLASSES)/$(TESTSUITE_DIR)/PrintTestBitBlt.class \
	$(CLASSES)/$(TESTSUITE_DIR)/PrintTestBitBltCropImage.class \
	$(CLASSES)/$(TESTSUITE_DIR)/PrintTestBitBltMirrorImage.class \
	$(CLASSES)/$(TESTSUITE_DIR)/PrintTestBitBltRotateImage.class \
	$(CLASSES)/$(TESTSUITE_DIR)/PrintTestBitBltScaleImage.class \
	$(CLASSES)/$(TESTSUITE_DIR)/PrintTestBitBltUsingBgColor.class \
	$(CLASSES)/$(TESTSUITE_DIR)/PrintTestBitBltUsingBgColorAlpha.class \
	$(CLASSES)/$(TESTSUITE_DIR)/PrintTestCircles.class \
	$(CLASSES)/$(TESTSUITE_DIR)/PrintTestEllipses.class \
	$(CLASSES)/$(TESTSUITE_DIR)/PrintTestDrawText.class \
	$(CLASSES)/$(TESTSUITE_DIR)/PrintTestColorPaint.class \
	$(CLASSES)/$(TESTSUITE_DIR)/PrintTestGradientPaint.class \
	$(CLASSES)/$(TESTSUITE_DIR)/PrintTestTexturePaint.class

COMPARE_RESULTS = \
	$(RESULTS)/Areas \
	$(RESULTS)/AALines \
	$(RESULTS)/AAEllipses \
	$(RESULTS)/AlphaComposite \
	$(RESULTS)/BlankImage \
	$(RESULTS)/BitBltBasicTests \
	$(RESULTS)/BitBltCropImage \
	$(RESULTS)/BitBltMirrorImage \
	$(RESULTS)/BitBltRotateImage \
	$(RESULTS)/BitBltScaleImage \
	$(RESULTS)/BitBltUsingBgColor \
	$(RESULTS)/BitBltUsingBgColorAlpha \
	$(RESULTS)/BitBltBufferedImageOp \
	$(RESULTS)/BitBltAffineTransformOp \
	$(RESULTS)/BitBltAffineIdentityTransformOp \
	$(RESULTS)/BitBltAffineQuadrantRotateTransformOp \
	$(RESULTS)/BitBltAffineRotateTransformOp \
	$(RESULTS)/BitBltAffineScaleTransformOp \
	$(RESULTS)/BitBltAffineShearTransformOp \
	$(RESULTS)/BitBltAffineTranslateTransformOp \
	$(RESULTS)/BitBltColorConvertOp \
	$(RESULTS)/BitBltConvolveOp \
	$(RESULTS)/BitBltCustomOp \
	$(RESULTS)/BitBltLookupOp \
	$(RESULTS)/BitBltRescaleOp \
	$(RESULTS)/ColorPaint \
	$(RESULTS)/NormalArcs \
	$(RESULTS)/NormalLines \
	$(RESULTS)/NormalCircles \
	$(RESULTS)/NormalEllipses \
	$(RESULTS)/NormalPolygons \
	$(RESULTS)/NormalPolylines \
	$(RESULTS)/NormalRectangles \
	$(RESULTS)/NormalRoundRectangles \
	$(RESULTS)/Normal3DRectangles \
	$(RESULTS)/NormalQuadraticCurves \
	$(RESULTS)/NormalQuadraticCurvesAsPaths \
	$(RESULTS)/NormalCubicCurves \
	$(RESULTS)/NormalCubicCurvesAsPaths \
	$(RESULTS)/Paths \
	$(RESULTS)/FilledArcs \
	$(RESULTS)/FilledCircles \
	$(RESULTS)/FilledEllipses \
	$(RESULTS)/FilledRectangles \
	$(RESULTS)/FilledRoundRectangles \
	$(RESULTS)/FilledPolygons \
	$(RESULTS)/ScaledLines \
	$(RESULTS)/ScaledPolylines \
	$(RESULTS)/ScaledRectangles \
	$(RESULTS)/DashedArcs \
	$(RESULTS)/DashedCircles \
	$(RESULTS)/DashedEllipses \
	$(RESULTS)/DashedLines \
	$(RESULTS)/DashedPolylines \
	$(RESULTS)/DashedPolygons \
	$(RESULTS)/DashedRectangles \
	$(RESULTS)/DashedRoundRectangles \
	$(RESULTS)/PathsFromLines \
	$(RESULTS)/SpecialCases \
	$(RESULTS)/GradientPaint \
	$(RESULTS)/LinearGradientPaint \
	$(RESULTS)/RadialGradientPaint \
	$(RESULTS)/CAGOperationsOnChordAndRectangle \
	$(RESULTS)/CAGOperationsOnPieAndRectangle \
	$(RESULTS)/CAGOperationsOnRoundRectangleAndRectangle \
	$(RESULTS)/CAGOperationsOnTwoOverlappingCircles \
	$(RESULTS)/CAGOperationsOnTwoTouchingCircles \
	$(RESULTS)/CAGOperationsOnTwoConcentricCircles \
	$(RESULTS)/CAGOperationsOnTwoOverlappingRectangles \
	$(RESULTS)/CAGOperationsOnCircleAndRectangle \
	$(RESULTS)/TexturePaint \
	$(RESULTS)/Clipping \
	$(RESULTS)/ClippingCircleByRectangleArea \
	$(RESULTS)/ClippingCircleByEllipseShape \
	$(RESULTS)/ClippingCircleByConvexPolygonalShape \
	$(RESULTS)/ClippingCircleByConcavePolygonalShape \
	$(RESULTS)/ClippingCircleBySelfIntersectingPolygonalShape \
	$(RESULTS)/ClippingCircleByRectangleShape \
	$(RESULTS)/ClippingCircleByRoundRectangleShape \
	$(RESULTS)/ClippingPathByRectangleArea \
	$(RESULTS)/ClippingPathByArbitraryShape \
	$(RESULTS)/ClippingPathByEllipseShape \
	$(RESULTS)/ClippingPathByConvexPolygonalShape \
	$(RESULTS)/ClippingPathByConcavePolygonalShape \
	$(RESULTS)/ClippingPathBySelfIntersectingPolygonalShape \
	$(RESULTS)/ClippingPathByRoundRectangleShape \
	$(RESULTS)/ClippingPathByRectangleShape \
	$(RESULTS)/PrintTestBasic \
	$(RESULTS)/PrintTestArcs \
	$(RESULTS)/PrintTestCubicCurves \
	$(RESULTS)/PrintTestCubicCurvesAsPaths \
	$(RESULTS)/PrintTestLines \
	$(RESULTS)/PrintTestLinesAsPaths \
	$(RESULTS)/PrintTestSlopedLines \
	$(RESULTS)/PrintTestRectangles \
	$(RESULTS)/PrintTestRoundRectangles \
	$(RESULTS)/PrintTestPaths \
	$(RESULTS)/PrintTestPolylines \
	$(RESULTS)/PrintTestPolygons \
	$(RESULTS)/PrintTestQuadraticCurves \
	$(RESULTS)/PrintTestQuadraticCurvesAsPaths \
	$(RESULTS)/PrintTestArcs \
	$(RESULTS)/PrintTestBitBlt \
	$(RESULTS)/PrintTestBitBltCropImage \
	$(RESULTS)/PrintTestBitBltMirrorImage \
	$(RESULTS)/PrintTestBitBltRotateImage \
	$(RESULTS)/PrintTestBitBltScaleImage \
	$(RESULTS)/PrintTestBitBltUsingBgColor \
	$(RESULTS)/PrintTestCircles \
	$(RESULTS)/PrintTestEllipses \
	$(RESULTS)/PrintTestDrawText \
	$(RESULTS)/PrintTestColorPaint \
	$(RESULTS)/PrintTestGradientPaint \
	$(RESULTS)/PrintTestTexturePaint

# targets for all test suites
TESTSUITES = $(shell ls -1 src/org/gfxtest/testsuites | sed -n -e 's/\([A-Za-z0-9]*\)\.java/\1/p')

SAMPLE_IMAGES = $(shell ls -1 src/org/gfxtest/testsuites | sed -n -e 's/\([A-Za-z0-9]*\)\.java/samples\/\1/p')

all:	build sample_images runtests

build:	$(CLASSES)/stamp $(OUTPUT)/stamp gfxtest.jar

test_framework:	$(FRAMEWORK_CLASSES)

test_suites:	$(TESTSUITE_CLASSES)

$(CLASSES)/stamp:
	mkdir -p $(CLASSES)
	touch $(CLASSES)/stamp

$(OUTPUT)/stamp:
	mkdir -p $(OUTPUT)
	touch $(OUTPUT)/stamp

$(SAMPLES)/stamp:
	mkdir -p $(SAMPLES)
	touch $(SAMPLES)/stamp

$(CLASSES)/$(COMMON_DIR)/%.class:	$(SOURCEPATH)/$(COMMON_DIR)/%.java
	$(JAVAC) -d $(CLASSES) -sourcepath src/ $<

$(CLASSES)/$(FRAMEWORK_DIR)/%.class:	$(SOURCEPATH)/$(FRAMEWORK_DIR)/%.java
	$(JAVAC) -d $(CLASSES) -sourcepath src/ $<

$(CLASSES)/$(CALLBACKS_DIR)/%.class:	$(SOURCEPATH)/$(CALLBACKS_DIR)/%.java
	$(JAVAC) -d $(CLASSES) -sourcepath src/ $<

$(CLASSES)/$(TESTSUITE_DIR)/%.class:	$(SOURCEPATH)/$(TESTSUITE_DIR)/%.java
	$(JAVAC) -d $(CLASSES) -sourcepath src/ $<

$(CLASSES)/$(REPORTER_DIR)/%.class:	$(SOURCEPATH)/$(REPORTER_DIR)/%.java
	$(JAVAC) -d $(CLASSES) -sourcepath src/ $<

$(CLASSES)/$(IMAGE_DIFFER_DIR)/%.class:	$(SOURCEPATH)/$(IMAGE_DIFFER_DIR)/%.java
	$(JAVAC) -d $(CLASSES) -sourcepath src/ $<

$(CLASSES)/$(HARNESS)/%.class:	$(SOURCEPATH)/$(HARNESS)/%.java
	$(JAVAC) -d $(CLASSES) -sourcepath src/ $<

gfxtest.jar:	$(FRAMEWORK_CLASSES) $(TESTSUITE_CLASSES)
	jar cvf gfxtest.jar -C $(CLASSES) . 

sample_images:	gfxtest.jar $(SAMPLE_IMAGES)

runtests:	gfxtest.jar $(TESTSUITES)

doc:
	javadoc -sourcepath src -d $(DOCS) org.gfxtest.ImageDiffer org.gfxtest.common org.gfxtest.framework org.gfxtest.harness org.gfxtest.reporter org.gfxtest.testsuites

# multiple targets - one for each test suite
$(TESTSUITES):	gfxtest.jar
	mkdir -p $(OUTPUT)/$@
	$(TESTED_JAVA) -cp gfxtest.jar $(TEST_PACKAGE).$@ $(RUN_OPTIONS) -o=$(OUTPUT)/$@

$(SAMPLE_IMAGES):	gfxtest.jar
	mkdir -p $@
	$(REFERENCE_JAVA) -cp gfxtest.jar $(TEST_PACKAGE).$(subst samples/,,$@) $(RUN_OPTIONS) -o=$@

compare-results:	compareresults

compareresults:	$(COMPARE_RESULTS)
	mkdir -p masks

# for output/NormalLines the internal macros are set to following:
# $@ -results/NormalLines
# $< -output/NormalLines
# $* -NormalLines
$(RESULTS)/%:	$(OUTPUT)/%
	mkdir -p $@
	java -cp gfxtest.jar org.gfxtest.ImageDiffer.Main -s1=$(SAMPLES)/$* -s2=$< -o=$@ --html --html-results --xml-results --diff-images --struct-diff-images

report:	compareresults gfxtest.jar
	java -cp gfxtest.jar org.gfxtest.reporter.Reporter -i=$(RESULTS) -o=$(RESULTS)

harness:	gfxtest.jar
	java -cp gfxtest.jar org.gfxtest.harness.MainWindow

cleanall:	clean clean-output clean-results clean-samples clean-test-build clean-doc

clean-all:	cleanall

clean:
	rm -rf $(CLASSES)
	rm -f gfxtest.jar

cleanresults: clean-results

clean-output:
	rm -rf $(OUTPUT)
	rm *.png

clean-test-build:
	rm -rf $(TEST_BUILD)

clean-results:
	rm -rf $(RESULTS)

clean-samples:
	rm -rf $(SAMPLES)

clean-doc:
	rm -rf $(DOCS)