1 #
   2 # Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights reserved.
   3 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4 #
   5 # This code is free software; you can redistribute it and/or modify it
   6 # under the terms of the GNU General Public License version 2 only, as
   7 # published by the Free Software Foundation.  Oracle designates this
   8 # particular file as subject to the "Classpath" exception as provided
   9 # by Oracle in the LICENSE file that accompanied this code.
  10 #
  11 # This code is distributed in the hope that it will be useful, but WITHOUT
  12 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13 # FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14 # version 2 for more details (a copy is included in the LICENSE file that
  15 # accompanied this code).
  16 #
  17 # You should have received a copy of the GNU General Public License version
  18 # 2 along with this work; if not, write to the Free Software Foundation,
  19 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20 #
  21 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22 # or visit www.oracle.com if you need additional information or have any
  23 # questions.
  24 #
  25 
  26 INCLUDEDIR = $(JDK_OUTPUTDIR)/include
  27 
  28 OPENJDK_TARGET_OS_INCLUDE = $(INCLUDEDIR)/$(OPENJDK_TARGET_OS)
  29 
  30 ifeq ($(OPENJDK_TARGET_OS), windows)
  31   OPENJDK_TARGET_OS_INCLUDE = $(INCLUDEDIR)/win32
  32 else ifeq ($(OPENJDK_TARGET_OS), macosx)
  33   OPENJDK_TARGET_OS_INCLUDE = $(INCLUDEDIR)/darwin
  34 endif
  35 
  36 #
  37 # Copy exported header files to outputdir.
  38 #
  39 H_TARGET_FILES = $(INCLUDEDIR)/jdwpTransport.h \
  40     $(INCLUDEDIR)/jni.h \
  41     $(INCLUDEDIR)/jvmti.h \
  42     $(INCLUDEDIR)/jvmticmlr.h \
  43     $(INCLUDEDIR)/classfile_constants.h \
  44     $(INCLUDEDIR)/jawt.h \
  45     $(OPENJDK_TARGET_OS_INCLUDE)/jni_md.h \
  46     $(OPENJDK_TARGET_OS_INCLUDE)/jawt_md.h
  47 
  48 $(INCLUDEDIR)/%.h: $(JDK_TOPDIR)/src/share/javavm/export/%.h
  49         $(call install-file)
  50 
  51 $(OPENJDK_TARGET_OS_INCLUDE)/%.h: $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_EXPORT_DIR)/javavm/export/%.h
  52         $(call install-file)
  53 
  54 COPY_FILES = $(H_TARGET_FILES)
  55 
  56 ##########################################################################################
  57 
  58 ifndef OPENJDK
  59   ifeq ($(OPENJDK_TARGET_OS), windows)
  60     COPY_FILES += $(OPENJDK_TARGET_OS_INCLUDE)/bridge/AccessBridgeCallbacks.h \
  61         $(OPENJDK_TARGET_OS_INCLUDE)/bridge/AccessBridgeCalls.h \
  62         $(OPENJDK_TARGET_OS_INCLUDE)/bridge/AccessBridgePackages.h \
  63         $(OPENJDK_TARGET_OS_INCLUDE)/bridge/AccessBridgeCalls.c \
  64         $(JDK_OUTPUTDIR)/lib/accessibility.properties
  65 
  66     $(OPENJDK_TARGET_OS_INCLUDE)/bridge/%: \
  67         $(JDK_TOPDIR)/src/closed/windows/native/sun/bridge/%
  68                 $(install-file)
  69 
  70     $(JDK_OUTPUTDIR)/lib/accessibility.properties: \
  71         $(JDK_TOPDIR)/src/closed/windows/native/sun/bridge/accessibility.properties
  72                 $(install-file)
  73 
  74   endif
  75 endif
  76 
  77 ##########################################################################################
  78 
  79 LIBDIR = $(JDK_OUTPUTDIR)/lib
  80 
  81 MGMT_LIBDIR = $(LIBDIR)/management
  82 MGMT_LIB_SRC = $(JDK_TOPDIR)/src/share/lib/management
  83 MGMT_SRC_FILES = $(wildcard $(MGMT_LIB_SRC)/*)
  84 MGMT_TARGET_FILES = $(subst $(MGMT_LIB_SRC),$(MGMT_LIBDIR),$(MGMT_SRC_FILES))
  85 
  86 $(MGMT_LIBDIR)/management.properties: $(MGMT_LIB_SRC)/management.properties
  87         $(call install-file)
  88         $(CHMOD) 644 $@
  89 
  90 # this file has different permissions...don't know why...
  91 $(MGMT_LIBDIR)/jmxremote.access: $(MGMT_LIB_SRC)/jmxremote.access
  92         $(call install-file)
  93         $(CHMOD) 644 $@
  94 
  95 $(MGMT_LIBDIR)/%: $(MGMT_LIB_SRC)/%
  96         $(call install-file)
  97         $(CHMOD) 444 $@
  98 
  99 COPY_FILES += $(MGMT_TARGET_FILES)
 100 
 101 ##########################################################################################
 102 
 103 LOGGING_LIB_SRC = $(JDK_TOPDIR)/src/share/lib
 104 
 105 $(LIBDIR)/logging.properties: $(LOGGING_LIB_SRC)/logging.properties
 106         $(call install-file)
 107 
 108 COPY_FILES += $(LIBDIR)/logging.properties
 109 
 110 ##########################################################################################
 111 #
 112 # Copy property files from sun/print to LIBDIR
 113 #
 114 PSFONTPROPFILE_SRC_DIR = $(JDK_TOPDIR)/src/share/classes/sun/print
 115 PSFONTPROPFILE_SRCS = $(wildcard $(PSFONTPROPFILE_SRC_DIR)/*.properties*)
 116 PSFONTPROPFILE_TARGET_FILES = $(subst $(PSFONTPROPFILE_SRC_DIR),$(LIBDIR),$(PSFONTPROPFILE_SRCS))
 117 
 118 $(LIBDIR)/%: $(PSFONTPROPFILE_SRC_DIR)/%
 119         $(call install-file)
 120 
 121 COPY_FILES += $(PSFONTPROPFILE_TARGET_FILES)
 122 
 123 ##########################################################################################
 124 #
 125 # Copy flavormap.properties, cursor.properties and cursors gif files to LIBDIR
 126 #
 127 ifneq ($(OPENJDK_TARGET_OS), macosx)
 128   OPENJDK_TARGET_OS_LIB_SRC = $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/lib
 129 else
 130   OPENJDK_TARGET_OS_LIB_SRC = $(JDK_TOPDIR)/src/macosx/lib
 131 endif
 132 
 133 $(LIBDIR)/flavormap.properties: $(OPENJDK_TARGET_OS_LIB_SRC)/flavormap.properties
 134         $(call install-file)
 135 
 136 COPY_FILES += $(LIBDIR)/flavormap.properties
 137 
 138 CURSORS_DEST_DIR = $(LIBDIR)/images/cursors
 139 CURSORS_OPENJDK_TARGET_OS_LIB_SRC = $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/lib/images/cursors
 140 
 141 $(CURSORS_DEST_DIR)/cursors.properties: $(CURSORS_OPENJDK_TARGET_OS_LIB_SRC)/cursors.properties
 142         $(call install-file)
 143 
 144 COPY_FILES += $(CURSORS_DEST_DIR)/cursors.properties
 145 
 146 CURSORS_LIB_SRC = $(JDK_TOPDIR)/src/share/lib/images/cursors
 147 ifeq ($(OPENJDK_TARGET_OS), windows)
 148   CURSORS_SRC_FILES = $(CURSORS_LIB_SRC)/invalid32x32.gif $(wildcard $(CURSORS_LIB_SRC)/win32_*.gif)
 149 else # OPENJDK_TARGET_OS
 150   CURSORS_SRC_FILES = $(CURSORS_LIB_SRC)/invalid32x32.gif $(wildcard $(CURSORS_LIB_SRC)/motif_*.gif)
 151 endif # OPENJDK_TARGET_OS
 152 CURSORS_TARGET_FILES = $(subst $(CURSORS_LIB_SRC),$(CURSORS_DEST_DIR),$(CURSORS_SRC_FILES))
 153 
 154 $(CURSORS_DEST_DIR)/%: $(CURSORS_LIB_SRC)/%
 155         $(call install-file)
 156 
 157 COPY_FILES += $(CURSORS_TARGET_FILES)
 158 
 159 ##########################################################################################
 160 
 161 CALENDARS_SRC := $(JDK_TOPDIR)/src/share/lib
 162 
 163 $(LIBDIR)/calendars.properties: $(CALENDARS_SRC)/calendars.properties
 164         $(call install-file)
 165 
 166 COPY_FILES += $(LIBDIR)/calendars.properties
 167 
 168 $(LIBDIR)/hijrah-config-umalqura.properties: $(CALENDARS_SRC)/hijrah-config-umalqura.properties
 169         $(MKDIR) -p $(@D)
 170         $(RM) $@
 171         $(CP) $< $@
 172 
 173 COPY_FILES += $(LIBDIR)/hijrah-config-umalqura.properties
 174 
 175 ##########################################################################################
 176 
 177 ifneq ($(findstring $(OPENJDK_TARGET_OS), windows aix),)
 178 
 179   TZMAPPINGS_SRC := $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS)/lib
 180 
 181   $(LIBDIR)/tzmappings: $(TZMAPPINGS_SRC)/tzmappings
 182         $(call install-file)
 183 
 184   COPY_FILES += $(LIBDIR)/tzmappings
 185 
 186 endif
 187 
 188 ##########################################################################################
 189 
 190 ICCPROFILE_DEST_DIR := $(LIBDIR)/cmm
 191 
 192 ifdef OPENJDK
 193   ICCPROFILE_SRC_DIR := $(JDK_TOPDIR)/src/share/lib/cmm/lcms
 194 else
 195   ICCPROFILE_SRC_DIR := $(JDK_TOPDIR)/src/closed/share/lib/cmm/kcms
 196 endif
 197 
 198 ICCPROFILE_SRCS := $(wildcard $(ICCPROFILE_SRC_DIR)/*.pf)
 199 ICCPROFILE_TARGET_FILES := $(subst $(ICCPROFILE_SRC_DIR),$(ICCPROFILE_DEST_DIR),$(ICCPROFILE_SRCS))
 200 
 201 $(ICCPROFILE_DEST_DIR)%.pf: $(ICCPROFILE_SRC_DIR)%.pf
 202         $(call install-file)
 203         $(CHMOD) 444 $@
 204 
 205 COPY_FILES += $(ICCPROFILE_TARGET_FILES)
 206 
 207 ##########################################################################################
 208 
 209 ifneq ($(FREETYPE_BUNDLE_LIB_PATH), )
 210   # We need to bundle the freetype library, so it will be available at runtime as well as link time.
 211   #
 212   # NB: Default freetype build system uses -h linker option and
 213   # result .so contains hardcoded library name that is later
 214   # used for adding dependencies to other objects
 215   # (e.g. libfontmanager.so).
 216   #
 217   # It is not obvious how to extract that hardcoded name (libfreetype.so.6)
 218   # without overcomplicating logic here.
 219   # To workaround this we hardcode .6 suffix for now.
 220   #
 221   # Note that .so.6 library will not be found by System.loadLibrary()
 222   # but fortunately we need to load FreeType library explicitly
 223   # on windows only
 224   #
 225   #TODO: rework this to avoid hardcoding library name in the makefile
 226   #
 227   ifeq ($(OPENJDK_TARGET_OS), windows)
 228     FREETYPE_TARGET_LIB = $(JDK_OUTPUTDIR)/bin/$(call SHARED_LIBRARY,freetype)
 229   else
 230     FREETYPE_TARGET_LIB = $(JDK_OUTPUTDIR)/lib$(OPENJDK_TARGET_CPU_LIBDIR)/$(call SHARED_LIBRARY,freetype).6
 231   endif
 232 
 233   $(FREETYPE_TARGET_LIB): $(FREETYPE_BUNDLE_LIB_PATH)/$(call SHARED_LIBRARY,freetype)
 234         $(CP) $(FREETYPE_BUNDLE_LIB_PATH)/$(call SHARED_LIBRARY,freetype) $@
 235         ifeq ($(OPENJDK_BUILD_OS), windows)
 236           $(CHMOD) +rx $@
 237         endif
 238 
 239   COPY_FILES += $(FREETYPE_TARGET_LIB)
 240 endif
 241 
 242 ##########################################################################################
 243 
 244 # Copy msvcrXX.dll on windows
 245 
 246 ifeq ($(OPENJDK_TARGET_OS), windows)
 247   MSVCR_TARGET := $(JDK_OUTPUTDIR)/bin/$(notdir $(MSVCR_DLL))
 248   # Chmod to avoid permission issues if bundles are unpacked on unix platforms.
 249   $(MSVCR_TARGET): $(MSVCR_DLL)
 250         $(call install-file)
 251         $(CHMOD) a+rx $@
 252 
 253   COPY_FILES += $(MSVCR_TARGET)
 254 endif
 255 
 256 ##########################################################################################
 257 
 258 HPROF_SRC = $(JDK_TOPDIR)/src/share/demo/jvmti/hprof/jvm.hprof.txt
 259 
 260 $(LIBDIR)/jvm.hprof.txt: $(HPROF_SRC)
 261         $(call install-file)
 262 
 263 COPY_FILES += $(LIBDIR)/jvm.hprof.txt
 264 
 265 ##########################################################################################
 266 
 267 #
 268 # How to install jvm.cfg.
 269 #
 270 ifeq ($(JVM_VARIANT_ZERO), true)
 271   JVMCFG_ARCH := zero
 272 else
 273   JVMCFG_ARCH := $(OPENJDK_TARGET_CPU_LEGACY)
 274 endif
 275 
 276 ifeq ($(OPENJDK_TARGET_OS), macosx)
 277   JVMCFG_SRC := $(JDK_TOPDIR)/src/macosx/bin/$(JVMCFG_ARCH)/jvm.cfg
 278 else
 279   JVMCFG_SRC := $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/bin/$(JVMCFG_ARCH)/jvm.cfg
 280 endif
 281 JVMCFG_DIR := $(JDK_OUTPUTDIR)/lib$(OPENJDK_TARGET_CPU_LIBDIR)
 282 JVMCFG := $(JVMCFG_DIR)/jvm.cfg
 283 
 284 # To do: should this also support -zeroshark?
 285 
 286 ifeq ($(OPENJDK_TARGET_CPU_BITS), 64)
 287   COPY_JVM_CFG_FILE := true
 288 else
 289   # On 32-bit machines we have three potential VMs: client, server and minimal.
 290   # Historically we usually have both client and server and so that is what the
 291   # committed jvm.cfg expects (including platform specific ergonomics switches
 292   # to decide whether to use client or server by default). So when we have anything
 293   # other than client and server we need to define a new jvm.cfg file.
 294   # The main problem is deciding whether to use aliases for the VMs that are not
 295   # present and the current position is that we add aliases for client and server, but
 296   # not for minimal.
 297   CLIENT_AND_SERVER := $(and $(findstring true, $(JVM_VARIANT_SERVER)), $(findstring true, $(JVM_VARIANT_CLIENT)))
 298   ifeq ($(CLIENT_AND_SERVER), true)
 299     COPY_JVM_CFG_FILE := true
 300   else
 301     # For zero, the default jvm.cfg file is sufficient
 302     ifeq ($(JVM_VARIANT_ZERO), true)
 303       COPY_JVM_CFG_FILE := true
 304     endif
 305   endif
 306 endif
 307 
 308 ifeq ($(COPY_JVM_CFG_FILE), true)
 309   $(JVMCFG): $(JVMCFG_SRC)
 310         $(call install-file)
 311 else
 312   $(JVMCFG):
 313         $(MKDIR) -p $(@D)
 314         $(RM) $(@)
 315         # Now check for other permutations
 316         ifeq ($(JVM_VARIANT_SERVER), true)
 317           $(PRINTF) "-server KNOWN\n">>$(@)
 318           $(PRINTF) "-client ALIASED_TO -server\n">>$(@)
 319           ifeq ($(JVM_VARIANT_MINIMAL1), true)
 320             $(PRINTF) "-minimal KNOWN\n">>$(@)
 321           endif
 322         else
 323           ifeq ($(JVM_VARIANT_CLIENT), true)
 324             $(PRINTF) "-client KNOWN\n">>$(@)
 325             $(PRINTF) "-server ALIASED_TO -client\n">>$(@)
 326             ifeq ($(JVM_VARIANT_MINIMAL1), true)
 327               $(PRINTF) "-minimal KNOWN\n">>$(@)
 328             endif
 329           else
 330             ifeq ($(JVM_VARIANT_MINIMAL1), true)
 331               $(PRINTF) "-minimal KNOWN\n">>$(@)
 332               $(PRINTF) "-server ALIASED_TO -minimal\n">>$(@)
 333               $(PRINTF) "-client ALIASED_TO -minimal\n">>$(@)
 334             endif
 335           endif
 336         endif
 337 endif
 338 
 339 COPY_FILES += $(JVMCFG)
 340 
 341 ##########################################################################################
 342 
 343 PROPS_SRC := $(JDK_TOPDIR)/src/share/lib/security/java.security-$(OPENJDK_TARGET_OS)
 344 PROPS_DST := $(JDK_OUTPUTDIR)/lib/security/java.security
 345 
 346 ifndef OPENJDK
 347 
 348 RESTRICTED_PKGS_SRC := $(JDK_TOPDIR)/src/closed/share/lib/security/restricted.pkgs
 349 RESTRICTED_PKGS := $(shell $(CAT) $(RESTRICTED_PKGS_SRC) | $(TR) "\n" " ")
 350 
 351 $(PROPS_DST): $(PROPS_SRC)
 352         $(MKDIR) -p $(@D)
 353         $(TOOL_ADDTORESTRICTEDPKGS) $^ $@.tmp $(RESTRICTED_PKGS)
 354         $(MV) $@.tmp $@
 355 
 356 else
 357 
 358 $(PROPS_DST): $(PROPS_SRC)
 359         $(call install-file)
 360 
 361 endif
 362 
 363 COPY_FILES += $(PROPS_DST)
 364 
 365 ##########################################################################################
 366 
 367 POLICY_SRC := $(JDK_TOPDIR)/src/share/lib/security/java.policy
 368 POLICY_DST := $(JDK_OUTPUTDIR)/lib/security/java.policy
 369 
 370 POLICY_SRC_LIST :=
 371 
 372 ifeq ($(OPENJDK_TARGET_OS), windows)
 373   POLICY_SRC_LIST += $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS)/lib/security/java.policy
 374 endif
 375 ifndef OPENJDK
 376   ifeq ($(OPENJDK_TARGET_OS), windows)
 377     ifeq ($(OPENJDK_TARGET_CPU_BITS), 32)
 378       POLICY_SRC_LIST += $(JDK_TOPDIR)/src/closed/$(OPENJDK_TARGET_OS)/lib/security/java.policy-win32
 379     else
 380       POLICY_SRC_LIST += $(JDK_TOPDIR)/src/closed/$(OPENJDK_TARGET_OS)/lib/security/java.policy-win64
 381     endif
 382   endif
 383   ifeq ($(OPENJDK_TARGET_OS), solaris)
 384     POLICY_SRC_LIST += $(JDK_TOPDIR)/src/closed/$(OPENJDK_TARGET_OS)/lib/security/java.policy
 385   endif
 386 endif
 387 
 388 POLICY_SRC_LIST += $(POLICY_SRC)
 389 
 390 $(POLICY_DST): $(POLICY_SRC_LIST)
 391         $(MKDIR) -p $(@D)
 392         $(RM) $@ $@.tmp
 393         $(foreach f,$(POLICY_SRC_LIST),$(CAT) $(f) >> $@.tmp;)
 394         $(MV) $@.tmp $@
 395 
 396 COPY_FILES += $(POLICY_DST)
 397 
 398 ##########################################################################################
 399 
 400 CACERTS_SRC := $(CACERTS_FILE)
 401 CACERTS_DST := $(JDK_OUTPUTDIR)/lib/security/cacerts
 402 
 403 $(CACERTS_DST): $(CACERTS_SRC)
 404         $(call install-file)
 405 
 406 COPY_FILES += $(CACERTS_DST)
 407 
 408 ##########################################################################################
 409 
 410 BLACKLISTED_CERTS_SRC := $(JDK_TOPDIR)/src/share/lib/security/blacklisted.certs
 411 BLACKLISTED_CERTS_DST := $(JDK_OUTPUTDIR)/lib/security/blacklisted.certs
 412 
 413 ifndef OPENJDK
 414 
 415   BLACKLIST_SRC := $(JDK_TOPDIR)/src/closed/share/lib/security/blacklist
 416   BLACKLIST_DST := $(JDK_OUTPUTDIR)/lib/security/blacklist
 417 
 418   BLACKLISTED_CERTS_SRC += $(wildcard $(JDK_TOPDIR)/src/closed/share/lib/security/blacklisted.certs)
 419 
 420   TRUSTEDLIBS_SRC := $(JDK_TOPDIR)/src/closed/share/lib/security/trusted.libraries
 421   TRUSTEDLIBS_DST := $(JDK_OUTPUTDIR)/lib/security/trusted.libraries
 422 
 423   $(BLACKLIST_DST): $(BLACKLIST_SRC)
 424         $(call install-file)
 425 
 426   COPY_FILES += $(BLACKLIST_DST)
 427 
 428   $(TRUSTEDLIBS_DST): $(TRUSTEDLIBS_SRC)
 429         $(call install-file)
 430 
 431   COPY_FILES += $(TRUSTEDLIBS_DST)
 432 
 433 endif
 434 
 435 $(BLACKLISTED_CERTS_DST): $(BLACKLISTED_CERTS_SRC)
 436         $(MKDIR) -p $(@D)
 437         $(CAT) $^ | $(SED) '/^$$/d' | $(SORT) | $(UNIQ) > $@.tmp
 438         $(GREP) -i Algorithm $@.tmp > $@
 439         if [ `$(SED) -n -e "$$=" $@` != 1 ]; then \
 440            $(ECHO) "Different algorithms defined in $^"; \
 441            $(RM) $@ $@.tmp; \
 442            false; \
 443         fi
 444         $(GREP) -iv Algorithm $@.tmp >> $@
 445         $(RM) $@.tmp
 446 
 447 COPY_FILES += $(BLACKLISTED_CERTS_DST)
 448 
 449 ##########################################################################################
 450 
 451 ifndef OPENJDK
 452 
 453   SHARED_FONTS_SRC_DIR := $(JDK_TOPDIR)/src/closed/share/lib/fonts
 454   SHARED_FONTS_DST_DIR := $(JDK_OUTPUTDIR)/lib/fonts
 455   SHARED_FONTS_FILES := \
 456       LucidaTypewriterRegular.ttf \
 457       LucidaTypewriterBold.ttf \
 458       LucidaBrightRegular.ttf \
 459       LucidaBrightDemiBold.ttf \
 460       LucidaBrightItalic.ttf \
 461       LucidaBrightDemiItalic.ttf \
 462       LucidaSansRegular.ttf \
 463       LucidaSansDemiBold.ttf \
 464 
 465   SHARED_FONTS_SRC := $(foreach F, $(SHARED_FONTS_FILES), $(SHARED_FONTS_SRC_DIR)/$(F))
 466   SHARED_FONTS_DST := $(foreach F, $(SHARED_FONTS_FILES), $(SHARED_FONTS_DST_DIR)/$(F))
 467 
 468   $(SHARED_FONTS_DST_DIR)/%.ttf: $(SHARED_FONTS_SRC_DIR)/%.ttf
 469         $(call install-file)
 470 
 471   $(SHARED_FONTS_DST_DIR)/fonts.dir: $(JDK_TOPDIR)/src/solaris/classes/sun/awt/motif/java.fonts.dir
 472         $(call install-file)
 473 
 474   COPY_FILES += $(SHARED_FONTS_DST)
 475 
 476   ifneq ($(OPENJDK_TARGET_OS), windows)
 477     COPY_FILES += $(SHARED_FONTS_DST_DIR)/fonts.dir
 478   endif
 479 
 480   ifeq ($(OPENJDK_TARGET_OS), linux)
 481 
 482   # The oblique fonts are only needed/wanted on Linux.
 483 
 484     OBL_FONTS_SRC_DIR := $(JDK_TOPDIR)/src/closed/share/lib/fonts/oblique
 485     OBL_FONTS_DST_DIR := $(JDK_OUTPUTDIR)/lib/oblique-fonts
 486     OBL_FONTS_FILES := LucidaTypewriterOblique.ttf LucidaTypewriterBoldOblique.ttf \
 487         LucidaSansOblique.ttf LucidaSansDemiOblique.ttf
 488 
 489     OBL_FONTS_SRC := $(foreach F, $(OBL_FONTS_FILES), $(OBL_FONTS_SRC_DIR)/$(F))
 490     OBL_FONTS_DST := $(foreach F, $(OBL_FONTS_FILES), $(OBL_FONTS_DST_DIR)/$(F))
 491 
 492     $(OBL_FONTS_DST_DIR)/%.ttf: $(OBL_FONTS_SRC_DIR)/%.ttf
 493         $(call install-file)
 494 
 495     $(OBL_FONTS_DST_DIR)/fonts.dir: $(JDK_TOPDIR)/src/solaris/classes/sun/awt/motif/java.oblique-fonts.dir
 496         $(call install-file)
 497 
 498     COPY_FILES += $(OBL_FONTS_DST) $(OBL_FONTS_DST_DIR)/fonts.dir
 499 
 500   endif # linux
 501 endif # OPENJDK
 502 
 503 ##########################################################################################
 504 
 505 ifndef OPENJDK
 506 
 507   #
 508   # Solaris X11 Direct Graphics Access library
 509   #
 510 
 511   _DGALIBS_sparc = \
 512       libxinerama.so \
 513       libjdgaSUNWcg6.so \
 514       libjdgaSUNWffb.so \
 515       libjdgaSUNWm64.so \
 516       libjdgaSUNWafb.so
 517 
 518   _DGALIBS_sparcv9 = \
 519       libxinerama.so \
 520       libjdgaSUNWcg6.so \
 521       libjdgaSUNWffb.so \
 522       libjdgaSUNWm64.so \
 523       libjdgaSUNWafb.so
 524 
 525   _DGALIBS_i586 = # no i586 library yet
 526 
 527   _DGALIBS_amd64 = # no amd64 library yet
 528 
 529   DGALIBS = $(_DGALIBS_$(OPENJDK_TARGET_CPU_LEGACY):%=$(JDK_OUTPUTDIR)/lib$(OPENJDK_TARGET_CPU_LIBDIR)/%)
 530 
 531   $(JDK_OUTPUTDIR)/lib$(OPENJDK_TARGET_CPU_LIBDIR)/libxinerama.so: $(JDK_TOPDIR)/src/closed/solaris/lib/$(OPENJDK_TARGET_CPU_LEGACY)/libxinerama.so
 532         $(call install-file)
 533         $(CHMOD) 755 $@
 534 
 535   $(JDK_OUTPUTDIR)/lib$(OPENJDK_TARGET_CPU_LIBDIR)/libjdgaSUNW%.so: $(JDK_TOPDIR)/src/closed/solaris/lib/$(OPENJDK_TARGET_CPU_LEGACY)/libjdgaSUNW%.so
 536         $(call install-file)
 537         $(CHMOD) 755 $@
 538 
 539   $(JDK_OUTPUTDIR)/lib$(OPENJDK_TARGET_CPU_LIBDIR)/libjdgaSUNWafb.so: $(JDK_OUTPUTDIR)/lib$(OPENJDK_TARGET_CPU_LIBDIR)/libjdgaSUNWffb.so
 540         $(MKDIR) -p $(@D)
 541         $(RM) $@
 542         $(LN) -s $(<F) $@
 543 
 544   COPY_FILES += $(DGALIBS)
 545 
 546 endif
 547 
 548 ##########################################################################################
 549 
 550 ifeq ($(OPENJDK_TARGET_OS), solaris)
 551 
 552   SUNPKCS11_CFG_SRC := $(JDK_TOPDIR)/src/share/lib/security/sunpkcs11-solaris.cfg
 553   SUNPKCS11_CFG_DST := $(JDK_OUTPUTDIR)/lib/security/sunpkcs11-solaris.cfg
 554 
 555   $(SUNPKCS11_CFG_DST): $(SUNPKCS11_CFG_SRC)
 556         $(call install-file)
 557 
 558   COPY_FILES += $(SUNPKCS11_CFG_DST)
 559 
 560 endif
 561 
 562 ##########################################################################################
 563 
 564 ifndef OPENJDK
 565   ifeq ($(OPENJDK_TARGET_OS), solaris)
 566 
 567     UCRYPTO_CFG_SRC := $(JDK_TOPDIR)/src/closed/share/lib/security/ucrypto-solaris.cfg
 568     UCRYPTO_CFG_DST := $(JDK_OUTPUTDIR)/lib/security/ucrypto-solaris.cfg
 569 
 570     $(UCRYPTO_CFG_DST): $(UCRYPTO_CFG_SRC)
 571         $(call install-file)
 572 
 573     COPY_FILES += $(UCRYPTO_CFG_DST)
 574 
 575   endif
 576 endif
 577 
 578 ##########################################################################################
 579 
 580 $(JDK_OUTPUTDIR)/lib/sound.properties: $(JDK_TOPDIR)/src/share/lib/sound.properties
 581         $(call install-file)
 582 
 583 COPY_FILES += $(JDK_OUTPUTDIR)/lib/sound.properties
 584 
 585 ##########################################################################################
 586 
 587 # Hook to include the corresponding custom file, if present.
 588 $(eval $(call IncludeCustomExtension, jdk, CopyFiles.gmk))