Images.gmk revision 1472:495c4a8641b0
1189702Ssam# 2189702Ssam# Copyright (c) 2014, 2015 Oracle and/or its affiliates. All rights reserved. 3189702Ssam# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4189702Ssam# 5189702Ssam# This code is free software; you can redistribute it and/or modify it 6189702Ssam# under the terms of the GNU General Public License version 2 only, as 7189702Ssam# published by the Free Software Foundation. Oracle designates this 8189702Ssam# particular file as subject to the "Classpath" exception as provided 9189702Ssam# by Oracle in the LICENSE file that accompanied this code. 10189702Ssam# 11189702Ssam# This code is distributed in the hope that it will be useful, but WITHOUT 12189702Ssam# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13189702Ssam# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14189702Ssam# version 2 for more details (a copy is included in the LICENSE file that 15189702Ssam# accompanied this code). 16189702Ssam# 17189702Ssam# You should have received a copy of the GNU General Public License version 18189702Ssam# 2 along with this work; if not, write to the Free Software Foundation, 19189702Ssam# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20189702Ssam# 21189702Ssam# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22189702Ssam# or visit www.oracle.com if you need additional information or have any 23189702Ssam# questions. 24189702Ssam# 25189702Ssam 26189702Ssamdefault: all 27189702Ssam 28189702Ssaminclude $(SPEC) 29189702Ssaminclude MakeBase.gmk 30189702Ssam 31189702SsamTOOL_TARGETS := 32189702SsamJDK_TARGETS := 33189702SsamJRE_TARGETS := 34189702Ssam 35189702Ssam# Hook to include the corresponding custom file, if present. 36189702Ssam$(eval $(call IncludeCustomExtension, , Images-pre.gmk)) 37189702Ssam 38189702Ssam############################################################################ 39189702Ssam 40217680SadrianMAIN_MODULES += java.se java.smartcardio jdk.httpserver jdk.sctp \ 41217680Sadrian jdk.security.auth jdk.security.jgss jdk.pack200 jdk.xml.dom 42189702Ssam 43189702Ssam# providers 44189702SsamPROVIDER_MODULES += jdk.charsets jdk.crypto.ec jdk.crypto.pkcs11 jdk.jvmstat jdk.localedata \ 45189702Ssam jdk.naming.dns jdk.naming.rmi jdk.scripting.nashorn jdk.zipfs 46189702Ssam 47189702Ssam# tools 48189702SsamTOOLS_MODULES += jdk.attach jdk.compiler jdk.dev jdk.javadoc jdk.jcmd jdk.jconsole \ 49189702Ssam jdk.hotspot.agent jdk.hprof.agent jdk.jartool jdk.jdi jdk.jdwp.agent \ 50189702Ssam jdk.policytool jdk.rmic jdk.xml.bind jdk.xml.ws 51189702Ssam 52189702Ssamifeq ($(OPENJDK_TARGET_OS), windows) 53189702Ssam PROVIDER_MODULES += jdk.crypto.mscapi 54189702Ssamendif 55189702Ssam 56189702Ssamifeq ($(OPENJDK_TARGET_OS), solaris) 57189702Ssam PROVIDER_MODULES += jdk.crypto.ucrypto 58189702Ssamendif 59189702Ssam 60189702Ssamifeq ($(OPENJDK_TARGET_OS), windows) 61189702Ssam MAIN_MODULES += jdk.accessibility 62189702Ssamendif 63189702Ssam 64189702Ssamifeq ($(OPENJDK_TARGET_OS), macosx) 65189702Ssam MAIN_MODULES += jdk.deploy.osx 66189702Ssamendif 67189702Ssam 68189702SsamJRE_MODULES := $(MAIN_MODULES) $(PROVIDER_MODULES) 69189702SsamJDK_MODULES := $(JRE_MODULES) $(TOOLS_MODULES) 70189702Ssam 71189702Ssam# compact3 builds have additional modules 72244962SadrianJDK_COMPACT3_MODULES := java.compact3 java.smartcardio jdk.httpserver jdk.naming.dns \ 73189702Ssam jdk.naming.rmi jdk.sctp jdk.security.auth jdk.management 74189702Ssam 75189702Ssam# Replacing double-comma with a single comma is to workaround the issue 76189702Ssam# with some version of make on windows that doesn't substitute spaces 77189702Ssam# with one comma properly as with make 4.0 78189702Ssamdefine SubstComma 79189702Ssam $(subst $(COMMA)$(COMMA),$(COMMA),$(subst $(SPACE),$(COMMA),$(strip $1))) 80189702Ssamendef 81189702SsamJRE_MODULES_LIST := $(call SubstComma, $(JRE_MODULES)) 82189702SsamJDK_MODULES_LIST := $(call SubstComma, $(JDK_MODULES)) 83189702Ssam 84189702Ssam################################################################################ 85189702Ssam 86189702SsamJRE_SORTED_MODULES := $(SUPPORT_OUTPUTDIR)/jre-sorted-modules 87189702SsamJDK_SORTED_MODULES := $(SUPPORT_OUTPUTDIR)/jdk-sorted-modules 88189702SsamJRE_COMPACT1_SORTED_MODULES := $(SUPPORT_OUTPUTDIR)/compact1-sorted-modules 89189702SsamJRE_COMPACT2_SORTED_MODULES := $(SUPPORT_OUTPUTDIR)/compact2-sorted-modules 90189702SsamJRE_COMPACT3_SORTED_MODULES := $(SUPPORT_OUTPUTDIR)/compact3-sorted-modules 91189702Ssam 92189702Ssam 93189702SsamMODULES_CMDS := $(SUPPORT_OUTPUTDIR)/modules_cmds-stripped 94189702SsamMODULES_LIBS := $(SUPPORT_OUTPUTDIR)/modules_libs-stripped 95189702SsamMODULES_CONF := $(SUPPORT_OUTPUTDIR)/modules_conf 96189702Ssam 97189702SsamJIMAGE_TOOL := $(JAVA_SMALL) \ 98189702Ssam -Xbootclasspath/p:$(BUILDTOOLS_OUTPUTDIR)/interim_jimage_classes \ 99189702Ssam -cp $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes build.tools.module.ImageBuilder \ 100189702Ssam --cmds $(MODULES_CMDS) \ 101189702Ssam --libs $(MODULES_LIBS) \ 102189702Ssam --configs $(MODULES_CONF) \ 103189702Ssam --classes $(JDK_OUTPUTDIR)/modules \ 104189702Ssam --endian $(OPENJDK_TARGET_CPU_ENDIAN) \ 105189702Ssam # 106189702Ssam 107189702SsamMODULES_XML += $(SRC_ROOT)/modules.xml 108189702SsamDEPENDENCIES := $(call CacheFind, \ 109189702Ssam $(SUPPORT_OUTPUTDIR)/modules_cmds \ 110189702Ssam $(SUPPORT_OUTPUTDIR)/modules_libs) \ 111189702Ssam $(wildcard $(JDK_OUTPUTDIR)/modules/*/_*) \ 112189702Ssam $(MODULES_XML) 113189702Ssam # 114189702Ssam 115189702Ssam# Use this file inside the image as target for make rule 116189702SsamJIMAGE_TARGET_FILE := bin/java$(EXE_SUFFIX) 117189702Ssam 118189702Ssam$(JDK_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(DEPENDENCIES) \ 119189702Ssam $(call DependOnVariable, JDK_MODULES_LIST) 120189702Ssam $(ECHO) Creating jdk jimage 121189702Ssam $(RM) -r $(JDK_IMAGE_DIR) $(JDK_SORTED_MODULES) 122189702Ssam $(JIMAGE_TOOL) --mods $(JDK_MODULES_LIST) --output $(JDK_IMAGE_DIR) \ 123189702Ssam $(MODULES_XML) > $(JDK_SORTED_MODULES) 124189702Ssam $(TOUCH) $@ 125189702Ssam 126189702Ssam$(JRE_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(DEPENDENCIES) \ 127189702Ssam $(call DependOnVariable, JRE_MODULES_LIST) 128189702Ssam $(ECHO) Creating jre jimage 129189702Ssam $(RM) -r $(JRE_IMAGE_DIR) $(JRE_SORTED_MODULES) 130202161Sgavin $(JIMAGE_TOOL) --mods $(JRE_MODULES_LIST) --output $(JRE_IMAGE_DIR) \ 131189702Ssam $(MODULES_XML) > $(JRE_SORTED_MODULES) 132189702Ssam $(TOUCH) $@ 133202161Sgavin 134189702SsamJRE_COMPACT1_IMAGE_DIR := $(JRE_IMAGE_DIR)-compact1 135189702SsamJRE_COMPACT2_IMAGE_DIR := $(JRE_IMAGE_DIR)-compact2 136202161SgavinJRE_COMPACT3_IMAGE_DIR := $(JRE_IMAGE_DIR)-compact3 137189702Ssam 138189702SsamCOMPACT_EXTRA_MODULES := jdk.localedata jdk.crypto.pkcs11 jdk.crypto.ec 139189702Ssam 140189702Ssam$(JRE_COMPACT1_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(DEPENDENCIES) \ 141189702Ssam $(call DependOnVariable, JRE_COMPACT1_MODULES_LIST) 142189702Ssam $(ECHO) Creating jre compact1 jimage 143189702Ssam $(RM) -r $(JRE_COMPACT1_IMAGE_DIR) $(JRE_COMPACT1_SORTED_MODULES) 144189702Ssam $(JIMAGE_TOOL) \ 145189702Ssam --mods $(call SubstComma, java.compact1 $(COMPACT_EXTRA_MODULES)) \ 146189702Ssam --output $(JRE_COMPACT1_IMAGE_DIR) \ 147189702Ssam $(MODULES_XML) > $(JRE_COMPACT1_SORTED_MODULES) 148189702Ssam $(TOUCH) $@ 149189702Ssam 150189702Ssam$(JRE_COMPACT2_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(DEPENDENCIES) \ 151189702Ssam $(call DependOnVariable, JRE_COMPACT2_MODULES_LIST) 152189702Ssam $(ECHO) Creating jre compact2 jimage 153189702Ssam $(RM) -r $(JRE_COMPACT2_IMAGE_DIR) $(JRE_COMPACT2_SORTED_MODULES) 154189702Ssam $(JIMAGE_TOOL) \ 155189702Ssam --mods $(call SubstComma, java.compact2 $(COMPACT_EXTRA_MODULES)) \ 156189702Ssam --output $(JRE_COMPACT2_IMAGE_DIR) \ 157189702Ssam $(MODULES_XML) > $(JRE_COMPACT2_SORTED_MODULES) 158189702Ssam $(TOUCH) $@ 159189702Ssam 160189702Ssam$(JRE_COMPACT3_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(DEPENDENCIES) \ 161189702Ssam $(call DependOnVariable, JRE_COMPACT3_MODULES_LIST) 162189702Ssam $(ECHO) Creating jre compact3 jimage 163189702Ssam $(RM) -r $(JRE_COMPACT3_IMAGE_DIR) $(JRE_COMPACT3_SORTED_MODULES) 164189702Ssam $(JIMAGE_TOOL) \ 165189702Ssam --mods $(call SubstComma, $(JDK_COMPACT3_MODULES) $(COMPACT_EXTRA_MODULES)) \ 166189702Ssam --output $(JRE_COMPACT3_IMAGE_DIR) \ 167189702Ssam $(MODULES_XML) > $(JRE_COMPACT3_SORTED_MODULES) 168189702Ssam $(TOUCH) $@ 169189702Ssam 170189702SsamTOOL_JRE_TARGETS := $(JRE_IMAGE_DIR)/$(JIMAGE_TARGET_FILE) 171189702SsamTOOL_JDK_TARGETS := $(JDK_IMAGE_DIR)/$(JIMAGE_TARGET_FILE) 172189702SsamTOOL_JRE_COMPACT1_TARGETS := $(JRE_COMPACT1_IMAGE_DIR)/$(JIMAGE_TARGET_FILE) 173189702SsamTOOL_JRE_COMPACT2_TARGETS := $(JRE_COMPACT2_IMAGE_DIR)/$(JIMAGE_TARGET_FILE) 174189702SsamTOOL_JRE_COMPACT3_TARGETS := $(JRE_COMPACT3_IMAGE_DIR)/$(JIMAGE_TARGET_FILE) 175189702Ssam 176189702Ssam################################################################################ 177189702Ssam# /man dir 178189702Ssam# 179189702Ssam# All variables in this section are assigned with simple =, without :, to enable 180189702Ssam# more selective overriding from the custom version of this file. 181189702Ssam# 182189702Ssam# Avoid evaluating this whole section on windows for speed and stability 183189702Ssamifneq ($(OPENJDK_TARGET_OS), windows) 184189702Ssam JRE_MAN_PAGES += \ 185189702Ssam java.1 \ 186189702Ssam jjs.1 \ 187189702Ssam keytool.1 \ 188189702Ssam orbd.1 \ 189189702Ssam pack200.1 \ 190189702Ssam rmid.1 \ 191189702Ssam rmiregistry.1 \ 192189702Ssam servertool.1 \ 193189702Ssam tnameserv.1 \ 194189702Ssam unpack200.1 195269638Sadrian 196189702Ssam ifndef OPENJDK 197189702Ssam ifneq ($(OPENJDK_TARGET_OS), solaris) 198189702Ssam JRE_MAN_PAGES += javaws.1 199189702Ssam endif 200189702Ssam endif 201189702Ssam 202189702Ssam JDK_MAN_PAGES += \ 203189702Ssam $(JRE_MAN_PAGES) \ 204189702Ssam appletviewer.1 \ 205189702Ssam idlj.1 \ 206189702Ssam jar.1 \ 207189702Ssam jarsigner.1 \ 208189702Ssam javac.1 \ 209189702Ssam javadoc.1 \ 210189702Ssam javah.1 \ 211189702Ssam javap.1 \ 212189702Ssam jconsole.1 \ 213189702Ssam jcmd.1 \ 214189702Ssam jdb.1 \ 215189702Ssam jdeps.1 \ 216189702Ssam jhat.1 \ 217189702Ssam jinfo.1 \ 218189702Ssam jmap.1 \ 219189702Ssam jps.1 \ 220189702Ssam jrunscript.1 \ 221189702Ssam jsadebugd.1 \ 222189702Ssam jstack.1 \ 223189702Ssam jstat.1 \ 224189702Ssam jstatd.1 \ 225189702Ssam native2ascii.1 \ 226189702Ssam policytool.1 \ 227189702Ssam rmic.1 \ 228189702Ssam schemagen.1 \ 229189702Ssam serialver.1 \ 230189702Ssam wsgen.1 \ 231189702Ssam wsimport.1 \ 232189702Ssam xjc.1 233189702Ssam 234189702Ssam # This variable is potentially overridden in the closed makefile. 235189702Ssam MAN_SRC_BASEDIR ?= $(JDK_TOPDIR)/src 236189702Ssam 237189702Ssam ifeq ($(OPENJDK_TARGET_OS), linux) 238189702Ssam MAN_SRC_DIR = $(MAN_SRC_BASEDIR)/linux/doc 239189702Ssam MAN1_SUBDIR = man 240189702Ssam endif 241189702Ssam ifeq ($(OPENJDK_TARGET_OS), solaris) 242189702Ssam MAN_SRC_DIR = $(MAN_SRC_BASEDIR)/solaris/doc 243189702Ssam MAN1_SUBDIR = sun/man/man1 244189702Ssam endif 245189702Ssam ifeq ($(OPENJDK_TARGET_OS), macosx) 246189702Ssam MAN_SRC_DIR = $(MAN_SRC_BASEDIR)/bsd/doc 247189702Ssam MAN1_SUBDIR = man 248189702Ssam endif 249189702Ssam 250189702Ssam $(JRE_IMAGE_DIR)/man/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/% 251189702Ssam $(ECHO) $(LOG_INFO) Copying $(patsubst $(OUTPUT_ROOT)/%,%,$@) 252189702Ssam $(install-file) 253189702Ssam 254189702Ssam $(JDK_IMAGE_DIR)/man/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/% 255189702Ssam $(ECHO) $(LOG_INFO) Copying $(patsubst $(OUTPUT_ROOT)/%,%,$@) 256189702Ssam $(install-file) 257189702Ssam 258189702Ssam define install-ja-manpage 259189702Ssam $(MKDIR) -p $(@D) 260189702Ssam $(CAT) $< \ 261189702Ssam | $(NATIVE2ASCII) -encoding eucJP \ 262189702Ssam | $(SED) 's/@@VERSION@@/$(THIS_JDK_VERSION)/g' \ 263269638Sadrian | $(NATIVE2ASCII) -reverse -encoding $1 \ 264269638Sadrian > $@ 265269638Sadrian endef 266189702Ssam 267189702Ssam $(JRE_IMAGE_DIR)/man/ja_JP.UTF-8/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/ja/% 268189702Ssam $(ECHO) $(LOG_INFO) Converting $(patsubst $(OUTPUT_ROOT)/%,%,$@) 269189702Ssam $(call install-ja-manpage, UTF-8) 270189702Ssam 271189702Ssam $(JDK_IMAGE_DIR)/man/ja_JP.UTF-8/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/ja/% 272189702Ssam $(ECHO) $(LOG_INFO) Converting $(patsubst $(OUTPUT_ROOT)/%,%,$@) 273189702Ssam $(call install-ja-manpage, UTF-8) 274189702Ssam 275189702Ssam $(JRE_IMAGE_DIR)/man/ja_JP.PCK/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/ja/% 276189702Ssam $(ECHO) $(LOG_INFO) Converting $(patsubst $(OUTPUT_ROOT)/%,%,$@) 277189702Ssam $(call install-ja-manpage, PCK) 278189702Ssam 279189702Ssam $(JDK_IMAGE_DIR)/man/ja_JP.PCK/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/ja/% 280189702Ssam $(ECHO) $(LOG_INFO) Converting $(patsubst $(OUTPUT_ROOT)/%,%,$@) 281189702Ssam $(call install-ja-manpage, PCK) 282189702Ssam 283189702Ssam ifeq ($(OPENJDK_TARGET_OS), solaris) 284189702Ssam $(JRE_IMAGE_DIR)/man/ja/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/ja/% 285189702Ssam $(ECHO) $(LOG_INFO) Converting $(patsubst $(OUTPUT_ROOT)/%,%,$@) 286189702Ssam $(install-file) 287189702Ssam 288189702Ssam $(JDK_IMAGE_DIR)/man/ja/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/ja/% 289189702Ssam $(ECHO) $(LOG_INFO) Converting $(patsubst $(OUTPUT_ROOT)/%,%,$@) 290189702Ssam $(install-file) 291189702Ssam endif 292189702Ssam 293189702Ssam ifneq ($(findstring $(OPENJDK_TARGET_OS), linux macosx), ) 294189702Ssam $(JRE_IMAGE_DIR)/man/ja: 295189702Ssam $(ECHO) $(LOG_INFO) Creating $(patsubst $(OUTPUT_ROOT)/%,%,$@) 296189702Ssam $(CD) $(@D) && $(RM) ja && $(LN) -s ja_JP.UTF-8 ja 297189702Ssam 298189702Ssam $(JDK_IMAGE_DIR)/man/ja: 299189702Ssam $(ECHO) $(LOG_INFO) Creating $(patsubst $(OUTPUT_ROOT)/%,%,$@) 300189702Ssam $(CD) $(@D) && $(RM) ja && $(LN) -s ja_JP.UTF-8 ja 301189702Ssam endif 302189702Ssam 303189702Ssam ifeq ($(OPENJDK_TARGET_OS), solaris) 304189702Ssam JRE_MAN_PAGE_LIST = $(addprefix $(JRE_IMAGE_DIR)/man/man1/, $(JRE_MAN_PAGES)) \ 305189702Ssam $(addprefix $(JRE_IMAGE_DIR)/man/ja/man1/, $(JRE_MAN_PAGES)) \ 306189702Ssam $(addprefix $(JRE_IMAGE_DIR)/man/ja_JP.UTF-8/man1/, $(JRE_MAN_PAGES)) \ 307189702Ssam $(addprefix $(JRE_IMAGE_DIR)/man/ja_JP.PCK/man1/, $(JRE_MAN_PAGES)) 308189702Ssam 309244962Sadrian JDK_MAN_PAGE_LIST = $(addprefix $(JDK_IMAGE_DIR)/man/man1/, $(JDK_MAN_PAGES)) \ 310244962Sadrian $(addprefix $(JDK_IMAGE_DIR)/man/ja/man1/, $(JDK_MAN_PAGES)) \ 311189702Ssam $(addprefix $(JDK_IMAGE_DIR)/man/ja_JP.UTF-8/man1/, $(JDK_MAN_PAGES)) \ 312189702Ssam $(addprefix $(JDK_IMAGE_DIR)/man/ja_JP.PCK/man1/, $(JDK_MAN_PAGES)) 313189702Ssam endif 314189702Ssam 315189702Ssam ifneq ($(findstring $(OPENJDK_TARGET_OS), linux macosx), ) 316189702Ssam JRE_MAN_PAGE_LIST = $(addprefix $(JRE_IMAGE_DIR)/man/man1/, $(JRE_MAN_PAGES)) \ 317189702Ssam $(addprefix $(JRE_IMAGE_DIR)/man/ja_JP.UTF-8/man1/, $(JRE_MAN_PAGES)) \ 318189702Ssam $(JRE_IMAGE_DIR)/man/ja 319189702Ssam 320189702Ssam JDK_MAN_PAGE_LIST = $(addprefix $(JDK_IMAGE_DIR)/man/man1/, $(JDK_MAN_PAGES)) \ 321189702Ssam $(addprefix $(JDK_IMAGE_DIR)/man/ja_JP.UTF-8/man1/, $(JDK_MAN_PAGES)) \ 322189702Ssam $(JDK_IMAGE_DIR)/man/ja 323189702Ssam endif 324189702Ssam 325189702Ssam JRE_TARGETS += $(JRE_MAN_PAGE_LIST) 326189702Ssam JDK_TARGETS += $(JDK_MAN_PAGE_LIST) 327189702Ssamendif # Windows 328189702Ssam 329189702Ssam################################################################################ 330189702Ssam# /include dir 331189702Ssam 332189702Ssam$(eval $(call SetupCopyFiles,COPY_INCLUDES, \ 333189702Ssam SRC := $(JDK_OUTPUTDIR)/include, \ 334189702Ssam DEST := $(JDK_IMAGE_DIR)/include, \ 335189702Ssam FILES := $(call CacheFind,$(JDK_OUTPUTDIR)/include))) 336189702Ssam 337189702SsamJDK_TARGETS += $(COPY_INCLUDES) 338189702Ssam 339189702Ssam################################################################################ 340189702Ssam# doc files 341189702Ssam 342189702SsamJRE_DOC_FILES ?= LICENSE ASSEMBLY_EXCEPTION THIRD_PARTY_README 343189702SsamJDK_DOC_FILES ?= LICENSE ASSEMBLY_EXCEPTION THIRD_PARTY_README 344189702SsamJRE_DOC_LOCATION ?= $(JDK_TOPDIR) 345189702SsamJDK_DOC_LOCATION ?= $(JDK_TOPDIR) 346189702Ssam 347189702SsamJRE_DOC_TARGETS := $(addprefix $(JRE_IMAGE_DIR)/, $(JRE_DOC_FILES)) 348189702SsamJDK_DOC_TARGETS := $(addprefix $(JDK_IMAGE_DIR)/, $(JDK_DOC_FILES)) 349189702Ssam 350189702Ssam# Processing license files from source area to image area 351189702Ssam# These are modified to have the platform specific EOL chars. 352189702Ssamdefine process-doc-file 353189702Ssam $(ECHO) $(LOG_INFO) Processing $(patsubst $(OUTPUT_ROOT)/%,%,$@) 354189702Ssam $(MKDIR) -p $(@D) 355189702Ssam $(RM) $@ 356189702Ssam LC_ALL=C $(SED) 's/$$//g' $< > $@ 357189702Ssam $(CHMOD) 444 $@ 358189702Ssamendef 359189702Ssam 360189702Ssam$(JRE_IMAGE_DIR)/%: $(JRE_DOC_LOCATION)/% 361189702Ssam $(process-doc-file) 362189702Ssam 363189702Ssam$(JDK_IMAGE_DIR)/%: $(JDK_DOC_LOCATION)/% 364189702Ssam $(process-doc-file) 365189702Ssam 366189702SsamJRE_TARGETS += $(JRE_DOC_TARGETS) 367189702SsamJDK_TARGETS += $(JDK_DOC_TARGETS) 368189702Ssam 369189702Ssam################################################################################ 370189702Ssam# Release file 371189702Ssam 372189702SsamJRE_INFO_FILE := $(JRE_IMAGE_DIR)/release 373189702SsamJDK_INFO_FILE := $(JDK_IMAGE_DIR)/release 374189702SsamJRE_COMPACT1_INFO_FILE := $(JRE_COMPACT1_IMAGE_DIR)/release 375189702SsamJRE_COMPACT2_INFO_FILE := $(JRE_COMPACT2_IMAGE_DIR)/release 376189702SsamJRE_COMPACT3_INFO_FILE := $(JRE_COMPACT3_IMAGE_DIR)/release 377189702Ssam 378189702Ssam# Common way to emit a line into the release or info file 379189702Ssamdefine info-file-item # name value 380189702Ssam $(PRINTF) '%s="%s"\n' $1 $2 >> $@ 381189702Ssamendef 382233887Sadrian 383189702Ssam# Param 1 - The file containing the MODULES list 384189702Ssamdefine create-info-file 385189702Ssam $(call info-file-item, "JAVA_VERSION", "$(JDK_VERSION)") 386189702Ssam $(call info-file-item, "OS_NAME", "$(REQUIRED_OS_NAME)") 387189702Ssam $(call info-file-item, "OS_VERSION", "$(REQUIRED_OS_VERSION)") 388189702Ssam $(call info-file-item, "OS_ARCH", "$(OPENJDK_TARGET_CPU_LEGACY)") 389189702Ssam $(if $(JDK_ARCH_ABI_PROP_NAME), \ 390189702Ssam $(call info-file-item, "SUN_ARCH_ABI", "$(JDK_ARCH_ABI_PROP_NAME)")) 391189702Ssam $(call info-file-item, "SOURCE", "$(ALL_SOURCE_TIPS)") 392189702Ssam $(call info-file-item, "MODULES", "`$(CAT) $1`") 393189702Ssamendef 394189702Ssam 395189702Ssam# Param 1 - The file containing the MODULES list 396189702Ssamdefine prepare-info-file 397189702Ssam $(ECHO) $(LOG_INFO) Generating $(patsubst $(OUTPUT_ROOT)/%,%,$@) 398189702Ssam $(MKDIR) -p $(@D) 399189702Ssam $(RM) $@ 400189702Ssamendef 401189702Ssam 402189702Ssamdefine info-file 403189702Ssam $(call prepare-info-file, $1) 404189702Ssam $(call create-info-file, $1) 405189702Ssamendef 406189702Ssam 407189702Ssam# Create a variable dependency file common for all release info files. The 408189702Ssam# sorted module list will only change if the image is regenerated, which will 409189702Ssam# trigger a rebuild of these files anyway. 410189702SsamINFO_FILE_VARDEPS := $(call DependOnVariable, create-info-file) 411189702Ssam 412189702SsamALL_SOURCE_TIPS = $(shell \ 413189702Ssam if [ -f $(SUPPORT_OUTPUTDIR)/source_tips ] ; then \ 414189702Ssam $(CAT) $(SUPPORT_OUTPUTDIR)/source_tips ; \ 415189702Ssam fi) 416189702Ssam 417189702Ssam$(JRE_INFO_FILE): $(INFO_FILE_VARDEPS) $(SUPPORT_OUTPUTDIR)/source_tips 418189702Ssam $(call info-file, $(JRE_SORTED_MODULES)) 419189702Ssam 420189702Ssam$(JDK_INFO_FILE): $(INFO_FILE_VARDEPS) $(SUPPORT_OUTPUTDIR)/source_tips 421189702Ssam $(call info-file, $(JDK_SORTED_MODULES)) 422189702Ssam 423189702Ssam$(JRE_COMPACT1_INFO_FILE): $(INFO_FILE_VARDEPS) $(SUPPORT_OUTPUTDIR)/source_tips 424189702Ssam $(call info-file, $(JRE_COMPACT1_SORTED_MODULES)) 425189702Ssam $(call info-file-item, "JAVA_PROFILE", "compact1") 426189702Ssam 427189702Ssam$(JRE_COMPACT2_INFO_FILE): $(INFO_FILE_VARDEPS) $(SUPPORT_OUTPUTDIR)/source_tips 428189702Ssam $(call info-file, $(JRE_COMPACT2_SORTED_MODULES)) 429189702Ssam $(call info-file-item, "JAVA_PROFILE", "compact2") 430 431$(JRE_COMPACT3_INFO_FILE): $(INFO_FILE_VARDEPS) $(SUPPORT_OUTPUTDIR)/source_tips 432 $(call info-file, $(JRE_COMPACT3_SORTED_MODULES)) 433 $(call info-file-item, "JAVA_PROFILE", "compact3") 434 435JRE_TARGETS += $(JRE_INFO_FILE) 436JDK_TARGETS += $(JDK_INFO_FILE) 437JRE_COMPACT1_TARGETS += $(JRE_COMPACT1_INFO_FILE) 438JRE_COMPACT2_TARGETS += $(JRE_COMPACT2_INFO_FILE) 439JRE_COMPACT3_TARGETS += $(JRE_COMPACT3_INFO_FILE) 440 441################################################################################ 442# src.zip 443 444$(JDK_IMAGE_DIR)/src.zip: $(SUPPORT_OUTPUTDIR)/src.zip 445 $(ECHO) $(LOG_INFO) Copying $(patsubst $(OUTPUT_ROOT)/%,%,$@) 446 $(install-file) 447 448JDK_TARGETS += $(JDK_IMAGE_DIR)/src.zip 449 450################################################################################ 451# /demo dir 452 453# The db demo contains an empty dir that needs to be copied. The other 454# directories will always trigger the rule for recompile since 455# _the.list_of_packages files are touched. 456ifneq ($(findstring images, $(MAKECMDGOALS)), ) 457 $(JDK_IMAGE_DIR)/demo/%: $(SUPPORT_OUTPUTDIR)/demo/image/% 458 if [ ! -d "$@" ]; then \ 459 $(ECHO) $(LOG_INFO) Copying '$(patsubst $(OUTPUT_ROOT)/%,%,$@)'; \ 460 $(MKDIR) -p $(@D); \ 461 if [ -d "$<" ]; then $(MKDIR) -p $@; else $(CP) '$<' '$@'; fi \ 462 fi 463 464 # Find all files including directories 465 JDK_DEMO_TARGETS := $(if $(wildcard $(SUPPORT_OUTPUTDIR)/demo/image), \ 466 $(patsubst $(SUPPORT_OUTPUTDIR)/demo/image/%, $(JDK_IMAGE_DIR)/demo/%, \ 467 $(shell $(FIND) $(SUPPORT_OUTPUTDIR)/demo/image \ 468 ! \( -name "_the*" -o -name "javac_state" \) ))) 469 470 JDK_TARGETS += $(JDK_DEMO_TARGETS) 471endif 472 473################################################################################ 474# /sample dir 475 476$(eval $(call SetupCopyFiles,COPY_SAMPLES, \ 477 SRC := $(SUPPORT_OUTPUTDIR)/sample, \ 478 DEST := $(JDK_IMAGE_DIR)/sample, \ 479 FILES := $(if $(wildcard $(SUPPORT_OUTPUTDIR)/sample), \ 480 $(call CacheFind,$(SUPPORT_OUTPUTDIR)/sample)))) 481 482JDK_TARGETS += $(COPY_SAMPLES) 483 484################################################################################ 485# jrt-fs.jar 486 487$(eval $(call SetupCopyFiles,COPY_JRTFS_JAR, \ 488 SRC := $(SUPPORT_OUTPUTDIR), \ 489 DEST := $(JDK_IMAGE_DIR), \ 490 FILES := $(SUPPORT_OUTPUTDIR)/jrt-fs.jar)) 491 492JDK_TARGETS += $(COPY_JRTFS_JAR) 493 494################################################################################ 495# Code coverage data files 496 497ifeq ($(GCOV_ENABLED), true) 498 499 GCOV_FIND_EXPR := -type f -name "*.gcno" 500 501 $(eval $(call SetupCopyFiles,COPY_HOTSPOT_GCOV_GCNO, \ 502 SRC := $(OUTPUT_ROOT), \ 503 DEST := $(SYMBOLS_IMAGE_DIR)/gcov, \ 504 FILES := $(shell $(FIND) $(HOTSPOT_OUTPUTDIR) $(GCOV_FIND_EXPR)))) 505 506 SYMBOLS_TARGETS += $(COPY_HOTSPOT_GCOV_GCNO) 507 508 $(eval $(call SetupCopyFiles,COPY_JDK_GCOV_GCNO, \ 509 SRC := $(OUTPUT_ROOT), \ 510 DEST := $(SYMBOLS_IMAGE_DIR)/gcov, \ 511 FILES := $(shell $(FIND) $(SUPPORT_OUTPUTDIR)/native $(GCOV_FIND_EXPR)))) 512 513 SYMBOLS_TARGETS += $(COPY_JDK_GCOV_GCNO) 514 515endif 516 517################################################################################ 518 519# Include custom post hook here to make it possible to augment the target lists 520# before actual target prerequisites are declared. 521$(eval $(call IncludeCustomExtension, , Images-post.gmk)) 522 523################################################################################ 524 525$(JRE_TARGETS): $(TOOL_JRE_TARGETS) 526$(JDK_TARGETS): $(TOOL_JDK_TARGETS) 527 528jimages: $(TOOL_JRE_TARGETS) $(TOOL_JDK_TARGETS) $(JRE_TARGETS) $(JDK_TARGETS) \ 529 $(SYMBOLS_TARGETS) 530 531 532$(JRE_COMPACT1_TARGETS): $(TOOL_JRE_COMPACT1_TARGETS) 533$(JRE_COMPACT2_TARGETS): $(TOOL_JRE_COMPACT2_TARGETS) 534$(JRE_COMPACT3_TARGETS): $(TOOL_JRE_COMPACT3_TARGETS) 535 536profiles: $(TOOL_JRE_COMPACT1_TARGETS) \ 537 $(TOOL_JRE_COMPACT2_TARGETS) \ 538 $(TOOL_JRE_COMPACT3_TARGETS) \ 539 $(JRE_COMPACT1_TARGETS) \ 540 $(JRE_COMPACT2_TARGETS) \ 541 $(JRE_COMPACT3_TARGETS) 542 543.PHONY: default all jimages profiles 544