Images.gmk revision 1961:f900d5afd9c8
1193583Szec#
2193583Szec# Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved.
3193583Szec# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4193583Szec#
5193583Szec# This code is free software; you can redistribute it and/or modify it
6193583Szec# under the terms of the GNU General Public License version 2 only, as
7193583Szec# published by the Free Software Foundation.  Oracle designates this
8193583Szec# particular file as subject to the "Classpath" exception as provided
9193583Szec# by Oracle in the LICENSE file that accompanied this code.
10193583Szec#
11193583Szec# This code is distributed in the hope that it will be useful, but WITHOUT
12193583Szec# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13193583Szec# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
14193583Szec# version 2 for more details (a copy is included in the LICENSE file that
15193583Szec# accompanied this code).
16193583Szec#
17193583Szec# You should have received a copy of the GNU General Public License version
18193583Szec# 2 along with this work; if not, write to the Free Software Foundation,
19193583Szec# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20193583Szec#
21193583Szec# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22193583Szec# or visit www.oracle.com if you need additional information or have any
23193583Szec# questions.
24193583Szec#
25193583Szec
26193583Szecdefault: all
27193583Szec
28193583Szecinclude $(SPEC)
29193583Szecinclude MakeBase.gmk
30195741Sjamieinclude Modules.gmk
31193583Szec
32195741SjamieTOOL_TARGETS :=
33193583SzecJDK_TARGETS :=
34193583SzecJRE_TARGETS :=
35195741Sjamie
36195741Sjamie# Hook to include the corresponding custom file, if present.
37196409Szec$(eval $(call IncludeCustomExtension, , Images-pre.gmk))
38195741Sjamie
39193583Szec############################################################################
40193583Szec
41193583SzecMAIN_MODULES += java.se.ee java.smartcardio jdk.httpserver jdk.sctp \
42193583Szec               jdk.security.auth jdk.security.jgss jdk.pack200 jdk.xml.dom \
43193583Szec               jdk.accessibility jdk.internal.le jdk.dynalink \
44196409Szec               jdk.scripting.nashorn jdk.scripting.nashorn.shell \
45196409Szec               jdk.vm.ci jdk.management jdk.jsobject
46196409Szec
47196409Szec# providers
48196409SzecPROVIDER_MODULES += jdk.charsets jdk.crypto.ec jdk.crypto.pkcs11 jdk.jvmstat jdk.jvmstat.rmi \
49196409Szec               jdk.localedata jdk.naming.dns jdk.naming.rmi jdk.zipfs
50196409Szec
51196409Szec# tools
52193583SzecTOOLS_MODULES += jdk.attach jdk.compiler \
53196409Szec               jdk.javadoc jdk.jcmd jdk.jconsole jdk.hotspot.agent jdk.jartool \
54196409Szec               jdk.jdeps jdk.jdi jdk.jdwp.agent jdk.jlink jdk.jshell \
55196409Szec               jdk.policytool jdk.rmic jdk.xml.bind jdk.xml.ws jdk.internal.opt
56196409Szec
57196409Szecifeq ($(OPENJDK_TARGET_OS), windows)
58196409Szec  PROVIDER_MODULES += jdk.crypto.mscapi
59196409Szecendif
60196409Szec
61196409Szecifeq ($(OPENJDK_TARGET_OS), solaris)
62196409Szec  PROVIDER_MODULES += jdk.crypto.ucrypto
63196409Szecendif
64196409Szec
65196409SzecJRE_MODULES := $(filter-out $(MODULES_FILTER), $(MAIN_MODULES) $(PROVIDER_MODULES))
66196409SzecJDK_MODULES := $(filter-out $(MODULES_FILTER), $(JRE_MODULES) $(TOOLS_MODULES))
67196409Szec
68193583Szec# Param 1 - Name of module
69196409Szecdefine ReadImportMetaData
70196409Szec  ifneq ($$(wildcard $(IMPORT_MODULES_MAKE)/$$(strip $1)/build.properties), )
71196409Szec    include_in_jre :=
72196409Szec    include_in_jdk :=
73196409Szec    include $(IMPORT_MODULES_MAKE)/$$(strip $1)/build.properties
74196409Szec    ifeq ($$(include_in_jre), true)
75196409Szec      JRE_MODULES += $1
76196409Szec    endif
77196409Szec    ifeq ($$(include_in_jdk), true)
78196409Szec      JDK_MODULES += $1
79196409Szec    endif
80196409Szec  else
81196409Szec    # Default to include in all
82196409Szec    JRE_MODULES += $1
83196409Szec    JDK_MODULES += $1
84196409Szec  endif
85196409Szecendef
86196409Szec
87196409SzecIMPORTED_MODULES := $(call FindImportedModules)
88196409Szec$(foreach m, $(IMPORTED_MODULES), $(eval $(call ReadImportMetaData, $m)))
89196409Szec
90193583Szec# Compact builds have additional modules
91193583SzecCOMPACT_EXTRA_MODULES := jdk.localedata jdk.crypto.pkcs11 jdk.crypto.ec
92193583SzecJRE_COMPACT1_MODULES := $(COMPACT_EXTRA_MODULES) java.compact1
93196409SzecJRE_COMPACT2_MODULES := $(JRE_COMPACT1_MODULES) java.compact2 jdk.xml.dom jdk.httpserver
94196409SzecJRE_COMPACT3_MODULES := $(JRE_COMPACT2_MODULES) java.compact3 java.smartcardio jdk.management \
95195741Sjamie                        jdk.naming.dns jdk.naming.rmi jdk.sctp jdk.security.auth
96196409Szec
97196409Szec# Replacing double-comma with a single comma is to workaround the issue
98196409Szec# with some version of make on windows that doesn't substitute spaces
99196409Szec# with one comma properly as with make 4.0
100196409SzecSubstComma = \
101196409Szec    $(strip \
102196409Szec        $(subst $(COMMA)$(COMMA),$(COMMA),$(subst $(SPACE),$(COMMA),$(strip $1))) \
103196409Szec    )
104193583Szec
105196409SzecJRE_MODULES_LIST := $(call SubstComma, $(JRE_MODULES))
106193583SzecJDK_MODULES_LIST := $(call SubstComma, $(JDK_MODULES))
107196409SzecJRE_COMPACT1_MODULES_LIST := $(call SubstComma, $(JRE_COMPACT1_MODULES))
108196409SzecJRE_COMPACT2_MODULES_LIST := $(call SubstComma, $(JRE_COMPACT2_MODULES))
109196409SzecJRE_COMPACT3_MODULES_LIST := $(call SubstComma, $(JRE_COMPACT3_MODULES))
110196409Szec
111196409Szec################################################################################
112196409Szec# Release file
113196409Szec
114196409SzecBASE_RELEASE_FILE := $(JDK_OUTPUTDIR)/release
115196409Szec
116196409Szec# Common way to emit a line into the release or info file
117196409Szecdefine info-file-item # name value
118196409Szec  $(PRINTF) '%s="%s"\n' $1 $2 >> $@
119196409Szecendef
120196409Szec
121196409Szec# Param 1 - The file containing the MODULES list
122196409Szecdefine create-info-file
123196409Szec  $(call info-file-item, "JAVA_VERSION", "$(VERSION_NUMBER)")
124196409Szec  $(call info-file-item, "JAVA_FULL_VERSION", "$(VERSION_STRING)")
125196409Szec  $(call info-file-item, "OS_NAME", "$(REQUIRED_OS_NAME)")
126196409Szec  $(call info-file-item, "OS_VERSION", "$(REQUIRED_OS_VERSION)")
127196409Szec  $(call info-file-item, "OS_ARCH", "$(OPENJDK_TARGET_CPU_LEGACY)")
128196409Szec  $(if $(JDK_ARCH_ABI_PROP_NAME), \
129196409Szec    $(call info-file-item, "SUN_ARCH_ABI", "$(JDK_ARCH_ABI_PROP_NAME)"))
130196409Szec  $(call info-file-item, "SOURCE", "$(strip $(ALL_SOURCE_TIPS))")
131196409Szecendef
132196409Szec
133196409Szec# Param 1 - The file containing the MODULES list
134196409Szecdefine prepare-info-file
135196409Szec  $(ECHO) $(LOG_INFO) Generating $(patsubst $(OUTPUT_ROOT)/%,%,$@)
136195741Sjamie  $(MKDIR) -p $(@D)
137196409Szec  $(RM) $@
138196409Szecendef
139196409Szec
140196409Szecdefine info-file
141196409Szec  $(call prepare-info-file)
142196409Szec  $(call create-info-file)
143196409Szecendef
144193583Szec
145196409Szec# Create a variable dependency file common for all release info files.
146196409SzecINFO_FILE_VARDEPS := $(call DependOnVariable, create-info-file)
147196409Szec
148196409SzecALL_SOURCE_TIPS = $(shell \
149193583Szec    if [ -f $(SUPPORT_OUTPUTDIR)/source_tips ] ; then \
150193583Szec      $(CAT) $(SUPPORT_OUTPUTDIR)/source_tips ; \
151193583Szec    fi)
152196409Szec
153196409Szec$(BASE_RELEASE_FILE): $(INFO_FILE_VARDEPS) $(SUPPORT_OUTPUTDIR)/source_tips
154196409Szec	$(info-file)
155196409Szec
156196409Szec################################################################################
157196409Szec
158196409SzecJMODS := $(wildcard $(IMAGES_OUTPUTDIR)/jmods/*.jmod)
159196409Szec
160196409Szec# Use this file inside the image as target for make rule
161196409SzecJIMAGE_TARGET_FILE := bin/java$(EXE_SUFFIX)
162196409Szec
163196409SzecJLINK_TOOL := $(JLINK) --modulepath $(IMAGES_OUTPUTDIR)/jmods \
164196409Szec              --endian $(OPENJDK_BUILD_CPU_ENDIAN) \
165196409Szec              --release-info $(BASE_RELEASE_FILE)
166196409Szec
167196409Szecifeq ($(JLINK_KEEP_PACKAGED_MODULES), true)
168196409Szec  JLINK_EXTRA_OPTS := --keep-packaged-modules $(JDK_IMAGE_DIR)/jmods
169196409Szecendif
170196409Szec
171196409Szec$(JDK_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(JMODS) \
172196409Szec    $(call DependOnVariable, JDK_MODULES_LIST) $(BASE_RELEASE_FILE)
173196409Szec	$(ECHO) Creating jdk jimage
174196409Szec	$(RM) -r $(JDK_IMAGE_DIR)
175196409Szec	$(JLINK_TOOL) --output $(JDK_IMAGE_DIR) \
176196409Szec	    --addmods $(JDK_MODULES_LIST) $(JLINK_EXTRA_OPTS)
177196409Szec	$(TOUCH) $@
178196409Szec
179196409Szec$(JRE_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(JMODS) \
180196409Szec    $(call DependOnVariable, JRE_MODULES_LIST) $(BASE_RELEASE_FILE)
181196409Szec	$(ECHO) Creating jre jimage
182196409Szec	$(RM) -r $(JRE_IMAGE_DIR)
183196409Szec	$(JLINK_TOOL) --output $(JRE_IMAGE_DIR) \
184196409Szec	    --addmods $(JRE_MODULES_LIST)
185196409Szec	$(TOUCH) $@
186196409Szec
187196409SzecJRE_COMPACT1_IMAGE_DIR := $(JRE_IMAGE_DIR)-compact1
188196409SzecJRE_COMPACT2_IMAGE_DIR := $(JRE_IMAGE_DIR)-compact2
189196409SzecJRE_COMPACT3_IMAGE_DIR := $(JRE_IMAGE_DIR)-compact3
190196409Szec
191196409Szec$(JRE_COMPACT1_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(JMODS) \
192196409Szec    $(call DependOnVariable, JRE_COMPACT1_MODULES_LIST) $(BASE_RELEASE_FILE)
193196409Szec	$(ECHO) Creating jre compact1 jimage
194193583Szec	$(RM) -r $(JRE_COMPACT1_IMAGE_DIR)
195196409Szec	$(JLINK_TOOL) --addmods $(JRE_COMPACT1_MODULES_LIST) \
196196409Szec	    --output $(JRE_COMPACT1_IMAGE_DIR)
197196409Szec	$(TOUCH) $@
198196409Szec
199196409Szec$(JRE_COMPACT2_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(JMODS) \
200196409Szec    $(call DependOnVariable, JRE_COMPACT2_MODULES_LIST) $(BASE_RELEASE_FILE)
201196409Szec	$(ECHO) Creating jre compact2 jimage
202196409Szec	$(RM) -r $(JRE_COMPACT2_IMAGE_DIR)
203196409Szec	$(JLINK_TOOL) --addmods $(JRE_COMPACT2_MODULES_LIST) \
204196409Szec	    --output $(JRE_COMPACT2_IMAGE_DIR)
205196409Szec	$(TOUCH) $@
206196409Szec
207196409Szec$(JRE_COMPACT3_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(JMODS) \
208196409Szec    $(call DependOnVariable, JRE_COMPACT3_MODULES_LIST) $(BASE_RELEASE_FILE)
209196409Szec	$(ECHO) Creating jre compact3 jimage
210196409Szec	$(RM) -r $(JRE_COMPACT3_IMAGE_DIR)
211196409Szec	$(JLINK_TOOL) --addmods $(JRE_COMPACT3_MODULES_LIST) \
212196409Szec	    --output $(JRE_COMPACT3_IMAGE_DIR)
213193583Szec	$(TOUCH) $@
214193583Szec
215196409SzecTOOL_JRE_TARGETS := $(JRE_IMAGE_DIR)/$(JIMAGE_TARGET_FILE)
216196409SzecTOOL_JDK_TARGETS := $(JDK_IMAGE_DIR)/$(JIMAGE_TARGET_FILE)
217196409SzecTOOL_JRE_COMPACT1_TARGETS := $(JRE_COMPACT1_IMAGE_DIR)/$(JIMAGE_TARGET_FILE)
218196409SzecTOOL_JRE_COMPACT2_TARGETS := $(JRE_COMPACT2_IMAGE_DIR)/$(JIMAGE_TARGET_FILE)
219196409SzecTOOL_JRE_COMPACT3_TARGETS := $(JRE_COMPACT3_IMAGE_DIR)/$(JIMAGE_TARGET_FILE)
220195741Sjamie
221196409Szec################################################################################
222195741Sjamie# /man dir
223196409Szec#
224196409Szec# All variables in this section are assigned with simple =, without :, to enable
225196409Szec# more selective overriding from the custom version of this file.
226196409Szec#
227196409Szec# Avoid evaluating this whole section on windows for speed and stability
228196409Szecifneq ($(OPENJDK_TARGET_OS), windows)
229196409Szec  JRE_MAN_PAGES += \
230196409Szec      java.1 \
231196409Szec      jjs.1 \
232196409Szec      keytool.1 \
233196409Szec      orbd.1 \
234196409Szec      pack200.1 \
235196409Szec      rmid.1 \
236196409Szec      rmiregistry.1 \
237196409Szec      servertool.1 \
238196409Szec      tnameserv.1 \
239196409Szec      unpack200.1
240196409Szec
241196409Szec  ifndef OPENJDK
242196409Szec    ifneq ($(OPENJDK_TARGET_OS), solaris)
243196409Szec      JRE_MAN_PAGES += javaws.1
244196409Szec    endif
245196409Szec  endif
246196409Szec
247196409Szec  JDK_MAN_PAGES += \
248196409Szec      $(JRE_MAN_PAGES) \
249196409Szec      appletviewer.1 \
250196409Szec      idlj.1 \
251196409Szec      jar.1 \
252193583Szec      jarsigner.1 \
253193583Szec      javac.1 \
254193583Szec      javadoc.1 \
255196421Szec      javah.1 \
256196409Szec      javap.1 \
257196409Szec      jconsole.1 \
258196409Szec      jcmd.1 \
259196409Szec      jdb.1 \
260196409Szec      jdeps.1 \
261196409Szec      jinfo.1 \
262196409Szec      jmap.1 \
263196421Szec      jps.1 \
264196409Szec      jrunscript.1 \
265196409Szec      jsadebugd.1 \
266196409Szec      jstack.1 \
267196409Szec      jstat.1 \
268196409Szec      jstatd.1 \
269196409Szec      policytool.1 \
270196409Szec      rmic.1 \
271196409Szec      schemagen.1 \
272196409Szec      serialver.1 \
273196409Szec      wsgen.1 \
274196409Szec      wsimport.1 \
275196409Szec      xjc.1
276196409Szec
277196409Szec  # This variable is potentially overridden in the closed makefile.
278196409Szec  MAN_SRC_BASEDIR ?= $(JDK_TOPDIR)/src
279196409Szec
280196409Szec  ifeq ($(OPENJDK_TARGET_OS), linux)
281196409Szec    MAN_SRC_DIR = $(MAN_SRC_BASEDIR)/linux/doc
282196409Szec    MAN1_SUBDIR = man
283196409Szec  endif
284196409Szec  ifeq ($(OPENJDK_TARGET_OS), solaris)
285196409Szec    MAN_SRC_DIR = $(MAN_SRC_BASEDIR)/solaris/doc
286196409Szec    MAN1_SUBDIR = sun/man/man1
287196409Szec  endif
288193583Szec  ifeq ($(OPENJDK_TARGET_OS), macosx)
289193583Szec    MAN_SRC_DIR = $(MAN_SRC_BASEDIR)/bsd/doc
290196409Szec    MAN1_SUBDIR = man
291196409Szec  endif
292196409Szec
293196409Szec  $(JRE_IMAGE_DIR)/man/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/%
294196409Szec	$(call LogInfo, Copying $(patsubst $(OUTPUT_ROOT)/%,%,$@))
295196409Szec	$(install-file)
296196409Szec
297193583Szec  $(JDK_IMAGE_DIR)/man/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/%
298196409Szec	$(call LogInfo, Copying $(patsubst $(OUTPUT_ROOT)/%,%,$@))
299196409Szec	$(install-file)
300195741Sjamie
301196409Szec  $(JRE_IMAGE_DIR)/man/ja_JP.UTF-8/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/ja/%
302196409Szec	$(call LogInfo, Copying $(patsubst $(OUTPUT_ROOT)/%,%,$@))
303196409Szec	$(install-file)
304196409Szec
305196409Szec  $(JDK_IMAGE_DIR)/man/ja_JP.UTF-8/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/ja/%
306193583Szec	$(call LogInfo, Copying $(patsubst $(OUTPUT_ROOT)/%,%,$@))
307196409Szec	$(install-file)
308193583Szec
309196409Szec  ifeq ($(OPENJDK_TARGET_OS), solaris)
310193583Szec    $(JRE_IMAGE_DIR)/man/ja/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/ja/%
311193583Szec	$(call LogInfo, Converting $(patsubst $(OUTPUT_ROOT)/%,%,$@))
312193583Szec	$(install-file)
313196409Szec
314196409Szec    $(JDK_IMAGE_DIR)/man/ja/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/ja/%
315193583Szec	$(call LogInfo, Converting $(patsubst $(OUTPUT_ROOT)/%,%,$@))
316193583Szec	$(install-file)
317195741Sjamie  endif
318195741Sjamie
319195741Sjamie  ifneq ($(findstring $(OPENJDK_TARGET_OS), linux macosx), )
320195741Sjamie    $(JRE_IMAGE_DIR)/man/ja:
321193583Szec	$(call LogInfo, Creating $(patsubst $(OUTPUT_ROOT)/%,%,$@))
322193583Szec	$(CD) $(@D) && $(RM) ja && $(LN) -s ja_JP.UTF-8 ja
323195741Sjamie
324195741Sjamie    $(JDK_IMAGE_DIR)/man/ja:
325196409Szec	$(call LogInfo, Creating $(patsubst $(OUTPUT_ROOT)/%,%,$@))
326195741Sjamie	$(CD) $(@D) && $(RM) ja && $(LN) -s ja_JP.UTF-8 ja
327196409Szec  endif
328196409Szec
329195741Sjamie  ifeq ($(OPENJDK_TARGET_OS), solaris)
330196409Szec    JRE_MAN_PAGE_LIST = $(addprefix $(JRE_IMAGE_DIR)/man/man1/, $(JRE_MAN_PAGES)) \
331196409Szec        $(addprefix $(JRE_IMAGE_DIR)/man/ja/man1/, $(JRE_MAN_PAGES)) \
332196409Szec        $(addprefix $(JRE_IMAGE_DIR)/man/ja_JP.UTF-8/man1/, $(JRE_MAN_PAGES)) \
333196409Szec        $(addprefix $(JRE_IMAGE_DIR)/man/ja_JP.PCK/man1/, $(JRE_MAN_PAGES))
334196409Szec
335196409Szec    JDK_MAN_PAGE_LIST = $(addprefix $(JDK_IMAGE_DIR)/man/man1/, $(JDK_MAN_PAGES)) \
336196409Szec        $(addprefix $(JDK_IMAGE_DIR)/man/ja/man1/, $(JDK_MAN_PAGES)) \
337196409Szec        $(addprefix $(JDK_IMAGE_DIR)/man/ja_JP.UTF-8/man1/, $(JDK_MAN_PAGES)) \
338196409Szec        $(addprefix $(JDK_IMAGE_DIR)/man/ja_JP.PCK/man1/, $(JDK_MAN_PAGES))
339196409Szec  endif
340196409Szec
341196409Szec  ifneq ($(findstring $(OPENJDK_TARGET_OS), linux macosx), )
342196409Szec    JRE_MAN_PAGE_LIST = $(addprefix $(JRE_IMAGE_DIR)/man/man1/, $(JRE_MAN_PAGES)) \
343196409Szec        $(addprefix $(JRE_IMAGE_DIR)/man/ja_JP.UTF-8/man1/, $(JRE_MAN_PAGES)) \
344196409Szec        $(JRE_IMAGE_DIR)/man/ja
345196409Szec
346196409Szec    JDK_MAN_PAGE_LIST = $(addprefix $(JDK_IMAGE_DIR)/man/man1/, $(JDK_MAN_PAGES)) \
347196409Szec        $(addprefix $(JDK_IMAGE_DIR)/man/ja_JP.UTF-8/man1/, $(JDK_MAN_PAGES)) \
348196409Szec        $(JDK_IMAGE_DIR)/man/ja
349196409Szec  endif
350196409Szec
351196409Szec  JRE_TARGETS += $(JRE_MAN_PAGE_LIST)
352196409Szec  JDK_TARGETS += $(JDK_MAN_PAGE_LIST)
353196409Szecendif # Windows
354196409Szec
355196409Szec################################################################################
356196409Szec# /include dir
357196409Szec
358196409Szec$(eval $(call SetupCopyFiles,COPY_INCLUDES, \
359196409Szec    SRC := $(JDK_OUTPUTDIR)/include, \
360196409Szec    DEST := $(JDK_IMAGE_DIR)/include, \
361196409Szec    FILES := $(call CacheFind,$(JDK_OUTPUTDIR)/include)))
362196409Szec
363196409SzecJDK_TARGETS += $(COPY_INCLUDES)
364196409Szec
365196409Szec################################################################################
366196409Szec# doc files
367196409Szec
368196409SzecJRE_DOC_FILES ?= LICENSE ASSEMBLY_EXCEPTION THIRD_PARTY_README
369196409SzecJDK_DOC_FILES ?= LICENSE ASSEMBLY_EXCEPTION THIRD_PARTY_README
370196409SzecJRE_DOC_LOCATION ?= $(JDK_TOPDIR)
371196409SzecJDK_DOC_LOCATION ?= $(JDK_TOPDIR)
372196409Szec
373196409SzecJRE_DOC_TARGETS := $(addprefix $(JRE_IMAGE_DIR)/, $(JRE_DOC_FILES))
374196409SzecJDK_DOC_TARGETS := $(addprefix $(JDK_IMAGE_DIR)/, $(JDK_DOC_FILES))
375196409Szec
376196409Szec# Processing license files from source area to image area
377196409Szec# These are modified to have the platform specific EOL chars.
378196409Szecdefine process-doc-file
379196409Szec	$(call LogInfo, Processing $(patsubst $(OUTPUT_ROOT)/%,%,$@))
380196409Szec	$(MKDIR) -p $(@D)
381196409Szec	$(RM) $@
382196409Szec	LC_ALL=C $(SED) 's/$$//g' $< > $@
383196409Szec	$(CHMOD) 444 $@
384196409Szecendef
385196409Szec
386196409Szec$(JRE_IMAGE_DIR)/%: $(JRE_DOC_LOCATION)/%
387196409Szec	$(process-doc-file)
388196409Szec
389196409Szec$(JDK_IMAGE_DIR)/%: $(JDK_DOC_LOCATION)/%
390195741Sjamie	$(process-doc-file)
391
392JRE_TARGETS += $(JRE_DOC_TARGETS)
393JDK_TARGETS += $(JDK_DOC_TARGETS)
394
395################################################################################
396# src.zip
397
398$(JDK_IMAGE_DIR)/src.zip: $(SUPPORT_OUTPUTDIR)/src.zip
399	$(call LogInfo, Copying $(patsubst $(OUTPUT_ROOT)/%,%,$@))
400	$(install-file)
401
402JDK_TARGETS += $(JDK_IMAGE_DIR)/src.zip
403
404################################################################################
405# /demo dir
406ifneq ($(findstring images, $(MAKECMDGOALS)), )
407  $(eval $(call SetupCopyFiles, JDK_COPY_DEMOS, \
408      SRC := $(SUPPORT_OUTPUTDIR)/demos/image, \
409      DEST := $(JDK_IMAGE_DIR)/demo, \
410      FILES := $(if $(wildcard $(SUPPORT_OUTPUTDIR)/demos/image), \
411          $(call DoubleDollar, $(call DoubleDollar, \
412      $(shell $(FIND) $(SUPPORT_OUTPUTDIR)/demos/image \
413          -type f -a ! \( -name "_the*" -o -name "javac_state" \) )))), \
414  ))
415
416  JDK_TARGETS += $(JDK_COPY_DEMOS)
417endif
418
419################################################################################
420# /sample dir
421
422$(eval $(call SetupCopyFiles,COPY_SAMPLES, \
423    SRC := $(SUPPORT_OUTPUTDIR)/sample/image, \
424    DEST := $(JDK_IMAGE_DIR)/sample, \
425    FILES := $(if $(wildcard $(SUPPORT_OUTPUTDIR)/sample/image), \
426        $(call CacheFind,$(SUPPORT_OUTPUTDIR)/sample/image))))
427
428JDK_TARGETS += $(COPY_SAMPLES)
429
430################################################################################
431# jrt-fs.jar
432
433$(eval $(call SetupCopyFiles,COPY_JRTFS_JAR, \
434    SRC := $(SUPPORT_OUTPUTDIR), \
435    DEST := $(JDK_IMAGE_DIR), \
436    FILES := $(SUPPORT_OUTPUTDIR)/jrt-fs.jar))
437
438JDK_TARGETS += $(COPY_JRTFS_JAR)
439
440################################################################################
441# Code coverage data files
442
443ifeq ($(GCOV_ENABLED), true)
444
445  GCOV_FIND_EXPR := -type f -name "*.gcno"
446
447  $(eval $(call SetupCopyFiles,COPY_HOTSPOT_GCOV_GCNO, \
448      SRC := $(OUTPUT_ROOT), \
449      DEST := $(SYMBOLS_IMAGE_DIR)/gcov, \
450      FILES := $(shell $(FIND) $(HOTSPOT_OUTPUTDIR) $(GCOV_FIND_EXPR))))
451
452  SYMBOLS_TARGETS += $(COPY_HOTSPOT_GCOV_GCNO)
453
454  $(eval $(call SetupCopyFiles,COPY_JDK_GCOV_GCNO, \
455      SRC := $(OUTPUT_ROOT), \
456      DEST := $(SYMBOLS_IMAGE_DIR)/gcov, \
457      FILES := $(shell $(FIND) $(SUPPORT_OUTPUTDIR)/native $(GCOV_FIND_EXPR))))
458
459  SYMBOLS_TARGETS += $(COPY_JDK_GCOV_GCNO)
460
461endif
462
463################################################################################
464
465# Include custom post hook here to make it possible to augment the target lists
466# before actual target prerequisites are declared.
467$(eval $(call IncludeCustomExtension, , Images-post.gmk))
468
469################################################################################
470
471$(JRE_TARGETS): $(TOOL_JRE_TARGETS)
472$(JDK_TARGETS): $(TOOL_JDK_TARGETS)
473
474jimages: $(TOOL_JRE_TARGETS) $(TOOL_JDK_TARGETS) $(JRE_TARGETS) $(JDK_TARGETS) \
475    $(SYMBOLS_TARGETS)
476
477$(JRE_COMPACT1_TARGETS): $(TOOL_JRE_COMPACT1_TARGETS)
478$(JRE_COMPACT2_TARGETS): $(TOOL_JRE_COMPACT2_TARGETS)
479$(JRE_COMPACT3_TARGETS): $(TOOL_JRE_COMPACT3_TARGETS)
480
481profiles: $(TOOL_JRE_COMPACT1_TARGETS) \
482    $(TOOL_JRE_COMPACT2_TARGETS) \
483    $(TOOL_JRE_COMPACT3_TARGETS) \
484    $(JRE_COMPACT1_TARGETS) \
485    $(JRE_COMPACT2_TARGETS) \
486    $(JRE_COMPACT3_TARGETS)
487
488.PHONY: default all jimages profiles
489