make/Main.gmk
author erikj
Thu, 14 Apr 2016 15:13:42 +0200
changeset 37031 e90042bf422d
parent 36789 46a9456815a3
child 37034 b63fd4af003e
child 37406 ffe907153695
permissions -rw-r--r--
8149777: Enable enhanced failure handler for "make test" Reviewed-by: ihse
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
14111
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
     1
#
35747
aeaa6d0101a8 8149647: Incremental enhancements from build-infra
ihse
parents: 35030
diff changeset
     2
# Copyright (c) 2011, 2016, 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.
29662
78c47f0002c3 8076060: Improve make bootstrap process
ihse
parents: 29305
diff changeset
    29
################################################################################
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    30
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    31
# Declare default target
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    32
default:
14111
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
    33
29662
78c47f0002c3 8076060: Improve make bootstrap process
ihse
parents: 29305
diff changeset
    34
ifeq ($(wildcard $(SPEC)),)
78c47f0002c3 8076060: Improve make bootstrap process
ihse
parents: 29305
diff changeset
    35
  $(error Main.gmk needs SPEC set to a proper spec.gmk)
78c47f0002c3 8076060: Improve make bootstrap process
ihse
parents: 29305
diff changeset
    36
endif
78c47f0002c3 8076060: Improve make bootstrap process
ihse
parents: 29305
diff changeset
    37
14111
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
    38
# Now load the spec
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
    39
include $(SPEC)
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
    40
29662
78c47f0002c3 8076060: Improve make bootstrap process
ihse
parents: 29305
diff changeset
    41
include $(SRC_ROOT)/make/MainSupport.gmk
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    42
20363
fa7663fc5d50 8001931: The new build system whitespace cleanup
ihse
parents: 20047
diff changeset
    43
# Load the vital tools for all the makefiles.
21759
e24e22311718 8027566: Remove the old build system
ihse
parents: 21173
diff changeset
    44
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
    45
include $(SRC_ROOT)/make/common/Modules.gmk
14111
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
    46
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    47
# 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
    48
# 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
    49
# generate the -only targets.
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    50
ALL_TARGETS :=
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    51
22714
a752920c4317 8034191: Move relevant parts of build system to new closed repo
ihse
parents: 22031
diff changeset
    52
# 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
    53
$(eval $(call IncludeCustomExtension, , Main.gmk))
14111
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
    54
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    55
# All modules for the current target platform.
34116
b746e382da18 8142336: Convert the SA agent build to modular build-infra makefiles
erikj
parents: 33722
diff changeset
    56
ALL_MODULES := $(call FindAllModules)
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    57
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
# Recipes for all targets. Only recipes, dependencies are declared later.
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    62
#
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    63
################################################################################
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    64
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    65
################################################################################
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    66
# Interim/build tools targets, compiling tools used during the build
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    67
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
    68
buildtools-langtools:
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
    69
	+($(CD) $(LANGTOOLS_TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Tools.gmk)
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
    70
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    71
interim-langtools:
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    72
	+($(CD) $(LANGTOOLS_TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f CompileInterim.gmk)
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    73
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    74
interim-rmic:
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    75
	+($(CD) $(JDK_TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f CompileInterimRmic.gmk)
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    76
31948
761ddfee3ef2 8129881: JDK-8008577 breaks Nashorn test
naoto
parents: 31310
diff changeset
    77
interim-cldrconverter:
761ddfee3ef2 8129881: JDK-8008577 breaks Nashorn test
naoto
parents: 31310
diff changeset
    78
	+($(CD) $(JDK_TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f CopyInterimCLDRConverter.gmk)
761ddfee3ef2 8129881: JDK-8008577 breaks Nashorn test
naoto
parents: 31310
diff changeset
    79
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
    80
buildtools-jdk:
35008
ef0cd710989f 8146403: Windows build can be faster
erikj
parents: 34491
diff changeset
    81
	+($(CD) $(JDK_TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f CompileTools.gmk)
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    82
32806
e0a88439f971 8137088: Drop building of interim_java.corba
erikj
parents: 32562
diff changeset
    83
ALL_TARGETS += buildtools-langtools interim-langtools \
31948
761ddfee3ef2 8129881: JDK-8008577 breaks Nashorn test
naoto
parents: 31310
diff changeset
    84
    interim-rmic interim-cldrconverter buildtools-jdk
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    85
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    86
################################################################################
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    87
# Special targets for certain modules
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    88
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    89
import-hotspot:
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    90
	+($(CD) $(JDK_TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Import.gmk)
14111
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
    91
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    92
unpack-sec:
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    93
	+($(CD) $(JDK_TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f UnpackSecurity.gmk)
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
    94
33562
c76b2fa11486 8136556: Add the ability to perform static builds of MacOSX x64 binaries
bobv
parents: 32806
diff changeset
    95
generate-exported-symbols:
c76b2fa11486 8136556: Add the ability to perform static builds of MacOSX x64 binaries
bobv
parents: 32806
diff changeset
    96
	+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f BuildStatic.gmk)
c76b2fa11486 8136556: Add the ability to perform static builds of MacOSX x64 binaries
bobv
parents: 32806
diff changeset
    97
c76b2fa11486 8136556: Add the ability to perform static builds of MacOSX x64 binaries
bobv
parents: 32806
diff changeset
    98
ALL_TARGETS += import-hotspot unpack-sec generate-exported-symbols
14111
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
    99
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   100
################################################################################
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   101
# Gensrc targets, generating source before java compilation can be done
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   102
$(eval $(call DeclareRecipesForPhase, GENSRC, \
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   103
    TARGET_SUFFIX := gensrc, \
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   104
    FILE_PREFIX := Gensrc, \
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   105
    MAKE_SUBDIR := gensrc, \
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   106
    CHECK_MODULES := $(ALL_MODULES), \
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   107
    MULTIPLE_MAKEFILES := true))
14111
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
   108
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   109
JDK_GENSRC_TARGETS := $(filter %-gensrc-jdk, $(GENSRC_TARGETS))
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   110
LANGTOOLS_GENSRC_TARGETS := $(filter %-gensrc-langtools, $(GENSRC_TARGETS))
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   111
CORBA_GENSRC_TARGETS := $(filter %-gensrc-corba, $(GENSRC_TARGETS))
33045
00f484891bcf 8136421: JEP 243: Java-Level JVM Compiler Interface
twisti
parents: 32806
diff changeset
   112
HOTSPOT_GENSRC_TARGETS := $(filter %-gensrc-hotspot, $(GENSRC_TARGETS))
15053
64278cb83950 8005549: build-infra: Merge NewMakefile.gmk and common/makefiles/Makefile
erikj
parents: 14466
diff changeset
   113
36506
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   114
GENSRC_MODULEINFO_MODULES := $(ALL_MODULES)
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   115
GENSRC_MODULEINFO_TARGETS := $(addsuffix -gensrc-moduleinfo, \
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   116
    $(GENSRC_MODULEINFO_MODULES))
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   117
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   118
GENSRC_MODULES := $(GENSRC_MODULEINFO_MODULES)
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   119
GENSRC_TARGETS += $(sort $(GENSRC_MODULEINFO_TARGETS) \
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   120
    $(addsuffix -gensrc, $(GENSRC_MODULES)))
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   121
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   122
define DeclareModuleInfoRecipe
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   123
  $1-gensrc-moduleinfo:
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   124
	+($(CD) $(SRC_ROOT)/make && $(MAKE) $(MAKE_ARGS) \
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   125
	    -f GensrcModuleInfo.gmk MODULE=$1)
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   126
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   127
  $1-gensrc: $1-gensrc-moduleinfo
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   128
endef
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   129
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   130
$(foreach m, $(GENSRC_MODULEINFO_MODULES), $(eval $(call DeclareModuleInfoRecipe,$m)))
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   131
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   132
ALL_TARGETS += $(GENSRC_TARGETS)
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   133
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   134
################################################################################
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   135
# Generate data targets
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   136
$(eval $(call DeclareRecipesForPhase, GENDATA, \
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   137
    TARGET_SUFFIX := gendata, \
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   138
    FILE_PREFIX := Gendata, \
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   139
    MAKE_SUBDIR := gendata, \
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   140
    CHECK_MODULES := $(ALL_MODULES), \
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   141
    USE_WRAPPER := true))
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   142
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   143
ALL_TARGETS += $(GENDATA_TARGETS)
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   144
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   145
################################################################################
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   146
# Copy files targets
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   147
$(eval $(call DeclareRecipesForPhase, COPY, \
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   148
    TARGET_SUFFIX := copy, \
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   149
    FILE_PREFIX := Copy, \
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   150
    MAKE_SUBDIR := copy, \
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   151
    CHECK_MODULES := $(ALL_MODULES), \
33045
00f484891bcf 8136421: JEP 243: Java-Level JVM Compiler Interface
twisti
parents: 32806
diff changeset
   152
    USE_WRAPPER := true, \
00f484891bcf 8136421: JEP 243: Java-Level JVM Compiler Interface
twisti
parents: 32806
diff changeset
   153
    MULTIPLE_MAKEFILES := true))
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   154
36506
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   155
ALL_COPY_MODULES += $(COPY_MODULES)
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   156
ALL_COPY_TARGETS += $(COPY_TARGETS)
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   157
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   158
IMPORT_COPY_MODULES := $(call FindImportedModules)
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   159
IMPORT_COPY_TARGETS := $(addsuffix -copy, $(IMPORT_COPY_MODULES))
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   160
ALL_COPY_MODULES += $(IMPORT_COPY_MODULES)
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   161
ALL_COPY_TARGETS += $(IMPORT_COPY_TARGETS)
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   162
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   163
define DeclareImportCopyRecipe
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   164
  $1-copy:
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   165
	+($(CD) $(SRC_ROOT)/make && $(MAKE) $(MAKE_ARGS) \
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   166
	    -f CopyImportModules.gmk MODULE=$1)
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   167
endef
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   168
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   169
$(foreach m, $(IMPORT_COPY_MODULES), $(eval $(call DeclareImportCopyRecipe,$m)))
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   170
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   171
ALL_TARGETS += $(ALL_COPY_TARGETS)
15395
e5d837c6e999 8007093: build-infra: Make should fail if spec is older than configure files
erikj
parents: 15060
diff changeset
   172
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   173
################################################################################
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   174
# Targets for compiling all java modules. Nashorn is treated separately.
36506
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   175
JAVA_MODULES := $(ALL_MODULES)
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   176
JAVA_TARGETS := $(addsuffix -java, $(JAVA_MODULES))
14111
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
   177
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   178
define DeclareCompileJavaRecipe
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   179
  $1-java:
34102
c0a98357f847 8143141: Bring in minor build changes from the jigsaw/jake forest
erikj
parents: 33722
diff changeset
   180
	+($(CD) $(SRC_ROOT)/make && $(MAKE) $(MAKE_ARGS) \
c0a98357f847 8143141: Bring in minor build changes from the jigsaw/jake forest
erikj
parents: 33722
diff changeset
   181
	    -f CompileJavaModules.gmk MODULE=$1)
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   182
endef
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   183
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   184
$(foreach m, $(filter-out jdk.scripting.nashorn, $(JAVA_MODULES)), \
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   185
    $(eval $(call DeclareCompileJavaRecipe,$m)))
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   186
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   187
# Build nashorn. Needs to be compiled separately from the rest of the modules
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   188
# due to nasgen.
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   189
jdk.scripting.nashorn-java:
34102
c0a98357f847 8143141: Bring in minor build changes from the jigsaw/jake forest
erikj
parents: 33722
diff changeset
   190
	+($(CD) $(NASHORN_TOPDIR)/make && $(MAKE) $(MAKE_ARGS) \
c0a98357f847 8143141: Bring in minor build changes from the jigsaw/jake forest
erikj
parents: 33722
diff changeset
   191
	    -f BuildNashorn.gmk compile)
14111
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
   192
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   193
ALL_TARGETS += $(JAVA_TARGETS)
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   194
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   195
################################################################################
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   196
# Targets for running rmic.
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   197
$(eval $(call DeclareRecipesForPhase, RMIC, \
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   198
    TARGET_SUFFIX := rmic, \
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   199
    FILE_PREFIX := Rmic, \
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   200
    MAKE_SUBDIR := rmic, \
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   201
    CHECK_MODULES := $(ALL_MODULES)))
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   202
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   203
ALL_TARGETS += $(RMIC_TARGETS)
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   204
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   205
################################################################################
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   206
# Targets for compiling native libraries
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   207
$(eval $(call DeclareRecipesForPhase, LIBS, \
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   208
    TARGET_SUFFIX := libs, \
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   209
    FILE_PREFIX := Lib, \
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   210
    MAKE_SUBDIR := lib, \
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   211
    CHECK_MODULES := $(ALL_MODULES), \
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   212
    USE_WRAPPER := true))
14111
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
   213
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   214
ALL_TARGETS += $(LIBS_TARGETS)
14111
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
   215
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   216
################################################################################
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   217
# Targets for compiling native executables
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   218
$(eval $(call DeclareRecipesForPhase, LAUNCHER, \
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   219
    TARGET_SUFFIX := launchers, \
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   220
    FILE_PREFIX := Launcher, \
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   221
    MAKE_SUBDIR := launcher, \
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   222
    CHECK_MODULES := $(ALL_MODULES), \
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   223
    USE_WRAPPER := true))
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   224
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   225
ALL_TARGETS += $(LAUNCHER_TARGETS)
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   226
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   227
################################################################################
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   228
# Build hotspot target
14111
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
   229
14378
0ef5d942b98e 8002028: build-infra: need no-hotspot partial build
tbell
parents: 14111
diff changeset
   230
ifeq ($(BUILD_HOTSPOT),true)
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   231
  hotspot:
34102
c0a98357f847 8143141: Bring in minor build changes from the jigsaw/jake forest
erikj
parents: 33722
diff changeset
   232
	+($(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
   233
endif
14111
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
   234
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   235
ALL_TARGETS += hotspot
15903
bc0e6cd9d760 8008914: Add nashorn to the tl build
jjg
parents: 15587
diff changeset
   236
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   237
################################################################################
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   238
# Build demos and samples targets
14111
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
   239
31310
481585782338 8081814: Modularize the deploy build
erikj
parents: 30742
diff changeset
   240
demos-jdk:
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   241
	+($(CD) $(JDK_TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f CompileDemos.gmk)
14111
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
   242
31310
481585782338 8081814: Modularize the deploy build
erikj
parents: 30742
diff changeset
   243
samples-jdk:
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   244
	+($(CD) $(JDK_TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f CopySamples.gmk)
14111
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
   245
31310
481585782338 8081814: Modularize the deploy build
erikj
parents: 30742
diff changeset
   246
ALL_TARGETS += demos-jdk samples-jdk
14111
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
   247
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   248
################################################################################
36506
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   249
# Jigsaw specific data and analysis targets.
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   250
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   251
generate-summary:
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   252
	+($(CD) $(JDK_TOPDIR)/make && $(MAKE) -f GenerateModuleSummary.gmk)
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   253
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   254
ALL_TARGETS += generate-summary
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   255
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   256
################################################################################
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   257
# Strip binaries targets
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   258
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   259
STRIP_MODULES := $(sort $(LIBS_MODULES) $(LAUNCHER_MODULES) $(COPY_MODULES) \
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   260
    $(GENDATA_MODULES))
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   261
STRIP_TARGETS := $(addsuffix -strip, $(STRIP_MODULES))
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   262
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   263
define DeclareStripRecipe
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   264
  $1-strip:
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   265
	+($(CD) $(SRC_ROOT)/make && $(MAKE) $(MAKE_ARGS) -f StripBinaries.gmk \
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   266
	    MODULE=$1)
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   267
endef
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   268
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   269
$(foreach m, $(STRIP_MODULES), $(eval $(call DeclareStripRecipe,$m)))
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   270
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   271
ALL_TARGETS += $(STRIP_TARGETS)
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   272
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   273
################################################################################
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   274
# Jmod targets
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   275
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   276
JMOD_MODULES := $(ALL_MODULES)
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   277
JMOD_TARGETS := $(addsuffix -jmod, $(JMOD_MODULES))
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   278
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   279
define DeclareJmodRecipe
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   280
  $1-jmod:
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   281
	+($(CD) $(SRC_ROOT)/make && $(MAKE) $(MAKE_ARGS) -f CreateJmods.gmk \
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   282
	    MODULE=$1)
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   283
endef
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   284
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   285
$(foreach m, $(JMOD_MODULES), $(eval $(call DeclareJmodRecipe,$m)))
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   286
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   287
ALL_TARGETS += $(JMOD_TARGETS)
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   288
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   289
################################################################################
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   290
# Images targets
14111
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
   291
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
   292
# 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
   293
# used to track the exact sources used to build that image.
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   294
source-tips: $(SUPPORT_OUTPUTDIR)/source_tips
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   295
$(SUPPORT_OUTPUTDIR)/source_tips: FRC
35008
ef0cd710989f 8146403: Windows build can be faster
erikj
parents: 34491
diff changeset
   296
	$(call MakeDir, $(@D))
14111
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
   297
	@$(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
   298
	@$(call GetSourceTips)
14111
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
   299
28811
65cf1b4087cf 8071767: Improve names and dependencies for image targets
ihse
parents: 28809
diff changeset
   300
BOOTCYCLE_TARGET := product-images
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   301
bootcycle-images:
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   302
	@$(ECHO) Boot cycle build step 2: Building a new JDK image using previously built image
34105
ce71d2b2f34b 8144172: Problem with bootcycle-images and sjavac
erikj
parents: 34102
diff changeset
   303
	+$(MAKE) -f $(SRC_ROOT)/make/Init.gmk PARALLEL_TARGETS=$(BOOTCYCLE_TARGET) \
ce71d2b2f34b 8144172: Problem with bootcycle-images and sjavac
erikj
parents: 34102
diff changeset
   304
	    JOBS= SPEC=$(dir $(SPEC))bootcycle-spec.gmk main
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   305
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   306
zip-security:
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   307
	+($(CD) $(SRC_ROOT)/make && $(MAKE) $(MAKE_ARGS) -f ZipSecurity.gmk)
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   308
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   309
zip-source:
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   310
	+($(CD) $(SRC_ROOT)/make && $(MAKE) $(MAKE_ARGS) -f ZipSource.gmk)
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   311
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   312
jrtfs-jar:
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   313
	+($(CD) $(SRC_ROOT)/make && $(MAKE) $(MAKE_ARGS) -f JrtfsJar.gmk)
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   314
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   315
jimages:
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   316
	+($(CD) $(SRC_ROOT)/make && $(MAKE) $(MAKE_ARGS) -f Images.gmk jimages)
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   317
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   318
profiles:
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   319
	+($(CD) $(SRC_ROOT)/make && $(MAKE) $(MAKE_ARGS) -f Images.gmk profiles)
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   320
31310
481585782338 8081814: Modularize the deploy build
erikj
parents: 30742
diff changeset
   321
mac-bundles-jdk:
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   322
	+($(CD) $(SRC_ROOT)/make && $(MAKE) $(MAKE_ARGS) -f MacBundles.gmk)
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   323
36506
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   324
ALL_TARGETS += source-tips bootcycle-images zip-security zip-source \
31310
481585782338 8081814: Modularize the deploy build
erikj
parents: 30742
diff changeset
   325
    jrtfs-jar jimages profiles mac-bundles-jdk
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   326
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   327
################################################################################
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   328
# Docs targets
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   329
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   330
docs-javadoc:
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   331
	+($(CD) $(SRC_ROOT)/make && $(MAKE) $(MAKE_ARGS) -f Javadoc.gmk docs)
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   332
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   333
docs-jvmtidoc:
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   334
	+($(CD) $(SRC_ROOT)/make && $(MAKE) $(MAKE_ARGS) -f Javadoc.gmk jvmtidocs)
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   335
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   336
ALL_TARGETS += docs-javadoc docs-jvmtidoc
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   337
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   338
################################################################################
36506
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   339
# Cross compilation support
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   340
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   341
ifeq ($(CREATE_BUILDJDK), true)
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   342
  # This target is only called by the recursive call below.
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   343
  create-buildjdk-compile-hotspot-helper: hotspot
36789
46a9456815a3 8152691: Compare script broken after Module system
erikj
parents: 36506
diff changeset
   344
  create-buildjdk-compile-modules-helper: jdk.jlink-launchers java.base-copy \
46a9456815a3 8152691: Compare script broken after Module system
erikj
parents: 36506
diff changeset
   345
      jdk.jdeps-launchers
36506
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   346
endif
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   347
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   348
create-buildjdk-copy:
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   349
	+($(CD) $(SRC_ROOT)/make && $(MAKE) $(MAKE_ARGS) -f CreateBuildJdkCopy.gmk)
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   350
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   351
create-buildjdk-compile-hotspot create-buildjdk-compile-modules:
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   352
	+($(CD) $(SRC_ROOT)/make && $(MAKE) $(MAKE_ARGS) -f Main.gmk \
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   353
	    $@-helper \
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   354
	    SPEC=$(dir $(SPEC))buildjdk-spec.gmk \
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   355
	    HOTSPOT_SPEC=$(dir $(SPEC))buildjdk-spec.gmk \
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   356
	    CREATING_BUILDJDK=true)
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   357
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   358
ALL_TARGETS += create-buildjdk-copy create-buildjdk-compile-hotspot \
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   359
    create-buildjdk-compile-modules
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   360
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   361
################################################################################
29156
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   362
# Build tests
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   363
#
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   364
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   365
prepare-test-image:
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   366
	$(MKDIR) -p $(TEST_IMAGE_DIR)
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   367
	$(ECHO) > $(TEST_IMAGE_DIR)/Readme.txt 'JDK test image'
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   368
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   369
build-test-hotspot-jtreg-native:
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   370
	+($(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
   371
	    build-test-hotspot-jtreg-native)
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   372
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   373
test-image-hotspot-jtreg-native:
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   374
	+($(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
   375
	    test-image-hotspot-jtreg-native)
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   376
29156
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   377
build-test-jdk-jtreg-native:
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   378
	+($(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
   379
	    build-test-jdk-jtreg-native)
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   380
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   381
test-image-jdk-jtreg-native:
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   382
	+($(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
   383
	    test-image-jdk-jtreg-native)
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   384
32562
b4ed30cd962e 8136378: Build test libs using properly integrated makefile
ihse
parents: 31948
diff changeset
   385
build-test-lib:
b4ed30cd962e 8136378: Build test libs using properly integrated makefile
ihse
parents: 31948
diff changeset
   386
	+($(CD) $(TOPDIR)/make/test && $(MAKE) $(MAKE_ARGS) -f BuildTestLib.gmk)
b4ed30cd962e 8136378: Build test libs using properly integrated makefile
ihse
parents: 31948
diff changeset
   387
37031
e90042bf422d 8149777: Enable enhanced failure handler for "make test"
erikj
parents: 36789
diff changeset
   388
# Builds the failure handler jtreg extension
e90042bf422d 8149777: Enable enhanced failure handler for "make test"
erikj
parents: 36789
diff changeset
   389
build-test-failure-handler:
e90042bf422d 8149777: Enable enhanced failure handler for "make test"
erikj
parents: 36789
diff changeset
   390
	+($(CD) $(TOPDIR)/make/test && $(MAKE) $(MAKE_ARGS) \
e90042bf422d 8149777: Enable enhanced failure handler for "make test"
erikj
parents: 36789
diff changeset
   391
	    -f BuildFailureHandler.gmk build)
e90042bf422d 8149777: Enable enhanced failure handler for "make test"
erikj
parents: 36789
diff changeset
   392
e90042bf422d 8149777: Enable enhanced failure handler for "make test"
erikj
parents: 36789
diff changeset
   393
# Runs the tests for the failure handler jtreg extension
e90042bf422d 8149777: Enable enhanced failure handler for "make test"
erikj
parents: 36789
diff changeset
   394
test-failure-handler:
e90042bf422d 8149777: Enable enhanced failure handler for "make test"
erikj
parents: 36789
diff changeset
   395
	+($(CD) $(TOPDIR)/make/test && $(MAKE) $(MAKE_ARGS) \
e90042bf422d 8149777: Enable enhanced failure handler for "make test"
erikj
parents: 36789
diff changeset
   396
	    -f BuildFailureHandler.gmk test)
e90042bf422d 8149777: Enable enhanced failure handler for "make test"
erikj
parents: 36789
diff changeset
   397
e90042bf422d 8149777: Enable enhanced failure handler for "make test"
erikj
parents: 36789
diff changeset
   398
# Copies the failure handler jtreg extension into the test image
e90042bf422d 8149777: Enable enhanced failure handler for "make test"
erikj
parents: 36789
diff changeset
   399
test-image-failure-handler:
e90042bf422d 8149777: Enable enhanced failure handler for "make test"
erikj
parents: 36789
diff changeset
   400
	+($(CD) $(TOPDIR)/make/test && $(MAKE) $(MAKE_ARGS) \
e90042bf422d 8149777: Enable enhanced failure handler for "make test"
erikj
parents: 36789
diff changeset
   401
	     -f BuildFailureHandler.gmk images)
e90042bf422d 8149777: Enable enhanced failure handler for "make test"
erikj
parents: 36789
diff changeset
   402
29156
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   403
ALL_TARGETS += prepare-test-image build-test-hotspot-jtreg-native \
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   404
    test-image-hotspot-jtreg-native build-test-jdk-jtreg-native \
37031
e90042bf422d 8149777: Enable enhanced failure handler for "make test"
erikj
parents: 36789
diff changeset
   405
    test-image-jdk-jtreg-native build-test-lib build-test-failure-handler \
e90042bf422d 8149777: Enable enhanced failure handler for "make test"
erikj
parents: 36789
diff changeset
   406
    test-failure-handler test-image-failure-handler
29156
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   407
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   408
################################################################################
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   409
# Run tests
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   410
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   411
# Run tests specified by $(TEST), or the default test set.
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   412
test:
29156
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   413
	$(call RunTests, $(TEST))
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   414
33566
fc0dc6b3c02d 8139271: Add top-level Makefile target to run hotspots jtreg tests
ehelin
parents: 33565
diff changeset
   415
test-hotspot-jtreg:
fc0dc6b3c02d 8139271: Add top-level Makefile target to run hotspots jtreg tests
ehelin
parents: 33565
diff changeset
   416
	$(call RunTests, "hotspot_all")
fc0dc6b3c02d 8139271: Add top-level Makefile target to run hotspots jtreg tests
ehelin
parents: 33565
diff changeset
   417
29156
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   418
test-hotspot-jtreg-native:
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   419
	$(call RunTests, "hotspot_native_sanity")
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   420
33565
ac22b6bd7ecb 8139256: Add Makefile target to run internal VM tests
ehelin
parents: 33564
diff changeset
   421
test-hotspot-internal:
ac22b6bd7ecb 8139256: Add Makefile target to run internal VM tests
ehelin
parents: 33564
diff changeset
   422
	$(call RunTests, "hotspot_internal")
ac22b6bd7ecb 8139256: Add Makefile target to run internal VM tests
ehelin
parents: 33564
diff changeset
   423
29156
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   424
test-jdk-jtreg-native:
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   425
	$(call RunTests, "jdk_native_sanity")
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   426
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   427
test-make:
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   428
	($(CD) $(SRC_ROOT)/test/make && $(MAKE) $(MAKE_ARGS) -f TestMake.gmk $(TEST_TARGET))
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   429
33566
fc0dc6b3c02d 8139271: Add top-level Makefile target to run hotspots jtreg tests
ehelin
parents: 33565
diff changeset
   430
ALL_TARGETS += test test-hotspot-jtreg test-hotspot-jtreg-native \
fc0dc6b3c02d 8139271: Add top-level Makefile target to run hotspots jtreg tests
ehelin
parents: 33565
diff changeset
   431
    test-hotspot-internal test-jdk-jtreg-native test-make
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   432
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   433
################################################################################
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   434
# Install targets
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   435
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   436
install:
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   437
	+($(CD) $(SRC_ROOT)/make && $(MAKE) $(MAKE_ARGS) -f Install.gmk)
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   438
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   439
ALL_TARGETS += install
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   440
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   441
################################################################################
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   442
#
27595
cff167b3bfa2 8065914: Various improvements and cleanup of build system
ihse
parents: 27329
diff changeset
   443
# Dependency declarations between targets.
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   444
#
27595
cff167b3bfa2 8065914: Various improvements and cleanup of build system
ihse
parents: 27329
diff changeset
   445
# These are declared in two groups. First all dependencies between targets that
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   446
# have recipes above as these dependencies may be disabled. Then the aggregator
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   447
# targets that do not have recipes of their own, which will never have their
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   448
# dependencies disabled.
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   449
#
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   450
################################################################################
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   451
# Targets with recipes above
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   452
27595
cff167b3bfa2 8065914: Various improvements and cleanup of build system
ihse
parents: 27329
diff changeset
   453
# If running an *-only target, parallel execution and dependencies between
cff167b3bfa2 8065914: Various improvements and cleanup of build system
ihse
parents: 27329
diff changeset
   454
# 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
   455
# 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
   456
# all prerequisites are fulfilled.
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   457
ifneq ($(findstring -only, $(MAKECMDGOALS)), )
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   458
  .NOTPARALLEL:
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   459
else
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   460
  $(LANGTOOLS_GENSRC_TARGETS): buildtools-langtools
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   461
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   462
  interim-langtools: $(LANGTOOLS_GENSRC_TARGETS)
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   463
31948
761ddfee3ef2 8129881: JDK-8008577 breaks Nashorn test
naoto
parents: 31310
diff changeset
   464
  buildtools-jdk: interim-langtools interim-cldrconverter
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   465
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   466
  $(CORBA_GENSRC_TARGETS): interim-langtools
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   467
33045
00f484891bcf 8136421: JEP 243: Java-Level JVM Compiler Interface
twisti
parents: 32806
diff changeset
   468
  $(HOTSPOT_GENSRC_TARGETS): interim-langtools
00f484891bcf 8136421: JEP 243: Java-Level JVM Compiler Interface
twisti
parents: 32806
diff changeset
   469
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   470
  $(JDK_GENSRC_TARGETS): interim-langtools buildtools-jdk
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   471
36506
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   472
  $(GENSRC_MODULEINFO_TARGETS): buildtools-jdk
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   473
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   474
  $(GENDATA_TARGETS): interim-langtools buildtools-jdk
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   475
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   476
  interim-rmic: interim-langtools
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   477
32806
e0a88439f971 8137088: Drop building of interim_java.corba
erikj
parents: 32562
diff changeset
   478
  $(RMIC_TARGETS): interim-langtools interim-rmic
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   479
31310
481585782338 8081814: Modularize the deploy build
erikj
parents: 30742
diff changeset
   480
  $(JAVA_TARGETS): interim-langtools
481585782338 8081814: Modularize the deploy build
erikj
parents: 30742
diff changeset
   481
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   482
  import-hotspot: hotspot
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   483
33562
c76b2fa11486 8136556: Add the ability to perform static builds of MacOSX x64 binaries
bobv
parents: 32806
diff changeset
   484
  generate-exported-symbols: java.base-libs jdk.jdwp.agent-libs
c76b2fa11486 8136556: Add the ability to perform static builds of MacOSX x64 binaries
bobv
parents: 32806
diff changeset
   485
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   486
  $(LIBS_TARGETS): import-hotspot
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   487
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   488
  $(LAUNCHER_TARGETS): java.base-libs
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   489
33562
c76b2fa11486 8136556: Add the ability to perform static builds of MacOSX x64 binaries
bobv
parents: 32806
diff changeset
   490
  ifeq ($(STATIC_BUILD), true)
c76b2fa11486 8136556: Add the ability to perform static builds of MacOSX x64 binaries
bobv
parents: 32806
diff changeset
   491
    $(LAUNCHER_TARGETS): generate-exported-symbols
c76b2fa11486 8136556: Add the ability to perform static builds of MacOSX x64 binaries
bobv
parents: 32806
diff changeset
   492
  endif
c76b2fa11486 8136556: Add the ability to perform static builds of MacOSX x64 binaries
bobv
parents: 32806
diff changeset
   493
26115
7a9dc384f3c8 8055188: General cleanup of minor issues from source restructure
erikj
parents: 25883
diff changeset
   494
  # 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
   495
  # 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
   496
  # aren't built until after libjava and libjvm are available to link to.
31310
481585782338 8081814: Modularize the deploy build
erikj
parents: 30742
diff changeset
   497
  demos-jdk: $(JAVA_TARGETS)
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   498
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   499
  # Declare dependency from <module>-java to <module>-gensrc
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   500
  $(foreach m, $(GENSRC_MODULES), $(eval $m-java: $m-gensrc))
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   501
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   502
  # Declare dependencies between java modules
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   503
  $(foreach m, $(JAVA_MODULES), \
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   504
      $(eval $m-java: $(addsuffix -java, $(filter $(JAVA_MODULES), \
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   505
      $(call FindDepsForModule,$m)))))
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   506
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   507
  # Declare dependencies between <module>-rmic to <module>-java
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   508
  $(foreach m, $(RMIC_MODULES), $(eval $m-rmic: $m-java))
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   509
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   510
  # Declare dependencies from <module>-lib to <module>-java
36506
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   511
  # Skip modules that do not have java source. When creating a BUILD_JDK, the
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   512
  # java compilation has already been done by the normal build and copied in.
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   513
  ifneq ($(CREATING_BUILDJDK), true)
28899
ceb890ca5f39 8073166: Unable to successfully build the merge of jdk9/hs with jdk9/dev
erikj
parents: 28811
diff changeset
   514
  $(foreach m, $(filter $(JAVA_MODULES), $(LIBS_MODULES)), $(eval $m-libs: $m-java))
36506
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   515
  endif
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   516
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   517
  # Declare dependencies from all other <module>-lib to java.base-lib
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   518
  $(foreach t, $(filter-out java.base-libs, $(LIBS_TARGETS)), \
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   519
      $(eval $t: java.base-libs))
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   520
29851
81a61a04e2fe 8076182: Open Source Java Access Bridge - Create Patch for JEP C127 8055831
ptbrunet
parents: 29305
diff changeset
   521
  # jdk.accessibility depends on java.desktop
81a61a04e2fe 8076182: Open Source Java Access Bridge - Create Patch for JEP C127 8055831
ptbrunet
parents: 29305
diff changeset
   522
  jdk.accessibility-libs: java.desktop-libs
81a61a04e2fe 8076182: Open Source Java Access Bridge - Create Patch for JEP C127 8055831
ptbrunet
parents: 29305
diff changeset
   523
27595
cff167b3bfa2 8065914: Various improvements and cleanup of build system
ihse
parents: 27329
diff changeset
   524
  # This dependency needs to be explicitly declared. jdk.jdi-gensrc generates a
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   525
  # 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
   526
  # virtual target.
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   527
  jdk.jdwp.agent-libs: jdk.jdwp.agent-gensrc
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   528
26672
528d9d6614e5 8047933: Race between jdk/make/scripts/genExceptions.sh and com.sun.tools.javadoc.Main
erikj
parents: 26398
diff changeset
   529
  # 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
   530
  # in javadoc.
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   531
  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
   532
35028
d1a03d533057 8146660: Resolve merge issue in resulting from sun.misc.VM move to jdk.internal.misc
amurillo
parents: 34491
diff changeset
   533
  # The annotation processing for jdk.vm.ci needs java.base classes from the
d1a03d533057 8146660: Resolve merge issue in resulting from sun.misc.VM move to jdk.internal.misc
amurillo
parents: 34491
diff changeset
   534
  # current JDK.
35747
aeaa6d0101a8 8149647: Incremental enhancements from build-infra
ihse
parents: 35030
diff changeset
   535
  jdk.vm.ci-gensrc-hotspot: java.base-java
35028
d1a03d533057 8146660: Resolve merge issue in resulting from sun.misc.VM move to jdk.internal.misc
amurillo
parents: 34491
diff changeset
   536
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   537
  # Explicitly add dependencies for special targets
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   538
  java.base-java: unpack-sec
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   539
33045
00f484891bcf 8136421: JEP 243: Java-Level JVM Compiler Interface
twisti
parents: 32806
diff changeset
   540
  # The copy target copies files generated by gensrc
00f484891bcf 8136421: JEP 243: Java-Level JVM Compiler Interface
twisti
parents: 32806
diff changeset
   541
  java.base-copy-hotspot: java.base-gensrc-hotspot
00f484891bcf 8136421: JEP 243: Java-Level JVM Compiler Interface
twisti
parents: 32806
diff changeset
   542
30742
679fecf08dd2 8074432: Move jdeps and javap to jdk.jdeps module
mchung
parents: 29854
diff changeset
   543
  jdk.jdeps-gendata: java rmic
26132
11df1233e1e8 8055856: checkdeps build target doesn't work for cross-compilation builds
mchung
parents: 26128
diff changeset
   544
36506
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   545
  # Declare dependencies from <module>-strip to libs, launchers, gendata and copy
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   546
  $(foreach m, $(LIBS_MODULES), $(eval $m-strip: $m-libs))
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   547
  $(foreach m, $(LAUNCHER_MODULES), $(eval $m-strip: $m-launchers))
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   548
  $(foreach m, $(GENDATA_MODULES), $(eval $m-strip: $m-gendata))
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   549
  $(foreach m, $(COPY_MODULES), $(eval $m-strip: $m-copy))
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   550
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   551
  # Declare dependencies between jmod targets
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   552
  $(foreach m, $(JMOD_MODULES), \
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   553
      $(eval $m-jmod: $(addsuffix -jmod, $(call FindDepsForModule,$m))))
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   554
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   555
  # Declare dependencies from <module>-jmod to all other module targets
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   556
  $(foreach m, $(STRIP_MODULES), $(eval $m-jmod: $m-strip))
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   557
  $(foreach m, $(JAVA_MODULES), $(eval $m-jmod: $m-java))
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   558
  $(foreach m, $(GENDATA_MODULES), $(eval $m-jmod: $m-gendata))
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   559
  $(foreach m, $(RMIC_MODULES), $(eval $m-jmod: $m-rmic))
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   560
  $(foreach m, $(LIBS_MODULES), $(eval $m-jmod: $m-libs))
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   561
  $(foreach m, $(LAUNCHER_MODULES), $(eval $m-jmod: $m-launchers))
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   562
  $(foreach m, $(COPY_MODULES), $(eval $m-jmod: $m-copy))
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   563
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   564
  # Jmods cannot be created until we have the jlink tool ready to run, which requires
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   565
  # all java modules to be compiled and jdk.jlink-launchers.
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   566
  $(JMOD_TARGETS): java java.base-libs jdk.jlink-launchers
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   567
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   568
  ifeq ($(CREATE_BUILDJDK), true)
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   569
    $(JMOD_TARGETS): create-buildjdk
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   570
  endif
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   571
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   572
  zip-security: java.base-java java.security.jgss-java java.security.jgss-libs \
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   573
      $(filter jdk.crypto%, $(JAVA_TARGETS))
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   574
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   575
  zip-source: gensrc rmic
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   576
36506
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   577
  jrtfs-jar: interim-langtools
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   578
36506
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   579
  jimages: jmods zip-source source-tips demos samples jrtfs-jar
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   580
36506
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   581
  profiles: jmods zip-source source-tips jrtfs-jar
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   582
31310
481585782338 8081814: Modularize the deploy build
erikj
parents: 30742
diff changeset
   583
  mac-bundles-jdk: jimages
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   584
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   585
  bootcycle-images: jimages
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   586
36506
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   587
  docs-javadoc: $(GENSRC_TARGETS) rmic
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   588
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   589
  docs-jvmtidoc: hotspot
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   590
29156
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   591
  test: jimages test-image
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   592
36506
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   593
  create-buildjdk-copy: jdk.jlink-java java.base-gendata
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   594
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   595
  create-buildjdk-compile-modules: create-buildjdk-copy create-buildjdk-compile-hotspot
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   596
28600
09dd1740f176 8069261: Create make dependencies on make variable values
erikj
parents: 28285
diff changeset
   597
  test-make: clean-test-make
09dd1740f176 8069261: Create make dependencies on make variable values
erikj
parents: 28285
diff changeset
   598
33436
c6d79360ecff 8141051: Build test libs -source/-target 9
erikj
parents: 33045
diff changeset
   599
  build-test-lib: java
c6d79360ecff 8141051: Build test libs -source/-target 9
erikj
parents: 33045
diff changeset
   600
37031
e90042bf422d 8149777: Enable enhanced failure handler for "make test"
erikj
parents: 36789
diff changeset
   601
  build-test-failure-handler: interim-langtools
e90042bf422d 8149777: Enable enhanced failure handler for "make test"
erikj
parents: 36789
diff changeset
   602
e90042bf422d 8149777: Enable enhanced failure handler for "make test"
erikj
parents: 36789
diff changeset
   603
  test-failure-handler: build-test-failure-handler
e90042bf422d 8149777: Enable enhanced failure handler for "make test"
erikj
parents: 36789
diff changeset
   604
e90042bf422d 8149777: Enable enhanced failure handler for "make test"
erikj
parents: 36789
diff changeset
   605
  test-image-failure-handler: build-test-failure-handler
e90042bf422d 8149777: Enable enhanced failure handler for "make test"
erikj
parents: 36789
diff changeset
   606
29159
7fed45c53518 8074072: Race condition in build since JDK-8072842 can cause failed builds on Solaris
erikj
parents: 29156
diff changeset
   607
  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
   608
7fed45c53518 8074072: Race condition in build since JDK-8072842 can cause failed builds on Solaris
erikj
parents: 29156
diff changeset
   609
  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
   610
29156
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   611
  test-image-hotspot-jtreg-native: build-test-hotspot-jtreg-native
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   612
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   613
  test-image-jdk-jtreg-native: build-test-jdk-jtreg-native
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   614
33565
ac22b6bd7ecb 8139256: Add Makefile target to run internal VM tests
ehelin
parents: 33564
diff changeset
   615
  test-hotspot-internal: exploded-image
ac22b6bd7ecb 8139256: Add Makefile target to run internal VM tests
ehelin
parents: 33564
diff changeset
   616
33566
fc0dc6b3c02d 8139271: Add top-level Makefile target to run hotspots jtreg tests
ehelin
parents: 33565
diff changeset
   617
  test-hotspot-jtreg: jimages test-image
fc0dc6b3c02d 8139271: Add top-level Makefile target to run hotspots jtreg tests
ehelin
parents: 33565
diff changeset
   618
33722
f82c74b7f2db 8143036: Make install target does not depend on images
erikj
parents: 33571
diff changeset
   619
  install: product-images
f82c74b7f2db 8143036: Make install target does not depend on images
erikj
parents: 33571
diff changeset
   620
36506
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   621
  generate-summary: jmods
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   622
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   623
endif
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
# Virtual targets without recipes
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   627
32806
e0a88439f971 8137088: Drop building of interim_java.corba
erikj
parents: 32562
diff changeset
   628
buildtools: buildtools-langtools interim-langtools interim-rmic \
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   629
    buildtools-jdk
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   630
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   631
gensrc: $(GENSRC_TARGETS)
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   632
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   633
gendata: $(GENDATA_TARGETS)
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   634
36506
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   635
copy: $(ALL_COPY_TARGETS)
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   636
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   637
java: $(JAVA_TARGETS)
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   638
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   639
rmic: $(RMIC_TARGETS)
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   640
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   641
libs: $(LIBS_TARGETS)
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   642
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   643
launchers: $(LAUNCHER_TARGETS)
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   644
36506
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   645
jmods: $(JMOD_TARGETS)
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   646
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   647
strip-binaries: $(STRIP_TARGETS)
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   648
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   649
# Explicitly declare dependency for virtual target jdk.jdwp.agent-gensrc which
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   650
# is actually handled by jdk.jdi-gensrc
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   651
jdk.jdwp.agent-gensrc: jdk.jdi-gensrc
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   652
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   653
# Declare dependencies from <module> to all the individual targets specific
34102
c0a98357f847 8143141: Bring in minor build changes from the jigsaw/jake forest
erikj
parents: 33722
diff changeset
   654
# to that module <module>-*, that are needed for the exploded image.
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   655
$(foreach m, $(GENSRC_MODULES), $(eval $m: $m-gensrc))
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   656
$(foreach m, $(JAVA_MODULES), $(eval $m: $m-java))
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   657
$(foreach m, $(GENDATA_MODULES), $(eval $m: $m-gendata))
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   658
$(foreach m, $(RMIC_MODULES), $(eval $m: $m-rmic))
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   659
$(foreach m, $(LIBS_MODULES), $(eval $m: $m-libs))
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   660
$(foreach m, $(LAUNCHER_MODULES), $(eval $m: $m-launchers))
36506
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   661
$(foreach m, $(ALL_COPY_MODULES), $(eval $m: $m-copy))
31310
481585782338 8081814: Modularize the deploy build
erikj
parents: 30742
diff changeset
   662
demos: demos-jdk
481585782338 8081814: Modularize the deploy build
erikj
parents: 30742
diff changeset
   663
481585782338 8081814: Modularize the deploy build
erikj
parents: 30742
diff changeset
   664
samples: samples-jdk
481585782338 8081814: Modularize the deploy build
erikj
parents: 30742
diff changeset
   665
28811
65cf1b4087cf 8071767: Improve names and dependencies for image targets
ihse
parents: 28809
diff changeset
   666
# The "exploded image" is a locally runnable JDK in $(BUILD_OUTPUT)/jdk.
34102
c0a98357f847 8143141: Bring in minor build changes from the jigsaw/jake forest
erikj
parents: 33722
diff changeset
   667
exploded-image: $(ALL_MODULES)
28811
65cf1b4087cf 8071767: Improve names and dependencies for image targets
ihse
parents: 28809
diff changeset
   668
36506
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   669
create-buildjdk: create-buildjdk-compile-modules create-buildjdk-copy \
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   670
    create-buildjdk-compile-hotspot
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   671
31310
481585782338 8081814: Modularize the deploy build
erikj
parents: 30742
diff changeset
   672
mac-bundles: mac-bundles-jdk
481585782338 8081814: Modularize the deploy build
erikj
parents: 30742
diff changeset
   673
29156
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   674
# The $(BUILD_OUTPUT)/images directory contain the resulting deliverables,
28811
65cf1b4087cf 8071767: Improve names and dependencies for image targets
ihse
parents: 28809
diff changeset
   675
# 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
   676
28811
65cf1b4087cf 8071767: Improve names and dependencies for image targets
ihse
parents: 28809
diff changeset
   677
# 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
   678
# (and possibly other, more specific versions)
36506
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   679
product-images: jimages demos samples zip-security exploded-image
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   680
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   681
# When cross compiling and building a partial BUILDJDK for the build host,
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   682
# the summary generation cannot be run.
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   683
ifneq ($(CREATE_BUILDJDK), true)
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   684
  product-images: generate-summary
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   685
endif
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   686
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   687
ifeq ($(OPENJDK_TARGET_OS), macosx)
28811
65cf1b4087cf 8071767: Improve names and dependencies for image targets
ihse
parents: 28809
diff changeset
   688
  product-images: mac-bundles
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   689
endif
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   690
28811
65cf1b4087cf 8071767: Improve names and dependencies for image targets
ihse
parents: 28809
diff changeset
   691
# This target builds the documentation image
65cf1b4087cf 8071767: Improve names and dependencies for image targets
ihse
parents: 28809
diff changeset
   692
docs-image: docs-javadoc docs-jvmtidoc
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   693
28811
65cf1b4087cf 8071767: Improve names and dependencies for image targets
ihse
parents: 28809
diff changeset
   694
# This target builds the test image
29156
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   695
test-image: prepare-test-image test-image-hotspot-jtreg-native \
37031
e90042bf422d 8149777: Enable enhanced failure handler for "make test"
erikj
parents: 36789
diff changeset
   696
    test-image-jdk-jtreg-native test-image-failure-handler
28285
3b8c4ccbb332 8067759: Create initial test bundle framework
ihse
parents: 28011
diff changeset
   697
28811
65cf1b4087cf 8071767: Improve names and dependencies for image targets
ihse
parents: 28809
diff changeset
   698
# 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
   699
all-images: product-images test-image docs-image
65cf1b4087cf 8071767: Improve names and dependencies for image targets
ihse
parents: 28809
diff changeset
   700
36506
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   701
ALL_TARGETS += buildtools gensrc gendata copy java rmic libs launchers jmods \
34102
c0a98357f847 8143141: Bring in minor build changes from the jigsaw/jake forest
erikj
parents: 33722
diff changeset
   702
    jdk.jdwp.agent-gensrc $(ALL_MODULES) demos samples exploded-image \
36506
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   703
    create-buildjdk mac-bundles product-images docs-image test-image all-images
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   704
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   705
################################################################################
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   706
28811
65cf1b4087cf 8071767: Improve names and dependencies for image targets
ihse
parents: 28809
diff changeset
   707
# Traditional targets typically run by users.
65cf1b4087cf 8071767: Improve names and dependencies for image targets
ihse
parents: 28809
diff changeset
   708
# 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
   709
# "modern" naming scheme.
34491
307c28cb36c2 8136782: Introduce a build/configure wrapper
erikj
parents: 34117
diff changeset
   710
default: $(DEFAULT_MAKE_TARGET)
28811
65cf1b4087cf 8071767: Improve names and dependencies for image targets
ihse
parents: 28809
diff changeset
   711
jdk: exploded-image
65cf1b4087cf 8071767: Improve names and dependencies for image targets
ihse
parents: 28809
diff changeset
   712
images: product-images
65cf1b4087cf 8071767: Improve names and dependencies for image targets
ihse
parents: 28809
diff changeset
   713
docs: docs-image
65cf1b4087cf 8071767: Improve names and dependencies for image targets
ihse
parents: 28809
diff changeset
   714
all: all-images
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   715
28811
65cf1b4087cf 8071767: Improve names and dependencies for image targets
ihse
parents: 28809
diff changeset
   716
ALL_TARGETS += default jdk images docs all
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   717
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   718
################################################################################
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   719
################################################################################
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   720
#
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   721
# Clean targets
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   722
#
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   723
################################################################################
27595
cff167b3bfa2 8065914: Various improvements and cleanup of build system
ihse
parents: 27329
diff changeset
   724
# 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
   725
# file.
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   726
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   727
CLEAN_DIRS += hotspot jdk bootcycle-build test buildtools support \
36506
17612cee3530 8142968: Module System implementation
alanb
parents: 36284
diff changeset
   728
    images make-support test-make bundles buildjdk
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   729
CLEAN_DIR_TARGETS := $(addprefix clean-, $(CLEAN_DIRS))
33437
1cf150337073 8141261: Clean up building of demos
ihse
parents: 33436
diff changeset
   730
CLEAN_SUPPORT_DIRS += demos
1cf150337073 8141261: Clean up building of demos
ihse
parents: 33436
diff changeset
   731
CLEAN_SUPPORT_DIR_TARGETS := $(addprefix clean-, $(CLEAN_SUPPORT_DIRS))
32562
b4ed30cd962e 8136378: Build test libs using properly integrated makefile
ihse
parents: 31948
diff changeset
   732
CLEAN_TESTS += hotspot-jtreg-native jdk-jtreg-native lib
29156
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   733
CLEAN_TEST_TARGETS += $(addprefix clean-test-, $(CLEAN_TESTS))
29790
79641c886929 8073634: Improve clean targets
erikj
parents: 29788
diff changeset
   734
CLEAN_PHASES := gensrc java native include docs
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   735
CLEAN_PHASE_TARGETS := $(addprefix clean-, $(CLEAN_PHASES))
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   736
CLEAN_MODULE_TARGETS := $(addprefix clean-, $(ALL_MODULES))
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   737
# Construct targets of the form clean-$module-$phase
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   738
CLEAN_MODULE_PHASE_TARGETS := $(addprefix clean-, $(foreach m, $(ALL_MODULES), \
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   739
    $(addprefix $m-, $(CLEAN_PHASES))))
14111
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
   740
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
   741
# Remove everything, except the output from configure.
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   742
clean: $(CLEAN_DIR_TARGETS)
29790
79641c886929 8073634: Improve clean targets
erikj
parents: 29788
diff changeset
   743
	($(CD) $(OUTPUT_ROOT) && $(RM) -r build*.log*)
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   744
	$(ECHO) Cleaned all build artifacts.
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   745
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   746
$(CLEAN_DIR_TARGETS):
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   747
	$(call CleanDir,$(patsubst clean-%, %, $@))
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   748
33437
1cf150337073 8141261: Clean up building of demos
ihse
parents: 33436
diff changeset
   749
$(CLEAN_SUPPORT_DIR_TARGETS):
1cf150337073 8141261: Clean up building of demos
ihse
parents: 33436
diff changeset
   750
	$(call CleanSupportDir,$(patsubst clean-%, %, $@))
1cf150337073 8141261: Clean up building of demos
ihse
parents: 33436
diff changeset
   751
29156
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   752
$(CLEAN_TEST_TARGETS):
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   753
	$(call CleanTest,$(patsubst clean-test-%, %, $@))
bd932374081c 8072842: Add support for building native JTReg tests
ihse
parents: 28899
diff changeset
   754
27560
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   755
$(CLEAN_PHASE_TARGETS):
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   756
	$(call Clean-$(patsubst clean-%,%, $@))
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   757
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   758
$(CLEAN_MODULE_TARGETS):
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   759
	$(call CleanModule,$(patsubst clean-%, %, $@))
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   760
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   761
$(CLEAN_MODULE_PHASE_TARGETS):
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   762
	$(call Clean-$(word 3, $(subst -,$(SPACE),$@)), \
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   763
	    $(word 2, $(subst -,$(SPACE),$@)))
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   764
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   765
# When removing the support dir, we must also remove jdk. Building classes has
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   766
# the side effect of generating native headers. The headers end up in support
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   767
# while classes and touch files end up in jdk.
adc258b13e2c 8049367: Modular Run-Time Images
chegar
parents: 27329
diff changeset
   768
clean-support: clean-jdk
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   769
29790
79641c886929 8073634: Improve clean targets
erikj
parents: 29788
diff changeset
   770
# Remove everything, including configure configuration. If the output
79641c886929 8073634: Improve clean targets
erikj
parents: 29788
diff changeset
   771
# directory was created by configure and now becomes empty, remove it as well.
14111
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
   772
dist-clean: clean
29790
79641c886929 8073634: Improve clean targets
erikj
parents: 29788
diff changeset
   773
	($(CD) $(OUTPUT_ROOT) && \
79641c886929 8073634: Improve clean targets
erikj
parents: 29788
diff changeset
   774
	    $(RM) -r *spec.gmk $(CONFIGURESUPPORT_OUTPUTDIR) Makefile compare.sh ide)
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   775
	$(if $(filter $(CONF_NAME),$(notdir $(OUTPUT_ROOT))), \
20363
fa7663fc5d50 8001931: The new build system whitespace cleanup
ihse
parents: 20047
diff changeset
   776
	  if test "x`$(LS) $(OUTPUT_ROOT)`" != x; then \
fa7663fc5d50 8001931: The new build system whitespace cleanup
ihse
parents: 20047
diff changeset
   777
	    $(ECHO) "Warning: Not removing non-empty configuration directory for '$(CONF_NAME)'" ; \
fa7663fc5d50 8001931: The new build system whitespace cleanup
ihse
parents: 20047
diff changeset
   778
	  else \
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   779
	    ($(CD) $(SRC_ROOT) && $(ECHO) "Removing configuration directory for '$(CONF_NAME)'" \
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   780
	        && $(RM) -r $(OUTPUT_ROOT)) \
20363
fa7663fc5d50 8001931: The new build system whitespace cleanup
ihse
parents: 20047
diff changeset
   781
	  fi \
fa7663fc5d50 8001931: The new build system whitespace cleanup
ihse
parents: 20047
diff changeset
   782
	)
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   783
	$(ECHO) Cleaned everything, you will have to re-run configure.
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   784
33437
1cf150337073 8141261: Clean up building of demos
ihse
parents: 33436
diff changeset
   785
ALL_TARGETS += clean dist-clean $(CLEAN_DIR_TARGETS) $(CLEAN_SUPPORT_DIR_TARGETS) \
1cf150337073 8141261: Clean up building of demos
ihse
parents: 33436
diff changeset
   786
    $(CLEAN_TEST_TARGETS) $(CLEAN_PHASE_TARGETS) $(CLEAN_MODULE_TARGETS) \
1cf150337073 8141261: Clean up building of demos
ihse
parents: 33436
diff changeset
   787
    $(CLEAN_MODULE_PHASE_TARGETS)
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   788
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   789
################################################################################
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   790
# Declare *-only targets for each normal target
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   791
$(foreach t, $(ALL_TARGETS), $(eval $(t)-only: $(t)))
14111
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
   792
29662
78c47f0002c3 8076060: Improve make bootstrap process
ihse
parents: 29305
diff changeset
   793
ALL_TARGETS += $(addsuffix -only, $(filter-out dist-clean clean%, $(ALL_TARGETS)))
78c47f0002c3 8076060: Improve make bootstrap process
ihse
parents: 29305
diff changeset
   794
78c47f0002c3 8076060: Improve make bootstrap process
ihse
parents: 29305
diff changeset
   795
################################################################################
78c47f0002c3 8076060: Improve make bootstrap process
ihse
parents: 29305
diff changeset
   796
78c47f0002c3 8076060: Improve make bootstrap process
ihse
parents: 29305
diff changeset
   797
# Include JPRT targets
78c47f0002c3 8076060: Improve make bootstrap process
ihse
parents: 29305
diff changeset
   798
include $(SRC_ROOT)/make/Jprt.gmk
78c47f0002c3 8076060: Improve make bootstrap process
ihse
parents: 29305
diff changeset
   799
78c47f0002c3 8076060: Improve make bootstrap process
ihse
parents: 29305
diff changeset
   800
################################################################################
78c47f0002c3 8076060: Improve make bootstrap process
ihse
parents: 29305
diff changeset
   801
29788
b581a3d9db41 8076465: New Init.gmk needs improvements
ihse
parents: 29663
diff changeset
   802
# The following targets are intentionally not added to ALL_TARGETS since they
b581a3d9db41 8076465: New Init.gmk needs improvements
ihse
parents: 29663
diff changeset
   803
# are internal only, to support Init.gmk.
b581a3d9db41 8076465: New Init.gmk needs improvements
ihse
parents: 29663
diff changeset
   804
29662
78c47f0002c3 8076060: Improve make bootstrap process
ihse
parents: 29305
diff changeset
   805
print-targets:
78c47f0002c3 8076060: Improve make bootstrap process
ihse
parents: 29305
diff changeset
   806
	  @$(ECHO) $(sort $(ALL_TARGETS))
78c47f0002c3 8076060: Improve make bootstrap process
ihse
parents: 29305
diff changeset
   807
78c47f0002c3 8076060: Improve make bootstrap process
ihse
parents: 29305
diff changeset
   808
print-modules:
78c47f0002c3 8076060: Improve make bootstrap process
ihse
parents: 29305
diff changeset
   809
	  @$(ECHO) $(sort $(ALL_MODULES))
78c47f0002c3 8076060: Improve make bootstrap process
ihse
parents: 29305
diff changeset
   810
29788
b581a3d9db41 8076465: New Init.gmk needs improvements
ihse
parents: 29663
diff changeset
   811
create-main-targets-include:
35008
ef0cd710989f 8146403: Windows build can be faster
erikj
parents: 34491
diff changeset
   812
	  $(call LogInfo, Generating main target list)
29788
b581a3d9db41 8076465: New Init.gmk needs improvements
ihse
parents: 29663
diff changeset
   813
	  @$(ECHO) ALL_MAIN_TARGETS := $(sort $(ALL_TARGETS)) > \
b581a3d9db41 8076465: New Init.gmk needs improvements
ihse
parents: 29663
diff changeset
   814
	      $(MAKESUPPORT_OUTPUTDIR)/main-targets.gmk
25854
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   815
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   816
################################################################################
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   817
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   818
.PHONY: $(ALL_TARGETS)
98ce0879ab4c 8054834: Modular Source Code
chegar
parents: 22721
diff changeset
   819
14111
2a82ecb35fc7 8000992: Update new build-infra makefiles
ohair
parents:
diff changeset
   820
FRC: # Force target