jdk/make/CopyFiles.gmk
changeset 21805 c7d7946239de
parent 21129 e1f4474a6723
child 22963 a28e6f0b511b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/CopyFiles.gmk	Thu Nov 14 11:19:32 2013 +0100
@@ -0,0 +1,573 @@
+#
+# Copyright (c) 2011, 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.
+#
+
+INCLUDEDIR = $(JDK_OUTPUTDIR)/include
+
+OPENJDK_TARGET_OS_INCLUDE = $(INCLUDEDIR)/$(OPENJDK_TARGET_OS)
+
+ifeq ($(OPENJDK_TARGET_OS), windows)
+  OPENJDK_TARGET_OS_INCLUDE = $(INCLUDEDIR)/win32
+else ifeq ($(OPENJDK_TARGET_OS), macosx)
+  OPENJDK_TARGET_OS_INCLUDE = $(INCLUDEDIR)/darwin
+endif
+
+#
+# Copy exported header files to outputdir.
+#
+H_TARGET_FILES = $(INCLUDEDIR)/jdwpTransport.h \
+    $(INCLUDEDIR)/jni.h \
+    $(INCLUDEDIR)/jvmti.h \
+    $(INCLUDEDIR)/jvmticmlr.h \
+    $(INCLUDEDIR)/classfile_constants.h \
+    $(INCLUDEDIR)/jawt.h \
+    $(OPENJDK_TARGET_OS_INCLUDE)/jni_md.h \
+    $(OPENJDK_TARGET_OS_INCLUDE)/jawt_md.h
+
+$(INCLUDEDIR)/%.h: $(JDK_TOPDIR)/src/share/javavm/export/%.h
+	$(call install-file)
+
+$(OPENJDK_TARGET_OS_INCLUDE)/%.h: $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_EXPORT_DIR)/javavm/export/%.h
+	$(call install-file)
+
+COPY_FILES = $(H_TARGET_FILES)
+
+##########################################################################################
+
+ifndef OPENJDK
+  ifeq ($(OPENJDK_TARGET_OS), windows)
+    COPY_FILES += $(OPENJDK_TARGET_OS_INCLUDE)/bridge/AccessBridgeCallbacks.h \
+        $(OPENJDK_TARGET_OS_INCLUDE)/bridge/AccessBridgeCalls.h \
+        $(OPENJDK_TARGET_OS_INCLUDE)/bridge/AccessBridgePackages.h \
+        $(OPENJDK_TARGET_OS_INCLUDE)/bridge/AccessBridgeCalls.c \
+        $(JDK_OUTPUTDIR)/lib/accessibility.properties
+
+    $(OPENJDK_TARGET_OS_INCLUDE)/bridge/%: \
+        $(JDK_TOPDIR)/src/closed/windows/native/sun/bridge/%
+		$(install-file)
+
+    $(JDK_OUTPUTDIR)/lib/accessibility.properties: \
+        $(JDK_TOPDIR)/src/closed/windows/native/sun/bridge/accessibility.properties
+		$(install-file)
+
+  endif
+endif
+
+##########################################################################################
+
+LIBDIR = $(JDK_OUTPUTDIR)/lib
+
+MGMT_LIBDIR = $(LIBDIR)/management
+MGMT_LIB_SRC = $(JDK_TOPDIR)/src/share/lib/management
+MGMT_SRC_FILES = $(wildcard $(MGMT_LIB_SRC)/*)
+MGMT_TARGET_FILES = $(subst $(MGMT_LIB_SRC),$(MGMT_LIBDIR),$(MGMT_SRC_FILES))
+
+$(MGMT_LIBDIR)/management.properties: $(MGMT_LIB_SRC)/management.properties
+	$(call install-file)
+	$(CHMOD) 644 $@
+
+# this file has different permissions...don't know why...
+$(MGMT_LIBDIR)/jmxremote.access: $(MGMT_LIB_SRC)/jmxremote.access
+	$(call install-file)
+	$(CHMOD) 644 $@
+
+$(MGMT_LIBDIR)/%: $(MGMT_LIB_SRC)/%
+	$(call install-file)
+	$(CHMOD) 444 $@
+
+COPY_FILES += $(MGMT_TARGET_FILES)
+
+##########################################################################################
+
+LOGGING_LIB_SRC = $(JDK_TOPDIR)/src/share/lib
+
+$(LIBDIR)/logging.properties: $(LOGGING_LIB_SRC)/logging.properties
+	$(call install-file)
+
+COPY_FILES += $(LIBDIR)/logging.properties
+
+##########################################################################################
+#
+# Copy property files from sun/print to LIBDIR
+#
+PSFONTPROPFILE_SRC_DIR = $(JDK_TOPDIR)/src/share/classes/sun/print
+PSFONTPROPFILE_SRCS = $(wildcard $(PSFONTPROPFILE_SRC_DIR)/*.properties*)
+PSFONTPROPFILE_TARGET_FILES = $(subst $(PSFONTPROPFILE_SRC_DIR),$(LIBDIR),$(PSFONTPROPFILE_SRCS))
+
+$(LIBDIR)/%: $(PSFONTPROPFILE_SRC_DIR)/%
+	$(call install-file)
+
+COPY_FILES += $(PSFONTPROPFILE_TARGET_FILES)
+
+##########################################################################################
+#
+# Copy flavormap.properties, cursor.properties and cursors gif files to LIBDIR
+#
+ifneq ($(OPENJDK_TARGET_OS), macosx)
+  OPENJDK_TARGET_OS_LIB_SRC = $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/lib
+else
+  OPENJDK_TARGET_OS_LIB_SRC = $(JDK_TOPDIR)/src/macosx/lib
+endif
+
+$(LIBDIR)/flavormap.properties: $(OPENJDK_TARGET_OS_LIB_SRC)/flavormap.properties
+	$(call install-file)
+
+COPY_FILES += $(LIBDIR)/flavormap.properties
+
+CURSORS_DEST_DIR = $(LIBDIR)/images/cursors
+CURSORS_OPENJDK_TARGET_OS_LIB_SRC = $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/lib/images/cursors
+
+$(CURSORS_DEST_DIR)/cursors.properties: $(CURSORS_OPENJDK_TARGET_OS_LIB_SRC)/cursors.properties
+	$(call install-file)
+
+COPY_FILES += $(CURSORS_DEST_DIR)/cursors.properties
+
+CURSORS_LIB_SRC = $(JDK_TOPDIR)/src/share/lib/images/cursors
+ifeq ($(OPENJDK_TARGET_OS), windows)
+  CURSORS_SRC_FILES = $(CURSORS_LIB_SRC)/invalid32x32.gif $(wildcard $(CURSORS_LIB_SRC)/win32_*.gif)
+else # OPENJDK_TARGET_OS
+  CURSORS_SRC_FILES = $(CURSORS_LIB_SRC)/invalid32x32.gif $(wildcard $(CURSORS_LIB_SRC)/motif_*.gif)
+endif # OPENJDK_TARGET_OS
+CURSORS_TARGET_FILES = $(subst $(CURSORS_LIB_SRC),$(CURSORS_DEST_DIR),$(CURSORS_SRC_FILES))
+
+$(CURSORS_DEST_DIR)/%: $(CURSORS_LIB_SRC)/%
+	$(call install-file)
+
+COPY_FILES += $(CURSORS_TARGET_FILES)
+
+##########################################################################################
+
+CONTENT_TYPES_SRC = $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/lib
+
+$(LIBDIR)/content-types.properties: $(CONTENT_TYPES_SRC)/content-types.properties
+	$(call install-file)
+
+COPY_FILES += $(LIBDIR)/content-types.properties
+
+##########################################################################################
+
+CALENDARS_SRC := $(JDK_TOPDIR)/src/share/lib
+
+$(LIBDIR)/calendars.properties: $(CALENDARS_SRC)/calendars.properties
+	$(call install-file)
+
+COPY_FILES += $(LIBDIR)/calendars.properties
+
+$(LIBDIR)/hijrah-config-umalqura.properties: $(CALENDARS_SRC)/hijrah-config-umalqura.properties
+	$(MKDIR) -p $(@D)
+	$(RM) $@
+	$(CP) $< $@
+
+COPY_FILES += $(LIBDIR)/hijrah-config-umalqura.properties
+
+##########################################################################################
+
+ifeq ($(OPENJDK_TARGET_OS), windows)
+
+  TZMAPPINGS_SRC := $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/lib
+
+  $(LIBDIR)/tzmappings: $(TZMAPPINGS_SRC)/tzmappings
+	$(call install-file)
+
+  COPY_FILES += $(LIBDIR)/tzmappings
+
+endif
+
+##########################################################################################
+
+ICCPROFILE_DEST_DIR := $(LIBDIR)/cmm
+
+ifdef OPENJDK
+  ICCPROFILE_SRC_DIR := $(JDK_TOPDIR)/src/share/lib/cmm/lcms
+else
+  ICCPROFILE_SRC_DIR := $(JDK_TOPDIR)/src/closed/share/lib/cmm/kcms
+endif
+
+ICCPROFILE_SRCS := $(wildcard $(ICCPROFILE_SRC_DIR)/*.pf)
+ICCPROFILE_TARGET_FILES := $(subst $(ICCPROFILE_SRC_DIR),$(ICCPROFILE_DEST_DIR),$(ICCPROFILE_SRCS))
+
+$(ICCPROFILE_DEST_DIR)%.pf: $(ICCPROFILE_SRC_DIR)%.pf
+	$(call install-file)
+	$(CHMOD) 444 $@
+
+COPY_FILES += $(ICCPROFILE_TARGET_FILES)
+
+##########################################################################################
+
+ifneq ($(FREETYPE_BUNDLE_LIB_PATH), )
+  # We need to bundle the freetype library, so it will be available at runtime as well as link time.
+  #
+  # NB: Default freetype build system uses -h linker option and
+  # result .so contains hardcoded library name that is later
+  # used for adding dependencies to other objects
+  # (e.g. libfontmanager.so).
+  #
+  # It is not obvious how to extract that hardcoded name (libfreetype.so.6)
+  # without overcomplicating logic here.
+  # To workaround this we hardcode .6 suffix for now.
+  #
+  # Note that .so.6 library will not be found by System.loadLibrary()
+  # but fortunately we need to load FreeType library explicitly
+  # on windows only
+  #
+  #TODO: rework this to avoid hardcoding library name in the makefile
+  #
+  ifeq ($(OPENJDK_TARGET_OS), windows)
+    FREETYPE_TARGET_LIB = $(JDK_OUTPUTDIR)/bin/$(call SHARED_LIBRARY,freetype)
+  else
+    FREETYPE_TARGET_LIB = $(JDK_OUTPUTDIR)/lib$(OPENJDK_TARGET_CPU_LIBDIR)/$(call SHARED_LIBRARY,freetype).6
+  endif
+
+  $(FREETYPE_TARGET_LIB): $(FREETYPE_BUNDLE_LIB_PATH)/$(call SHARED_LIBRARY,freetype)
+	$(CP) $(FREETYPE_BUNDLE_LIB_PATH)/$(call SHARED_LIBRARY,freetype) $@
+        ifeq ($(OPENJDK_BUILD_OS), windows)
+	  $(CHMOD) +rx $@
+        endif
+
+  COPY_FILES += $(FREETYPE_TARGET_LIB)
+endif
+
+##########################################################################################
+
+# Copy msvcrXX.dll on windows
+
+ifeq ($(OPENJDK_TARGET_OS), windows)
+  MSVCR_TARGET := $(JDK_OUTPUTDIR)/bin/$(notdir $(MSVCR_DLL))
+  # Chmod to avoid permission issues if bundles are unpacked on unix platforms.
+  $(MSVCR_TARGET): $(MSVCR_DLL)
+	$(call install-file)
+	$(CHMOD) a+rx $@
+
+  COPY_FILES += $(MSVCR_TARGET)
+endif
+
+##########################################################################################
+
+HPROF_SRC = $(JDK_TOPDIR)/src/share/demo/jvmti/hprof/jvm.hprof.txt
+
+$(LIBDIR)/jvm.hprof.txt: $(HPROF_SRC)
+	$(call install-file)
+
+COPY_FILES += $(LIBDIR)/jvm.hprof.txt
+
+##########################################################################################
+
+#
+# How to install jvm.cfg.
+#
+ifeq ($(JVM_VARIANT_ZERO), true)
+  JVMCFG_ARCH := zero
+else
+  JVMCFG_ARCH := $(OPENJDK_TARGET_CPU_LEGACY)
+endif
+
+ifeq ($(OPENJDK_TARGET_OS), macosx)
+  JVMCFG_SRC := $(JDK_TOPDIR)/src/macosx/bin/$(JVMCFG_ARCH)/jvm.cfg
+else
+  JVMCFG_SRC := $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/bin/$(JVMCFG_ARCH)/jvm.cfg
+endif
+JVMCFG_DIR := $(JDK_OUTPUTDIR)/lib$(OPENJDK_TARGET_CPU_LIBDIR)
+JVMCFG := $(JVMCFG_DIR)/jvm.cfg
+
+# To do: should this also support -zeroshark?
+
+ifeq ($(OPENJDK_TARGET_CPU_BITS), 64)
+  COPY_JVM_CFG_FILE := true
+else
+  # On 32-bit machines we have three potential VMs: client, server and minimal.
+  # Historically we usually have both client and server and so that is what the
+  # committed jvm.cfg expects (including platform specific ergonomics switches
+  # to decide whether to use client or server by default). So when we have anything
+  # other than client and server we need to define a new jvm.cfg file.
+  # The main problem is deciding whether to use aliases for the VMs that are not
+  # present and the current position is that we add aliases for client and server, but
+  # not for minimal.
+  CLIENT_AND_SERVER := $(and $(findstring true, $(JVM_VARIANT_SERVER)), $(findstring true, $(JVM_VARIANT_CLIENT)))
+  ifeq ($(CLIENT_AND_SERVER), true)
+    COPY_JVM_CFG_FILE := true
+  else
+    # For zero, the default jvm.cfg file is sufficient
+    ifeq ($(JVM_VARIANT_ZERO), true)
+      COPY_JVM_CFG_FILE := true
+    endif
+  endif
+endif
+
+ifeq ($(COPY_JVM_CFG_FILE), true)
+  $(JVMCFG): $(JVMCFG_SRC)
+	$(call install-file)
+else
+  $(JVMCFG):
+	$(MKDIR) -p $(@D)
+	$(RM) $(@)
+        # Now check for other permutations
+        ifeq ($(JVM_VARIANT_SERVER), true)
+	  $(PRINTF) "-server KNOWN\n">>$(@)
+	  $(PRINTF) "-client ALIASED_TO -server\n">>$(@)
+          ifeq ($(JVM_VARIANT_MINIMAL1), true)
+	    $(PRINTF) "-minimal KNOWN\n">>$(@)
+          endif
+        else
+          ifeq ($(JVM_VARIANT_CLIENT), true)
+	    $(PRINTF) "-client KNOWN\n">>$(@)
+	    $(PRINTF) "-server ALIASED_TO -client\n">>$(@)
+            ifeq ($(JVM_VARIANT_MINIMAL1), true)
+	      $(PRINTF) "-minimal KNOWN\n">>$(@)
+            endif
+          else
+            ifeq ($(JVM_VARIANT_MINIMAL1), true)
+	      $(PRINTF) "-minimal KNOWN\n">>$(@)
+	      $(PRINTF) "-server ALIASED_TO -minimal\n">>$(@)
+	      $(PRINTF) "-client ALIASED_TO -minimal\n">>$(@)
+            endif
+          endif
+        endif
+endif
+
+COPY_FILES += $(JVMCFG)
+
+##########################################################################################
+
+PROPS_SRC := $(JDK_TOPDIR)/src/share/lib/security/java.security-$(OPENJDK_TARGET_OS)
+PROPS_DST := $(JDK_OUTPUTDIR)/lib/security/java.security
+
+ifndef OPENJDK
+
+RESTRICTED_PKGS_SRC := $(JDK_TOPDIR)/src/closed/share/lib/security/restricted.pkgs
+RESTRICTED_PKGS := $(shell $(CAT) $(RESTRICTED_PKGS_SRC) | $(TR) "\n" " ")
+
+$(PROPS_DST): $(PROPS_SRC)
+	$(MKDIR) -p $(@D)
+	$(TOOL_ADDTORESTRICTEDPKGS) $^ $@.tmp $(RESTRICTED_PKGS)
+	$(MV) $@.tmp $@
+
+else
+
+$(PROPS_DST): $(PROPS_SRC)
+	$(call install-file)
+
+endif
+
+COPY_FILES += $(PROPS_DST)
+
+##########################################################################################
+
+POLICY_SRC := $(JDK_TOPDIR)/src/share/lib/security/java.policy
+POLICY_DST := $(JDK_OUTPUTDIR)/lib/security/java.policy
+
+$(POLICY_DST): $(POLICY_SRC)
+	$(call install-file)
+
+COPY_FILES += $(POLICY_DST)
+
+##########################################################################################
+
+CACERTS_SRC := $(CACERTS_FILE)
+CACERTS_DST := $(JDK_OUTPUTDIR)/lib/security/cacerts
+
+$(CACERTS_DST): $(CACERTS_SRC)
+	$(call install-file)
+
+COPY_FILES += $(CACERTS_DST)
+
+##########################################################################################
+
+BLACKLISTED_CERTS_SRC := $(JDK_TOPDIR)/src/share/lib/security/blacklisted.certs
+BLACKLISTED_CERTS_DST := $(JDK_OUTPUTDIR)/lib/security/blacklisted.certs
+
+ifndef OPENJDK
+
+  BLACKLIST_SRC := $(JDK_TOPDIR)/src/closed/share/lib/security/blacklist
+  BLACKLIST_DST := $(JDK_OUTPUTDIR)/lib/security/blacklist
+
+  BLACKLISTED_CERTS_SRC += $(wildcard $(JDK_TOPDIR)/src/closed/share/lib/security/blacklisted.certs)
+
+  TRUSTEDLIBS_SRC := $(JDK_TOPDIR)/src/closed/share/lib/security/trusted.libraries
+  TRUSTEDLIBS_DST := $(JDK_OUTPUTDIR)/lib/security/trusted.libraries
+
+  $(BLACKLIST_DST): $(BLACKLIST_SRC)
+	$(call install-file)
+
+  COPY_FILES += $(BLACKLIST_DST)
+
+  $(TRUSTEDLIBS_DST): $(TRUSTEDLIBS_SRC)
+	$(call install-file)
+
+  COPY_FILES += $(TRUSTEDLIBS_DST)
+
+endif
+
+$(BLACKLISTED_CERTS_DST): $(BLACKLISTED_CERTS_SRC)
+	$(MKDIR) -p $(@D)
+	$(CAT) $^ | $(SED) '/^$$/d' | $(SORT) | $(UNIQ) > $@.tmp
+	$(GREP) -i Algorithm $@.tmp > $@
+	if [ `$(SED) -n -e "$$=" $@` != 1 ]; then \
+	   $(ECHO) "Different algorithms defined in $^"; \
+	   $(RM) $@ $@.tmp; \
+	   false; \
+	fi
+	$(GREP) -iv Algorithm $@.tmp >> $@
+	$(RM) $@.tmp
+
+COPY_FILES += $(BLACKLISTED_CERTS_DST)
+
+##########################################################################################
+
+ifndef OPENJDK
+
+  SHARED_FONTS_SRC_DIR := $(JDK_TOPDIR)/src/closed/share/lib/fonts
+  SHARED_FONTS_DST_DIR := $(JDK_OUTPUTDIR)/lib/fonts
+  SHARED_FONTS_FILES := \
+      LucidaTypewriterRegular.ttf \
+      LucidaTypewriterBold.ttf \
+      LucidaBrightRegular.ttf \
+      LucidaBrightDemiBold.ttf \
+      LucidaBrightItalic.ttf \
+      LucidaBrightDemiItalic.ttf \
+      LucidaSansRegular.ttf \
+      LucidaSansDemiBold.ttf \
+
+  SHARED_FONTS_SRC := $(foreach F, $(SHARED_FONTS_FILES), $(SHARED_FONTS_SRC_DIR)/$(F))
+  SHARED_FONTS_DST := $(foreach F, $(SHARED_FONTS_FILES), $(SHARED_FONTS_DST_DIR)/$(F))
+
+  $(SHARED_FONTS_DST_DIR)/%.ttf: $(SHARED_FONTS_SRC_DIR)/%.ttf
+	$(call install-file)
+
+  $(SHARED_FONTS_DST_DIR)/fonts.dir: $(JDK_TOPDIR)/src/solaris/classes/sun/awt/motif/java.fonts.dir
+	$(call install-file)
+
+  COPY_FILES += $(SHARED_FONTS_DST)
+
+  ifneq ($(OPENJDK_TARGET_OS), windows)
+    COPY_FILES += $(SHARED_FONTS_DST_DIR)/fonts.dir
+  endif
+
+  ifeq ($(OPENJDK_TARGET_OS), linux)
+
+  # The oblique fonts are only needed/wanted on Linux.
+
+    OBL_FONTS_SRC_DIR := $(JDK_TOPDIR)/src/closed/share/lib/fonts/oblique
+    OBL_FONTS_DST_DIR := $(JDK_OUTPUTDIR)/lib/oblique-fonts
+    OBL_FONTS_FILES := LucidaTypewriterOblique.ttf LucidaTypewriterBoldOblique.ttf \
+        LucidaSansOblique.ttf LucidaSansDemiOblique.ttf
+
+    OBL_FONTS_SRC := $(foreach F, $(OBL_FONTS_FILES), $(OBL_FONTS_SRC_DIR)/$(F))
+    OBL_FONTS_DST := $(foreach F, $(OBL_FONTS_FILES), $(OBL_FONTS_DST_DIR)/$(F))
+
+    $(OBL_FONTS_DST_DIR)/%.ttf: $(OBL_FONTS_SRC_DIR)/%.ttf
+	$(call install-file)
+
+    $(OBL_FONTS_DST_DIR)/fonts.dir: $(JDK_TOPDIR)/src/solaris/classes/sun/awt/motif/java.oblique-fonts.dir
+	$(call install-file)
+
+    COPY_FILES += $(OBL_FONTS_DST) $(OBL_FONTS_DST_DIR)/fonts.dir
+
+  endif # linux
+endif # OPENJDK
+
+##########################################################################################
+
+ifndef OPENJDK
+
+  #
+  # Solaris X11 Direct Graphics Access library
+  #
+
+  _DGALIBS_sparc = \
+      libxinerama.so \
+      libjdgaSUNWcg6.so \
+      libjdgaSUNWffb.so \
+      libjdgaSUNWm64.so \
+      libjdgaSUNWafb.so
+
+  _DGALIBS_sparcv9 = \
+      libxinerama.so \
+      libjdgaSUNWcg6.so \
+      libjdgaSUNWffb.so \
+      libjdgaSUNWm64.so \
+      libjdgaSUNWafb.so
+
+  _DGALIBS_i586 = # no i586 library yet
+
+  _DGALIBS_amd64 = # no amd64 library yet
+
+  DGALIBS = $(_DGALIBS_$(OPENJDK_TARGET_CPU_LEGACY):%=$(JDK_OUTPUTDIR)/lib$(OPENJDK_TARGET_CPU_LIBDIR)/%)
+
+  $(JDK_OUTPUTDIR)/lib$(OPENJDK_TARGET_CPU_LIBDIR)/libxinerama.so: $(JDK_TOPDIR)/src/closed/solaris/lib/$(OPENJDK_TARGET_CPU_LEGACY)/libxinerama.so
+	$(call install-file)
+	$(CHMOD) 755 $@
+
+  $(JDK_OUTPUTDIR)/lib$(OPENJDK_TARGET_CPU_LIBDIR)/libjdgaSUNW%.so: $(JDK_TOPDIR)/src/closed/solaris/lib/$(OPENJDK_TARGET_CPU_LEGACY)/libjdgaSUNW%.so
+	$(call install-file)
+	$(CHMOD) 755 $@
+
+  $(JDK_OUTPUTDIR)/lib$(OPENJDK_TARGET_CPU_LIBDIR)/libjdgaSUNWafb.so: $(JDK_OUTPUTDIR)/lib$(OPENJDK_TARGET_CPU_LIBDIR)/libjdgaSUNWffb.so
+	$(MKDIR) -p $(@D)
+	$(RM) $@
+	$(LN) -s $(<F) $@
+
+  COPY_FILES += $(DGALIBS)
+
+endif
+
+##########################################################################################
+
+ifeq ($(OPENJDK_TARGET_OS), solaris)
+
+  SUNPKCS11_CFG_SRC := $(JDK_TOPDIR)/src/share/lib/security/sunpkcs11-solaris.cfg
+  SUNPKCS11_CFG_DST := $(JDK_OUTPUTDIR)/lib/security/sunpkcs11-solaris.cfg
+
+  $(SUNPKCS11_CFG_DST): $(SUNPKCS11_CFG_SRC)
+	$(call install-file)
+
+  COPY_FILES += $(SUNPKCS11_CFG_DST)
+
+endif
+
+##########################################################################################
+
+ifndef OPENJDK
+  ifeq ($(OPENJDK_TARGET_OS), solaris)
+
+    UCRYPTO_CFG_SRC := $(JDK_TOPDIR)/src/closed/share/lib/security/ucrypto-solaris.cfg
+    UCRYPTO_CFG_DST := $(JDK_OUTPUTDIR)/lib/security/ucrypto-solaris.cfg
+
+    $(UCRYPTO_CFG_DST): $(UCRYPTO_CFG_SRC)
+	$(call install-file)
+
+    COPY_FILES += $(UCRYPTO_CFG_DST)
+
+  endif
+endif
+
+##########################################################################################
+
+$(JDK_OUTPUTDIR)/lib/sound.properties: $(JDK_TOPDIR)/src/share/lib/sound.properties
+	$(call install-file)
+
+COPY_FILES += $(JDK_OUTPUTDIR)/lib/sound.properties
+
+##########################################################################################
+
+-include $(CUSTOM_MAKE_DIR)/CopyFiles.gmk