8244757: Introduce SetupTarget in Main.gmk
Reviewed-by: erikj
This commit is contained in:
parent
e722efa65c
commit
e686fb6bf6
635
make/Main.gmk
635
make/Main.gmk
@ -38,13 +38,18 @@ endif
|
||||
# Now load the spec
|
||||
include $(SPEC)
|
||||
|
||||
include $(TOPDIR)/make/MainSupport.gmk
|
||||
|
||||
# Load the vital tools for all the makefiles.
|
||||
include $(TOPDIR)/make/common/MakeBase.gmk
|
||||
include $(TOPDIR)/make/common/Modules.gmk
|
||||
include $(TOPDIR)/make/common/FindTests.gmk
|
||||
|
||||
include $(TOPDIR)/make/MainSupport.gmk
|
||||
|
||||
# Are we requested to ignore dependencies?
|
||||
ifneq ($(findstring -only, $(MAKECMDGOALS)), )
|
||||
DEPS := none
|
||||
endif
|
||||
|
||||
# Declare ALL_TARGETS as an immediate variable. This variable is a list of all
|
||||
# valid top level targets. It's used to declare them all as PHONY and to
|
||||
# generate the -only targets.
|
||||
@ -66,36 +71,40 @@ ALL_MODULES := $(call FindAllModules)
|
||||
################################################################################
|
||||
# Interim/build tools targets, compiling tools used during the build
|
||||
|
||||
buildtools-langtools:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f ToolsLangtools.gmk)
|
||||
$(eval $(call SetupTarget, buildtools-langtools, \
|
||||
MAKEFILE := ToolsLangtools, \
|
||||
))
|
||||
|
||||
interim-langtools:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f CompileInterimLangtools.gmk)
|
||||
$(eval $(call SetupTarget, interim-langtools, \
|
||||
MAKEFILE := CompileInterimLangtools, \
|
||||
))
|
||||
|
||||
interim-tzdb:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f CopyInterimTZDB.gmk)
|
||||
$(eval $(call SetupTarget, interim-tzdb, \
|
||||
MAKEFILE := CopyInterimTZDB, \
|
||||
))
|
||||
|
||||
$(eval $(call SetupTarget, buildtools-jdk, \
|
||||
MAKEFILE := CompileToolsJdk, \
|
||||
DEPS := interim-langtools interim-tzdb, \
|
||||
))
|
||||
|
||||
buildtools-jdk:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f CompileToolsJdk.gmk)
|
||||
$(eval $(call SetupTarget, buildtools-modules, \
|
||||
MAKEFILE := CompileModuleTools, \
|
||||
DEPS := exploded-image-base, \
|
||||
))
|
||||
|
||||
buildtools-modules:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f CompileModuleTools.gmk)
|
||||
|
||||
buildtools-hotspot:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f CompileToolsHotspot.gmk)
|
||||
|
||||
ALL_TARGETS += buildtools-langtools interim-langtools \
|
||||
interim-tzdb buildtools-jdk buildtools-modules \
|
||||
buildtools-hotspot
|
||||
$(eval $(call SetupTarget, buildtools-hotspot, \
|
||||
MAKEFILE := CompileToolsHotspot, \
|
||||
DEPS := interim-langtools, \
|
||||
))
|
||||
|
||||
################################################################################
|
||||
# Special targets for certain modules
|
||||
|
||||
generate-exported-symbols:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f BuildStatic.gmk)
|
||||
|
||||
ALL_TARGETS += generate-exported-symbols
|
||||
$(eval $(call SetupTarget, generate-exported-symbols, \
|
||||
MAKEFILE := BuildStatic, \
|
||||
DEPS := java.base-libs jdk.jdwp.agent-libs, \
|
||||
))
|
||||
|
||||
################################################################################
|
||||
# Gensrc targets, generating source before java compilation can be done
|
||||
@ -251,11 +260,13 @@ endef
|
||||
|
||||
$(foreach v, $(JVM_VARIANTS), $(eval $(call DeclareHotspotLibsRecipe,$v)))
|
||||
|
||||
hotspot-ide-project:
|
||||
+($(CD) $(TOPDIR)/make/hotspot && $(MAKE) $(MAKE_ARGS) -f ide/CreateVSProject.gmk)
|
||||
$(eval $(call SetupTarget, hotspot-ide-project, \
|
||||
MAKEFILE := ide/CreateVSProject, \
|
||||
DEPS := hotspot exploded-image, \
|
||||
))
|
||||
|
||||
ALL_TARGETS += $(HOTSPOT_VARIANT_TARGETS) $(HOTSPOT_VARIANT_GENSRC_TARGETS) \
|
||||
$(HOTSPOT_VARIANT_LIBS_TARGETS) hotspot-ide-project
|
||||
$(HOTSPOT_VARIANT_LIBS_TARGETS)
|
||||
|
||||
################################################################################
|
||||
# Generate libs and launcher targets for creating compile_commands.json fragments
|
||||
@ -276,51 +287,67 @@ $(foreach t, $(LIBS_TARGETS) $(LAUNCHER_TARGETS), \
|
||||
$(eval $(call DeclareCompileCommandsRecipe,$t,JDK)) \
|
||||
)
|
||||
|
||||
compile-commands compile-commands-hotspot:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f CompileCommands.gmk)
|
||||
$(eval $(call SetupTarget, compile-commands, \
|
||||
MAKEFILE := CompileCommands, \
|
||||
))
|
||||
|
||||
$(eval $(call SetupTarget, compile-commands-hotspot, \
|
||||
MAKEFILE := CompileCommands, \
|
||||
))
|
||||
|
||||
ALL_TARGETS += $(COMPILE_COMMANDS_TARGETS_HOTSPOT) $(COMPILE_COMMANDS_TARGETS_JDK)
|
||||
ALL_TARGETS += compile-commands compile-commands-hotspot
|
||||
|
||||
################################################################################
|
||||
# VS Code projects
|
||||
vscode-project:
|
||||
+($(CD) $(TOPDIR)/make/vscode && $(MAKE) $(MAKE_ARGS) -f CreateVSCodeProject.gmk \
|
||||
VSCODE_INDEXER=cpptools)
|
||||
|
||||
vscode-project-clangd:
|
||||
+($(CD) $(TOPDIR)/make/vscode && $(MAKE) $(MAKE_ARGS) -f CreateVSCodeProject.gmk \
|
||||
VSCODE_INDEXER=clangd)
|
||||
$(eval $(call SetupTarget, vscode-project, \
|
||||
MAKEFILE := CreateVSCodeProject, \
|
||||
ARGS := VSCODE_INDEXER=cpptools, \
|
||||
DEPS := compile-commands, \
|
||||
))
|
||||
|
||||
vscode-project-rtags:
|
||||
+($(CD) $(TOPDIR)/make/vscode && $(MAKE) $(MAKE_ARGS) -f CreateVSCodeProject.gmk \
|
||||
VSCODE_INDEXER=rtags)
|
||||
$(eval $(call SetupTarget, vscode-project-clangd, \
|
||||
MAKEFILE := CreateVSCodeProject, \
|
||||
ARGS := VSCODE_INDEXER=clangd, \
|
||||
DEPS := compile-commands, \
|
||||
))
|
||||
|
||||
vscode-project-ccls:
|
||||
+($(CD) $(TOPDIR)/make/vscode && $(MAKE) $(MAKE_ARGS) -f CreateVSCodeProject.gmk \
|
||||
VSCODE_INDEXER=ccls)
|
||||
$(eval $(call SetupTarget, vscode-project-rtags, \
|
||||
MAKEFILE := CreateVSCodeProject, \
|
||||
ARGS := VSCODE_INDEXER=rtags, \
|
||||
DEPS := compile-commands, \
|
||||
))
|
||||
|
||||
ALL_TARGETS += vscode-project vscode-project-clangd vscode-project-rtags \
|
||||
vscode-project-ccls
|
||||
$(eval $(call SetupTarget, vscode-project-ccls, \
|
||||
MAKEFILE := CreateVSCodeProject, \
|
||||
ARGS := VSCODE_INDEXER=ccls, \
|
||||
DEPS := compile-commands, \
|
||||
))
|
||||
|
||||
################################################################################
|
||||
# Build demos targets
|
||||
|
||||
demos-jdk:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f CompileDemos.gmk)
|
||||
# The demos are currently linking to libjvm and libjava, just like all other
|
||||
# jdk libs, even though they don't need to. To avoid warnings, make sure they
|
||||
# aren't built until after libjava and libjvm are available to link to.
|
||||
$(eval $(call SetupTarget, demos-jdk, \
|
||||
MAKEFILE := CompileDemos, \
|
||||
DEPS := java.base-libs exploded-image, \
|
||||
))
|
||||
|
||||
test-image-demos-jdk:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f CompileDemos.gmk images)
|
||||
|
||||
ALL_TARGETS += demos-jdk test-image-demos-jdk
|
||||
$(eval $(call SetupTarget, test-image-demos-jdk, \
|
||||
MAKEFILE := CompileDemos, \
|
||||
TARGET := images, \
|
||||
DEPS := demos-jdk, \
|
||||
))
|
||||
|
||||
################################################################################
|
||||
# Jigsaw specific data and analysis targets.
|
||||
|
||||
generate-summary:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f GenerateModuleSummary.gmk)
|
||||
|
||||
ALL_TARGETS += generate-summary
|
||||
$(eval $(call SetupTarget, generate-summary, \
|
||||
MAKEFILE := GenerateModuleSummary, \
|
||||
DEPS := jmods buildtools-modules, \
|
||||
))
|
||||
|
||||
################################################################################
|
||||
# Jmod targets
|
||||
@ -341,11 +368,15 @@ ALL_TARGETS += $(JMOD_TARGETS)
|
||||
################################################################################
|
||||
# Images targets
|
||||
|
||||
store-source-revision:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f SourceRevision.gmk store-source-revision)
|
||||
$(eval $(call SetupTarget, store-source-revision, \
|
||||
MAKEFILE := SourceRevision, \
|
||||
TARGET := store-source-revision, \
|
||||
))
|
||||
|
||||
create-source-revision-tracker:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f SourceRevision.gmk create-source-revision-tracker)
|
||||
$(eval $(call SetupTarget, create-source-revision-tracker, \
|
||||
MAKEFILE := SourceRevision, \
|
||||
TARGET := create-source-revision-tracker, \
|
||||
))
|
||||
|
||||
BOOTCYCLE_TARGET := product-images
|
||||
bootcycle-images:
|
||||
@ -358,97 +389,150 @@ bootcycle-images:
|
||||
$(call LogWarn, Boot cycle build disabled when cross compiling)
|
||||
endif
|
||||
|
||||
zip-security:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f ZipSecurity.gmk)
|
||||
$(eval $(call SetupTarget, zip-security, \
|
||||
MAKEFILE := ZipSecurity, \
|
||||
DEPS := java.base-java java.security.jgss-java java.security.jgss-libs, \
|
||||
))
|
||||
|
||||
zip-source:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f ZipSource.gmk)
|
||||
$(eval $(call SetupTarget, zip-source, \
|
||||
MAKEFILE := ZipSource, \
|
||||
DEPS := gensrc, \
|
||||
))
|
||||
|
||||
jrtfs-jar:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f JrtfsJar.gmk)
|
||||
$(eval $(call SetupTarget, jrtfs-jar, \
|
||||
MAKEFILE := JrtfsJar, \
|
||||
DEPS := interim-langtools, \
|
||||
))
|
||||
|
||||
jdk-image:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Images.gmk jdk)
|
||||
$(eval $(call SetupTarget, jdk-image, \
|
||||
MAKEFILE := Images, \
|
||||
TARGET := jdk, \
|
||||
DEPS := jmods zip-source demos release-file, \
|
||||
))
|
||||
|
||||
legacy-jre-image:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Images.gmk jre)
|
||||
$(eval $(call SetupTarget, legacy-jre-image, \
|
||||
MAKEFILE := Images, \
|
||||
TARGET := jre, \
|
||||
DEPS := jmods release-file, \
|
||||
))
|
||||
|
||||
symbols-image:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Images.gmk symbols)
|
||||
$(eval $(call SetupTarget, symbols-image, \
|
||||
MAKEFILE := Images, \
|
||||
TARGET := symbols, \
|
||||
))
|
||||
|
||||
static-libs-image:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f StaticLibsImage.gmk)
|
||||
$(eval $(call SetupTarget, static-libs-image, \
|
||||
MAKEFILE := StaticLibsImage, \
|
||||
))
|
||||
|
||||
mac-jdk-bundle:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f MacBundles.gmk jdk-bundle)
|
||||
$(eval $(call SetupTarget, mac-jdk-bundle, \
|
||||
MAKEFILE := MacBundles, \
|
||||
TARGET := jdk-bundle, \
|
||||
DEPS := jdk-image, \
|
||||
))
|
||||
|
||||
mac-legacy-jre-bundle:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f MacBundles.gmk jre-bundle)
|
||||
$(eval $(call SetupTarget, mac-legacy-jre-bundle, \
|
||||
MAKEFILE := MacBundles, \
|
||||
TARGET := jre-bundle, \
|
||||
DEPS := legacy-jre-image, \
|
||||
))
|
||||
|
||||
release-file:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f ReleaseFile.gmk)
|
||||
$(eval $(call SetupTarget, release-file, \
|
||||
MAKEFILE := ReleaseFile, \
|
||||
DEPS := create-source-revision-tracker, \
|
||||
))
|
||||
|
||||
exploded-image-optimize:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f ExplodedImageOptimize.gmk)
|
||||
$(eval $(call SetupTarget, exploded-image-optimize, \
|
||||
MAKEFILE := ExplodedImageOptimize, \
|
||||
DEPS := java copy gendata java.base-libs java.base-launchers \
|
||||
buildtools-modules, \
|
||||
))
|
||||
|
||||
graal-builder-image:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f GraalBuilderImage.gmk)
|
||||
$(eval $(call SetupTarget, graal-builder-image, \
|
||||
MAKEFILE := GraalBuilderImage, \
|
||||
DEPS := jdk-image static-libs-image, \
|
||||
))
|
||||
|
||||
ifeq ($(JCOV_ENABLED), true)
|
||||
jcov-image:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Coverage.gmk jcov-image)
|
||||
$(eval $(call SetupTarget, jcov-image, \
|
||||
MAKEFILE := Coverage, \
|
||||
TARGET := jcov-image, \
|
||||
DEPS := jdk-image, \
|
||||
))
|
||||
endif
|
||||
|
||||
ALL_TARGETS += store-source-revision create-source-revision-tracker bootcycle-images zip-security \
|
||||
zip-source jrtfs-jar jdk-image legacy-jre-image \
|
||||
symbols-image static-libs-image mac-jdk-bundle mac-legacy-jre-bundle \
|
||||
release-file exploded-image-optimize graal-builder-image jcov-image
|
||||
ALL_TARGETS += bootcycle-images
|
||||
|
||||
################################################################################
|
||||
# Docs targets
|
||||
|
||||
# If building full docs, to complete docs-*-api we need both the javadoc and
|
||||
# modulegraph targets.
|
||||
docs-jdk-api-javadoc:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Docs.gmk docs-jdk-api-javadoc)
|
||||
$(eval $(call SetupTarget, docs-jdk-api-javadoc, \
|
||||
MAKEFILE := Docs, \
|
||||
TARGET := docs-jdk-api-javadoc, \
|
||||
))
|
||||
|
||||
docs-jdk-api-modulegraph:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Docs.gmk docs-jdk-api-modulegraph)
|
||||
$(eval $(call SetupTarget, docs-jdk-api-modulegraph, \
|
||||
MAKEFILE := Docs, \
|
||||
TARGET := docs-jdk-api-modulegraph, \
|
||||
DEPS := exploded-image buildtools-modules, \
|
||||
))
|
||||
|
||||
docs-javase-api-javadoc:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Docs.gmk docs-javase-api-javadoc)
|
||||
$(eval $(call SetupTarget, docs-javase-api-javadoc, \
|
||||
MAKEFILE := Docs, \
|
||||
TARGET := docs-javase-api-javadoc, \
|
||||
))
|
||||
|
||||
docs-javase-api-modulegraph:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Docs.gmk docs-javase-api-modulegraph)
|
||||
$(eval $(call SetupTarget, docs-javase-api-modulegraph, \
|
||||
MAKEFILE := Docs, \
|
||||
TARGET := docs-javase-api-modulegraph, \
|
||||
DEPS := exploded-image buildtools-modules, \
|
||||
))
|
||||
|
||||
docs-reference-api-javadoc:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Docs.gmk docs-reference-api-javadoc)
|
||||
$(eval $(call SetupTarget, docs-reference-api-javadoc, \
|
||||
MAKEFILE := Docs, \
|
||||
TARGET := docs-reference-api-javadoc, \
|
||||
))
|
||||
|
||||
docs-reference-api-modulegraph:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Docs.gmk docs-reference-api-modulegraph)
|
||||
$(eval $(call SetupTarget, docs-reference-api-modulegraph, \
|
||||
MAKEFILE := Docs, \
|
||||
TARGET := docs-reference-api-modulegraph, \
|
||||
DEPS := exploded-image buildtools-modules, \
|
||||
))
|
||||
|
||||
docs-jdk-specs:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Docs.gmk docs-jdk-specs)
|
||||
# The gensrc steps for jdk.jdi create html spec files.
|
||||
$(eval $(call SetupTarget, docs-jdk-specs, \
|
||||
MAKEFILE := Docs, \
|
||||
TARGET := docs-jdk-specs, \
|
||||
DEPS := buildtools-jdk jdk.jdi-gensrc docs-jdk-index, \
|
||||
))
|
||||
|
||||
docs-jdk-index:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Docs.gmk docs-jdk-index)
|
||||
$(eval $(call SetupTarget, docs-jdk-index, \
|
||||
MAKEFILE := Docs, \
|
||||
TARGET := docs-jdk-index, \
|
||||
))
|
||||
|
||||
docs-zip:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Docs.gmk docs-zip)
|
||||
$(eval $(call SetupTarget, docs-zip, \
|
||||
MAKEFILE := Docs, \
|
||||
TARGET := docs-zip, \
|
||||
DEPS := docs-jdk, \
|
||||
))
|
||||
|
||||
docs-specs-zip:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Docs.gmk docs-specs-zip)
|
||||
$(eval $(call SetupTarget, docs-specs-zip, \
|
||||
MAKEFILE := Docs, \
|
||||
TARGET := docs-specs-zip, \
|
||||
DEPS := docs-jdk-specs, \
|
||||
))
|
||||
|
||||
update-build-docs:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f UpdateBuildDocs.gmk)
|
||||
$(eval $(call SetupTarget, update-build-docs, \
|
||||
MAKEFILE := UpdateBuildDocs, \
|
||||
))
|
||||
|
||||
update-x11wrappers:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f UpdateX11Wrappers.gmk)
|
||||
|
||||
ALL_TARGETS += docs-jdk-api-javadoc docs-jdk-api-modulegraph \
|
||||
docs-javase-api-javadoc docs-javase-api-modulegraph \
|
||||
docs-reference-api-javadoc docs-reference-api-modulegraph docs-jdk-specs \
|
||||
docs-jdk-index docs-zip docs-specs-zip update-build-docs update-x11wrappers
|
||||
$(eval $(call SetupTarget, update-x11wrappers, \
|
||||
MAKEFILE := UpdateX11Wrappers, \
|
||||
DEPS := java.base-copy buildtools-jdk, \
|
||||
))
|
||||
|
||||
################################################################################
|
||||
# Cross compilation support
|
||||
@ -462,17 +546,15 @@ endif
|
||||
BUILDJDK_MODULES := $(sort $(foreach m, jdk.jlink $(INTERIM_IMAGE_MODULES), \
|
||||
$(call FindTransitiveDepsForModule, $m) $m))
|
||||
|
||||
create-buildjdk-interim-image:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Main.gmk \
|
||||
$@-helper \
|
||||
SPEC=$(dir $(SPEC))buildjdk-spec.gmk \
|
||||
HOTSPOT_SPEC=$(dir $(SPEC))buildjdk-spec.gmk \
|
||||
CREATING_BUILDJDK=true \
|
||||
LOG_PREFIX="[buildjdk] " \
|
||||
JAVA_MODULES="$(BUILDJDK_MODULES)" \
|
||||
)
|
||||
|
||||
ALL_TARGETS += create-buildjdk-copy create-buildjdk-interim-image
|
||||
$(eval $(call SetupTarget, create-buildjdk-interim-image, \
|
||||
MAKEFILE := Main, \
|
||||
TARGET := create-buildjdk-interim-image-helper, \
|
||||
ARGS := SPEC=$(dir $(SPEC))buildjdk-spec.gmk \
|
||||
HOTSPOT_SPEC=$(dir $(SPEC))buildjdk-spec.gmk \
|
||||
CREATING_BUILDJDK=true \
|
||||
LOG_PREFIX="[buildjdk] " \
|
||||
JAVA_MODULES="$(BUILDJDK_MODULES)", \
|
||||
))
|
||||
|
||||
################################################################################
|
||||
# The interim-image is a small jlinked image that is used to generate artifacts
|
||||
@ -492,16 +574,16 @@ endef
|
||||
|
||||
$(foreach m, $(INTERIM_IMAGE_MODULES), $(eval $(call DeclareInterimJmodRecipe,$m)))
|
||||
|
||||
interim-image:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f InterimImage.gmk)
|
||||
$(eval $(call SetupTarget, interim-image, \
|
||||
MAKEFILE := InterimImage, \
|
||||
))
|
||||
|
||||
ifeq ($(ENABLE_GENERATE_CLASSLIST), true)
|
||||
generate-link-opt-data:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f GenerateLinkOptData.gmk)
|
||||
$(eval $(call SetupTarget, generate-link-opt-data, \
|
||||
MAKEFILE := GenerateLinkOptData, \
|
||||
))
|
||||
endif
|
||||
|
||||
ALL_TARGETS += $(INTERIM_JMOD_TARGETS) interim-image generate-link-opt-data
|
||||
|
||||
################################################################################
|
||||
# Generate test names for all JTReg test groups
|
||||
#
|
||||
@ -530,113 +612,151 @@ ALL_TARGETS += $(ALL_TEST_TARGETS) $(ALL_EXPLODED_TEST_TARGETS)
|
||||
# Build tests and microbenchmarks
|
||||
#
|
||||
|
||||
prepare-test-image:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f TestImage.gmk prepare-test-image)
|
||||
$(eval $(call SetupTarget, prepare-test-image, \
|
||||
MAKEFILE := TestImage, \
|
||||
TARGET := prepare-test-image, \
|
||||
))
|
||||
|
||||
build-test-hotspot-jtreg-native:
|
||||
+($(CD) $(TOPDIR)/make/test && $(MAKE) $(MAKE_ARGS) -f JtregNativeHotspot.gmk \
|
||||
build-test-hotspot-jtreg-native)
|
||||
$(eval $(call SetupTarget, build-test-hotspot-jtreg-native, \
|
||||
MAKEFILE := test/JtregNativeHotspot, \
|
||||
TARGET := build-test-hotspot-jtreg-native, \
|
||||
DEPS := buildtools-jdk, \
|
||||
))
|
||||
|
||||
test-image-hotspot-jtreg-native:
|
||||
+($(CD) $(TOPDIR)/make/test && $(MAKE) $(MAKE_ARGS) -f JtregNativeHotspot.gmk \
|
||||
test-image-hotspot-jtreg-native)
|
||||
$(eval $(call SetupTarget, test-image-hotspot-jtreg-native, \
|
||||
MAKEFILE := test/JtregNativeHotspot, \
|
||||
TARGET := test-image-hotspot-jtreg-native, \
|
||||
DEPS := build-test-hotspot-jtreg-native, \
|
||||
))
|
||||
|
||||
build-test-jdk-jtreg-native:
|
||||
+($(CD) $(TOPDIR)/make/test && $(MAKE) $(MAKE_ARGS) -f JtregNativeJdk.gmk \
|
||||
build-test-jdk-jtreg-native)
|
||||
$(eval $(call SetupTarget, build-test-jdk-jtreg-native, \
|
||||
MAKEFILE := test/JtregNativeJdk, \
|
||||
TARGET := build-test-jdk-jtreg-native, \
|
||||
DEPS := buildtools-jdk java.base-libs, \
|
||||
))
|
||||
|
||||
test-image-jdk-jtreg-native:
|
||||
+($(CD) $(TOPDIR)/make/test && $(MAKE) $(MAKE_ARGS) -f JtregNativeJdk.gmk \
|
||||
test-image-jdk-jtreg-native)
|
||||
$(eval $(call SetupTarget, test-image-jdk-jtreg-native, \
|
||||
MAKEFILE := test/JtregNativeJdk, \
|
||||
TARGET := test-image-jdk-jtreg-native, \
|
||||
DEPS := build-test-jdk-jtreg-native, \
|
||||
))
|
||||
|
||||
build-test-hotspot-jtreg-graal:
|
||||
+($(CD) $(TOPDIR)/make/test && $(MAKE) $(MAKE_ARGS) -f JtregGraalUnit.gmk \
|
||||
build-test-hotspot-jtreg-graal)
|
||||
$(eval $(call SetupTarget, build-test-hotspot-jtreg-graal, \
|
||||
MAKEFILE := test/JtregGraalUnit, \
|
||||
TARGET := build-test-hotspot-jtreg-graal, \
|
||||
DEPS := exploded-image, \
|
||||
))
|
||||
|
||||
test-image-hotspot-jtreg-graal:
|
||||
+($(CD) $(TOPDIR)/make/test && $(MAKE) $(MAKE_ARGS) -f JtregGraalUnit.gmk \
|
||||
test-image-hotspot-jtreg-graal)
|
||||
$(eval $(call SetupTarget, test-image-hotspot-jtreg-graal, \
|
||||
MAKEFILE := test/JtregGraalUnit, \
|
||||
TARGET := test-image-hotspot-jtreg-graal, \
|
||||
DEPS := build-test-hotspot-jtreg-graal, \
|
||||
))
|
||||
|
||||
ifeq ($(BUILD_GTEST), true)
|
||||
test-image-hotspot-gtest:
|
||||
+($(CD) $(TOPDIR)/make/hotspot/test && $(MAKE) $(MAKE_ARGS) -f GtestImage.gmk)
|
||||
$(eval $(call SetupTarget, test-image-hotspot-gtest, \
|
||||
MAKEFILE := hotspot/test/GtestImage, \
|
||||
DEPS := hotspot, \
|
||||
))
|
||||
endif
|
||||
|
||||
build-test-lib:
|
||||
+($(CD) $(TOPDIR)/make/test && $(MAKE) $(MAKE_ARGS) -f BuildTestLib.gmk)
|
||||
$(eval $(call SetupTarget, build-test-lib, \
|
||||
MAKEFILE := test/BuildTestLib, \
|
||||
DEPS := exploded-image, \
|
||||
))
|
||||
|
||||
ifeq ($(BUILD_FAILURE_HANDLER), true)
|
||||
# Builds the failure handler jtreg extension
|
||||
build-test-failure-handler:
|
||||
+($(CD) $(TOPDIR)/make/test && $(MAKE) $(MAKE_ARGS) \
|
||||
-f BuildFailureHandler.gmk build)
|
||||
$(eval $(call SetupTarget, build-test-failure-handler, \
|
||||
MAKEFILE := test/BuildFailureHandler, \
|
||||
TARGET := build, \
|
||||
DEPS := interim-langtools, \
|
||||
))
|
||||
|
||||
# Copies the failure handler jtreg extension into the test image
|
||||
test-image-failure-handler:
|
||||
+($(CD) $(TOPDIR)/make/test && $(MAKE) $(MAKE_ARGS) \
|
||||
-f BuildFailureHandler.gmk images)
|
||||
$(eval $(call SetupTarget, test-image-failure-handler, \
|
||||
MAKEFILE := test/BuildFailureHandler, \
|
||||
TARGET := images, \
|
||||
DEPS := build-test-failure-handler, \
|
||||
))
|
||||
endif
|
||||
|
||||
build-microbenchmark:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f test/BuildMicrobenchmark.gmk)
|
||||
|
||||
ALL_TARGETS += prepare-test-image build-test-hotspot-jtreg-native \
|
||||
test-image-hotspot-jtreg-native build-test-jdk-jtreg-native \
|
||||
test-image-jdk-jtreg-native build-test-lib build-test-failure-handler \
|
||||
test-failure-handler test-image-failure-handler test-image-hotspot-gtest \
|
||||
test-image-hotspot-jtreg-graal build-test-hotspot-jtreg-graal \
|
||||
build-microbenchmark
|
||||
$(eval $(call SetupTarget, build-microbenchmark, \
|
||||
MAKEFILE := test/BuildMicrobenchmark, \
|
||||
DEPS := interim-langtools exploded-image, \
|
||||
))
|
||||
|
||||
################################################################################
|
||||
# Run tests
|
||||
|
||||
test:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f RunTests.gmk \
|
||||
TEST="$(TEST)")
|
||||
$(eval $(call SetupTarget, test, \
|
||||
MAKEFILE := RunTests, \
|
||||
ARGS := TEST="$(TEST)", \
|
||||
DEPS := jdk-image test-image, \
|
||||
))
|
||||
|
||||
exploded-test:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f RunTests.gmk \
|
||||
TEST="$(TEST)" JDK_IMAGE_DIR=$(JDK_OUTPUTDIR))
|
||||
$(eval $(call SetupTarget, exploded-test, \
|
||||
MAKEFILE := RunTests, \
|
||||
ARGS := TEST="$(TEST)" JDK_IMAGE_DIR=$(JDK_OUTPUTDIR), \
|
||||
DEPS := exploded-image test-image, \
|
||||
))
|
||||
|
||||
jcov-test:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f RunTests.gmk \
|
||||
TEST="$(TEST)" TEST_OPTS_JCOV=true)
|
||||
|
||||
ALL_TARGETS += test exploded-test jcov-test
|
||||
ifeq ($(JCOV_ENABLED), true)
|
||||
$(eval $(call SetupTarget, jcov-test, \
|
||||
MAKEFILE := RunTests, \
|
||||
ARGS := TEST="$(TEST)" TEST_OPTS_JCOV=true, \
|
||||
DEPS := jcov-image test-image, \
|
||||
))
|
||||
endif
|
||||
|
||||
################################################################################
|
||||
# Bundles
|
||||
|
||||
product-bundles:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Bundles.gmk product-bundles)
|
||||
$(eval $(call SetupTarget, product-bundles, \
|
||||
MAKEFILE := Bundles, \
|
||||
TARGET := product-bundles, \
|
||||
DEPS := product-images, \
|
||||
))
|
||||
|
||||
legacy-bundles:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Bundles.gmk legacy-bundles)
|
||||
$(eval $(call SetupTarget, legacy-bundles, \
|
||||
MAKEFILE := Bundles, \
|
||||
TARGET := legacy-bundles, \
|
||||
DEPS := legacy-images, \
|
||||
))
|
||||
|
||||
test-bundles:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Bundles.gmk test-bundles)
|
||||
$(eval $(call SetupTarget, test-bundles, \
|
||||
MAKEFILE := Bundles, \
|
||||
TARGET := test-bundles, \
|
||||
DEPS := test-image, \
|
||||
))
|
||||
|
||||
docs-bundles:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Bundles.gmk docs-bundles)
|
||||
$(eval $(call SetupTarget, docs-bundles, \
|
||||
MAKEFILE := Bundles, \
|
||||
TARGET := docs-bundles, \
|
||||
DEPS := docs-image, \
|
||||
))
|
||||
|
||||
static-libs-bundles:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Bundles.gmk static-libs-bundles)
|
||||
$(eval $(call SetupTarget, static-libs-bundles, \
|
||||
MAKEFILE := Bundles, \
|
||||
TARGET := static-libs-bundles, \
|
||||
DEPS := static-libs-image, \
|
||||
))
|
||||
|
||||
ifeq ($(JCOV_ENABLED), true)
|
||||
jcov-bundles:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Bundles.gmk jcov-bundles)
|
||||
$(eval $(call SetupTarget, jcov-bundles, \
|
||||
MAKEFILE := Bundles, \
|
||||
TARGET := jcov-bundles, \
|
||||
DEPS := jcov-image, \
|
||||
))
|
||||
endif
|
||||
|
||||
ALL_TARGETS += product-bundles legacy-bundles test-bundles docs-bundles \
|
||||
static-libs-bundles jcov-bundles
|
||||
|
||||
################################################################################
|
||||
# Install targets
|
||||
|
||||
install:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Install.gmk)
|
||||
|
||||
ALL_TARGETS += install
|
||||
$(eval $(call SetupTarget, install, \
|
||||
MAKEFILE := Install, \
|
||||
DEPS := product-images, \
|
||||
))
|
||||
|
||||
################################################################################
|
||||
#
|
||||
@ -654,19 +774,13 @@ ALL_TARGETS += install
|
||||
# recipe targets are disabled. This makes it possible to run a select set of
|
||||
# recipe targets in order. It's the responsibility of the user to make sure
|
||||
# all prerequisites are fulfilled.
|
||||
ifneq ($(findstring -only, $(MAKECMDGOALS)), )
|
||||
ifeq ($(DEPS), none)
|
||||
.NOTPARALLEL:
|
||||
else
|
||||
$(LANGTOOLS_GENSRC_TARGETS): buildtools-langtools
|
||||
|
||||
interim-langtools: $(INTERIM_LANGTOOLS_GENSRC_TARGETS)
|
||||
|
||||
buildtools-jdk: interim-langtools interim-tzdb
|
||||
|
||||
buildtools-hotspot: interim-langtools
|
||||
|
||||
buildtools-modules: exploded-image-base
|
||||
|
||||
$(HOTSPOT_GENSRC_TARGETS): interim-langtools buildtools-hotspot
|
||||
|
||||
$(JDK_GENSRC_TARGETS): interim-langtools buildtools-jdk
|
||||
@ -683,10 +797,6 @@ else
|
||||
$(eval hotspot-$v-libs: hotspot-$v-gensrc java.base-copy) \
|
||||
)
|
||||
|
||||
hotspot-ide-project: hotspot exploded-image
|
||||
|
||||
generate-exported-symbols: java.base-libs jdk.jdwp.agent-libs
|
||||
|
||||
# If not already set, set the JVM variant target so that the JVM will be built.
|
||||
JVM_MAIN_LIB_TARGETS ?= hotspot-$(JVM_VARIANT_MAIN)-libs
|
||||
|
||||
@ -699,12 +809,6 @@ else
|
||||
$(LAUNCHER_TARGETS): generate-exported-symbols
|
||||
endif
|
||||
|
||||
# The demos are currently linking to libjvm and libjava, just like all other
|
||||
# jdk libs, even though they don't need to. To avoid warnings, make sure they
|
||||
# aren't built until after libjava and libjvm are available to link to.
|
||||
demos-jdk: java.base-libs exploded-image
|
||||
test-image-demos-jdk: demos-jdk
|
||||
|
||||
# Declare dependency from <module>-java to <module>-gensrc
|
||||
$(foreach m, $(GENSRC_MODULES), $(eval $m-java: $m-gensrc))
|
||||
|
||||
@ -792,11 +896,6 @@ else
|
||||
compile-commands-hotspot: $(COMPILE_COMMANDS_TARGETS_HOTSPOT)
|
||||
compile-commands: $(COMPILE_COMMANDS_TARGETS_HOTSPOT) $(COMPILE_COMMANDS_TARGETS_JDK)
|
||||
|
||||
vscode-project: compile-commands
|
||||
vscode-project-clangd: compile-commands
|
||||
vscode-project-rtags: compile-commands
|
||||
vscode-project-ccls: compile-commands
|
||||
|
||||
# The -static-libs targets depend on -java as well as java.base-copy.
|
||||
$(foreach m, $(filter $(JAVA_MODULES), $(STATIC_LIBS_MODULES)), \
|
||||
$(eval $m-static-libs: $m-java java.base-copy))
|
||||
@ -832,14 +931,7 @@ else
|
||||
# All modules include the main license files from java.base.
|
||||
$(JMOD_TARGETS): java.base-copy
|
||||
|
||||
zip-security: java.base-java java.security.jgss-java java.security.jgss-libs \
|
||||
$(filter jdk.crypto%, $(JAVA_TARGETS))
|
||||
|
||||
zip-source: gensrc
|
||||
|
||||
jrtfs-jar: interim-langtools
|
||||
|
||||
build-microbenchmark: interim-langtools exploded-image
|
||||
zip-security: $(filter jdk.crypto%, $(JAVA_TARGETS))
|
||||
|
||||
ifeq ($(ENABLE_GENERATE_CLASSLIST), true)
|
||||
ifeq ($(CREATE_BUILDJDK), true)
|
||||
@ -857,29 +949,10 @@ else
|
||||
java.base-jmod jdk.jlink-jmod jdk-image legacy-jre-image: generate-link-opt-data
|
||||
endif
|
||||
|
||||
release-file: create-source-revision-tracker
|
||||
|
||||
jdk-image: jmods zip-source demos release-file
|
||||
legacy-jre-image: jmods release-file
|
||||
symbols-image: $(LIBS_TARGETS) $(LAUNCHER_TARGETS)
|
||||
|
||||
static-libs-image: $(STATIC_LIBS_TARGETS)
|
||||
|
||||
graal-builder-image: jdk-image static-libs-image
|
||||
|
||||
mac-jdk-bundle: jdk-image
|
||||
mac-legacy-jre-bundle: legacy-jre-image
|
||||
|
||||
ifeq ($(JCOV_INPUT_JDK), )
|
||||
jcov-image: jdk-image
|
||||
endif
|
||||
|
||||
# The optimize target can run as soon as the modules dir has been completely
|
||||
# populated (java, copy and gendata targets) and the basic libs and launchers
|
||||
# have been built.
|
||||
exploded-image-optimize: java copy gendata java.base-libs java.base-launchers \
|
||||
buildtools-modules
|
||||
|
||||
bootcycle-images: jdk-image
|
||||
|
||||
docs-jdk-api-javadoc: $(GENSRC_TARGETS)
|
||||
@ -888,30 +961,13 @@ else
|
||||
|
||||
docs-reference-api-javadoc: $(GENSRC_TARGETS)
|
||||
|
||||
docs-jdk-api-modulegraph: exploded-image buildtools-modules
|
||||
|
||||
docs-javase-api-modulegraph: exploded-image buildtools-modules
|
||||
|
||||
docs-reference-api-modulegraph: exploded-image buildtools-modules
|
||||
|
||||
# If not already set, then set the JVM specific docs targets
|
||||
JVM_DOCS_TARGETS ?= hotspot-$(JVM_VARIANT_MAIN)-gensrc
|
||||
|
||||
# The gensrc steps for hotspot and jdk.jdi create html spec files.
|
||||
docs-jdk-specs: buildtools-jdk $(JVM_DOCS_TARGETS) jdk.jdi-gensrc \
|
||||
docs-jdk-index
|
||||
|
||||
docs-zip: docs-jdk
|
||||
|
||||
docs-specs-zip: docs-jdk-specs
|
||||
# The gensrc steps for hotspot create html spec files.
|
||||
docs-jdk-specs: $(JVM_DOCS_TARGETS)
|
||||
|
||||
# Tests
|
||||
test: jdk-image test-image
|
||||
|
||||
exploded-test: exploded-image test-image
|
||||
|
||||
jcov-test: jcov-image test-image
|
||||
|
||||
test-make: clean-test-make compile-commands
|
||||
|
||||
test-make-compile-commands: compile-commands
|
||||
@ -922,44 +978,7 @@ else
|
||||
|
||||
interim-image: $(INTERIM_JMOD_TARGETS)
|
||||
|
||||
build-test-lib: exploded-image
|
||||
|
||||
build-test-failure-handler: interim-langtools
|
||||
|
||||
test-image-failure-handler: build-test-failure-handler
|
||||
|
||||
build-test-hotspot-jtreg-native: buildtools-jdk \
|
||||
hotspot-$(JVM_VARIANT_MAIN)-libs
|
||||
|
||||
build-test-jdk-jtreg-native: buildtools-jdk java.base-libs
|
||||
|
||||
build-test-hotspot-jtreg-graal: exploded-image
|
||||
|
||||
test-image-hotspot-jtreg-native: build-test-hotspot-jtreg-native
|
||||
|
||||
test-image-jdk-jtreg-native: build-test-jdk-jtreg-native
|
||||
|
||||
test-image-hotspot-jtreg-graal: build-test-hotspot-jtreg-graal
|
||||
|
||||
test-image-hotspot-gtest: hotspot
|
||||
|
||||
install: product-images
|
||||
|
||||
product-bundles: product-images
|
||||
|
||||
legacy-bundles: legacy-images
|
||||
|
||||
test-bundles: test-image
|
||||
|
||||
docs-bundles: docs-image
|
||||
|
||||
jcov-bundles: jcov-image
|
||||
|
||||
static-libs-bundles: static-libs-image
|
||||
|
||||
generate-summary: jmods buildtools-modules
|
||||
|
||||
update-x11wrappers: java.base-copy buildtools-jdk
|
||||
build-test-hotspot-jtreg-native: hotspot-$(JVM_VARIANT_MAIN)-libs
|
||||
|
||||
endif
|
||||
|
||||
|
@ -30,6 +30,27 @@
|
||||
ifndef _MAINSUPPORT_GMK
|
||||
_MAINSUPPORT_GMK := 1
|
||||
|
||||
# Setup make rules for creating a top-level target.
|
||||
# Parameter 1 is the name of the rule. This name is used as variable prefix.
|
||||
#
|
||||
# Remaining parameters are named arguments. These include:
|
||||
# MAKEFILE the makefile to delegate to
|
||||
# TARGET the makefile target
|
||||
# ARGS arguments to the makefile
|
||||
# DEPS the target(s) this new rule depends on
|
||||
#
|
||||
SetupTarget = $(NamedParamsMacroTemplate)
|
||||
define SetupTargetBody
|
||||
$1:
|
||||
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f $$($1_MAKEFILE).gmk $$($1_TARGET) $$($1_ARGS))
|
||||
|
||||
ALL_TARGETS += $1
|
||||
|
||||
ifneq ($(DEPS), none)
|
||||
$1: $$($1_DEPS)
|
||||
endif
|
||||
endef
|
||||
|
||||
define CleanDocs
|
||||
@$(PRINTF) "Cleaning docs ..."
|
||||
@$(PRINTF) "\n" $(LOG_DEBUG)
|
||||
|
Loading…
x
Reference in New Issue
Block a user