make/Main.gmk
author sspitsyn
Mon, 27 Apr 2015 19:51:00 -0700
changeset 30289 10b7b61d759a
parent 29305 4ddc6faf7842
child 29662 78c47f0002c3
child 29851 81a61a04e2fe
permissions -rw-r--r--
8073705: more performance issues in class redefinition Summary: Optimize the method pointer adjustments for prev klass versions and MNT Reviewed-by: dcubed, coleenp
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
14111
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
     1
#
29156
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
     2
# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
14111
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
     3
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
     4
#
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
     5
# This code is free software; you can redistribute it and/or modify it
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
     6
# under the terms of the GNU General Public License version 2 only, as
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
     7
# published by the Free Software Foundation.  Oracle designates this
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
     8
# particular file as subject to the "Classpath" exception as provided
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
     9
# by Oracle in the LICENSE file that accompanied this code.
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
    10
#
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
    11
# This code is distributed in the hope that it will be useful, but WITHOUT
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
    12
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
    13
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
    14
# version 2 for more details (a copy is included in the LICENSE file that
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
    15
# accompanied this code).
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
    16
#
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
    17
# You should have received a copy of the GNU General Public License version
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
    18
# 2 along with this work; if not, write to the Free Software Foundation,
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
    19
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
    20
#
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
    21
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
    22
# or visit www.oracle.com if you need additional information or have any
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
    23
# questions.
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
    24
#
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
    25
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    26
################################################################################
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    27
# This is the main makefile containing most actual top level targets. It needs
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    28
# to be called with a SPEC file defined.
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    29
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    30
# Declare default target
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    31
default:
14111
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
    32
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
    33
# Now load the spec
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
    34
include $(SPEC)
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
    35
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    36
include $(SRC_ROOT)/make/MakeHelpers.gmk
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    37
20363
fa7663fc5d50 8001931: The new build system whitespace cleanup
ihse
parents: 20047
diff changeset
    38
# Load the vital tools for all the makefiles.
21759
e24e22311718 8027566: Remove the old build system
ihse
parents: 21173
diff changeset
    39
include $(SRC_ROOT)/make/common/MakeBase.gmk
26116
f051bd253364 8055095: Improve "do nothing" incremental build performance after modularized source code integration
erikj
parents: 26115
diff changeset
    40
include $(SRC_ROOT)/make/common/Modules.gmk
14111
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
    41
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    42
# Declare ALL_TARGETS as an immediate variable. This variable is a list of all
27595
cff167b3bfa2 8065914: Various improvements and cleanup of build system
ihse
parents: 27329
diff changeset
    43
# valid top level targets. It's used to declare them all as PHONY and to
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    44
# generate the -only targets.
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    45
ALL_TARGETS :=
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    46
22714
a752920c4317 8034191: Move relevant parts of build system to new closed repo
ihse
parents: 22031
diff changeset
    47
# Hook to include the corresponding custom file, if present.
a752920c4317 8034191: Move relevant parts of build system to new closed repo
ihse
parents: 22031
diff changeset
    48
$(eval $(call IncludeCustomExtension, , Main.gmk))
14111
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
    49
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    50
# All modules for the current target platform.
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    51
# Manually add jdk.hotspot.agent for now.
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    52
ALL_MODULES := $(call FindAllModules) jdk.hotspot.agent
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    53
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    54
################################################################################
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    55
################################################################################
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    56
#
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    57
# Recipes for all targets. Only recipes, dependencies are declared later.
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    58
#
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    59
################################################################################
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    60
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    61
################################################################################
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    62
# Interim/build tools targets, compiling tools used during the build
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    63
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
    64
buildtools-langtools:
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
    65
	+($(CD) $(LANGTOOLS_TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Tools.gmk)
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
    66
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    67
interim-langtools:
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    68
	+($(CD) $(LANGTOOLS_TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f CompileInterim.gmk)
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    69
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    70
interim-corba:
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
    71
	+($(CD) $(CORBA_TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f CompileInterim.gmk)
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    72
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    73
interim-rmic:
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    74
	+($(CD) $(JDK_TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f CompileInterimRmic.gmk)
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    75
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
    76
buildtools-jdk:
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    77
	+($(CD) $(JDK_TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Tools.gmk java-tools)
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    78
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
    79
ALL_TARGETS += buildtools-langtools interim-langtools interim-corba \
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
    80
    interim-rmic buildtools-jdk
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    81
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    82
################################################################################
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    83
# Special targets for certain modules
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    84
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    85
import-hotspot:
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    86
	+($(CD) $(JDK_TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Import.gmk)
14111
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
    87
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    88
unpack-sec:
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    89
	+($(CD) $(JDK_TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f UnpackSecurity.gmk)
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    90
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
    91
ALL_TARGETS += import-hotspot unpack-sec
14111
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
    92
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    93
################################################################################
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    94
# Gensrc targets, generating source before java compilation can be done
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
    95
$(eval $(call DeclareRecipesForPhase, GENSRC, \
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
    96
    TARGET_SUFFIX := gensrc, \
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
    97
    FILE_PREFIX := Gensrc, \
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
    98
    MAKE_SUBDIR := gensrc, \
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
    99
    CHECK_MODULES := $(ALL_MODULES), \
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   100
    MULTIPLE_MAKEFILES := true))
14111
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
   101
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   102
JDK_GENSRC_TARGETS := $(filter %-gensrc-jdk, $(GENSRC_TARGETS))
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   103
LANGTOOLS_GENSRC_TARGETS := $(filter %-gensrc-langtools, $(GENSRC_TARGETS))
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   104
CORBA_GENSRC_TARGETS := $(filter %-gensrc-corba, $(GENSRC_TARGETS))
15053
64278cb83950 8005549: build-infra: Merge NewMakefile.gmk and common/makefiles/Makefile
erikj
parents: 14466
diff changeset
   105
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   106
ALL_TARGETS += $(GENSRC_TARGETS)
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   107
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   108
################################################################################
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   109
# Generate data targets
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   110
$(eval $(call DeclareRecipesForPhase, GENDATA, \
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   111
    TARGET_SUFFIX := gendata, \
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   112
    FILE_PREFIX := Gendata, \
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   113
    MAKE_SUBDIR := gendata, \
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   114
    CHECK_MODULES := $(ALL_MODULES), \
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   115
    USE_WRAPPER := true))
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   116
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   117
ALL_TARGETS += $(GENDATA_TARGETS)
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   118
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   119
################################################################################
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   120
# Copy files targets
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   121
$(eval $(call DeclareRecipesForPhase, COPY, \
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   122
    TARGET_SUFFIX := copy, \
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   123
    FILE_PREFIX := Copy, \
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   124
    MAKE_SUBDIR := copy, \
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   125
    CHECK_MODULES := $(ALL_MODULES), \
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   126
    USE_WRAPPER := true))
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   127
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   128
ALL_TARGETS += $(COPY_TARGETS)
15395
e5d837c6e999 8007093: build-infra: Make should fail if spec is older than configure files
erikj
parents: 15060
diff changeset
   129
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   130
################################################################################
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   131
# Targets for compiling all java modules. Nashorn is treated separately.
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   132
JAVA_MODULES := $(call FindJavaModules)
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   133
JAVA_TARGETS := $(addsuffix -java, $(JAVA_MODULES))
14111
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
   134
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   135
define DeclareCompileJavaRecipe
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   136
  $1-java:
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   137
	+($(CD) $(SRC_ROOT)/make && $(MAKE) $(MAKE_ARGS) -f CompileJavaModules.gmk \
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   138
	    $1 JAVA_MODULES=$1)
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   139
endef
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   140
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   141
$(foreach m, $(filter-out jdk.scripting.nashorn, $(JAVA_MODULES)), \
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   142
    $(eval $(call DeclareCompileJavaRecipe,$m)))
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   143
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   144
# Build nashorn. Needs to be compiled separately from the rest of the modules
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   145
# due to nasgen.
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   146
jdk.scripting.nashorn-java:
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   147
	+($(CD) $(NASHORN_TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f BuildNashorn.gmk compile)
14111
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
   148
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   149
ALL_TARGETS += $(JAVA_TARGETS)
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   150
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   151
################################################################################
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   152
# Targets for running rmic.
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   153
$(eval $(call DeclareRecipesForPhase, RMIC, \
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   154
    TARGET_SUFFIX := rmic, \
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   155
    FILE_PREFIX := Rmic, \
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   156
    MAKE_SUBDIR := rmic, \
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   157
    CHECK_MODULES := $(ALL_MODULES)))
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   158
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   159
ALL_TARGETS += $(RMIC_TARGETS)
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   160
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   161
################################################################################
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   162
# Targets for compiling native libraries
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   163
$(eval $(call DeclareRecipesForPhase, LIBS, \
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   164
    TARGET_SUFFIX := libs, \
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   165
    FILE_PREFIX := Lib, \
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   166
    MAKE_SUBDIR := lib, \
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   167
    CHECK_MODULES := $(ALL_MODULES), \
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   168
    USE_WRAPPER := true))
14111
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
   169
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   170
ALL_TARGETS += $(LIBS_TARGETS)
14111
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
   171
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   172
################################################################################
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   173
# Targets for compiling native executables
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   174
$(eval $(call DeclareRecipesForPhase, LAUNCHER, \
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   175
    TARGET_SUFFIX := launchers, \
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   176
    FILE_PREFIX := Launcher, \
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   177
    MAKE_SUBDIR := launcher, \
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   178
    CHECK_MODULES := $(ALL_MODULES), \
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   179
    USE_WRAPPER := true))
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   180
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   181
ALL_TARGETS += $(LAUNCHER_TARGETS)
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   182
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   183
################################################################################
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   184
# Build hotspot target
14111
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
   185
14378
0ef5d942b98e 8002028: build-infra: need no-hotspot partial build
tbell
parents: 14111
diff changeset
   186
ifeq ($(BUILD_HOTSPOT),true)
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   187
  hotspot:
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   188
	($(CD) $(SRC_ROOT)/make && $(MAKE) $(MAKE_ARGS) -f HotspotWrapper.gmk)
14378
0ef5d942b98e 8002028: build-infra: need no-hotspot partial build
tbell
parents: 14111
diff changeset
   189
endif
14111
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
   190
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   191
ALL_TARGETS += hotspot
15903
bc0e6cd9d760 8008914: Add nashorn to the tl build
jjg
parents: 15587
diff changeset
   192
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   193
################################################################################
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   194
# Build demos and samples targets
14111
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
   195
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   196
demos:
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   197
	+($(CD) $(JDK_TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f CompileDemos.gmk)
14111
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
   198
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   199
samples:
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   200
	+($(CD) $(JDK_TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f CopySamples.gmk)
14111
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
   201
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   202
ALL_TARGETS += demos samples
14111
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
   203
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   204
################################################################################
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   205
# Image targets
14111
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
   206
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
   207
# Stores the tips for each repository. This file is be used when constructing the jdk image and can be
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
   208
# used to track the exact sources used to build that image.
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   209
source-tips: $(SUPPORT_OUTPUTDIR)/source_tips
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   210
$(SUPPORT_OUTPUTDIR)/source_tips: FRC
14111
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
   211
	@$(MKDIR) -p $(@D)
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
   212
	@$(RM) $@
18052
f326fa317a81 8012564: The SOURCE value in release file of JDK 8 doesn't contain valid changesets for some OS since b74
erikj
parents: 17664
diff changeset
   213
	@$(call GetSourceTips)
14111
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
   214
28811
65cf1b4087cf 8071767: Improve names and dependencies for image targets
ihse
parents: 28809
diff changeset
   215
BOOTCYCLE_TARGET := product-images
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   216
bootcycle-images:
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   217
	@$(ECHO) Boot cycle build step 2: Building a new JDK image using previously built image
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   218
	+$(MAKE) $(MAKE_ARGS) -f Main.gmk SPEC=$(dir $(SPEC))bootcycle-spec.gmk $(BOOTCYCLE_TARGET)
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   219
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   220
zip-security:
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   221
	+($(CD) $(SRC_ROOT)/make && $(MAKE) $(MAKE_ARGS) -f ZipSecurity.gmk)
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   222
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   223
zip-source:
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   224
	+($(CD) $(SRC_ROOT)/make && $(MAKE) $(MAKE_ARGS) -f ZipSource.gmk)
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   225
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   226
strip-binaries:
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   227
	+($(CD) $(SRC_ROOT)/make && $(MAKE) $(MAKE_ARGS) -f StripBinaries.gmk)
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   228
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   229
jrtfs-jar:
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   230
	+($(CD) $(SRC_ROOT)/make && $(MAKE) $(MAKE_ARGS) -f JrtfsJar.gmk)
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   231
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   232
jimages:
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   233
	+($(CD) $(SRC_ROOT)/make && $(MAKE) $(MAKE_ARGS) -f Images.gmk jimages)
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   234
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   235
profiles:
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   236
	+($(CD) $(SRC_ROOT)/make && $(MAKE) $(MAKE_ARGS) -f Images.gmk profiles)
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   237
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   238
mac-bundles:
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   239
	+($(CD) $(SRC_ROOT)/make && $(MAKE) $(MAKE_ARGS) -f MacBundles.gmk)
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   240
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   241
ALL_TARGETS += source-tips bootcycle-images zip-security zip-source strip-binaries \
29156
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   242
    jrtfs-jar jimages profiles mac-bundles
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   243
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   244
################################################################################
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   245
# Docs targets
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   246
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   247
docs-javadoc:
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   248
	+($(CD) $(SRC_ROOT)/make && $(MAKE) $(MAKE_ARGS) -f Javadoc.gmk docs)
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   249
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   250
docs-jvmtidoc:
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   251
	+($(CD) $(SRC_ROOT)/make && $(MAKE) $(MAKE_ARGS) -f Javadoc.gmk jvmtidocs)
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   252
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   253
ALL_TARGETS += docs-javadoc docs-jvmtidoc
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   254
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   255
################################################################################
29156
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   256
# Build tests
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   257
#
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   258
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   259
prepare-test-image:
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   260
	$(MKDIR) -p $(TEST_IMAGE_DIR)
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   261
	$(ECHO) > $(TEST_IMAGE_DIR)/Readme.txt 'JDK test image'
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   262
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   263
build-test-hotspot-jtreg-native:
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   264
	+($(CD) $(HOTSPOT_TOPDIR)/make/test && $(MAKE) $(MAKE_ARGS) -f JtregNative.gmk \
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   265
	    build-test-hotspot-jtreg-native)
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   266
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   267
test-image-hotspot-jtreg-native:
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   268
	+($(CD) $(HOTSPOT_TOPDIR)/make/test && $(MAKE) $(MAKE_ARGS) -f JtregNative.gmk \
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   269
	    test-image-hotspot-jtreg-native)
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   270
29156
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   271
build-test-jdk-jtreg-native:
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   272
	+($(CD) $(JDK_TOPDIR)/make/test && $(MAKE) $(MAKE_ARGS) -f JtregNative.gmk \
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   273
	    build-test-jdk-jtreg-native)
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   274
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   275
test-image-jdk-jtreg-native:
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   276
	+($(CD) $(JDK_TOPDIR)/make/test && $(MAKE) $(MAKE_ARGS) -f JtregNative.gmk \
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   277
	    test-image-jdk-jtreg-native)
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   278
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   279
ALL_TARGETS += prepare-test-image build-test-hotspot-jtreg-native \
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   280
    test-image-hotspot-jtreg-native build-test-jdk-jtreg-native \
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   281
    test-image-jdk-jtreg-native
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   282
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   283
################################################################################
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   284
# Run tests
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   285
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   286
# Run tests specified by $(TEST), or the default test set.
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   287
test:
29156
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   288
	$(call RunTests, $(TEST))
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   289
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   290
test-hotspot-jtreg-native:
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   291
	$(call RunTests, "hotspot_native_sanity")
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   292
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   293
test-jdk-jtreg-native:
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   294
	$(call RunTests, "jdk_native_sanity")
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   295
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   296
test-make:
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   297
	($(CD) $(SRC_ROOT)/test/make && $(MAKE) $(MAKE_ARGS) -f TestMake.gmk $(TEST_TARGET))
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   298
29156
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   299
ALL_TARGETS += test test-hotspot-jtreg-native test-jdk-jtreg-native test-make
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   300
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   301
################################################################################
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   302
# Verification targets
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   303
26132
11df1233e1e8 8055856: checkdeps build target doesn't work for cross-compilation builds
mchung
parents: 26128
diff changeset
   304
verify-modules:
26547
f8b190ea8955 8058367: Add verify-modules target to the default and images target
mchung
parents: 26398
diff changeset
   305
	@$(call TargetEnter)
26132
11df1233e1e8 8055856: checkdeps build target doesn't work for cross-compilation builds
mchung
parents: 26128
diff changeset
   306
	+($(CD) $(SRC_ROOT)/make && $(MAKE) $(MAKE_ARGS) -f CheckModules.gmk)
26547
f8b190ea8955 8058367: Add verify-modules target to the default and images target
mchung
parents: 26398
diff changeset
   307
	@$(call TargetExit)
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   308
26132
11df1233e1e8 8055856: checkdeps build target doesn't work for cross-compilation builds
mchung
parents: 26128
diff changeset
   309
ALL_TARGETS += verify-modules
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   310
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   311
################################################################################
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   312
# Install targets
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   313
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   314
install:
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   315
	+($(CD) $(SRC_ROOT)/make && $(MAKE) $(MAKE_ARGS) -f Install.gmk)
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   316
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   317
ALL_TARGETS += install
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   318
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   319
################################################################################
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   320
#
27595
cff167b3bfa2 8065914: Various improvements and cleanup of build system
ihse
parents: 27329
diff changeset
   321
# Dependency declarations between targets.
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   322
#
27595
cff167b3bfa2 8065914: Various improvements and cleanup of build system
ihse
parents: 27329
diff changeset
   323
# These are declared in two groups. First all dependencies between targets that
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   324
# have recipes above as these dependencies may be disabled. Then the aggregator
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   325
# targets that do not have recipes of their own, which will never have their
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   326
# dependencies disabled.
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   327
#
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   328
################################################################################
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   329
# Targets with recipes above
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   330
27595
cff167b3bfa2 8065914: Various improvements and cleanup of build system
ihse
parents: 27329
diff changeset
   331
# If running an *-only target, parallel execution and dependencies between
cff167b3bfa2 8065914: Various improvements and cleanup of build system
ihse
parents: 27329
diff changeset
   332
# recipe targets are disabled. This makes it possible to run a select set of
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   333
# recipe targets in order. It's the responsibility of the user to make sure
27595
cff167b3bfa2 8065914: Various improvements and cleanup of build system
ihse
parents: 27329
diff changeset
   334
# all prerequisites are fulfilled.
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   335
ifneq ($(findstring -only, $(MAKECMDGOALS)), )
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   336
  .NOTPARALLEL:
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   337
else
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   338
  $(LANGTOOLS_GENSRC_TARGETS): buildtools-langtools
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   339
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   340
  interim-langtools: $(LANGTOOLS_GENSRC_TARGETS)
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   341
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   342
  buildtools-jdk: interim-langtools
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   343
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   344
  $(CORBA_GENSRC_TARGETS): interim-langtools
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   345
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   346
  $(JDK_GENSRC_TARGETS): interim-langtools buildtools-jdk
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   347
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   348
  interim-corba: $(CORBA_GENSRC_TARGETS)
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   349
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   350
  $(GENDATA_TARGETS): interim-langtools buildtools-jdk
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   351
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   352
  interim-rmic: interim-langtools
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   353
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   354
  $(RMIC_TARGETS): interim-langtools interim-corba interim-rmic
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   355
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   356
  import-hotspot: hotspot
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   357
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   358
  $(LIBS_TARGETS): import-hotspot
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   359
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   360
  $(LAUNCHER_TARGETS): java.base-libs
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   361
26115
7a9dc384f3c8 8055188: General cleanup of minor issues from source restructure
erikj
parents: 25883
diff changeset
   362
  # The demos are currently linking to libjvm and libjava, just like all other
7a9dc384f3c8 8055188: General cleanup of minor issues from source restructure
erikj
parents: 25883
diff changeset
   363
  # jdk libs, even though they don't need to. To avoid warnings, make sure they
7a9dc384f3c8 8055188: General cleanup of minor issues from source restructure
erikj
parents: 25883
diff changeset
   364
  # aren't built until after libjava and libjvm are available to link to.
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   365
  demos: $(JAVA_TARGETS)
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   366
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   367
  # Declare dependency from <module>-java to <module>-gensrc
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   368
  $(foreach m, $(GENSRC_MODULES), $(eval $m-java: $m-gensrc))
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   369
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   370
  # Declare dependencies between java modules
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   371
  $(foreach m, $(JAVA_MODULES), \
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   372
      $(eval $m-java: $(addsuffix -java, $(filter $(JAVA_MODULES), \
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   373
      $(call FindDepsForModule,$m)))))
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   374
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   375
  # Declare dependencies between <module>-rmic to <module>-java
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   376
  $(foreach m, $(RMIC_MODULES), $(eval $m-rmic: $m-java))
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   377
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   378
  # Declare dependencies from <module>-lib to <module>-java
28899
ceb890ca5f39 8073166: Unable to successfully build the merge of jdk9/hs with jdk9/dev
erikj
parents: 28811
diff changeset
   379
  # Skip modules that do not have java source.
ceb890ca5f39 8073166: Unable to successfully build the merge of jdk9/hs with jdk9/dev
erikj
parents: 28811
diff changeset
   380
  $(foreach m, $(filter $(JAVA_MODULES), $(LIBS_MODULES)), $(eval $m-libs: $m-java))
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   381
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   382
  # Declare dependencies from all other <module>-lib to java.base-lib
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   383
  $(foreach t, $(filter-out java.base-libs, $(LIBS_TARGETS)), \
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   384
      $(eval $t: java.base-libs))
27595
cff167b3bfa2 8065914: Various improvements and cleanup of build system
ihse
parents: 27329
diff changeset
   385
  # Declare the special case dependency for jdk.deploy.osx where libosx
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   386
  # links against libosxapp.
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   387
  jdk.deploy.osx-libs: java.desktop-libs
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   388
27595
cff167b3bfa2 8065914: Various improvements and cleanup of build system
ihse
parents: 27329
diff changeset
   389
  # This dependency needs to be explicitly declared. jdk.jdi-gensrc generates a
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   390
  # header file used by jdk.jdwp.agent-libs. The jdk.jdwp.agent-gensrc is a
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   391
  # virtual target.
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   392
  jdk.jdwp.agent-libs: jdk.jdwp.agent-gensrc
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   393
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   394
  # Until the module system is in place, jdk.jdi-gensrc needs to combine service
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   395
  # loader configuration with jdk.hotspot.agent so is dependent on importing
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   396
  # hotspot.
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   397
  jdk.jdi-gensrc-jdk: import-hotspot
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   398
26672
528d9d6614e5 8047933: Race between jdk/make/scripts/genExceptions.sh and com.sun.tools.javadoc.Main
erikj
parents: 26398
diff changeset
   399
  # The swing beans need to have java base properly generated to avoid errors
528d9d6614e5 8047933: Race between jdk/make/scripts/genExceptions.sh and com.sun.tools.javadoc.Main
erikj
parents: 26398
diff changeset
   400
  # in javadoc.
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   401
  java.desktop-gensrc-jdk: java.base-gensrc
26672
528d9d6614e5 8047933: Race between jdk/make/scripts/genExceptions.sh and com.sun.tools.javadoc.Main
erikj
parents: 26398
diff changeset
   402
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   403
  # Explicitly add dependencies for special targets
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   404
  java.base-java: unpack-sec
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   405
26132
11df1233e1e8 8055856: checkdeps build target doesn't work for cross-compilation builds
mchung
parents: 26128
diff changeset
   406
  jdk.dev-gendata: java rmic
11df1233e1e8 8055856: checkdeps build target doesn't work for cross-compilation builds
mchung
parents: 26128
diff changeset
   407
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   408
  zip-security: java.base-java java.security.jgss-java java.security.jgss-libs \
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   409
      $(filter jdk.crypto%, $(JAVA_TARGETS))
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   410
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   411
  zip-source: gensrc rmic
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   412
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   413
  strip-binaries: libs launchers gendata copy
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   414
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   415
  jrtfs-jar: buildtools-jdk
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   416
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   417
  jimages: exploded-image zip-source strip-binaries source-tips demos samples \
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   418
      jrtfs-jar
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   419
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   420
  profiles: exploded-image strip-binaries source-tips
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   421
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   422
  mac-bundles: jimages
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   423
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   424
  bootcycle-images: jimages
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   425
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   426
  docs-javadoc: gensrc rmic
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   427
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   428
  docs-jvmtidoc: hotspot
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   429
29156
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   430
  test: jimages test-image
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   431
26132
11df1233e1e8 8055856: checkdeps build target doesn't work for cross-compilation builds
mchung
parents: 26128
diff changeset
   432
  verify-modules: exploded-image
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   433
28600
09dd1740f176 8069261: Create make dependencies on make variable values
erikj
parents: 28285
diff changeset
   434
  test-make: clean-test-make
09dd1740f176 8069261: Create make dependencies on make variable values
erikj
parents: 28285
diff changeset
   435
29159
7fed45c53518 8074072: Race condition in build since JDK-8072842 can cause failed builds on Solaris
erikj
parents: 29156
diff changeset
   436
  build-test-hotspot-jtreg-native: buildtools-jdk
7fed45c53518 8074072: Race condition in build since JDK-8072842 can cause failed builds on Solaris
erikj
parents: 29156
diff changeset
   437
7fed45c53518 8074072: Race condition in build since JDK-8072842 can cause failed builds on Solaris
erikj
parents: 29156
diff changeset
   438
  build-test-jdk-jtreg-native: buildtools-jdk
7fed45c53518 8074072: Race condition in build since JDK-8072842 can cause failed builds on Solaris
erikj
parents: 29156
diff changeset
   439
29156
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   440
  test-image-hotspot-jtreg-native: build-test-hotspot-jtreg-native
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   441
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   442
  test-image-jdk-jtreg-native: build-test-jdk-jtreg-native
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   443
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   444
endif
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   445
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   446
################################################################################
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   447
# Virtual targets without recipes
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   448
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   449
buildtools: buildtools-langtools interim-langtools interim-corba interim-rmic \
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   450
    buildtools-jdk
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   451
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   452
gensrc: $(GENSRC_TARGETS)
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   453
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   454
gendata: $(GENDATA_TARGETS)
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   455
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   456
copy: $(COPY_TARGETS)
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   457
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   458
java: $(JAVA_TARGETS)
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   459
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   460
rmic: $(RMIC_TARGETS)
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   461
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   462
libs: $(LIBS_TARGETS)
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   463
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   464
launchers: $(LAUNCHER_TARGETS)
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   465
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   466
# Explicitly declare dependency for virtual target jdk.jdwp.agent-gensrc which
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   467
# is actually handled by jdk.jdi-gensrc
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   468
jdk.jdwp.agent-gensrc: jdk.jdi-gensrc
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   469
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   470
# Declare dependencies from <module> to all the individual targets specific
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   471
# to that module <module>-*.
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   472
$(foreach m, $(GENSRC_MODULES), $(eval $m: $m-gensrc))
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   473
$(foreach m, $(JAVA_MODULES), $(eval $m: $m-java))
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   474
$(foreach m, $(GENDATA_MODULES), $(eval $m: $m-gendata))
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   475
$(foreach m, $(RMIC_MODULES), $(eval $m: $m-rmic))
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   476
$(foreach m, $(LIBS_MODULES), $(eval $m: $m-libs))
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   477
$(foreach m, $(LAUNCHER_MODULES), $(eval $m: $m-launchers))
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   478
$(foreach m, $(COPY_MODULES), $(eval $m: $m-copy))
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   479
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   480
ALL_MODULE_TARGETS := $(sort $(GENSRC_MODULES) $(JAVA_MODULES) \
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   481
    $(GENDATA_MODULES) $(LIBS_MODULES) $(LAUNCHER_MODULES) $(COPY_MODULES))
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   482
28811
65cf1b4087cf 8071767: Improve names and dependencies for image targets
ihse
parents: 28809
diff changeset
   483
# The "exploded image" is a locally runnable JDK in $(BUILD_OUTPUT)/jdk.
26132
11df1233e1e8 8055856: checkdeps build target doesn't work for cross-compilation builds
mchung
parents: 26128
diff changeset
   484
exploded-image: $(ALL_MODULE_TARGETS)
28811
65cf1b4087cf 8071767: Improve names and dependencies for image targets
ihse
parents: 28809
diff changeset
   485
29156
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   486
# The $(BUILD_OUTPUT)/images directory contain the resulting deliverables,
28811
65cf1b4087cf 8071767: Improve names and dependencies for image targets
ihse
parents: 28809
diff changeset
   487
# and in line with this, our targets for creating these are named *-image[s].
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   488
28811
65cf1b4087cf 8071767: Improve names and dependencies for image targets
ihse
parents: 28809
diff changeset
   489
# This target builds the product images, e.g. the JRE and JDK image
65cf1b4087cf 8071767: Improve names and dependencies for image targets
ihse
parents: 28809
diff changeset
   490
# (and possibly other, more specific versions)
65cf1b4087cf 8071767: Improve names and dependencies for image targets
ihse
parents: 28809
diff changeset
   491
product-images: jimages demos samples zip-security verify-modules
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   492
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   493
ifeq ($(OPENJDK_TARGET_OS), macosx)
28811
65cf1b4087cf 8071767: Improve names and dependencies for image targets
ihse
parents: 28809
diff changeset
   494
  product-images: mac-bundles
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   495
endif
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   496
28811
65cf1b4087cf 8071767: Improve names and dependencies for image targets
ihse
parents: 28809
diff changeset
   497
# This target builds the documentation image
65cf1b4087cf 8071767: Improve names and dependencies for image targets
ihse
parents: 28809
diff changeset
   498
docs-image: docs-javadoc docs-jvmtidoc
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   499
28811
65cf1b4087cf 8071767: Improve names and dependencies for image targets
ihse
parents: 28809
diff changeset
   500
# This target builds the test image
29156
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   501
test-image: prepare-test-image test-image-hotspot-jtreg-native \
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   502
    test-image-jdk-jtreg-native
28285
3b8c4ccbb332 8067759: Create initial test bundle framework
ihse
parents: 28011
diff changeset
   503
28811
65cf1b4087cf 8071767: Improve names and dependencies for image targets
ihse
parents: 28809
diff changeset
   504
# all-images is the top-most target, it builds all our deliverables ("images").
65cf1b4087cf 8071767: Improve names and dependencies for image targets
ihse
parents: 28809
diff changeset
   505
all-images: product-images test-image docs-image
65cf1b4087cf 8071767: Improve names and dependencies for image targets
ihse
parents: 28809
diff changeset
   506
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   507
ALL_TARGETS += buildtools gensrc gendata copy java rmic libs launchers \
28811
65cf1b4087cf 8071767: Improve names and dependencies for image targets
ihse
parents: 28809
diff changeset
   508
    jdk.jdwp.agent-gensrc $(ALL_MODULE_TARGETS) exploded-image \
65cf1b4087cf 8071767: Improve names and dependencies for image targets
ihse
parents: 28809
diff changeset
   509
    product-images docs-image test-image all-images
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   510
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   511
################################################################################
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   512
28811
65cf1b4087cf 8071767: Improve names and dependencies for image targets
ihse
parents: 28809
diff changeset
   513
# Traditional targets typically run by users.
65cf1b4087cf 8071767: Improve names and dependencies for image targets
ihse
parents: 28809
diff changeset
   514
# These can be considered aliases for the targets now named by a more
65cf1b4087cf 8071767: Improve names and dependencies for image targets
ihse
parents: 28809
diff changeset
   515
# "modern" naming scheme.
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   516
default: exploded-image
28811
65cf1b4087cf 8071767: Improve names and dependencies for image targets
ihse
parents: 28809
diff changeset
   517
jdk: exploded-image
65cf1b4087cf 8071767: Improve names and dependencies for image targets
ihse
parents: 28809
diff changeset
   518
images: product-images
65cf1b4087cf 8071767: Improve names and dependencies for image targets
ihse
parents: 28809
diff changeset
   519
docs: docs-image
65cf1b4087cf 8071767: Improve names and dependencies for image targets
ihse
parents: 28809
diff changeset
   520
all: all-images
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   521
28811
65cf1b4087cf 8071767: Improve names and dependencies for image targets
ihse
parents: 28809
diff changeset
   522
ALL_TARGETS += default jdk images docs all
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   523
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   524
################################################################################
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   525
################################################################################
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   526
#
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   527
# Clean targets
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   528
#
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   529
################################################################################
27595
cff167b3bfa2 8065914: Various improvements and cleanup of build system
ihse
parents: 27329
diff changeset
   530
# Clean targets are automatically run serially by the Makefile calling this
26398
ca1f84f97e20 8057537: Serialize reconfigure and fix make clean-foo foo
erikj
parents: 26285
diff changeset
   531
# file.
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   532
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   533
CLEAN_DIRS += hotspot jdk bootcycle-build test buildtools support \
29305
4ddc6faf7842 8073021: add native code coverage target into makefiles
erikj
parents: 29159
diff changeset
   534
    images make-support test-make bundles
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   535
CLEAN_DIR_TARGETS := $(addprefix clean-, $(CLEAN_DIRS))
29156
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   536
CLEAN_TESTS += hotspot-jtreg-native jdk-jtreg-native
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   537
CLEAN_TEST_TARGETS += $(addprefix clean-test-, $(CLEAN_TESTS))
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   538
CLEAN_PHASES := gensrc java native include
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   539
CLEAN_PHASE_TARGETS := $(addprefix clean-, $(CLEAN_PHASES))
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   540
CLEAN_MODULE_TARGETS := $(addprefix clean-, $(ALL_MODULES))
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   541
# Construct targets of the form clean-$module-$phase
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   542
CLEAN_MODULE_PHASE_TARGETS := $(addprefix clean-, $(foreach m, $(ALL_MODULES), \
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   543
    $(addprefix $m-, $(CLEAN_PHASES))))
14111
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
   544
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
   545
# Remove everything, except the output from configure.
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   546
clean: $(CLEAN_DIR_TARGETS)
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   547
	($(CD) $(OUTPUT_ROOT) && $(RM) -r source_tips build.log* build-trace*.log*)
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   548
	$(ECHO) Cleaned all build artifacts.
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   549
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   550
$(CLEAN_DIR_TARGETS):
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   551
	$(call CleanDir,$(patsubst clean-%, %, $@))
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   552
29156
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   553
$(CLEAN_TEST_TARGETS):
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   554
	$(call CleanTest,$(patsubst clean-test-%, %, $@))
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   555
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   556
$(CLEAN_PHASE_TARGETS):
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   557
	$(call Clean-$(patsubst clean-%,%, $@))
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   558
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   559
$(CLEAN_MODULE_TARGETS):
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   560
	$(call CleanModule,$(patsubst clean-%, %, $@))
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   561
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   562
$(CLEAN_MODULE_PHASE_TARGETS):
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   563
	$(call Clean-$(word 3, $(subst -,$(SPACE),$@)), \
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   564
	    $(word 2, $(subst -,$(SPACE),$@)))
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   565
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   566
# When removing the support dir, we must also remove jdk. Building classes has
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   567
# the side effect of generating native headers. The headers end up in support
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   568
# while classes and touch files end up in jdk.
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   569
clean-support: clean-jdk
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   570
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   571
clean-docs: clean-docstemp
14111
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
   572
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
   573
# Remove everything, including configure configuration.
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
   574
# If the output directory was created by configure and now becomes empty, remove it as well.
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
   575
dist-clean: clean
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   576
	($(CD) $(OUTPUT_ROOT) && $(RM) -r *spec.gmk config.* configure-arguments \
27329
49baf50a6840 8062806: Remove unused build/make files
ihse
parents: 27136
diff changeset
   577
	    Makefile compare.sh tmp javacservers)
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   578
	$(if $(filter $(CONF_NAME),$(notdir $(OUTPUT_ROOT))), \
20363
fa7663fc5d50 8001931: The new build system whitespace cleanup
ihse
parents: 20047
diff changeset
   579
	  if test "x`$(LS) $(OUTPUT_ROOT)`" != x; then \
fa7663fc5d50 8001931: The new build system whitespace cleanup
ihse
parents: 20047
diff changeset
   580
	    $(ECHO) "Warning: Not removing non-empty configuration directory for '$(CONF_NAME)'" ; \
fa7663fc5d50 8001931: The new build system whitespace cleanup
ihse
parents: 20047
diff changeset
   581
	  else \
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   582
	    ($(CD) $(SRC_ROOT) && $(ECHO) "Removing configuration directory for '$(CONF_NAME)'" \
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   583
	        && $(RM) -r $(OUTPUT_ROOT)) \
20363
fa7663fc5d50 8001931: The new build system whitespace cleanup
ihse
parents: 20047
diff changeset
   584
	  fi \
fa7663fc5d50 8001931: The new build system whitespace cleanup
ihse
parents: 20047
diff changeset
   585
	)
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   586
	$(ECHO) Cleaned everything, you will have to re-run configure.
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   587
29156
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   588
ALL_TARGETS += clean dist-clean $(CLEAN_DIR_TARGETS) $(CLEAN_TEST_TARGETS) \
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   589
    $(CLEAN_PHASE_TARGETS) $(CLEAN_MODULE_TARGETS) $(CLEAN_MODULE_PHASE_TARGETS)
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   590
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   591
################################################################################
14111
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
   592
27595
cff167b3bfa2 8065914: Various improvements and cleanup of build system
ihse
parents: 27329
diff changeset
   593
# Setup a rule for SPEC file that fails if executed. This check makes sure the
cff167b3bfa2 8065914: Various improvements and cleanup of build system
ihse
parents: 27329
diff changeset
   594
# configuration is up to date after changes to configure.
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   595
ifeq ($(findstring reconfigure, $(MAKECMDGOALS)), )
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   596
  $(SPEC): $(wildcard $(SRC_ROOT)/common/autoconf/*)
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   597
	@$(ECHO) "ERROR: $(SPEC) is not up to date."
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   598
	@$(ECHO) "Please rerun configure! Easiest way to do this is by running"
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   599
	@$(ECHO) "'make reconfigure'."
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   600
	@$(ECHO) "It may also be ignored by setting IGNORE_OLD_CONFIG=true"
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   601
	@if test "x$(IGNORE_OLD_CONFIG)" != "xtrue"; then exit 1; fi
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   602
endif
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   603
26398
ca1f84f97e20 8057537: Serialize reconfigure and fix make clean-foo foo
erikj
parents: 26285
diff changeset
   604
# The reconfigure target is automatically run serially from everything else
ca1f84f97e20 8057537: Serialize reconfigure and fix make clean-foo foo
erikj
parents: 26285
diff changeset
   605
# by the Makefile calling this file.
ca1f84f97e20 8057537: Serialize reconfigure and fix make clean-foo foo
erikj
parents: 26285
diff changeset
   606
22716
cf32fe2eb254 8034199: Add 'reconfigure' target for re-creating a configuration
ihse
parents: 22714
diff changeset
   607
reconfigure:
cf32fe2eb254 8034199: Add 'reconfigure' target for re-creating a configuration
ihse
parents: 22714
diff changeset
   608
        ifneq ($(CONFIGURE_COMMAND_LINE), )
cf32fe2eb254 8034199: Add 'reconfigure' target for re-creating a configuration
ihse
parents: 22714
diff changeset
   609
	  @$(ECHO) "Re-running configure using arguments '$(CONFIGURE_COMMAND_LINE)'"
cf32fe2eb254 8034199: Add 'reconfigure' target for re-creating a configuration
ihse
parents: 22714
diff changeset
   610
        else
cf32fe2eb254 8034199: Add 'reconfigure' target for re-creating a configuration
ihse
parents: 22714
diff changeset
   611
	  @$(ECHO) "Re-running configure using default settings"
cf32fe2eb254 8034199: Add 'reconfigure' target for re-creating a configuration
ihse
parents: 22714
diff changeset
   612
        endif
28809
6481e27e00ee 8071329: Stop exporting INCLUDE and LIB when building on windows
erikj
parents: 28606
diff changeset
   613
	@( cd $(OUTPUT_ROOT) && PATH="$(ORIGINAL_PATH)" \
6481e27e00ee 8071329: Stop exporting INCLUDE and LIB when building on windows
erikj
parents: 28606
diff changeset
   614
	    $(BASH) $(TOPDIR)/configure $(CONFIGURE_COMMAND_LINE) )
14111
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
   615
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   616
ALL_TARGETS += reconfigure
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   617
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   618
################################################################################
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   619
# Declare *-only targets for each normal target
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   620
$(foreach t, $(ALL_TARGETS), $(eval $(t)-only: $(t)))
14111
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
   621
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   622
ALL_TARGETS += $(addsuffix -only, $(filter-out clean%, $(ALL_TARGETS)))
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   623
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   624
################################################################################
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   625
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   626
.PHONY: $(ALL_TARGETS)
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   627
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   628
include $(SRC_ROOT)/make/Jprt.gmk
22031
ae288cbb4c28 8029797: Let jprt run configure when building
erikj
parents: 21759
diff changeset
   629
14111
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
   630
FRC: # Force target