Images.gmk revision 1961:f900d5afd9c8
1#
2# Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved.
3# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4#
5# This code is free software; you can redistribute it and/or modify it
6# under the terms of the GNU General Public License version 2 only, as
7# published by the Free Software Foundation.  Oracle designates this
8# particular file as subject to the "Classpath" exception as provided
9# by Oracle in the LICENSE file that accompanied this code.
10#
11# This code is distributed in the hope that it will be useful, but WITHOUT
12# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
14# version 2 for more details (a copy is included in the LICENSE file that
15# accompanied this code).
16#
17# You should have received a copy of the GNU General Public License version
18# 2 along with this work; if not, write to the Free Software Foundation,
19# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20#
21# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22# or visit www.oracle.com if you need additional information or have any
23# questions.
24#
25
26default: all
27
28include $(SPEC)
29include MakeBase.gmk
30include Modules.gmk
31
32TOOL_TARGETS :=
33JDK_TARGETS :=
34JRE_TARGETS :=
35
36# Hook to include the corresponding custom file, if present.
37$(eval $(call IncludeCustomExtension, , Images-pre.gmk))
38
39############################################################################
40
41MAIN_MODULES += java.se.ee java.smartcardio jdk.httpserver jdk.sctp \
42               jdk.security.auth jdk.security.jgss jdk.pack200 jdk.xml.dom \
43               jdk.accessibility jdk.internal.le jdk.dynalink \
44               jdk.scripting.nashorn jdk.scripting.nashorn.shell \
45               jdk.vm.ci jdk.management jdk.jsobject
46
47# providers
48PROVIDER_MODULES += jdk.charsets jdk.crypto.ec jdk.crypto.pkcs11 jdk.jvmstat jdk.jvmstat.rmi \
49               jdk.localedata jdk.naming.dns jdk.naming.rmi jdk.zipfs
50
51# tools
52TOOLS_MODULES += jdk.attach jdk.compiler \
53               jdk.javadoc jdk.jcmd jdk.jconsole jdk.hotspot.agent jdk.jartool \
54               jdk.jdeps jdk.jdi jdk.jdwp.agent jdk.jlink jdk.jshell \
55               jdk.policytool jdk.rmic jdk.xml.bind jdk.xml.ws jdk.internal.opt
56
57ifeq ($(OPENJDK_TARGET_OS), windows)
58  PROVIDER_MODULES += jdk.crypto.mscapi
59endif
60
61ifeq ($(OPENJDK_TARGET_OS), solaris)
62  PROVIDER_MODULES += jdk.crypto.ucrypto
63endif
64
65JRE_MODULES := $(filter-out $(MODULES_FILTER), $(MAIN_MODULES) $(PROVIDER_MODULES))
66JDK_MODULES := $(filter-out $(MODULES_FILTER), $(JRE_MODULES) $(TOOLS_MODULES))
67
68# Param 1 - Name of module
69define ReadImportMetaData
70  ifneq ($$(wildcard $(IMPORT_MODULES_MAKE)/$$(strip $1)/build.properties), )
71    include_in_jre :=
72    include_in_jdk :=
73    include $(IMPORT_MODULES_MAKE)/$$(strip $1)/build.properties
74    ifeq ($$(include_in_jre), true)
75      JRE_MODULES += $1
76    endif
77    ifeq ($$(include_in_jdk), true)
78      JDK_MODULES += $1
79    endif
80  else
81    # Default to include in all
82    JRE_MODULES += $1
83    JDK_MODULES += $1
84  endif
85endef
86
87IMPORTED_MODULES := $(call FindImportedModules)
88$(foreach m, $(IMPORTED_MODULES), $(eval $(call ReadImportMetaData, $m)))
89
90# Compact builds have additional modules
91COMPACT_EXTRA_MODULES := jdk.localedata jdk.crypto.pkcs11 jdk.crypto.ec
92JRE_COMPACT1_MODULES := $(COMPACT_EXTRA_MODULES) java.compact1
93JRE_COMPACT2_MODULES := $(JRE_COMPACT1_MODULES) java.compact2 jdk.xml.dom jdk.httpserver
94JRE_COMPACT3_MODULES := $(JRE_COMPACT2_MODULES) java.compact3 java.smartcardio jdk.management \
95                        jdk.naming.dns jdk.naming.rmi jdk.sctp jdk.security.auth
96
97# Replacing double-comma with a single comma is to workaround the issue
98# with some version of make on windows that doesn't substitute spaces
99# with one comma properly as with make 4.0
100SubstComma = \
101    $(strip \
102        $(subst $(COMMA)$(COMMA),$(COMMA),$(subst $(SPACE),$(COMMA),$(strip $1))) \
103    )
104
105JRE_MODULES_LIST := $(call SubstComma, $(JRE_MODULES))
106JDK_MODULES_LIST := $(call SubstComma, $(JDK_MODULES))
107JRE_COMPACT1_MODULES_LIST := $(call SubstComma, $(JRE_COMPACT1_MODULES))
108JRE_COMPACT2_MODULES_LIST := $(call SubstComma, $(JRE_COMPACT2_MODULES))
109JRE_COMPACT3_MODULES_LIST := $(call SubstComma, $(JRE_COMPACT3_MODULES))
110
111################################################################################
112# Release file
113
114BASE_RELEASE_FILE := $(JDK_OUTPUTDIR)/release
115
116# Common way to emit a line into the release or info file
117define info-file-item # name value
118  $(PRINTF) '%s="%s"\n' $1 $2 >> $@
119endef
120
121# Param 1 - The file containing the MODULES list
122define create-info-file
123  $(call info-file-item, "JAVA_VERSION", "$(VERSION_NUMBER)")
124  $(call info-file-item, "JAVA_FULL_VERSION", "$(VERSION_STRING)")
125  $(call info-file-item, "OS_NAME", "$(REQUIRED_OS_NAME)")
126  $(call info-file-item, "OS_VERSION", "$(REQUIRED_OS_VERSION)")
127  $(call info-file-item, "OS_ARCH", "$(OPENJDK_TARGET_CPU_LEGACY)")
128  $(if $(JDK_ARCH_ABI_PROP_NAME), \
129    $(call info-file-item, "SUN_ARCH_ABI", "$(JDK_ARCH_ABI_PROP_NAME)"))
130  $(call info-file-item, "SOURCE", "$(strip $(ALL_SOURCE_TIPS))")
131endef
132
133# Param 1 - The file containing the MODULES list
134define prepare-info-file
135  $(ECHO) $(LOG_INFO) Generating $(patsubst $(OUTPUT_ROOT)/%,%,$@)
136  $(MKDIR) -p $(@D)
137  $(RM) $@
138endef
139
140define info-file
141  $(call prepare-info-file)
142  $(call create-info-file)
143endef
144
145# Create a variable dependency file common for all release info files.
146INFO_FILE_VARDEPS := $(call DependOnVariable, create-info-file)
147
148ALL_SOURCE_TIPS = $(shell \
149    if [ -f $(SUPPORT_OUTPUTDIR)/source_tips ] ; then \
150      $(CAT) $(SUPPORT_OUTPUTDIR)/source_tips ; \
151    fi)
152
153$(BASE_RELEASE_FILE): $(INFO_FILE_VARDEPS) $(SUPPORT_OUTPUTDIR)/source_tips
154	$(info-file)
155
156################################################################################
157
158JMODS := $(wildcard $(IMAGES_OUTPUTDIR)/jmods/*.jmod)
159
160# Use this file inside the image as target for make rule
161JIMAGE_TARGET_FILE := bin/java$(EXE_SUFFIX)
162
163JLINK_TOOL := $(JLINK) --modulepath $(IMAGES_OUTPUTDIR)/jmods \
164              --endian $(OPENJDK_BUILD_CPU_ENDIAN) \
165              --release-info $(BASE_RELEASE_FILE)
166
167ifeq ($(JLINK_KEEP_PACKAGED_MODULES), true)
168  JLINK_EXTRA_OPTS := --keep-packaged-modules $(JDK_IMAGE_DIR)/jmods
169endif
170
171$(JDK_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(JMODS) \
172    $(call DependOnVariable, JDK_MODULES_LIST) $(BASE_RELEASE_FILE)
173	$(ECHO) Creating jdk jimage
174	$(RM) -r $(JDK_IMAGE_DIR)
175	$(JLINK_TOOL) --output $(JDK_IMAGE_DIR) \
176	    --addmods $(JDK_MODULES_LIST) $(JLINK_EXTRA_OPTS)
177	$(TOUCH) $@
178
179$(JRE_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(JMODS) \
180    $(call DependOnVariable, JRE_MODULES_LIST) $(BASE_RELEASE_FILE)
181	$(ECHO) Creating jre jimage
182	$(RM) -r $(JRE_IMAGE_DIR)
183	$(JLINK_TOOL) --output $(JRE_IMAGE_DIR) \
184	    --addmods $(JRE_MODULES_LIST)
185	$(TOUCH) $@
186
187JRE_COMPACT1_IMAGE_DIR := $(JRE_IMAGE_DIR)-compact1
188JRE_COMPACT2_IMAGE_DIR := $(JRE_IMAGE_DIR)-compact2
189JRE_COMPACT3_IMAGE_DIR := $(JRE_IMAGE_DIR)-compact3
190
191$(JRE_COMPACT1_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(JMODS) \
192    $(call DependOnVariable, JRE_COMPACT1_MODULES_LIST) $(BASE_RELEASE_FILE)
193	$(ECHO) Creating jre compact1 jimage
194	$(RM) -r $(JRE_COMPACT1_IMAGE_DIR)
195	$(JLINK_TOOL) --addmods $(JRE_COMPACT1_MODULES_LIST) \
196	    --output $(JRE_COMPACT1_IMAGE_DIR)
197	$(TOUCH) $@
198
199$(JRE_COMPACT2_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(JMODS) \
200    $(call DependOnVariable, JRE_COMPACT2_MODULES_LIST) $(BASE_RELEASE_FILE)
201	$(ECHO) Creating jre compact2 jimage
202	$(RM) -r $(JRE_COMPACT2_IMAGE_DIR)
203	$(JLINK_TOOL) --addmods $(JRE_COMPACT2_MODULES_LIST) \
204	    --output $(JRE_COMPACT2_IMAGE_DIR)
205	$(TOUCH) $@
206
207$(JRE_COMPACT3_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(JMODS) \
208    $(call DependOnVariable, JRE_COMPACT3_MODULES_LIST) $(BASE_RELEASE_FILE)
209	$(ECHO) Creating jre compact3 jimage
210	$(RM) -r $(JRE_COMPACT3_IMAGE_DIR)
211	$(JLINK_TOOL) --addmods $(JRE_COMPACT3_MODULES_LIST) \
212	    --output $(JRE_COMPACT3_IMAGE_DIR)
213	$(TOUCH) $@
214
215TOOL_JRE_TARGETS := $(JRE_IMAGE_DIR)/$(JIMAGE_TARGET_FILE)
216TOOL_JDK_TARGETS := $(JDK_IMAGE_DIR)/$(JIMAGE_TARGET_FILE)
217TOOL_JRE_COMPACT1_TARGETS := $(JRE_COMPACT1_IMAGE_DIR)/$(JIMAGE_TARGET_FILE)
218TOOL_JRE_COMPACT2_TARGETS := $(JRE_COMPACT2_IMAGE_DIR)/$(JIMAGE_TARGET_FILE)
219TOOL_JRE_COMPACT3_TARGETS := $(JRE_COMPACT3_IMAGE_DIR)/$(JIMAGE_TARGET_FILE)
220
221################################################################################
222# /man dir
223#
224# All variables in this section are assigned with simple =, without :, to enable
225# more selective overriding from the custom version of this file.
226#
227# Avoid evaluating this whole section on windows for speed and stability
228ifneq ($(OPENJDK_TARGET_OS), windows)
229  JRE_MAN_PAGES += \
230      java.1 \
231      jjs.1 \
232      keytool.1 \
233      orbd.1 \
234      pack200.1 \
235      rmid.1 \
236      rmiregistry.1 \
237      servertool.1 \
238      tnameserv.1 \
239      unpack200.1
240
241  ifndef OPENJDK
242    ifneq ($(OPENJDK_TARGET_OS), solaris)
243      JRE_MAN_PAGES += javaws.1
244    endif
245  endif
246
247  JDK_MAN_PAGES += \
248      $(JRE_MAN_PAGES) \
249      appletviewer.1 \
250      idlj.1 \
251      jar.1 \
252      jarsigner.1 \
253      javac.1 \
254      javadoc.1 \
255      javah.1 \
256      javap.1 \
257      jconsole.1 \
258      jcmd.1 \
259      jdb.1 \
260      jdeps.1 \
261      jinfo.1 \
262      jmap.1 \
263      jps.1 \
264      jrunscript.1 \
265      jsadebugd.1 \
266      jstack.1 \
267      jstat.1 \
268      jstatd.1 \
269      policytool.1 \
270      rmic.1 \
271      schemagen.1 \
272      serialver.1 \
273      wsgen.1 \
274      wsimport.1 \
275      xjc.1
276
277  # This variable is potentially overridden in the closed makefile.
278  MAN_SRC_BASEDIR ?= $(JDK_TOPDIR)/src
279
280  ifeq ($(OPENJDK_TARGET_OS), linux)
281    MAN_SRC_DIR = $(MAN_SRC_BASEDIR)/linux/doc
282    MAN1_SUBDIR = man
283  endif
284  ifeq ($(OPENJDK_TARGET_OS), solaris)
285    MAN_SRC_DIR = $(MAN_SRC_BASEDIR)/solaris/doc
286    MAN1_SUBDIR = sun/man/man1
287  endif
288  ifeq ($(OPENJDK_TARGET_OS), macosx)
289    MAN_SRC_DIR = $(MAN_SRC_BASEDIR)/bsd/doc
290    MAN1_SUBDIR = man
291  endif
292
293  $(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