Images.gmk revision 1548:93d374b1a4b5
1168404Spjd# 2168404Spjd# Copyright (c) 2014, 2015 Oracle and/or its affiliates. All rights reserved. 3168404Spjd# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4168404Spjd# 5168404Spjd# This code is free software; you can redistribute it and/or modify it 6168404Spjd# under the terms of the GNU General Public License version 2 only, as 7168404Spjd# published by the Free Software Foundation. Oracle designates this 8168404Spjd# particular file as subject to the "Classpath" exception as provided 9168404Spjd# by Oracle in the LICENSE file that accompanied this code. 10168404Spjd# 11168404Spjd# This code is distributed in the hope that it will be useful, but WITHOUT 12168404Spjd# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13168404Spjd# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14168404Spjd# version 2 for more details (a copy is included in the LICENSE file that 15168404Spjd# accompanied this code). 16168404Spjd# 17168404Spjd# You should have received a copy of the GNU General Public License version 18168404Spjd# 2 along with this work; if not, write to the Free Software Foundation, 19168404Spjd# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20168404Spjd# 21168404Spjd# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22219089Spjd# or visit www.oracle.com if you need additional information or have any 23168404Spjd# questions. 24221263Smm# 25221263Smm 26221263Smmdefault: all 27168404Spjd 28168404Spjdinclude $(SPEC) 29168404Spjdinclude MakeBase.gmk 30168404Spjd 31168404SpjdTOOL_TARGETS := 32168404SpjdJDK_TARGETS := 33168404SpjdJRE_TARGETS := 34168404Spjd 35168404Spjd# Hook to include the corresponding custom file, if present. 36168404Spjd$(eval $(call IncludeCustomExtension, , Images-pre.gmk)) 37168404Spjd 38219089Spjd############################################################################ 39168404Spjd 40168404SpjdMAIN_MODULES += java.se java.smartcardio jdk.httpserver jdk.sctp \ 41168404Spjd jdk.security.auth jdk.security.jgss jdk.pack200 jdk.xml.dom \ 42168404Spjd jdk.accessibility 43168404Spjd 44219089Spjd# providers 45219089SpjdPROVIDER_MODULES += jdk.charsets jdk.crypto.ec jdk.crypto.pkcs11 jdk.jvmstat jdk.localedata \ 46219089Spjd jdk.naming.dns jdk.naming.rmi jdk.scripting.nashorn jdk.zipfs 47219089Spjd 48219089Spjd# tools 49168404SpjdTOOLS_MODULES += jdk.attach jdk.compiler jdk.dev jdk.javadoc jdk.jcmd jdk.jconsole \ 50185029Spjd jdk.hotspot.agent jdk.hprof.agent jdk.jartool jdk.jdeps jdk.jdi jdk.jdwp.agent \ 51185029Spjd jdk.policytool jdk.rmic jdk.xml.bind jdk.xml.ws 52219089Spjd 53219089Spjdifeq ($(OPENJDK_TARGET_OS), windows) 54219089Spjd PROVIDER_MODULES += jdk.crypto.mscapi 55219089Spjdendif 56219089Spjd 57219089Spjdifeq ($(OPENJDK_TARGET_OS), solaris) 58219089Spjd PROVIDER_MODULES += jdk.crypto.ucrypto 59219089Spjdendif 60219089Spjd 61219089Spjdifeq ($(OPENJDK_TARGET_OS), macosx) 62219089Spjd MAIN_MODULES += jdk.deploy.osx 63219089Spjdendif 64168404Spjd 65168404SpjdJRE_MODULES := $(MAIN_MODULES) $(PROVIDER_MODULES) 66168404SpjdJDK_MODULES := $(JRE_MODULES) $(TOOLS_MODULES) 67168404Spjd 68185029Spjd# compact3 builds have additional modules 69168404SpjdJDK_COMPACT3_MODULES := java.compact3 java.smartcardio jdk.httpserver jdk.naming.dns \ 70168404Spjd jdk.naming.rmi jdk.sctp jdk.security.auth jdk.management 71219089Spjd 72168404Spjd# Replacing double-comma with a single comma is to workaround the issue 73219089Spjd# with some version of make on windows that doesn't substitute spaces 74168404Spjd# with one comma properly as with make 4.0 75168404Spjddefine SubstComma 76168404Spjd $(subst $(COMMA)$(COMMA),$(COMMA),$(subst $(SPACE),$(COMMA),$(strip $1))) 77168404Spjdendef 78168404SpjdJRE_MODULES_LIST := $(call SubstComma, $(JRE_MODULES)) 79168404SpjdJDK_MODULES_LIST := $(call SubstComma, $(JDK_MODULES)) 80168404Spjd 81168404Spjd################################################################################ 82168404Spjd 83168404SpjdJRE_SORTED_MODULES := $(SUPPORT_OUTPUTDIR)/jre-sorted-modules 84168404SpjdJDK_SORTED_MODULES := $(SUPPORT_OUTPUTDIR)/jdk-sorted-modules 85168404SpjdJRE_COMPACT1_SORTED_MODULES := $(SUPPORT_OUTPUTDIR)/compact1-sorted-modules 86168404SpjdJRE_COMPACT2_SORTED_MODULES := $(SUPPORT_OUTPUTDIR)/compact2-sorted-modules 87168404SpjdJRE_COMPACT3_SORTED_MODULES := $(SUPPORT_OUTPUTDIR)/compact3-sorted-modules 88168404Spjd 89169170Spjd 90168404SpjdMODULES_CMDS := $(SUPPORT_OUTPUTDIR)/modules_cmds-stripped 91168404SpjdMODULES_LIBS := $(SUPPORT_OUTPUTDIR)/modules_libs-stripped 92168404SpjdMODULES_CONF := $(SUPPORT_OUTPUTDIR)/modules_conf 93168404Spjd 94168404SpjdJIMAGE_TOOL := $(JAVA_SMALL) \ 95168404Spjd -Xbootclasspath/p:$(BUILDTOOLS_OUTPUTDIR)/interim_jimage_classes \ 96168404Spjd -cp $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes build.tools.module.ImageBuilder \ 97168404Spjd --cmds $(MODULES_CMDS) \ 98168404Spjd --libs $(MODULES_LIBS) \ 99168404Spjd --configs $(MODULES_CONF) \ 100168404Spjd --classes $(JDK_OUTPUTDIR)/modules \ 101185029Spjd --endian $(OPENJDK_TARGET_CPU_ENDIAN) \ 102168404Spjd # 103168404Spjd 104168404SpjdMODULES_XML += $(SRC_ROOT)/modules.xml 105168404SpjdDEPENDENCIES := $(call CacheFind, \ 106168404Spjd $(SUPPORT_OUTPUTDIR)/modules_cmds \ 107168404Spjd $(SUPPORT_OUTPUTDIR)/modules_libs) \ 108168404Spjd $(wildcard $(JDK_OUTPUTDIR)/modules/*/_*) \ 109219089Spjd $(MODULES_XML) 110219089Spjd # 111219089Spjd 112219089Spjd# Use this file inside the image as target for make rule 113219089SpjdJIMAGE_TARGET_FILE := bin/java$(EXE_SUFFIX) 114219089Spjd 115219089Spjd$(JDK_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(DEPENDENCIES) \ 116219089Spjd $(call DependOnVariable, JDK_MODULES_LIST) 117219089Spjd $(ECHO) Creating jdk jimage 118219089Spjd $(RM) -r $(JDK_IMAGE_DIR) $(JDK_SORTED_MODULES) 119219089Spjd $(JIMAGE_TOOL) --mods $(JDK_MODULES_LIST) --output $(JDK_IMAGE_DIR) \ 120219089Spjd $(MODULES_XML) > $(JDK_SORTED_MODULES) 121219089Spjd $(TOUCH) $@ 122219089Spjd 123219089Spjd$(JRE_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(DEPENDENCIES) \ 124219089Spjd $(call DependOnVariable, JRE_MODULES_LIST) 125219089Spjd $(ECHO) Creating jre jimage 126219089Spjd $(RM) -r $(JRE_IMAGE_DIR) $(JRE_SORTED_MODULES) 127219089Spjd $(JIMAGE_TOOL) --mods $(JRE_MODULES_LIST) --output $(JRE_IMAGE_DIR) \ 128219089Spjd $(MODULES_XML) > $(JRE_SORTED_MODULES) 129219089Spjd $(TOUCH) $@ 130219089Spjd 131219089SpjdJRE_COMPACT1_IMAGE_DIR := $(JRE_IMAGE_DIR)-compact1 132219089SpjdJRE_COMPACT2_IMAGE_DIR := $(JRE_IMAGE_DIR)-compact2 133219089SpjdJRE_COMPACT3_IMAGE_DIR := $(JRE_IMAGE_DIR)-compact3 134219089Spjd 135219089SpjdCOMPACT_EXTRA_MODULES := jdk.localedata jdk.crypto.pkcs11 jdk.crypto.ec 136219089Spjd 137219089Spjd$(JRE_COMPACT1_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(DEPENDENCIES) \ 138219089Spjd $(call DependOnVariable, JRE_COMPACT1_MODULES_LIST) 139219089Spjd $(ECHO) Creating jre compact1 jimage 140219089Spjd $(RM) -r $(JRE_COMPACT1_IMAGE_DIR) $(JRE_COMPACT1_SORTED_MODULES) 141219089Spjd $(JIMAGE_TOOL) \ 142219089Spjd --mods $(call SubstComma, java.compact1 $(COMPACT_EXTRA_MODULES)) \ 143219089Spjd --output $(JRE_COMPACT1_IMAGE_DIR) \ 144219089Spjd $(MODULES_XML) > $(JRE_COMPACT1_SORTED_MODULES) 145219089Spjd $(TOUCH) $@ 146219089Spjd 147219089Spjd$(JRE_COMPACT2_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(DEPENDENCIES) \ 148219089Spjd $(call DependOnVariable, JRE_COMPACT2_MODULES_LIST) 149168404Spjd $(ECHO) Creating jre compact2 jimage 150168404Spjd $(RM) -r $(JRE_COMPACT2_IMAGE_DIR) $(JRE_COMPACT2_SORTED_MODULES) 151219089Spjd $(JIMAGE_TOOL) \ 152219089Spjd --mods $(call SubstComma, java.compact2 $(COMPACT_EXTRA_MODULES)) \ 153219089Spjd --output $(JRE_COMPACT2_IMAGE_DIR) \ 154219089Spjd $(MODULES_XML) > $(JRE_COMPACT2_SORTED_MODULES) 155219089Spjd $(TOUCH) $@ 156219089Spjd 157219089Spjd$(JRE_COMPACT3_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(DEPENDENCIES) \ 158219089Spjd $(call DependOnVariable, JRE_COMPACT3_MODULES_LIST) 159219089Spjd $(ECHO) Creating jre compact3 jimage 160219089Spjd $(RM) -r $(JRE_COMPACT3_IMAGE_DIR) $(JRE_COMPACT3_SORTED_MODULES) 161168404Spjd $(JIMAGE_TOOL) \ 162168404Spjd --mods $(call SubstComma, $(JDK_COMPACT3_MODULES) $(COMPACT_EXTRA_MODULES)) \ 163168404Spjd --output $(JRE_COMPACT3_IMAGE_DIR) \ 164168404Spjd $(MODULES_XML) > $(JRE_COMPACT3_SORTED_MODULES) 165168404Spjd $(TOUCH) $@ 166168404Spjd 167219089SpjdTOOL_JRE_TARGETS := $(JRE_IMAGE_DIR)/$(JIMAGE_TARGET_FILE) 168168404SpjdTOOL_JDK_TARGETS := $(JDK_IMAGE_DIR)/$(JIMAGE_TARGET_FILE) 169219089SpjdTOOL_JRE_COMPACT1_TARGETS := $(JRE_COMPACT1_IMAGE_DIR)/$(JIMAGE_TARGET_FILE) 170219089SpjdTOOL_JRE_COMPACT2_TARGETS := $(JRE_COMPACT2_IMAGE_DIR)/$(JIMAGE_TARGET_FILE) 171219089SpjdTOOL_JRE_COMPACT3_TARGETS := $(JRE_COMPACT3_IMAGE_DIR)/$(JIMAGE_TARGET_FILE) 172219089Spjd 173219089Spjd################################################################################ 174219089Spjd# /man dir 175219089Spjd# 176219089Spjd# All variables in this section are assigned with simple =, without :, to enable 177219089Spjd# more selective overriding from the custom version of this file. 178219089Spjd# 179219089Spjd# Avoid evaluating this whole section on windows for speed and stability 180219089Spjdifneq ($(OPENJDK_TARGET_OS), windows) 181219089Spjd JRE_MAN_PAGES += \ 182219089Spjd java.1 \ 183168404Spjd jjs.1 \ 184168404Spjd keytool.1 \ 185168404Spjd orbd.1 \ 186219089Spjd pack200.1 \ 187219089Spjd rmid.1 \ 188219089Spjd rmiregistry.1 \ 189219089Spjd servertool.1 \ 190219089Spjd tnameserv.1 \ 191219089Spjd unpack200.1 192219089Spjd 193219089Spjd ifndef OPENJDK 194219089Spjd ifneq ($(OPENJDK_TARGET_OS), solaris) 195219089Spjd JRE_MAN_PAGES += javaws.1 196219089Spjd endif 197219089Spjd endif 198168404Spjd 199219089Spjd JDK_MAN_PAGES += \ 200219089Spjd $(JRE_MAN_PAGES) \ 201219089Spjd appletviewer.1 \ 202219089Spjd idlj.1 \ 203219089Spjd jar.1 \ 204219089Spjd jarsigner.1 \ 205219089Spjd javac.1 \ 206219089Spjd javadoc.1 \ 207219089Spjd javah.1 \ 208219089Spjd javap.1 \ 209219089Spjd jconsole.1 \ 210219089Spjd jcmd.1 \ 211219089Spjd jdb.1 \ 212219089Spjd jdeps.1 \ 213219089Spjd jinfo.1 \ 214219089Spjd jmap.1 \ 215219089Spjd jps.1 \ 216219089Spjd jrunscript.1 \ 217219089Spjd jsadebugd.1 \ 218219089Spjd jstack.1 \ 219219089Spjd jstat.1 \ 220219089Spjd jstatd.1 \ 221219089Spjd policytool.1 \ 222219089Spjd rmic.1 \ 223219089Spjd schemagen.1 \ 224168404Spjd serialver.1 \ 225168404Spjd wsgen.1 \ 226168404Spjd wsimport.1 \ 227168404Spjd xjc.1 228168404Spjd 229168404Spjd # This variable is potentially overridden in the closed makefile. 230168404Spjd MAN_SRC_BASEDIR ?= $(JDK_TOPDIR)/src 231168404Spjd 232168404Spjd ifeq ($(OPENJDK_TARGET_OS), linux) 233168404Spjd MAN_SRC_DIR = $(MAN_SRC_BASEDIR)/linux/doc 234219089Spjd MAN1_SUBDIR = man 235219089Spjd endif 236219089Spjd ifeq ($(OPENJDK_TARGET_OS), solaris) 237219089Spjd MAN_SRC_DIR = $(MAN_SRC_BASEDIR)/solaris/doc 238219089Spjd MAN1_SUBDIR = sun/man/man1 239219089Spjd endif 240219089Spjd ifeq ($(OPENJDK_TARGET_OS), macosx) 241219089Spjd MAN_SRC_DIR = $(MAN_SRC_BASEDIR)/bsd/doc 242219089Spjd MAN1_SUBDIR = man 243219089Spjd endif 244219089Spjd 245219089Spjd $(JRE_IMAGE_DIR)/man/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/% 246219089Spjd $(ECHO) $(LOG_INFO) Copying $(patsubst $(OUTPUT_ROOT)/%,%,$@) 247219089Spjd $(install-file) 248219089Spjd 249219089Spjd $(JDK_IMAGE_DIR)/man/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/% 250219089Spjd $(ECHO) $(LOG_INFO) Copying $(patsubst $(OUTPUT_ROOT)/%,%,$@) 251219089Spjd $(install-file) 252219089Spjd 253219089Spjd $(JRE_IMAGE_DIR)/man/ja_JP.UTF-8/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/ja/% 254219089Spjd $(ECHO) $(LOG_INFO) Copying $(patsubst $(OUTPUT_ROOT)/%,%,$@) 255219089Spjd $(install-file) 256219089Spjd 257219089Spjd $(JDK_IMAGE_DIR)/man/ja_JP.UTF-8/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/ja/% 258219089Spjd $(ECHO) $(LOG_INFO) Copying $(patsubst $(OUTPUT_ROOT)/%,%,$@) 259219089Spjd $(install-file) 260219089Spjd 261219089Spjd ifeq ($(OPENJDK_TARGET_OS), solaris) 262219089Spjd $(JRE_IMAGE_DIR)/man/ja/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/ja/% 263219089Spjd $(ECHO) $(LOG_INFO) Converting $(patsubst $(OUTPUT_ROOT)/%,%,$@) 264219089Spjd $(install-file) 265219089Spjd 266168404Spjd $(JDK_IMAGE_DIR)/man/ja/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/ja/% 267168404Spjd $(ECHO) $(LOG_INFO) Converting $(patsubst $(OUTPUT_ROOT)/%,%,$@) 268168404Spjd $(install-file) 269219089Spjd endif 270219089Spjd 271219089Spjd ifneq ($(findstring $(OPENJDK_TARGET_OS), linux macosx), ) 272168404Spjd $(JRE_IMAGE_DIR)/man/ja: 273219089Spjd $(ECHO) $(LOG_INFO) Creating $(patsubst $(OUTPUT_ROOT)/%,%,$@) 274219089Spjd $(CD) $(@D) && $(RM) ja && $(LN) -s ja_JP.UTF-8 ja 275168404Spjd 276168404Spjd $(JDK_IMAGE_DIR)/man/ja: 277168404Spjd $(ECHO) $(LOG_INFO) Creating $(patsubst $(OUTPUT_ROOT)/%,%,$@) 278168404Spjd $(CD) $(@D) && $(RM) ja && $(LN) -s ja_JP.UTF-8 ja 279168404Spjd endif 280168404Spjd 281219089Spjd ifeq ($(OPENJDK_TARGET_OS), solaris) 282219089Spjd JRE_MAN_PAGE_LIST = $(addprefix $(JRE_IMAGE_DIR)/man/man1/, $(JRE_MAN_PAGES)) \ 283168404Spjd $(addprefix $(JRE_IMAGE_DIR)/man/ja/man1/, $(JRE_MAN_PAGES)) \ 284168404Spjd $(addprefix $(JRE_IMAGE_DIR)/man/ja_JP.UTF-8/man1/, $(JRE_MAN_PAGES)) \ 285168404Spjd $(addprefix $(JRE_IMAGE_DIR)/man/ja_JP.PCK/man1/, $(JRE_MAN_PAGES)) 286219089Spjd 287219089Spjd JDK_MAN_PAGE_LIST = $(addprefix $(JDK_IMAGE_DIR)/man/man1/, $(JDK_MAN_PAGES)) \ 288219089Spjd $(addprefix $(JDK_IMAGE_DIR)/man/ja/man1/, $(JDK_MAN_PAGES)) \ 289219089Spjd $(addprefix $(JDK_IMAGE_DIR)/man/ja_JP.UTF-8/man1/, $(JDK_MAN_PAGES)) \ 290219089Spjd $(addprefix $(JDK_IMAGE_DIR)/man/ja_JP.PCK/man1/, $(JDK_MAN_PAGES)) 291219089Spjd endif 292168404Spjd 293168404Spjd ifneq ($(findstring $(OPENJDK_TARGET_OS), linux macosx), ) 294168404Spjd JRE_MAN_PAGE_LIST = $(addprefix $(JRE_IMAGE_DIR)/man/man1/, $(JRE_MAN_PAGES)) \ 295219089Spjd $(addprefix $(JRE_IMAGE_DIR)/man/ja_JP.UTF-8/man1/, $(JRE_MAN_PAGES)) \ 296219089Spjd $(JRE_IMAGE_DIR)/man/ja 297219089Spjd 298219089Spjd JDK_MAN_PAGE_LIST = $(addprefix $(JDK_IMAGE_DIR)/man/man1/, $(JDK_MAN_PAGES)) \ 299219089Spjd $(addprefix $(JDK_IMAGE_DIR)/man/ja_JP.UTF-8/man1/, $(JDK_MAN_PAGES)) \ 300219089Spjd $(JDK_IMAGE_DIR)/man/ja 301219089Spjd endif 302219089Spjd 303168404Spjd JRE_TARGETS += $(JRE_MAN_PAGE_LIST) 304219089Spjd JDK_TARGETS += $(JDK_MAN_PAGE_LIST) 305168404Spjdendif # Windows 306168404Spjd 307219089Spjd################################################################################ 308168404Spjd# /include dir 309168404Spjd 310168404Spjd$(eval $(call SetupCopyFiles,COPY_INCLUDES, \ 311168404Spjd SRC := $(JDK_OUTPUTDIR)/include, \ 312168404Spjd DEST := $(JDK_IMAGE_DIR)/include, \ 313168404Spjd FILES := $(call CacheFind,$(JDK_OUTPUTDIR)/include))) 314168404Spjd 315168404SpjdJDK_TARGETS += $(COPY_INCLUDES) 316168404Spjd 317168404Spjd################################################################################ 318168404Spjd# doc files 319168404Spjd 320168404SpjdJRE_DOC_FILES ?= LICENSE ASSEMBLY_EXCEPTION THIRD_PARTY_README 321168404SpjdJDK_DOC_FILES ?= LICENSE ASSEMBLY_EXCEPTION THIRD_PARTY_README 322168404SpjdJRE_DOC_LOCATION ?= $(JDK_TOPDIR) 323219089SpjdJDK_DOC_LOCATION ?= $(JDK_TOPDIR) 324168404Spjd 325219089SpjdJRE_DOC_TARGETS := $(addprefix $(JRE_IMAGE_DIR)/, $(JRE_DOC_FILES)) 326219089SpjdJDK_DOC_TARGETS := $(addprefix $(JDK_IMAGE_DIR)/, $(JDK_DOC_FILES)) 327168404Spjd 328168404Spjd# Processing license files from source area to image area 329168404Spjd# These are modified to have the platform specific EOL chars. 330168404Spjddefine process-doc-file 331168404Spjd $(ECHO) $(LOG_INFO) Processing $(patsubst $(OUTPUT_ROOT)/%,%,$@) 332185029Spjd $(MKDIR) -p $(@D) 333168404Spjd $(RM) $@ 334168404Spjd LC_ALL=C $(SED) 's/$$//g' $< > $@ 335219089Spjd $(CHMOD) 444 $@ 336219089Spjdendef 337209962Smm 338219089Spjd$(JRE_IMAGE_DIR)/%: $(JRE_DOC_LOCATION)/% 339208047Smm $(process-doc-file) 340208047Smm 341168404Spjd$(JDK_IMAGE_DIR)/%: $(JDK_DOC_LOCATION)/% 342168404Spjd $(process-doc-file) 343208047Smm 344208047SmmJRE_TARGETS += $(JRE_DOC_TARGETS) 345208047SmmJDK_TARGETS += $(JDK_DOC_TARGETS) 346208047Smm 347208047Smm################################################################################ 348208047Smm# Release file 349168404Spjd 350168404SpjdJRE_INFO_FILE := $(JRE_IMAGE_DIR)/release 351208047SmmJDK_INFO_FILE := $(JDK_IMAGE_DIR)/release 352208047SmmJRE_COMPACT1_INFO_FILE := $(JRE_COMPACT1_IMAGE_DIR)/release 353168404SpjdJRE_COMPACT2_INFO_FILE := $(JRE_COMPACT2_IMAGE_DIR)/release 354219089SpjdJRE_COMPACT3_INFO_FILE := $(JRE_COMPACT3_IMAGE_DIR)/release 355208047Smm 356208047Smm# Common way to emit a line into the release or info file 357208047Smmdefine info-file-item # name value 358208047Smm $(PRINTF) '%s="%s"\n' $1 $2 >> $@ 359208047Smmendef 360168404Spjd 361208047Smm# Param 1 - The file containing the MODULES list 362208047Smmdefine create-info-file 363168404Spjd $(call info-file-item, "JAVA_VERSION", "$(JDK_VERSION)") 364168404Spjd $(call info-file-item, "OS_NAME", "$(REQUIRED_OS_NAME)") 365168404Spjd $(call info-file-item, "OS_VERSION", "$(REQUIRED_OS_VERSION)") 366168404Spjd $(call info-file-item, "OS_ARCH", "$(OPENJDK_TARGET_CPU_LEGACY)") 367208047Smm $(if $(JDK_ARCH_ABI_PROP_NAME), \ 368219089Spjd $(call info-file-item, "SUN_ARCH_ABI", "$(JDK_ARCH_ABI_PROP_NAME)")) 369208047Smm $(call info-file-item, "SOURCE", "$(ALL_SOURCE_TIPS)") 370208047Smm $(call info-file-item, "MODULES", "`$(CAT) $1`") 371168404Spjdendef 372168404Spjd 373208047Smm# Param 1 - The file containing the MODULES list 374208047Smmdefine prepare-info-file 375208047Smm $(ECHO) $(LOG_INFO) Generating $(patsubst $(OUTPUT_ROOT)/%,%,$@) 376208047Smm $(MKDIR) -p $(@D) 377168404Spjd $(RM) $@ 378219089Spjdendef 379219089Spjd 380219089Spjddefine info-file 381219089Spjd $(call prepare-info-file, $1) 382219089Spjd $(call create-info-file, $1) 383219089Spjdendef 384219089Spjd 385219089Spjd# Create a variable dependency file common for all release info files. The 386219089Spjd# sorted module list will only change if the image is regenerated, which will 387219089Spjd# trigger a rebuild of these files anyway. 388219089SpjdINFO_FILE_VARDEPS := $(call DependOnVariable, create-info-file) 389219089Spjd 390208047SmmALL_SOURCE_TIPS = $(shell \ 391219089Spjd if [ -f $(SUPPORT_OUTPUTDIR)/source_tips ] ; then \ 392208047Smm $(CAT) $(SUPPORT_OUTPUTDIR)/source_tips ; \ 393168404Spjd fi) 394168404Spjd 395168404Spjd$(JRE_INFO_FILE): $(INFO_FILE_VARDEPS) $(SUPPORT_OUTPUTDIR)/source_tips 396168404Spjd $(call info-file, $(JRE_SORTED_MODULES)) 397168404Spjd 398168404Spjd$(JDK_INFO_FILE): $(INFO_FILE_VARDEPS) $(SUPPORT_OUTPUTDIR)/source_tips 399168404Spjd $(call info-file, $(JDK_SORTED_MODULES)) 400185029Spjd 401185029Spjd$(JRE_COMPACT1_INFO_FILE): $(INFO_FILE_VARDEPS) $(SUPPORT_OUTPUTDIR)/source_tips 402168404Spjd $(call info-file, $(JRE_COMPACT1_SORTED_MODULES)) 403219089Spjd $(call info-file-item, "JAVA_PROFILE", "compact1") 404219089Spjd 405168404Spjd$(JRE_COMPACT2_INFO_FILE): $(INFO_FILE_VARDEPS) $(SUPPORT_OUTPUTDIR)/source_tips 406168404Spjd $(call info-file, $(JRE_COMPACT2_SORTED_MODULES)) 407168404Spjd $(call info-file-item, "JAVA_PROFILE", "compact2") 408185029Spjd 409168404Spjd$(JRE_COMPACT3_INFO_FILE): $(INFO_FILE_VARDEPS) $(SUPPORT_OUTPUTDIR)/source_tips 410168404Spjd $(call info-file, $(JRE_COMPACT3_SORTED_MODULES)) 411168404Spjd $(call info-file-item, "JAVA_PROFILE", "compact3") 412168404Spjd 413168404SpjdJRE_TARGETS += $(JRE_INFO_FILE) 414168404SpjdJDK_TARGETS += $(JDK_INFO_FILE) 415168404SpjdJRE_COMPACT1_TARGETS += $(JRE_COMPACT1_INFO_FILE) 416185029SpjdJRE_COMPACT2_TARGETS += $(JRE_COMPACT2_INFO_FILE) 417168404SpjdJRE_COMPACT3_TARGETS += $(JRE_COMPACT3_INFO_FILE) 418168404Spjd 419185029Spjd################################################################################ 420185029Spjd# src.zip 421185029Spjd 422185029Spjd$(JDK_IMAGE_DIR)/src.zip: $(SUPPORT_OUTPUTDIR)/src.zip 423185029Spjd $(ECHO) $(LOG_INFO) Copying $(patsubst $(OUTPUT_ROOT)/%,%,$@) 424185029Spjd $(install-file) 425185029Spjd 426185029SpjdJDK_TARGETS += $(JDK_IMAGE_DIR)/src.zip 427185029Spjd 428185029Spjd################################################################################ 429185029Spjd# /demo dir 430185029Spjd 431185029Spjd# The db demo contains an empty dir that needs to be copied. The other 432185029Spjd# directories will always trigger the rule for recompile since 433185029Spjd# _the.list_of_packages files are touched. 434185029Spjdifneq ($(findstring images, $(MAKECMDGOALS)), ) 435185029Spjd $(JDK_IMAGE_DIR)/demo/%: $(SUPPORT_OUTPUTDIR)/demo/image/% 436185029Spjd if [ ! -d "$@" ]; then \ 437185029Spjd $(ECHO) $(LOG_INFO) Copying '$(patsubst $(OUTPUT_ROOT)/%,%,$@)'; \ 438168404Spjd $(MKDIR) -p $(@D); \ 439168404Spjd if [ -d "$<" ]; then $(MKDIR) -p $@; else $(CP) '$<' '$@'; fi \ 440168404Spjd fi 441219089Spjd 442219089Spjd # Find all files including directories 443219089Spjd JDK_DEMO_TARGETS := $(if $(wildcard $(SUPPORT_OUTPUTDIR)/demo/image), \ 444219089Spjd $(patsubst $(SUPPORT_OUTPUTDIR)/demo/image/%, $(JDK_IMAGE_DIR)/demo/%, \ 445219089Spjd $(shell $(FIND) $(SUPPORT_OUTPUTDIR)/demo/image \ 446219089Spjd ! \( -name "_the*" -o -name "javac_state" \) ))) 447219089Spjd 448219089Spjd JDK_TARGETS += $(JDK_DEMO_TARGETS) 449219089Spjdendif 450219089Spjd 451219089Spjd################################################################################ 452219089Spjd# /sample dir 453219089Spjd 454219089Spjd$(eval $(call SetupCopyFiles,COPY_SAMPLES, \ 455219089Spjd SRC := $(SUPPORT_OUTPUTDIR)/sample, \ 456219089Spjd DEST := $(JDK_IMAGE_DIR)/sample, \ 457168404Spjd FILES := $(if $(wildcard $(SUPPORT_OUTPUTDIR)/sample), \ 458168404Spjd $(call CacheFind,$(SUPPORT_OUTPUTDIR)/sample)))) 459219089Spjd 460185029SpjdJDK_TARGETS += $(COPY_SAMPLES) 461185029Spjd 462168404Spjd################################################################################ 463185029Spjd# jrt-fs.jar 464185029Spjd 465185029Spjd$(eval $(call SetupCopyFiles,COPY_JRTFS_JAR, \ 466168404Spjd SRC := $(SUPPORT_OUTPUTDIR), \ 467168404Spjd DEST := $(JDK_IMAGE_DIR), \ 468168404Spjd FILES := $(SUPPORT_OUTPUTDIR)/jrt-fs.jar)) 469168404Spjd 470185029SpjdJDK_TARGETS += $(COPY_JRTFS_JAR) 471185029Spjd 472185029Spjd################################################################################ 473185029Spjd# Code coverage data files 474185029Spjd 475168404Spjdifeq ($(GCOV_ENABLED), true) 476168404Spjd 477168404Spjd GCOV_FIND_EXPR := -type f -name "*.gcno" 478168404Spjd 479185029Spjd $(eval $(call SetupCopyFiles,COPY_HOTSPOT_GCOV_GCNO, \ 480219089Spjd SRC := $(OUTPUT_ROOT), \ 481168404Spjd DEST := $(SYMBOLS_IMAGE_DIR)/gcov, \ 482219089Spjd FILES := $(shell $(FIND) $(HOTSPOT_OUTPUTDIR) $(GCOV_FIND_EXPR)))) 483168404Spjd 484219089Spjd SYMBOLS_TARGETS += $(COPY_HOTSPOT_GCOV_GCNO) 485168404Spjd 486168404Spjd $(eval $(call SetupCopyFiles,COPY_JDK_GCOV_GCNO, \ 487168404Spjd SRC := $(OUTPUT_ROOT), \ 488168404Spjd DEST := $(SYMBOLS_IMAGE_DIR)/gcov, \ 489208047Smm FILES := $(shell $(FIND) $(SUPPORT_OUTPUTDIR)/native $(GCOV_FIND_EXPR)))) 490168404Spjd 491168404Spjd SYMBOLS_TARGETS += $(COPY_JDK_GCOV_GCNO) 492219089Spjd 493219089Spjdendif 494219089Spjd 495219089Spjd################################################################################ 496168404Spjd 497168404Spjd# Include custom post hook here to make it possible to augment the target lists 498168404Spjd# before actual target prerequisites are declared. 499168404Spjd$(eval $(call IncludeCustomExtension, , Images-post.gmk)) 500168404Spjd 501168404Spjd################################################################################ 502168404Spjd 503168404Spjd$(JRE_TARGETS): $(TOOL_JRE_TARGETS) 504168404Spjd$(JDK_TARGETS): $(TOOL_JDK_TARGETS) 505168404Spjd 506219089Spjdjimages: $(TOOL_JRE_TARGETS) $(TOOL_JDK_TARGETS) $(JRE_TARGETS) $(JDK_TARGETS) \ 507168404Spjd $(SYMBOLS_TARGETS) 508219089Spjd 509168404Spjd 510168404Spjd$(JRE_COMPACT1_TARGETS): $(TOOL_JRE_COMPACT1_TARGETS) 511168404Spjd$(JRE_COMPACT2_TARGETS): $(TOOL_JRE_COMPACT2_TARGETS) 512168404Spjd$(JRE_COMPACT3_TARGETS): $(TOOL_JRE_COMPACT3_TARGETS) 513168404Spjd 514168404Spjdprofiles: $(TOOL_JRE_COMPACT1_TARGETS) \ 515168404Spjd $(TOOL_JRE_COMPACT2_TARGETS) \ 516168404Spjd $(TOOL_JRE_COMPACT3_TARGETS) \ 517168404Spjd $(JRE_COMPACT1_TARGETS) \ 518185029Spjd $(JRE_COMPACT2_TARGETS) \ 519185029Spjd $(JRE_COMPACT3_TARGETS) 520185029Spjd 521185029Spjd.PHONY: default all jimages profiles 522185029Spjd