Images.gmk revision 1961:f900d5afd9c8
1183234Ssimon#
2183234Ssimon# Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved.
3238405Sjkim# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4183234Ssimon#
5183234Ssimon# This code is free software; you can redistribute it and/or modify it
6183234Ssimon# under the terms of the GNU General Public License version 2 only, as
7183234Ssimon# published by the Free Software Foundation.  Oracle designates this
8183234Ssimon# particular file as subject to the "Classpath" exception as provided
9183234Ssimon# by Oracle in the LICENSE file that accompanied this code.
10280304Sjkim#
11183234Ssimon# This code is distributed in the hope that it will be useful, but WITHOUT
12183234Ssimon# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13183234Ssimon# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
14183234Ssimon# version 2 for more details (a copy is included in the LICENSE file that
15183234Ssimon# accompanied this code).
16183234Ssimon#
17183234Ssimon# You should have received a copy of the GNU General Public License version
18183234Ssimon# 2 along with this work; if not, write to the Free Software Foundation,
19183234Ssimon# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20183234Ssimon#
21183234Ssimon# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22183234Ssimon# or visit www.oracle.com if you need additional information or have any
23183234Ssimon# questions.
24183234Ssimon#
25183234Ssimon
26183234Ssimondefault: all
27183234Ssimon
28183234Ssimoninclude $(SPEC)
29183234Ssimoninclude MakeBase.gmk
30183234Ssimoninclude Modules.gmk
31183234Ssimon
32183234SsimonTOOL_TARGETS :=
33183234SsimonJDK_TARGETS :=
34183234SsimonJRE_TARGETS :=
35183234Ssimon
36183234Ssimon# Hook to include the corresponding custom file, if present.
37183234Ssimon$(eval $(call IncludeCustomExtension, , Images-pre.gmk))
38183234Ssimon
39183234Ssimon############################################################################
40183234Ssimon
41183234SsimonMAIN_MODULES += java.se.ee java.smartcardio jdk.httpserver jdk.sctp \
42183234Ssimon               jdk.security.auth jdk.security.jgss jdk.pack200 jdk.xml.dom \
43183234Ssimon               jdk.accessibility jdk.internal.le jdk.dynalink \
44183234Ssimon               jdk.scripting.nashorn jdk.scripting.nashorn.shell \
45183234Ssimon               jdk.vm.ci jdk.management jdk.jsobject
46183234Ssimon
47183234Ssimon# providers
48183234SsimonPROVIDER_MODULES += jdk.charsets jdk.crypto.ec jdk.crypto.pkcs11 jdk.jvmstat jdk.jvmstat.rmi \
49183234Ssimon               jdk.localedata jdk.naming.dns jdk.naming.rmi jdk.zipfs
50183234Ssimon
51183234Ssimon# tools
52183234SsimonTOOLS_MODULES += jdk.attach jdk.compiler \
53183234Ssimon               jdk.javadoc jdk.jcmd jdk.jconsole jdk.hotspot.agent jdk.jartool \
54183234Ssimon               jdk.jdeps jdk.jdi jdk.jdwp.agent jdk.jlink jdk.jshell \
55183234Ssimon               jdk.policytool jdk.rmic jdk.xml.bind jdk.xml.ws jdk.internal.opt
56280304Sjkim
57280304Sjkimifeq ($(OPENJDK_TARGET_OS), windows)
58183234Ssimon  PROVIDER_MODULES += jdk.crypto.mscapi
59183234Ssimonendif
60183234Ssimon
61183234Ssimonifeq ($(OPENJDK_TARGET_OS), solaris)
62183234Ssimon  PROVIDER_MODULES += jdk.crypto.ucrypto
63183234Ssimonendif
64183234Ssimon
65183234SsimonJRE_MODULES := $(filter-out $(MODULES_FILTER), $(MAIN_MODULES) $(PROVIDER_MODULES))
66183234SsimonJDK_MODULES := $(filter-out $(MODULES_FILTER), $(JRE_MODULES) $(TOOLS_MODULES))
67183234Ssimon
68183234Ssimon# Param 1 - Name of module
69280304Sjkimdefine ReadImportMetaData
70280304Sjkim  ifneq ($$(wildcard $(IMPORT_MODULES_MAKE)/$$(strip $1)/build.properties), )
71183234Ssimon    include_in_jre :=
72280304Sjkim    include_in_jdk :=
73280304Sjkim    include $(IMPORT_MODULES_MAKE)/$$(strip $1)/build.properties
74280304Sjkim    ifeq ($$(include_in_jre), true)
75280304Sjkim      JRE_MODULES += $1
76280304Sjkim    endif
77280304Sjkim    ifeq ($$(include_in_jdk), true)
78280304Sjkim      JDK_MODULES += $1
79280304Sjkim    endif
80280304Sjkim  else
81280304Sjkim    # Default to include in all
82280304Sjkim    JRE_MODULES += $1
83280304Sjkim    JDK_MODULES += $1
84280304Sjkim  endif
85280304Sjkimendef
86280304Sjkim
87280304SjkimIMPORTED_MODULES := $(call FindImportedModules)
88280304Sjkim$(foreach m, $(IMPORTED_MODULES), $(eval $(call ReadImportMetaData, $m)))
89280304Sjkim
90280304Sjkim# Compact builds have additional modules
91280304SjkimCOMPACT_EXTRA_MODULES := jdk.localedata jdk.crypto.pkcs11 jdk.crypto.ec
92280304SjkimJRE_COMPACT1_MODULES := $(COMPACT_EXTRA_MODULES) java.compact1
93280304SjkimJRE_COMPACT2_MODULES := $(JRE_COMPACT1_MODULES) java.compact2 jdk.xml.dom jdk.httpserver
94280304SjkimJRE_COMPACT3_MODULES := $(JRE_COMPACT2_MODULES) java.compact3 java.smartcardio jdk.management \
95280304Sjkim                        jdk.naming.dns jdk.naming.rmi jdk.sctp jdk.security.auth
96280304Sjkim
97280304Sjkim# Replacing double-comma with a single comma is to workaround the issue
98280304Sjkim# with some version of make on windows that doesn't substitute spaces
99280304Sjkim# with one comma properly as with make 4.0
100280304SjkimSubstComma = \
101280304Sjkim    $(strip \
102280304Sjkim        $(subst $(COMMA)$(COMMA),$(COMMA),$(subst $(SPACE),$(COMMA),$(strip $1))) \
103280304Sjkim    )
104280304Sjkim
105280304SjkimJRE_MODULES_LIST := $(call SubstComma, $(JRE_MODULES))
106280304SjkimJDK_MODULES_LIST := $(call SubstComma, $(JDK_MODULES))
107280304SjkimJRE_COMPACT1_MODULES_LIST := $(call SubstComma, $(JRE_COMPACT1_MODULES))
108280304SjkimJRE_COMPACT2_MODULES_LIST := $(call SubstComma, $(JRE_COMPACT2_MODULES))
109280304SjkimJRE_COMPACT3_MODULES_LIST := $(call SubstComma, $(JRE_COMPACT3_MODULES))
110280304Sjkim
111280304Sjkim################################################################################
112280304Sjkim# Release file
113280304Sjkim
114280304SjkimBASE_RELEASE_FILE := $(JDK_OUTPUTDIR)/release
115280304Sjkim
116280304Sjkim# Common way to emit a line into the release or info file
117280304Sjkimdefine info-file-item # name value
118280304Sjkim  $(PRINTF) '%s="%s"\n' $1 $2 >> $@
119280304Sjkimendef
120280304Sjkim
121280304Sjkim# Param 1 - The file containing the MODULES list
122280304Sjkimdefine create-info-file
123280304Sjkim  $(call info-file-item, "JAVA_VERSION", "$(VERSION_NUMBER)")
124280304Sjkim  $(call info-file-item, "JAVA_FULL_VERSION", "$(VERSION_STRING)")
125280304Sjkim  $(call info-file-item, "OS_NAME", "$(REQUIRED_OS_NAME)")
126280304Sjkim  $(call info-file-item, "OS_VERSION", "$(REQUIRED_OS_VERSION)")
127280304Sjkim  $(call info-file-item, "OS_ARCH", "$(OPENJDK_TARGET_CPU_LEGACY)")
128280304Sjkim  $(if $(JDK_ARCH_ABI_PROP_NAME), \
129280304Sjkim    $(call info-file-item, "SUN_ARCH_ABI", "$(JDK_ARCH_ABI_PROP_NAME)"))
130280304Sjkim  $(call info-file-item, "SOURCE", "$(strip $(ALL_SOURCE_TIPS))")
131280304Sjkimendef
132280304Sjkim
133280304Sjkim# Param 1 - The file containing the MODULES list
134280304Sjkimdefine prepare-info-file
135280304Sjkim  $(ECHO) $(LOG_INFO) Generating $(patsubst $(OUTPUT_ROOT)/%,%,$@)
136280304Sjkim  $(MKDIR) -p $(@D)
137280304Sjkim  $(RM) $@
138280304Sjkimendef
139280304Sjkim
140280304Sjkimdefine info-file
141280304Sjkim  $(call prepare-info-file)
142280304Sjkim  $(call create-info-file)
143280304Sjkimendef
144280304Sjkim
145280304Sjkim# Create a variable dependency file common for all release info files.
146280304SjkimINFO_FILE_VARDEPS := $(call DependOnVariable, create-info-file)
147280304Sjkim
148280304SjkimALL_SOURCE_TIPS = $(shell \
149280304Sjkim    if [ -f $(SUPPORT_OUTPUTDIR)/source_tips ] ; then \
150280304Sjkim      $(CAT) $(SUPPORT_OUTPUTDIR)/source_tips ; \
151280304Sjkim    fi)
152280304Sjkim
153280304Sjkim$(BASE_RELEASE_FILE): $(INFO_FILE_VARDEPS) $(SUPPORT_OUTPUTDIR)/source_tips
154280304Sjkim	$(info-file)
155280304Sjkim
156280304Sjkim################################################################################
157280304Sjkim
158280304SjkimJMODS := $(wildcard $(IMAGES_OUTPUTDIR)/jmods/*.jmod)
159280304Sjkim
160280304Sjkim# Use this file inside the image as target for make rule
161280304SjkimJIMAGE_TARGET_FILE := bin/java$(EXE_SUFFIX)
162280304Sjkim
163280304SjkimJLINK_TOOL := $(JLINK) --modulepath $(IMAGES_OUTPUTDIR)/jmods \
164280304Sjkim              --endian $(OPENJDK_BUILD_CPU_ENDIAN) \
165280304Sjkim              --release-info $(BASE_RELEASE_FILE)
166280304Sjkim
167280304Sjkimifeq ($(JLINK_KEEP_PACKAGED_MODULES), true)
168280304Sjkim  JLINK_EXTRA_OPTS := --keep-packaged-modules $(JDK_IMAGE_DIR)/jmods
169280304Sjkimendif
170280304Sjkim
171183234Ssimon$(JDK_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(JMODS) \
172280304Sjkim    $(call DependOnVariable, JDK_MODULES_LIST) $(BASE_RELEASE_FILE)
173280304Sjkim	$(ECHO) Creating jdk jimage
174280304Sjkim	$(RM) -r $(JDK_IMAGE_DIR)
175280304Sjkim	$(JLINK_TOOL) --output $(JDK_IMAGE_DIR) \
176280304Sjkim	    --addmods $(JDK_MODULES_LIST) $(JLINK_EXTRA_OPTS)
177280304Sjkim	$(TOUCH) $@
178280304Sjkim
179280304Sjkim$(JRE_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(JMODS) \
180280304Sjkim    $(call DependOnVariable, JRE_MODULES_LIST) $(BASE_RELEASE_FILE)
181280304Sjkim	$(ECHO) Creating jre jimage
182280304Sjkim	$(RM) -r $(JRE_IMAGE_DIR)
183280304Sjkim	$(JLINK_TOOL) --output $(JRE_IMAGE_DIR) \
184280304Sjkim	    --addmods $(JRE_MODULES_LIST)
185280304Sjkim	$(TOUCH) $@
186280304Sjkim
187280304SjkimJRE_COMPACT1_IMAGE_DIR := $(JRE_IMAGE_DIR)-compact1
188280304SjkimJRE_COMPACT2_IMAGE_DIR := $(JRE_IMAGE_DIR)-compact2
189280304SjkimJRE_COMPACT3_IMAGE_DIR := $(JRE_IMAGE_DIR)-compact3
190280304Sjkim
191280304Sjkim$(JRE_COMPACT1_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(JMODS) \
192280304Sjkim    $(call DependOnVariable, JRE_COMPACT1_MODULES_LIST) $(BASE_RELEASE_FILE)
193280304Sjkim	$(ECHO) Creating jre compact1 jimage
194280304Sjkim	$(RM) -r $(JRE_COMPACT1_IMAGE_DIR)
195280304Sjkim	$(JLINK_TOOL) --addmods $(JRE_COMPACT1_MODULES_LIST) \
196280304Sjkim	    --output $(JRE_COMPACT1_IMAGE_DIR)
197280304Sjkim	$(TOUCH) $@
198280304Sjkim
199280304Sjkim$(JRE_COMPACT2_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(JMODS) \
200280304Sjkim    $(call DependOnVariable, JRE_COMPACT2_MODULES_LIST) $(BASE_RELEASE_FILE)
201280304Sjkim	$(ECHO) Creating jre compact2 jimage
202280304Sjkim	$(RM) -r $(JRE_COMPACT2_IMAGE_DIR)
203280304Sjkim	$(JLINK_TOOL) --addmods $(JRE_COMPACT2_MODULES_LIST) \
204280304Sjkim	    --output $(JRE_COMPACT2_IMAGE_DIR)
205280304Sjkim	$(TOUCH) $@
206280304Sjkim
207280304Sjkim$(JRE_COMPACT3_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(JMODS) \
208280304Sjkim    $(call DependOnVariable, JRE_COMPACT3_MODULES_LIST) $(BASE_RELEASE_FILE)
209280304Sjkim	$(ECHO) Creating jre compact3 jimage
210280304Sjkim	$(RM) -r $(JRE_COMPACT3_IMAGE_DIR)
211280304Sjkim	$(JLINK_TOOL) --addmods $(JRE_COMPACT3_MODULES_LIST) \
212280304Sjkim	    --output $(JRE_COMPACT3_IMAGE_DIR)
213280304Sjkim	$(TOUCH) $@
214280304Sjkim
215280304SjkimTOOL_JRE_TARGETS := $(JRE_IMAGE_DIR)/$(JIMAGE_TARGET_FILE)
216280304SjkimTOOL_JDK_TARGETS := $(JDK_IMAGE_DIR)/$(JIMAGE_TARGET_FILE)
217280304SjkimTOOL_JRE_COMPACT1_TARGETS := $(JRE_COMPACT1_IMAGE_DIR)/$(JIMAGE_TARGET_FILE)
218280304SjkimTOOL_JRE_COMPACT2_TARGETS := $(JRE_COMPACT2_IMAGE_DIR)/$(JIMAGE_TARGET_FILE)
219280304SjkimTOOL_JRE_COMPACT3_TARGETS := $(JRE_COMPACT3_IMAGE_DIR)/$(JIMAGE_TARGET_FILE)
220280304Sjkim
221280304Sjkim################################################################################
222280304Sjkim# /man dir
223280304Sjkim#
224280304Sjkim# All variables in this section are assigned with simple =, without :, to enable
225280304Sjkim# more selective overriding from the custom version of this file.
226280304Sjkim#
227280304Sjkim# Avoid evaluating this whole section on windows for speed and stability
228280304Sjkimifneq ($(OPENJDK_TARGET_OS), windows)
229280304Sjkim  JRE_MAN_PAGES += \
230280304Sjkim      java.1 \
231280304Sjkim      jjs.1 \
232280304Sjkim      keytool.1 \
233280304Sjkim      orbd.1 \
234280304Sjkim      pack200.1 \
235280304Sjkim      rmid.1 \
236280304Sjkim      rmiregistry.1 \
237280304Sjkim      servertool.1 \
238280304Sjkim      tnameserv.1 \
239280304Sjkim      unpack200.1
240280304Sjkim
241280304Sjkim  ifndef OPENJDK
242280304Sjkim    ifneq ($(OPENJDK_TARGET_OS), solaris)
243280304Sjkim      JRE_MAN_PAGES += javaws.1
244280304Sjkim    endif
245280304Sjkim  endif
246280304Sjkim
247280304Sjkim  JDK_MAN_PAGES += \
248280304Sjkim      $(JRE_MAN_PAGES) \
249280304Sjkim      appletviewer.1 \
250280304Sjkim      idlj.1 \
251280304Sjkim      jar.1 \
252280304Sjkim      jarsigner.1 \
253280304Sjkim      javac.1 \
254280304Sjkim      javadoc.1 \
255280304Sjkim      javah.1 \
256280304Sjkim      javap.1 \
257280304Sjkim      jconsole.1 \
258280304Sjkim      jcmd.1 \
259280304Sjkim      jdb.1 \
260280304Sjkim      jdeps.1 \
261280304Sjkim      jinfo.1 \
262280304Sjkim      jmap.1 \
263280304Sjkim      jps.1 \
264280304Sjkim      jrunscript.1 \
265280304Sjkim      jsadebugd.1 \
266280304Sjkim      jstack.1 \
267280304Sjkim      jstat.1 \
268280304Sjkim      jstatd.1 \
269280304Sjkim      policytool.1 \
270280304Sjkim      rmic.1 \
271280304Sjkim      schemagen.1 \
272280304Sjkim      serialver.1 \
273280304Sjkim      wsgen.1 \
274280304Sjkim      wsimport.1 \
275280304Sjkim      xjc.1
276280304Sjkim
277280304Sjkim  # This variable is potentially overridden in the closed makefile.
278280304Sjkim  MAN_SRC_BASEDIR ?= $(JDK_TOPDIR)/src
279280304Sjkim
280280304Sjkim  ifeq ($(OPENJDK_TARGET_OS), linux)
281183234Ssimon    MAN_SRC_DIR = $(MAN_SRC_BASEDIR)/linux/doc
282183234Ssimon    MAN1_SUBDIR = man
283183234Ssimon  endif
284183234Ssimon  ifeq ($(OPENJDK_TARGET_OS), solaris)
285280304Sjkim    MAN_SRC_DIR = $(MAN_SRC_BASEDIR)/solaris/doc
286183234Ssimon    MAN1_SUBDIR = sun/man/man1
287183234Ssimon  endif
288280304Sjkim  ifeq ($(OPENJDK_TARGET_OS), macosx)
289280304Sjkim    MAN_SRC_DIR = $(MAN_SRC_BASEDIR)/bsd/doc
290280304Sjkim    MAN1_SUBDIR = man
291280304Sjkim  endif
292183234Ssimon
293280304Sjkim  $(JRE_IMAGE_DIR)/man/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/%
294	$(call LogInfo, Copying $(patsubst $(OUTPUT_ROOT)/%,%,$@))
295	$(install-file)
296
297  $(JDK_IMAGE_DIR)/man/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/%
298	$(call LogInfo, Copying $(patsubst $(OUTPUT_ROOT)/%,%,$@))
299	$(install-file)
300
301  $(JRE_IMAGE_DIR)/man/ja_JP.UTF-8/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/ja/%
302	$(call LogInfo, Copying $(patsubst $(OUTPUT_ROOT)/%,%,$@))
303	$(install-file)
304
305  $(JDK_IMAGE_DIR)/man/ja_JP.UTF-8/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/ja/%
306	$(call LogInfo, Copying $(patsubst $(OUTPUT_ROOT)/%,%,$@))
307	$(install-file)
308
309  ifeq ($(OPENJDK_TARGET_OS), solaris)
310    $(JRE_IMAGE_DIR)/man/ja/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/ja/%
311	$(call LogInfo, Converting $(patsubst $(OUTPUT_ROOT)/%,%,$@))
312	$(install-file)
313
314    $(JDK_IMAGE_DIR)/man/ja/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/ja/%
315	$(call LogInfo, Converting $(patsubst $(OUTPUT_ROOT)/%,%,$@))
316	$(install-file)
317  endif
318
319  ifneq ($(findstring $(OPENJDK_TARGET_OS), linux macosx), )
320    $(JRE_IMAGE_DIR)/man/ja:
321	$(call LogInfo, Creating $(patsubst $(OUTPUT_ROOT)/%,%,$@))
322	$(CD) $(@D) && $(RM) ja && $(LN) -s ja_JP.UTF-8 ja
323
324    $(JDK_IMAGE_DIR)/man/ja:
325	$(call LogInfo, Creating $(patsubst $(OUTPUT_ROOT)/%,%,$@))
326	$(CD) $(@D) && $(RM) ja && $(LN) -s ja_JP.UTF-8 ja
327  endif
328
329  ifeq ($(OPENJDK_TARGET_OS), solaris)
330    JRE_MAN_PAGE_LIST = $(addprefix $(JRE_IMAGE_DIR)/man/man1/, $(JRE_MAN_PAGES)) \
331        $(addprefix $(JRE_IMAGE_DIR)/man/ja/man1/, $(JRE_MAN_PAGES)) \
332        $(addprefix $(JRE_IMAGE_DIR)/man/ja_JP.UTF-8/man1/, $(JRE_MAN_PAGES)) \
333        $(addprefix $(JRE_IMAGE_DIR)/man/ja_JP.PCK/man1/, $(JRE_MAN_PAGES))
334
335    JDK_MAN_PAGE_LIST = $(addprefix $(JDK_IMAGE_DIR)/man/man1/, $(JDK_MAN_PAGES)) \
336        $(addprefix $(JDK_IMAGE_DIR)/man/ja/man1/, $(JDK_MAN_PAGES)) \
337        $(addprefix $(JDK_IMAGE_DIR)/man/ja_JP.UTF-8/man1/, $(JDK_MAN_PAGES)) \
338        $(addprefix $(JDK_IMAGE_DIR)/man/ja_JP.PCK/man1/, $(JDK_MAN_PAGES))
339  endif
340
341  ifneq ($(findstring $(OPENJDK_TARGET_OS), linux macosx), )
342    JRE_MAN_PAGE_LIST = $(addprefix $(JRE_IMAGE_DIR)/man/man1/, $(JRE_MAN_PAGES)) \
343        $(addprefix $(JRE_IMAGE_DIR)/man/ja_JP.UTF-8/man1/, $(JRE_MAN_PAGES)) \
344        $(JRE_IMAGE_DIR)/man/ja
345
346    JDK_MAN_PAGE_LIST = $(addprefix $(JDK_IMAGE_DIR)/man/man1/, $(JDK_MAN_PAGES)) \
347        $(addprefix $(JDK_IMAGE_DIR)/man/ja_JP.UTF-8/man1/, $(JDK_MAN_PAGES)) \
348        $(JDK_IMAGE_DIR)/man/ja
349  endif
350
351  JRE_TARGETS += $(JRE_MAN_PAGE_LIST)
352  JDK_TARGETS += $(JDK_MAN_PAGE_LIST)
353endif # Windows
354
355################################################################################
356# /include dir
357
358$(eval $(call SetupCopyFiles,COPY_INCLUDES, \
359    SRC := $(JDK_OUTPUTDIR)/include, \
360    DEST := $(JDK_IMAGE_DIR)/include, \
361    FILES := $(call CacheFind,$(JDK_OUTPUTDIR)/include)))
362
363JDK_TARGETS += $(COPY_INCLUDES)
364
365################################################################################
366# doc files
367
368JRE_DOC_FILES ?= LICENSE ASSEMBLY_EXCEPTION THIRD_PARTY_README
369JDK_DOC_FILES ?= LICENSE ASSEMBLY_EXCEPTION THIRD_PARTY_README
370JRE_DOC_LOCATION ?= $(JDK_TOPDIR)
371JDK_DOC_LOCATION ?= $(JDK_TOPDIR)
372
373JRE_DOC_TARGETS := $(addprefix $(JRE_IMAGE_DIR)/, $(JRE_DOC_FILES))
374JDK_DOC_TARGETS := $(addprefix $(JDK_IMAGE_DIR)/, $(JDK_DOC_FILES))
375
376# Processing license files from source area to image area
377# These are modified to have the platform specific EOL chars.
378define process-doc-file
379	$(call LogInfo, Processing $(patsubst $(OUTPUT_ROOT)/%,%,$@))
380	$(MKDIR) -p $(@D)
381	$(RM) $@
382	LC_ALL=C $(SED) 's/$$//g' $< > $@
383	$(CHMOD) 444 $@
384endef
385
386$(JRE_IMAGE_DIR)/%: $(JRE_DOC_LOCATION)/%
387	$(process-doc-file)
388
389$(JDK_IMAGE_DIR)/%: $(JDK_DOC_LOCATION)/%
390	$(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