#
# Copyright (c) 2000, 2009, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation.  Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code 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
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#

# FILES_export definitions for Solaris and Linux

FILES_export = \
        sun/font/FontManager.java \
	sun/awt/image/ImageRepresentation.java \
	sun/awt/image/GifImageDecoder.java \
	sun/awt/image/NativeLibLoader.java \
	sun/java2d/loops/Blit.java \
	sun/java2d/loops/BlitBg.java \
	sun/java2d/loops/ScaledBlit.java \
	sun/java2d/loops/TransformBlit.java \
	sun/java2d/loops/FillRect.java \
	sun/java2d/loops/FillSpans.java \
        sun/java2d/loops/DrawGlyphList.java \
        sun/java2d/loops/DrawGlyphListAA.java \
        sun/java2d/loops/DrawGlyphListLCD.java \
	sun/java2d/loops/DrawLine.java \
	sun/java2d/loops/DrawRect.java \
	sun/java2d/loops/DrawPolygons.java \
        sun/java2d/loops/DrawPath.java \
        sun/java2d/loops/FillPath.java \
	sun/java2d/loops/MaskBlit.java \
	sun/java2d/loops/MaskFill.java \
	sun/java2d/loops/TransformHelper.java \
	sun/java2d/loops/GraphicsPrimitiveMgr.java \
        sun/java2d/loops/GraphicsPrimitive.java \
        sun/java2d/pipe/hw/AccelSurface.java \
	sun/java2d/pipe/hw/AccelDeviceEventNotifier.java \
        sun/java2d/pipe/hw/ContextCapabilities.java \
        sun/awt/image/ImagingLib.java \
	sun/java2d/SurfaceData.java \
	sun/java2d/SunGraphics2D.java \
	sun/awt/KeyboardFocusManagerPeerImpl.java \
	sun/awt/image/BufImgSurfaceData.java \
	sun/awt/image/DataBufferNative.java \
	\
	sun/awt/motif/X11FontMetrics.java \
	sun/awt/X11InputMethod.java \
	sun/awt/motif/MFontConfiguration.java \
	sun/awt/motif/MFontPeer.java \
	sun/awt/motif/MToolkit.java \
        sun/awt/DebugSettings.java \
	sun/awt/EmbeddedFrame.java \
	sun/awt/PlatformFont.java \
	sun/awt/FontDescriptor.java \
	sun/awt/NativeLibLoader.java \
	sun/awt/X11GraphicsEnvironment.java \
	sun/awt/X11GraphicsDevice.java \
	sun/awt/X11GraphicsConfig.java \
	sun/awt/CharsetString.java \
	sun/awt/UNIXToolkit.java \
	sun/java2d/pipe/BufferedContext.java \
	sun/java2d/pipe/BufferedMaskBlit.java \
	sun/java2d/pipe/BufferedOpCodes.java \
	sun/java2d/pipe/BufferedMaskBlit.java \
	sun/java2d/pipe/BufferedPaints.java \
	sun/java2d/pipe/BufferedRenderPipe.java \
	sun/java2d/pipe/BufferedTextPipe.java \
	sun/java2d/pipe/RenderBuffer.java \
	sun/java2d/pipe/ShapeSpanIterator.java \
	sun/java2d/pipe/SpanClipRenderer.java \
	sun/java2d/pipe/RegionIterator.java \
        sun/awt/image/IntegerComponentRaster.java \
        sun/java2d/cmm/CMSManager.java \
        sun/java2d/cmm/PCMM.java \
        sun/java2d/cmm/ColorTransform.java \
        sun/awt/datatransfer/DataTransferer.java \
	sun/awt/dnd/SunDragSourceContextPeer.java \
	sun/awt/motif/MToolkitThreadBlockedHandler.java \
	sun/java2d/opengl/OGLBlitLoops.java \
	sun/java2d/opengl/OGLContext.java \
	sun/java2d/opengl/OGLMaskFill.java \
	sun/java2d/opengl/OGLPaints.java \
	sun/java2d/opengl/OGLRenderer.java \
	sun/java2d/opengl/OGLRenderQueue.java \
	sun/java2d/opengl/OGLSurfaceData.java \
	sun/java2d/opengl/OGLTextRenderer.java \
	sun/java2d/opengl/GLXGraphicsConfig.java \
	sun/java2d/opengl/GLXSurfaceData.java \
	sun/java2d/x11/X11PMBlitLoops.java \
	sun/java2d/x11/X11PMBlitBgLoops.java \
	sun/java2d/x11/X11Renderer.java \
	sun/java2d/x11/X11SurfaceData.java \
        com/sun/java/swing/plaf/gtk/GTKEngine.java \
        com/sun/java/swing/plaf/gtk/GTKStyle.java \
        sun/awt/ExtendedKeyCodes.java


FILES_export2 = \
	java/awt/AlphaComposite.java \
	java/awt/MouseInfo.java \
	java/awt/Cursor.java \
	java/awt/Graphics.java \
	java/awt/Color.java \
	java/awt/Image.java \
	java/awt/Rectangle.java \
	java/awt/Event.java \
	java/awt/Font.java \
	java/awt/Insets.java \
	java/awt/Point.java \
	java/awt/FontMetrics.java \
	java/awt/Toolkit.java \
	java/awt/Component.java \
	java/awt/Container.java \
	java/awt/Canvas.java \
	java/awt/Button.java \
	java/awt/List.java \
	java/awt/Adjustable.java \
	java/awt/Scrollbar.java \
	java/awt/ScrollPane.java \
	java/awt/ScrollPaneAdjustable.java \
	java/awt/Window.java \
	java/awt/TextField.java \
	java/awt/Label.java \
	java/awt/Choice.java \
	java/awt/TextArea.java \
	java/awt/MenuBar.java \
	java/awt/Menu.java \
	java/awt/MenuComponent.java \
	java/awt/PopupMenu.java \
	java/awt/Dialog.java \
	java/awt/FileDialog.java \
	java/awt/MenuItem.java \
	java/awt/Checkbox.java \
	java/awt/CheckboxMenuItem.java \
	java/awt/CheckboxGroup.java \
	java/awt/Frame.java \
        java/awt/Transparency.java \
	java/awt/AWTException.java \
	java/awt/AWTEvent.java \
        java/awt/AWTKeyStroke.java \
        java/awt/KeyboardFocusManager.java \
	java/awt/Dimension.java \
	java/awt/SystemColor.java \
	java/awt/TrayIcon.java \
	java/awt/DisplayMode.java \
        java/awt/color/ColorSpace.java \
        java/awt/color/ICC_Profile.java \
        java/awt/geom/PathIterator.java \
	java/awt/image/AffineTransformOp.java \
	java/awt/image/ImageConsumer.java \
	java/awt/image/ImageObserver.java \
        java/awt/image/BufferedImage.java \
	java/awt/image/ColorModel.java \
	java/awt/image/ConvolveOp.java \
	java/awt/image/DirectColorModel.java \
	java/awt/image/IndexColorModel.java \
	java/awt/image/DataBuffer.java \
        java/awt/datatransfer/Transferable.java \
        java/awt/datatransfer/DataFlavor.java \
        java/awt/datatransfer/UnsupportedFlavorException.java \
        java/awt/datatransfer/Clipboard.java \
	java/awt/datatransfer/ClipboardOwner.java \
	java/awt/datatransfer/StringSelection.java \
	java/awt/event/AdjustmentEvent.java \
	java/awt/event/KeyEvent.java \
	java/awt/event/MouseEvent.java \
	java/awt/event/MouseWheelEvent.java \
	java/awt/event/FocusEvent.java \
	java/awt/event/InputEvent.java \
	java/awt/event/WindowEvent.java \
	java/awt/event/NativeLibLoader.java \
	java/awt/peer/ComponentPeer.java \
	java/awt/dnd/DnDConstants.java \
	sun/awt/CausedFocusEvent.java

