#
# Copyright (c) 2012, 2013, 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.
#
PROFILE_1_JRE_BIN_FILES := \
    java$(EXE_SUFFIX) \
    keytool$(EXE_SUFFIX)

PROFILE_1_JRE_LIB_FILES := \
    $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)j2pkcs11$(SHARED_LIBRARY_SUFFIX) \
    $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)java$(SHARED_LIBRARY_SUFFIX) \
    $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)jsig$(SHARED_LIBRARY_SUFFIX) \
    $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)jsig.diz \
    $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)net$(SHARED_LIBRARY_SUFFIX) \
    $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)nio$(SHARED_LIBRARY_SUFFIX) \
    $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)sunec$(SHARED_LIBRARY_SUFFIX) \
    $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)verify$(SHARED_LIBRARY_SUFFIX) \
    $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)verify.diz \
    $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)zip$(SHARED_LIBRARY_SUFFIX) \
    $(OPENJDK_TARGET_CPU_LEGACY_LIB)/client/$(LIBRARY_PREFIX)jsig$(SHARED_LIBRARY_SUFFIX) \
    $(OPENJDK_TARGET_CPU_LEGACY_LIB)/client/$(LIBRARY_PREFIX)jsig.diz \
    $(OPENJDK_TARGET_CPU_LEGACY_LIB)/client/$(LIBRARY_PREFIX)jvm$(SHARED_LIBRARY_SUFFIX) \
    $(OPENJDK_TARGET_CPU_LEGACY_LIB)/client/$(LIBRARY_PREFIX)jvm.diz \
    $(OPENJDK_TARGET_CPU_LEGACY_LIB)/client/Xusage.txt \
    $(OPENJDK_TARGET_CPU_LEGACY_LIB)/jli/$(LIBRARY_PREFIX)jli$(SHARED_LIBRARY_SUFFIX) \
    $(OPENJDK_TARGET_CPU_LEGACY_LIB)/jvm.cfg \
    $(OPENJDK_TARGET_CPU_LEGACY_LIB)/minimal/$(LIBRARY_PREFIX)jsig$(SHARED_LIBRARY_SUFFIX) \
    $(OPENJDK_TARGET_CPU_LEGACY_LIB)/minimal/$(LIBRARY_PREFIX)jsig.diz \
    $(OPENJDK_TARGET_CPU_LEGACY_LIB)/minimal/$(LIBRARY_PREFIX)jvm$(SHARED_LIBRARY_SUFFIX) \
    $(OPENJDK_TARGET_CPU_LEGACY_LIB)/minimal/$(LIBRARY_PREFIX)jvm.diz \
    $(OPENJDK_TARGET_CPU_LEGACY_LIB)/minimal/Xusage.txt \
    $(OPENJDK_TARGET_CPU_LEGACY_LIB)/server/$(LIBRARY_PREFIX)jsig$(SHARED_LIBRARY_SUFFIX) \
    $(OPENJDK_TARGET_CPU_LEGACY_LIB)/server/$(LIBRARY_PREFIX)jsig.diz \
    $(OPENJDK_TARGET_CPU_LEGACY_LIB)/server/$(LIBRARY_PREFIX)jvm$(SHARED_LIBRARY_SUFFIX) \
    $(OPENJDK_TARGET_CPU_LEGACY_LIB)/server/$(LIBRARY_PREFIX)jvm.diz \
    $(OPENJDK_TARGET_CPU_LEGACY_LIB)/server/Xusage.txt \
    calendars.properties \
    classlist \
    content-types.properties \
    currency.data \
    ext/localedata.jar \
    ext/meta-index \
    ext/sunec.jar \
    ext/sunjce_provider.jar \
    ext/sunpkcs11.jar \
    hijrah-config-umalqura.properties \
    jce.jar \
    jsse.jar \
    logging.properties \
    meta-index \
    net.properties \
    resources.jar \
    rt.jar \
    security/US_export_policy.jar \
    security/blacklist \
    security/cacerts \
    security/java.policy \
    security/java.security \
    security/local_policy.jar \
    security/trusted.libraries \
    tzdb.dat

PROFILE_1_JRE_OTHER_FILES := \
    COPYRIGHT \
    LICENSE \
    README \
    THIRDPARTYLICENSEREADME.txt \
    Welcome.html \
    release

PROFILE_1_JRE_JAR_FILES := \
    ext/localedata.jar \
    ext/sunec.jar \
    ext/sunjce_provider.jar \
    ext/sunpkcs11.jar \
    jce.jar \
    jsse.jar \
    resources.jar \
    rt.jar \
    security/US_export_policy.jar \
    security/local_policy.jar


PROFILE_2_JRE_BIN_FILES := \
    rmid$(EXE_SUFFIX) \
    rmiregistry$(EXE_SUFFIX)

PROFILE_2_JRE_LIB_FILES :=

PROFILE_2_JRE_OTHER_FILES :=

PROFILE_2_JRE_JAR_FILES :=


PROFILE_3_JRE_BIN_FILES :=

PROFILE_3_JRE_LIB_FILES := \
    $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)hprof$(SHARED_LIBRARY_SUFFIX) \
    $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)hprof.diz \
    $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)instrument$(SHARED_LIBRARY_SUFFIX) \
    $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)instrument.diz \
    $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)j2gss$(SHARED_LIBRARY_SUFFIX) \
    $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)j2pcsc$(SHARED_LIBRARY_SUFFIX) \
    $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)jaas_unix$(SHARED_LIBRARY_SUFFIX) \
    $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)java_crw_demo$(SHARED_LIBRARY_SUFFIX) \
    $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)java_crw_demo.diz \
    $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)jsdt$(SHARED_LIBRARY_SUFFIX) \
    $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)jsdt.diz \
    $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)management$(SHARED_LIBRARY_SUFFIX) \
    $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)management.diz \
    $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)npt$(SHARED_LIBRARY_SUFFIX) \
    $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)npt.diz \
    $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)sctp$(SHARED_LIBRARY_SUFFIX) \
    jvm.hprof.txt \
    management-agent.jar \
    management/jmxremote.access \
    management/jmxremote.password.template \
    management/management.properties \
    management/snmp.acl.template

PROFILE_3_JRE_OTHER_FILES :=

PROFILE_3_JRE_JAR_FILES := \
    management-agent.jar


FULL_JRE_BIN_FILES := \
    orbd$(EXE_SUFFIX) \
    pack200$(EXE_SUFFIX) \
    policytool$(EXE_SUFFIX) \
    servertool$(EXE_SUFFIX) \
    tnameserv$(EXE_SUFFIX) \
    unpack200$(EXE_SUFFIX)

FULL_JRE_LIB_FILES := \
    $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)awt$(SHARED_LIBRARY_SUFFIX) \
    $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)awt_headless$(SHARED_LIBRARY_SUFFIX) \
    $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)awt_xawt$(SHARED_LIBRARY_SUFFIX) \
    $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)dcpr$(SHARED_LIBRARY_SUFFIX) \
    $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)dt_socket$(SHARED_LIBRARY_SUFFIX) \
    $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)dt_socket.diz \
    $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)fontmanager$(SHARED_LIBRARY_SUFFIX) \
    $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)jawt$(SHARED_LIBRARY_SUFFIX) \
    $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)jdwp$(SHARED_LIBRARY_SUFFIX) \
    $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)jfr$(SHARED_LIBRARY_SUFFIX) \
    $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)jpeg$(SHARED_LIBRARY_SUFFIX) \
    $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)jsound$(SHARED_LIBRARY_SUFFIX) \
    $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)jsoundalsa$(SHARED_LIBRARY_SUFFIX) \
    $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)kcms$(SHARED_LIBRARY_SUFFIX) \
    $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)mlib_image$(SHARED_LIBRARY_SUFFIX) \
    $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)splashscreen$(SHARED_LIBRARY_SUFFIX) \
    $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)t2k$(SHARED_LIBRARY_SUFFIX) \
    $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)unpack$(SHARED_LIBRARY_SUFFIX) \
    charsets.jar \
    cmm/CIEXYZ.pf \
    cmm/GRAY.pf \
    cmm/LINEAR_RGB.pf \
    cmm/PYCC.pf \
    cmm/sRGB.pf \
    ext/cldrdata.jar \
    ext/dnsns.jar \
    ext/nashorn.jar \
    ext/zipfs.jar \
    flavormap.properties \
    fontconfig.RedHat.5.bfc \
    fontconfig.RedHat.5.properties.src \
    fontconfig.RedHat.6.bfc \
    fontconfig.RedHat.6.properties.src \
    fontconfig.SuSE.10.bfc \
    fontconfig.SuSE.10.properties.src \
    fontconfig.SuSE.11.bfc \
    fontconfig.SuSE.11.properties.src \
    fontconfig.Turbo.bfc \
    fontconfig.Turbo.properties.src \
    fontconfig.bfc \
    fontconfig.properties.src \
    fonts/LucidaBrightDemiBold.ttf \
    fonts/LucidaBrightDemiItalic.ttf \
    fonts/LucidaBrightItalic.ttf \
    fonts/LucidaBrightRegular.ttf \
    fonts/LucidaSansDemiBold.ttf \
    fonts/LucidaSansRegular.ttf \
    fonts/LucidaTypewriterBold.ttf \
    fonts/LucidaTypewriterRegular.ttf \
    fonts/fonts.dir \
    images/cursors/cursors.properties \
    images/cursors/invalid32x32.gif \
    images/cursors/motif_CopyDrop32x32.gif \
    images/cursors/motif_CopyNoDrop32x32.gif \
    images/cursors/motif_LinkDrop32x32.gif \
    images/cursors/motif_LinkNoDrop32x32.gif \
    images/cursors/motif_MoveDrop32x32.gif \
    images/cursors/motif_MoveNoDrop32x32.gif \
    jexec \
    jfr.jar \
    oblique-fonts/LucidaSansDemiOblique.ttf \
    oblique-fonts/LucidaSansOblique.ttf \
    oblique-fonts/LucidaTypewriterBoldOblique.ttf \
    oblique-fonts/LucidaTypewriterOblique.ttf \
    oblique-fonts/fonts.dir \
    psfont.properties.ja \
    psfontj2d.properties \
    sound.properties

FULL_JRE_OTHER_FILES := \
    man/ja_JP.UTF-8/man1/java.1 \
    man/ja_JP.UTF-8/man1/javaws.1 \
    man/ja_JP.UTF-8/man1/keytool.1 \
    man/ja_JP.UTF-8/man1/orbd.1 \
    man/ja_JP.UTF-8/man1/pack200.1 \
    man/ja_JP.UTF-8/man1/policytool.1 \
    man/ja_JP.UTF-8/man1/rmid.1 \
    man/ja_JP.UTF-8/man1/rmiregistry.1 \
    man/ja_JP.UTF-8/man1/servertool.1 \
    man/ja_JP.UTF-8/man1/tnameserv.1 \
    man/ja_JP.UTF-8/man1/unpack200.1 \
    man/man1/java.1 \
    man/man1/javaws.1 \
    man/man1/keytool.1 \
    man/man1/orbd.1 \
    man/man1/pack200.1 \
    man/man1/policytool.1 \
    man/man1/rmid.1 \
    man/man1/rmiregistry.1 \
    man/man1/servertool.1 \
    man/man1/tnameserv.1 \
    man/man1/unpack200.1

FULL_JRE_JAR_FILES := \
    charsets.jar \
    ext/cldrdata.jar \
    ext/dnsns.jar \
    ext/nashorn.jar \
    ext/zipfs.jar \
    jfr.jar
