Makefile revision 3259
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclere#
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclere# Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved.
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclere# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclere#
8468be3efdd76e64e871fe3799397721f988ff42noodl# This code is free software; you can redistribute it and/or modify it
a0150d3262def12738daa9eb9d47bd34fe918b9algentis# under the terms of the GNU General Public License version 2 only, as
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclere# published by the Free Software Foundation. Oracle designates this
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclere# particular file as subject to the "Classpath" exception as provided
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclere# by Oracle in the LICENSE file that accompanied this code.
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclere#
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclere# This code is distributed in the hope that it will be useful, but WITHOUT
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclere# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclere# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclere# version 2 for more details (a copy is included in the LICENSE file that
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclere# accompanied this code).
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclere#
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclere# You should have received a copy of the GNU General Public License version
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclere# 2 along with this work; if not, write to the Free Software Foundation,
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclere# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclere#
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclere# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclere# or visit www.oracle.com if you need additional information or have any
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclere# questions.
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclere#
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclere
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclere#
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclere# Imports files exported by a hotspot build or provided from an external
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclere# location into the OUTPUTDIR, and also primes the OUTPUTDIR with files
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclere# that are provided inside this workspace.
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclere#
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclere# IMPORT_LIST contains the list of destination files that are copied
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclere# from external places (outside this workspace).
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclere#
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclere# INTERNAL_IMPORT_LIST is the list of destination files from BUILDDIR.
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclere#
486f2b10850d759f95ed4682a22ba196337a5f1clgentis
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclereBUILDDIR = ../..
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclereMODULE = base
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclerePRODUCT = java
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclereinclude $(BUILDDIR)/common/Defs.gmk
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclere
999942e8e84bcae9b439ab30a040b1b997b343c9gryzorSERVER_LOCATION = server
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclereCLIENT_LOCATION = client
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclere
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclereDB_SUFFIX = _db
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclereDTRACE_SUFFIX = _dtrace
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclere
486f2b10850d759f95ed4682a22ba196337a5f1clgentisifeq ($(PLATFORM), windows)
999942e8e84bcae9b439ab30a040b1b997b343c9gryzor LIB_LOCATION = $(BINDIR)
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentiselse
fc18300f84cb9535e8ccf81dfb8b700012878af4lgentis LIB_LOCATION = $(LIBDIR)/$(LIBARCH)
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclereendif
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclere
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclereJVM_NAME = $(LIB_PREFIX)jvm.$(LIBRARY_SUFFIX)
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclereJVMLIB_NAME = $(LIB_PREFIX)jvm.$(LIB_SUFFIX)
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclereJVMMAP_NAME = $(LIB_PREFIX)jvm.map
8468be3efdd76e64e871fe3799397721f988ff42noodlJVMPDB_NAME = $(LIB_PREFIX)jvm.pdb
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclereLIBJSIG_NAME = $(LIB_PREFIX)jsig.$(LIBRARY_SUFFIX)
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclereJVMDB_NAME = $(LIB_PREFIX)jvm$(DB_SUFFIX).$(LIBRARY_SUFFIX)
999942e8e84bcae9b439ab30a040b1b997b343c9gryzorJVMDTRACE_NAME = $(LIB_PREFIX)jvm$(DTRACE_SUFFIX).$(LIBRARY_SUFFIX)
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclere
999942e8e84bcae9b439ab30a040b1b997b343c9gryzorCLASSSHARINGDATA_DIR = $(BUILDDIR)/tools/sharing
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclere
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclere# Needed to do file copy
999942e8e84bcae9b439ab30a040b1b997b343c9gryzorABS_BUILDDIR :=$(call FullPath,$(BUILDDIR))
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclere
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclereSUBDIRS_desktop = fonts
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclereSUBDIRS_tools = sajdi
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclereinclude $(BUILDDIR)/common/Subdirs.gmk
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclere
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclereall clean clobber::
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclere $(SUBDIRS-loop)
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclere
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclereall:: build
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclere
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclere# List of files created here or coming from BUILDDIR area (this workspace)
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclereINTERNAL_IMPORT_LIST = $(LIBDIR)/classlist
999942e8e84bcae9b439ab30a040b1b997b343c9gryzor
486f2b10850d759f95ed4682a22ba196337a5f1clgentis# List of files coming from outside this workspace
486f2b10850d759f95ed4682a22ba196337a5f1clgentisIMPORT_LIST = $(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVM_NAME) \
0ae80e97c7736c9b059bfb0472d48655096c20fblgentis $(LIB_LOCATION)/$(SERVER_LOCATION)/Xusage.txt
486f2b10850d759f95ed4682a22ba196337a5f1clgentis
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclere# Hotspot client is only available on 32-bit non-Zero builds
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclereifneq ($(ZERO_BUILD), true)
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclereifeq ($(ARCH_DATA_MODEL), 32)
999942e8e84bcae9b439ab30a040b1b997b343c9gryzor IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVM_NAME) \
999942e8e84bcae9b439ab30a040b1b997b343c9gryzor $(LIB_LOCATION)/$(CLIENT_LOCATION)/Xusage.txt
999942e8e84bcae9b439ab30a040b1b997b343c9gryzorendif
486f2b10850d759f95ed4682a22ba196337a5f1clgentisendif
486f2b10850d759f95ed4682a22ba196337a5f1clgentis
999942e8e84bcae9b439ab30a040b1b997b343c9gryzorifeq ($(PLATFORM), windows)
999942e8e84bcae9b439ab30a040b1b997b343c9gryzor# Windows vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv Windows
999942e8e84bcae9b439ab30a040b1b997b343c9gryzor
999942e8e84bcae9b439ab30a040b1b997b343c9gryzorIMPORT_LIST += $(MS_RUNTIME_LIBRARIES:%=$(BINDIR)/%)
999942e8e84bcae9b439ab30a040b1b997b343c9gryzor
999942e8e84bcae9b439ab30a040b1b997b343c9gryzor# NOTE: These might actually come from BUILDDIR, depends on the settings.
999942e8e84bcae9b439ab30a040b1b997b343c9gryzor$(BINDIR)/msvcrt.dll: $(MSVCRT_DLL_PATH)/msvcrt.dll
999942e8e84bcae9b439ab30a040b1b997b343c9gryzor $(install-import-file)
999942e8e84bcae9b439ab30a040b1b997b343c9gryzor $(call chmod-file, a+x)
ac64493966b7b75e373c78e99b8e5e86fc954d72lgentis$(BINDIR)/$(MSVCRNN_DLL): $(MSVCRNN_DLL_PATH)/$(MSVCRNN_DLL)
ac64493966b7b75e373c78e99b8e5e86fc954d72lgentis $(install-import-file)
ac64493966b7b75e373c78e99b8e5e86fc954d72lgentis $(call chmod-file, a+x)
ac64493966b7b75e373c78e99b8e5e86fc954d72lgentis
ac64493966b7b75e373c78e99b8e5e86fc954d72lgentis# Get the hotspot .map and .pdb files for client and server
ac64493966b7b75e373c78e99b8e5e86fc954d72lgentisIMPORT_LIST += \
ac64493966b7b75e373c78e99b8e5e86fc954d72lgentis $(LIBDIR)/$(JVMLIB_NAME) \
ac64493966b7b75e373c78e99b8e5e86fc954d72lgentis $(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVMMAP_NAME) \
ac64493966b7b75e373c78e99b8e5e86fc954d72lgentis $(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVMPDB_NAME)
ac64493966b7b75e373c78e99b8e5e86fc954d72lgentis
ac64493966b7b75e373c78e99b8e5e86fc954d72lgentis# Add .map and .pdb files to the import path for client and kernel VMs.
ac64493966b7b75e373c78e99b8e5e86fc954d72lgentis# These are only available on 32-bit windows builds.
ac64493966b7b75e373c78e99b8e5e86fc954d72lgentisifeq ($(ARCH_DATA_MODEL), 32)
ac64493966b7b75e373c78e99b8e5e86fc954d72lgentis IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVMMAP_NAME) \
ac64493966b7b75e373c78e99b8e5e86fc954d72lgentis $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVMPDB_NAME)
ac64493966b7b75e373c78e99b8e5e86fc954d72lgentis ifeq ($(DO_KERNEL), true)
ac64493966b7b75e373c78e99b8e5e86fc954d72lgentis IMPORT_LIST += $(LIB_LOCATION)/$(KERNEL_LOCATION)/$(JVMMAP_NAME) \
ac64493966b7b75e373c78e99b8e5e86fc954d72lgentis $(LIB_LOCATION)/$(KERNEL_LOCATION)/$(JVMPDB_NAME)
ac64493966b7b75e373c78e99b8e5e86fc954d72lgentis endif
ac64493966b7b75e373c78e99b8e5e86fc954d72lgentisendif
ac64493966b7b75e373c78e99b8e5e86fc954d72lgentis
ac64493966b7b75e373c78e99b8e5e86fc954d72lgentis$(LIBDIR)/$(JVMLIB_NAME): $(HOTSPOT_LIB_PATH)/$(JVMLIB_NAME)
ac64493966b7b75e373c78e99b8e5e86fc954d72lgentis $(install-import-file)
999942e8e84bcae9b439ab30a040b1b997b343c9gryzor
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclere# it is OK for the .map and .pdb files to not exist, so do not force a
999942e8e84bcae9b439ab30a040b1b997b343c9gryzor# dependency on them from the bootstrap location, and allow the copy to fail.
999942e8e84bcae9b439ab30a040b1b997b343c9gryzor$(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVMMAP_NAME):
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclere @$(prep-target)
999942e8e84bcae9b439ab30a040b1b997b343c9gryzor -$(CP) $(HOTSPOT_CLIENT_PATH)/$(JVMMAP_NAME) $@
999942e8e84bcae9b439ab30a040b1b997b343c9gryzor @$(install-module-file)
999942e8e84bcae9b439ab30a040b1b997b343c9gryzor
999942e8e84bcae9b439ab30a040b1b997b343c9gryzor$(LIB_LOCATION)/$(KERNEL_LOCATION)/$(JVMMAP_NAME):
486f2b10850d759f95ed4682a22ba196337a5f1clgentis @$(prep-target)
999942e8e84bcae9b439ab30a040b1b997b343c9gryzor -$(CP) $(HOTSPOT_KERNEL_PATH)/$(JVMMAP_NAME) $@
999942e8e84bcae9b439ab30a040b1b997b343c9gryzor @$(install-module-file)
999942e8e84bcae9b439ab30a040b1b997b343c9gryzor
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclere$(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVMMAP_NAME):
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclere @$(prep-target)
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclere -$(CP) $(HOTSPOT_SERVER_PATH)/$(JVMMAP_NAME) $@
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclere @$(install-module-file)
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclere
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclere$(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVMPDB_NAME):
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclere @$(prep-target)
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclere -$(CP) $(HOTSPOT_CLIENT_PATH)/$(JVMPDB_NAME) $@
09796a508c72a6aba33aa486753bb8cdea806d43lgentis @$(install-module-file)
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclere
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclere$(LIB_LOCATION)/$(KERNEL_LOCATION)/$(JVMPDB_NAME):
999942e8e84bcae9b439ab30a040b1b997b343c9gryzor @$(prep-target)
999942e8e84bcae9b439ab30a040b1b997b343c9gryzor -$(CP) $(HOTSPOT_KERNEL_PATH)/$(JVMPDB_NAME) $@
999942e8e84bcae9b439ab30a040b1b997b343c9gryzor @$(install-module-file)
999942e8e84bcae9b439ab30a040b1b997b343c9gryzor
999942e8e84bcae9b439ab30a040b1b997b343c9gryzor$(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVMPDB_NAME):
999942e8e84bcae9b439ab30a040b1b997b343c9gryzor @$(prep-target)
999942e8e84bcae9b439ab30a040b1b997b343c9gryzor -$(CP) $(HOTSPOT_SERVER_PATH)/$(JVMPDB_NAME) $@
999942e8e84bcae9b439ab30a040b1b997b343c9gryzor @$(install-module-file)
999942e8e84bcae9b439ab30a040b1b997b343c9gryzor
999942e8e84bcae9b439ab30a040b1b997b343c9gryzor# Windows ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Windows
999942e8e84bcae9b439ab30a040b1b997b343c9gryzorelse # PLATFORM
a0150d3262def12738daa9eb9d47bd34fe918b9algentis# NOT Windows vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv NOT Windows
a0150d3262def12738daa9eb9d47bd34fe918b9algentis
a0150d3262def12738daa9eb9d47bd34fe918b9algentisIMPORT_LIST += \
a0150d3262def12738daa9eb9d47bd34fe918b9algentis $(LIB_LOCATION)/$(LIBJSIG_NAME) \
a0150d3262def12738daa9eb9d47bd34fe918b9algentis $(LIB_LOCATION)/$(SERVER_LOCATION)/$(LIBJSIG_NAME)
a0150d3262def12738daa9eb9d47bd34fe918b9algentis
a0150d3262def12738daa9eb9d47bd34fe918b9algentisifeq ($(PLATFORM), solaris)
a0150d3262def12738daa9eb9d47bd34fe918b9algentis IMPORT_LIST += $(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVMDB_NAME)
a0150d3262def12738daa9eb9d47bd34fe918b9algentis# The conditional can be removed when import JDKs contain these files.
a0150d3262def12738daa9eb9d47bd34fe918b9algentisifneq ($(wildcard $(HOTSPOT_SERVER_PATH)/$(JVMDTRACE_NAME)),)
a0150d3262def12738daa9eb9d47bd34fe918b9algentis IMPORT_LIST += $(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVMDTRACE_NAME)
999942e8e84bcae9b439ab30a040b1b997b343c9gryzorelse
999942e8e84bcae9b439ab30a040b1b997b343c9gryzor $(warning WARNING: $(HOTSPOT_SERVER_PATH)/$(JVMDB_NAME) not found!)
999942e8e84bcae9b439ab30a040b1b997b343c9gryzorendif
999942e8e84bcae9b439ab30a040b1b997b343c9gryzorendif
999942e8e84bcae9b439ab30a040b1b997b343c9gryzor
999942e8e84bcae9b439ab30a040b1b997b343c9gryzorifneq ($(ZERO_BUILD), true)
999942e8e84bcae9b439ab30a040b1b997b343c9gryzorifeq ($(ARCH_DATA_MODEL), 32)
999942e8e84bcae9b439ab30a040b1b997b343c9gryzor
999942e8e84bcae9b439ab30a040b1b997b343c9gryzorIMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(LIBJSIG_NAME)
999942e8e84bcae9b439ab30a040b1b997b343c9gryzor
999942e8e84bcae9b439ab30a040b1b997b343c9gryzorifeq ($(PLATFORM), solaris)
999942e8e84bcae9b439ab30a040b1b997b343c9gryzor# solaris vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv solaris
999942e8e84bcae9b439ab30a040b1b997b343c9gryzor
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclereIMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVMDB_NAME)
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclere
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclere# The conditional can be removed when import JDKs contain these files.
e3659090e9bb9934465dbb6c6212ba4c512190b0jfclereifneq ($(wildcard $(HOTSPOT_CLIENT_PATH)/$(JVMDTRACE_NAME)),)
IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVMDTRACE_NAME)
IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/64/$(JVMDB_NAME)
IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/64/$(JVMDTRACE_NAME)
else
$(warning WARNING: $(HOTSPOT_CLIENT_PATH)/$(JVMDTRACE_NAME) not found!)
endif
# The conditional can be removed when import JDKs contain these files.
ifneq ($(wildcard $(HOTSPOT_SERVER_PATH)/64/$(JVMDB_NAME)),)
IMPORT_LIST += $(LIB_LOCATION)/$(SERVER_LOCATION)/64/$(JVMDB_NAME)
else
$(warning WARNING: $(HOTSPOT_SERVER_PATH)/64/$(JVMDB_NAME) not found!)
endif
# The conditional can be removed when import JDKs contain these files.
ifneq ($(wildcard $(HOTSPOT_SERVER_PATH)/64/$(JVMDTRACE_NAME)),)
IMPORT_LIST += $(LIB_LOCATION)/$(SERVER_LOCATION)/64/$(JVMDTRACE_NAME)
else
$(warning WARNING: $(HOTSPOT_SERVER_PATH)/64/$(JVMDTRACE_NAME) not found!)
endif
# For backwards compatability, make a link of the 32-bit client JVM to $(LIBDIR)
IMPORT_LIST += $(LIB_LOCATION)/$(JVM_NAME)
$(LIB_LOCATION)/$(JVM_NAME): $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVM_NAME)
@$(prep-target)
# solaris ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ solaris
endif # 32bit solaris
endif # 32bit
endif # ZERO_BUILD
# NOT Windows ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ NOT Windows
endif # PLATFORM
$(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVM_NAME): $(HOTSPOT_CLIENT_PATH)/$(JVM_NAME)
$(install-import-file)
$(LIB_LOCATION)/$(KERNEL_LOCATION)/$(JVM_NAME): $(HOTSPOT_KERNEL_PATH)/$(JVM_NAME)
$(install-file)
$(LIB_LOCATION)/$(LIBJSIG_NAME): $(HOTSPOT_IMPORT_PATH)/$(ARCH_VM_SUBDIR)/$(LIBJSIG_NAME)
$(install-import-file)
$(LIB_LOCATION)/$(CLIENT_LOCATION)/$(LIBJSIG_NAME) \
$(LIB_LOCATION)/$(SERVER_LOCATION)/$(LIBJSIG_NAME):
@$(prep-target)
$(call install-sym-link, ../$(LIBJSIG_NAME))
$(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVMDB_NAME): $(HOTSPOT_CLIENT_PATH)/$(JVMDB_NAME)
$(install-import-file)
$(LIB_LOCATION)/$(CLIENT_LOCATION)/64/$(JVMDB_NAME): $(HOTSPOT_CLIENT_PATH)/64/$(JVMDB_NAME)
$(install-import-file)
$(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVMDB_NAME): $(HOTSPOT_SERVER_PATH)/$(JVMDB_NAME)
$(install-import-file)
$(LIB_LOCATION)/$(SERVER_LOCATION)/64/$(JVMDB_NAME): $(HOTSPOT_SERVER_PATH)/64/$(JVMDB_NAME)
$(install-import-file)
$(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVMDTRACE_NAME): $(HOTSPOT_CLIENT_PATH)/$(JVMDTRACE_NAME)
$(install-import-file)
$(LIB_LOCATION)/$(CLIENT_LOCATION)/64/$(JVMDTRACE_NAME): $(HOTSPOT_CLIENT_PATH)/64/$(JVMDTRACE_NAME)
$(install-import-file)
$(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVMDTRACE_NAME): $(HOTSPOT_SERVER_PATH)/$(JVMDTRACE_NAME)
$(install-import-file)
$(LIB_LOCATION)/$(SERVER_LOCATION)/64/$(JVMDTRACE_NAME): $(HOTSPOT_SERVER_PATH)/64/$(JVMDTRACE_NAME)
$(install-import-file)
$(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVM_NAME): $(HOTSPOT_SERVER_PATH)/$(JVM_NAME)
$(install-import-file)
$(LIB_LOCATION)/$(SERVER_LOCATION)/Xusage.txt : $(HOTSPOT_SERVER_PATH)/Xusage.txt
$(install-import-file)
$(LIB_LOCATION)/$(CLIENT_LOCATION)/Xusage.txt : $(HOTSPOT_CLIENT_PATH)/Xusage.txt
$(install-import-file)
$(LIB_LOCATION)/$(KERNEL_LOCATION)/Xusage.txt : $(HOTSPOT_KERNEL_PATH)/Xusage.txt
$(install-file)
#
# Specific to non-OpenJDK building
#
ifndef OPENJDK
INTERNAL_IMPORT_LIST += \
$(LIBDIR)/security/US_export_policy.jar \
$(LIBDIR)/security/local_policy.jar \
$(LIBDIR)/jce.jar
$(LIBDIR)/jce.jar: \
$(BUILDDIR)/closed/tools/crypto/jce/jce.jar
$(install-non-module-file)
$(LIBDIR)/security/US_export_policy.jar: \
$(BUILDDIR)/closed/tools/crypto/jce/US_export_policy.jar
$(install-file)
$(LIBDIR)/security/local_policy.jar: \
$(BUILDDIR)/closed/tools/crypto/jce/local_policy.jar
$(install-file)
endif # OPENJDK
ADDJSUM_JARFILE = $(BUILDTOOLJARDIR)/addjsum.jar
# Construct classlist file
$(LIBDIR)/classlist: \
$(CLASSSHARINGDATA_DIR)/classlist.$(PLATFORM) \
$(ADDJSUM_JARFILE)
@$(prep-target)
@$(RM) -f $@.temp
$(BOOT_JAVA_CMD) -jar $(ADDJSUM_JARFILE) \
$(CLASSSHARINGDATA_DIR)/classlist.$(PLATFORM) $@.temp
$(MV) $@.temp $@
# Import internal files (ones that are stashed in this source tree)
import_internal_files : $(INTERNAL_IMPORT_LIST)
# Import files from the JDK that we are not building
import_files: $(IMPORT_LIST)
# Get component information variables and rules
include $(BUILDDIR)/common/internal/ImportComponents.gmk
# Security files we need to import
SEC_FILES_ZIP=$(ABS_BUILDDIR)/tools/crypto/sec-bin.zip
SEC_FILES_WIN_ZIP=$(ABS_BUILDDIR)/tools/crypto/sec-windows-bin.zip
JGSS_WIN32_FILES_ZIP=$(ABS_BUILDDIR)/tools/crypto/jgss-windows-i586-bin.zip
JGSS_WIN64_FILES_ZIP=$(ABS_BUILDDIR)/tools/crypto/jgss-windows-x64-bin.zip
# Unzip zip file $2 into directory $1 (if $2 exists)
# Warning: $2 must be absolute path not relative
define SecUnzipper
if [ -f $2 ] ; then \
$(MKDIR) -p $1; \
$(ECHO) "( $(CD) $1 && $(UNZIP) -o $2 )"; \
( $(CD) $1 && $(UNZIP) -o $2 ); \
fi
endef
# If sec-bin exists, unpack it into the build directory
# Also, the library recompile build indirectly depends on two SSL classes,
# so copy those as well FIXUP
# if sec-windows-bin exists, unpack it into the build directory
# if JGSS files exists, unpack it into the build directory
$(TEMPDIR)/security_imported:
@$(prep-target)
@$(call SecUnzipper,$(OUTPUTDIR),$(SEC_FILES_ZIP))
ifeq ($(PLATFORM), windows)
@$(call SecUnzipper,$(OUTPUTDIR),$(SEC_FILES_WIN_ZIP))
endif
ifeq ($(PLATFORM), windows)
ifeq ($(ARCH_DATA_MODEL), 32)
@$(call SecUnzipper,$(OUTPUTDIR),$(JGSS_WIN32_FILES_ZIP))
else
@$(call SecUnzipper,$(OUTPUTDIR),$(JGSS_WIN64_FILES_ZIP))
endif
endif
@$(ECHO) "Imported on `$(DATE)`" > $@
# Import all files from other components
$(TEMPDIR)/components_imported:
@$(prep-target)
$(call import-component-binaries,$(ABS_OUTPUTDIR))
$(call import-component-sources,$(IMPORTSRCDIR))
$(call import-component-docs,$(IMPORTDOCDIR))
$(call import-component-classes,$(CLASSDESTDIR))
@$(ECHO) "Imported on `$(DATE)`" > $@
# Do pretty much everything
build : import_files \
import_internal_files \
$(TEMPDIR)/components_imported \
$(TEMPDIR)/security_imported
# Clean up what we imported (except for component files)
clean clobber::
$(RM) $(IMPORT_LIST)
$(RM) $(INTERNAL_IMPORT_LIST)
$(call import-component-sources-clean,$(IMPORTSRCDIR))
$(call import-component-docs-clean,$(IMPORTDOCDIR))
$(call import-component-classes-clean,$(CLASSDESTDIR))
$(RM) $(TEMPDIR)/components_imported
$(RM) $(TEMPDIR)/security_imported
.PHONY: import_files import_internal_files