#
# Copyright 2003-2006 Sun Microsystems, Inc.  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.  Sun designates this
# particular file as subject to the "Classpath" exception as provided
# by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
# CA 95054 USA or visit www.sun.com if you need additional information or
# have any questions.
#

#
# This is the list of java classes that will be automatically built
# from sources.  See Exportedfiles.gmk for the list of files which
# will generate header files
#
FILES_java = \
    sun/nio/cs/StandardCharsets.java \
    sun/nio/cs/AbstractCharsetProvider.java \
    sun/nio/cs/HistoricallyNamedCharset.java \
    sun/nio/cs/Surrogate.java \
    sun/nio/cs/SingleByteEncoder.java \
    sun/nio/cs/SingleByteDecoder.java \
    sun/nio/cs/UnicodeEncoder.java \
    sun/nio/cs/UnicodeDecoder.java \
    sun/nio/cs/ISO_8859_1.java \
    sun/nio/cs/ISO_8859_2.java \
    sun/nio/cs/ISO_8859_4.java \
    sun/nio/cs/ISO_8859_5.java \
    sun/nio/cs/ISO_8859_7.java \
    sun/nio/cs/ISO_8859_9.java \
    sun/nio/cs/ISO_8859_13.java \
    sun/nio/cs/ISO_8859_15.java \
    sun/nio/cs/IBM437.java \
    sun/nio/cs/IBM737.java \
    sun/nio/cs/IBM775.java \
    sun/nio/cs/IBM850.java \
    sun/nio/cs/IBM852.java \
    sun/nio/cs/IBM855.java \
    sun/nio/cs/IBM857.java \
    sun/nio/cs/IBM858.java \
    sun/nio/cs/IBM862.java \
    sun/nio/cs/IBM866.java \
    sun/nio/cs/IBM874.java \
    sun/nio/cs/KOI8_R.java \
    sun/nio/cs/KOI8_U.java \
    sun/nio/cs/MS1250.java \
    sun/nio/cs/MS1251.java \
    sun/nio/cs/MS1252.java \
    sun/nio/cs/MS1253.java \
    sun/nio/cs/MS1254.java \
    sun/nio/cs/MS1257.java \
    sun/nio/cs/US_ASCII.java \
    sun/nio/cs/UTF_16.java \
    sun/nio/cs/UTF_16BE.java \
    sun/nio/cs/UTF_16LE.java \
    sun/nio/cs/UTF_16LE_BOM.java \
    sun/nio/cs/UTF_32.java \
    sun/nio/cs/UTF_32BE.java \
    sun/nio/cs/UTF_32LE.java \
    sun/nio/cs/UTF_32BE_BOM.java \
    sun/nio/cs/UTF_32LE_BOM.java


FILES_java += \
    sun/io/Converters.java \
    sun/io/ByteToCharConverter.java \
    sun/io/ByteToCharASCII.java \
    sun/io/ByteToCharUTF8.java \
    sun/io/ByteToCharUTF16.java \
    sun/io/ByteToCharUnicode.java \
    sun/io/ByteToCharUnicodeBig.java  \
    sun/io/ByteToCharUnicodeBigUnmarked.java \
    sun/io/ByteToCharUnicodeLittle.java \
    sun/io/ByteToCharUnicodeLittleUnmarked.java \
    sun/io/CharToByteConverter.java \
    sun/io/CharToByteASCII.java \
    sun/io/CharToByteUTF8.java \
    sun/io/CharToByteUTF16.java \
    sun/io/CharToByteUnicode.java \
    sun/io/CharToByteUnicodeBig.java \
    sun/io/CharToByteUnicodeBigUnmarked.java \
    sun/io/CharToByteUnicodeLittle.java \
    sun/io/CharToByteUnicodeLittleUnmarked.java \
    sun/io/CharacterEncoding.java \
    sun/io/ConversionBufferFullException.java \
    sun/io/MalformedInputException.java \
    sun/io/UnknownCharacterException.java \
    sun/io/ByteToCharISO8859_1.java \
    sun/io/CharToByteISO8859_1.java \
    sun/io/ByteToCharISO8859_2.java \
    sun/io/CharToByteISO8859_2.java \
    sun/io/ByteToCharISO8859_4.java \
    sun/io/CharToByteISO8859_4.java \
    sun/io/ByteToCharISO8859_5.java \
    sun/io/CharToByteISO8859_5.java \
    sun/io/ByteToCharISO8859_7.java \
    sun/io/CharToByteISO8859_7.java \
    sun/io/ByteToCharISO8859_9.java \
    sun/io/CharToByteISO8859_9.java \
    sun/io/ByteToCharISO8859_13.java \
    sun/io/CharToByteISO8859_13.java \
    sun/io/ByteToCharISO8859_15.java \
    sun/io/CharToByteISO8859_15.java \
    sun/io/ByteToCharCp1250.java \
    sun/io/CharToByteCp1250.java \
    sun/io/ByteToCharCp1251.java \
    sun/io/CharToByteCp1251.java \
    sun/io/ByteToCharCp1252.java \
    sun/io/CharToByteCp1252.java \
    sun/io/ByteToCharCp1253.java \
    sun/io/CharToByteCp1253.java \
    sun/io/ByteToCharCp1254.java \
    sun/io/CharToByteCp1254.java \
    sun/io/ByteToCharCp1257.java \
    sun/io/CharToByteCp1257.java \
    sun/io/ByteToCharKOI8_R.java \
    sun/io/CharToByteKOI8_R.java \
    sun/io/ByteToCharSingleByte.java \
    sun/io/CharToByteSingleByte.java



