Images.gmk revision 2352:f34963dc0f1d
1177867Sjfv# 2169240Sjfv# Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved. 3176667Sjfv# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4169240Sjfv# 5169240Sjfv# This code is free software; you can redistribute it and/or modify it 6169240Sjfv# under the terms of the GNU General Public License version 2 only, as 7169240Sjfv# published by the Free Software Foundation. Oracle designates this 8169240Sjfv# particular file as subject to the "Classpath" exception as provided 9169240Sjfv# by Oracle in the LICENSE file that accompanied this code. 10169240Sjfv# 11169240Sjfv# This code is distributed in the hope that it will be useful, but WITHOUT 12169240Sjfv# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13169240Sjfv# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14169240Sjfv# version 2 for more details (a copy is included in the LICENSE file that 15169240Sjfv# accompanied this code). 16169240Sjfv# 17169240Sjfv# You should have received a copy of the GNU General Public License version 18169240Sjfv# 2 along with this work; if not, write to the Free Software Foundation, 19169240Sjfv# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20169240Sjfv# 21169240Sjfv# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22169240Sjfv# or visit www.oracle.com if you need additional information or have any 23169240Sjfv# questions. 24169240Sjfv# 25169240Sjfv 26169240Sjfvdefault: all 27169240Sjfv 28169240Sjfvinclude $(SPEC) 29169240Sjfvinclude MakeBase.gmk 30169240Sjfvinclude Modules.gmk 31169240Sjfv 32177867SjfvTOOL_TARGETS := 33177867SjfvJDK_TARGETS := 34169240SjfvJRE_TARGETS := 35169240Sjfv 36169240Sjfv# Hook to include the corresponding custom file, if present. 37169240Sjfv$(eval $(call IncludeCustomExtension, , Images-pre.gmk)) 38169240Sjfv 39169589Sjfv############################################################################ 40169240Sjfv 41169240Sjfv# All modules for the current target platform. 42177867SjfvALL_MODULES := $(call FindAllModules) 43177867Sjfv 44177867Sjfv$(eval $(call ReadImportMetaData)) 45177867Sjfv 46177867SjfvJRE_MODULES += $(filter $(ALL_MODULES), $(BOOT_MODULES) \ 47177867Sjfv $(PLATFORM_MODULES) $(JRE_TOOL_MODULES)) 48177867SjfvJDK_MODULES += $(ALL_MODULES) 49177867Sjfv 50177867Sjfv# Compact builds have additional modules 51177867SjfvCOMPACT1_EXTRA_MODULES := jdk.localedata jdk.crypto.pkcs11 jdk.crypto.ec 52177867SjfvCOMPACT2_EXTRA_MODULES := jdk.xml.dom jdk.httpserver 53177867SjfvCOMPACT3_EXTRA_MODULES := java.smartcardio jdk.management \ 54173788Sjfv jdk.naming.dns jdk.naming.rmi jdk.sctp jdk.security.auth 55177867Sjfv 56173788SjfvJRE_COMPACT1_MODULES := java.compact1 $(COMPACT1_EXTRA_MODULES) 57177867SjfvJRE_COMPACT2_MODULES := $(JRE_COMPACT1_MODULES) java.compact2 $(COMPACT2_EXTRA_MODULES) 58173788SjfvJRE_COMPACT3_MODULES := $(JRE_COMPACT2_MODULES) java.compact3 $(COMPACT3_EXTRA_MODULES) 59177867Sjfv 60173788SjfvJRE_MODULES_LIST := $(call CommaList, $(JRE_MODULES)) 61177867SjfvJDK_MODULES_LIST := $(call CommaList, $(JDK_MODULES)) 62177867SjfvJRE_COMPACT1_MODULES_LIST := $(call CommaList, $(JRE_COMPACT1_MODULES)) 63177867SjfvJRE_COMPACT2_MODULES_LIST := $(call CommaList, $(JRE_COMPACT2_MODULES)) 64173788SjfvJRE_COMPACT3_MODULES_LIST := $(call CommaList, $(JRE_COMPACT3_MODULES)) 65177867Sjfv 66177867Sjfv################################################################################ 67177867Sjfv 68177867SjfvBASE_RELEASE_FILE := $(JDK_OUTPUTDIR)/release 69177867Sjfv 70177867SjfvJMODS := $(wildcard $(IMAGES_OUTPUTDIR)/jmods/*.jmod) 71173788Sjfv 72177867Sjfv# Use this file inside the image as target for make rule 73177867SjfvJIMAGE_TARGET_FILE := bin/java$(EXE_SUFFIX) 74177867Sjfv 75177867SjfvJLINK_ORDER_RESOURCES := **module-info.class 76177867SjfvJLINK_JLI_CLASSES := 77173788Sjfvifeq ($(ENABLE_GENERATE_CLASSLIST), true) 78173788Sjfv JLINK_ORDER_RESOURCES += @$(SUPPORT_OUTPUTDIR)/link_opt/classlist 79173788Sjfv JLINK_JLI_CLASSES := --generate-jli-classes=@$(SUPPORT_OUTPUTDIR)/link_opt/jli_trace.out 80173788Sjfvendif 81173788SjfvJLINK_ORDER_RESOURCES += \ 82178523Sjfv /java.base/java/** \ 83178523Sjfv /java.base/jdk/** \ 84173788Sjfv /java.base/sun/** \ 85173788Sjfv /java.base/com/** \ 86177867Sjfv /jdk.localedata/** \ 87173788Sjfv # 88173788Sjfv 89173788SjfvJLINK_TOOL := $(JLINK) -J-Djlink.debug=true \ 90177867Sjfv --module-path $(IMAGES_OUTPUTDIR)/jmods \ 91173788Sjfv --endian $(OPENJDK_BUILD_CPU_ENDIAN) \ 92173788Sjfv --release-info $(BASE_RELEASE_FILE) \ 93173788Sjfv --order-resources=$(call CommaList, $(JLINK_ORDER_RESOURCES)) \ 94177867Sjfv $(JLINK_JLI_CLASSES) \ 95177867Sjfv # 96169240Sjfv 97169240SjfvJLINK_JRE_EXTRA_OPTS := --no-man-pages --no-header-files --strip-debug 98169240Sjfv 99169240Sjfvifeq ($(JLINK_KEEP_PACKAGED_MODULES), true) 100169240Sjfv JLINK_JDK_EXTRA_OPTS := --keep-packaged-modules $(JDK_IMAGE_DIR)/jmods 101169240Sjfvendif 102169240Sjfv 103169240Sjfv$(JDK_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(JMODS) \ 104169240Sjfv $(call DependOnVariable, JDK_MODULES_LIST) $(BASE_RELEASE_FILE) 105169240Sjfv $(ECHO) Creating jdk jimage 106169240Sjfv $(RM) -r $(JDK_IMAGE_DIR) 107169240Sjfv $(JLINK_TOOL) --add-modules $(JDK_MODULES_LIST) \ 108169240Sjfv $(JLINK_JDK_EXTRA_OPTS) \ 109169240Sjfv --output $(JDK_IMAGE_DIR) 110169240Sjfv $(TOUCH) $@ 111169240Sjfv 112169240Sjfv$(JRE_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(JMODS) \ 113169240Sjfv $(call DependOnVariable, JRE_MODULES_LIST) $(BASE_RELEASE_FILE) 114169240Sjfv $(ECHO) Creating jre jimage 115169240Sjfv $(RM) -r $(JRE_IMAGE_DIR) 116169240Sjfv $(JLINK_TOOL) --add-modules $(JRE_MODULES_LIST) \ 117169240Sjfv $(JLINK_JRE_EXTRA_OPTS) \ 118169240Sjfv --output $(JRE_IMAGE_DIR) 119169240Sjfv $(TOUCH) $@ 120169240Sjfv 121169240SjfvJRE_COMPACT1_IMAGE_DIR := $(JRE_IMAGE_DIR)-compact1 122169240SjfvJRE_COMPACT2_IMAGE_DIR := $(JRE_IMAGE_DIR)-compact2 123169240SjfvJRE_COMPACT3_IMAGE_DIR := $(JRE_IMAGE_DIR)-compact3 124169240Sjfv 125169240Sjfv 126169240Sjfv$(JRE_COMPACT1_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(JMODS) \ 127169240Sjfv $(call DependOnVariable, JRE_COMPACT1_MODULES_LIST) $(BASE_RELEASE_FILE) 128169240Sjfv $(ECHO) Creating jre compact1 jimage 129169240Sjfv $(RM) -r $(JRE_COMPACT1_IMAGE_DIR) 130169240Sjfv $(JLINK_TOOL) --add-modules $(JRE_COMPACT1_MODULES_LIST) \ 131169240Sjfv $(JLINK_JRE_EXTRA_OPTS) \ 132169240Sjfv --output $(JRE_COMPACT1_IMAGE_DIR) 133169240Sjfv $(TOUCH) $@ 134169240Sjfv 135169240Sjfv$(JRE_COMPACT2_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(JMODS) \ 136169240Sjfv $(call DependOnVariable, JRE_COMPACT2_MODULES_LIST) $(BASE_RELEASE_FILE) 137169240Sjfv $(ECHO) Creating jre compact2 jimage 138169240Sjfv $(RM) -r $(JRE_COMPACT2_IMAGE_DIR) 139169240Sjfv $(JLINK_TOOL) --add-modules $(JRE_COMPACT2_MODULES_LIST) \ 140173788Sjfv $(JLINK_JRE_EXTRA_OPTS) \ 141169240Sjfv --output $(JRE_COMPACT2_IMAGE_DIR) 142169240Sjfv $(TOUCH) $@ 143169240Sjfv 144173788Sjfv$(JRE_COMPACT3_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(JMODS) \ 145169240Sjfv $(call DependOnVariable, JRE_COMPACT3_MODULES_LIST) $(BASE_RELEASE_FILE) 146169240Sjfv $(ECHO) Creating jre compact3 jimage 147169240Sjfv $(RM) -r $(JRE_COMPACT3_IMAGE_DIR) 148169240Sjfv $(JLINK_TOOL) --add-modules $(JRE_COMPACT3_MODULES_LIST) \ 149169240Sjfv $(JLINK_JRE_EXTRA_OPTS) \ 150169589Sjfv --output $(JRE_COMPACT3_IMAGE_DIR) 151169240Sjfv $(TOUCH) $@ 152169240Sjfv 153169240SjfvTOOL_JRE_TARGETS := $(JRE_IMAGE_DIR)/$(JIMAGE_TARGET_FILE) 154177867SjfvTOOL_JDK_TARGETS := $(JDK_IMAGE_DIR)/$(JIMAGE_TARGET_FILE) 155169240SjfvTOOL_JRE_COMPACT1_TARGETS := $(JRE_COMPACT1_IMAGE_DIR)/$(JIMAGE_TARGET_FILE) 156169240SjfvTOOL_JRE_COMPACT2_TARGETS := $(JRE_COMPACT2_IMAGE_DIR)/$(JIMAGE_TARGET_FILE) 157169240SjfvTOOL_JRE_COMPACT3_TARGETS := $(JRE_COMPACT3_IMAGE_DIR)/$(JIMAGE_TARGET_FILE) 158169589Sjfv 159169240Sjfv################################################################################ 160169240Sjfv# /man dir 161169240Sjfv# 162177867Sjfv# All variables in this section are assigned with simple =, without :, to enable 163177867Sjfv# more selective overriding from the custom version of this file. 164169240Sjfv# 165177867Sjfv# Avoid evaluating this whole section on windows for speed and stability 166177867Sjfvifneq ($(OPENJDK_TARGET_OS), windows) 167177867Sjfv JRE_MAN_PAGES += \ 168177867Sjfv java.1 \ 169177867Sjfv jjs.1 \ 170177867Sjfv keytool.1 \ 171177867Sjfv orbd.1 \ 172177867Sjfv pack200.1 \ 173177867Sjfv rmid.1 \ 174177867Sjfv rmiregistry.1 \ 175177867Sjfv servertool.1 \ 176177867Sjfv tnameserv.1 \ 177177867Sjfv unpack200.1 178177867Sjfv 179177867Sjfv JDK_MAN_PAGES += \ 180169240Sjfv $(JRE_MAN_PAGES) \ 181176667Sjfv appletviewer.1 \ 182176667Sjfv idlj.1 \ 183176667Sjfv jar.1 \ 184176667Sjfv jarsigner.1 \ 185176667Sjfv javac.1 \ 186176667Sjfv javadoc.1 \ 187177867Sjfv javah.1 \ 188177867Sjfv javap.1 \ 189176667Sjfv jconsole.1 \ 190176667Sjfv jcmd.1 \ 191176667Sjfv jdb.1 \ 192176667Sjfv jdeps.1 \ 193176667Sjfv jinfo.1 \ 194176667Sjfv jmap.1 \ 195169240Sjfv jps.1 \ 196169589Sjfv jrunscript.1 \ 197169589Sjfv jstack.1 \ 198169589Sjfv jstat.1 \ 199169589Sjfv jstatd.1 \ 200169589Sjfv policytool.1 \ 201169589Sjfv rmic.1 \ 202169589Sjfv schemagen.1 \ 203169589Sjfv serialver.1 \ 204169589Sjfv wsgen.1 \ 205169240Sjfv wsimport.1 \ 206169240Sjfv xjc.1 207169240Sjfv 208169240Sjfv # This variable is potentially overridden in the closed makefile. 209169240Sjfv MAN_SRC_BASEDIR ?= $(JDK_TOPDIR)/src 210169240Sjfv 211169240Sjfv ifeq ($(OPENJDK_TARGET_OS), linux) 212169240Sjfv MAN_SRC_DIR = $(MAN_SRC_BASEDIR)/linux/doc 213169240Sjfv MAN1_SUBDIR = man 214169240Sjfv endif 215169240Sjfv ifeq ($(OPENJDK_TARGET_OS), solaris) 216169240Sjfv MAN_SRC_DIR = $(MAN_SRC_BASEDIR)/solaris/doc 217176667Sjfv MAN1_SUBDIR = sun/man/man1 218176667Sjfv endif 219176667Sjfv ifeq ($(OPENJDK_TARGET_OS), macosx) 220177867Sjfv MAN_SRC_DIR = $(MAN_SRC_BASEDIR)/bsd/doc 221177867Sjfv MAN1_SUBDIR = man 222177867Sjfv endif 223176667Sjfv 224169240Sjfv $(JRE_IMAGE_DIR)/man/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/% 225169240Sjfv $(call LogInfo, Copying $(patsubst $(OUTPUT_ROOT)/%,%,$@)) 226169240Sjfv $(install-file) 227169240Sjfv 228169240Sjfv $(JDK_IMAGE_DIR)/man/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/% 229169240Sjfv $(call LogInfo, Copying $(patsubst $(OUTPUT_ROOT)/%,%,$@)) 230169240Sjfv $(install-file) 231169240Sjfv 232169240Sjfv $(JRE_IMAGE_DIR)/man/ja_JP.UTF-8/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/ja/% 233169240Sjfv $(call LogInfo, Copying $(patsubst $(OUTPUT_ROOT)/%,%,$@)) 234169240Sjfv $(install-file) 235169589Sjfv 236169240Sjfv $(JDK_IMAGE_DIR)/man/ja_JP.UTF-8/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/ja/% 237169240Sjfv $(call LogInfo, Copying $(patsubst $(OUTPUT_ROOT)/%,%,$@)) 238169240Sjfv $(install-file) 239169240Sjfv 240177867Sjfv ifeq ($(OPENJDK_TARGET_OS), solaris) 241169240Sjfv $(JRE_IMAGE_DIR)/man/ja/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/ja/% 242169240Sjfv $(call LogInfo, Converting $(patsubst $(OUTPUT_ROOT)/%,%,$@)) 243169240Sjfv $(install-file) 244169240Sjfv 245173788Sjfv $(JDK_IMAGE_DIR)/man/ja/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/ja/% 246169240Sjfv $(call LogInfo, Converting $(patsubst $(OUTPUT_ROOT)/%,%,$@)) 247169240Sjfv $(install-file) 248169240Sjfv endif 249169240Sjfv 250173788Sjfv ifneq ($(findstring $(OPENJDK_TARGET_OS), linux macosx), ) 251169240Sjfv $(JRE_IMAGE_DIR)/man/ja: 252169240Sjfv $(call LogInfo, Creating $(patsubst $(OUTPUT_ROOT)/%,%,$@)) 253169240Sjfv $(CD) $(@D) && $(RM) ja && $(LN) -s ja_JP.UTF-8 ja 254169240Sjfv 255169240Sjfv $(JDK_IMAGE_DIR)/man/ja: 256169240Sjfv $(call LogInfo, Creating $(patsubst $(OUTPUT_ROOT)/%,%,$@)) 257169240Sjfv $(CD) $(@D) && $(RM) ja && $(LN) -s ja_JP.UTF-8 ja 258169240Sjfv endif 259169240Sjfv 260169240Sjfv ifeq ($(OPENJDK_TARGET_OS), solaris) 261173788Sjfv JRE_MAN_PAGE_LIST = $(addprefix $(JRE_IMAGE_DIR)/man/man1/, $(JRE_MAN_PAGES)) \ 262173788Sjfv $(addprefix $(JRE_IMAGE_DIR)/man/ja/man1/, $(JRE_MAN_PAGES)) \ 263169240Sjfv $(addprefix $(JRE_IMAGE_DIR)/man/ja_JP.UTF-8/man1/, $(JRE_MAN_PAGES)) \ 264173788Sjfv $(addprefix $(JRE_IMAGE_DIR)/man/ja_JP.PCK/man1/, $(JRE_MAN_PAGES)) 265173788Sjfv 266169240Sjfv JDK_MAN_PAGE_LIST = $(addprefix $(JDK_IMAGE_DIR)/man/man1/, $(JDK_MAN_PAGES)) \ 267169240Sjfv $(addprefix $(JDK_IMAGE_DIR)/man/ja/man1/, $(JDK_MAN_PAGES)) \ 268169240Sjfv $(addprefix $(JDK_IMAGE_DIR)/man/ja_JP.UTF-8/man1/, $(JDK_MAN_PAGES)) \ 269169240Sjfv $(addprefix $(JDK_IMAGE_DIR)/man/ja_JP.PCK/man1/, $(JDK_MAN_PAGES)) 270169240Sjfv endif 271169240Sjfv 272173788Sjfv ifneq ($(findstring $(OPENJDK_TARGET_OS), linux macosx), ) 273173788Sjfv JRE_MAN_PAGE_LIST = $(addprefix $(JRE_IMAGE_DIR)/man/man1/, $(JRE_MAN_PAGES)) \ 274173788Sjfv $(addprefix $(JRE_IMAGE_DIR)/man/ja_JP.UTF-8/man1/, $(JRE_MAN_PAGES)) \ 275173788Sjfv $(JRE_IMAGE_DIR)/man/ja 276169240Sjfv 277169240Sjfv JDK_MAN_PAGE_LIST = $(addprefix $(JDK_IMAGE_DIR)/man/man1/, $(JDK_MAN_PAGES)) \ 278169240Sjfv $(addprefix $(JDK_IMAGE_DIR)/man/ja_JP.UTF-8/man1/, $(JDK_MAN_PAGES)) \ 279169240Sjfv $(JDK_IMAGE_DIR)/man/ja 280169240Sjfv endif 281169240Sjfv 282169240Sjfv JRE_TARGETS += $(JRE_MAN_PAGE_LIST) 283169240Sjfv JDK_TARGETS += $(JDK_MAN_PAGE_LIST) 284169240Sjfvendif # Windows 285169240Sjfv 286173788Sjfv################################################################################ 287169240Sjfv# doc files 288169240Sjfv 289169240SjfvJRE_DOC_FILES ?= LICENSE ASSEMBLY_EXCEPTION THIRD_PARTY_README 290169240SjfvJDK_DOC_FILES ?= LICENSE ASSEMBLY_EXCEPTION THIRD_PARTY_README 291169240SjfvJRE_DOC_LOCATION ?= $(JDK_TOPDIR) 292169240SjfvJDK_DOC_LOCATION ?= $(JDK_TOPDIR) 293169240Sjfv 294169240SjfvJRE_DOC_TARGETS := $(addprefix $(JRE_IMAGE_DIR)/, $(JRE_DOC_FILES)) 295169240SjfvJDK_DOC_TARGETS := $(addprefix $(JDK_IMAGE_DIR)/, $(JDK_DOC_FILES)) 296169240Sjfv 297169240Sjfv# Processing license files from source area to image area 298169240Sjfv# These are modified to have the platform specific EOL chars. 299177867Sjfvdefine process-doc-file 300177867Sjfv $(call LogInfo, Processing $(patsubst $(OUTPUT_ROOT)/%,%,$@)) 301177867Sjfv $(MKDIR) -p $(@D) 302177867Sjfv $(RM) $@ 303177867Sjfv LC_ALL=C $(SED) 's/$$//g' $< > $@ 304177867Sjfv $(CHMOD) 444 $@ 305177867Sjfvendef 306169240Sjfv 307169240Sjfv$(JRE_IMAGE_DIR)/%: $(JRE_DOC_LOCATION)/% 308169240Sjfv $(process-doc-file) 309169240Sjfv 310169240Sjfv$(JDK_IMAGE_DIR)/%: $(JDK_DOC_LOCATION)/% 311169240Sjfv $(process-doc-file) 312169240Sjfv 313169589SjfvJRE_TARGETS += $(JRE_DOC_TARGETS) 314169240SjfvJDK_TARGETS += $(JDK_DOC_TARGETS) 315169240Sjfv 316169240Sjfv################################################################################ 317169240Sjfv# src.zip 318177867Sjfv 319169240Sjfv$(JDK_IMAGE_DIR)/src.zip: $(SUPPORT_OUTPUTDIR)/src.zip 320169240Sjfv $(call LogInfo, Copying $(patsubst $(OUTPUT_ROOT)/%,%,$@)) 321169240Sjfv $(install-file) 322169240Sjfv 323169240SjfvJDK_TARGETS += $(JDK_IMAGE_DIR)/src.zip 324169240Sjfv 325169240Sjfv################################################################################ 326173788Sjfv# /demo dir 327169240Sjfv# Avoid doing the expensive find unless called with "jdk" as target. 328169240Sjfvifneq ($(filter jdk, $(MAKECMDGOALS)), ) 329169240Sjfv 330169240Sjfv DEMO_FILES := \ 331169240Sjfv $(if $(wildcard $(SUPPORT_OUTPUTDIR)/demos/image), \ 332169240Sjfv $(call DoubleDollar, \ 333169240Sjfv $(shell $(FIND) $(SUPPORT_OUTPUTDIR)/demos/image \ 334169240Sjfv -type f -a ! \( -name "_the*" -o -name "javac_state" \) )) \ 335169240Sjfv ) 336169240Sjfv 337169240Sjfv ifeq ($(ZIP_EXTERNAL_DEBUG_SYMBOLS), true) 338169240Sjfv ifeq ($(OPENJDK_TARGET_OS), macosx) 339169240Sjfv DEMO_FILES := $(call not-containing, .dSYM, $(DEMO_FILES)) 340169240Sjfv else 341169240Sjfv DEMO_FILES := $(filter-out %.debuginfo %.pdb %.map, $(DEMO_FILES)) 342177867Sjfv endif 343169240Sjfv endif 344177867Sjfv 345169240Sjfv $(eval $(call SetupCopyFiles, JDK_COPY_DEMOS, \ 346177867Sjfv SRC := $(SUPPORT_OUTPUTDIR)/demos/image, \ 347169240Sjfv DEST := $(JDK_IMAGE_DIR)/demo, \ 348177867Sjfv FILES := $(DEMO_FILES), \ 349169240Sjfv )) 350177867Sjfv 351169240Sjfv JDK_TARGETS += $(JDK_COPY_DEMOS) 352177867Sjfvendif 353169240Sjfv 354177867Sjfv################################################################################ 355169240Sjfv# /sample dir 356177867Sjfv 357169240Sjfv$(eval $(call SetupCopyFiles, COPY_SAMPLES, \ 358177867Sjfv SRC := $(SUPPORT_OUTPUTDIR)/sample/image, \ 359169240Sjfv DEST := $(JDK_IMAGE_DIR)/sample, \ 360177867Sjfv FILES := $(if $(wildcard $(SUPPORT_OUTPUTDIR)/sample/image), \ 361169240Sjfv $(call CacheFind,$(SUPPORT_OUTPUTDIR)/sample/image)))) 362177867Sjfv 363169240SjfvJDK_TARGETS += $(COPY_SAMPLES) 364177867Sjfv 365169240Sjfv################################################################################ 366177867Sjfv# Code coverage data files 367169240Sjfv 368177867Sjfvifeq ($(GCOV_ENABLED), true) 369177867Sjfv 370169240Sjfv GCOV_FIND_EXPR := -type f -name "*.gcno" 371177867Sjfv 372169240Sjfv $(eval $(call SetupCopyFiles,COPY_HOTSPOT_GCOV_GCNO, \ 373177867Sjfv SRC := $(OUTPUT_ROOT), \ 374169240Sjfv DEST := $(SYMBOLS_IMAGE_DIR)/gcov, \ 375169240Sjfv FILES := $(shell $(FIND) $(HOTSPOT_OUTPUTDIR) $(GCOV_FIND_EXPR)))) 376169240Sjfv 377169240Sjfv SYMBOLS_TARGETS += $(COPY_HOTSPOT_GCOV_GCNO) 378169240Sjfv 379169240Sjfv $(eval $(call SetupCopyFiles,COPY_JDK_GCOV_GCNO, \ 380169240Sjfv SRC := $(OUTPUT_ROOT), \ 381169240Sjfv DEST := $(SYMBOLS_IMAGE_DIR)/gcov, \ 382169240Sjfv FILES := $(shell $(FIND) $(SUPPORT_OUTPUTDIR)/native $(GCOV_FIND_EXPR)))) 383169240Sjfv 384169240Sjfv SYMBOLS_TARGETS += $(COPY_JDK_GCOV_GCNO) 385169240Sjfv 386169240Sjfvendif 387169240Sjfv 388169240Sjfv################################################################################ 389169240Sjfv# Debug symbols 390169240Sjfv# Since debug symbols are not included in the jmod files, they need to be copied 391169240Sjfv# in manually after generating the images. 392169240Sjfv 393169589SjfvALL_JDK_MODULES := $(JDK_MODULES) 394169240SjfvALL_JRE_MODULES := $(sort $(JRE_MODULES), $(foreach m, $(JRE_MODULES), \ 395169240Sjfv $(call FindTransitiveDepsForModule, $m))) 396169240Sjfv 397173788Sjfvifeq ($(OPENJDK_TARGET_OS), windows) 398169240Sjfv LIBS_TARGET_SUBDIR := bin 399169240Sjfvelse 400169240Sjfv LIBS_TARGET_SUBDIR := lib 401177867Sjfvendif 402177867Sjfv 403177867Sjfv# Param 1 - dir to find debuginfo files in 404169240SjfvFindDebuginfoFiles = \ 405169240Sjfv $(wildcard $(addprefix $1/*, $(DEBUGINFO_SUFFIXES)) \ 406169240Sjfv $(addprefix $1/*/*, $(DEBUGINFO_SUFFIXES)) \ 407169240Sjfv $(addprefix $1/*/*/*, $(DEBUGINFO_SUFFIXES))) 408169589Sjfv 409169240Sjfv# Pick the correct debug info files to copy, either zipped or not. 410169240Sjfvifeq ($(ZIP_EXTERNAL_DEBUG_SYMBOLS), true) 411169240Sjfv DEBUGINFO_SUFFIXES += .diz 412169240Sjfvelse 413169240Sjfv DEBUGINFO_SUFFIXES := .debuginfo .pdb .map 414177867Sjfv # On Macosx, if debug symbols have not been zipped, find all files inside *.dSYM 415169240Sjfv # dirs. 416169240Sjfv ifeq ($(OPENJDK_TARGET_OS), macosx) 417169240Sjfv $(eval $(call FillCacheFind, \ 418169240Sjfv $(SUPPORT_OUTPUTDIR)/modules_cmds $(SUPPORT_OUTPUTDIR)/modules_libs)) 419169240Sjfv FindDebuginfoFiles = \ 420169240Sjfv $(if $(wildcard $1), $(call containing, .dSYM/, $(call CacheFind, $1))) 421169240Sjfv endif 422169240Sjfvendif 423169240Sjfv 424169240Sjfv# Param 1 - either JDK or JRE 425169240SjfvSetupCopyDebuginfo = \ 426169240Sjfv $(foreach m, $(ALL_$1_MODULES), \ 427169240Sjfv $(eval $(call SetupCopyFiles, COPY_$1_LIBS_DEBUGINFO_$m, \ 428169240Sjfv SRC := $(SUPPORT_OUTPUTDIR)/modules_libs/$m, \ 429169240Sjfv DEST := $($1_IMAGE_DIR)/$(LIBS_TARGET_SUBDIR), \ 430169240Sjfv FILES := $(call FindDebuginfoFiles, \ 431169240Sjfv $(SUPPORT_OUTPUTDIR)/modules_libs/$m), \ 432169240Sjfv )) \ 433169240Sjfv $(eval $1_TARGETS += $$(COPY_$1_LIBS_DEBUGINFO_$m)) \ 434169240Sjfv ) 435173788Sjfv 436173788Sjfv# No space before argument to avoid having to put $(strip ) everywhere in 437169240Sjfv# implementation above. 438169240Sjfv$(call SetupCopyDebuginfo,JDK) 439169240Sjfv$(call SetupCopyDebuginfo,JRE) 440169240Sjfv 441169240Sjfv################################################################################ 442169240Sjfv 443169240Sjfv# Include custom post hook here to make it possible to augment the target lists 444169240Sjfv# before actual target prerequisites are declared. 445169240Sjfv$(eval $(call IncludeCustomExtension, , Images-post.gmk)) 446169240Sjfv 447169589Sjfv################################################################################ 448169240Sjfv 449169240Sjfv$(JRE_TARGETS): $(TOOL_JRE_TARGETS) 450169240Sjfv$(JDK_TARGETS): $(TOOL_JDK_TARGETS) 451169240Sjfv 452169240Sjfvjdk: $(JDK_TARGETS) 453177867Sjfvjre: $(JRE_TARGETS) 454169240Sjfvsymbols: $(SYMBOLS_TARGETS) 455169240Sjfv 456169240Sjfvall: jdk jre symbols 457169240Sjfv 458169240Sjfv$(JRE_COMPACT1_TARGETS): $(TOOL_JRE_COMPACT1_TARGETS) 459169240Sjfv$(JRE_COMPACT2_TARGETS): $(TOOL_JRE_COMPACT2_TARGETS) 460169240Sjfv$(JRE_COMPACT3_TARGETS): $(TOOL_JRE_COMPACT3_TARGETS) 461169240Sjfv 462169240Sjfvprofiles: $(TOOL_JRE_COMPACT1_TARGETS) \ 463169240Sjfv $(TOOL_JRE_COMPACT2_TARGETS) \ 464169240Sjfv $(TOOL_JRE_COMPACT3_TARGETS) \ 465169240Sjfv $(JRE_COMPACT1_TARGETS) \ 466169240Sjfv $(JRE_COMPACT2_TARGETS) \ 467169240Sjfv $(JRE_COMPACT3_TARGETS) 468169589Sjfv 469169240Sjfv.PHONY: default all jdk jre symbols profiles 470169240Sjfv