Images.gmk 16.8 KB
Newer Older
C
chegar 已提交
1
#
D
dsamersoff 已提交
2
# Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
C
chegar 已提交
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation.  Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#

default: all

include $(SPEC)
include MakeBase.gmk
30
include Modules.gmk
C
chegar 已提交
31 32

TOOL_TARGETS :=
33
JDK_TARGETS :=
C
chegar 已提交
34 35 36 37 38 39 40
JRE_TARGETS :=

# Hook to include the corresponding custom file, if present.
$(eval $(call IncludeCustomExtension, , Images-pre.gmk))

############################################################################

41 42 43 44
# All modules for the current target platform.
ALL_MODULES := $(call FindAllModules)

$(eval $(call ReadImportMetaData))
A
alanb 已提交
45

46 47 48
JRE_MODULES += $(filter $(ALL_MODULES), $(BOOT_MODULES) \
    $(PLATFORM_MODULES) $(JRE_TOOL_MODULES))
JDK_MODULES += $(ALL_MODULES)
A
alanb 已提交
49 50

# Compact builds have additional modules
51 52 53 54 55 56 57 58
COMPACT1_EXTRA_MODULES := jdk.localedata jdk.crypto.pkcs11 jdk.crypto.ec
COMPACT2_EXTRA_MODULES := jdk.xml.dom jdk.httpserver
COMPACT3_EXTRA_MODULES := java.smartcardio jdk.management \
    jdk.naming.dns jdk.naming.rmi jdk.sctp jdk.security.auth

JRE_COMPACT1_MODULES := java.compact1 $(COMPACT1_EXTRA_MODULES)
JRE_COMPACT2_MODULES := $(JRE_COMPACT1_MODULES) java.compact2 $(COMPACT2_EXTRA_MODULES)
JRE_COMPACT3_MODULES := $(JRE_COMPACT2_MODULES) java.compact3 $(COMPACT3_EXTRA_MODULES)
C
chegar 已提交
59

60 61 62 63 64
JRE_MODULES_LIST := $(call CommaList, $(JRE_MODULES))
JDK_MODULES_LIST := $(call CommaList, $(JDK_MODULES))
JRE_COMPACT1_MODULES_LIST := $(call CommaList, $(JRE_COMPACT1_MODULES))
JRE_COMPACT2_MODULES_LIST := $(call CommaList, $(JRE_COMPACT2_MODULES))
JRE_COMPACT3_MODULES_LIST := $(call CommaList, $(JRE_COMPACT3_MODULES))
A
alanb 已提交
65 66 67 68 69 70 71 72 73 74 75 76 77 78 79

################################################################################
# Release file

BASE_RELEASE_FILE := $(JDK_OUTPUTDIR)/release

# Common way to emit a line into the release or info file
define info-file-item # name value
  $(PRINTF) '%s="%s"\n' $1 $2 >> $@
endef

# Param 1 - The file containing the MODULES list
define create-info-file
  $(if $(JDK_ARCH_ABI_PROP_NAME), \
    $(call info-file-item, "SUN_ARCH_ABI", "$(JDK_ARCH_ABI_PROP_NAME)"))
80
  $(call info-file-item, "SOURCE", "$(strip $(SOURCE_REVISION))")
A
alanb 已提交
81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
endef

# Param 1 - The file containing the MODULES list
define prepare-info-file
  $(ECHO) $(LOG_INFO) Generating $(patsubst $(OUTPUT_ROOT)/%,%,$@)
  $(MKDIR) -p $(@D)
  $(RM) $@
endef

define info-file
  $(call prepare-info-file)
  $(call create-info-file)
endef

# Create a variable dependency file common for all release info files.
INFO_FILE_VARDEPS := $(call DependOnVariable, create-info-file)

98 99 100
SOURCE_REVISION = $(shell \
    if [ -f $(SOURCE_REVISION_TRACKER) ] ; then \
      $(CAT) $(SOURCE_REVISION_TRACKER) ; \
A
alanb 已提交
101 102
    fi)

103 104
# The SOURCE_REVISION_TRACKER file may not exist. Only depend on it if it does.
$(BASE_RELEASE_FILE): $(INFO_FILE_VARDEPS) $(wildcard $(SOURCE_REVISION_TRACKER))
A
alanb 已提交
105
	$(info-file)
C
chegar 已提交
106 107 108

################################################################################

A
alanb 已提交
109
JMODS := $(wildcard $(IMAGES_OUTPUTDIR)/jmods/*.jmod)
C
chegar 已提交
110 111 112 113

# Use this file inside the image as target for make rule
JIMAGE_TARGET_FILE := bin/java$(EXE_SUFFIX)

114
JLINK_ORDER_RESOURCES := **module-info.class
115
JLINK_JLI_CLASSES :=
116
ifeq ($(ENABLE_GENERATE_CLASSLIST), true)
117 118
  JLINK_ORDER_RESOURCES += @$(SUPPORT_OUTPUTDIR)/link_opt/classlist
  JLINK_JLI_CLASSES := --generate-jli-classes=@$(SUPPORT_OUTPUTDIR)/link_opt/jli_trace.out
119 120
endif
JLINK_ORDER_RESOURCES += \
121 122 123 124 125
    /java.base/java/** \
    /java.base/jdk/** \
    /java.base/sun/** \
    /java.base/com/** \
    /jdk.localedata/** \
126 127
    #

128
JLINK_TOOL := $(JLINK) --module-path $(IMAGES_OUTPUTDIR)/jmods \
129 130 131
    --endian $(OPENJDK_BUILD_CPU_ENDIAN) \
    --release-info $(BASE_RELEASE_FILE) \
    --order-resources=$(call CommaList, $(JLINK_ORDER_RESOURCES)) \
132
    $(JLINK_JLI_CLASSES) \
133
    #
A
alanb 已提交
134

135
JLINK_JRE_EXTRA_OPTS := --no-man-pages --no-header-files --strip-debug
136

A
alanb 已提交
137
ifeq ($(JLINK_KEEP_PACKAGED_MODULES), true)
138
  JLINK_JDK_EXTRA_OPTS := --keep-packaged-modules $(JDK_IMAGE_DIR)/jmods
A
alanb 已提交
139 140 141 142
endif

$(JDK_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(JMODS) \
    $(call DependOnVariable, JDK_MODULES_LIST) $(BASE_RELEASE_FILE)
C
chegar 已提交
143
	$(ECHO) Creating jdk jimage
A
alanb 已提交
144
	$(RM) -r $(JDK_IMAGE_DIR)
145
	$(JLINK_TOOL) --add-modules $(JDK_MODULES_LIST) \
146
	    $(JLINK_JDK_EXTRA_OPTS) \
147
	    --output $(JDK_IMAGE_DIR)
C
chegar 已提交
148 149
	$(TOUCH) $@

A
alanb 已提交
150 151
$(JRE_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(JMODS) \
    $(call DependOnVariable, JRE_MODULES_LIST) $(BASE_RELEASE_FILE)
C
chegar 已提交
152
	$(ECHO) Creating jre jimage
A
alanb 已提交
153
	$(RM) -r $(JRE_IMAGE_DIR)
154 155
	$(JLINK_TOOL) --add-modules $(JRE_MODULES_LIST) \
	    $(JLINK_JRE_EXTRA_OPTS) \
156
	    --output $(JRE_IMAGE_DIR)
C
chegar 已提交
157 158 159 160 161 162
	$(TOUCH) $@

JRE_COMPACT1_IMAGE_DIR := $(JRE_IMAGE_DIR)-compact1
JRE_COMPACT2_IMAGE_DIR := $(JRE_IMAGE_DIR)-compact2
JRE_COMPACT3_IMAGE_DIR := $(JRE_IMAGE_DIR)-compact3

163

A
alanb 已提交
164 165
$(JRE_COMPACT1_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(JMODS) \
    $(call DependOnVariable, JRE_COMPACT1_MODULES_LIST) $(BASE_RELEASE_FILE)
C
chegar 已提交
166
	$(ECHO) Creating jre compact1 jimage
A
alanb 已提交
167
	$(RM) -r $(JRE_COMPACT1_IMAGE_DIR)
168
	$(JLINK_TOOL) --add-modules $(JRE_COMPACT1_MODULES_LIST) \
169
	    $(JLINK_JRE_EXTRA_OPTS) \
A
alanb 已提交
170
	    --output $(JRE_COMPACT1_IMAGE_DIR)
C
chegar 已提交
171 172
	$(TOUCH) $@

A
alanb 已提交
173 174
$(JRE_COMPACT2_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(JMODS) \
    $(call DependOnVariable, JRE_COMPACT2_MODULES_LIST) $(BASE_RELEASE_FILE)
C
chegar 已提交
175
	$(ECHO) Creating jre compact2 jimage
A
alanb 已提交
176
	$(RM) -r $(JRE_COMPACT2_IMAGE_DIR)
177
	$(JLINK_TOOL) --add-modules $(JRE_COMPACT2_MODULES_LIST) \
178
	    $(JLINK_JRE_EXTRA_OPTS) \
A
alanb 已提交
179
	    --output $(JRE_COMPACT2_IMAGE_DIR)
C
chegar 已提交
180 181
	$(TOUCH) $@

A
alanb 已提交
182 183
$(JRE_COMPACT3_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(JMODS) \
    $(call DependOnVariable, JRE_COMPACT3_MODULES_LIST) $(BASE_RELEASE_FILE)
C
chegar 已提交
184
	$(ECHO) Creating jre compact3 jimage
A
alanb 已提交
185
	$(RM) -r $(JRE_COMPACT3_IMAGE_DIR)
186
	$(JLINK_TOOL) --add-modules $(JRE_COMPACT3_MODULES_LIST) \
187
	    $(JLINK_JRE_EXTRA_OPTS) \
A
alanb 已提交
188
	    --output $(JRE_COMPACT3_IMAGE_DIR)
C
chegar 已提交
189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237
	$(TOUCH) $@

TOOL_JRE_TARGETS := $(JRE_IMAGE_DIR)/$(JIMAGE_TARGET_FILE)
TOOL_JDK_TARGETS := $(JDK_IMAGE_DIR)/$(JIMAGE_TARGET_FILE)
TOOL_JRE_COMPACT1_TARGETS := $(JRE_COMPACT1_IMAGE_DIR)/$(JIMAGE_TARGET_FILE)
TOOL_JRE_COMPACT2_TARGETS := $(JRE_COMPACT2_IMAGE_DIR)/$(JIMAGE_TARGET_FILE)
TOOL_JRE_COMPACT3_TARGETS := $(JRE_COMPACT3_IMAGE_DIR)/$(JIMAGE_TARGET_FILE)

################################################################################
# /man dir
#
# All variables in this section are assigned with simple =, without :, to enable
# more selective overriding from the custom version of this file.
#
# Avoid evaluating this whole section on windows for speed and stability
ifneq ($(OPENJDK_TARGET_OS), windows)
  JRE_MAN_PAGES += \
      java.1 \
      jjs.1 \
      keytool.1 \
      orbd.1 \
      pack200.1 \
      rmid.1 \
      rmiregistry.1 \
      servertool.1 \
      tnameserv.1 \
      unpack200.1

  JDK_MAN_PAGES += \
      $(JRE_MAN_PAGES) \
      appletviewer.1 \
      idlj.1 \
      jar.1 \
      jarsigner.1 \
      javac.1 \
      javadoc.1 \
      javah.1 \
      javap.1 \
      jconsole.1 \
      jcmd.1 \
      jdb.1 \
      jdeps.1 \
      jinfo.1 \
      jmap.1 \
      jps.1 \
      jrunscript.1 \
      jstack.1 \
      jstat.1 \
      jstatd.1 \
238
      policytool.1 \
C
chegar 已提交
239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262
      rmic.1 \
      schemagen.1 \
      serialver.1 \
      wsgen.1 \
      wsimport.1 \
      xjc.1

  # This variable is potentially overridden in the closed makefile.
  MAN_SRC_BASEDIR ?= $(JDK_TOPDIR)/src

  ifeq ($(OPENJDK_TARGET_OS), linux)
    MAN_SRC_DIR = $(MAN_SRC_BASEDIR)/linux/doc
    MAN1_SUBDIR = man
  endif
  ifeq ($(OPENJDK_TARGET_OS), solaris)
    MAN_SRC_DIR = $(MAN_SRC_BASEDIR)/solaris/doc
    MAN1_SUBDIR = sun/man/man1
  endif
  ifeq ($(OPENJDK_TARGET_OS), macosx)
    MAN_SRC_DIR = $(MAN_SRC_BASEDIR)/bsd/doc
    MAN1_SUBDIR = man
  endif

  $(JRE_IMAGE_DIR)/man/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/%
E
erikj 已提交
263
	$(call LogInfo, Copying $(patsubst $(OUTPUT_ROOT)/%,%,$@))
C
chegar 已提交
264 265 266
	$(install-file)

  $(JDK_IMAGE_DIR)/man/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/%
E
erikj 已提交
267
	$(call LogInfo, Copying $(patsubst $(OUTPUT_ROOT)/%,%,$@))
C
chegar 已提交
268 269 270
	$(install-file)

  $(JRE_IMAGE_DIR)/man/ja_JP.UTF-8/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/ja/%
E
erikj 已提交
271
	$(call LogInfo, Copying $(patsubst $(OUTPUT_ROOT)/%,%,$@))
272
	$(install-file)
C
chegar 已提交
273 274

  $(JDK_IMAGE_DIR)/man/ja_JP.UTF-8/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/ja/%
E
erikj 已提交
275
	$(call LogInfo, Copying $(patsubst $(OUTPUT_ROOT)/%,%,$@))
276
	$(install-file)
C
chegar 已提交
277 278 279

  ifeq ($(OPENJDK_TARGET_OS), solaris)
    $(JRE_IMAGE_DIR)/man/ja/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/ja/%
E
erikj 已提交
280
	$(call LogInfo, Converting $(patsubst $(OUTPUT_ROOT)/%,%,$@))
C
chegar 已提交
281 282 283
	$(install-file)

    $(JDK_IMAGE_DIR)/man/ja/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/ja/%
E
erikj 已提交
284
	$(call LogInfo, Converting $(patsubst $(OUTPUT_ROOT)/%,%,$@))
C
chegar 已提交
285 286 287 288 289
	$(install-file)
  endif

  ifneq ($(findstring $(OPENJDK_TARGET_OS), linux macosx), )
    $(JRE_IMAGE_DIR)/man/ja:
E
erikj 已提交
290
	$(call LogInfo, Creating $(patsubst $(OUTPUT_ROOT)/%,%,$@))
C
chegar 已提交
291 292 293
	$(CD) $(@D) && $(RM) ja && $(LN) -s ja_JP.UTF-8 ja

    $(JDK_IMAGE_DIR)/man/ja:
E
erikj 已提交
294
	$(call LogInfo, Creating $(patsubst $(OUTPUT_ROOT)/%,%,$@))
C
chegar 已提交
295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337
	$(CD) $(@D) && $(RM) ja && $(LN) -s ja_JP.UTF-8 ja
  endif

  ifeq ($(OPENJDK_TARGET_OS), solaris)
    JRE_MAN_PAGE_LIST = $(addprefix $(JRE_IMAGE_DIR)/man/man1/, $(JRE_MAN_PAGES)) \
        $(addprefix $(JRE_IMAGE_DIR)/man/ja/man1/, $(JRE_MAN_PAGES)) \
        $(addprefix $(JRE_IMAGE_DIR)/man/ja_JP.UTF-8/man1/, $(JRE_MAN_PAGES)) \
        $(addprefix $(JRE_IMAGE_DIR)/man/ja_JP.PCK/man1/, $(JRE_MAN_PAGES))

    JDK_MAN_PAGE_LIST = $(addprefix $(JDK_IMAGE_DIR)/man/man1/, $(JDK_MAN_PAGES)) \
        $(addprefix $(JDK_IMAGE_DIR)/man/ja/man1/, $(JDK_MAN_PAGES)) \
        $(addprefix $(JDK_IMAGE_DIR)/man/ja_JP.UTF-8/man1/, $(JDK_MAN_PAGES)) \
        $(addprefix $(JDK_IMAGE_DIR)/man/ja_JP.PCK/man1/, $(JDK_MAN_PAGES))
  endif

  ifneq ($(findstring $(OPENJDK_TARGET_OS), linux macosx), )
    JRE_MAN_PAGE_LIST = $(addprefix $(JRE_IMAGE_DIR)/man/man1/, $(JRE_MAN_PAGES)) \
        $(addprefix $(JRE_IMAGE_DIR)/man/ja_JP.UTF-8/man1/, $(JRE_MAN_PAGES)) \
        $(JRE_IMAGE_DIR)/man/ja

    JDK_MAN_PAGE_LIST = $(addprefix $(JDK_IMAGE_DIR)/man/man1/, $(JDK_MAN_PAGES)) \
        $(addprefix $(JDK_IMAGE_DIR)/man/ja_JP.UTF-8/man1/, $(JDK_MAN_PAGES)) \
        $(JDK_IMAGE_DIR)/man/ja
  endif

  JRE_TARGETS += $(JRE_MAN_PAGE_LIST)
  JDK_TARGETS += $(JDK_MAN_PAGE_LIST)
endif # Windows

################################################################################
# doc files

JRE_DOC_FILES ?= LICENSE ASSEMBLY_EXCEPTION THIRD_PARTY_README
JDK_DOC_FILES ?= LICENSE ASSEMBLY_EXCEPTION THIRD_PARTY_README
JRE_DOC_LOCATION ?= $(JDK_TOPDIR)
JDK_DOC_LOCATION ?= $(JDK_TOPDIR)

JRE_DOC_TARGETS := $(addprefix $(JRE_IMAGE_DIR)/, $(JRE_DOC_FILES))
JDK_DOC_TARGETS := $(addprefix $(JDK_IMAGE_DIR)/, $(JDK_DOC_FILES))

# Processing license files from source area to image area
# These are modified to have the platform specific EOL chars.
define process-doc-file
E
erikj 已提交
338
	$(call LogInfo, Processing $(patsubst $(OUTPUT_ROOT)/%,%,$@))
C
chegar 已提交
339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356
	$(MKDIR) -p $(@D)
	$(RM) $@
	LC_ALL=C $(SED) 's/$$//g' $< > $@
	$(CHMOD) 444 $@
endef

$(JRE_IMAGE_DIR)/%: $(JRE_DOC_LOCATION)/%
	$(process-doc-file)

$(JDK_IMAGE_DIR)/%: $(JDK_DOC_LOCATION)/%
	$(process-doc-file)

JRE_TARGETS += $(JRE_DOC_TARGETS)
JDK_TARGETS += $(JDK_DOC_TARGETS)

################################################################################
# src.zip

357
$(JDK_IMAGE_DIR)/src.zip: $(SUPPORT_OUTPUTDIR)/src.zip
E
erikj 已提交
358
	$(call LogInfo, Copying $(patsubst $(OUTPUT_ROOT)/%,%,$@))
C
chegar 已提交
359 360
	$(install-file)

361
JDK_TARGETS += $(JDK_IMAGE_DIR)/src.zip
C
chegar 已提交
362

363
################################################################################
C
chegar 已提交
364
# /demo dir
365 366 367 368 369
# Avoid doing the expensive find unless called with "jdk" as target.
ifneq ($(filter jdk, $(MAKECMDGOALS)), )

  DEMO_FILES := \
      $(if $(wildcard $(SUPPORT_OUTPUTDIR)/demos/image), \
370
        $(call DoubleDollar, \
371
        $(shell $(FIND) $(SUPPORT_OUTPUTDIR)/demos/image \
372
            -type f -a ! \( -name "_the*" -o -name "javac_state" \) )) \
373 374 375 376 377 378 379 380 381 382
      )

  ifeq ($(ZIP_EXTERNAL_DEBUG_SYMBOLS), true)
    ifeq ($(OPENJDK_TARGET_OS), macosx)
      DEMO_FILES := $(call not-containing, .dSYM, $(DEMO_FILES))
    else
      DEMO_FILES := $(filter-out %.debuginfo %.pdb %.map, $(DEMO_FILES))
    endif
  endif

E
erikj 已提交
383 384 385
  $(eval $(call SetupCopyFiles, JDK_COPY_DEMOS, \
      SRC := $(SUPPORT_OUTPUTDIR)/demos/image, \
      DEST := $(JDK_IMAGE_DIR)/demo, \
386
      FILES := $(DEMO_FILES), \
E
erikj 已提交
387 388 389
  ))

  JDK_TARGETS += $(JDK_COPY_DEMOS)
C
chegar 已提交
390 391 392 393 394
endif

################################################################################
# /sample dir

395
$(eval $(call SetupCopyFiles, COPY_SAMPLES, \
E
erikj 已提交
396
    SRC := $(SUPPORT_OUTPUTDIR)/sample/image, \
C
chegar 已提交
397
    DEST := $(JDK_IMAGE_DIR)/sample, \
E
erikj 已提交
398 399
    FILES := $(if $(wildcard $(SUPPORT_OUTPUTDIR)/sample/image), \
        $(call CacheFind,$(SUPPORT_OUTPUTDIR)/sample/image))))
C
chegar 已提交
400 401 402

JDK_TARGETS += $(COPY_SAMPLES)

403 404 405 406 407 408 409
################################################################################
# Code coverage data files

ifeq ($(GCOV_ENABLED), true)

  GCOV_FIND_EXPR := -type f -name "*.gcno"

410 411 412 413
  $(eval $(call SetupCopyFiles,COPY_HOTSPOT_GCOV_GCNO, \
      SRC := $(OUTPUT_ROOT), \
      DEST := $(SYMBOLS_IMAGE_DIR)/gcov, \
      FILES := $(shell $(FIND) $(HOTSPOT_OUTPUTDIR) $(GCOV_FIND_EXPR))))
414

415
  SYMBOLS_TARGETS += $(COPY_HOTSPOT_GCOV_GCNO)
416 417

  $(eval $(call SetupCopyFiles,COPY_JDK_GCOV_GCNO, \
418 419
      SRC := $(OUTPUT_ROOT), \
      DEST := $(SYMBOLS_IMAGE_DIR)/gcov, \
420 421 422 423 424 425
      FILES := $(shell $(FIND) $(SUPPORT_OUTPUTDIR)/native $(GCOV_FIND_EXPR))))

  SYMBOLS_TARGETS += $(COPY_JDK_GCOV_GCNO)

endif

426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446
################################################################################
# Debug symbols
# Since debug symbols are not included in the jmod files, they need to be copied
# in manually after generating the images.

ALL_JDK_MODULES := $(JDK_MODULES)
ALL_JRE_MODULES := $(sort $(JRE_MODULES), $(foreach m, $(JRE_MODULES), \
    $(call FindTransitiveDepsForModule, $m)))

ifeq ($(OPENJDK_TARGET_OS), windows)
  LIBS_TARGET_SUBDIR := bin
else
  LIBS_TARGET_SUBDIR := lib
endif

# Param 1 - dir to find debuginfo files in
FindDebuginfoFiles = \
    $(wildcard $(addprefix $1/*, $(DEBUGINFO_SUFFIXES)) \
        $(addprefix $1/*/*, $(DEBUGINFO_SUFFIXES)) \
        $(addprefix $1/*/*/*, $(DEBUGINFO_SUFFIXES)))

447 448 449 450 451 452 453 454 455 456 457 458 459
# Pick the correct debug info files to copy, either zipped or not.
ifeq ($(ZIP_EXTERNAL_DEBUG_SYMBOLS), true)
  DEBUGINFO_SUFFIXES += .diz
else
  DEBUGINFO_SUFFIXES := .debuginfo .pdb .map
  # On Macosx, if debug symbols have not been zipped, find all files inside *.dSYM
  # dirs.
  ifeq ($(OPENJDK_TARGET_OS), macosx)
    $(eval $(call FillCacheFind, \
        $(SUPPORT_OUTPUTDIR)/modules_cmds $(SUPPORT_OUTPUTDIR)/modules_libs))
    FindDebuginfoFiles = \
        $(if $(wildcard $1), $(call containing, .dSYM/, $(call CacheFind, $1)))
  endif
460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478
endif

# Param 1 - either JDK or JRE
SetupCopyDebuginfo = \
    $(foreach m, $(ALL_$1_MODULES), \
      $(eval $(call SetupCopyFiles, COPY_$1_LIBS_DEBUGINFO_$m, \
          SRC := $(SUPPORT_OUTPUTDIR)/modules_libs/$m, \
          DEST := $($1_IMAGE_DIR)/$(LIBS_TARGET_SUBDIR), \
          FILES := $(call FindDebuginfoFiles, \
              $(SUPPORT_OUTPUTDIR)/modules_libs/$m), \
      )) \
      $(eval $1_TARGETS += $$(COPY_$1_LIBS_DEBUGINFO_$m)) \
    )

# No space before argument to avoid having to put $(strip ) everywhere in
# implementation above.
$(call SetupCopyDebuginfo,JDK)
$(call SetupCopyDebuginfo,JRE)

C
chegar 已提交
479 480 481 482 483 484 485 486 487 488 489
################################################################################

# Include custom post hook here to make it possible to augment the target lists
# before actual target prerequisites are declared.
$(eval $(call IncludeCustomExtension, , Images-post.gmk))

################################################################################

$(JRE_TARGETS): $(TOOL_JRE_TARGETS)
$(JDK_TARGETS): $(TOOL_JDK_TARGETS)

490 491 492 493 494
jdk: $(JDK_TARGETS)
jre: $(JRE_TARGETS)
symbols: $(SYMBOLS_TARGETS)

all: jdk jre symbols
C
chegar 已提交
495 496 497 498 499 500 501 502 503 504 505 506

$(JRE_COMPACT1_TARGETS): $(TOOL_JRE_COMPACT1_TARGETS)
$(JRE_COMPACT2_TARGETS): $(TOOL_JRE_COMPACT2_TARGETS)
$(JRE_COMPACT3_TARGETS): $(TOOL_JRE_COMPACT3_TARGETS)

profiles: $(TOOL_JRE_COMPACT1_TARGETS) \
    $(TOOL_JRE_COMPACT2_TARGETS) \
    $(TOOL_JRE_COMPACT3_TARGETS) \
    $(JRE_COMPACT1_TARGETS) \
    $(JRE_COMPACT2_TARGETS) \
    $(JRE_COMPACT3_TARGETS)

507
.PHONY: default all jdk jre symbols profiles