CreateBuildJdkCopy.gmk revision 2052:f70030d86af1
1#
2# Copyright (c) 2015, 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
26default: all
27
28include $(SPEC)
29include MakeBase.gmk
30include Modules.gmk
31
32MODULES_TO_COPY := $(sort \
33    $(foreach m, jdk.jlink $(INTERIM_IMAGE_MODULES), \
34      $(call FindTransitiveDepsForModule, $m) $m))
35
36################################################################################
37# Copy the modules needed to run jlink and jmod. Use bulk copy instead of
38# SetupCopyFiles since there are so many files.
39
40COPY_CLASSES_TARGET := $(BUILDJDK_OUTPUTDIR)/jdk/modules/java.base/_the.buildjdk-copy-marker
41
42$(COPY_CLASSES_TARGET): $(call CacheFind, $(wildcard \
43    $(addprefix $(JDK_OUTPUTDIR)/modules/, $(MODULES_TO_COPY))))
44	$(ECHO) $(LOG_INFO) "Copying java modules to buildjdk: $(MODULES_TO_COPY)"
45	$(RM) -r $(BUILDJDK_OUTPUTDIR)/jdk/modules
46	$(MKDIR) -p $(BUILDJDK_OUTPUTDIR)/jdk/modules
47	$(foreach m, $(MODULES_TO_COPY), \
48	    $(CP) -R $(JDK_OUTPUTDIR)/modules/$m \
49	        $(BUILDJDK_OUTPUTDIR)/jdk/modules/ $(NEWLINE))
50	$(TOUCH) $@
51
52TARGETS += $(COPY_CLASSES_TARGET)
53
54################################################################################
55
56$(eval $(call SetupCopyFiles, COPY_SUPPORT_HEADERS, \
57    SRC := $(BUILD_OUTPUT), \
58    DEST := $(BUILDJDK_OUTPUTDIR), \
59    FILES := $(call CacheFind, $(wildcard \
60        $(addprefix $(SUPPORT_OUTPUTDIR)/headers/, $(MODULES_TO_COPY)))), \
61))
62
63TARGETS += $(COPY_SUPPORT_HEADERS)
64
65################################################################################
66
67$(eval $(call SetupCopyFiles, COPY_JDK_LIB_FILES, \
68    SRC := $(BUILD_OUTPUT), \
69    DEST := $(BUILDJDK_OUTPUTDIR), \
70    FILES := $(JDK_OUTPUTDIR)/lib/tzdb.dat, \
71))
72
73TARGETS += $(COPY_JDK_LIB_FILES)
74
75################################################################################
76
77all: $(TARGETS)
78
79.PHONY: default all
80