diff options
author | Colin Cross <ccross@android.com> | 2017-10-04 18:01:21 -0700 |
---|---|---|
committer | Colin Cross <ccross@android.com> | 2017-10-04 18:02:16 -0700 |
commit | 9ed4361f4a6024bc04af8aaeb4c08f106012e454 (patch) | |
tree | 12f025c730f9ebbb0894da21bf30914f959262d3 /make/CopyImportModules.gmk | |
parent | ffd638e1f8c2c5a4b0875ae56ac4295cd3bae3ef (diff) | |
parent | 6f9641408d40a9d02930a03bfd9bc7894d6bb2cd (diff) | |
download | jdk9-9ed4361f4a6024bc04af8aaeb4c08f106012e454.tar.gz |
Merge tag 'jdk-9+181' into master
Bug: 62123342
Change-Id: I10715c6cef2f5f5467042e1eba214b9de1a3055d
Diffstat (limited to 'make/CopyImportModules.gmk')
-rw-r--r-- | make/CopyImportModules.gmk | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/make/CopyImportModules.gmk b/make/CopyImportModules.gmk new file mode 100644 index 0000000..5b38601 --- /dev/null +++ b/make/CopyImportModules.gmk @@ -0,0 +1,104 @@ +# +# Copyright (c) 2015, 2016, 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. +# + +# This makefile is called for every imported module to copy the non class +# contents into the exploded jdk image. + +default: all + +include $(SPEC) +include MakeBase.gmk + +LIBS_DIR := $(wildcard $(addsuffix /$(MODULE), $(IMPORT_MODULES_LIBS))) +CMDS_DIR := $(wildcard $(addsuffix /$(MODULE), $(IMPORT_MODULES_CMDS))) +CONF_DIR := $(wildcard $(addsuffix /$(MODULE), $(IMPORT_MODULES_CONF))) + +$(eval $(call FillCacheFind, $(LIBS_DIR) $(CMDS_DIR) $(CONF_DIR))) + +ifneq ($(LIBS_DIR), ) + ifeq ($(OPENJDK_TARGET_OS), windows) + TO_BIN_FILTER := %$(SHARED_LIBRARY_SUFFIX) %.diz %.pdb %.map + + $(eval $(call SetupCopyFiles, COPY_LIBS_TO_BIN, \ + SRC := $(LIBS_DIR), \ + DEST := $(JDK_OUTPUTDIR)/bin, \ + FILES := $(filter $(TO_BIN_FILTER), \ + $(call CacheFind, $(LIBS_DIR))) \ + )) + + $(eval $(call SetupCopyFiles, COPY_LIBS_TO_LIB, \ + SRC := $(LIBS_DIR), \ + DEST := $(JDK_OUTPUTDIR)/lib, \ + FILES := $(filter-out $(TO_BIN_FILTER), \ + $(call CacheFind, $(LIBS_DIR))) \ + )) + TARGETS += $(COPY_LIBS_TO_BIN) $(COPY_LIBS_TO_LIB) + else + $(eval $(call SetupCopyFiles, COPY_LIBS, \ + SRC := $(LIBS_DIR), \ + DEST := $(JDK_OUTPUTDIR)/lib, \ + FILES := $(filter %$(SHARED_LIBRARY_SUFFIX), $(call CacheFind, $(LIBS_DIR))), \ + )) + + # Use relative links if the import dir is inside the OUTPUT_ROOT, otherwise + # copy to avoid having automated systems following symlinks when deleting files, + # or risk invalidating the build output from external changes. + ifeq ($(filter $(OUTPUT_ROOT)/%, $(LIBS_DIR)), ) + LINK_MACRO := install-file + LOG_ACTION := Copying + else + LINK_MACRO := link-file-relative + LOG_ACTION := Creating symlink + endif + $(eval $(call SetupCopyFiles, LINK_LIBS, \ + SRC := $(LIBS_DIR), \ + DEST := $(JDK_OUTPUTDIR)/lib, \ + FILES := $(filter-out %$(SHARED_LIBRARY_SUFFIX), $(call CacheFind, $(LIBS_DIR))), \ + MACRO := $(LINK_MACRO), \ + LOG_ACTION := $(LOG_ACTION), \ + )) + TARGETS += $(COPY_LIBS) $(LINK_LIBS) + endif +endif + +ifneq ($(CMDS_DIR), ) + $(eval $(call SetupCopyFiles, COPY_CMDS, \ + SRC := $(CMDS_DIR), \ + DEST := $(JDK_OUTPUTDIR)/bin, \ + FILES := $(call CacheFind, $(CMDS_DIR)), \ + )) + TARGETS += $(COPY_CMDS) +endif + +ifneq ($(CONF_DIR), ) + $(eval $(call SetupCopyFiles, COPY_CONF, \ + SRC := $(CONF_DIR), \ + DEST := $(JDK_OUTPUTDIR)/lib, \ + FILES := $(call CacheFind, $(CONF_DIR)), \ + )) + TARGETS += $(COPY_CONF) +endif + +all: $(TARGETS) |