Images.gmk revision 1474:76f24d2c01ed
1122394Sharti# 2122394Sharti# Copyright (c) 2014, 2015 Oracle and/or its affiliates. All rights reserved. 3122394Sharti# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4122394Sharti# 5122394Sharti# This code is free software; you can redistribute it and/or modify it 6122394Sharti# under the terms of the GNU General Public License version 2 only, as 7122394Sharti# published by the Free Software Foundation. Oracle designates this 8122394Sharti# particular file as subject to the "Classpath" exception as provided 9122394Sharti# by Oracle in the LICENSE file that accompanied this code. 10122394Sharti# 11122394Sharti# This code is distributed in the hope that it will be useful, but WITHOUT 12122394Sharti# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13122394Sharti# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14122394Sharti# version 2 for more details (a copy is included in the LICENSE file that 15122394Sharti# accompanied this code). 16122394Sharti# 17122394Sharti# You should have received a copy of the GNU General Public License version 18122394Sharti# 2 along with this work; if not, write to the Free Software Foundation, 19122394Sharti# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20122394Sharti# 21122394Sharti# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22122394Sharti# or visit www.oracle.com if you need additional information or have any 23122394Sharti# questions. 24122394Sharti# 25122394Sharti 26122394Shartidefault: all 27122394Sharti 28122394Shartiinclude $(SPEC) 29122394Shartiinclude MakeBase.gmk 30122394Sharti 31122394ShartiTOOL_TARGETS := 32122394ShartiJDK_TARGETS := 33128237ShartiJRE_TARGETS := 34122394Sharti 35122394Sharti# Hook to include the corresponding custom file, if present. 36122394Sharti$(eval $(call IncludeCustomExtension, , Images-pre.gmk)) 37122394Sharti 38122394Sharti############################################################################ 39122394Sharti 40122394ShartiMAIN_MODULES += java.se java.smartcardio jdk.httpserver jdk.sctp \ 41122394Sharti jdk.security.auth jdk.security.jgss jdk.pack200 jdk.xml.dom 42122394Sharti 43122394Sharti# providers 44122394ShartiPROVIDER_MODULES += jdk.charsets jdk.crypto.ec jdk.crypto.pkcs11 jdk.jvmstat jdk.localedata \ 45122394Sharti jdk.naming.dns jdk.naming.rmi jdk.scripting.nashorn jdk.zipfs 46122394Sharti 47122394Sharti# tools 48122394ShartiTOOLS_MODULES += jdk.attach jdk.compiler jdk.dev jdk.javadoc jdk.jcmd jdk.jconsole \ 49122394Sharti jdk.hotspot.agent jdk.hprof.agent jdk.jartool jdk.jdi jdk.jdwp.agent \ 50122394Sharti jdk.policytool jdk.rmic jdk.xml.bind jdk.xml.ws 51122394Sharti 52122394Shartiifeq ($(OPENJDK_TARGET_OS), windows) 53122394Sharti PROVIDER_MODULES += jdk.crypto.mscapi 54122394Shartiendif 55122394Sharti 56122394Shartiifeq ($(OPENJDK_TARGET_OS), solaris) 57122394Sharti PROVIDER_MODULES += jdk.crypto.ucrypto 58122394Shartiendif 59122394Sharti 60122394Shartiifeq ($(OPENJDK_TARGET_OS), windows) 61122394Sharti MAIN_MODULES += jdk.accessibility 62122394Shartiendif 63122394Sharti 64122394Shartiifeq ($(OPENJDK_TARGET_OS), macosx) 65122394Sharti MAIN_MODULES += jdk.deploy.osx 66122394Shartiendif 67122394Sharti 68122394ShartiJRE_MODULES := $(MAIN_MODULES) $(PROVIDER_MODULES) 69122394ShartiJDK_MODULES := $(JRE_MODULES) $(TOOLS_MODULES) 70122394Sharti 71122394Sharti# compact3 builds have additional modules 72122394ShartiJDK_COMPACT3_MODULES := java.compact3 java.smartcardio jdk.httpserver jdk.naming.dns \ 73122394Sharti jdk.naming.rmi jdk.sctp jdk.security.auth jdk.management 74122394Sharti 75122394Sharti# Replacing double-comma with a single comma is to workaround the issue 76122394Sharti# with some version of make on windows that doesn't substitute spaces 77122394Sharti# with one comma properly as with make 4.0 78122394Shartidefine SubstComma 79122394Sharti $(subst $(COMMA)$(COMMA),$(COMMA),$(subst $(SPACE),$(COMMA),$(strip $1))) 80122394Shartiendef 81122394ShartiJRE_MODULES_LIST := $(call SubstComma, $(JRE_MODULES)) 82122394ShartiJDK_MODULES_LIST := $(call SubstComma, $(JDK_MODULES)) 83122394Sharti 84122394Sharti################################################################################ 85122394Sharti 86122394ShartiJRE_SORTED_MODULES := $(SUPPORT_OUTPUTDIR)/jre-sorted-modules 87122394ShartiJDK_SORTED_MODULES := $(SUPPORT_OUTPUTDIR)/jdk-sorted-modules 88122394ShartiJRE_COMPACT1_SORTED_MODULES := $(SUPPORT_OUTPUTDIR)/compact1-sorted-modules 89122394ShartiJRE_COMPACT2_SORTED_MODULES := $(SUPPORT_OUTPUTDIR)/compact2-sorted-modules 90122394ShartiJRE_COMPACT3_SORTED_MODULES := $(SUPPORT_OUTPUTDIR)/compact3-sorted-modules 91122394Sharti 92122394Sharti 93122394ShartiMODULES_CMDS := $(SUPPORT_OUTPUTDIR)/modules_cmds-stripped 94122394ShartiMODULES_LIBS := $(SUPPORT_OUTPUTDIR)/modules_libs-stripped 95122394ShartiMODULES_CONF := $(SUPPORT_OUTPUTDIR)/modules_conf 96122394Sharti 97122394ShartiJIMAGE_TOOL := $(JAVA_SMALL) \ 98122394Sharti -Xbootclasspath/p:$(BUILDTOOLS_OUTPUTDIR)/interim_jimage_classes \ 99122394Sharti -cp $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes build.tools.module.ImageBuilder \ 100122394Sharti --cmds $(MODULES_CMDS) \ 101122394Sharti --libs $(MODULES_LIBS) \ 102122394Sharti --configs $(MODULES_CONF) \ 103122394Sharti --classes $(JDK_OUTPUTDIR)/modules \ 104122394Sharti --endian $(OPENJDK_TARGET_CPU_ENDIAN) \ 105122394Sharti # 106122394Sharti 107122394ShartiMODULES_XML += $(SRC_ROOT)/modules.xml 108122394ShartiDEPENDENCIES := $(call CacheFind, \ 109122394Sharti $(SUPPORT_OUTPUTDIR)/modules_cmds \ 110122394Sharti $(SUPPORT_OUTPUTDIR)/modules_libs) \ 111122394Sharti $(wildcard $(JDK_OUTPUTDIR)/modules/*/_*) \ 112122394Sharti $(MODULES_XML) 113122394Sharti # 114122394Sharti 115122394Sharti# Use this file inside the image as target for make rule 116122394ShartiJIMAGE_TARGET_FILE := bin/java$(EXE_SUFFIX) 117122394Sharti 118122394Sharti$(JDK_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(DEPENDENCIES) \ 119122394Sharti $(call DependOnVariable, JDK_MODULES_LIST) 120122394Sharti $(ECHO) Creating jdk jimage 121122394Sharti $(RM) -r $(JDK_IMAGE_DIR) $(JDK_SORTED_MODULES) 122122394Sharti $(JIMAGE_TOOL) --mods $(JDK_MODULES_LIST) --output $(JDK_IMAGE_DIR) \ 123122394Sharti $(MODULES_XML) > $(JDK_SORTED_MODULES) 124122394Sharti $(TOUCH) $@ 125122394Sharti 126122394Sharti$(JRE_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(DEPENDENCIES) \ 127122394Sharti $(call DependOnVariable, JRE_MODULES_LIST) 128122394Sharti $(ECHO) Creating jre jimage 129122394Sharti $(RM) -r $(JRE_IMAGE_DIR) $(JRE_SORTED_MODULES) 130122394Sharti $(JIMAGE_TOOL) --mods $(JRE_MODULES_LIST) --output $(JRE_IMAGE_DIR) \ 131122394Sharti $(MODULES_XML) > $(JRE_SORTED_MODULES) 132122394Sharti $(TOUCH) $@ 133122394Sharti 134122394ShartiJRE_COMPACT1_IMAGE_DIR := $(JRE_IMAGE_DIR)-compact1 135122394ShartiJRE_COMPACT2_IMAGE_DIR := $(JRE_IMAGE_DIR)-compact2 136122394ShartiJRE_COMPACT3_IMAGE_DIR := $(JRE_IMAGE_DIR)-compact3 137122394Sharti 138122394ShartiCOMPACT_EXTRA_MODULES := jdk.localedata jdk.crypto.pkcs11 jdk.crypto.ec 139122394Sharti 140122394Sharti$(JRE_COMPACT1_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(DEPENDENCIES) \ 141122394Sharti $(call DependOnVariable, JRE_COMPACT1_MODULES_LIST) 142122394Sharti $(ECHO) Creating jre compact1 jimage 143122394Sharti $(RM) -r $(JRE_COMPACT1_IMAGE_DIR) $(JRE_COMPACT1_SORTED_MODULES) 144122394Sharti $(JIMAGE_TOOL) \ 145122394Sharti --mods $(call SubstComma, java.compact1 $(COMPACT_EXTRA_MODULES)) \ 146122394Sharti --output $(JRE_COMPACT1_IMAGE_DIR) \ 147122394Sharti $(MODULES_XML) > $(JRE_COMPACT1_SORTED_MODULES) 148122394Sharti $(TOUCH) $@ 149122394Sharti 150122394Sharti$(JRE_COMPACT2_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(DEPENDENCIES) \ 151122394Sharti $(call DependOnVariable, JRE_COMPACT2_MODULES_LIST) 152122394Sharti $(ECHO) Creating jre compact2 jimage 153122394Sharti $(RM) -r $(JRE_COMPACT2_IMAGE_DIR) $(JRE_COMPACT2_SORTED_MODULES) 154122394Sharti $(JIMAGE_TOOL) \ 155122394Sharti --mods $(call SubstComma, java.compact2 $(COMPACT_EXTRA_MODULES)) \ 156122394Sharti --output $(JRE_COMPACT2_IMAGE_DIR) \ 157122394Sharti $(MODULES_XML) > $(JRE_COMPACT2_SORTED_MODULES) 158122394Sharti $(TOUCH) $@ 159122394Sharti 160122394Sharti$(JRE_COMPACT3_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(DEPENDENCIES) \ 161122394Sharti $(call DependOnVariable, JRE_COMPACT3_MODULES_LIST) 162122394Sharti $(ECHO) Creating jre compact3 jimage 163122394Sharti $(RM) -r $(JRE_COMPACT3_IMAGE_DIR) $(JRE_COMPACT3_SORTED_MODULES) 164122394Sharti $(JIMAGE_TOOL) \ 165122394Sharti --mods $(call SubstComma, $(JDK_COMPACT3_MODULES) $(COMPACT_EXTRA_MODULES)) \ 166122394Sharti --output $(JRE_COMPACT3_IMAGE_DIR) \ 167122394Sharti $(MODULES_XML) > $(JRE_COMPACT3_SORTED_MODULES) 168122394Sharti $(TOUCH) $@ 169122394Sharti 170122394ShartiTOOL_JRE_TARGETS := $(JRE_IMAGE_DIR)/$(JIMAGE_TARGET_FILE) 171122394ShartiTOOL_JDK_TARGETS := $(JDK_IMAGE_DIR)/$(JIMAGE_TARGET_FILE) 172122394ShartiTOOL_JRE_COMPACT1_TARGETS := $(JRE_COMPACT1_IMAGE_DIR)/$(JIMAGE_TARGET_FILE) 173122394ShartiTOOL_JRE_COMPACT2_TARGETS := $(JRE_COMPACT2_IMAGE_DIR)/$(JIMAGE_TARGET_FILE) 174122394ShartiTOOL_JRE_COMPACT3_TARGETS := $(JRE_COMPACT3_IMAGE_DIR)/$(JIMAGE_TARGET_FILE) 175122394Sharti 176122394Sharti################################################################################ 177122394Sharti# /man dir 178122394Sharti# 179122394Sharti# All variables in this section are assigned with simple =, without :, to enable 180122394Sharti# more selective overriding from the custom version of this file. 181122394Sharti# 182122394Sharti# Avoid evaluating this whole section on windows for speed and stability 183122394Shartiifneq ($(OPENJDK_TARGET_OS), windows) 184122394Sharti JRE_MAN_PAGES += \ 185122394Sharti java.1 \ 186122394Sharti jjs.1 \ 187122394Sharti keytool.1 \ 188122394Sharti orbd.1 \ 189122394Sharti pack200.1 \ 190122394Sharti rmid.1 \ 191122394Sharti rmiregistry.1 \ 192122394Sharti servertool.1 \ 193122394Sharti tnameserv.1 \ 194122394Sharti unpack200.1 195122394Sharti 196122394Sharti ifndef OPENJDK 197122394Sharti ifneq ($(OPENJDK_TARGET_OS), solaris) 198122394Sharti JRE_MAN_PAGES += javaws.1 199122394Sharti endif 200122394Sharti endif 201122394Sharti 202122394Sharti JDK_MAN_PAGES += \ 203122394Sharti $(JRE_MAN_PAGES) \ 204122394Sharti appletviewer.1 \ 205122394Sharti idlj.1 \ 206122394Sharti jar.1 \ 207122394Sharti jarsigner.1 \ 208122394Sharti javac.1 \ 209122394Sharti javadoc.1 \ 210122394Sharti javah.1 \ 211122394Sharti javap.1 \ 212122394Sharti jconsole.1 \ 213122394Sharti jcmd.1 \ 214122394Sharti jdb.1 \ 215122394Sharti jdeps.1 \ 216122394Sharti jhat.1 \ 217122394Sharti jinfo.1 \ 218122394Sharti jmap.1 \ 219122394Sharti jps.1 \ 220122394Sharti jrunscript.1 \ 221122394Sharti jsadebugd.1 \ 222122394Sharti jstack.1 \ 223122394Sharti jstat.1 \ 224122394Sharti jstatd.1 \ 225122394Sharti native2ascii.1 \ 226122394Sharti policytool.1 \ 227122394Sharti rmic.1 \ 228122394Sharti schemagen.1 \ 229122394Sharti serialver.1 \ 230122394Sharti wsgen.1 \ 231122394Sharti wsimport.1 \ 232122394Sharti xjc.1 233122394Sharti 234122394Sharti # This variable is potentially overridden in the closed makefile. 235122394Sharti MAN_SRC_BASEDIR ?= $(JDK_TOPDIR)/src 236122394Sharti 237122394Sharti ifeq ($(OPENJDK_TARGET_OS), linux) 238122394Sharti MAN_SRC_DIR = $(MAN_SRC_BASEDIR)/linux/doc 239122394Sharti MAN1_SUBDIR = man 240122394Sharti endif 241122394Sharti ifeq ($(OPENJDK_TARGET_OS), solaris) 242122394Sharti MAN_SRC_DIR = $(MAN_SRC_BASEDIR)/solaris/doc 243122394Sharti MAN1_SUBDIR = sun/man/man1 244122394Sharti endif 245122394Sharti ifeq ($(OPENJDK_TARGET_OS), macosx) 246122394Sharti MAN_SRC_DIR = $(MAN_SRC_BASEDIR)/bsd/doc 247122394Sharti MAN1_SUBDIR = man 248122394Sharti endif 249122394Sharti 250122394Sharti $(JRE_IMAGE_DIR)/man/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/% 251122394Sharti $(ECHO) $(LOG_INFO) Copying $(patsubst $(OUTPUT_ROOT)/%,%,$@) 252122394Sharti $(install-file) 253122394Sharti 254122394Sharti $(JDK_IMAGE_DIR)/man/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/% 255122394Sharti $(ECHO) $(LOG_INFO) Copying $(patsubst $(OUTPUT_ROOT)/%,%,$@) 256122394Sharti $(install-file) 257122394Sharti 258122394Sharti $(JRE_IMAGE_DIR)/man/ja_JP.UTF-8/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/ja/% 259122394Sharti $(ECHO) $(LOG_INFO) Copying $(patsubst $(OUTPUT_ROOT)/%,%,$@) 260122394Sharti $(install-file) 261122394Sharti 262122394Sharti $(JDK_IMAGE_DIR)/man/ja_JP.UTF-8/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/ja/% 263122394Sharti $(ECHO) $(LOG_INFO) Copying $(patsubst $(OUTPUT_ROOT)/%,%,$@) 264122394Sharti $(install-file) 265122394Sharti 266122394Sharti ifeq ($(OPENJDK_TARGET_OS), solaris) 267122394Sharti $(JRE_IMAGE_DIR)/man/ja/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/ja/% 268122394Sharti $(ECHO) $(LOG_INFO) Converting $(patsubst $(OUTPUT_ROOT)/%,%,$@) 269122394Sharti $(install-file) 270122394Sharti 271122394Sharti $(JDK_IMAGE_DIR)/man/ja/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/ja/% 272122394Sharti $(ECHO) $(LOG_INFO) Converting $(patsubst $(OUTPUT_ROOT)/%,%,$@) 273122394Sharti $(install-file) 274122394Sharti endif 275122394Sharti 276122394Sharti ifneq ($(findstring $(OPENJDK_TARGET_OS), linux macosx), ) 277122394Sharti $(JRE_IMAGE_DIR)/man/ja: 278122394Sharti $(ECHO) $(LOG_INFO) Creating $(patsubst $(OUTPUT_ROOT)/%,%,$@) 279122394Sharti $(CD) $(@D) && $(RM) ja && $(LN) -s ja_JP.UTF-8 ja 280122394Sharti 281122394Sharti $(JDK_IMAGE_DIR)/man/ja: 282122394Sharti $(ECHO) $(LOG_INFO) Creating $(patsubst $(OUTPUT_ROOT)/%,%,$@) 283122394Sharti $(CD) $(@D) && $(RM) ja && $(LN) -s ja_JP.UTF-8 ja 284122394Sharti endif 285122394Sharti 286122394Sharti ifeq ($(OPENJDK_TARGET_OS), solaris) 287122394Sharti JRE_MAN_PAGE_LIST = $(addprefix $(JRE_IMAGE_DIR)/man/man1/, $(JRE_MAN_PAGES)) \ 288122394Sharti $(addprefix $(JRE_IMAGE_DIR)/man/ja/man1/, $(JRE_MAN_PAGES)) \ 289122394Sharti $(addprefix $(JRE_IMAGE_DIR)/man/ja_JP.UTF-8/man1/, $(JRE_MAN_PAGES)) \ 290122394Sharti $(addprefix $(JRE_IMAGE_DIR)/man/ja_JP.PCK/man1/, $(JRE_MAN_PAGES)) 291122394Sharti 292122394Sharti JDK_MAN_PAGE_LIST = $(addprefix $(JDK_IMAGE_DIR)/man/man1/, $(JDK_MAN_PAGES)) \ 293122394Sharti $(addprefix $(JDK_IMAGE_DIR)/man/ja/man1/, $(JDK_MAN_PAGES)) \ 294122394Sharti $(addprefix $(JDK_IMAGE_DIR)/man/ja_JP.UTF-8/man1/, $(JDK_MAN_PAGES)) \ 295122394Sharti $(addprefix $(JDK_IMAGE_DIR)/man/ja_JP.PCK/man1/, $(JDK_MAN_PAGES)) 296122394Sharti endif 297122394Sharti 298122394Sharti ifneq ($(findstring $(OPENJDK_TARGET_OS), linux macosx), ) 299122394Sharti JRE_MAN_PAGE_LIST = $(addprefix $(JRE_IMAGE_DIR)/man/man1/, $(JRE_MAN_PAGES)) \ 300122394Sharti $(addprefix $(JRE_IMAGE_DIR)/man/ja_JP.UTF-8/man1/, $(JRE_MAN_PAGES)) \ 301122394Sharti $(JRE_IMAGE_DIR)/man/ja 302122394Sharti 303122394Sharti JDK_MAN_PAGE_LIST = $(addprefix $(JDK_IMAGE_DIR)/man/man1/, $(JDK_MAN_PAGES)) \ 304122394Sharti $(addprefix $(JDK_IMAGE_DIR)/man/ja_JP.UTF-8/man1/, $(JDK_MAN_PAGES)) \ 305122394Sharti $(JDK_IMAGE_DIR)/man/ja 306122394Sharti endif 307122394Sharti 308122394Sharti JRE_TARGETS += $(JRE_MAN_PAGE_LIST) 309122394Sharti JDK_TARGETS += $(JDK_MAN_PAGE_LIST) 310122394Shartiendif # Windows 311122394Sharti 312122394Sharti################################################################################ 313122394Sharti# /include dir 314122394Sharti 315122394Sharti$(eval $(call SetupCopyFiles,COPY_INCLUDES, \ 316122394Sharti SRC := $(JDK_OUTPUTDIR)/include, \ 317122394Sharti DEST := $(JDK_IMAGE_DIR)/include, \ 318122394Sharti FILES := $(call CacheFind,$(JDK_OUTPUTDIR)/include))) 319122394Sharti 320122394ShartiJDK_TARGETS += $(COPY_INCLUDES) 321122394Sharti 322122394Sharti################################################################################ 323122394Sharti# doc files 324122394Sharti 325122394ShartiJRE_DOC_FILES ?= LICENSE ASSEMBLY_EXCEPTION THIRD_PARTY_README 326122394ShartiJDK_DOC_FILES ?= LICENSE ASSEMBLY_EXCEPTION THIRD_PARTY_README 327122394ShartiJRE_DOC_LOCATION ?= $(JDK_TOPDIR) 328122394ShartiJDK_DOC_LOCATION ?= $(JDK_TOPDIR) 329122394Sharti 330122394ShartiJRE_DOC_TARGETS := $(addprefix $(JRE_IMAGE_DIR)/, $(JRE_DOC_FILES)) 331122394ShartiJDK_DOC_TARGETS := $(addprefix $(JDK_IMAGE_DIR)/, $(JDK_DOC_FILES)) 332122394Sharti 333122394Sharti# Processing license files from source area to image area 334122394Sharti# These are modified to have the platform specific EOL chars. 335122394Shartidefine process-doc-file 336122394Sharti $(ECHO) $(LOG_INFO) Processing $(patsubst $(OUTPUT_ROOT)/%,%,$@) 337122394Sharti $(MKDIR) -p $(@D) 338122394Sharti $(RM) $@ 339122394Sharti LC_ALL=C $(SED) 's/$$//g' $< > $@ 340122394Sharti $(CHMOD) 444 $@ 341122394Shartiendef 342122394Sharti 343122394Sharti$(JRE_IMAGE_DIR)/%: $(JRE_DOC_LOCATION)/% 344122394Sharti $(process-doc-file) 345122394Sharti 346122394Sharti$(JDK_IMAGE_DIR)/%: $(JDK_DOC_LOCATION)/% 347122394Sharti $(process-doc-file) 348122394Sharti 349122394ShartiJRE_TARGETS += $(JRE_DOC_TARGETS) 350122394ShartiJDK_TARGETS += $(JDK_DOC_TARGETS) 351122394Sharti 352122394Sharti################################################################################ 353122394Sharti# Release file 354122394Sharti 355122394ShartiJRE_INFO_FILE := $(JRE_IMAGE_DIR)/release 356122394ShartiJDK_INFO_FILE := $(JDK_IMAGE_DIR)/release 357122394ShartiJRE_COMPACT1_INFO_FILE := $(JRE_COMPACT1_IMAGE_DIR)/release 358122394ShartiJRE_COMPACT2_INFO_FILE := $(JRE_COMPACT2_IMAGE_DIR)/release 359122394ShartiJRE_COMPACT3_INFO_FILE := $(JRE_COMPACT3_IMAGE_DIR)/release 360122394Sharti 361122394Sharti# Common way to emit a line into the release or info file 362122394Shartidefine info-file-item # name value 363122394Sharti $(PRINTF) '%s="%s"\n' $1 $2 >> $@ 364122394Shartiendef 365122394Sharti 366122394Sharti# Param 1 - The file containing the MODULES list 367122394Shartidefine create-info-file 368122394Sharti $(call info-file-item, "JAVA_VERSION", "$(JDK_VERSION)") 369122394Sharti $(call info-file-item, "OS_NAME", "$(REQUIRED_OS_NAME)") 370122394Sharti $(call info-file-item, "OS_VERSION", "$(REQUIRED_OS_VERSION)") 371122394Sharti $(call info-file-item, "OS_ARCH", "$(OPENJDK_TARGET_CPU_LEGACY)") 372122394Sharti $(if $(JDK_ARCH_ABI_PROP_NAME), \ 373122394Sharti $(call info-file-item, "SUN_ARCH_ABI", "$(JDK_ARCH_ABI_PROP_NAME)")) 374122394Sharti $(call info-file-item, "SOURCE", "$(ALL_SOURCE_TIPS)") 375122394Sharti $(call info-file-item, "MODULES", "`$(CAT) $1`") 376122394Shartiendef 377122394Sharti 378122394Sharti# Param 1 - The file containing the MODULES list 379122394Shartidefine prepare-info-file 380122394Sharti $(ECHO) $(LOG_INFO) Generating $(patsubst $(OUTPUT_ROOT)/%,%,$@) 381122394Sharti $(MKDIR) -p $(@D) 382122394Sharti $(RM) $@ 383122394Shartiendef 384122394Sharti 385122394Shartidefine info-file 386122394Sharti $(call prepare-info-file, $1) 387122394Sharti $(call create-info-file, $1) 388122394Shartiendef 389122394Sharti 390122394Sharti# Create a variable dependency file common for all release info files. The 391122394Sharti# sorted module list will only change if the image is regenerated, which will 392122394Sharti# trigger a rebuild of these files anyway. 393122394ShartiINFO_FILE_VARDEPS := $(call DependOnVariable, create-info-file) 394122394Sharti 395122394ShartiALL_SOURCE_TIPS = $(shell \ 396122394Sharti if [ -f $(SUPPORT_OUTPUTDIR)/source_tips ] ; then \ 397122394Sharti $(CAT) $(SUPPORT_OUTPUTDIR)/source_tips ; \ 398122394Sharti fi) 399122394Sharti 400122394Sharti$(JRE_INFO_FILE): $(INFO_FILE_VARDEPS) $(SUPPORT_OUTPUTDIR)/source_tips 401122394Sharti $(call info-file, $(JRE_SORTED_MODULES)) 402122394Sharti 403122394Sharti$(JDK_INFO_FILE): $(INFO_FILE_VARDEPS) $(SUPPORT_OUTPUTDIR)/source_tips 404122394Sharti $(call info-file, $(JDK_SORTED_MODULES)) 405122394Sharti 406122394Sharti$(JRE_COMPACT1_INFO_FILE): $(INFO_FILE_VARDEPS) $(SUPPORT_OUTPUTDIR)/source_tips 407122394Sharti $(call info-file, $(JRE_COMPACT1_SORTED_MODULES)) 408122394Sharti $(call info-file-item, "JAVA_PROFILE", "compact1") 409122394Sharti 410122394Sharti$(JRE_COMPACT2_INFO_FILE): $(INFO_FILE_VARDEPS) $(SUPPORT_OUTPUTDIR)/source_tips 411122394Sharti $(call info-file, $(JRE_COMPACT2_SORTED_MODULES)) 412122394Sharti $(call info-file-item, "JAVA_PROFILE", "compact2") 413122394Sharti 414122394Sharti$(JRE_COMPACT3_INFO_FILE): $(INFO_FILE_VARDEPS) $(SUPPORT_OUTPUTDIR)/source_tips 415122394Sharti $(call info-file, $(JRE_COMPACT3_SORTED_MODULES)) 416122394Sharti $(call info-file-item, "JAVA_PROFILE", "compact3") 417122394Sharti 418122394ShartiJRE_TARGETS += $(JRE_INFO_FILE) 419122394ShartiJDK_TARGETS += $(JDK_INFO_FILE) 420122394ShartiJRE_COMPACT1_TARGETS += $(JRE_COMPACT1_INFO_FILE) 421122394ShartiJRE_COMPACT2_TARGETS += $(JRE_COMPACT2_INFO_FILE) 422122394ShartiJRE_COMPACT3_TARGETS += $(JRE_COMPACT3_INFO_FILE) 423122394Sharti 424122394Sharti################################################################################ 425122394Sharti# src.zip 426122394Sharti 427122394Sharti$(JDK_IMAGE_DIR)/src.zip: $(SUPPORT_OUTPUTDIR)/src.zip 428122394Sharti $(ECHO) $(LOG_INFO) Copying $(patsubst $(OUTPUT_ROOT)/%,%,$@) 429122394Sharti $(install-file) 430122394Sharti 431122394ShartiJDK_TARGETS += $(JDK_IMAGE_DIR)/src.zip 432122394Sharti 433122394Sharti################################################################################ 434122394Sharti# /demo dir 435122394Sharti 436122394Sharti# The db demo contains an empty dir that needs to be copied. The other 437122394Sharti# directories will always trigger the rule for recompile since 438122394Sharti# _the.list_of_packages files are touched. 439122394Shartiifneq ($(findstring images, $(MAKECMDGOALS)), ) 440122394Sharti $(JDK_IMAGE_DIR)/demo/%: $(SUPPORT_OUTPUTDIR)/demo/image/% 441122394Sharti if [ ! -d "$@" ]; then \ 442122394Sharti $(ECHO) $(LOG_INFO) Copying '$(patsubst $(OUTPUT_ROOT)/%,%,$@)'; \ 443122394Sharti $(MKDIR) -p $(@D); \ 444122394Sharti if [ -d "$<" ]; then $(MKDIR) -p $@; else $(CP) '$<' '$@'; fi \ 445122394Sharti fi 446122394Sharti 447122394Sharti # Find all files including directories 448122394Sharti JDK_DEMO_TARGETS := $(if $(wildcard $(SUPPORT_OUTPUTDIR)/demo/image), \ 449122394Sharti $(patsubst $(SUPPORT_OUTPUTDIR)/demo/image/%, $(JDK_IMAGE_DIR)/demo/%, \ 450122394Sharti $(shell $(FIND) $(SUPPORT_OUTPUTDIR)/demo/image \ 451122394Sharti ! \( -name "_the*" -o -name "javac_state" \) ))) 452122394Sharti 453122394Sharti JDK_TARGETS += $(JDK_DEMO_TARGETS) 454122394Shartiendif 455122394Sharti 456122394Sharti################################################################################ 457122394Sharti# /sample dir 458122394Sharti 459122394Sharti$(eval $(call SetupCopyFiles,COPY_SAMPLES, \ 460122394Sharti SRC := $(SUPPORT_OUTPUTDIR)/sample, \ 461122394Sharti DEST := $(JDK_IMAGE_DIR)/sample, \ 462122394Sharti FILES := $(if $(wildcard $(SUPPORT_OUTPUTDIR)/sample), \ 463122394Sharti $(call CacheFind,$(SUPPORT_OUTPUTDIR)/sample)))) 464122394Sharti 465122394ShartiJDK_TARGETS += $(COPY_SAMPLES) 466122394Sharti 467122394Sharti################################################################################ 468122394Sharti# jrt-fs.jar 469122394Sharti 470122394Sharti$(eval $(call SetupCopyFiles,COPY_JRTFS_JAR, \ 471122394Sharti SRC := $(SUPPORT_OUTPUTDIR), \ 472122394Sharti DEST := $(JDK_IMAGE_DIR), \ 473122394Sharti FILES := $(SUPPORT_OUTPUTDIR)/jrt-fs.jar)) 474122394Sharti 475122394ShartiJDK_TARGETS += $(COPY_JRTFS_JAR) 476122394Sharti 477122394Sharti################################################################################ 478122394Sharti# Code coverage data files 479122394Sharti 480122394Shartiifeq ($(GCOV_ENABLED), true) 481122394Sharti 482122394Sharti GCOV_FIND_EXPR := -type f -name "*.gcno" 483122394Sharti 484122394Sharti $(eval $(call SetupCopyFiles,COPY_HOTSPOT_GCOV_GCNO, \ 485122394Sharti SRC := $(OUTPUT_ROOT), \ 486122394Sharti DEST := $(SYMBOLS_IMAGE_DIR)/gcov, \ 487122394Sharti FILES := $(shell $(FIND) $(HOTSPOT_OUTPUTDIR) $(GCOV_FIND_EXPR)))) 488122394Sharti 489122394Sharti SYMBOLS_TARGETS += $(COPY_HOTSPOT_GCOV_GCNO) 490122394Sharti 491122394Sharti $(eval $(call SetupCopyFiles,COPY_JDK_GCOV_GCNO, \ 492122394Sharti SRC := $(OUTPUT_ROOT), \ 493122394Sharti DEST := $(SYMBOLS_IMAGE_DIR)/gcov, \ 494122394Sharti FILES := $(shell $(FIND) $(SUPPORT_OUTPUTDIR)/native $(GCOV_FIND_EXPR)))) 495122394Sharti 496122394Sharti SYMBOLS_TARGETS += $(COPY_JDK_GCOV_GCNO) 497122394Sharti 498122394Shartiendif 499122394Sharti 500122394Sharti################################################################################ 501122394Sharti 502122394Sharti# Include custom post hook here to make it possible to augment the target lists 503122394Sharti# before actual target prerequisites are declared. 504122394Sharti$(eval $(call IncludeCustomExtension, , Images-post.gmk)) 505122394Sharti 506122394Sharti################################################################################ 507122394Sharti 508122394Sharti$(JRE_TARGETS): $(TOOL_JRE_TARGETS) 509122394Sharti$(JDK_TARGETS): $(TOOL_JDK_TARGETS) 510122394Sharti 511122394Shartijimages: $(TOOL_JRE_TARGETS) $(TOOL_JDK_TARGETS) $(JRE_TARGETS) $(JDK_TARGETS) \ 512122394Sharti $(SYMBOLS_TARGETS) 513122394Sharti 514122394Sharti 515122394Sharti$(JRE_COMPACT1_TARGETS): $(TOOL_JRE_COMPACT1_TARGETS) 516122394Sharti$(JRE_COMPACT2_TARGETS): $(TOOL_JRE_COMPACT2_TARGETS) 517122394Sharti$(JRE_COMPACT3_TARGETS): $(TOOL_JRE_COMPACT3_TARGETS) 518122394Sharti 519122394Shartiprofiles: $(TOOL_JRE_COMPACT1_TARGETS) \ 520122394Sharti $(TOOL_JRE_COMPACT2_TARGETS) \ 521122394Sharti $(TOOL_JRE_COMPACT3_TARGETS) \ 522122394Sharti $(JRE_COMPACT1_TARGETS) \ 523122394Sharti $(JRE_COMPACT2_TARGETS) \ 524122394Sharti $(JRE_COMPACT3_TARGETS) 525128237Sharti 526122394Sharti.PHONY: default all jimages profiles 527122394Sharti