Main.gmk revision 2040:1d683c899373
1160814Ssimon# 2160814Ssimon# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved. 3160814Ssimon# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4160814Ssimon# 5160814Ssimon# This code is free software; you can redistribute it and/or modify it 6160814Ssimon# under the terms of the GNU General Public License version 2 only, as 7160814Ssimon# published by the Free Software Foundation. Oracle designates this 8160814Ssimon# particular file as subject to the "Classpath" exception as provided 9160814Ssimon# by Oracle in the LICENSE file that accompanied this code. 10160814Ssimon# 11160814Ssimon# This code is distributed in the hope that it will be useful, but WITHOUT 12160814Ssimon# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13160814Ssimon# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14160814Ssimon# version 2 for more details (a copy is included in the LICENSE file that 15160814Ssimon# accompanied this code). 16160814Ssimon# 17160814Ssimon# You should have received a copy of the GNU General Public License version 18160814Ssimon# 2 along with this work; if not, write to the Free Software Foundation, 19160814Ssimon# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20160814Ssimon# 21160814Ssimon# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22160814Ssimon# or visit www.oracle.com if you need additional information or have any 23160814Ssimon# questions. 24160814Ssimon# 25160814Ssimon 26160814Ssimon################################################################################ 27160814Ssimon# This is the main makefile containing most actual top level targets. It needs 28160814Ssimon# to be called with a SPEC file defined. 29160814Ssimon################################################################################ 30280297Sjkim 31280297Sjkim# Declare default target 32280297Sjkimdefault: 33280297Sjkim 34280297Sjkimifeq ($(wildcard $(SPEC)),) 35280297Sjkim $(error Main.gmk needs SPEC set to a proper spec.gmk) 36280297Sjkimendif 37160814Ssimon 38160814Ssimon# Now load the spec 39337982Sjkiminclude $(SPEC) 40160814Ssimon 41160814Ssimoninclude $(SRC_ROOT)/make/MainSupport.gmk 42160814Ssimon 43160814Ssimon# Load the vital tools for all the makefiles. 44160814Ssimoninclude $(SRC_ROOT)/make/common/MakeBase.gmk 45160814Ssimoninclude $(SRC_ROOT)/make/common/Modules.gmk 46280297Sjkim 47160814Ssimon# Declare ALL_TARGETS as an immediate variable. This variable is a list of all 48160814Ssimon# valid top level targets. It's used to declare them all as PHONY and to 49160814Ssimon# generate the -only targets. 50160814SsimonALL_TARGETS := 51160814Ssimon 52160814Ssimon# Hook to include the corresponding custom file, if present. 53160814Ssimon$(eval $(call IncludeCustomExtension, , Main.gmk)) 54160814Ssimon 55160814Ssimon# All modules for the current target platform. 56160814SsimonALL_MODULES := $(call FindAllModules) 57160814Ssimon 58160814Ssimon################################################################################ 59160814Ssimon################################################################################ 60160814Ssimon# 61160814Ssimon# Recipes for all targets. Only recipes, dependencies are declared later. 62160814Ssimon# 63160814Ssimon################################################################################ 64160814Ssimon 65160814Ssimon################################################################################ 66160814Ssimon# Interim/build tools targets, compiling tools used during the build 67160814Ssimon 68160814Ssimonbuildtools-langtools: 69160814Ssimon +($(CD) $(LANGTOOLS_TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Tools.gmk) 70160814Ssimon 71160814Ssimoninterim-langtools: 72160814Ssimon +($(CD) $(LANGTOOLS_TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f CompileInterim.gmk) 73160814Ssimon 74160814Ssimoninterim-rmic: 75160814Ssimon +($(CD) $(JDK_TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f CompileInterimRmic.gmk) 76160814Ssimon 77160814Ssimoninterim-cldrconverter: 78160814Ssimon +($(CD) $(JDK_TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f CopyInterimCLDRConverter.gmk) 79160814Ssimon 80160814Ssimonbuildtools-jdk: 81160814Ssimon +($(CD) $(JDK_TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f CompileTools.gmk) 82160814Ssimon 83160814SsimonALL_TARGETS += buildtools-langtools interim-langtools \ 84160814Ssimon interim-rmic interim-cldrconverter buildtools-jdk 85160814Ssimon 86160814Ssimon################################################################################ 87160814Ssimon# Special targets for certain modules 88160814Ssimon 89160814Ssimonimport-hotspot: 90160814Ssimon +($(CD) $(JDK_TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Import.gmk) 91160814Ssimon 92160814Ssimonunpack-sec: 93160814Ssimon +($(CD) $(JDK_TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f UnpackSecurity.gmk) 94160814Ssimon 95160814Ssimongenerate-exported-symbols: 96160814Ssimon +($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f BuildStatic.gmk) 97160814Ssimon 98238405SjkimALL_TARGETS += import-hotspot unpack-sec generate-exported-symbols 99238405Sjkim 100280297Sjkim################################################################################ 101280297Sjkim# Gensrc targets, generating source before java compilation can be done 102280297Sjkim$(eval $(call DeclareRecipesForPhase, GENSRC, \ 103280297Sjkim TARGET_SUFFIX := gensrc, \ 104280297Sjkim FILE_PREFIX := Gensrc, \ 105160814Ssimon MAKE_SUBDIR := gensrc, \ 106337982Sjkim CHECK_MODULES := $(ALL_MODULES), \ 107337982Sjkim MULTIPLE_MAKEFILES := true)) 108337982Sjkim 109337982SjkimJDK_GENSRC_TARGETS := $(filter %-gensrc-jdk, $(GENSRC_TARGETS)) 110280297SjkimLANGTOOLS_GENSRC_TARGETS := $(filter %-gensrc-langtools, $(GENSRC_TARGETS)) 111337982SjkimCORBA_GENSRC_TARGETS := $(filter %-gensrc-corba, $(GENSRC_TARGETS)) 112160814SsimonHOTSPOT_GENSRC_TARGETS := $(filter %-gensrc-hotspot, $(GENSRC_TARGETS)) 113280297Sjkim 114280297SjkimGENSRC_MODULEINFO_MODULES := $(ALL_MODULES) 115337982SjkimGENSRC_MODULEINFO_TARGETS := $(addsuffix -gensrc-moduleinfo, \ 116337982Sjkim $(GENSRC_MODULEINFO_MODULES)) 117337982Sjkim 118337982SjkimGENSRC_MODULES := $(GENSRC_MODULEINFO_MODULES) 119280297SjkimGENSRC_TARGETS += $(sort $(GENSRC_MODULEINFO_TARGETS) \ 120337982Sjkim $(addsuffix -gensrc, $(GENSRC_MODULES))) 121337982Sjkim 122337982Sjkimdefine DeclareModuleInfoRecipe 123337982Sjkim $1-gensrc-moduleinfo: 124280297Sjkim +($(CD) $(SRC_ROOT)/make && $(MAKE) $(MAKE_ARGS) \ 125280297Sjkim -f GensrcModuleInfo.gmk MODULE=$1) 126280297Sjkim 127337982Sjkim $1-gensrc: $1-gensrc-moduleinfo 128337982Sjkimendef 129280297Sjkim 130337982Sjkim$(foreach m, $(GENSRC_MODULEINFO_MODULES), $(eval $(call DeclareModuleInfoRecipe,$m))) 131337982Sjkim 132280297SjkimALL_TARGETS += $(GENSRC_TARGETS) 133160814Ssimon 134280297Sjkim################################################################################ 135280297Sjkim# Generate data targets 136280297Sjkim$(eval $(call DeclareRecipesForPhase, GENDATA, \ 137280297Sjkim TARGET_SUFFIX := gendata, \ 138280297Sjkim FILE_PREFIX := Gendata, \ 139160814Ssimon MAKE_SUBDIR := gendata, \ 140280297Sjkim CHECK_MODULES := $(ALL_MODULES), \ 141280297Sjkim USE_WRAPPER := true)) 142280297Sjkim 143280297SjkimALL_TARGETS += $(GENDATA_TARGETS) 144280297Sjkim 145280297Sjkim################################################################################ 146280297Sjkim# Copy files targets 147160814Ssimon$(eval $(call DeclareRecipesForPhase, COPY, \ 148280297Sjkim TARGET_SUFFIX := copy, \ 149280297Sjkim FILE_PREFIX := Copy, \ 150280297Sjkim MAKE_SUBDIR := copy, \ 151160814Ssimon CHECK_MODULES := $(ALL_MODULES), \ 152280297Sjkim USE_WRAPPER := true, \ 153280297Sjkim MULTIPLE_MAKEFILES := true)) 154280297Sjkim 155280297SjkimALL_COPY_MODULES += $(COPY_MODULES) 156280297SjkimALL_COPY_TARGETS += $(COPY_TARGETS) 157280297Sjkim 158280297SjkimIMPORT_COPY_MODULES := $(call FindImportedModules) 159280297SjkimIMPORT_COPY_TARGETS := $(addsuffix -copy, $(IMPORT_COPY_MODULES)) 160160814SsimonALL_COPY_MODULES += $(IMPORT_COPY_MODULES) 161280297SjkimALL_COPY_TARGETS += $(IMPORT_COPY_TARGETS) 162280297Sjkim 163280297Sjkimdefine DeclareImportCopyRecipe 164280297Sjkim $1-copy: 165280297Sjkim +($(CD) $(SRC_ROOT)/make && $(MAKE) $(MAKE_ARGS) \ 166280297Sjkim -f CopyImportModules.gmk MODULE=$1) 167280297Sjkimendef 168280297Sjkim 169280297Sjkim$(foreach m, $(IMPORT_COPY_MODULES), $(eval $(call DeclareImportCopyRecipe,$m))) 170280297Sjkim 171280297SjkimALL_TARGETS += $(ALL_COPY_TARGETS) 172280297Sjkim 173280297Sjkim################################################################################ 174280297Sjkim# Targets for compiling all java modules. Nashorn is treated separately. 175280297SjkimJAVA_MODULES := $(ALL_MODULES) 176280297SjkimJAVA_TARGETS := $(addsuffix -java, $(JAVA_MODULES)) 177280297Sjkim 178280297Sjkimdefine DeclareCompileJavaRecipe 179280297Sjkim $1-java: 180280297Sjkim +($(CD) $(SRC_ROOT)/make && $(MAKE) $(MAKE_ARGS) \ 181280297Sjkim -f CompileJavaModules.gmk MODULE=$1) 182280297Sjkimendef 183280297Sjkim 184280297Sjkim$(foreach m, $(filter-out jdk.scripting.nashorn, $(JAVA_MODULES)), \ 185280297Sjkim $(eval $(call DeclareCompileJavaRecipe,$m))) 186280297Sjkim 187280297Sjkim# Build nashorn. Needs to be compiled separately from the rest of the modules 188280297Sjkim# due to nasgen. 189280297Sjkimjdk.scripting.nashorn-java: 190280297Sjkim +($(CD) $(NASHORN_TOPDIR)/make && $(MAKE) $(MAKE_ARGS) \ 191280297Sjkim -f BuildNashorn.gmk compile) 192280297Sjkim 193160814SsimonALL_TARGETS += $(JAVA_TARGETS) 194280297Sjkim 195160814Ssimon################################################################################ 196280297Sjkim# Targets for running rmic. 197280297Sjkim$(eval $(call DeclareRecipesForPhase, RMIC, \ 198280297Sjkim TARGET_SUFFIX := rmic, \ 199280297Sjkim FILE_PREFIX := Rmic, \ 200280297Sjkim MAKE_SUBDIR := rmic, \ 201280297Sjkim CHECK_MODULES := $(ALL_MODULES))) 202280297Sjkim 203280297SjkimALL_TARGETS += $(RMIC_TARGETS) 204160814Ssimon 205280297Sjkim################################################################################ 206280297Sjkim# Targets for compiling native libraries 207280297Sjkim$(eval $(call DeclareRecipesForPhase, LIBS, \ 208280297Sjkim TARGET_SUFFIX := libs, \ 209280297Sjkim FILE_PREFIX := Lib, \ 210280297Sjkim MAKE_SUBDIR := lib, \ 211280297Sjkim CHECK_MODULES := $(ALL_MODULES), \ 212280297Sjkim USE_WRAPPER := true)) 213280297Sjkim 214280297SjkimALL_TARGETS += $(LIBS_TARGETS) 215280297Sjkim 216160814Ssimon################################################################################ 217280297Sjkim# Targets for compiling native executables 218280297Sjkim$(eval $(call DeclareRecipesForPhase, LAUNCHER, \ 219280297Sjkim TARGET_SUFFIX := launchers, \ 220280297Sjkim FILE_PREFIX := Launcher, \ 221160814Ssimon MAKE_SUBDIR := launcher, \ 222280297Sjkim CHECK_MODULES := $(ALL_MODULES), \ 223280297Sjkim USE_WRAPPER := true)) 224280297Sjkim 225280297SjkimALL_TARGETS += $(LAUNCHER_TARGETS) 226280297Sjkim 227280297Sjkim################################################################################ 228280297Sjkim# Build hotspot target 229280297Sjkim 230280297Sjkimifeq ($(BUILD_HOTSPOT),true) 231280297Sjkim hotspot: 232280297Sjkim ifeq ($(USE_NEW_HOTSPOT_BUILD), true) 233280297Sjkim +($(CD) $(HOTSPOT_TOPDIR)/makefiles && $(MAKE) $(MAKE_ARGS) -f BuildHotspot.gmk) 234280297Sjkim else 235280297Sjkim +($(CD) $(SRC_ROOT)/make && $(MAKE) $(MAKE_ARGS) -f HotspotWrapper.gmk) 236280297Sjkim endif 237280297Sjkimendif 238160814Ssimon 239280297Sjkimhotspot-ide-project: 240280297Sjkim +($(CD) $(HOTSPOT_TOPDIR)/makefiles && $(MAKE) $(MAKE_ARGS) -f ide/CreateVSProject.gmk) 241280297Sjkim 242280297SjkimALL_TARGETS += hotspot hotspot-ide-project 243280297Sjkim 244280297Sjkim################################################################################ 245280297Sjkim# Build demos and samples targets 246280297Sjkim 247280297Sjkimdemos-jdk: 248280297Sjkim +($(CD) $(JDK_TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f CompileDemos.gmk) 249280297Sjkim 250280297Sjkimsamples-jdk: 251280297Sjkim +($(CD) $(JDK_TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f CopySamples.gmk) 252280297Sjkim 253280297SjkimALL_TARGETS += demos-jdk samples-jdk 254280297Sjkim 255280297Sjkim################################################################################ 256280297Sjkim# Jigsaw specific data and analysis targets. 257280297Sjkim 258280297Sjkimgenerate-summary: 259280297Sjkim +($(CD) $(JDK_TOPDIR)/make && $(MAKE) -f GenerateModuleSummary.gmk) 260280297Sjkim 261280297SjkimALL_TARGETS += generate-summary 262280297Sjkim 263280297Sjkim################################################################################ 264280297Sjkim# Strip binaries targets 265280297Sjkim 266280297SjkimSTRIP_MODULES := $(sort $(LIBS_MODULES) $(LAUNCHER_MODULES) $(COPY_MODULES) \ 267280297Sjkim $(GENDATA_MODULES)) 268280297SjkimSTRIP_TARGETS := $(addsuffix -strip, $(STRIP_MODULES)) 269280297Sjkim 270280297Sjkimdefine DeclareStripRecipe 271280297Sjkim $1-strip: 272280297Sjkim +($(CD) $(SRC_ROOT)/make && $(MAKE) $(MAKE_ARGS) -f StripBinaries.gmk \ 273280297Sjkim MODULE=$1) 274280297Sjkimendef 275280297Sjkim 276280297Sjkim$(foreach m, $(STRIP_MODULES), $(eval $(call DeclareStripRecipe,$m))) 277280297Sjkim 278280297SjkimALL_TARGETS += $(STRIP_TARGETS) 279280297Sjkim 280280297Sjkim################################################################################ 281280297Sjkim# Jmod targets 282280297Sjkim 283280297SjkimJMOD_MODULES := $(ALL_MODULES) 284280297SjkimJMOD_TARGETS := $(addsuffix -jmod, $(JMOD_MODULES)) 285280297Sjkim 286160814Ssimondefine DeclareJmodRecipe 287280297Sjkim $1-jmod: 288160814Ssimon +($(CD) $(SRC_ROOT)/make && $(MAKE) $(MAKE_ARGS) -f CreateJmods.gmk \ 289280297Sjkim MODULE=$1) 290280297Sjkimendef 291280297Sjkim 292280297Sjkim$(foreach m, $(JMOD_MODULES), $(eval $(call DeclareJmodRecipe,$m))) 293280297Sjkim 294280297SjkimALL_TARGETS += $(JMOD_TARGETS) 295280297Sjkim 296280297Sjkim################################################################################ 297280297Sjkim# Images targets 298280297Sjkim 299280297Sjkim# Stores the tips for each repository. This file is be used when constructing the jdk image and can be 300280297Sjkim# used to track the exact sources used to build that image. 301160814Ssimonsource-tips: $(SUPPORT_OUTPUTDIR)/source_tips 302280297Sjkim$(SUPPORT_OUTPUTDIR)/source_tips: FRC 303280297Sjkim $(call MakeDir, $(@D)) 304280297Sjkim @$(RM) $@ 305280297Sjkim @$(call GetSourceTips) 306160814Ssimon 307280297SjkimBOOTCYCLE_TARGET := product-images 308280297Sjkimbootcycle-images: 309280297Sjkim @$(ECHO) Boot cycle build step 2: Building a new JDK image using previously built image 310280297Sjkim +$(MAKE) -f $(SRC_ROOT)/make/Init.gmk PARALLEL_TARGETS=$(BOOTCYCLE_TARGET) \ 311160814Ssimon JOBS= SPEC=$(dir $(SPEC))bootcycle-spec.gmk main 312280297Sjkim 313280297Sjkimzip-security: 314280297Sjkim +($(CD) $(SRC_ROOT)/make && $(MAKE) $(MAKE_ARGS) -f ZipSecurity.gmk) 315280297Sjkim 316280297Sjkimzip-source: 317280297Sjkim +($(CD) $(SRC_ROOT)/make && $(MAKE) $(MAKE_ARGS) -f ZipSource.gmk) 318280297Sjkim 319280297Sjkimjrtfs-jar: 320280297Sjkim +($(CD) $(SRC_ROOT)/make && $(MAKE) $(MAKE_ARGS) -f JrtfsJar.gmk) 321280297Sjkim 322280297Sjkimjimages: 323280297Sjkim +($(CD) $(SRC_ROOT)/make && $(MAKE) $(MAKE_ARGS) -f Images.gmk jimages) 324280297Sjkim 325280297Sjkimprofiles: 326280297Sjkim +($(CD) $(SRC_ROOT)/make && $(MAKE) $(MAKE_ARGS) -f Images.gmk profiles) 327280297Sjkim 328160814Ssimonmac-bundles-jdk: 329280297Sjkim +($(CD) $(SRC_ROOT)/make && $(MAKE) $(MAKE_ARGS) -f MacBundles.gmk) 330280297Sjkim 331160814SsimonALL_TARGETS += source-tips bootcycle-images zip-security zip-source \ 332160814Ssimon jrtfs-jar jimages profiles mac-bundles-jdk 333280297Sjkim 334280297Sjkim################################################################################ 335280297Sjkim# Docs targets 336280297Sjkim 337160814Ssimondocs-javadoc: 338280297Sjkim +($(CD) $(SRC_ROOT)/make && $(MAKE) $(MAKE_ARGS) -f Javadoc.gmk docs) 339280297Sjkim 340160814Ssimondocs-jvmtidoc: 341280297Sjkim +($(CD) $(SRC_ROOT)/make && $(MAKE) $(MAKE_ARGS) -f Javadoc.gmk jvmtidocs) 342280297Sjkim 343280297Sjkimzip-docs: 344280297Sjkim +($(CD) $(SRC_ROOT)/make && $(MAKE) $(MAKE_ARGS) -f Javadoc.gmk zip-docs) 345280297Sjkim 346280297SjkimALL_TARGETS += docs-javadoc docs-jvmtidoc zip-docs 347280297Sjkim 348160814Ssimon################################################################################ 349280297Sjkim# Cross compilation support 350280297Sjkim 351160814Ssimonifeq ($(CREATE_BUILDJDK), true) 352280297Sjkim # This target is only called by the recursive call below. 353280297Sjkim create-buildjdk-compile-hotspot-helper: hotspot 354280297Sjkim create-buildjdk-compile-modules-helper: jdk.jlink-launchers java.base-copy \ 355280297Sjkim jdk.jdeps-launchers 356280297Sjkimendif 357280297Sjkim 358160814Ssimoncreate-buildjdk-copy: 359280297Sjkim +($(CD) $(SRC_ROOT)/make && $(MAKE) $(MAKE_ARGS) -f CreateBuildJdkCopy.gmk) 360280297Sjkim 361160814Ssimoncreate-buildjdk-compile-hotspot create-buildjdk-compile-modules: 362280297Sjkim +($(CD) $(SRC_ROOT)/make && $(MAKE) $(MAKE_ARGS) -f Main.gmk \ 363280297Sjkim $@-helper \ 364280297Sjkim SPEC=$(dir $(SPEC))buildjdk-spec.gmk \ 365280297Sjkim HOTSPOT_SPEC=$(dir $(SPEC))buildjdk-spec.gmk \ 366280297Sjkim CREATING_BUILDJDK=true) 367160814Ssimon 368160814SsimonALL_TARGETS += create-buildjdk-copy create-buildjdk-compile-hotspot \ 369160814Ssimon create-buildjdk-compile-modules 370160814Ssimon 371160814Ssimon################################################################################ 372160814Ssimon# Build tests 373238405Sjkim# 374280297Sjkim 375280297Sjkimprepare-test-image: 376280297Sjkim $(MKDIR) -p $(TEST_IMAGE_DIR) 377280297Sjkim $(ECHO) > $(TEST_IMAGE_DIR)/Readme.txt 'JDK test image' 378160814Ssimon 379280297Sjkimbuild-test-hotspot-jtreg-native: 380160814Ssimon +($(CD) $(HOTSPOT_TOPDIR)/make/test && $(MAKE) $(MAKE_ARGS) -f JtregNative.gmk \ 381280297Sjkim build-test-hotspot-jtreg-native) 382280297Sjkim 383280297Sjkimtest-image-hotspot-jtreg-native: 384280297Sjkim +($(CD) $(HOTSPOT_TOPDIR)/make/test && $(MAKE) $(MAKE_ARGS) -f JtregNative.gmk \ 385280297Sjkim test-image-hotspot-jtreg-native) 386160814Ssimon 387280297Sjkimbuild-test-jdk-jtreg-native: 388280297Sjkim +($(CD) $(JDK_TOPDIR)/make/test && $(MAKE) $(MAKE_ARGS) -f JtregNative.gmk \ 389280297Sjkim build-test-jdk-jtreg-native) 390280297Sjkim 391280297Sjkimtest-image-jdk-jtreg-native: 392280297Sjkim +($(CD) $(JDK_TOPDIR)/make/test && $(MAKE) $(MAKE_ARGS) -f JtregNative.gmk \ 393280297Sjkim test-image-jdk-jtreg-native) 394280297Sjkim 395280297Sjkimbuild-test-lib: 396280297Sjkim +($(CD) $(TOPDIR)/make/test && $(MAKE) $(MAKE_ARGS) -f BuildTestLib.gmk) 397280297Sjkim 398280297Sjkimifeq ($(BUILD_FAILURE_HANDLER), true) 399280297Sjkim # Builds the failure handler jtreg extension 400160814Ssimon build-test-failure-handler: 401280297Sjkim +($(CD) $(TOPDIR)/make/test && $(MAKE) $(MAKE_ARGS) \ 402280297Sjkim -f BuildFailureHandler.gmk build) 403280297Sjkim 404280297Sjkim # Runs the tests for the failure handler jtreg extension 405280297Sjkim test-failure-handler: 406280297Sjkim +($(CD) $(TOPDIR)/make/test && $(MAKE) $(MAKE_ARGS) \ 407280297Sjkim -f BuildFailureHandler.gmk test) 408280297Sjkim 409280297Sjkim # Copies the failure handler jtreg extension into the test image 410160814Ssimon test-image-failure-handler: 411280297Sjkim +($(CD) $(TOPDIR)/make/test && $(MAKE) $(MAKE_ARGS) \ 412280297Sjkim -f BuildFailureHandler.gmk images) 413280297Sjkimendif 414280297Sjkim 415280297SjkimALL_TARGETS += prepare-test-image build-test-hotspot-jtreg-native \ 416280297Sjkim test-image-hotspot-jtreg-native build-test-jdk-jtreg-native \ 417280297Sjkim test-image-jdk-jtreg-native build-test-lib build-test-failure-handler \ 418280297Sjkim test-failure-handler test-image-failure-handler 419280297Sjkim 420280297Sjkim################################################################################ 421160814Ssimon# Run tests 422280297Sjkim 423280297Sjkim# Run tests specified by $(TEST), or the default test set. 424280297Sjkimtest: 425280297Sjkim $(call RunTests, $(TEST)) 426280297Sjkim 427280297Sjkimtest-hotspot-jtreg: 428280297Sjkim $(call RunTests, "hotspot_all") 429280297Sjkim 430160814Ssimontest-hotspot-jtreg-native: 431280297Sjkim $(call RunTests, "hotspot_native_sanity") 432280297Sjkim 433160814Ssimontest-hotspot-internal: 434280297Sjkim $(call RunTests, "hotspot_internal") 435280297Sjkim 436280297Sjkimtest-jdk-jtreg-native: 437280297Sjkim $(call RunTests, "jdk_native_sanity") 438280297Sjkim 439160814Ssimontest-make: 440280297Sjkim ($(CD) $(SRC_ROOT)/test/make && $(MAKE) $(MAKE_ARGS) -f TestMake.gmk $(TEST_TARGET)) 441280297Sjkim 442280297SjkimALL_TARGETS += test test-hotspot-jtreg test-hotspot-jtreg-native \ 443280297Sjkim test-hotspot-internal test-jdk-jtreg-native test-make 444280297Sjkim 445280297Sjkim################################################################################ 446160814Ssimon# Install targets 447280297Sjkim 448280297Sjkiminstall: 449160814Ssimon +($(CD) $(SRC_ROOT)/make && $(MAKE) $(MAKE_ARGS) -f Install.gmk) 450280297Sjkim 451280297SjkimALL_TARGETS += install 452280297Sjkim 453280297Sjkim################################################################################ 454280297Sjkim# 455290207Sjkim# Dependency declarations between targets. 456280297Sjkim# 457280297Sjkim# These are declared in two groups. First all dependencies between targets that 458160814Ssimon# have recipes above as these dependencies may be disabled. Then the aggregator 459280297Sjkim# targets that do not have recipes of their own, which will never have their 460160814Ssimon# dependencies disabled. 461280297Sjkim# 462280297Sjkim################################################################################ 463280297Sjkim# Targets with recipes above 464280297Sjkim 465280297Sjkim# If running an *-only target, parallel execution and dependencies between 466280297Sjkim# recipe targets are disabled. This makes it possible to run a select set of 467160814Ssimon# recipe targets in order. It's the responsibility of the user to make sure 468280297Sjkim# all prerequisites are fulfilled. 469160814Ssimonifneq ($(findstring -only, $(MAKECMDGOALS)), ) 470160814Ssimon .NOTPARALLEL: 471280297Sjkimelse 472280297Sjkim $(LANGTOOLS_GENSRC_TARGETS): buildtools-langtools 473280297Sjkim 474280297Sjkim interim-langtools: $(LANGTOOLS_GENSRC_TARGETS) 475280297Sjkim 476280297Sjkim buildtools-jdk: interim-langtools interim-cldrconverter 477280297Sjkim 478280297Sjkim $(CORBA_GENSRC_TARGETS): interim-langtools 479280297Sjkim 480280297Sjkim $(HOTSPOT_GENSRC_TARGETS): interim-langtools 481280297Sjkim 482280297Sjkim $(JDK_GENSRC_TARGETS): interim-langtools buildtools-jdk 483280297Sjkim 484280297Sjkim $(GENSRC_MODULEINFO_TARGETS): buildtools-jdk 485280297Sjkim 486160814Ssimon $(GENDATA_TARGETS): interim-langtools buildtools-jdk 487280297Sjkim 488280297Sjkim interim-rmic: interim-langtools 489160814Ssimon 490160814Ssimon $(RMIC_TARGETS): interim-langtools interim-rmic 491280297Sjkim 492280297Sjkim $(JAVA_TARGETS): interim-langtools 493280297Sjkim 494280297Sjkim hotspot-ide-project: hotspot exploded-image 495280297Sjkim 496280297Sjkim import-hotspot: hotspot 497160814Ssimon 498280297Sjkim generate-exported-symbols: java.base-libs jdk.jdwp.agent-libs 499280297Sjkim 500160814Ssimon $(LIBS_TARGETS): import-hotspot 501280297Sjkim 502280297Sjkim $(LAUNCHER_TARGETS): java.base-libs 503280297Sjkim 504160814Ssimon ifeq ($(STATIC_BUILD), true) 505280297Sjkim $(LAUNCHER_TARGETS): generate-exported-symbols 506280297Sjkim endif 507280297Sjkim 508160814Ssimon # The demos are currently linking to libjvm and libjava, just like all other 509280297Sjkim # jdk libs, even though they don't need to. To avoid warnings, make sure they 510280297Sjkim # aren't built until after libjava and libjvm are available to link to. 511280297Sjkim demos-jdk: $(JAVA_TARGETS) 512280297Sjkim 513160814Ssimon # Declare dependency from <module>-java to <module>-gensrc 514280297Sjkim $(foreach m, $(GENSRC_MODULES), $(eval $m-java: $m-gensrc)) 515280297Sjkim 516160814Ssimon # Declare dependencies between java modules 517280297Sjkim $(foreach m, $(JAVA_MODULES), \ 518280297Sjkim $(eval $m-java: $(addsuffix -java, $(filter $(JAVA_MODULES), \ 519280297Sjkim $(call FindDepsForModule,$m))))) 520280297Sjkim 521280297Sjkim # Declare dependencies between <module>-rmic to <module>-java 522280297Sjkim $(foreach m, $(RMIC_MODULES), $(eval $m-rmic: $m-java)) 523280297Sjkim 524280297Sjkim # Declare dependencies from <module>-lib to <module>-java 525280297Sjkim # Skip modules that do not have java source. When creating a BUILD_JDK, the 526280297Sjkim # java compilation has already been done by the normal build and copied in. 527280297Sjkim ifneq ($(CREATING_BUILDJDK), true) 528160814Ssimon $(foreach m, $(filter $(JAVA_MODULES), $(LIBS_MODULES)), $(eval $m-libs: $m-java)) 529280297Sjkim endif 530280297Sjkim 531280297Sjkim # Declare dependencies from all other <module>-lib to java.base-lib 532280297Sjkim $(foreach t, $(filter-out java.base-libs, $(LIBS_TARGETS)), \ 533160814Ssimon $(eval $t: java.base-libs)) 534280297Sjkim 535280297Sjkim # jdk.accessibility depends on java.desktop 536280297Sjkim jdk.accessibility-libs: java.desktop-libs 537280297Sjkim 538280297Sjkim # This dependency needs to be explicitly declared. jdk.jdi-gensrc generates a 539280297Sjkim # header file used by jdk.jdwp.agent-libs. The jdk.jdwp.agent-gensrc is a 540280297Sjkim # virtual target. 541280297Sjkim jdk.jdwp.agent-libs: jdk.jdwp.agent-gensrc 542280297Sjkim 543280297Sjkim # The swing beans need to have java base properly generated to avoid errors 544160814Ssimon # in javadoc. 545160814Ssimon java.desktop-gensrc-jdk: java.base-gensrc 546280297Sjkim 547280297Sjkim # The annotation processing for jdk.vm.ci needs java.base classes from the 548280297Sjkim # current JDK. 549280297Sjkim jdk.vm.ci-gensrc-hotspot: java.base-java 550280297Sjkim 551280297Sjkim # Explicitly add dependencies for special targets 552280297Sjkim java.base-java: unpack-sec 553280297Sjkim 554280297Sjkim # The copy target copies files generated by gensrc 555280297Sjkim java.base-copy-hotspot: java.base-gensrc-hotspot 556280297Sjkim 557280297Sjkim jdk.jdeps-gendata: java rmic 558280297Sjkim 559280297Sjkim # Declare dependencies from <module>-strip to libs, launchers, gendata and copy 560280297Sjkim $(foreach m, $(LIBS_MODULES), $(eval $m-strip: $m-libs)) 561280297Sjkim $(foreach m, $(LAUNCHER_MODULES), $(eval $m-strip: $m-launchers)) 562280297Sjkim $(foreach m, $(GENDATA_MODULES), $(eval $m-strip: $m-gendata)) 563280297Sjkim $(foreach m, $(COPY_MODULES), $(eval $m-strip: $m-copy)) 564280297Sjkim 565280297Sjkim # Declare dependencies between jmod targets 566280297Sjkim $(foreach m, $(JMOD_MODULES), \ 567280297Sjkim $(eval $m-jmod: $(addsuffix -jmod, $(call FindDepsForModule,$m)))) 568280297Sjkim 569160814Ssimon # Declare dependencies from <module>-jmod to all other module targets 570160814Ssimon $(foreach m, $(STRIP_MODULES), $(eval $m-jmod: $m-strip)) 571280297Sjkim $(foreach m, $(JAVA_MODULES), $(eval $m-jmod: $m-java)) 572280297Sjkim $(foreach m, $(GENDATA_MODULES), $(eval $m-jmod: $m-gendata)) 573280297Sjkim $(foreach m, $(RMIC_MODULES), $(eval $m-jmod: $m-rmic)) 574280297Sjkim $(foreach m, $(LIBS_MODULES), $(eval $m-jmod: $m-libs)) 575280297Sjkim $(foreach m, $(LAUNCHER_MODULES), $(eval $m-jmod: $m-launchers)) 576160814Ssimon $(foreach m, $(COPY_MODULES), $(eval $m-jmod: $m-copy)) 577280297Sjkim 578280297Sjkim # Jmods cannot be created until we have the jlink tool ready to run, which requires 579280297Sjkim # all java modules to be compiled and jdk.jlink-launchers. 580291719Sjkim $(JMOD_TARGETS): java java.base-libs jdk.jlink-launchers 581280297Sjkim 582280297Sjkim ifeq ($(CREATE_BUILDJDK), true) 583160814Ssimon $(JMOD_TARGETS): create-buildjdk 584280297Sjkim endif 585280297Sjkim 586280297Sjkim zip-security: java.base-java java.security.jgss-java java.security.jgss-libs \ 587280297Sjkim $(filter jdk.crypto%, $(JAVA_TARGETS)) 588160814Ssimon 589280297Sjkim zip-source: gensrc rmic 590280297Sjkim 591280297Sjkim jrtfs-jar: interim-langtools 592280297Sjkim 593280297Sjkim jimages: jmods zip-source source-tips demos samples jrtfs-jar 594280297Sjkim 595280297Sjkim profiles: jmods zip-source source-tips jrtfs-jar 596280297Sjkim 597280297Sjkim mac-bundles-jdk: jimages 598280297Sjkim 599160814Ssimon bootcycle-images: jimages 600280297Sjkim 601280297Sjkim docs-javadoc: $(GENSRC_TARGETS) rmic 602280297Sjkim 603280297Sjkim docs-jvmtidoc: hotspot 604280297Sjkim 605160814Ssimon zip-docs: docs-javadoc docs-jvmtidoc 606280297Sjkim 607280297Sjkim test: jimages test-image 608280297Sjkim 609280297Sjkim create-buildjdk-copy: jdk.jlink-java java.base-gendata 610280297Sjkim 611160814Ssimon create-buildjdk-compile-modules: create-buildjdk-copy create-buildjdk-compile-hotspot 612280297Sjkim 613280297Sjkim test-make: clean-test-make 614280297Sjkim 615280297Sjkim build-test-lib: java 616280297Sjkim 617280297Sjkim build-test-failure-handler: interim-langtools 618280297Sjkim 619280297Sjkim test-failure-handler: build-test-failure-handler 620280297Sjkim 621280297Sjkim test-image-failure-handler: build-test-failure-handler 622280297Sjkim 623280297Sjkim build-test-hotspot-jtreg-native: buildtools-jdk 624280297Sjkim 625280297Sjkim build-test-jdk-jtreg-native: buildtools-jdk 626280297Sjkim 627280297Sjkim test-image-hotspot-jtreg-native: build-test-hotspot-jtreg-native 628160814Ssimon 629280297Sjkim test-image-jdk-jtreg-native: build-test-jdk-jtreg-native 630280297Sjkim 631280297Sjkim test-hotspot-internal: exploded-image 632280297Sjkim 633280297Sjkim test-hotspot-jtreg: jimages test-image 634160814Ssimon 635160814Ssimon install: product-images 636280297Sjkim 637280297Sjkim generate-summary: jmods 638280297Sjkim 639160814Ssimonendif 640280297Sjkim 641280297Sjkim################################################################################ 642160814Ssimon# Virtual targets without recipes 643280297Sjkim 644160814Ssimonbuildtools: buildtools-langtools interim-langtools interim-rmic \ 645280297Sjkim buildtools-jdk 646280297Sjkim 647280297Sjkimgensrc: $(GENSRC_TARGETS) 648280297Sjkim 649280297Sjkimgendata: $(GENDATA_TARGETS) 650280297Sjkim 651280297Sjkimcopy: $(ALL_COPY_TARGETS) 652280297Sjkim 653238405Sjkimjava: $(JAVA_TARGETS) 654280297Sjkim 655280297Sjkimrmic: $(RMIC_TARGETS) 656280297Sjkim 657280297Sjkimlibs: $(LIBS_TARGETS) 658160814Ssimon 659280297Sjkimlaunchers: $(LAUNCHER_TARGETS) 660280297Sjkim 661280297Sjkimjmods: $(JMOD_TARGETS) 662280297Sjkim 663280297Sjkimstrip-binaries: $(STRIP_TARGETS) 664160814Ssimon 665280297Sjkim# Explicitly declare dependency for virtual target jdk.jdwp.agent-gensrc which 666280297Sjkim# is actually handled by jdk.jdi-gensrc 667280297Sjkimjdk.jdwp.agent-gensrc: jdk.jdi-gensrc 668280297Sjkim 669280297Sjkim# Declare dependencies from <module> to all the individual targets specific 670280297Sjkim# to that module <module>-*, that are needed for the exploded image. 671280297Sjkim$(foreach m, $(GENSRC_MODULES), $(eval $m: $m-gensrc)) 672280297Sjkim$(foreach m, $(JAVA_MODULES), $(eval $m: $m-java)) 673280297Sjkim$(foreach m, $(GENDATA_MODULES), $(eval $m: $m-gendata)) 674280297Sjkim$(foreach m, $(RMIC_MODULES), $(eval $m: $m-rmic)) 675280297Sjkim$(foreach m, $(LIBS_MODULES), $(eval $m: $m-libs)) 676280297Sjkim$(foreach m, $(LAUNCHER_MODULES), $(eval $m: $m-launchers)) 677280297Sjkim$(foreach m, $(ALL_COPY_MODULES), $(eval $m: $m-copy)) 678160814Ssimondemos: demos-jdk 679280297Sjkim 680280297Sjkimsamples: samples-jdk 681160814Ssimon 682280297Sjkim# The "exploded image" is a locally runnable JDK in $(BUILD_OUTPUT)/jdk. 683280297Sjkimexploded-image: $(ALL_MODULES) 684280297Sjkim 685280297Sjkimcreate-buildjdk: create-buildjdk-compile-modules create-buildjdk-copy \ 686280297Sjkim create-buildjdk-compile-hotspot 687280297Sjkim 688280297Sjkimmac-bundles: mac-bundles-jdk 689280297Sjkim 690160814Ssimon# The $(BUILD_OUTPUT)/images directory contain the resulting deliverables, 691280297Sjkim# and in line with this, our targets for creating these are named *-image[s]. 692280297Sjkim 693280297Sjkim# This target builds the product images, e.g. the JRE and JDK image 694280297Sjkim# (and possibly other, more specific versions) 695280297Sjkimproduct-images: jimages demos samples zip-security exploded-image 696280297Sjkim 697280297Sjkim# When cross compiling and building a partial BUILDJDK for the build host, 698284283Sjkim# the summary generation cannot be run. 699284283Sjkimifneq ($(CREATE_BUILDJDK), true) 700284283Sjkim product-images: generate-summary 701284283Sjkimendif 702280297Sjkim 703238405Sjkimifeq ($(OPENJDK_TARGET_OS), macosx) 704291719Sjkim product-images: mac-bundles 705291719Sjkimendif 706280297Sjkim 707280297Sjkim# This target builds the documentation image 708280297Sjkimdocs-image: docs-javadoc docs-jvmtidoc 709280297Sjkim 710291719Sjkim# This target builds the test image 711291719Sjkimtest-image: prepare-test-image test-image-hotspot-jtreg-native \ 712280297Sjkim test-image-jdk-jtreg-native test-image-failure-handler 713280297Sjkim 714280297Sjkim# all-images is the top-most target, it builds all our deliverables ("images"). 715280297Sjkimall-images: product-images test-image docs-image 716280297Sjkim 717291719SjkimALL_TARGETS += buildtools gensrc gendata copy java rmic libs launchers jmods \ 718291719Sjkim jdk.jdwp.agent-gensrc $(ALL_MODULES) demos samples exploded-image \ 719280297Sjkim create-buildjdk mac-bundles product-images docs-image test-image all-images 720280297Sjkim 721280297Sjkim################################################################################ 722280297Sjkim 723280297Sjkim# Traditional targets typically run by users. 724280297Sjkim# These can be considered aliases for the targets now named by a more 725280297Sjkim# "modern" naming scheme. 726280297Sjkimdefault: $(DEFAULT_MAKE_TARGET) 727280297Sjkimjdk: exploded-image 728280297Sjkimimages: product-images 729280297Sjkimdocs: docs-image 730238405Sjkimall: all-images 731280297Sjkim 732280297SjkimALL_TARGETS += default jdk images docs all 733280297Sjkim 734280297Sjkim################################################################################ 735280297Sjkim################################################################################ 736280297Sjkim# 737280297Sjkim# Clean targets 738280297Sjkim# 739280297Sjkim################################################################################ 740280297Sjkim# Clean targets are automatically run serially by the Makefile calling this 741280297Sjkim# file. 742280297Sjkim 743280297SjkimCLEAN_DIRS += hotspot jdk bootcycle-build test buildtools support \ 744280297Sjkim images make-support test-make bundles buildjdk 745280297SjkimCLEAN_DIR_TARGETS := $(addprefix clean-, $(CLEAN_DIRS)) 746280297SjkimCLEAN_SUPPORT_DIRS += demos 747238405SjkimCLEAN_SUPPORT_DIR_TARGETS := $(addprefix clean-, $(CLEAN_SUPPORT_DIRS)) 748284283SjkimCLEAN_TESTS += hotspot-jtreg-native jdk-jtreg-native lib 749284283SjkimCLEAN_TEST_TARGETS += $(addprefix clean-test-, $(CLEAN_TESTS)) 750284283SjkimCLEAN_PHASES := gensrc java native include docs 751284283SjkimCLEAN_PHASE_TARGETS := $(addprefix clean-, $(CLEAN_PHASES)) 752284283SjkimCLEAN_MODULE_TARGETS := $(addprefix clean-, $(ALL_MODULES)) 753284283Sjkim# Construct targets of the form clean-$module-$phase 754238405SjkimCLEAN_MODULE_PHASE_TARGETS := $(addprefix clean-, $(foreach m, $(ALL_MODULES), \ 755280297Sjkim $(addprefix $m-, $(CLEAN_PHASES)))) 756280297Sjkim 757280297Sjkim# Remove everything, except the output from configure. 758280297Sjkimclean: $(CLEAN_DIR_TARGETS) 759280297Sjkim ($(CD) $(OUTPUT_ROOT) && $(RM) -r build*.log*) 760280297Sjkim $(ECHO) Cleaned all build artifacts. 761280297Sjkim 762280297Sjkim$(CLEAN_DIR_TARGETS): 763280297Sjkim $(call CleanDir,$(patsubst clean-%, %, $@)) 764280297Sjkim 765280297Sjkim$(CLEAN_SUPPORT_DIR_TARGETS): 766280297Sjkim $(call CleanSupportDir,$(patsubst clean-%, %, $@)) 767280297Sjkim 768280297Sjkim$(CLEAN_TEST_TARGETS): 769280297Sjkim $(call CleanTest,$(patsubst clean-test-%, %, $@)) 770280297Sjkim 771280297Sjkim$(CLEAN_PHASE_TARGETS): 772280297Sjkim $(call Clean-$(patsubst clean-%,%, $@)) 773280297Sjkim 774280297Sjkim$(CLEAN_MODULE_TARGETS): 775280297Sjkim $(call CleanModule,$(patsubst clean-%, %, $@)) 776280297Sjkim 777160814Ssimon$(CLEAN_MODULE_PHASE_TARGETS): 778280297Sjkim $(call Clean-$(word 3, $(subst -,$(SPACE),$@)), \ 779280297Sjkim $(word 2, $(subst -,$(SPACE),$@))) 780280297Sjkim 781280297Sjkim# When removing the support dir, we must also remove jdk. Building classes has 782280297Sjkim# the side effect of generating native headers. The headers end up in support 783280297Sjkim# while classes and touch files end up in jdk. 784280297Sjkimclean-support: clean-jdk 785280297Sjkim 786160814Ssimon# Remove everything, including configure configuration. If the output 787280297Sjkim# directory was created by configure and now becomes empty, remove it as well. 788280297Sjkimdist-clean: clean 789280297Sjkim ($(CD) $(OUTPUT_ROOT) && \ 790280297Sjkim $(RM) -r *spec.gmk $(CONFIGURESUPPORT_OUTPUTDIR) Makefile compare.sh ide) 791280297Sjkim $(if $(filter $(CONF_NAME),$(notdir $(OUTPUT_ROOT))), \ 792280297Sjkim if test "x`$(LS) $(OUTPUT_ROOT)`" != x; then \ 793280297Sjkim $(ECHO) "Warning: Not removing non-empty configuration directory for '$(CONF_NAME)'" ; \ 794280297Sjkim else \ 795280297Sjkim ($(CD) $(SRC_ROOT) && $(ECHO) "Removing configuration directory for '$(CONF_NAME)'" \ 796280297Sjkim && $(RM) -r $(OUTPUT_ROOT)) \ 797280297Sjkim fi \ 798280297Sjkim ) 799280297Sjkim $(ECHO) Cleaned everything, you will have to re-run configure. 800280297Sjkim 801280297SjkimALL_TARGETS += clean dist-clean $(CLEAN_DIR_TARGETS) $(CLEAN_SUPPORT_DIR_TARGETS) \ 802280297Sjkim $(CLEAN_TEST_TARGETS) $(CLEAN_PHASE_TARGETS) $(CLEAN_MODULE_TARGETS) \ 803280297Sjkim $(CLEAN_MODULE_PHASE_TARGETS) 804280297Sjkim 805280297Sjkim################################################################################ 806280297Sjkim# Declare *-only targets for each normal target 807280297Sjkim$(foreach t, $(ALL_TARGETS), $(eval $(t)-only: $(t))) 808160814Ssimon 809280297SjkimALL_TARGETS += $(addsuffix -only, $(filter-out dist-clean clean%, $(ALL_TARGETS))) 810280297Sjkim 811280297Sjkim################################################################################ 812280297Sjkim 813280297Sjkim# Include JPRT targets 814160814Ssimoninclude $(SRC_ROOT)/make/Jprt.gmk 815280297Sjkim 816280297Sjkim################################################################################ 817280297Sjkim 818280297Sjkim# The following targets are intentionally not added to ALL_TARGETS since they 819280297Sjkim# are internal only, to support Init.gmk. 820280297Sjkim 821160814Ssimonprint-targets: 822280297Sjkim @$(ECHO) $(sort $(ALL_TARGETS)) 823280297Sjkim 824160814Ssimonprint-modules: 825280297Sjkim @$(ECHO) $(sort $(ALL_MODULES)) 826280297Sjkim 827280297Sjkimcreate-main-targets-include: 828280297Sjkim $(call LogInfo, Generating main target list) 829160814Ssimon @$(ECHO) ALL_MAIN_TARGETS := $(sort $(ALL_TARGETS)) > \ 830280297Sjkim $(MAKESUPPORT_OUTPUTDIR)/main-targets.gmk 831280297Sjkim 832280297Sjkim################################################################################ 833160814Ssimon 834160814Ssimon 835280297Sjkim# workaround issue when building open targets when closed jib-profiles.js is used 836280297Sjkiminstaller: product-images test-image 837280297Sjkim 838280297Sjkim.PHONY: $(ALL_TARGETS) 839280297Sjkim 840160814SsimonFRC: # Force target 841280297Sjkim