Images.gmk revision 2339:de80886290c6
1139749Simp# 2119815Smarcel# Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved. 3119815Smarcel# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4119815Smarcel# 5119815Smarcel# This code is free software; you can redistribute it and/or modify it 6119815Smarcel# under the terms of the GNU General Public License version 2 only, as 7119815Smarcel# published by the Free Software Foundation. Oracle designates this 8119815Smarcel# particular file as subject to the "Classpath" exception as provided 9119815Smarcel# by Oracle in the LICENSE file that accompanied this code. 10119815Smarcel# 11119815Smarcel# This code is distributed in the hope that it will be useful, but WITHOUT 12119815Smarcel# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13119815Smarcel# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14119815Smarcel# version 2 for more details (a copy is included in the LICENSE file that 15119815Smarcel# accompanied this code). 16119815Smarcel# 17119815Smarcel# You should have received a copy of the GNU General Public License version 18119815Smarcel# 2 along with this work; if not, write to the Free Software Foundation, 19119815Smarcel# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20119815Smarcel# 21119815Smarcel# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22119815Smarcel# or visit www.oracle.com if you need additional information or have any 23119815Smarcel# questions. 24119815Smarcel# 25119815Smarcel 26119815Smarceldefault: all 27247519Sganbold 28247519Sganboldinclude $(SPEC) 29119815Smarcelinclude MakeBase.gmk 30119815Smarcelinclude Modules.gmk 31119815Smarcel 32119815SmarcelTOOL_TARGETS := 33119815SmarcelJDK_TARGETS := 34119815SmarcelJRE_TARGETS := 35119815Smarcel 36246016Scperciva# Hook to include the corresponding custom file, if present. 37246016Scperciva$(eval $(call IncludeCustomExtension, , Images-pre.gmk)) 38119815Smarcel 39119815Smarcel############################################################################ 40247519Sganbold 41247519Sganbold# All modules for the current target platform. 42247519SganboldALL_MODULES := $(call FindAllModules) 43247519Sganbold 44247519Sganbold$(eval $(call ReadImportMetaData)) 45247519Sganbold 46119815SmarcelJRE_MODULES += $(filter $(ALL_MODULES), $(BOOT_MODULES) \ 47119815Smarcel $(PLATFORM_MODULES) $(JRE_TOOL_MODULES)) 48119815SmarcelJDK_MODULES += $(ALL_MODULES) 49254597Sian 50119815Smarcel# Compact builds have additional modules 51137949SmarcelCOMPACT1_EXTRA_MODULES := jdk.localedata jdk.crypto.pkcs11 jdk.crypto.ec 52137949SmarcelCOMPACT2_EXTRA_MODULES := jdk.xml.dom jdk.httpserver 53119815SmarcelCOMPACT3_EXTRA_MODULES := java.smartcardio jdk.management \ 54119815Smarcel jdk.naming.dns jdk.naming.rmi jdk.sctp jdk.security.auth 55119815Smarcel 56119815SmarcelJRE_COMPACT1_MODULES := java.compact1 $(COMPACT1_EXTRA_MODULES) 57247519SganboldJRE_COMPACT2_MODULES := $(JRE_COMPACT1_MODULES) java.compact2 $(COMPACT2_EXTRA_MODULES) 58247519SganboldJRE_COMPACT3_MODULES := $(JRE_COMPACT2_MODULES) java.compact3 $(COMPACT3_EXTRA_MODULES) 59247519Sganbold 60247519SganboldJRE_MODULES_LIST := $(call CommaList, $(JRE_MODULES)) 61247519SganboldJDK_MODULES_LIST := $(call CommaList, $(JDK_MODULES)) 62119815SmarcelJRE_COMPACT1_MODULES_LIST := $(call CommaList, $(JRE_COMPACT1_MODULES)) 63119815SmarcelJRE_COMPACT2_MODULES_LIST := $(call CommaList, $(JRE_COMPACT2_MODULES)) 64119815SmarcelJRE_COMPACT3_MODULES_LIST := $(call CommaList, $(JRE_COMPACT3_MODULES)) 65119815Smarcel 66119815Smarcel################################################################################ 67119815Smarcel# Release file 68119815Smarcel 69190834SmarcelBASE_RELEASE_FILE := $(JDK_OUTPUTDIR)/release 70119815Smarcel 71119815Smarcel# Common way to emit a line into the release or info file 72119815Smarceldefine info-file-item # name value 73119815Smarcel $(PRINTF) '%s="%s"\n' $1 $2 >> $@ 74190834Smarcelendef 75190834Smarcel 76190834Smarcel# Param 1 - The file containing the MODULES list 77190834Smarceldefine create-info-file 78190834Smarcel $(if $(JDK_ARCH_ABI_PROP_NAME), \ 79119815Smarcel $(call info-file-item, "SUN_ARCH_ABI", "$(JDK_ARCH_ABI_PROP_NAME)")) 80119815Smarcel $(call info-file-item, "SOURCE", "$(strip $(ALL_SOURCE_TIPS))") 81119815Smarcelendef 82119815Smarcel 83119815Smarcel# Param 1 - The file containing the MODULES list 84119815Smarceldefine prepare-info-file 85119815Smarcel $(ECHO) $(LOG_INFO) Generating $(patsubst $(OUTPUT_ROOT)/%,%,$@) 86119815Smarcel $(MKDIR) -p $(@D) 87119815Smarcel $(RM) $@ 88119815Smarcelendef 89119815Smarcel 90119815Smarceldefine info-file 91119815Smarcel $(call prepare-info-file) 92119815Smarcel $(call create-info-file) 93119815Smarcelendef 94119815Smarcel 95119815Smarcel# Create a variable dependency file common for all release info files. 96158844SbennoINFO_FILE_VARDEPS := $(call DependOnVariable, create-info-file) 97119815Smarcel 98119815SmarcelALL_SOURCE_TIPS = $(shell \ 99119815Smarcel if [ -f $(SUPPORT_OUTPUTDIR)/source_tips ] ; then \ 100119815Smarcel $(CAT) $(SUPPORT_OUTPUTDIR)/source_tips ; \ 101119815Smarcel fi) 102168000Smarcel 103168000Smarcel$(BASE_RELEASE_FILE): $(INFO_FILE_VARDEPS) $(SUPPORT_OUTPUTDIR)/source_tips 104168000Smarcel $(info-file) 105119815Smarcel 106119815Smarcel################################################################################ 107119815Smarcel 108119815SmarcelJMODS := $(wildcard $(IMAGES_OUTPUTDIR)/jmods/*.jmod) 109119815Smarcel 110119815Smarcel# Use this file inside the image as target for make rule 111119815SmarcelJIMAGE_TARGET_FILE := bin/java$(EXE_SUFFIX) 112119815Smarcel 113119815SmarcelJLINK_ORDER_RESOURCES := **module-info.class 114119815SmarcelJLINK_JLI_CLASSES := 115119815Smarcelifeq ($(ENABLE_GENERATE_CLASSLIST), true) 116119815Smarcel JLINK_ORDER_RESOURCES += @$(SUPPORT_OUTPUTDIR)/link_opt/classlist 117119815Smarcel JLINK_JLI_CLASSES := --generate-jli-classes=@$(SUPPORT_OUTPUTDIR)/link_opt/jli_trace.out 118119815Smarcelendif 119119815SmarcelJLINK_ORDER_RESOURCES += \ 120119815Smarcel /java.base/java/** \ 121119815Smarcel /java.base/jdk/** \ 122119815Smarcel /java.base/sun/** \ 123119815Smarcel /java.base/com/** \ 124119815Smarcel /jdk.localedata/** \ 125119815Smarcel # 126119815Smarcel 127119815SmarcelJLINK_TOOL := $(JLINK) --module-path $(IMAGES_OUTPUTDIR)/jmods \ 128119815Smarcel --endian $(OPENJDK_BUILD_CPU_ENDIAN) \ 129119815Smarcel --release-info $(BASE_RELEASE_FILE) \ 130119815Smarcel --order-resources=$(call CommaList, $(JLINK_ORDER_RESOURCES)) \ 131119815Smarcel $(JLINK_JLI_CLASSES) \ 132119815Smarcel # 133119815Smarcel 134119815SmarcelJLINK_JRE_EXTRA_OPTS := --no-man-pages --no-header-files --strip-debug 135119815Smarcel 136119815Smarcelifeq ($(JLINK_KEEP_PACKAGED_MODULES), true) 137119815Smarcel JLINK_JDK_EXTRA_OPTS := --keep-packaged-modules $(JDK_IMAGE_DIR)/jmods 138119815Smarcelendif 139119815Smarcel 140119815Smarcel$(JDK_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(JMODS) \ 141119815Smarcel $(call DependOnVariable, JDK_MODULES_LIST) $(BASE_RELEASE_FILE) 142119815Smarcel $(ECHO) Creating jdk jimage 143119815Smarcel $(RM) -r $(JDK_IMAGE_DIR) 144119815Smarcel $(JLINK_TOOL) --add-modules $(JDK_MODULES_LIST) \ 145119815Smarcel $(JLINK_JDK_EXTRA_OPTS) \ 146119815Smarcel --output $(JDK_IMAGE_DIR) 147119815Smarcel $(TOUCH) $@ 148119815Smarcel 149119815Smarcel$(JRE_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(JMODS) \ 150119815Smarcel $(call DependOnVariable, JRE_MODULES_LIST) $(BASE_RELEASE_FILE) 151119815Smarcel $(ECHO) Creating jre jimage 152119815Smarcel $(RM) -r $(JRE_IMAGE_DIR) 153119815Smarcel $(JLINK_TOOL) --add-modules $(JRE_MODULES_LIST) \ 154119815Smarcel $(JLINK_JRE_EXTRA_OPTS) \ 155119815Smarcel --output $(JRE_IMAGE_DIR) 156119815Smarcel $(TOUCH) $@ 157119815Smarcel 158119815SmarcelJRE_COMPACT1_IMAGE_DIR := $(JRE_IMAGE_DIR)-compact1 159119815SmarcelJRE_COMPACT2_IMAGE_DIR := $(JRE_IMAGE_DIR)-compact2 160119815SmarcelJRE_COMPACT3_IMAGE_DIR := $(JRE_IMAGE_DIR)-compact3 161119815Smarcel 162119815Smarcel 163119815Smarcel$(JRE_COMPACT1_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(JMODS) \ 164119815Smarcel $(call DependOnVariable, JRE_COMPACT1_MODULES_LIST) $(BASE_RELEASE_FILE) 165119815Smarcel $(ECHO) Creating jre compact1 jimage 166119815Smarcel $(RM) -r $(JRE_COMPACT1_IMAGE_DIR) 167119815Smarcel $(JLINK_TOOL) --add-modules $(JRE_COMPACT1_MODULES_LIST) \ 168119815Smarcel $(JLINK_JRE_EXTRA_OPTS) \ 169119815Smarcel --output $(JRE_COMPACT1_IMAGE_DIR) 170119815Smarcel $(TOUCH) $@ 171119815Smarcel 172119815Smarcel$(JRE_COMPACT2_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(JMODS) \ 173119815Smarcel $(call DependOnVariable, JRE_COMPACT2_MODULES_LIST) $(BASE_RELEASE_FILE) 174119815Smarcel $(ECHO) Creating jre compact2 jimage 175119815Smarcel $(RM) -r $(JRE_COMPACT2_IMAGE_DIR) 176119815Smarcel $(JLINK_TOOL) --add-modules $(JRE_COMPACT2_MODULES_LIST) \ 177119815Smarcel $(JLINK_JRE_EXTRA_OPTS) \ 178119815Smarcel --output $(JRE_COMPACT2_IMAGE_DIR) 179119815Smarcel $(TOUCH) $@ 180119815Smarcel 181119815Smarcel$(JRE_COMPACT3_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(JMODS) \ 182119815Smarcel $(call DependOnVariable, JRE_COMPACT3_MODULES_LIST) $(BASE_RELEASE_FILE) 183119815Smarcel $(ECHO) Creating jre compact3 jimage 184119815Smarcel $(RM) -r $(JRE_COMPACT3_IMAGE_DIR) 185119815Smarcel $(JLINK_TOOL) --add-modules $(JRE_COMPACT3_MODULES_LIST) \ 186119815Smarcel $(JLINK_JRE_EXTRA_OPTS) \ 187119815Smarcel --output $(JRE_COMPACT3_IMAGE_DIR) 188119815Smarcel $(TOUCH) $@ 189119815Smarcel 190119815SmarcelTOOL_JRE_TARGETS := $(JRE_IMAGE_DIR)/$(JIMAGE_TARGET_FILE) 191119815SmarcelTOOL_JDK_TARGETS := $(JDK_IMAGE_DIR)/$(JIMAGE_TARGET_FILE) 192119815SmarcelTOOL_JRE_COMPACT1_TARGETS := $(JRE_COMPACT1_IMAGE_DIR)/$(JIMAGE_TARGET_FILE) 193119815SmarcelTOOL_JRE_COMPACT2_TARGETS := $(JRE_COMPACT2_IMAGE_DIR)/$(JIMAGE_TARGET_FILE) 194119815SmarcelTOOL_JRE_COMPACT3_TARGETS := $(JRE_COMPACT3_IMAGE_DIR)/$(JIMAGE_TARGET_FILE) 195119815Smarcel 196119815Smarcel################################################################################ 197119815Smarcel# /man dir 198119815Smarcel# 199119815Smarcel# All variables in this section are assigned with simple =, without :, to enable 200119815Smarcel# more selective overriding from the custom version of this file. 201119815Smarcel# 202119815Smarcel# Avoid evaluating this whole section on windows for speed and stability 203119815Smarcelifneq ($(OPENJDK_TARGET_OS), windows) 204119815Smarcel JRE_MAN_PAGES += \ 205119815Smarcel java.1 \ 206119815Smarcel jjs.1 \ 207119815Smarcel keytool.1 \ 208119815Smarcel orbd.1 \ 209119815Smarcel pack200.1 \ 210119815Smarcel rmid.1 \ 211119815Smarcel rmiregistry.1 \ 212119815Smarcel servertool.1 \ 213119815Smarcel tnameserv.1 \ 214119815Smarcel unpack200.1 215119815Smarcel 216119815Smarcel JDK_MAN_PAGES += \ 217119815Smarcel $(JRE_MAN_PAGES) \ 218119815Smarcel appletviewer.1 \ 219119815Smarcel idlj.1 \ 220157989Smarcel jar.1 \ 221157989Smarcel jarsigner.1 \ 222158844Sbenno javac.1 \ 223158844Sbenno javadoc.1 \ 224119815Smarcel javah.1 \ 225119815Smarcel javap.1 \ 226119815Smarcel jconsole.1 \ 227119815Smarcel jcmd.1 \ 228119815Smarcel jdb.1 \ 229119815Smarcel jdeps.1 \ 230119815Smarcel jinfo.1 \ 231119815Smarcel jmap.1 \ 232119815Smarcel jps.1 \ 233119815Smarcel jrunscript.1 \ 234119815Smarcel jstack.1 \ 235119815Smarcel jstat.1 \ 236119815Smarcel jstatd.1 \ 237119815Smarcel policytool.1 \ 238119815Smarcel rmic.1 \ 239119815Smarcel schemagen.1 \ 240166100Smarius serialver.1 \ 241157380Smarcel wsgen.1 \ 242119815Smarcel wsimport.1 \ 243254597Sian xjc.1 244119815Smarcel 245119815Smarcel # This variable is potentially overridden in the closed makefile. 246119815Smarcel MAN_SRC_BASEDIR ?= $(JDK_TOPDIR)/src 247119815Smarcel 248166100Smarius ifeq ($(OPENJDK_TARGET_OS), linux) 249119815Smarcel MAN_SRC_DIR = $(MAN_SRC_BASEDIR)/linux/doc 250119815Smarcel MAN1_SUBDIR = man 251119815Smarcel endif 252119815Smarcel ifeq ($(OPENJDK_TARGET_OS), solaris) 253119815Smarcel MAN_SRC_DIR = $(MAN_SRC_BASEDIR)/solaris/doc 254119815Smarcel MAN1_SUBDIR = sun/man/man1 255158849Sbenno endif 256119815Smarcel ifeq ($(OPENJDK_TARGET_OS), macosx) 257119815Smarcel MAN_SRC_DIR = $(MAN_SRC_BASEDIR)/bsd/doc 258119815Smarcel MAN1_SUBDIR = man 259119815Smarcel endif 260119815Smarcel 261222317Smarcel $(JRE_IMAGE_DIR)/man/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/% 262222317Smarcel $(call LogInfo, Copying $(patsubst $(OUTPUT_ROOT)/%,%,$@)) 263222317Smarcel $(install-file) 264222317Smarcel 265222317Smarcel $(JDK_IMAGE_DIR)/man/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/% 266222317Smarcel $(call LogInfo, Copying $(patsubst $(OUTPUT_ROOT)/%,%,$@)) 267119815Smarcel $(install-file) 268222317Smarcel 269119815Smarcel $(JRE_IMAGE_DIR)/man/ja_JP.UTF-8/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/ja/% 270119815Smarcel $(call LogInfo, Copying $(patsubst $(OUTPUT_ROOT)/%,%,$@)) 271119815Smarcel $(install-file) 272119815Smarcel 273119815Smarcel $(JDK_IMAGE_DIR)/man/ja_JP.UTF-8/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/ja/% 274119815Smarcel $(call LogInfo, Copying $(patsubst $(OUTPUT_ROOT)/%,%,$@)) 275119815Smarcel $(install-file) 276119815Smarcel 277119815Smarcel ifeq ($(OPENJDK_TARGET_OS), solaris) 278158844Sbenno $(JRE_IMAGE_DIR)/man/ja/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/ja/% 279119815Smarcel $(call LogInfo, Converting $(patsubst $(OUTPUT_ROOT)/%,%,$@)) 280119815Smarcel $(install-file) 281119815Smarcel 282119815Smarcel $(JDK_IMAGE_DIR)/man/ja/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/ja/% 283119815Smarcel $(call LogInfo, Converting $(patsubst $(OUTPUT_ROOT)/%,%,$@)) 284119815Smarcel $(install-file) 285179420Sbenno endif 286179420Sbenno 287179420Sbenno ifneq ($(findstring $(OPENJDK_TARGET_OS), linux macosx), ) 288179420Sbenno $(JRE_IMAGE_DIR)/man/ja: 289179420Sbenno $(call LogInfo, Creating $(patsubst $(OUTPUT_ROOT)/%,%,$@)) 290179420Sbenno $(CD) $(@D) && $(RM) ja && $(LN) -s ja_JP.UTF-8 ja 291158844Sbenno 292119815Smarcel $(JDK_IMAGE_DIR)/man/ja: 293119815Smarcel $(call LogInfo, Creating $(patsubst $(OUTPUT_ROOT)/%,%,$@)) 294119815Smarcel $(CD) $(@D) && $(RM) ja && $(LN) -s ja_JP.UTF-8 ja 295119815Smarcel endif 296119815Smarcel 297119815Smarcel ifeq ($(OPENJDK_TARGET_OS), solaris) 298119815Smarcel JRE_MAN_PAGE_LIST = $(addprefix $(JRE_IMAGE_DIR)/man/man1/, $(JRE_MAN_PAGES)) \ 299119815Smarcel $(addprefix $(JRE_IMAGE_DIR)/man/ja/man1/, $(JRE_MAN_PAGES)) \ 300119815Smarcel $(addprefix $(JRE_IMAGE_DIR)/man/ja_JP.UTF-8/man1/, $(JRE_MAN_PAGES)) \ 301119815Smarcel $(addprefix $(JRE_IMAGE_DIR)/man/ja_JP.PCK/man1/, $(JRE_MAN_PAGES)) 302119815Smarcel 303119815Smarcel JDK_MAN_PAGE_LIST = $(addprefix $(JDK_IMAGE_DIR)/man/man1/, $(JDK_MAN_PAGES)) \ 304119815Smarcel $(addprefix $(JDK_IMAGE_DIR)/man/ja/man1/, $(JDK_MAN_PAGES)) \ 305119815Smarcel $(addprefix $(JDK_IMAGE_DIR)/man/ja_JP.UTF-8/man1/, $(JDK_MAN_PAGES)) \ 306119815Smarcel $(addprefix $(JDK_IMAGE_DIR)/man/ja_JP.PCK/man1/, $(JDK_MAN_PAGES)) 307119815Smarcel endif 308119815Smarcel 309119815Smarcel ifneq ($(findstring $(OPENJDK_TARGET_OS), linux macosx), ) 310119815Smarcel JRE_MAN_PAGE_LIST = $(addprefix $(JRE_IMAGE_DIR)/man/man1/, $(JRE_MAN_PAGES)) \ 311119815Smarcel $(addprefix $(JRE_IMAGE_DIR)/man/ja_JP.UTF-8/man1/, $(JRE_MAN_PAGES)) \ 312119815Smarcel $(JRE_IMAGE_DIR)/man/ja 313119815Smarcel 314119815Smarcel JDK_MAN_PAGE_LIST = $(addprefix $(JDK_IMAGE_DIR)/man/man1/, $(JDK_MAN_PAGES)) \ 315119815Smarcel $(addprefix $(JDK_IMAGE_DIR)/man/ja_JP.UTF-8/man1/, $(JDK_MAN_PAGES)) \ 316119815Smarcel $(JDK_IMAGE_DIR)/man/ja 317168285Smarcel endif 318119815Smarcel 319168285Smarcel JRE_TARGETS += $(JRE_MAN_PAGE_LIST) 320119815Smarcel JDK_TARGETS += $(JDK_MAN_PAGE_LIST) 321168285Smarcelendif # Windows 322119815Smarcel 323127742Smarcel################################################################################ 324168285Smarcel# doc files 325119815Smarcel 326168285SmarcelJRE_DOC_FILES ?= LICENSE ASSEMBLY_EXCEPTION THIRD_PARTY_README 327119815SmarcelJDK_DOC_FILES ?= LICENSE ASSEMBLY_EXCEPTION THIRD_PARTY_README 328119815SmarcelJRE_DOC_LOCATION ?= $(JDK_TOPDIR) 329119815SmarcelJDK_DOC_LOCATION ?= $(JDK_TOPDIR) 330166100Smarius 331119815SmarcelJRE_DOC_TARGETS := $(addprefix $(JRE_IMAGE_DIR)/, $(JRE_DOC_FILES)) 332119815SmarcelJDK_DOC_TARGETS := $(addprefix $(JDK_IMAGE_DIR)/, $(JDK_DOC_FILES)) 333166100Smarius 334119815Smarcel# Processing license files from source area to image area 335119815Smarcel# These are modified to have the platform specific EOL chars. 336119815Smarceldefine process-doc-file 337157380Smarcel $(call LogInfo, Processing $(patsubst $(OUTPUT_ROOT)/%,%,$@)) 338119815Smarcel $(MKDIR) -p $(@D) 339168285Smarcel $(RM) $@ 340119815Smarcel LC_ALL=C $(SED) 's/$$//g' $< > $@ 341157380Smarcel $(CHMOD) 444 $@ 342157380Smarcelendef 343157380Smarcel 344157380Smarcel$(JRE_IMAGE_DIR)/%: $(JRE_DOC_LOCATION)/% 345168285Smarcel $(process-doc-file) 346157380Smarcel 347157380Smarcel$(JDK_IMAGE_DIR)/%: $(JDK_DOC_LOCATION)/% 348157380Smarcel $(process-doc-file) 349157380Smarcel 350157380SmarcelJRE_TARGETS += $(JRE_DOC_TARGETS) 351157380SmarcelJDK_TARGETS += $(JDK_DOC_TARGETS) 352157380Smarcel 353157380Smarcel################################################################################ 354119815Smarcel# src.zip 355119815Smarcel 356119815Smarcel$(JDK_IMAGE_DIR)/src.zip: $(SUPPORT_OUTPUTDIR)/src.zip 357119815Smarcel $(call LogInfo, Copying $(patsubst $(OUTPUT_ROOT)/%,%,$@)) 358119815Smarcel $(install-file) 359119815Smarcel 360119815SmarcelJDK_TARGETS += $(JDK_IMAGE_DIR)/src.zip 361119815Smarcel 362119815Smarcel################################################################################ 363119815Smarcel# /demo dir 364119815Smarcel# Avoid doing the expensive find unless called with "jdk" as target. 365119815Smarcelifneq ($(filter jdk, $(MAKECMDGOALS)), ) 366119815Smarcel 367119815Smarcel DEMO_FILES := \ 368262649Simp $(if $(wildcard $(SUPPORT_OUTPUTDIR)/demos/image), \ 369262649Simp $(call DoubleDollar, \ 370119815Smarcel $(shell $(FIND) $(SUPPORT_OUTPUTDIR)/demos/image \ 371119815Smarcel -type f -a ! \( -name "_the*" -o -name "javac_state" \) )) \ 372119815Smarcel ) 373119815Smarcel 374168281Smarcel ifeq ($(ZIP_EXTERNAL_DEBUG_SYMBOLS), true) 375119815Smarcel ifeq ($(OPENJDK_TARGET_OS), macosx) 376119815Smarcel DEMO_FILES := $(call not-containing, .dSYM, $(DEMO_FILES)) 377168281Smarcel else 378119815Smarcel DEMO_FILES := $(filter-out %.debuginfo %.pdb %.map, $(DEMO_FILES)) 379119815Smarcel endif 380119815Smarcel endif 381119815Smarcel 382119815Smarcel $(eval $(call SetupCopyFiles, JDK_COPY_DEMOS, \ 383119815Smarcel SRC := $(SUPPORT_OUTPUTDIR)/demos/image, \ 384119815Smarcel DEST := $(JDK_IMAGE_DIR)/demo, \ 385119815Smarcel FILES := $(DEMO_FILES), \ 386119815Smarcel )) 387119815Smarcel 388119815Smarcel JDK_TARGETS += $(JDK_COPY_DEMOS) 389254597Sianendif 390119815Smarcel 391119815Smarcel################################################################################ 392119815Smarcel# /sample dir 393119815Smarcel 394177117Ssam$(eval $(call SetupCopyFiles, COPY_SAMPLES, \ 395247519Sganbold SRC := $(SUPPORT_OUTPUTDIR)/sample/image, \ 396247519Sganbold DEST := $(JDK_IMAGE_DIR)/sample, \ 397247519Sganbold FILES := $(if $(wildcard $(SUPPORT_OUTPUTDIR)/sample/image), \ 398247519Sganbold $(call CacheFind,$(SUPPORT_OUTPUTDIR)/sample/image)))) 399119815Smarcel 400247519SganboldJDK_TARGETS += $(COPY_SAMPLES) 401247519Sganbold 402247519Sganbold################################################################################ 403247519Sganbold# jrt-fs.jar 404247519Sganbold 405247519Sganbold$(eval $(call SetupCopyFiles,COPY_JRTFS_JAR, \ 406247519Sganbold SRC := $(SUPPORT_OUTPUTDIR), \ 407247519Sganbold DEST := $(JDK_IMAGE_DIR), \ 408247519Sganbold FILES := $(SUPPORT_OUTPUTDIR)/jrt-fs.jar)) 409247519Sganbold 410247519SganboldJDK_TARGETS += $(COPY_JRTFS_JAR) 411247519Sganbold 412247519Sganbold################################################################################ 413247519Sganbold# Code coverage data files 414119815Smarcel 415119815Smarcelifeq ($(GCOV_ENABLED), true) 416119815Smarcel 417177117Ssam GCOV_FIND_EXPR := -type f -name "*.gcno" 418177117Ssam 419177117Ssam $(eval $(call SetupCopyFiles,COPY_HOTSPOT_GCOV_GCNO, \ 420177117Ssam SRC := $(OUTPUT_ROOT), \ 421177117Ssam DEST := $(SYMBOLS_IMAGE_DIR)/gcov, \ 422177117Ssam FILES := $(shell $(FIND) $(HOTSPOT_OUTPUTDIR) $(GCOV_FIND_EXPR)))) 423177117Ssam 424177117Ssam SYMBOLS_TARGETS += $(COPY_HOTSPOT_GCOV_GCNO) 425177117Ssam 426177117Ssam $(eval $(call SetupCopyFiles,COPY_JDK_GCOV_GCNO, \ 427177117Ssam SRC := $(OUTPUT_ROOT), \ 428177117Ssam DEST := $(SYMBOLS_IMAGE_DIR)/gcov, \ 429177117Ssam FILES := $(shell $(FIND) $(SUPPORT_OUTPUTDIR)/native $(GCOV_FIND_EXPR)))) 430179420Sbenno 431179420Sbenno SYMBOLS_TARGETS += $(COPY_JDK_GCOV_GCNO) 432179420Sbenno 433179420Sbennoendif 434179420Sbenno 435179420Sbenno################################################################################ 436179420Sbenno# Debug symbols 437179420Sbenno# Since debug symbols are not included in the jmod files, they need to be copied 438179420Sbenno# in manually after generating the images. 439179420Sbenno 440179420SbennoALL_JDK_MODULES := $(JDK_MODULES) 441179420SbennoALL_JRE_MODULES := $(sort $(JRE_MODULES), $(foreach m, $(JRE_MODULES), \ 442179420Sbenno $(call FindTransitiveDepsForModule, $m))) 443119815Smarcel 444119815Smarcelifeq ($(OPENJDK_TARGET_OS), windows) 445119815Smarcel LIBS_TARGET_SUBDIR := bin 446119815Smarcelelse 447119815Smarcel LIBS_TARGET_SUBDIR := lib 448131043Sphkendif 449119815Smarcel 450131043Sphk# Param 1 - dir to find debuginfo files in 451119815SmarcelFindDebuginfoFiles = \ 452119815Smarcel $(wildcard $(addprefix $1/*, $(DEBUGINFO_SUFFIXES)) \ 453119815Smarcel $(addprefix $1/*/*, $(DEBUGINFO_SUFFIXES)) \ 454179420Sbenno $(addprefix $1/*/*/*, $(DEBUGINFO_SUFFIXES))) 455179420Sbenno 456119815Smarcel# Pick the correct debug info files to copy, either zipped or not. 457119815Smarcelifeq ($(ZIP_EXTERNAL_DEBUG_SYMBOLS), true) 458255031Smarcel DEBUGINFO_SUFFIXES += .diz 459255031Smarcelelse 460255031Smarcel DEBUGINFO_SUFFIXES := .debuginfo .pdb .map 461255031Smarcel # On Macosx, if debug symbols have not been zipped, find all files inside *.dSYM 462255031Smarcel # dirs. 463255031Smarcel ifeq ($(OPENJDK_TARGET_OS), macosx) 464255031Smarcel $(eval $(call FillCacheFind, \ 465255031Smarcel $(SUPPORT_OUTPUTDIR)/modules_cmds $(SUPPORT_OUTPUTDIR)/modules_libs)) 466255031Smarcel FindDebuginfoFiles = \ 467255031Smarcel $(if $(wildcard $1), $(call containing, .dSYM/, $(call CacheFind, $1))) 468255031Smarcel endif 469255031Smarcelendif 470255074Smarcel 471119815Smarcel# Param 1 - either JDK or JRE 472119815SmarcelSetupCopyDebuginfo = \ 473119815Smarcel $(foreach m, $(ALL_$1_MODULES), \ 474254597Sian $(eval $(call SetupCopyFiles, COPY_$1_LIBS_DEBUGINFO_$m, \ 475119815Smarcel SRC := $(SUPPORT_OUTPUTDIR)/modules_libs/$m, \ 476119815Smarcel DEST := $($1_IMAGE_DIR)/$(LIBS_TARGET_SUBDIR), \ 477179420Sbenno FILES := $(call FindDebuginfoFiles, \ 478119815Smarcel $(SUPPORT_OUTPUTDIR)/modules_libs/$m), \ 479158844Sbenno )) \ 480119815Smarcel $(eval $1_TARGETS += $$(COPY_$1_LIBS_DEBUGINFO_$m)) \ 481179420Sbenno ) 482119815Smarcel 483179420Sbenno# No space before argument to avoid having to put $(strip ) everywhere in 484158844Sbenno# implementation above. 485119815Smarcel$(call SetupCopyDebuginfo,JDK) 486119815Smarcel$(call SetupCopyDebuginfo,JRE) 487119815Smarcel 488119815Smarcel################################################################################ 489119815Smarcel 490254597Sian# Include custom post hook here to make it possible to augment the target lists 491119815Smarcel# before actual target prerequisites are declared. 492119815Smarcel$(eval $(call IncludeCustomExtension, , Images-post.gmk)) 493119815Smarcel 494119815Smarcel################################################################################ 495120143Smarcel 496119815Smarcel$(JRE_TARGETS): $(TOOL_JRE_TARGETS) 497119815Smarcel$(JDK_TARGETS): $(TOOL_JDK_TARGETS) 498157300Smarcel 499157418Smarceljdk: $(JDK_TARGETS) 500119815Smarceljre: $(JRE_TARGETS) 501119815Smarcelsymbols: $(SYMBOLS_TARGETS) 502119815Smarcel 503120143Smarcelall: jdk jre symbols 504120143Smarcel 505120143Smarcel$(JRE_COMPACT1_TARGETS): $(TOOL_JRE_COMPACT1_TARGETS) 506157300Smarcel$(JRE_COMPACT2_TARGETS): $(TOOL_JRE_COMPACT2_TARGETS) 507120143Smarcel$(JRE_COMPACT3_TARGETS): $(TOOL_JRE_COMPACT3_TARGETS) 508119815Smarcel 509119815Smarcelprofiles: $(TOOL_JRE_COMPACT1_TARGETS) \ 510254597Sian $(TOOL_JRE_COMPACT2_TARGETS) \ 511119815Smarcel $(TOOL_JRE_COMPACT3_TARGETS) \ 512119815Smarcel $(JRE_COMPACT1_TARGETS) \ 513119815Smarcel $(JRE_COMPACT2_TARGETS) \ 514119815Smarcel $(JRE_COMPACT3_TARGETS) 515119815Smarcel 516119815Smarcel.PHONY: default all jdk jre symbols profiles 517119815Smarcel