blob: 3014a71c9d9cc9bf15d589d90a4e1db4dca37be2 [file] [log] [blame]
#
# Copyright (c) 2012, 2014, 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.
#
# These lists define where a file belongs if it exists. It is perfectly fine
# if a file does not exist on some platforms - we do not have to produce exact
# per-platform lists. However, for clarity, platform-unique files are handled
# in platform-specific conditionals.
# On different platforms the libraries are placed into different locations in the
# JRE:
ifeq (, $(findstring $(OPENJDK_TARGET_OS), windows macosx))
# On non-windows/OSX libraries go into jre/lib/<arch>
LIBS_PREFIX := $(OPENJDK_TARGET_CPU_LEGACY_LIB)/
else
# On OSX they go into jre/lib/ - on Windows they go into jre/bin/ and we won't use this
LIBS_PREFIX :=
endif
# Debug info files are tricky to deal with due to all the different platform variants
# and because they can be zipped.
ifeq ($(ZIP_DEBUGINFO_FILES), true)
# Common case and 'just works' on all platforms
DEBUG_SUFFIX := .diz
else
# It gets complicated ...
ifeq ($(OPENJDK_TARGET_OS), macosx)
# This is a directory, not a simple file, so
# it needs expanding explicitly later on
DEBUG_SUFFIX := $(SHARED_LIBRARY_SUFFIX).dSYM
else
ifeq ($(OPENJDK_TARGET_OS), windows)
DEBUG_SUFFIX := .map .pdb
else
DEBUG_SUFFIX := .debuginfo
endif
endif
endif
# Expand the contents of the .dSYM directories on macosx.
# Param 1 - debug files list eg libFoo.dylib.dSYM or libFoo.diz (if zipped)
# Param 2 - libraries list eg Foo
# On macosx if not zipping debuginfo files we expand the contents of the .dSYM directories,
# else we return the original list of .diz files.
# On other OS we return the original list of debuginfo files (whether zipped or not)
#
define expand-debuginfo
$(if $(and $(filter-out true, $(ZIP_DEBUGINFO_FILES)), $(filter macosx, $(OPENJDK_TARGET_OS))), \
$(foreach i, $1, $(addsuffix /Contents/Info.plist, $i)) \
$(foreach i, $2, $(addsuffix /Contents/Resources/DWARF/$i, $(filter $i.%, $1))), \
$1)
endef
# Common executable files
PROFILE_1_JRE_BIN_FILES := \
java$(EXE_SUFFIX) \
keytool$(EXE_SUFFIX)
ifeq ($(OPENJDK_TARGET_OS), windows)
PROFILE_1_JRE_BIN_FILES += javaw$(EXE_SUFFIX)
endif
PROFILE_1_LIBRARIES := \
j2pkcs11 \
java \
jsig \
net \
nio \
sunec \
verify \
zip
ifeq ($(OPENJDK_TARGET_OS), windows)
PROFILE_1_LIBRARIES += msvcrt100
endif
PROFILE_1_LIBRARIES := $(addprefix $(LIBRARY_PREFIX), $(PROFILE_1_LIBRARIES))
PROFILE_1_DEBUG_FILES := $(foreach i, $(DEBUG_SUFFIX), $(addsuffix $i, $(PROFILE_1_LIBRARIES)))
PROFILE_1_LIBRARIES := $(addsuffix $(SHARED_LIBRARY_SUFFIX), $(PROFILE_1_LIBRARIES))
PROFILE_1_DEBUG_FILES := $(call expand-debuginfo, $(PROFILE_1_DEBUG_FILES), $(PROFILE_1_LIBRARIES))
PROFILE_1_LIBRARIES += $(PROFILE_1_DEBUG_FILES)
# Note: libjsig exists as both the real file and a symlink in the VM directory
# so we have to treat it with care when looking for the debuginfo files
VM_LIBRARIES := \
jvm
ifeq ($(OPENJDK_TARGET_OS), solaris)
VM_LIBRARIES += jvm_db jvm_dtrace
endif
VM_SYMLINKS := \
jsig
VM_LIBRARIES := $(addprefix $(LIBRARY_PREFIX), $(VM_LIBRARIES))
VM_DEBUG_FILES := $(foreach i, $(DEBUG_SUFFIX), $(addsuffix $i, $(VM_LIBRARIES)))
VM_SYMLINKS := $(addprefix $(LIBRARY_PREFIX), $(VM_SYMLINKS))
VM_LIBRARIES := $(addsuffix $(SHARED_LIBRARY_SUFFIX), $(VM_LIBRARIES))
VM_DEBUG_FILES := $(call expand-debuginfo, $(VM_DEBUG_FILES), $(VM_LIBRARIES))
VM_DEBUG_FILES += $(foreach i, $(DEBUG_SUFFIX), $(addsuffix $i, $(VM_SYMLINKS)))
VM_SYMLINKS := $(addsuffix $(SHARED_LIBRARY_SUFFIX), $(VM_SYMLINKS))
VM_LIBRARIES += $(VM_SYMLINKS)
VM_FILES := \
Xusage.txt
VM_DIRS := client server minimal
VM_FILES := $(foreach i, $(VM_DIRS), $(addprefix $i/, $(VM_LIBRARIES) $(VM_FILES) $(VM_DEBUG_FILES)))
JLI_LIBRARIES := \
jli
ifneq ($(OPENJDK_TARGET_OS), windows)
JLI_SUBDIR := jli/
else
JLI_SUBDIR :=
endif
JLI_LIBRARIES := $(addprefix $(JLI_SUBDIR)$(LIBRARY_PREFIX), $(JLI_LIBRARIES))
JLI_DEBUG_FILES := $(foreach i, $(DEBUG_SUFFIX), $(addsuffix $i, $(JLI_LIBRARIES)))
JLI_LIBRARIES := $(addsuffix $(SHARED_LIBRARY_SUFFIX), $(JLI_LIBRARIES))
JLI_DEBUG_FILES := $(call expand-debuginfo, $(JLI_DEBUG_FILES), $(JLI_LIBRARIES))
JLI_LIBRARIES += $(JLI_DEBUG_FILES)
ifneq ($(OPENJDK_TARGET_OS), windows)
PROFILE_1_JRE_LIB_FILES := \
$(addprefix $(LIBS_PREFIX), $(PROFILE_1_LIBRARIES) $(VM_FILES) $(JLI_LIBRARIES))
else
# On windows libraries go into jre/bin
PROFILE_1_JRE_BIN_FILES += $(PROFILE_1_LIBRARIES) $(VM_FILES) $(JLI_LIBRARIES)
endif
# Remaining jre/lib contents
# OSX doesn't use <arch> directory
#
ifeq ($(OPENJDK_TARGET_OS), macosx)
PROFILE_1_JRE_LIB_FILES += \
jvm.cfg \
jspawnhelper
else
PROFILE_1_JRE_LIB_FILES += \
$(OPENJDK_TARGET_CPU_LEGACY_LIB)/jvm.cfg \
$(OPENJDK_TARGET_CPU_LEGACY_LIB)/jspawnhelper
endif
PROFILE_1_JRE_LIB_FILES += \
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/blacklisted.certs \
security/cacerts \
security/java.policy \
security/java.security \
security/local_policy.jar \
security/trusted.libraries \
tzdb.dat
ifeq ($(OPENJDK_TARGET_OS), windows)
PROFILE_1_JRE_LIB_FILES += tzmappings
else
ifeq ($(OPENJDK_TARGET_OS), solaris)
PROFILE_1_JRE_LIB_FILES += sdp/sdp.conf
endif
endif
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)
ifeq ($(OPENJDK_TARGET_OS), windows)
PROFILE_2_JRE_BIN_FILES += java-rmi$(EXE_SUFFIX)
endif
# If you add libraries here, make sure you use the same techniques
# as used for the other profile's libraries regarding debug files etc
PROFILE_2_JRE_LIB_FILES :=
PROFILE_2_JRE_OTHER_FILES :=
PROFILE_2_JRE_JAR_FILES :=
ifeq ($(OPENJDK_TARGET_OS), windows)
PROFILE_3_JRE_BIN_FILES := \
kinit$(EXE_SUFFIX) \
klist$(EXE_SUFFIX) \
ktab$(EXE_SUFFIX)
else
PROFILE_3_JRE_BIN_FILES :=
endif
PROFILE_3_LIBRARIES := \
hprof \
instrument \
j2gss \
j2pcsc \
jaas_unix \
jaas_nt \
java_crw_demo \
jsdt \
management \
npt \
sctp
ifeq ($(OPENJDK_TARGET_OS), windows)
PROFILE_3_LIBRARIES += w2k_lsa_auth
else
ifeq ($(OPENJDK_TARGET_OS), macosx)
PROFILE_3_LIBRARIES += osxkrb5
endif
endif
PROFILE_3_LIBRARIES := $(addprefix $(LIBRARY_PREFIX), $(PROFILE_3_LIBRARIES))
PROFILE_3_DEBUG_FILES := $(foreach i, $(DEBUG_SUFFIX), $(addsuffix $i, $(PROFILE_3_LIBRARIES)))
PROFILE_3_LIBRARIES := $(addsuffix $(SHARED_LIBRARY_SUFFIX), $(PROFILE_3_LIBRARIES))
PROFILE_3_DEBUG_FILES := $(call expand-debuginfo, $(PROFILE_3_DEBUG_FILES), $(PROFILE_3_LIBRARIES))
PROFILE_3_LIBRARIES += $(PROFILE_3_DEBUG_FILES)
ifneq ($(OPENJDK_TARGET_OS), windows)
PROFILE_3_JRE_LIB_FILES := \
$(addprefix $(LIBS_PREFIX), $(PROFILE_3_LIBRARIES))
else
# On windows libraries go into jre/bin
PROFILE_3_JRE_BIN_FILES += $(PROFILE_3_LIBRARIES)
endif
PROFILE_3_JRE_LIB_FILES += \
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)
JRE_LIBRARIES := \
awt \
awt_headless \
awt_xawt \
dcpr \
dt_socket \
fontmanager \
jawt \
jdwp \
jfr \
jpeg \
jsound \
jsoundalsa \
kcms \
mlib_image \
splashscreen \
t2k \
unpack
JRE_LIBRARIES := $(addprefix $(LIBRARY_PREFIX), $(JRE_LIBRARIES))
JRE_DEBUG_FILES := $(foreach i, $(DEBUG_SUFFIX), $(addsuffix $i, $(JRE_LIBRARIES)))
JRE_LIBRARIES := $(addsuffix $(SHARED_LIBRARY_SUFFIX), $(JRE_LIBRARIES))
JRE_DEBUG_FILES := $(call expand-debuginfo, $(JRE_DEBUG_FILES), $(JRE_LIBRARIES))
JRE_LIBRARIES += $(JRE_DEBUG_FILES)
ifneq ($(OPENJDK_TARGET_OS), windows)
FULL_JRE_LIB_FILES := \
$(addprefix $(LIBS_PREFIX), $(JRE_LIBRARIES))
else
# On windows libraries go into jre/bin
FULL_JRE_BIN_FILES += $(JRE_LIBRARIES)
endif
FULL_JRE_LIB_FILES += \
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