Images.gmk revision 1299:8720fa7696cb
1189251Ssam# 2214734Srpaulo# Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. 3252726Srpaulo# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4189251Ssam# 5252726Srpaulo# This code is free software; you can redistribute it and/or modify it 6252726Srpaulo# under the terms of the GNU General Public License version 2 only, as 7189251Ssam# published by the Free Software Foundation. Oracle designates this 8189251Ssam# particular file as subject to the "Classpath" exception as provided 9189251Ssam# by Oracle in the LICENSE file that accompanied this code. 10189251Ssam# 11189251Ssam# This code is distributed in the hope that it will be useful, but WITHOUT 12189251Ssam# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13189251Ssam# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14189251Ssam# version 2 for more details (a copy is included in the LICENSE file that 15189251Ssam# accompanied this code). 16189251Ssam# 17189251Ssam# You should have received a copy of the GNU General Public License version 18189251Ssam# 2 along with this work; if not, write to the Free Software Foundation, 19189251Ssam# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20252726Srpaulo# 21252726Srpaulo# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22189251Ssam# or visit www.oracle.com if you need additional information or have any 23189251Ssam# questions. 24189251Ssam# 25189251Ssam 26189251Ssamdefault: all 27189251Ssam 28189251Ssaminclude $(SPEC) 29189251Ssaminclude MakeBase.gmk 30189251Ssam 31189251SsamTOOL_TARGETS := 32189251SsamJDK_TARGETS := 33189251SsamJRE_TARGETS := 34189251Ssam 35189251Ssam# Hook to include the corresponding custom file, if present. 36189251Ssam$(eval $(call IncludeCustomExtension, , Images-pre.gmk)) 37189251Ssam 38189251Ssam############################################################################ 39189251Ssam 40189251SsamMAIN_MODULES += java.se java.smartcardio jdk.httpserver jdk.sctp \ 41189251Ssam jdk.security.auth jdk.security.jgss jdk.runtime 42189251Ssam 43189251Ssam# providers 44189251SsamPROVIDER_MODULES += jdk.charsets jdk.crypto.ec jdk.crypto.pkcs11 jdk.jvmstat jdk.localedata \ 45189251Ssam jdk.naming.dns jdk.naming.rmi jdk.scripting.nashorn jdk.zipfs 46189251Ssam 47189251Ssam# tools 48189251SsamTOOLS_MODULES += jdk.attach jdk.compiler jdk.dev jdk.javadoc jdk.jcmd jdk.jconsole \ 49189251Ssam jdk.hotspot.agent jdk.hprof.agent jdk.jdi jdk.jdwp.agent jdk.rmic \ 50189251Ssam jdk.xml.bind jdk.xml.ws 51189251Ssam 52189251Ssamifeq ($(OPENJDK_TARGET_OS), windows) 53189251Ssam PROVIDER_MODULES += jdk.crypto.mscapi 54189251Ssamendif 55189251Ssam 56189251Ssamifeq ($(OPENJDK_TARGET_OS), solaris) 57189251Ssam PROVIDER_MODULES += jdk.crypto.ucrypto 58252726Srpauloendif 59252726Srpaulo 60252726Srpauloifeq ($(OPENJDK_TARGET_OS), macosx) 61189251Ssam MAIN_MODULES += jdk.deploy.osx 62189251Ssamendif 63189251Ssam 64189251SsamJRE_MODULES := $(MAIN_MODULES) $(PROVIDER_MODULES) 65189251SsamJDK_MODULES := $(JRE_MODULES) $(TOOLS_MODULES) 66189251Ssam 67189251Ssam# compact3 builds have additional modules 68189251SsamJDK_COMPACT3_MODULES := java.compact3 java.smartcardio jdk.httpserver jdk.naming.dns \ 69189251Ssam jdk.naming.rmi jdk.sctp jdk.security.auth 70189251Ssam 71189251Ssam# Replacing double-comma with a single comma is to workaround the issue 72189251Ssam# with some version of make on windows that doesn't substitute spaces 73189251Ssam# with one comma properly as with make 4.0 74189251Ssamdefine SubstComma 75189251Ssam $(subst $(COMMA)$(COMMA),$(COMMA),$(subst $(SPACE),$(COMMA),$(strip $1))) 76189251Ssamendef 77189251SsamJRE_MODULES_LIST := $(call SubstComma, $(JRE_MODULES)) 78189251SsamJDK_MODULES_LIST := $(call SubstComma, $(JDK_MODULES)) 79189251Ssam 80189251Ssam################################################################################ 81189251Ssam 82189251SsamJRE_SORTED_MODULES := $(SUPPORT_OUTPUTDIR)/jre-sorted-modules 83189251SsamJDK_SORTED_MODULES := $(SUPPORT_OUTPUTDIR)/jdk-sorted-modules 84189251SsamJRE_COMPACT1_SORTED_MODULES := $(SUPPORT_OUTPUTDIR)/compact1-sorted-modules 85189251SsamJRE_COMPACT2_SORTED_MODULES := $(SUPPORT_OUTPUTDIR)/compact2-sorted-modules 86189251SsamJRE_COMPACT3_SORTED_MODULES := $(SUPPORT_OUTPUTDIR)/compact3-sorted-modules 87189251Ssam 88189251Ssam 89189251SsamMODULES_CMDS := $(SUPPORT_OUTPUTDIR)/modules_cmds-stripped 90189251SsamMODULES_LIBS := $(SUPPORT_OUTPUTDIR)/modules_libs-stripped 91189251SsamMODULES_CONF := $(SUPPORT_OUTPUTDIR)/modules_conf 92189251Ssam 93214734SrpauloJIMAGE_TOOL := $(JAVA_SMALL) \ 94214734Srpaulo -Xbootclasspath/p:$(BUILDTOOLS_OUTPUTDIR)/interim_jimage_classes \ 95214734Srpaulo -cp $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes build.tools.module.ImageBuilder \ 96189251Ssam --cmds $(MODULES_CMDS) \ 97189251Ssam --libs $(MODULES_LIBS) \ 98189251Ssam --configs $(MODULES_CONF) \ 99189251Ssam --classes $(JDK_OUTPUTDIR)/modules \ 100189251Ssam --endian $(OPENJDK_TARGET_CPU_ENDIAN) \ 101189251Ssam # 102189251Ssam 103189251SsamMODULES_XML += $(SRC_ROOT)/modules.xml 104189251SsamDEPENDENCIES := $(call CacheFind, \ 105189251Ssam $(SUPPORT_OUTPUTDIR)/modules_cmds \ 106189251Ssam $(SUPPORT_OUTPUTDIR)/modules_libs) \ 107189251Ssam $(wildcard $(JDK_OUTPUTDIR)/modules/*/_*) \ 108189251Ssam $(MODULES_XML) 109189251Ssam # 110189251Ssam 111189251Ssam# Use this file inside the image as target for make rule 112189251SsamJIMAGE_TARGET_FILE := bin/java$(EXE_SUFFIX) 113189251Ssam 114189251Ssam$(JDK_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(DEPENDENCIES) \ 115189251Ssam $(call DependOnVariable, JDK_MODULES_LIST) 116189251Ssam $(ECHO) Creating jdk jimage 117189251Ssam $(RM) -r $(JDK_IMAGE_DIR) $(JDK_SORTED_MODULES) 118189251Ssam $(JIMAGE_TOOL) --mods $(JDK_MODULES_LIST) --output $(JDK_IMAGE_DIR) \ 119189251Ssam $(MODULES_XML) > $(JDK_SORTED_MODULES) 120189251Ssam $(TOUCH) $@ 121189251Ssam 122189251Ssam$(JRE_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(DEPENDENCIES) \ 123189251Ssam $(call DependOnVariable, JRE_MODULES_LIST) 124189251Ssam $(ECHO) Creating jre jimage 125189251Ssam $(RM) -r $(JRE_IMAGE_DIR) $(JRE_SORTED_MODULES) 126189251Ssam $(JIMAGE_TOOL) --mods $(JRE_MODULES_LIST) --output $(JRE_IMAGE_DIR) \ 127189251Ssam $(MODULES_XML) > $(JRE_SORTED_MODULES) 128189251Ssam $(TOUCH) $@ 129189251Ssam 130189251SsamJRE_COMPACT1_IMAGE_DIR := $(JRE_IMAGE_DIR)-compact1 131189251SsamJRE_COMPACT2_IMAGE_DIR := $(JRE_IMAGE_DIR)-compact2 132189251SsamJRE_COMPACT3_IMAGE_DIR := $(JRE_IMAGE_DIR)-compact3 133189251Ssam 134189251SsamCOMPACT_EXTRA_MODULES := jdk.localedata jdk.crypto.pkcs11 jdk.crypto.ec 135189251Ssam 136189251Ssam$(JRE_COMPACT1_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(DEPENDENCIES) \ 137189251Ssam $(call DependOnVariable, JRE_COMPACT1_MODULES_LIST) 138189251Ssam $(ECHO) Creating jre compact1 jimage 139189251Ssam $(RM) -r $(JRE_COMPACT1_IMAGE_DIR) $(JRE_COMPACT1_SORTED_MODULES) 140189251Ssam $(JIMAGE_TOOL) \ 141189251Ssam --mods $(call SubstComma, java.compact1 $(COMPACT_EXTRA_MODULES)) \ 142189251Ssam --output $(JRE_COMPACT1_IMAGE_DIR) \ 143189251Ssam $(MODULES_XML) > $(JRE_COMPACT1_SORTED_MODULES) 144189251Ssam $(TOUCH) $@ 145189251Ssam 146189251Ssam$(JRE_COMPACT2_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(DEPENDENCIES) \ 147189251Ssam $(call DependOnVariable, JRE_COMPACT2_MODULES_LIST) 148189251Ssam $(ECHO) Creating jre compact2 jimage 149189251Ssam $(RM) -r $(JRE_COMPACT2_IMAGE_DIR) $(JRE_COMPACT2_SORTED_MODULES) 150189251Ssam $(JIMAGE_TOOL) \ 151189251Ssam --mods $(call SubstComma, java.compact2 $(COMPACT_EXTRA_MODULES)) \ 152189251Ssam --output $(JRE_COMPACT2_IMAGE_DIR) \ 153189251Ssam $(MODULES_XML) > $(JRE_COMPACT2_SORTED_MODULES) 154189251Ssam $(TOUCH) $@ 155189251Ssam 156189251Ssam$(JRE_COMPACT3_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(DEPENDENCIES) \ 157189251Ssam $(call DependOnVariable, JRE_COMPACT3_MODULES_LIST) 158189251Ssam $(ECHO) Creating jre compact3 jimage 159189251Ssam $(RM) -r $(JRE_COMPACT3_IMAGE_DIR) $(JRE_COMPACT3_SORTED_MODULES) 160189251Ssam $(JIMAGE_TOOL) \ 161189251Ssam --mods $(call SubstComma, $(JDK_COMPACT3_MODULES) $(COMPACT_EXTRA_MODULES)) \ 162189251Ssam --output $(JRE_COMPACT3_IMAGE_DIR) \ 163189251Ssam $(MODULES_XML) > $(JRE_COMPACT3_SORTED_MODULES) 164189251Ssam $(TOUCH) $@ 165189251Ssam 166189251SsamTOOL_JRE_TARGETS := $(JRE_IMAGE_DIR)/$(JIMAGE_TARGET_FILE) 167189251SsamTOOL_JDK_TARGETS := $(JDK_IMAGE_DIR)/$(JIMAGE_TARGET_FILE) 168189251SsamTOOL_JRE_COMPACT1_TARGETS := $(JRE_COMPACT1_IMAGE_DIR)/$(JIMAGE_TARGET_FILE) 169189251SsamTOOL_JRE_COMPACT2_TARGETS := $(JRE_COMPACT2_IMAGE_DIR)/$(JIMAGE_TARGET_FILE) 170189251SsamTOOL_JRE_COMPACT3_TARGETS := $(JRE_COMPACT3_IMAGE_DIR)/$(JIMAGE_TARGET_FILE) 171189251Ssam 172189251Ssam################################################################################ 173189251Ssam# /man dir 174189251Ssam# 175189251Ssam# All variables in this section are assigned with simple =, without :, to enable 176189251Ssam# more selective overriding from the custom version of this file. 177189251Ssam# 178189251Ssam# Avoid evaluating this whole section on windows for speed and stability 179189251Ssamifneq ($(OPENJDK_TARGET_OS), windows) 180189251Ssam JRE_MAN_PAGES += \ 181189251Ssam java.1 \ 182189251Ssam jjs.1 \ 183189251Ssam keytool.1 \ 184189251Ssam orbd.1 \ 185189251Ssam pack200.1 \ 186189251Ssam policytool.1 \ 187189251Ssam rmid.1 \ 188189251Ssam rmiregistry.1 \ 189189251Ssam servertool.1 \ 190189251Ssam tnameserv.1 \ 191189251Ssam unpack200.1 192189251Ssam 193189251Ssam ifndef OPENJDK 194189251Ssam ifneq ($(OPENJDK_TARGET_OS), solaris) 195189251Ssam JRE_MAN_PAGES += javaws.1 196189251Ssam endif 197189251Ssam endif 198189251Ssam 199189251Ssam JDK_MAN_PAGES += \ 200189251Ssam $(JRE_MAN_PAGES) \ 201189251Ssam appletviewer.1 \ 202189251Ssam idlj.1 \ 203189251Ssam jar.1 \ 204189251Ssam jarsigner.1 \ 205189251Ssam javac.1 \ 206189251Ssam javadoc.1 \ 207189251Ssam javah.1 \ 208214734Srpaulo javap.1 \ 209189251Ssam jconsole.1 \ 210189251Ssam jcmd.1 \ 211189251Ssam jdb.1 \ 212189251Ssam jdeps.1 \ 213189251Ssam jhat.1 \ 214214734Srpaulo jinfo.1 \ 215189251Ssam jmap.1 \ 216189251Ssam jps.1 \ 217189251Ssam jrunscript.1 \ 218189251Ssam jsadebugd.1 \ 219189251Ssam jstack.1 \ 220189251Ssam jstat.1 \ 221214734Srpaulo jstatd.1 \ 222214734Srpaulo native2ascii.1 \ 223214734Srpaulo rmic.1 \ 224189251Ssam schemagen.1 \ 225189251Ssam serialver.1 \ 226189251Ssam wsgen.1 \ 227189251Ssam wsimport.1 \ 228189251Ssam xjc.1 229189251Ssam 230189251Ssam # This variable is potentially overridden in the closed makefile. 231189251Ssam MAN_SRC_BASEDIR ?= $(JDK_TOPDIR)/src 232189251Ssam 233189251Ssam ifeq ($(OPENJDK_TARGET_OS), linux) 234189251Ssam MAN_SRC_DIR = $(MAN_SRC_BASEDIR)/linux/doc 235189251Ssam MAN1_SUBDIR = man 236189251Ssam endif 237189251Ssam ifeq ($(OPENJDK_TARGET_OS), solaris) 238214734Srpaulo MAN_SRC_DIR = $(MAN_SRC_BASEDIR)/solaris/doc 239189251Ssam MAN1_SUBDIR = sun/man/man1 240189251Ssam endif 241189251Ssam ifeq ($(OPENJDK_TARGET_OS), macosx) 242214734Srpaulo MAN_SRC_DIR = $(MAN_SRC_BASEDIR)/bsd/doc 243189251Ssam MAN1_SUBDIR = man 244189251Ssam endif 245189251Ssam 246189251Ssam $(JRE_IMAGE_DIR)/man/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/% 247189251Ssam $(ECHO) $(LOG_INFO) Copying $(patsubst $(OUTPUT_ROOT)/%,%,$@) 248189251Ssam $(install-file) 249189251Ssam 250189251Ssam $(JDK_IMAGE_DIR)/man/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/% 251252726Srpaulo $(ECHO) $(LOG_INFO) Copying $(patsubst $(OUTPUT_ROOT)/%,%,$@) 252252726Srpaulo $(install-file) 253252726Srpaulo 254189251Ssam define install-ja-manpage 255189251Ssam $(MKDIR) -p $(@D) 256252726Srpaulo $(CAT) $< \ 257189251Ssam | $(NATIVE2ASCII) -encoding eucJP \ 258189251Ssam | $(SED) 's/@@VERSION@@/$(THIS_JDK_VERSION)/g' \ 259189251Ssam | $(NATIVE2ASCII) -reverse -encoding $1 \ 260189251Ssam > $@ 261189251Ssam endef 262189251Ssam 263189251Ssam $(JRE_IMAGE_DIR)/man/ja_JP.UTF-8/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/ja/% 264189251Ssam $(ECHO) $(LOG_INFO) Converting $(patsubst $(OUTPUT_ROOT)/%,%,$@) 265189251Ssam $(call install-ja-manpage, UTF-8) 266189251Ssam 267189251Ssam $(JDK_IMAGE_DIR)/man/ja_JP.UTF-8/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/ja/% 268189251Ssam $(ECHO) $(LOG_INFO) Converting $(patsubst $(OUTPUT_ROOT)/%,%,$@) 269189251Ssam $(call install-ja-manpage, UTF-8) 270189251Ssam 271252726Srpaulo $(JRE_IMAGE_DIR)/man/ja_JP.PCK/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/ja/% 272252726Srpaulo $(ECHO) $(LOG_INFO) Converting $(patsubst $(OUTPUT_ROOT)/%,%,$@) 273252726Srpaulo $(call install-ja-manpage, PCK) 274252726Srpaulo 275252726Srpaulo $(JDK_IMAGE_DIR)/man/ja_JP.PCK/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/ja/% 276252726Srpaulo $(ECHO) $(LOG_INFO) Converting $(patsubst $(OUTPUT_ROOT)/%,%,$@) 277252726Srpaulo $(call install-ja-manpage, PCK) 278252726Srpaulo 279252726Srpaulo ifeq ($(OPENJDK_TARGET_OS), solaris) 280189251Ssam $(JRE_IMAGE_DIR)/man/ja/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/ja/% 281189251Ssam $(ECHO) $(LOG_INFO) Converting $(patsubst $(OUTPUT_ROOT)/%,%,$@) 282189251Ssam $(install-file) 283189251Ssam 284189251Ssam $(JDK_IMAGE_DIR)/man/ja/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/ja/% 285189251Ssam $(ECHO) $(LOG_INFO) Converting $(patsubst $(OUTPUT_ROOT)/%,%,$@) 286189251Ssam $(install-file) 287252726Srpaulo endif 288189251Ssam 289189251Ssam ifneq ($(findstring $(OPENJDK_TARGET_OS), linux macosx), ) 290189251Ssam $(JRE_IMAGE_DIR)/man/ja: 291189251Ssam $(ECHO) $(LOG_INFO) Creating $(patsubst $(OUTPUT_ROOT)/%,%,$@) 292189251Ssam $(CD) $(@D) && $(RM) ja && $(LN) -s ja_JP.UTF-8 ja 293189251Ssam 294189251Ssam $(JDK_IMAGE_DIR)/man/ja: 295189251Ssam $(ECHO) $(LOG_INFO) Creating $(patsubst $(OUTPUT_ROOT)/%,%,$@) 296189251Ssam $(CD) $(@D) && $(RM) ja && $(LN) -s ja_JP.UTF-8 ja 297189251Ssam endif 298189251Ssam 299189251Ssam ifeq ($(OPENJDK_TARGET_OS), solaris) 300189251Ssam JRE_MAN_PAGE_LIST = $(addprefix $(JRE_IMAGE_DIR)/man/man1/, $(JRE_MAN_PAGES)) \ 301189251Ssam $(addprefix $(JRE_IMAGE_DIR)/man/ja/man1/, $(JRE_MAN_PAGES)) \ 302189251Ssam $(addprefix $(JRE_IMAGE_DIR)/man/ja_JP.UTF-8/man1/, $(JRE_MAN_PAGES)) \ 303189251Ssam $(addprefix $(JRE_IMAGE_DIR)/man/ja_JP.PCK/man1/, $(JRE_MAN_PAGES)) 304189251Ssam 305189251Ssam JDK_MAN_PAGE_LIST = $(addprefix $(JDK_IMAGE_DIR)/man/man1/, $(JDK_MAN_PAGES)) \ 306189251Ssam $(addprefix $(JDK_IMAGE_DIR)/man/ja/man1/, $(JDK_MAN_PAGES)) \ 307189251Ssam $(addprefix $(JDK_IMAGE_DIR)/man/ja_JP.UTF-8/man1/, $(JDK_MAN_PAGES)) \ 308189251Ssam $(addprefix $(JDK_IMAGE_DIR)/man/ja_JP.PCK/man1/, $(JDK_MAN_PAGES)) 309189251Ssam endif 310189251Ssam 311189251Ssam ifneq ($(findstring $(OPENJDK_TARGET_OS), linux macosx), ) 312189251Ssam JRE_MAN_PAGE_LIST = $(addprefix $(JRE_IMAGE_DIR)/man/man1/, $(JRE_MAN_PAGES)) \ 313189251Ssam $(addprefix $(JRE_IMAGE_DIR)/man/ja_JP.UTF-8/man1/, $(JRE_MAN_PAGES)) \ 314189251Ssam $(JRE_IMAGE_DIR)/man/ja 315189251Ssam 316189251Ssam JDK_MAN_PAGE_LIST = $(addprefix $(JDK_IMAGE_DIR)/man/man1/, $(JDK_MAN_PAGES)) \ 317189251Ssam $(addprefix $(JDK_IMAGE_DIR)/man/ja_JP.UTF-8/man1/, $(JDK_MAN_PAGES)) \ 318189251Ssam $(JDK_IMAGE_DIR)/man/ja 319189251Ssam endif 320189251Ssam 321189251Ssam JRE_TARGETS += $(JRE_MAN_PAGE_LIST) 322189251Ssam JDK_TARGETS += $(JDK_MAN_PAGE_LIST) 323189251Ssamendif # Windows 324189251Ssam 325189251Ssam################################################################################ 326189251Ssam# /include dir 327189251Ssam 328189251Ssam$(eval $(call SetupCopyFiles,COPY_INCLUDES, \ 329189251Ssam SRC := $(JDK_OUTPUTDIR)/include, \ 330189251Ssam DEST := $(JDK_IMAGE_DIR)/include, \ 331189251Ssam FILES := $(call CacheFind,$(JDK_OUTPUTDIR)/include))) 332189251Ssam 333189251SsamJDK_TARGETS += $(COPY_INCLUDES) 334189251Ssam 335189251Ssam################################################################################ 336189251Ssam# doc files 337189251Ssam 338189251SsamJRE_DOC_FILES ?= LICENSE ASSEMBLY_EXCEPTION THIRD_PARTY_README 339189251SsamJDK_DOC_FILES ?= LICENSE ASSEMBLY_EXCEPTION THIRD_PARTY_README 340189251SsamJRE_DOC_LOCATION ?= $(JDK_TOPDIR) 341189251SsamJDK_DOC_LOCATION ?= $(JDK_TOPDIR) 342189251Ssam 343189251SsamJRE_DOC_TARGETS := $(addprefix $(JRE_IMAGE_DIR)/, $(JRE_DOC_FILES)) 344189251SsamJDK_DOC_TARGETS := $(addprefix $(JDK_IMAGE_DIR)/, $(JDK_DOC_FILES)) 345189251Ssam 346189251Ssam# Processing license files from source area to image area 347189251Ssam# These are modified to have the platform specific EOL chars. 348189251Ssamdefine process-doc-file 349214734Srpaulo $(ECHO) $(LOG_INFO) Processing $(patsubst $(OUTPUT_ROOT)/%,%,$@) 350214734Srpaulo $(MKDIR) -p $(@D) 351189251Ssam $(RM) $@ 352189251Ssam LC_ALL=C $(SED) 's/$$//g' $< > $@ 353189251Ssam $(CHMOD) 444 $@ 354189251Ssamendef 355189251Ssam 356189251Ssam$(JRE_IMAGE_DIR)/%: $(JRE_DOC_LOCATION)/% 357189251Ssam $(process-doc-file) 358189251Ssam 359189251Ssam$(JDK_IMAGE_DIR)/%: $(JDK_DOC_LOCATION)/% 360189251Ssam $(process-doc-file) 361189251Ssam 362189251SsamJRE_TARGETS += $(JRE_DOC_TARGETS) 363189251SsamJDK_TARGETS += $(JDK_DOC_TARGETS) 364189251Ssam 365189251Ssam################################################################################ 366189251Ssam# Release file 367189251Ssam 368189251SsamJRE_INFO_FILE := $(JRE_IMAGE_DIR)/release 369189251SsamJDK_INFO_FILE := $(JDK_IMAGE_DIR)/release 370189251SsamJRE_COMPACT1_INFO_FILE := $(JRE_COMPACT1_IMAGE_DIR)/release 371189251SsamJRE_COMPACT2_INFO_FILE := $(JRE_COMPACT2_IMAGE_DIR)/release 372189251SsamJRE_COMPACT3_INFO_FILE := $(JRE_COMPACT3_IMAGE_DIR)/release 373214734Srpaulo 374189251Ssam# Common way to emit a line into the release or info file 375189251Ssamdefine info-file-item # name value 376189251Ssam $(PRINTF) '%s="%s"\n' $1 $2 >> $@ 377189251Ssamendef 378189251Ssam 379189251Ssam# Param 1 - The file containing the MODULES list 380189251Ssamdefine create-info-file 381189251Ssam $(call info-file-item, "JAVA_VERSION", "$(JDK_VERSION)") 382189251Ssam $(call info-file-item, "OS_NAME", "$(REQUIRED_OS_NAME)") 383189251Ssam $(call info-file-item, "OS_VERSION", "$(REQUIRED_OS_VERSION)") 384189251Ssam $(call info-file-item, "OS_ARCH", "$(OPENJDK_TARGET_CPU_LEGACY)") 385189251Ssam $(if $(JDK_ARCH_ABI_PROP_NAME), \ 386189251Ssam $(call info-file-item, "SUN_ARCH_ABI", "$(JDK_ARCH_ABI_PROP_NAME)")) 387189251Ssam $(call info-file-item, "SOURCE", "$(ALL_SOURCE_TIPS)") 388189251Ssam $(call info-file-item, "MODULES", "`$(CAT) $1`") 389189251Ssamendef 390189251Ssam 391189251Ssam# Param 1 - The file containing the MODULES list 392189251Ssamdefine prepare-info-file 393189251Ssam $(ECHO) $(LOG_INFO) Generating $(patsubst $(OUTPUT_ROOT)/%,%,$@) 394189251Ssam $(MKDIR) -p $(@D) 395189251Ssam $(RM) $@ 396189251Ssamendef 397189251Ssam 398189251Ssamdefine info-file 399189251Ssam $(call prepare-info-file, $1) 400189251Ssam $(call create-info-file, $1) 401189251Ssamendef 402189251Ssam 403189251Ssam# Create a variable dependency file common for all release info files. The 404189251Ssam# sorted module list will only change if the image is regenerated, which will 405189251Ssam# trigger a rebuild of these files anyway. 406189251SsamINFO_FILE_VARDEPS := $(call DependOnVariable, create-info-file) 407189251Ssam 408189251SsamALL_SOURCE_TIPS = $(shell \ 409189251Ssam if [ -f $(SUPPORT_OUTPUTDIR)/source_tips ] ; then \ 410189251Ssam $(CAT) $(SUPPORT_OUTPUTDIR)/source_tips ; \ 411189251Ssam fi) 412189251Ssam 413189251Ssam$(JRE_INFO_FILE): $(INFO_FILE_VARDEPS) $(SUPPORT_OUTPUTDIR)/source_tips 414189251Ssam $(call info-file, $(JRE_SORTED_MODULES)) 415189251Ssam 416189251Ssam$(JDK_INFO_FILE): $(INFO_FILE_VARDEPS) $(SUPPORT_OUTPUTDIR)/source_tips 417189251Ssam $(call info-file, $(JDK_SORTED_MODULES)) 418189251Ssam 419189251Ssam$(JRE_COMPACT1_INFO_FILE): $(INFO_FILE_VARDEPS) $(SUPPORT_OUTPUTDIR)/source_tips 420189251Ssam $(call info-file, $(JRE_COMPACT1_SORTED_MODULES)) 421189251Ssam $(call info-file-item, "JAVA_PROFILE", "compact1") 422189251Ssam 423189251Ssam$(JRE_COMPACT2_INFO_FILE): $(INFO_FILE_VARDEPS) $(SUPPORT_OUTPUTDIR)/source_tips 424189251Ssam $(call info-file, $(JRE_COMPACT2_SORTED_MODULES)) 425189251Ssam $(call info-file-item, "JAVA_PROFILE", "compact2") 426189251Ssam 427189251Ssam$(JRE_COMPACT3_INFO_FILE): $(INFO_FILE_VARDEPS) $(SUPPORT_OUTPUTDIR)/source_tips 428189251Ssam $(call info-file, $(JRE_COMPACT3_SORTED_MODULES)) 429189251Ssam $(call info-file-item, "JAVA_PROFILE", "compact3") 430189251Ssam 431189251SsamJRE_TARGETS += $(JRE_INFO_FILE) 432189251SsamJDK_TARGETS += $(JDK_INFO_FILE) 433189251SsamJRE_COMPACT1_TARGETS += $(JRE_COMPACT1_INFO_FILE) 434189251SsamJRE_COMPACT2_TARGETS += $(JRE_COMPACT2_INFO_FILE) 435189251SsamJRE_COMPACT3_TARGETS += $(JRE_COMPACT3_INFO_FILE) 436189251Ssam 437189251Ssam################################################################################ 438189251Ssam# src.zip 439189251Ssam 440189251Ssam$(JDK_IMAGE_DIR)/src.zip: $(SUPPORT_OUTPUTDIR)/src.zip 441189251Ssam $(ECHO) $(LOG_INFO) Copying $(patsubst $(OUTPUT_ROOT)/%,%,$@) 442189251Ssam $(install-file) 443189251Ssam 444189251SsamJDK_TARGETS += $(JDK_IMAGE_DIR)/src.zip 445189251Ssam 446189251Ssam################################################################################ 447189251Ssam# /demo dir 448189251Ssam 449189251Ssam# The db demo contains an empty dir that needs to be copied. The other 450189251Ssam# directories will always trigger the rule for recompile since 451189251Ssam# _the.list_of_packages files are touched. 452189251Ssamifneq ($(findstring images, $(MAKECMDGOALS)), ) 453189251Ssam $(JDK_IMAGE_DIR)/demo/%: $(SUPPORT_OUTPUTDIR)/demo/image/% 454189251Ssam if [ ! -d "$@" ]; then \ 455189251Ssam $(ECHO) $(LOG_INFO) Copying '$(patsubst $(OUTPUT_ROOT)/%,%,$@)'; \ 456189251Ssam $(MKDIR) -p $(@D); \ 457189251Ssam if [ -d "$<" ]; then $(MKDIR) -p $@; else $(CP) '$<' '$@'; fi \ 458189251Ssam fi 459189251Ssam 460189251Ssam # Find all files including directories 461189251Ssam JDK_DEMO_TARGETS := $(if $(wildcard $(SUPPORT_OUTPUTDIR)/demo/image), \ 462189251Ssam $(patsubst $(SUPPORT_OUTPUTDIR)/demo/image/%, $(JDK_IMAGE_DIR)/demo/%, \ 463189251Ssam $(shell $(FIND) $(SUPPORT_OUTPUTDIR)/demo/image \ 464189251Ssam ! \( -name "_the*" -o -name "javac_state" \) ))) 465189251Ssam 466189251Ssam JDK_TARGETS += $(JDK_DEMO_TARGETS) 467189251Ssamendif 468189251Ssam 469189251Ssam################################################################################ 470189251Ssam# /sample dir 471189251Ssam 472189251Ssam$(eval $(call SetupCopyFiles,COPY_SAMPLES, \ 473189251Ssam SRC := $(SUPPORT_OUTPUTDIR)/sample, \ 474189251Ssam DEST := $(JDK_IMAGE_DIR)/sample, \ 475189251Ssam FILES := $(if $(wildcard $(SUPPORT_OUTPUTDIR)/sample), \ 476189251Ssam $(call CacheFind,$(SUPPORT_OUTPUTDIR)/sample)))) 477189251Ssam 478189251SsamJDK_TARGETS += $(COPY_SAMPLES) 479189251Ssam 480189251Ssam################################################################################ 481189251Ssam# jrt-fs.jar 482189251Ssam 483189251Ssam$(eval $(call SetupCopyFiles,COPY_JRTFS_JAR, \ 484189251Ssam SRC := $(SUPPORT_OUTPUTDIR), \ 485189251Ssam DEST := $(JDK_IMAGE_DIR), \ 486189251Ssam FILES := $(SUPPORT_OUTPUTDIR)/jrt-fs.jar)) 487189251Ssam 488189251SsamJDK_TARGETS += $(COPY_JRTFS_JAR) 489189251Ssam 490189251Ssam################################################################################ 491189251Ssam 492189251Ssam# Include custom post hook here to make it possible to augment the target lists 493189251Ssam# before actual target prerequisites are declared. 494189251Ssam$(eval $(call IncludeCustomExtension, , Images-post.gmk)) 495189251Ssam 496189251Ssam################################################################################ 497189251Ssam 498189251Ssam$(JRE_TARGETS): $(TOOL_JRE_TARGETS) 499189251Ssam$(JDK_TARGETS): $(TOOL_JDK_TARGETS) 500189251Ssam 501189251Ssamjimages: $(TOOL_JRE_TARGETS) $(TOOL_JDK_TARGETS) $(JRE_TARGETS) $(JDK_TARGETS) 502189251Ssam 503189251Ssam 504189251Ssam$(JRE_COMPACT1_TARGETS): $(TOOL_JRE_COMPACT1_TARGETS) 505189251Ssam$(JRE_COMPACT2_TARGETS): $(TOOL_JRE_COMPACT2_TARGETS) 506189251Ssam$(JRE_COMPACT3_TARGETS): $(TOOL_JRE_COMPACT3_TARGETS) 507189251Ssam 508189251Ssamprofiles: $(TOOL_JRE_COMPACT1_TARGETS) \ 509189251Ssam $(TOOL_JRE_COMPACT2_TARGETS) \ 510189251Ssam $(TOOL_JRE_COMPACT3_TARGETS) \ 511189251Ssam $(JRE_COMPACT1_TARGETS) \ 512189251Ssam $(JRE_COMPACT2_TARGETS) \ 513189251Ssam $(JRE_COMPACT3_TARGETS) 514189251Ssam 515189251Ssam.PHONY: default all jimages profiles 516189251Ssam