Bundles.gmk revision 2436:9ea35cb972ff
1139823Simp#
211150Swollman# Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
31541Srgrimes# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
41541Srgrimes#
51541Srgrimes# This code is free software; you can redistribute it and/or modify it
61541Srgrimes# under the terms of the GNU General Public License version 2 only, as
71541Srgrimes# published by the Free Software Foundation.  Oracle designates this
81541Srgrimes# particular file as subject to the "Classpath" exception as provided
91541Srgrimes# by Oracle in the LICENSE file that accompanied this code.
101541Srgrimes#
111541Srgrimes# This code is distributed in the hope that it will be useful, but WITHOUT
121541Srgrimes# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
131541Srgrimes# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
141541Srgrimes# version 2 for more details (a copy is included in the LICENSE file that
151541Srgrimes# accompanied this code).
161541Srgrimes#
171541Srgrimes# You should have received a copy of the GNU General Public License version
181541Srgrimes# 2 along with this work; if not, write to the Free Software Foundation,
191541Srgrimes# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
201541Srgrimes#
211541Srgrimes# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
221541Srgrimes# or visit www.oracle.com if you need additional information or have any
231541Srgrimes# questions.
241541Srgrimes#
251541Srgrimes
261541Srgrimesdefault: all
271541Srgrimes
281541Srgrimesinclude $(SPEC)
2911150Swollmaninclude MakeBase.gmk
301541Srgrimes
311541SrgrimesPRODUCT_TARGETS :=
32172467SsilbyTEST_TARGETS :=
33172467SsilbyDOCS_TARGETS :=
34172467Ssilby
35125680Sbms# On Windows tar frequently complains that "file changed as we read it" for
3655679Sshin# some random source files. This seems to be cause by anti virus scanners and
3729514Sjoerg# is most likely safe to ignore. When it happens, tar returns '1'.
3829514Sjoergifeq ($(OPENJDK_BUILD_OS), windows)
391541Srgrimes  TAR_IGNORE_EXIT_VALUE := || test "$$$$?" = "1"
4012172Sphkendif
411541Srgrimes
421541Srgrimes# Hook to include the corresponding custom file, if present.
431541Srgrimes$(eval $(call IncludeCustomExtension, , Bundles-pre.gmk))
441541Srgrimes################################################################################
4595759Stanimura# BUNDLE : Name of bundle to create
4615038Sphk# FILES : Files in BASE_DIRS to add to bundle
4795759Stanimura# SPECIAL_INCLUDES : List of directories inside BASE_DIRS to look for additional
481541Srgrimes#     files in. These files will not get proper dependency handling. Use when
49126193Sandre#     files or directories may contain spaces.
50126193Sandre# BASE_DIRS : Base directories for the root dir in the bundle.
511541Srgrimes# SUBDIR : Optional name of root dir in bundle.
521541SrgrimesSetupBundleFile = $(NamedParamsMacroTemplate)
53196019Srwatsondefine SetupBundleFileBody
541541Srgrimes
551541Srgrimes  $$(foreach d, $$($1_BASE_DIRS), \
5695759Stanimura    $$(eval $1_$$d_RELATIVE_FILES := $$$$(patsubst $$d/%, %, \
571541Srgrimes        $$$$(filter $$d/%, $$$$($1_FILES)))) \
5895759Stanimura    $$(eval $1_$$d_LIST_FILE := \
591541Srgrimes        $(SUPPORT_OUTPUTDIR)/bundles/_$1_$$$$(subst /,_,$$$$(patsubst $(TOPDIR)/%,%,$$d)_files)) \
601541Srgrimes  )
61152592Sandre
6262587Sitojun  ifneq ($$(filter %.tar.gz, $$($1_BUNDLE_NAME)), )
6395759Stanimura    $1_TYPE := tar.gz
6495759Stanimura  else ifneq ($$(filter %.zip, $$($1_BUNDLE_NAME)), )
6562587Sitojun    $1_TYPE := zip
661541Srgrimes  else
671541Srgrimes    $$(error Unknown bundle type $$($1_BUNDLE_NAME))
681541Srgrimes  endif
691541Srgrimes
701541Srgrimes  $$(call SetIfEmpty, $1_UNZIP_DEBUGINFO, false)
7155679Sshin
721541Srgrimes  $(BUNDLES_OUTPUTDIR)/$$($1_BUNDLE_NAME): $$($1_FILES)
732788Sdg	$$(foreach d, $$($1_BASE_DIRS), \
741541Srgrimes	  $$(eval $$(call ListPathsSafely, \
7555679Sshin	      $1_$$d_RELATIVE_FILES, $$($1_$$d_LIST_FILE))) \
7655679Sshin	)
77213912Slstewart	$$(call MakeDir, $$(@D))
78213912Slstewart        ifneq ($$($1_SPECIAL_INCLUDES), )
79227309Sed	  $$(foreach i, $$($1_SPECIAL_INCLUDES), \
80167721Sandre	    $$(foreach d, $$($1_BASE_DIRS), \
81126193Sandre	      ($(CD) $$d && $(FIND) $$i >> $$($1_$$d_LIST_FILE)) ; ))
82285979Sdelphij        endif
83285979Sdelphij        ifeq ($$($1_SUBDIR)-$$($1_TYPE)-$$($1_UNZIP_DEBUGINFO), .-zip-false)
84285979Sdelphij          # If no subdir is specified, zip can be done directly from BASE_DIRS.
85167721Sandre	  $$(foreach d, $$($1_BASE_DIRS), \
86126193Sandre	    ( $(CD) $$d \
87285979Sdelphij	    && $(ZIPEXE) -qru $$@ . -i@$$($1_$$d_LIST_FILE) \
88242253Sandre	    || test "$$$$?" = "12" )$$(NEWLINE))
89167721Sandre        else ifeq ($$($1_SUBDIR)-$$($1_TYPE)-$$($1_UNZIP_DEBUGINFO)-$$(words $$($1_BASE_DIRS)), \
90126193Sandre            .-tar.gz-false-1)
91285979Sdelphij          # If no subdir is specified and only one BASE_DIR, tar.gz can be done
92285979Sdelphij          # directly from BASE_DIR.
93217554Smdf	  $(CD) $$($1_BASE_DIRS) \
94285979Sdelphij	      && ( $(TAR) cf - $(TAR_CREATE_EXTRA_PARAM) \
95167721Sandre	          -$(TAR_INCLUDE_PARAM) $$($1_$$($1_BASE_DIRS)_LIST_FILE) \
96126193Sandre	          $(TAR_IGNORE_EXIT_VALUE) ) \
97285979Sdelphij	      | $(GZIP) > $$@
98213158Slstewart        else ifeq ($$($1_TYPE)-$(TAR_SUPPORTS_TRANSFORM)-$$($1_UNZIP_DEBUGINFO)-$$(words $$($1_BASE_DIRS)), \
99126193Sandre            tar.gz-true-false-1)
100157927Sps          # If only one BASE_DIR, but with a SUBDIR set, tar.gz can use the
101157927Sps          # transform option to create bundle directly from the BASE_DIR.
102157927Sps	  $(CD) $$($1_BASE_DIRS) \
103157927Sps	      && ( $(TAR) cf - $(TAR_CREATE_EXTRA_PARAM) \
104242253Sandre	          -$(TAR_INCLUDE_PARAM) $$($1_$$($1_BASE_DIRS)_LIST_FILE) \
105285979Sdelphij	          $$(if $$($1_SUBDIR), --transform 's|^|$$($1_SUBDIR)/|S') \
106285979Sdelphij	          $(TAR_IGNORE_EXIT_VALUE) ) \
107285979Sdelphij	      | $(GZIP) > $$@
108157927Sps        else
109157927Sps          # In all other cases, need to copy all files into a temporary location
110126193Sandre          # before creation bundle.
111285979Sdelphij	  $(RM) -r $(SUPPORT_OUTPUTDIR)/bundles/$1/$$($1_SUBDIR)
112126193Sandre	  $(MKDIR) -p $(SUPPORT_OUTPUTDIR)/bundles/$1/$$($1_SUBDIR)
113169454Srwatson	  $$(foreach d, $$($1_BASE_DIRS), \
114285979Sdelphij	    ( $(CD) $$d \
115126193Sandre	    && $(TAR) cf - -$(TAR_INCLUDE_PARAM) $$($1_$$d_LIST_FILE) \
116285979Sdelphij	        $(TAR_IGNORE_EXIT_VALUE) ) \
117285979Sdelphij	    | ( $(CD) $(SUPPORT_OUTPUTDIR)/bundles/$1/$$($1_SUBDIR) && $(TAR) xf - )$$(NEWLINE) )
118126193Sandre          # Unzip any zipped debuginfo files
119242253Sandre          ifeq ($$($1_UNZIP_DEBUGINFO), true)
120285979Sdelphij	    for f in `$(FIND) $(SUPPORT_OUTPUTDIR)/bundles/$1/$$($1_SUBDIR) -name "*.diz"`; do \
121285979Sdelphij	      $(CD) $$$${f%/*} && $(UNZIP) -q $$$${f} && $(RM) $$$${f}; \
122157927Sps	    done
123157927Sps          endif
124126193Sandre          ifeq ($$($1_TYPE), tar.gz)
125126193Sandre	    $(CD) $(SUPPORT_OUTPUTDIR)/bundles/$1 && \
126204838Sbz	    ( $(TAR) cf - $(TAR_CREATE_EXTRA_PARAM) \
127213158Slstewart	        $$(if $$($1_SUBDIR), $$($1_SUBDIR), .) $(TAR_IGNORE_EXIT_VALUE) ) \
128213158Slstewart	    | $(GZIP) > $$@
129213158Slstewart          else ifeq ($$($1_TYPE), zip)
130213158Slstewart	    $(CD) $(SUPPORT_OUTPUTDIR)/bundles/$1 && $(ZIPEXE) -qr $$@ .
131213158Slstewart          endif
132213158Slstewart        endif
133213158Slstewart
134213158Slstewart  $1 += $(BUNDLES_OUTPUTDIR)/$$($1_BUNDLE_NAME)
135213158Slstewart
136285979Sdelphijendef
137213158Slstewart
138213158Slstewart################################################################################
139213158Slstewart
140213158Slstewart# On Macosx, we bundle up the macosx specific images which already have the
141213158Slstewart# correct base directories.
142213158Slstewartifeq ($(OPENJDK_TARGET_OS)-$(DEBUG_LEVEL), macosx-release)
143213158Slstewart  JDK_IMAGE_DIR := $(JDK_MACOSX_BUNDLE_DIR)
144213158Slstewart  JRE_IMAGE_DIR := $(JRE_MACOSX_BUNDLE_DIR)
145213912Slstewart  JDK_IMAGE_HOMEDIR := $(JDK_MACOSX_CONTENTS_DIR)/Home
146242253Sandre  JRE_IMAGE_HOMEDIR := $(JRE_MACOSX_CONTENTS_DIR)/Home
147213912Slstewart  JDK_BUNDLE_SUBDIR :=
148242253Sandre  JRE_BUNDLE_SUBDIR :=
149213912Slstewartelse
150285979Sdelphij  JDK_IMAGE_HOMEDIR := $(JDK_IMAGE_DIR)
151244680Sglebius  JRE_IMAGE_HOMEDIR := $(JRE_IMAGE_DIR)
152213912Slstewart  JDK_BUNDLE_SUBDIR := jdk-$(VERSION_NUMBER)
153213912Slstewart  JRE_BUNDLE_SUBDIR := jre-$(VERSION_NUMBER)
154169541Sandre  JRE_COMPACT1_BUNDLE_SUBDIR := jre-$(VERSION_NUMBER)-compact1
155167785Sandre  JRE_COMPACT2_BUNDLE_SUBDIR := jre-$(VERSION_NUMBER)-compact2
1561541Srgrimes  JRE_COMPACT3_BUNDLE_SUBDIR := jre-$(VERSION_NUMBER)-compact3
15755679Sshin  ifneq ($(DEBUG_LEVEL), release)
15855679Sshin    JDK_BUNDLE_SUBDIR := $(JDK_BUNDLE_SUBDIR)/$(DEBUG_LEVEL)
15955679Sshin    JRE_BUNDLE_SUBDIR := $(JRE_BUNDLE_SUBDIR)/$(DEBUG_LEVEL)
160126193Sandre  endif
1611541Srgrimesendif
162226113Sandre
1631541Srgrimes################################################################################
164226113Sandre
1651541Srgrimesifneq ($(filter product-bundles, $(MAKECMDGOALS)), )
166178285Srwatson  $(eval $(call FillCacheFind, $(IMAGES_OUTPUTDIR)))
167138040Srwatson
1681541Srgrimes  SYMBOLS_EXCLUDE_PATTERN := %.debuginfo %.diz %.pdb %.map
169126193Sandre
170192761Srwatson  ALL_JDK_FILES := $(call CacheFind, $(JDK_IMAGE_DIR))
171126193Sandre
172126193Sandre  # Create special filter rules when dealing with unzipped .dSYM directories on
173126193Sandre  # macosx
174138040Srwatson  ifeq ($(OPENJDK_TARGET_OS), macosx)
1751541Srgrimes    ifeq ($(ZIP_DEBUGINFO_FILES), false)
1761541Srgrimes      JDK_SYMBOLS_EXCLUDE_PATTERN := $(addprefix %, \
177138040Srwatson          $(call containing, .dSYM/, $(patsubst $(JDK_IMAGE_DIR)/%, %, $(ALL_JDK_FILES))))
1781541Srgrimes    endif
1791541Srgrimes  endif
180126193Sandre
181213913Slstewart  JDK_BUNDLE_FILES := \
182213913Slstewart      $(filter-out \
183213913Slstewart          $(JDK_SYMBOLS_EXCLUDE_PATTERN) \
184213913Slstewart          $(JDK_EXTRA_EXCLUDES) \
185213913Slstewart          $(SYMBOLS_EXCLUDE_PATTERN) \
186213913Slstewart          $(JDK_IMAGE_HOMEDIR)/demo/% $(JDK_IMAGE_HOMEDIR)/sample/% \
187213913Slstewart          , \
188213913Slstewart          $(ALL_JDK_FILES) \
189213913Slstewart      )
190213913Slstewart  DEMOS_BUNDLE_FILES := \
191213913Slstewart      $(filter-out \
192213913Slstewart          $(JDK_SYMBOLS_EXCLUDE_PATTERN) \
193213913Slstewart          $(SYMBOLS_EXCLUDE_PATTERN) \
194213913Slstewart          , \
195126193Sandre          $(filter \
196265122Sdelphij               $(JDK_IMAGE_HOMEDIR)/demo/% $(JDK_IMAGE_HOMEDIR)/sample/% \
197213913Slstewart               $(JDK_IMAGE_HOMEDIR)/release \
198285979Sdelphij               , \
199190948Srwatson               $(ALL_JDK_FILES) \
200126193Sandre          ) \
201144857Sps      )
202226113Sandre  JDK_SYMBOLS_BUNDLE_FILES := \
203226113Sandre      $(filter \
204226113Sandre          $(JDK_SYMBOLS_EXCLUDE_PATTERN) \
205226113Sandre          $(SYMBOLS_EXCLUDE_PATTERN) \
206226113Sandre          , \
207126193Sandre          $(filter-out \
208126193Sandre              $(JDK_IMAGE_HOMEDIR)/demo/% $(JDK_IMAGE_HOMEDIR)/sample/% \
209126193Sandre              , \
210126193Sandre              $(ALL_JDK_FILES) \
211126193Sandre          ) \
212126193Sandre      ) \
213226113Sandre      $(call CacheFind, $(SYMBOLS_IMAGE_DIR))
214226113Sandre
215226113Sandre  ALL_JRE_FILES := $(call CacheFind, $(JRE_IMAGE_DIR))
216126193Sandre
217285979Sdelphij  # Create special filter rules when dealing with unzipped .dSYM directories on
218228016Slstewart  # macosx
219265122Sdelphij  ifeq ($(OPENJDK_TARGET_OS), macosx)
220228016Slstewart    ifeq ($(ZIP_DEBUGINFO_FILES), false)
221228016Slstewart      JRE_SYMBOLS_EXCLUDE_PATTERN := $(addprefix %, \
222228016Slstewart          $(call containing, .dSYM/, $(patsubst $(JRE_IMAGE_DIR)/%, %, $(ALL_JRE_FILES))))
223228016Slstewart    endif
224228016Slstewart  endif
225228016Slstewart
226228016Slstewart  JRE_BUNDLE_FILES := $(filter-out \
227228016Slstewart      $(JRE_SYMBOLS_EXCLUDE_PATTERN) \
228228016Slstewart      $(SYMBOLS_EXCLUDE_PATTERN), \
229228016Slstewart      $(ALL_JRE_FILES))
230228016Slstewart  JRE_SYMBOLS_BUNDLE_FILES := $(filter \
231228016Slstewart      $(JRE_SYMBOLS_EXCLUDE_PATTERN) \
232228016Slstewart      $(SYMBOLS_EXCLUDE_PATTERN), \
233228016Slstewart      $(ALL_JRE_FILES))
234228016Slstewart
235228016Slstewart  $(eval $(call SetupBundleFile, BUILD_JDK_BUNDLE, \
236228016Slstewart      BUNDLE_NAME := $(JDK_BUNDLE_NAME), \
237228016Slstewart      FILES := $(JDK_BUNDLE_FILES), \
238228016Slstewart      SPECIAL_INCLUDES := $(JDK_SPECIAL_INCLUDES), \
239228016Slstewart      BASE_DIRS := $(JDK_IMAGE_DIR), \
240226113Sandre      SUBDIR := $(JDK_BUNDLE_SUBDIR), \
24155679Sshin  ))
242126193Sandre
24338513Sdfr  PRODUCT_TARGETS += $(BUILD_JDK_BUNDLE)
2441541Srgrimes
2451541Srgrimes  $(eval $(call SetupBundleFile, BUILD_JRE_BUNDLE, \
2461541Srgrimes      BUNDLE_NAME := $(JRE_BUNDLE_NAME), \
24755679Sshin      FILES := $(JRE_BUNDLE_FILES), \
24855679Sshin      BASE_DIRS := $(JRE_IMAGE_DIR), \
2491541Srgrimes      SUBDIR := $(JRE_BUNDLE_SUBDIR), \
25055679Sshin  ))
25155679Sshin
2521541Srgrimes  PRODUCT_TARGETS += $(BUILD_JRE_BUNDLE)
2531541Srgrimes
2541541Srgrimes  $(eval $(call SetupBundleFile, BUILD_JDK_SYMBOLS_BUNDLE, \
2551541Srgrimes      BUNDLE_NAME := $(JDK_SYMBOLS_BUNDLE_NAME), \
2561541Srgrimes      FILES := $(JDK_SYMBOLS_BUNDLE_FILES), \
2571541Srgrimes      BASE_DIRS := $(JDK_IMAGE_DIR) $(wildcard $(SYMBOLS_IMAGE_DIR)), \
25838513Sdfr      SUBDIR := $(JDK_BUNDLE_SUBDIR), \
259167785Sandre      UNZIP_DEBUGINFO := true, \
2601541Srgrimes  ))
26155679Sshin
2621541Srgrimes  PRODUCT_TARGETS += $(BUILD_JDK_SYMBOLS_BUNDLE)
26355679Sshin
264190948Srwatson  $(eval $(call SetupBundleFile, BUILD_JRE_SYMBOLS_BUNDLE, \
265190948Srwatson      BUNDLE_NAME := $(JRE_SYMBOLS_BUNDLE_NAME), \
2661541Srgrimes      FILES := $(JRE_SYMBOLS_BUNDLE_FILES), \
267265122Sdelphij      BASE_DIRS := $(JRE_IMAGE_DIR), \
268285979Sdelphij      SUBDIR := $(JRE_BUNDLE_SUBDIR), \
269126193Sandre      UNZIP_DEBUGINFO := true, \
2706283Swollman  ))
2716283Swollman
2726283Swollman  PRODUCT_TARGETS += $(BUILD_JRE_SYMBOLS_BUNDLE)
2736283Swollman
2746283Swollman  $(eval $(call SetupBundleFile, BUILD_DEMOS_BUNDLE, \
2756283Swollman      BUNDLE_NAME := $(DEMOS_BUNDLE_NAME), \
2766283Swollman      FILES := $(DEMOS_BUNDLE_FILES), \
2771541Srgrimes      BASE_DIRS := $(JDK_IMAGE_DIR), \
2781541Srgrimes      SUBDIR := $(JDK_BUNDLE_SUBDIR), \
27955679Sshin  ))
28055679Sshin
2811541Srgrimes  PRODUCT_TARGETS += $(BUILD_DEMOS_BUNDLE)
2821541Srgrimesendif
283217126Sjhb
284190948Srwatson################################################################################
285190948Srwatson
2861541Srgrimesifneq ($(filter profiles-bundles, $(MAKECMDGOALS)), )
2871541Srgrimes  ifeq ($(OPENJDK_TARGET_OS), macosx)
2881541Srgrimes    $(error Creating compact profiles bundles on macosx is unsupported)
2891541Srgrimes  endif
2901541Srgrimes
29138513Sdfr  define GenerateCompactProfilesBundles
292167785Sandre    ALL_JRE_COMPACT$1_FILES := $$(call CacheFind, $$(JRE_COMPACT$1_IMAGE_DIR))
2931541Srgrimes
2941541Srgrimes    JRE_COMPACT$1_BUNDLE_FILES := $$(filter-out \
29555679Sshin        $$(SYMBOLS_EXCLUDE_PATTERN), \
29655679Sshin        $$(ALL_JRE_COMPACT$1_FILES))
29755679Sshin
29855679Sshin    $$(eval $$(call SetupBundleFile, BUILD_JRE_COMPACT$1_BUNDLE, \
2991541Srgrimes        BUNDLE_NAME := $$(JRE_COMPACT$1_BUNDLE_NAME), \
3001541Srgrimes        FILES := $$(JRE_COMPACT$1_BUNDLE_FILES), \
30138513Sdfr        BASE_DIRS := $$(JRE_COMPACT$1_IMAGE_DIR), \
30255679Sshin        SUBDIR := $$(JRE_COMPACT$1_BUNDLE_SUBDIR), \
30355679Sshin    ))
30455679Sshin
305285979Sdelphij    PROFILES_TARGETS += $$(BUILD_JRE_COMPACT$1_BUNDLE)
306126193Sandre  endef
30738513Sdfr
3081541Srgrimes  $(eval $(call GenerateCompactProfilesBundles,1))
3091541Srgrimes  $(eval $(call GenerateCompactProfilesBundles,2))
31055679Sshin  $(eval $(call GenerateCompactProfilesBundles,3))
31155679Sshinendif
31255679Sshin
31355679Sshin################################################################################
31455679Sshin
31538513Sdfrifneq ($(filter test-bundles, $(MAKECMDGOALS)), )
31655679Sshin  TEST_BUNDLE_FILES := $(call CacheFind, $(TEST_IMAGE_DIR))
31738513Sdfr
318226113Sandre  $(eval $(call SetupBundleFile, BUILD_TEST_BUNDLE, \
319226113Sandre      BUNDLE_NAME := $(TEST_BUNDLE_NAME), \
32055679Sshin      FILES := $(TEST_BUNDLE_FILES), \
32138513Sdfr      BASE_DIRS := $(TEST_IMAGE_DIR), \
3221541Srgrimes  ))
3231541Srgrimes
3241541Srgrimes  TEST_TARGETS += $(BUILD_TEST_BUNDLE)
3251541Srgrimesendif
3261541Srgrimes
3271541Srgrimes################################################################################
3286283Swollman
3291541Srgrimesifneq ($(filter docs-bundles, $(MAKECMDGOALS)), )
33055679Sshin  DOCS_BUNDLE_FILES := $(call CacheFind, $(DOCS_IMAGE_DIR))
33155679Sshin
3321541Srgrimes  $(eval $(call SetupBundleFile, BUILD_DOCS_BUNDLE, \
333131151Srwatson      BUNDLE_NAME := $(DOCS_BUNDLE_NAME), \
3341541Srgrimes      FILES := $(DOCS_BUNDLE_FILES), \
33555679Sshin      BASE_DIRS := $(DOCS_IMAGE_DIR), \
33655679Sshin      SUBDIR := docs, \
33755679Sshin  ))
33855679Sshin
339130480Srwatson  DOCS_TARGETS += $(BUILD_DOCS_BUNDLE)
34055679Sshinendif
34197658Stanimura
342131151Srwatson################################################################################
343226113Sandre
344285979Sdelphij# Hook to include the corresponding custom file, if present.
345126193Sandre$(eval $(call IncludeCustomExtension, , Bundles.gmk))
34638513Sdfr
34755679Sshin################################################################################
34855679Sshin
349131151Srwatsonproduct-bundles: $(PRODUCT_TARGETS)
3501541Srgrimesprofiles-bundles: $(PROFILES_TARGETS)
3511541Srgrimestest-bundles: $(TEST_TARGETS)
352docs-bundles: $(DOCS_TARGETS)
353
354.PHONY: all default product-bundles profiles-bundles test-bundles docs-bundles
355