1 # 2 # Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved. 3 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 # 5 # This code is free software; you can redistribute it and/or modify it 6 # under the terms of the GNU General Public License version 2 only, as 7 # published by the Free Software Foundation. Oracle designates this 8 # particular file as subject to the "Classpath" exception as provided 9 # by Oracle in the LICENSE file that accompanied this code. 10 # 11 # This code is distributed in the hope that it will be useful, but WITHOUT 12 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 # version 2 for more details (a copy is included in the LICENSE file that 15 # accompanied this code). 16 # 17 # You should have received a copy of the GNU General Public License version 18 # 2 along with this work; if not, write to the Free Software Foundation, 19 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 # 21 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 # or visit www.oracle.com if you need additional information or have any 23 # questions. 24 # 25 26 ################################################################################ 27 # This is the main makefile containing most actual top level targets. It needs 28 # to be called with a SPEC file defined. 29 ################################################################################ 30 31 # Declare default target 32 default: 33 34 ifeq ($(wildcard $(SPEC)),) 35 $(error Main.gmk needs SPEC set to a proper spec.gmk) 36 endif 37 38 # Now load the spec 39 include $(SPEC) 40 41 include $(TOPDIR)/make/MainSupport.gmk 42 43 # Load the vital tools for all the makefiles. 44 include $(TOPDIR)/make/common/MakeBase.gmk 45 include $(TOPDIR)/make/common/Modules.gmk 46 include $(TOPDIR)/make/common/FindTests.gmk 47 48 # Declare ALL_TARGETS as an immediate variable. This variable is a list of all 49 # valid top level targets. It's used to declare them all as PHONY and to 50 # generate the -only targets. 51 ALL_TARGETS := 52 53 # Hook to include the corresponding custom file, if present. 54 $(eval $(call IncludeCustomExtension, Main.gmk)) 55 56 # All modules for the current target platform. 57 ALL_MODULES := $(call FindAllModules) 58 59 ################################################################################ 60 ################################################################################ 61 # 62 # Recipes for all targets. Only recipes, dependencies are declared later. 63 # 64 ################################################################################ 65 66 ################################################################################ 67 # Interim/build tools targets, compiling tools used during the build 68 69 # When creating a BUILDJDK, the buildtools and interim targets have already 70 # been built and should not be built again. 71 ifneq ($(CREATING_BUILDJDK), true) 72 buildtools-langtools: 73 +($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f ToolsLangtools.gmk) 74 75 interim-langtools: 76 +($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f CompileInterimLangtools.gmk) 77 78 interim-rmic: 79 +($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f CompileInterimRmic.gmk) 80 81 interim-cldrconverter: 82 +($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f CopyInterimCLDRConverter.gmk) 83 84 buildtools-jdk: 85 +($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f CompileToolsJdk.gmk) 86 87 buildtools-modules: 88 +($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f CompileModuleTools.gmk) 89 90 buildtools-hotspot: 91 +($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f CompileToolsHotspot.gmk) 92 endif 93 94 ALL_TARGETS += buildtools-langtools interim-langtools \ 95 interim-rmic interim-cldrconverter buildtools-jdk buildtools-modules \ 96 buildtools-hotspot 97 98 ################################################################################ 99 # Special targets for certain modules 100 101 unpack-sec: 102 +($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f UnpackSecurity.gmk) 103 104 generate-exported-symbols: 105 +($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f BuildStatic.gmk) 106 107 ALL_TARGETS += unpack-sec generate-exported-symbols 108 109 ################################################################################ 110 # Gensrc targets, generating source before java compilation can be done 111 # 112 # When creating a BUILDJDK, the java targets have already been built and copied 113 # into the buildjdk so no need to generate sources. 114 ifneq ($(CREATING_BUILDJDK), true) 115 $(eval $(call DeclareRecipesForPhase, GENSRC, \ 116 TARGET_SUFFIX := gensrc-src, \ 117 FILE_PREFIX := Gensrc, \ 118 MAKE_SUBDIR := gensrc, \ 119 CHECK_MODULES := $(ALL_MODULES), \ 120 )) 121 122 $(foreach m, $(GENSRC_MODULES), $(eval $m-gensrc: $m-gensrc-src)) 123 124 LANGTOOLS_GENSRC_TARGETS := $(filter $(addsuffix -%, $(LANGTOOLS_MODULES)), $(GENSRC_TARGETS)) 125 INTERIM_LANGTOOLS_GENSRC_TARGETS := $(filter $(addsuffix -%, \ 126 $(INTERIM_LANGTOOLS_BASE_MODULES)), $(GENSRC_TARGETS)) 127 HOTSPOT_GENSRC_TARGETS := $(filter $(addsuffix -%, $(HOTSPOT_MODULES)), $(GENSRC_TARGETS)) 128 JDK_GENSRC_TARGETS := $(filter-out $(LANGTOOLS_GENSRC_TARGETS) \ 129 $(HOTSPOT_GENSRC_TARGETS), $(GENSRC_TARGETS)) 130 131 GENSRC_MODULEINFO_MODULES := $(ALL_MODULES) 132 GENSRC_MODULEINFO_TARGETS := $(addsuffix -gensrc-moduleinfo, \ 133 $(GENSRC_MODULEINFO_MODULES)) 134 135 GENSRC_MODULES := $(GENSRC_MODULEINFO_MODULES) 136 GENSRC_TARGETS += $(sort $(GENSRC_MODULEINFO_TARGETS) \ 137 $(addsuffix -gensrc, $(GENSRC_MODULES))) 138 139 define DeclareModuleInfoRecipe 140 $1-gensrc-moduleinfo: 141 +($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) \ 142 -f GensrcModuleInfo.gmk MODULE=$1) 143 144 $1-gensrc: $1-gensrc-moduleinfo 145 endef 146 147 $(foreach m, $(GENSRC_MODULEINFO_MODULES), $(eval $(call DeclareModuleInfoRecipe,$m))) 148 endif 149 150 ALL_TARGETS += $(GENSRC_TARGETS) 151 152 ################################################################################ 153 # Generate data targets 154 $(eval $(call DeclareRecipesForPhase, GENDATA, \ 155 TARGET_SUFFIX := gendata, \ 156 FILE_PREFIX := Gendata, \ 157 MAKE_SUBDIR := gendata, \ 158 CHECK_MODULES := $(ALL_MODULES), \ 159 USE_WRAPPER := true)) 160 161 ALL_TARGETS += $(GENDATA_TARGETS) 162 163 ################################################################################ 164 # Copy files targets 165 $(eval $(call DeclareRecipesForPhase, COPY, \ 166 TARGET_SUFFIX := copy, \ 167 FILE_PREFIX := Copy, \ 168 MAKE_SUBDIR := copy, \ 169 CHECK_MODULES := $(ALL_MODULES), \ 170 USE_WRAPPER := true, \ 171 )) 172 173 ALL_COPY_MODULES += $(COPY_MODULES) 174 ALL_COPY_TARGETS += $(COPY_TARGETS) 175 176 IMPORT_COPY_MODULES := $(call FindImportedModules) 177 IMPORT_COPY_TARGETS := $(addsuffix -copy, $(IMPORT_COPY_MODULES)) 178 ALL_COPY_MODULES += $(IMPORT_COPY_MODULES) 179 ALL_COPY_TARGETS += $(IMPORT_COPY_TARGETS) 180 181 define DeclareImportCopyRecipe 182 $1-copy: 183 +($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) \ 184 -f CopyImportModules.gmk MODULE=$1) 185 endef 186 187 $(foreach m, $(IMPORT_COPY_MODULES), $(eval $(call DeclareImportCopyRecipe,$m))) 188 189 ALL_TARGETS += $(ALL_COPY_TARGETS) 190 191 ################################################################################ 192 # Targets for compiling all java modules. Nashorn is treated separately. 193 JAVA_MODULES := $(ALL_MODULES) 194 JAVA_TARGETS := $(addsuffix -java, $(JAVA_MODULES)) 195 196 define DeclareCompileJavaRecipe 197 $1-java: 198 +($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) \ 199 -f CompileJavaModules.gmk MODULE=$1) 200 endef 201 202 $(foreach m, $(filter-out jdk.scripting.nashorn, $(JAVA_MODULES)), \ 203 $(eval $(call DeclareCompileJavaRecipe,$m))) 204 205 # Build nashorn. Needs to be compiled separately from the rest of the modules 206 # due to nasgen. 207 jdk.scripting.nashorn-java: 208 +($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) \ 209 -f BuildNashorn.gmk compile) 210 211 ALL_TARGETS += $(JAVA_TARGETS) 212 213 ################################################################################ 214 # Targets for running rmic. 215 $(eval $(call DeclareRecipesForPhase, RMIC, \ 216 TARGET_SUFFIX := rmic, \ 217 FILE_PREFIX := Rmic, \ 218 MAKE_SUBDIR := rmic, \ 219 CHECK_MODULES := $(ALL_MODULES))) 220 221 ALL_TARGETS += $(RMIC_TARGETS) 222 223 ################################################################################ 224 # Targets for compiling native libraries 225 $(eval $(call DeclareRecipesForPhase, LIBS, \ 226 TARGET_SUFFIX := libs, \ 227 FILE_PREFIX := Lib, \ 228 MAKE_SUBDIR := lib, \ 229 CHECK_MODULES := $(ALL_MODULES), \ 230 USE_WRAPPER := true)) 231 232 ALL_TARGETS += $(LIBS_TARGETS) 233 234 ################################################################################ 235 # Targets for compiling native executables 236 $(eval $(call DeclareRecipesForPhase, LAUNCHER, \ 237 TARGET_SUFFIX := launchers, \ 238 FILE_PREFIX := Launcher, \ 239 MAKE_SUBDIR := launcher, \ 240 CHECK_MODULES := $(ALL_MODULES), \ 241 USE_WRAPPER := true)) 242 243 ALL_TARGETS += $(LAUNCHER_TARGETS) 244 245 ################################################################################ 246 # Build hotspot target 247 248 HOTSPOT_VARIANT_TARGETS := $(addprefix hotspot-, $(JVM_VARIANTS)) 249 HOTSPOT_VARIANT_GENSRC_TARGETS := $(addsuffix -gensrc, $(HOTSPOT_VARIANT_TARGETS)) 250 HOTSPOT_VARIANT_LIBS_TARGETS := $(addsuffix -libs, $(HOTSPOT_VARIANT_TARGETS)) 251 252 define DeclareHotspotGensrcRecipe 253 hotspot-$1-gensrc: 254 $$(call LogInfo, Building JVM variant '$1' with features '$(JVM_FEATURES_$1)') 255 +($(CD) $(TOPDIR)/make/hotspot && $(MAKE) $(MAKE_ARGS) -f gensrc/GenerateSources.gmk \ 256 JVM_VARIANT=$1) 257 endef 258 259 $(foreach v, $(JVM_VARIANTS), $(eval $(call DeclareHotspotGensrcRecipe,$v))) 260 261 define DeclareHotspotLibsRecipe 262 hotspot-$1-libs: 263 +($(CD) $(TOPDIR)/make/hotspot && $(MAKE) $(MAKE_ARGS) -f lib/CompileLibraries.gmk \ 264 JVM_VARIANT=$1) 265 endef 266 267 $(foreach v, $(JVM_VARIANTS), $(eval $(call DeclareHotspotLibsRecipe,$v))) 268 269 hotspot-jsig: 270 +($(CD) $(TOPDIR)/make/hotspot && $(MAKE) $(MAKE_ARGS) -f lib/CompileLibjsig.gmk) 271 272 hotspot-ide-project: 273 +($(CD) $(TOPDIR)/make/hotspot && $(MAKE) $(MAKE_ARGS) -f ide/CreateVSProject.gmk) 274 275 ALL_TARGETS += $(HOTSPOT_VARIANT_TARGETS) $(HOTSPOT_VARIANT_GENSRC_TARGETS) \ 276 $(HOTSPOT_VARIANT_LIBS_TARGETS) hotspot-jsig hotspot-ide-project 277 278 ################################################################################ 279 # Build demos targets 280 281 demos-jdk: 282 +($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f CompileDemos.gmk) 283 284 test-image-demos-jdk: 285 +($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f CompileDemos.gmk images) 286 287 ALL_TARGETS += demos-jdk test-image-demos-jdk 288 289 ################################################################################ 290 # Jigsaw specific data and analysis targets. 291 292 generate-summary: 293 +($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f GenerateModuleSummary.gmk) 294 295 ALL_TARGETS += generate-summary 296 297 ################################################################################ 298 # Jmod targets 299 300 JMOD_MODULES := $(ALL_MODULES) 301 JMOD_TARGETS := $(addsuffix -jmod, $(JMOD_MODULES)) 302 303 define DeclareJmodRecipe 304 $1-jmod: 305 +($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f CreateJmods.gmk \ 306 MODULE=$1) 307 endef 308 309 $(foreach m, $(JMOD_MODULES), $(eval $(call DeclareJmodRecipe,$m))) 310 311 ALL_TARGETS += $(JMOD_TARGETS) 312 313 ################################################################################ 314 # Images targets 315 316 store-source-revision: 317 +($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f SourceRevision.gmk store-source-revision) 318 319 create-source-revision-tracker: 320 +($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f SourceRevision.gmk create-source-revision-tracker) 321 322 BOOTCYCLE_TARGET := product-images 323 bootcycle-images: 324 ifneq ($(COMPILE_TYPE), cross) 325 $(call LogWarn, Boot cycle build step 2: Building a new JDK image using previously built image) 326 +$(MAKE) $(MAKE_ARGS) -f $(TOPDIR)/make/Init.gmk PARALLEL_TARGETS=$(BOOTCYCLE_TARGET) \ 327 JOBS= SPEC=$(dir $(SPEC))bootcycle-spec.gmk main 328 else 329 $(call LogWarn, Boot cycle build disabled when cross compiling) 330 endif 331 332 zip-security: 333 +($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f ZipSecurity.gmk) 334 335 zip-source: 336 +($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f ZipSource.gmk) 337 338 jrtfs-jar: 339 +($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f JrtfsJar.gmk) 340 341 jdk-image: 342 +($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Images.gmk jdk) 343 344 jre-image: 345 +($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Images.gmk jre) 346 347 symbols-image: 348 +($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Images.gmk symbols) 349 350 profiles-image: 351 +($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Images.gmk profiles) 352 353 mac-bundles-jdk: 354 +($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f MacBundles.gmk) 355 356 release-file: 357 +($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f ReleaseFile.gmk) 358 359 exploded-image-optimize: 360 +($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f ExplodedImageOptimize.gmk) 361 362 ALL_TARGETS += store-source-revision create-source-revision-tracker bootcycle-images zip-security \ 363 zip-source jrtfs-jar jdk-image jre-image \ 364 symbols-image profiles-image mac-bundles-jdk \ 365 release-file exploded-image-optimize 366 367 ################################################################################ 368 # Docs targets 369 370 # If building full docs, to complete docs-*-api we need both the javadoc and 371 # modulegraph targets. 372 docs-jdk-api-javadoc: 373 +($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Docs.gmk docs-jdk-api-javadoc) 374 375 docs-jdk-api-modulegraph: 376 +($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Docs.gmk docs-jdk-api-modulegraph) 377 378 docs-javase-api-javadoc: 379 +($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Docs.gmk docs-javase-api-javadoc) 380 381 docs-javase-api-modulegraph: 382 +($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Docs.gmk docs-javase-api-modulegraph) 383 384 docs-reference-api-javadoc: 385 +($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Docs.gmk docs-reference-api-javadoc) 386 387 docs-reference-api-modulegraph: 388 +($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Docs.gmk docs-reference-api-modulegraph) 389 390 docs-jdk-specs: 391 +($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Docs.gmk docs-jdk-specs) 392 393 docs-jdk-index: 394 +($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Docs.gmk docs-jdk-index) 395 396 docs-zip: 397 +($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Docs.gmk docs-zip) 398 399 update-build-docs: 400 +($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f UpdateBuildDocs.gmk) 401 402 ALL_TARGETS += docs-jdk-api-javadoc docs-jdk-api-modulegraph \ 403 docs-javase-api-javadoc docs-javase-api-modulegraph \ 404 docs-reference-api-javadoc docs-reference-api-modulegraph docs-jdk-specs \ 405 docs-jdk-index docs-zip update-build-docs 406 407 ################################################################################ 408 # Cross compilation support 409 410 ifeq ($(CREATING_BUILDJDK), true) 411 # This target is only called by the recursive call below. 412 create-buildjdk-interim-image-helper: interim-image jdk.jlink-launchers \ 413 java.base-copy jdk.jdeps-launchers 414 endif 415 416 create-buildjdk-copy: 417 +($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f CreateBuildJdkCopy.gmk) 418 419 create-buildjdk-interim-image: 420 +($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Main.gmk \ 421 $@-helper \ 422 SPEC=$(dir $(SPEC))buildjdk-spec.gmk \ 423 HOTSPOT_SPEC=$(dir $(SPEC))buildjdk-spec.gmk \ 424 CREATING_BUILDJDK=true) 425 426 ALL_TARGETS += create-buildjdk-copy create-buildjdk-interim-image 427 428 ################################################################################ 429 # The interim-image is a small jlinked image that is used to generate artifacts 430 # at build time for use when linking the real images. 431 432 INTERIM_JMOD_TARGETS := $(addsuffix -interim-jmod, $(INTERIM_IMAGE_MODULES)) 433 434 define DeclareInterimJmodRecipe 435 $1-interim-jmod: 436 +($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f CreateJmods.gmk \ 437 MODULE=$1 \ 438 JMODS_DIR=$(INTERIM_JMODS_DIR) \ 439 JMODS_TEMPDIR=$(INTERIM_JMODS_DIR)/temp \ 440 INTERIM_JMOD=true \ 441 ) 442 endef 443 444 $(foreach m, $(INTERIM_IMAGE_MODULES), $(eval $(call DeclareInterimJmodRecipe,$m))) 445 446 interim-image: 447 +($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f InterimImage.gmk) 448 449 ifeq ($(ENABLE_GENERATE_CLASSLIST), true) 450 generate-link-opt-data: 451 +($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f GenerateLinkOptData.gmk) 452 endif 453 454 ALL_TARGETS += $(INTERIM_JMOD_TARGETS) interim-image generate-link-opt-data 455 456 ################################################################################ 457 # Generate test names for all JTReg test groups 458 # 459 460 define DeclareRunTestRecipe 461 run-test-$1: 462 +($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f RunTests.gmk run-test TEST="$1") 463 464 exploded-run-test-$1: 465 +($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f RunTests.gmk run-test \ 466 TEST="$1" JDK_IMAGE_DIR=$(JDK_OUTPUTDIR)) 467 468 endef 469 470 # ALL_NAMED_TESTS is defined in FindTests.gmk 471 $(foreach t, $(ALL_NAMED_TESTS), $(eval $(call DeclareRunTestRecipe,$t))) 472 ALL_TEST_TARGETS := $(addprefix run-test-, $(ALL_NAMED_TESTS)) 473 ALL_EXPLODED_TEST_TARGETS := $(addprefix exploded-run-test-, $(ALL_NAMED_TESTS)) 474 475 ALL_TARGETS += $(ALL_TEST_TARGETS) $(ALL_EXPLODED_TEST_TARGETS) 476 477 ################################################################################ 478 # Build tests 479 # 480 481 prepare-test-image: 482 +($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f TestImage.gmk prepare-test-image) 483 484 build-test-hotspot-jtreg-native: 485 +($(CD) $(TOPDIR)/make/test && $(MAKE) $(MAKE_ARGS) -f JtregNativeHotspot.gmk \ 486 build-test-hotspot-jtreg-native) 487 488 test-image-hotspot-jtreg-native: 489 +($(CD) $(TOPDIR)/make/test && $(MAKE) $(MAKE_ARGS) -f JtregNativeHotspot.gmk \ 490 test-image-hotspot-jtreg-native) 491 492 build-test-jdk-jtreg-native: 493 +($(CD) $(TOPDIR)/make/test && $(MAKE) $(MAKE_ARGS) -f JtregNativeJdk.gmk \ 494 build-test-jdk-jtreg-native) 495 496 test-image-jdk-jtreg-native: 497 +($(CD) $(TOPDIR)/make/test && $(MAKE) $(MAKE_ARGS) -f JtregNativeJdk.gmk \ 498 test-image-jdk-jtreg-native) 499 500 run-test: 501 +($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f RunTests.gmk run-test TEST="$(TEST)") 502 503 exploded-run-test: 504 +($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f RunTests.gmk run-test \ 505 TEST="$(TEST)" JDK_IMAGE_DIR=$(JDK_OUTPUTDIR)) 506 507 ifeq ($(BUILD_GTEST), true) 508 test-image-hotspot-gtest: 509 +($(CD) $(TOPDIR)/make/hotspot/test && $(MAKE) $(MAKE_ARGS) -f GtestImage.gmk) 510 endif 511 512 build-test-lib: 513 +($(CD) $(TOPDIR)/make/test && $(MAKE) $(MAKE_ARGS) -f BuildTestLib.gmk) 514 515 ifeq ($(BUILD_FAILURE_HANDLER), true) 516 # Builds the failure handler jtreg extension 517 build-test-failure-handler: 518 +($(CD) $(TOPDIR)/make/test && $(MAKE) $(MAKE_ARGS) \ 519 -f BuildFailureHandler.gmk build) 520 521 # Runs the tests for the failure handler jtreg extension 522 test-failure-handler: 523 +($(CD) $(TOPDIR)/make/test && $(MAKE) $(MAKE_ARGS) \ 524 -f BuildFailureHandler.gmk test) 525 526 # Copies the failure handler jtreg extension into the test image 527 test-image-failure-handler: 528 +($(CD) $(TOPDIR)/make/test && $(MAKE) $(MAKE_ARGS) \ 529 -f BuildFailureHandler.gmk images) 530 endif 531 532 ALL_TARGETS += prepare-test-image build-test-hotspot-jtreg-native \ 533 test-image-hotspot-jtreg-native build-test-jdk-jtreg-native \ 534 test-image-jdk-jtreg-native build-test-lib build-test-failure-handler \ 535 test-failure-handler test-image-failure-handler test-image-hotspot-gtest \ 536 run-test exploded-run-test 537 538 ################################################################################ 539 # Run tests 540 541 # Run tests specified by $(TEST), or the default test set. 542 test: 543 $(call RunTests, $(TEST), $(JDK_IMAGE_DIR)) 544 545 test-hotspot-jtreg: 546 $(call RunTests, "hotspot_all", $(JDK_IMAGE_DIR)) 547 548 test-hotspot-jtreg-native: 549 $(call RunTests, "hotspot_native_sanity", $(JDK_IMAGE_DIR)) 550 551 test-hotspot-internal: 552 $(call RunTests, "hotspot_internal", $(JDK_OUTPUTDIR)) 553 554 test-hotspot-gtest: 555 $(call RunTests, "hotspot_gtest", $(JDK_OUTPUTDIR)) 556 557 test-jdk-jtreg-native: 558 $(call RunTests, "jdk_native_sanity", $(JDK_IMAGE_DIR)) 559 560 test-make: 561 ($(CD) $(TOPDIR)/test/make && $(MAKE) $(MAKE_ARGS) -f TestMake.gmk $(TEST_TARGET)) 562 563 ALL_TARGETS += test test-hotspot-jtreg test-hotspot-jtreg-native \ 564 test-hotspot-internal test-hotspot-gtest test-jdk-jtreg-native test-make 565 566 ################################################################################ 567 # Bundles 568 569 product-bundles: 570 +($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Bundles.gmk product-bundles) 571 572 profiles-bundles: 573 +($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Bundles.gmk profiles-bundles) 574 575 test-bundles: 576 +($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Bundles.gmk test-bundles) 577 578 docs-bundles: 579 +($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Bundles.gmk docs-bundles) 580 581 ALL_TARGETS += product-bundles profiles-bundles test-bundles docs-bundles 582 583 ################################################################################ 584 # Install targets 585 586 install: 587 +($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Install.gmk) 588 589 ALL_TARGETS += install 590 591 ################################################################################ 592 # 593 # Dependency declarations between targets. 594 # 595 # These are declared in two groups. First all dependencies between targets that 596 # have recipes above as these dependencies may be disabled. Then the aggregator 597 # targets that do not have recipes of their own, which will never have their 598 # dependencies disabled. 599 # 600 ################################################################################ 601 # Targets with recipes above 602 603 # If running an *-only target, parallel execution and dependencies between 604 # recipe targets are disabled. This makes it possible to run a select set of 605 # recipe targets in order. It's the responsibility of the user to make sure 606 # all prerequisites are fulfilled. 607 ifneq ($(findstring -only, $(MAKECMDGOALS)), ) 608 .NOTPARALLEL: 609 else 610 $(LANGTOOLS_GENSRC_TARGETS): buildtools-langtools 611 612 interim-langtools: $(INTERIM_LANGTOOLS_GENSRC_TARGETS) 613 614 buildtools-jdk: interim-langtools interim-cldrconverter 615 616 buildtools-hotspot: interim-langtools 617 618 buildtools-modules: exploded-image-base 619 620 $(HOTSPOT_GENSRC_TARGETS): interim-langtools buildtools-hotspot 621 622 $(JDK_GENSRC_TARGETS): interim-langtools buildtools-jdk 623 624 $(GENSRC_MODULEINFO_TARGETS): buildtools-jdk 625 626 $(GENDATA_TARGETS): interim-langtools buildtools-jdk 627 628 interim-rmic: interim-langtools 629 630 $(RMIC_TARGETS): interim-langtools interim-rmic 631 632 $(JAVA_TARGETS): interim-langtools 633 634 # Declare dependencies between hotspot-<variant>* targets 635 $(foreach v, $(JVM_VARIANTS), \ 636 $(eval hotspot-$v: hotspot-$v-gensrc hotspot-$v-libs) \ 637 $(eval hotspot-$v-libs: hotspot-$v-gensrc java.base-copy) \ 638 ) 639 640 hotspot-ide-project: hotspot exploded-image 641 642 generate-exported-symbols: java.base-libs jdk.jdwp.agent-libs 643 644 # If not already set, set the JVM variant target so that the JVM will be built. 645 JVM_MAIN_LIB_TARGETS ?= hotspot-$(JVM_VARIANT_MAIN)-libs 646 647 # Building one JVM variant is enough to start building the other libs 648 $(LIBS_TARGETS): $(JVM_MAIN_LIB_TARGETS) 649 650 $(LAUNCHER_TARGETS): java.base-libs 651 652 ifeq ($(STATIC_BUILD), true) 653 $(LAUNCHER_TARGETS): generate-exported-symbols 654 endif 655 656 # The demos are currently linking to libjvm and libjava, just like all other 657 # jdk libs, even though they don't need to. To avoid warnings, make sure they 658 # aren't built until after libjava and libjvm are available to link to. 659 demos-jdk: java.base-libs exploded-image-optimize 660 test-image-demos-jdk: demos-jdk 661 662 # Declare dependency from <module>-java to <module>-gensrc 663 $(foreach m, $(GENSRC_MODULES), $(eval $m-java: $m-gensrc)) 664 665 # Declare dependencies between java modules 666 $(foreach m, $(JAVA_MODULES), \ 667 $(eval $m-java: $(addsuffix -java, $(filter $(JAVA_MODULES), \ 668 $(call FindDepsForModule,$m))))) 669 670 # Declare dependencies between <module>-rmic to <module>-java 671 $(foreach m, $(RMIC_MODULES), $(eval $m-rmic: $m-java)) 672 673 # Declare dependencies from <module>-lib to <module>-java 674 # Skip modules that do not have java source. 675 # When creating a BUILDJDK, the java compilation has already been done by the 676 # normal build and copied in. 677 ifneq ($(CREATING_BUILDJDK), true) 678 $(foreach m, $(filter $(JAVA_MODULES), $(LIBS_MODULES)), $(eval $m-libs: $m-java)) 679 endif 680 681 # Declare dependencies from all other <module>-lib to java.base-lib 682 $(foreach t, $(filter-out java.base-libs, $(LIBS_TARGETS)), \ 683 $(eval $t: java.base-libs)) 684 685 # jdk.accessibility depends on java.desktop 686 jdk.accessibility-libs: java.desktop-libs 687 688 # This dependency needs to be explicitly declared. jdk.jdi-gensrc generates a 689 # header file used by jdk.jdwp.agent-libs. The jdk.jdwp.agent-gensrc is a 690 # virtual target. 691 jdk.jdwp.agent-libs: jdk.jdwp.agent-gensrc 692 693 # The swing beans need to have java base properly generated to avoid errors 694 # in javadoc. The X11 wrappers need the java.base include files to have been 695 # copied and processed. 696 java.desktop-gensrc-src: java.base-gensrc java.base-copy 697 698 # The annotation processing for jdk.internal.vm.ci and jdk.internal.vm.compiler 699 # needs classes from the current JDK. 700 jdk.internal.vm.ci-gensrc-src: $(addsuffix -java, \ 701 $(call FindTransitiveDepsForModule, jdk.internal.vm.ci)) 702 jdk.internal.vm.compiler-gensrc-src: $(addsuffix -java, \ 703 $(call FindTransitiveDepsForModule, jdk.internal.vm.compiler)) 704 705 # For jdk.internal.vm.compiler, the gensrc step is generating a module-info.java.extra 706 # file to be processed by the gensrc-moduleinfo target. 707 jdk.internal.vm.compiler-gensrc-moduleinfo: jdk.internal.vm.compiler-gensrc-src 708 709 # Explicitly add dependencies for special targets 710 java.base-java: unpack-sec 711 712 jdk.jdeps-gendata: java rmic 713 714 # The ct.sym generation uses all the moduleinfos as input 715 jdk.compiler-gendata: $(GENSRC_MODULEINFO_TARGETS) 716 717 # Declare dependencies between jmod targets. 718 # java.base jmod needs jrt-fs.jar and access to the other jmods to be built. 719 # When creating a BUILDJDK, we don't need to add hashes to java.base, thus 720 # we don't need to depend on all other jmods 721 ifneq ($(CREATING_BUILDJDK), true) 722 java.base-jmod: jrtfs-jar $(filter-out java.base-jmod, $(JMOD_TARGETS)) 723 endif 724 725 # If not already set, set the JVM target so that the JVM will be built. 726 JVM_MAIN_TARGETS ?= hotspot 727 728 # Building java.base-jmod requires all of VM (ie hotspot) to be built. 729 java.base-jmod: $(JVM_MAIN_TARGETS) 730 731 # Declare dependencies from <module>-jmod to all other module targets 732 # When creating a BUILDJDK, the java compilation has already been done by the 733 # normal build and copied in. 734 ifneq ($(CREATING_BUILDJDK), true) 735 $(foreach m, $(JAVA_MODULES), $(eval $m_JMOD_DEPS += $m-java)) 736 endif 737 $(foreach m, $(GENDATA_MODULES), $(eval $m_JMOD_DEPS += $m-gendata)) 738 $(foreach m, $(RMIC_MODULES), $(eval $m_JMOD_DEPS += $m-rmic)) 739 $(foreach m, $(LIBS_MODULES), $(eval $m_JMOD_DEPS += $m-libs)) 740 $(foreach m, $(LAUNCHER_MODULES), $(eval $m_JMOD_DEPS += $m-launchers)) 741 $(foreach m, $(COPY_MODULES), $(eval $m_JMOD_DEPS += $m-copy)) 742 $(foreach m, $(ALL_MODULES), $(eval $m-jmod: $($(m)_JMOD_DEPS))) 743 $(foreach m, $(INTERIM_IMAGE_MODULES), $(eval $m-interim-jmod: $($(m)_JMOD_DEPS))) 744 745 # Jmods cannot be created until we have the jmod tool ready to run. During 746 # a normal build we run it from the exploded image, but when cross compiling 747 # it's run from the buildjdk, which is either created at build time or user 748 # supplied. 749 # 750 # For the exploded image to be runnable, all java modules and 751 # jdk.jlink-launchers need to be built. We also need to copy jvm.cfg (done 752 # in java.base-copy) and tzdb.dat (done in java.base-gendata) to the 753 # appropriate location otherwise jimage, jlink and jmod won't start. This 754 # also applies when creating the buildjdk. 755 DEFAULT_JMOD_DEPS += java.base-libs java.base-copy java.base-gendata \ 756 jdk.jlink-launchers 757 # When cross compiling and buildjdk is to be created, depend on creating the 758 # buildjdk instead of the default dependencies. 759 ifeq ($(CREATE_BUILDJDK), true) 760 # Avoid calling create-buildjdk from within a create-buildjdk call. 761 ifneq ($(CREATING_BUILDJDK), true) 762 $(JMOD_TARGETS): create-buildjdk 763 buildtools-modules: create-buildjdk 764 else 765 # While actually creating the buildjdk, the default deps applies. 766 $(JMOD_TARGETS) $(INTERIM_JMOD_TARGETS): $(DEFAULT_JMOD_DEPS) 767 endif 768 else 769 # The normal non cross compilation case uses the default deps. 770 # To avoid races with the optimize target, that also needs to happen first. 771 $(JMOD_TARGETS) $(INTERIM_JMOD_TARGETS): $(DEFAULT_JMOD_DEPS) \ 772 exploded-image-optimize 773 endif 774 775 # All modules include the main license files from java.base. 776 $(JMOD_TARGETS): java.base-copy 777 778 zip-security: java.base-java java.security.jgss-java java.security.jgss-libs \ 779 $(filter jdk.crypto%, $(JAVA_TARGETS)) 780 781 zip-source: gensrc rmic 782 783 jrtfs-jar: interim-langtools 784 785 ifeq ($(ENABLE_GENERATE_CLASSLIST), true) 786 ifeq ($(CREATE_BUILDJDK), true) 787 # If creating a buildjdk, the interim image needs to be based on that. 788 generate-link-opt-data: create-buildjdk 789 else ifeq ($(EXTERNAL_BUILDJDK), false) 790 # If an external buildjdk has been provided, we skip generating an 791 # interim-image and just use the external buildjdk for generating 792 # classlist. 793 generate-link-opt-data: interim-image 794 endif 795 generate-link-opt-data: buildtools-jdk 796 797 # The generated classlist needs to go into java.base-jmod. 798 java.base-jmod jdk.jlink-jmod jdk-image jre-image: generate-link-opt-data 799 endif 800 801 release-file: create-source-revision-tracker 802 803 jdk-image: jmods zip-source demos release-file 804 jre-image: jmods release-file 805 symbols-image: $(LIBS_TARGETS) $(LAUNCHER_TARGETS) 806 807 profiles-image: jmods release-file 808 809 mac-bundles-jdk: jdk-image jre-image 810 811 # The optimize target can run as soon as the modules dir has been completely 812 # populated (java, copy and gendata targets) and the basic libs and launchers 813 # have been built. 814 exploded-image-optimize: java copy gendata java.base-libs java.base-launchers \ 815 buildtools-modules 816 817 bootcycle-images: jdk-image 818 819 docs-jdk-api-javadoc: $(GENSRC_TARGETS) rmic 820 821 docs-javase-api-javadoc: $(GENSRC_TARGETS) rmic 822 823 docs-reference-api-javadoc: $(GENSRC_TARGETS) rmic 824 825 docs-jdk-api-modulegraph: exploded-image buildtools-modules 826 827 docs-javase-api-modulegraph: exploded-image buildtools-modules 828 829 docs-reference-api-modulegraph: exploded-image buildtools-modules 830 831 # If not already set, then set the JVM specific docs targets 832 JVM_DOCS_TARGETS ?= hotspot-$(JVM_VARIANT_MAIN)-gensrc 833 834 # The gensrc steps for hotspot and jdk.jdi create html spec files. 835 docs-jdk-specs: $(JVM_DOCS_TARGETS) jdk.jdi-gensrc \ 836 docs-jdk-index 837 838 docs-jdk-index: exploded-image buildtools-modules 839 840 docs-zip: docs-jdk 841 842 test: jdk-image test-image 843 844 run-test: jdk-image test-image 845 exploded-run-test: exploded-image test-image 846 847 # Declare dependency for all generated test targets 848 $(foreach t, $(ALL_TEST_TARGETS), $(eval $t: jdk-image test-image)) 849 $(foreach t, $(ALL_EXPLODED_TEST_TARGETS), $(eval $t: exploded-image test-image)) 850 851 create-buildjdk-copy: jdk.jlink-java java.base-gendata \ 852 $(addsuffix -java, $(INTERIM_IMAGE_MODULES)) 853 854 create-buildjdk-interim-image: create-buildjdk-copy 855 856 interim-image: $(INTERIM_JMOD_TARGETS) 857 858 test-make: clean-test-make 859 860 build-test-lib: exploded-image-optimize 861 862 build-test-failure-handler: interim-langtools 863 864 test-failure-handler: build-test-failure-handler 865 866 test-image-failure-handler: build-test-failure-handler 867 868 build-test-hotspot-jtreg-native: buildtools-jdk \ 869 hotspot-$(JVM_VARIANT_MAIN)-libs 870 871 build-test-jdk-jtreg-native: buildtools-jdk java.base-libs 872 873 test-image-hotspot-jtreg-native: build-test-hotspot-jtreg-native 874 875 test-image-jdk-jtreg-native: build-test-jdk-jtreg-native 876 877 test-image-hotspot-gtest: hotspot 878 879 test-hotspot-internal: exploded-image 880 881 test-hotspot-jtreg: jdk-image test-image 882 883 test-hotspot-gtest: exploded-image test-image-hotspot-gtest 884 885 install: product-images 886 887 product-bundles: product-images 888 889 profiles-bundles: profiles-images 890 891 test-bundles: test-image 892 893 docs-bundles: docs-image 894 895 generate-summary: jmods buildtools-modules 896 897 endif 898 899 ################################################################################ 900 # Virtual targets without recipes 901 902 # If not already set, set the JVM specific tools targets 903 JVM_TOOLS_TARGETS ?= buildtools-hotspot 904 buildtools: buildtools-langtools interim-langtools interim-rmic \ 905 buildtools-jdk $(JVM_TOOLS_TARGETS) 906 907 hotspot: $(HOTSPOT_VARIANT_TARGETS) hotspot-jsig 908 909 hotspot-libs: hotspot-jsig 910 911 # Create targets hotspot-libs and hotspot-gensrc. 912 $(foreach v, $(JVM_VARIANTS), \ 913 $(eval hotspot-libs: hotspot-$v-libs) \ 914 $(eval hotspot-gensrc: hotspot-$v-gensrc) \ 915 ) 916 917 gensrc: $(GENSRC_TARGETS) 918 919 gendata: $(GENDATA_TARGETS) 920 921 copy: $(ALL_COPY_TARGETS) 922 923 java: $(JAVA_TARGETS) 924 925 rmic: $(RMIC_TARGETS) 926 927 libs: $(LIBS_TARGETS) 928 929 launchers: $(LAUNCHER_TARGETS) 930 931 jmods: $(JMOD_TARGETS) 932 933 # Explicitly declare dependency for virtual target jdk.jdwp.agent-gensrc which 934 # is actually handled by jdk.jdi-gensrc 935 jdk.jdwp.agent-gensrc: jdk.jdi-gensrc 936 937 # Declare dependencies from <module> to all the individual targets specific 938 # to that module <module>-*, that are needed for the exploded image. 939 $(foreach m, $(GENSRC_MODULES), $(eval $m: $m-gensrc)) 940 $(foreach m, $(JAVA_MODULES), $(eval $m: $m-java)) 941 $(foreach m, $(GENDATA_MODULES), $(eval $m: $m-gendata)) 942 $(foreach m, $(RMIC_MODULES), $(eval $m: $m-rmic)) 943 $(foreach m, $(LIBS_MODULES), $(eval $m: $m-libs)) 944 $(foreach m, $(LAUNCHER_MODULES), $(eval $m: $m-launchers)) 945 $(foreach m, $(ALL_COPY_MODULES), $(eval $m: $m-copy)) 946 947 # Building java.base includes building all of hotspot. 948 java.base: $(JVM_MAIN_TARGETS) 949 950 demos: demos-jdk 951 952 # The "exploded image" is a locally runnable JDK in $(OUTPUTDIR)/jdk. 953 exploded-image-base: $(ALL_MODULES) 954 exploded-image: exploded-image-base release-file 955 # When cross compiling, no need to optimize the exploded image since it won't 956 # be runnable on the host platform anyway. 957 ifneq ($(COMPILE_TYPE), cross) 958 exploded-image: exploded-image-optimize 959 endif 960 961 create-buildjdk: create-buildjdk-copy create-buildjdk-interim-image 962 963 docs-jdk-api: docs-jdk-api-javadoc 964 docs-javase-api: docs-javase-api-javadoc 965 docs-reference-api: docs-reference-api-javadoc 966 967 # If we're building full docs, we must also generate the module graphs to 968 # get non-broken api documentation. 969 ifeq ($(ENABLE_FULL_DOCS), true) 970 docs-jdk-api: docs-jdk-api-modulegraph 971 docs-javase-api: docs-javase-api-modulegraph 972 docs-reference-api: docs-reference-api-modulegraph 973 endif 974 975 docs-jdk: docs-jdk-api docs-jdk-specs docs-jdk-index 976 docs-javase: docs-javase-api 977 docs-reference: docs-reference-api 978 979 # alias for backwards compatibility 980 docs-javadoc: docs-jdk-api 981 982 mac-bundles: mac-bundles-jdk 983 984 # The $(OUTPUTDIR)/images directory contain the resulting deliverables, 985 # and in line with this, our targets for creating these are named *-image[s]. 986 987 # This target builds the product images, e.g. the JRE and JDK image 988 # (and possibly other, more specific versions) 989 product-images: jdk-image jre-image symbols-image exploded-image 990 991 # zip-security is actually a bundle, but for now it needs to be considered 992 # an image until this can be cleaned up properly. 993 product-images: zip-security 994 995 # Declare these for backwards compatiblity and convenience. 996 profiles profiles-images: profiles-image 997 998 # The module summary cannot be run when: 999 # * Cross compiling and building a partial BUILDJDK for the build host 1000 # * An external buildjdk has been supplied since it may not match the 1001 # module selection of the target jdk 1002 ifneq ($(CREATE_BUILDJDK), true) 1003 ifeq ($(EXTERNAL_BUILDJDK), false) 1004 product-images: generate-summary 1005 endif 1006 endif 1007 1008 ifeq ($(OPENJDK_TARGET_OS), macosx) 1009 product-images: mac-bundles 1010 endif 1011 1012 # This target builds the documentation image 1013 docs-image: docs-jdk 1014 1015 # If not already set, set the JVM specific targets to build the test image 1016 JVM_TEST_IMAGE_TARGETS ?= test-image-hotspot-jtreg-native test-image-hotspot-gtest 1017 1018 # This target builds the test image 1019 test-image: prepare-test-image \ 1020 test-image-jdk-jtreg-native test-image-failure-handler \ 1021 test-image-demos-jdk $(JVM_TEST_IMAGE_TARGETS) 1022 1023 ################################################################################ 1024 1025 # all-images builds all our deliverables as images. 1026 all-images: product-images test-image docs-image 1027 1028 # all-bundles packages all our deliverables as tar.gz bundles. 1029 all-bundles: product-bundles test-bundles docs-bundles 1030 1031 ALL_TARGETS += buildtools hotspot hotspot-libs hotspot-gensrc gensrc gendata \ 1032 copy java rmic libs launchers jmods \ 1033 jdk.jdwp.agent-gensrc $(ALL_MODULES) demos \ 1034 exploded-image-base exploded-image \ 1035 create-buildjdk docs-jdk-api docs-javase-api docs-reference-api docs-jdk \ 1036 docs-javase docs-reference docs-javadoc mac-bundles product-images \ 1037 profiles profiles-images \ 1038 docs-image test-image all-images \ 1039 all-bundles 1040 1041 ################################################################################ 1042 1043 # Traditional targets typically run by users. 1044 # These can be considered aliases for the targets now named by a more 1045 # "modern" naming scheme. 1046 default: $(DEFAULT_MAKE_TARGET) 1047 jdk: exploded-image 1048 images: product-images 1049 docs: docs-image 1050 bundles: all-bundles 1051 all: all-images 1052 1053 ALL_TARGETS += default jdk images docs bundles all 1054 1055 ################################################################################ 1056 ################################################################################ 1057 # 1058 # Clean targets 1059 # 1060 ################################################################################ 1061 # Clean targets are automatically run serially by the Makefile calling this 1062 # file. 1063 1064 CLEAN_DIRS += hotspot jdk bootcycle-build test buildtools support \ 1065 images make-support test-make bundles buildjdk test-results test-support 1066 CLEAN_DIR_TARGETS := $(addprefix clean-, $(CLEAN_DIRS)) 1067 CLEAN_SUPPORT_DIRS += demos 1068 CLEAN_SUPPORT_DIR_TARGETS := $(addprefix clean-, $(CLEAN_SUPPORT_DIRS)) 1069 CLEAN_TESTS += hotspot-jtreg-native jdk-jtreg-native lib 1070 CLEAN_TEST_TARGETS += $(addprefix clean-test-, $(CLEAN_TESTS)) 1071 CLEAN_PHASES := gensrc java native include 1072 CLEAN_PHASE_TARGETS := $(addprefix clean-, $(CLEAN_PHASES)) 1073 CLEAN_MODULE_TARGETS := $(addprefix clean-, $(ALL_MODULES)) 1074 # Construct targets of the form clean-$module-$phase 1075 CLEAN_MODULE_PHASE_TARGETS := $(addprefix clean-, $(foreach m, $(ALL_MODULES), \ 1076 $(addprefix $m-, $(CLEAN_PHASES)))) 1077 1078 # Remove everything, except the output from configure. 1079 clean: $(CLEAN_DIR_TARGETS) 1080 ($(CD) $(OUTPUTDIR) && $(RM) -r build*.log*) 1081 $(ECHO) Cleaned all build artifacts. 1082 1083 clean-docs: 1084 $(call CleanDocs) 1085 1086 $(CLEAN_DIR_TARGETS): 1087 $(call CleanDir,$(patsubst clean-%, %, $@)) 1088 1089 $(CLEAN_SUPPORT_DIR_TARGETS): 1090 $(call CleanSupportDir,$(patsubst clean-%, %, $@)) 1091 1092 $(CLEAN_TEST_TARGETS): 1093 $(call CleanTest,$(patsubst clean-test-%, %, $@)) 1094 1095 $(CLEAN_PHASE_TARGETS): 1096 $(call Clean-$(patsubst clean-%,%, $@)) 1097 1098 $(CLEAN_MODULE_TARGETS): 1099 $(call CleanModule,$(patsubst clean-%, %, $@)) 1100 1101 $(CLEAN_MODULE_PHASE_TARGETS): 1102 $(call Clean-$(word 3, $(subst -,$(SPACE),$@)), \ 1103 $(word 2, $(subst -,$(SPACE),$@))) 1104 1105 # When removing the support dir, we must also remove jdk. Building classes has 1106 # the side effect of generating native headers. The headers end up in support 1107 # while classes and touch files end up in jdk. 1108 clean-support: clean-jdk 1109 1110 clean-test: clean-test-results clean-test-support 1111 1112 # Remove everything, including configure configuration. If the output 1113 # directory was created by configure and now becomes empty, remove it as well. 1114 dist-clean: clean 1115 ($(CD) $(OUTPUTDIR) && \ 1116 $(RM) -r *spec.gmk $(CONFIGURESUPPORT_OUTPUTDIR) Makefile compare.sh ide) 1117 $(if $(filter $(CONF_NAME),$(notdir $(OUTPUTDIR))), \ 1118 if test "x`$(LS) $(OUTPUTDIR)`" != x; then \ 1119 $(ECHO) "Warning: Not removing non-empty configuration directory for '$(CONF_NAME)'" ; \ 1120 else \ 1121 ($(CD) $(TOPDIR) && $(ECHO) "Removing configuration directory for '$(CONF_NAME)'" \ 1122 && $(RM) -r $(OUTPUTDIR)) \ 1123 fi \ 1124 ) 1125 $(ECHO) Cleaned everything, you will have to re-run configure. 1126 1127 ALL_TARGETS += clean clean-docs dist-clean $(CLEAN_DIR_TARGETS) $(CLEAN_SUPPORT_DIR_TARGETS) \ 1128 $(CLEAN_TEST_TARGETS) $(CLEAN_PHASE_TARGETS) $(CLEAN_MODULE_TARGETS) \ 1129 $(CLEAN_MODULE_PHASE_TARGETS) 1130 1131 ################################################################################ 1132 # Declare *-only targets for each normal target 1133 $(foreach t, $(ALL_TARGETS), $(eval $(t)-only: $(t))) 1134 1135 ALL_TARGETS += $(addsuffix -only, $(filter-out dist-clean clean%, $(ALL_TARGETS))) 1136 1137 ################################################################################ 1138 1139 # Include JPRT targets 1140 include $(TOPDIR)/make/Jprt.gmk 1141 1142 ################################################################################ 1143 1144 # The following targets are intentionally not added to ALL_TARGETS since they 1145 # are internal only, to support Init.gmk. 1146 1147 print-targets: 1148 @$(ECHO) $(sort $(ALL_TARGETS)) 1149 1150 print-modules: 1151 @$(ECHO) $(sort $(ALL_MODULES)) 1152 1153 print-tests: 1154 @$(ECHO) $(sort $(ALL_NAMED_TESTS)) 1155 1156 create-main-targets-include: 1157 $(call LogInfo, Generating main target list) 1158 @$(ECHO) ALL_MAIN_TARGETS := $(sort $(ALL_TARGETS)) > \ 1159 $(MAKESUPPORT_OUTPUTDIR)/main-targets.gmk 1160 1161 ################################################################################ 1162 # Hook to include the corresponding custom file, if present. 1163 $(eval $(call IncludeCustomExtension, Main-post.gmk)) 1164 1165 .PHONY: $(ALL_TARGETS) 1166 1167 FRC: # Force target