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