| # |
| # 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 OUTPUTDIR, otherwise |
| # copy to avoid having automated systems following symlinks when deleting files, |
| # or risk invalidating the build output from external changes. |
| ifeq ($(filter $(OUTPUTDIR)/%, $(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) |