# # 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/ 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 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