make/Coverage.gmk
author jwilhelm
Thu, 29 Aug 2019 02:54:50 +0200
changeset 57919 339af8e17cb3
parent 54516 5b1ad4cbe59e
child 58908 73bb9c4002cc
permissions -rw-r--r--
Added tag jdk-14+12 for changeset 8570f22b9b6a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
52774
56ca125c973b 8214309: Enhance makefiles to allow generating JCov instrumented build
shurailine
parents:
diff changeset
     1
#
56ca125c973b 8214309: Enhance makefiles to allow generating JCov instrumented build
shurailine
parents:
diff changeset
     2
# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
56ca125c973b 8214309: Enhance makefiles to allow generating JCov instrumented build
shurailine
parents:
diff changeset
     3
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
56ca125c973b 8214309: Enhance makefiles to allow generating JCov instrumented build
shurailine
parents:
diff changeset
     4
#
56ca125c973b 8214309: Enhance makefiles to allow generating JCov instrumented build
shurailine
parents:
diff changeset
     5
# This code is free software; you can redistribute it and/or modify it
56ca125c973b 8214309: Enhance makefiles to allow generating JCov instrumented build
shurailine
parents:
diff changeset
     6
# under the terms of the GNU General Public License version 2 only, as
56ca125c973b 8214309: Enhance makefiles to allow generating JCov instrumented build
shurailine
parents:
diff changeset
     7
# published by the Free Software Foundation.  Oracle designates this
56ca125c973b 8214309: Enhance makefiles to allow generating JCov instrumented build
shurailine
parents:
diff changeset
     8
# particular file as subject to the "Classpath" exception as provided
56ca125c973b 8214309: Enhance makefiles to allow generating JCov instrumented build
shurailine
parents:
diff changeset
     9
# by Oracle in the LICENSE file that accompanied this code.
56ca125c973b 8214309: Enhance makefiles to allow generating JCov instrumented build
shurailine
parents:
diff changeset
    10
#
56ca125c973b 8214309: Enhance makefiles to allow generating JCov instrumented build
shurailine
parents:
diff changeset
    11
# This code is distributed in the hope that it will be useful, but WITHOUT
56ca125c973b 8214309: Enhance makefiles to allow generating JCov instrumented build
shurailine
parents:
diff changeset
    12
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
56ca125c973b 8214309: Enhance makefiles to allow generating JCov instrumented build
shurailine
parents:
diff changeset
    13
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
56ca125c973b 8214309: Enhance makefiles to allow generating JCov instrumented build
shurailine
parents:
diff changeset
    14
# version 2 for more details (a copy is included in the LICENSE file that
56ca125c973b 8214309: Enhance makefiles to allow generating JCov instrumented build
shurailine
parents:
diff changeset
    15
# accompanied this code).
56ca125c973b 8214309: Enhance makefiles to allow generating JCov instrumented build
shurailine
parents:
diff changeset
    16
#
56ca125c973b 8214309: Enhance makefiles to allow generating JCov instrumented build
shurailine
parents:
diff changeset
    17
# You should have received a copy of the GNU General Public License version
56ca125c973b 8214309: Enhance makefiles to allow generating JCov instrumented build
shurailine
parents:
diff changeset
    18
# 2 along with this work; if not, write to the Free Software Foundation,
56ca125c973b 8214309: Enhance makefiles to allow generating JCov instrumented build
shurailine
parents:
diff changeset
    19
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
56ca125c973b 8214309: Enhance makefiles to allow generating JCov instrumented build
shurailine
parents:
diff changeset
    20
#
56ca125c973b 8214309: Enhance makefiles to allow generating JCov instrumented build
shurailine
parents:
diff changeset
    21
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
56ca125c973b 8214309: Enhance makefiles to allow generating JCov instrumented build
shurailine
parents:
diff changeset
    22
# or visit www.oracle.com if you need additional information or have any
56ca125c973b 8214309: Enhance makefiles to allow generating JCov instrumented build
shurailine
parents:
diff changeset
    23
# questions.
56ca125c973b 8214309: Enhance makefiles to allow generating JCov instrumented build
shurailine
parents:
diff changeset
    24
56ca125c973b 8214309: Enhance makefiles to allow generating JCov instrumented build
shurailine
parents:
diff changeset
    25
include $(SPEC)
56ca125c973b 8214309: Enhance makefiles to allow generating JCov instrumented build
shurailine
parents:
diff changeset
    26
include MakeBase.gmk
56ca125c973b 8214309: Enhance makefiles to allow generating JCov instrumented build
shurailine
parents:
diff changeset
    27
56ca125c973b 8214309: Enhance makefiles to allow generating JCov instrumented build
shurailine
parents:
diff changeset
    28
################################################################################
56ca125c973b 8214309: Enhance makefiles to allow generating JCov instrumented build
shurailine
parents:
diff changeset
    29
56ca125c973b 8214309: Enhance makefiles to allow generating JCov instrumented build
shurailine
parents:
diff changeset
    30
JCOV_INPUT_IMAGE_DIR :=
56ca125c973b 8214309: Enhance makefiles to allow generating JCov instrumented build
shurailine
parents:
diff changeset
    31
56ca125c973b 8214309: Enhance makefiles to allow generating JCov instrumented build
shurailine
parents:
diff changeset
    32
ifneq ($(JCOV_INPUT_JDK), )
56ca125c973b 8214309: Enhance makefiles to allow generating JCov instrumented build
shurailine
parents:
diff changeset
    33
  JCOV_INPUT_IMAGE_DIR := $(JCOV_INPUT_JDK)
56ca125c973b 8214309: Enhance makefiles to allow generating JCov instrumented build
shurailine
parents:
diff changeset
    34
else
56ca125c973b 8214309: Enhance makefiles to allow generating JCov instrumented build
shurailine
parents:
diff changeset
    35
  JCOV_INPUT_IMAGE_DIR := $(JDK_IMAGE_DIR)
56ca125c973b 8214309: Enhance makefiles to allow generating JCov instrumented build
shurailine
parents:
diff changeset
    36
endif
56ca125c973b 8214309: Enhance makefiles to allow generating JCov instrumented build
shurailine
parents:
diff changeset
    37
56ca125c973b 8214309: Enhance makefiles to allow generating JCov instrumented build
shurailine
parents:
diff changeset
    38
#moving instrumented jdk image in and out of jcov_temp because of CODETOOLS-7902299
56ca125c973b 8214309: Enhance makefiles to allow generating JCov instrumented build
shurailine
parents:
diff changeset
    39
JCOV_TEMP := $(SUPPORT_OUTPUTDIR)/jcov_temp
56ca125c973b 8214309: Enhance makefiles to allow generating JCov instrumented build
shurailine
parents:
diff changeset
    40
56ca125c973b 8214309: Enhance makefiles to allow generating JCov instrumented build
shurailine
parents:
diff changeset
    41
$(JCOV_IMAGE_DIR)/release: $(JCOV_INPUT_IMAGE_DIR)/release
56ca125c973b 8214309: Enhance makefiles to allow generating JCov instrumented build
shurailine
parents:
diff changeset
    42
	$(call LogWarn, Creating instrumented jdk image with JCov)
56ca125c973b 8214309: Enhance makefiles to allow generating JCov instrumented build
shurailine
parents:
diff changeset
    43
	$(call MakeDir, $(JCOV_TEMP) $(IMAGES_OUTPUTDIR))
56ca125c973b 8214309: Enhance makefiles to allow generating JCov instrumented build
shurailine
parents:
diff changeset
    44
	$(RM) -r $(JCOV_IMAGE_DIR) $(JCOV_TEMP)/*
56ca125c973b 8214309: Enhance makefiles to allow generating JCov instrumented build
shurailine
parents:
diff changeset
    45
	$(CP) -r $(JCOV_INPUT_IMAGE_DIR) $(JCOV_TEMP)/$(JCOV_IMAGE_SUBDIR)
56ca125c973b 8214309: Enhance makefiles to allow generating JCov instrumented build
shurailine
parents:
diff changeset
    46
	$(JAVA) -Xmx3g -jar $(JCOV_HOME)/lib/jcov.jar JREInstr \
56ca125c973b 8214309: Enhance makefiles to allow generating JCov instrumented build
shurailine
parents:
diff changeset
    47
	    -t $(JCOV_TEMP)/$(JCOV_IMAGE_SUBDIR)/template.xml \
56ca125c973b 8214309: Enhance makefiles to allow generating JCov instrumented build
shurailine
parents:
diff changeset
    48
	    -rt $(JCOV_HOME)/lib/jcov_network_saver.jar \
56ca125c973b 8214309: Enhance makefiles to allow generating JCov instrumented build
shurailine
parents:
diff changeset
    49
	    -exclude 'java.lang.Object' \
56ca125c973b 8214309: Enhance makefiles to allow generating JCov instrumented build
shurailine
parents:
diff changeset
    50
	    -exclude 'jdk.internal.org.objectweb.**' \
56ca125c973b 8214309: Enhance makefiles to allow generating JCov instrumented build
shurailine
parents:
diff changeset
    51
	    -exclude jdk.test.Main -exclude '**\$Proxy*' \
54516
5b1ad4cbe59e 8221857: Collect code coverage for a subset of code
shurailine
parents: 52774
diff changeset
    52
	    $(JCOV_FILTERS) \
52774
56ca125c973b 8214309: Enhance makefiles to allow generating JCov instrumented build
shurailine
parents:
diff changeset
    53
	    $(JCOV_TEMP)/$(JCOV_IMAGE_SUBDIR)
56ca125c973b 8214309: Enhance makefiles to allow generating JCov instrumented build
shurailine
parents:
diff changeset
    54
	$(MV) $(JCOV_TEMP)/$(JCOV_IMAGE_SUBDIR) $(JCOV_IMAGE_DIR)
56ca125c973b 8214309: Enhance makefiles to allow generating JCov instrumented build
shurailine
parents:
diff changeset
    55
	$(RMDIR) $(JCOV_TEMP)
56ca125c973b 8214309: Enhance makefiles to allow generating JCov instrumented build
shurailine
parents:
diff changeset
    56
56ca125c973b 8214309: Enhance makefiles to allow generating JCov instrumented build
shurailine
parents:
diff changeset
    57
jcov-image: $(JCOV_IMAGE_DIR)/release