54 define SetupBundleFileBody
55
56 $$(foreach d, $$($1_BASE_DIRS), \
57 $$(eval $1_$$d_RELATIVE_FILES := $$$$(patsubst $$d/%, %, \
58 $$$$(filter $$d/%, $$$$($1_FILES)))) \
59 $$(eval $1_$$d_LIST_FILE := \
60 $(SUPPORT_OUTPUTDIR)/bundles/_$1_$$$$(subst /,_,$$$$(patsubst $(OUTPUTDIR)/%,%,$$d)_files)) \
61 )
62
63 ifneq ($$(filter %.tar.gz, $$($1_BUNDLE_NAME)), )
64 $1_TYPE := tar.gz
65 else ifneq ($$(filter %.zip, $$($1_BUNDLE_NAME)), )
66 $1_TYPE := zip
67 else
68 $$(error Unknown bundle type $$($1_BUNDLE_NAME))
69 endif
70
71 $$(call SetIfEmpty, $1_UNZIP_DEBUGINFO, false)
72
73 $(BUNDLES_OUTPUTDIR)/$$($1_BUNDLE_NAME): $$($1_FILES)
74 # If any of the files contain a space in the file name, CacheFind
75 # will have replaced it with ?. Tar does not accept that so need to
76 # switch it back.
77 $$(foreach d, $$($1_BASE_DIRS), \
78 $$(eval $$(call ListPathsSafely, \
79 $1_$$d_RELATIVE_FILES, $$($1_$$d_LIST_FILE))) \
80 $$(CAT) $$($1_$$d_LIST_FILE) | $$(TR) '?' ' ' > $$($1_$$d_LIST_FILE).tmp \
81 && $(MV) $$($1_$$d_LIST_FILE).tmp $$($1_$$d_LIST_FILE) $$(NEWLINE) \
82 )
83 $$(call MakeDir, $$(@D))
84 ifneq ($$($1_SPECIAL_INCLUDES), )
85 $$(foreach i, $$($1_SPECIAL_INCLUDES), \
86 $$(foreach d, $$($1_BASE_DIRS), \
87 ($(CD) $$d && $(FIND) $$i >> $$($1_$$d_LIST_FILE)) ; ))
88 endif
89 ifeq ($$($1_SUBDIR)-$$($1_TYPE)-$$($1_UNZIP_DEBUGINFO), .-zip-false)
90 # If no subdir is specified, zip can be done directly from BASE_DIRS.
91 $$(foreach d, $$($1_BASE_DIRS), \
92 ( $(CD) $$d \
93 && $(ZIPEXE) -qru $$@ . -i@$$($1_$$d_LIST_FILE) \
94 || test "$$$$?" = "12" )$$(NEWLINE))
149 JDK_IMAGE_DIR := $(JDK_MACOSX_BUNDLE_DIR)
150 JRE_IMAGE_DIR := $(JRE_MACOSX_BUNDLE_DIR)
151 JDK_IMAGE_HOMEDIR := $(JDK_MACOSX_CONTENTS_DIR)/Home
152 JRE_IMAGE_HOMEDIR := $(JRE_MACOSX_CONTENTS_DIR)/Home
153 JDK_BUNDLE_SUBDIR :=
154 JRE_BUNDLE_SUBDIR :=
155 else
156 JDK_IMAGE_HOMEDIR := $(JDK_IMAGE_DIR)
157 JRE_IMAGE_HOMEDIR := $(JRE_IMAGE_DIR)
158 JDK_BUNDLE_SUBDIR := jdk-$(VERSION_NUMBER)
159 JRE_BUNDLE_SUBDIR := jre-$(VERSION_NUMBER)
160 ifneq ($(DEBUG_LEVEL), release)
161 JDK_BUNDLE_SUBDIR := $(JDK_BUNDLE_SUBDIR)/$(DEBUG_LEVEL)
162 JRE_BUNDLE_SUBDIR := $(JRE_BUNDLE_SUBDIR)/$(DEBUG_LEVEL)
163 endif
164 endif
165
166 ################################################################################
167
168 ifneq ($(filter product-bundles legacy-bundles, $(MAKECMDGOALS)), )
169 $(eval $(call FillCacheFind, $(IMAGES_OUTPUTDIR)))
170
171 SYMBOLS_EXCLUDE_PATTERN := %.debuginfo %.diz %.pdb %.map
172
173 ALL_JDK_FILES := $(call CacheFind, $(JDK_IMAGE_DIR))
174
175 # Create special filter rules when dealing with unzipped .dSYM directories on
176 # macosx
177 ifeq ($(OPENJDK_TARGET_OS), macosx)
178 ifeq ($(ZIP_EXTERNAL_DEBUG_SYMBOLS), false)
179 JDK_SYMBOLS_EXCLUDE_PATTERN := $(addprefix %, \
180 $(call containing, .dSYM/, $(patsubst $(JDK_IMAGE_DIR)/%, %, $(ALL_JDK_FILES))))
181 endif
182 endif
183
184 JDK_BUNDLE_FILES := \
185 $(filter-out \
186 $(JDK_SYMBOLS_EXCLUDE_PATTERN) \
187 $(JDK_EXTRA_EXCLUDES) \
188 $(SYMBOLS_EXCLUDE_PATTERN) \
189 $(JDK_IMAGE_HOMEDIR)/demo/% \
190 , \
191 $(ALL_JDK_FILES) \
192 )
193 JDK_SYMBOLS_BUNDLE_FILES := \
194 $(filter \
195 $(JDK_SYMBOLS_EXCLUDE_PATTERN) \
196 $(SYMBOLS_EXCLUDE_PATTERN) \
197 , \
198 $(filter-out \
199 $(JDK_IMAGE_HOMEDIR)/demo/% \
200 , \
201 $(ALL_JDK_FILES) \
202 ) \
203 ) \
204 $(call CacheFind, $(SYMBOLS_IMAGE_DIR))
205
206 TEST_DEMOS_BUNDLE_FILES := $(filter $(JDK_IMAGE_HOMEDIR)/demo/%, $(ALL_JDK_FILES))
207
208 ALL_JRE_FILES := $(call CacheFind, $(JRE_IMAGE_DIR))
209
210 # Create special filter rules when dealing with unzipped .dSYM directories on
211 # macosx
212 ifeq ($(OPENJDK_TARGET_OS), macosx)
213 ifeq ($(ZIP_EXTERNAL_DEBUG_SYMBOLS), false)
214 JRE_SYMBOLS_EXCLUDE_PATTERN := $(addprefix %, \
215 $(call containing, .dSYM/, $(patsubst $(JRE_IMAGE_DIR)/%, %, $(ALL_JRE_FILES))))
216 endif
217 endif
218
219 JRE_BUNDLE_FILES := $(filter-out \
220 $(JRE_SYMBOLS_EXCLUDE_PATTERN) \
221 $(SYMBOLS_EXCLUDE_PATTERN), \
222 $(ALL_JRE_FILES))
223
224 # On Macosx release builds, when there is a code signing certificate available,
225 # the final bundle layout can be signed.
226 SIGN_BUNDLE := false
227 ifeq ($(OPENJDK_TARGET_OS)-$(DEBUG_LEVEL), macosx-release)
228 ifneq ($(CODESIGN), )
321 ))
322
323 PRODUCT_TARGETS += $(BUILD_JDK_SYMBOLS_BUNDLE)
324
325 # The demo bundle is only created to support client tests. Ideally it should
326 # be built with the main test bundle, but since the prerequisites match
327 # better with the product build, it makes more sense to keep it there for now.
328 $(eval $(call SetupBundleFile, BUILD_TEST_DEMOS_BUNDLE, \
329 BUNDLE_NAME := $(TEST_DEMOS_BUNDLE_NAME), \
330 FILES := $(TEST_DEMOS_BUNDLE_FILES), \
331 BASE_DIRS := $(JDK_IMAGE_DIR), \
332 SUBDIR := $(JDK_BUNDLE_SUBDIR), \
333 ))
334
335 PRODUCT_TARGETS += $(BUILD_TEST_DEMOS_BUNDLE)
336 endif
337
338 ################################################################################
339
340 ifneq ($(filter test-bundles, $(MAKECMDGOALS)), )
341 TEST_BUNDLE_FILES := $(call CacheFind, $(TEST_IMAGE_DIR))
342
343 $(eval $(call SetupBundleFile, BUILD_TEST_BUNDLE, \
344 BUNDLE_NAME := $(TEST_BUNDLE_NAME), \
345 FILES := $(TEST_BUNDLE_FILES), \
346 BASE_DIRS := $(TEST_IMAGE_DIR), \
347 ))
348
349 TEST_TARGETS += $(BUILD_TEST_BUNDLE)
350 endif
351
352 ################################################################################
353
354 ifneq ($(filter docs-bundles, $(MAKECMDGOALS)), )
355 DOCS_BUNDLE_FILES := $(call CacheFind, $(DOCS_IMAGE_DIR))
356
357 $(eval $(call SetupBundleFile, BUILD_DOCS_BUNDLE, \
358 BUNDLE_NAME := $(DOCS_BUNDLE_NAME), \
359 FILES := $(DOCS_BUNDLE_FILES), \
360 BASE_DIRS := $(DOCS_IMAGE_DIR), \
361 SUBDIR := docs, \
362 ))
363
364 DOCS_TARGETS += $(BUILD_DOCS_BUNDLE)
365 endif
366
367 ################################################################################
368
369 # Hook to include the corresponding custom file, if present.
370 $(eval $(call IncludeCustomExtension, Bundles.gmk))
371
372 ################################################################################
373
374 product-bundles: $(PRODUCT_TARGETS)
375 legacy-bundles: $(LEGACY_TARGETS)
|
54 define SetupBundleFileBody
55
56 $$(foreach d, $$($1_BASE_DIRS), \
57 $$(eval $1_$$d_RELATIVE_FILES := $$$$(patsubst $$d/%, %, \
58 $$$$(filter $$d/%, $$$$($1_FILES)))) \
59 $$(eval $1_$$d_LIST_FILE := \
60 $(SUPPORT_OUTPUTDIR)/bundles/_$1_$$$$(subst /,_,$$$$(patsubst $(OUTPUTDIR)/%,%,$$d)_files)) \
61 )
62
63 ifneq ($$(filter %.tar.gz, $$($1_BUNDLE_NAME)), )
64 $1_TYPE := tar.gz
65 else ifneq ($$(filter %.zip, $$($1_BUNDLE_NAME)), )
66 $1_TYPE := zip
67 else
68 $$(error Unknown bundle type $$($1_BUNDLE_NAME))
69 endif
70
71 $$(call SetIfEmpty, $1_UNZIP_DEBUGINFO, false)
72
73 $(BUNDLES_OUTPUTDIR)/$$($1_BUNDLE_NAME): $$($1_FILES)
74 # If any of the files contain a space in the file name, FindFiles
75 # will have replaced it with ?. Tar does not accept that so need to
76 # switch it back.
77 $$(foreach d, $$($1_BASE_DIRS), \
78 $$(eval $$(call ListPathsSafely, \
79 $1_$$d_RELATIVE_FILES, $$($1_$$d_LIST_FILE))) \
80 $$(CAT) $$($1_$$d_LIST_FILE) | $$(TR) '?' ' ' > $$($1_$$d_LIST_FILE).tmp \
81 && $(MV) $$($1_$$d_LIST_FILE).tmp $$($1_$$d_LIST_FILE) $$(NEWLINE) \
82 )
83 $$(call MakeDir, $$(@D))
84 ifneq ($$($1_SPECIAL_INCLUDES), )
85 $$(foreach i, $$($1_SPECIAL_INCLUDES), \
86 $$(foreach d, $$($1_BASE_DIRS), \
87 ($(CD) $$d && $(FIND) $$i >> $$($1_$$d_LIST_FILE)) ; ))
88 endif
89 ifeq ($$($1_SUBDIR)-$$($1_TYPE)-$$($1_UNZIP_DEBUGINFO), .-zip-false)
90 # If no subdir is specified, zip can be done directly from BASE_DIRS.
91 $$(foreach d, $$($1_BASE_DIRS), \
92 ( $(CD) $$d \
93 && $(ZIPEXE) -qru $$@ . -i@$$($1_$$d_LIST_FILE) \
94 || test "$$$$?" = "12" )$$(NEWLINE))
149 JDK_IMAGE_DIR := $(JDK_MACOSX_BUNDLE_DIR)
150 JRE_IMAGE_DIR := $(JRE_MACOSX_BUNDLE_DIR)
151 JDK_IMAGE_HOMEDIR := $(JDK_MACOSX_CONTENTS_DIR)/Home
152 JRE_IMAGE_HOMEDIR := $(JRE_MACOSX_CONTENTS_DIR)/Home
153 JDK_BUNDLE_SUBDIR :=
154 JRE_BUNDLE_SUBDIR :=
155 else
156 JDK_IMAGE_HOMEDIR := $(JDK_IMAGE_DIR)
157 JRE_IMAGE_HOMEDIR := $(JRE_IMAGE_DIR)
158 JDK_BUNDLE_SUBDIR := jdk-$(VERSION_NUMBER)
159 JRE_BUNDLE_SUBDIR := jre-$(VERSION_NUMBER)
160 ifneq ($(DEBUG_LEVEL), release)
161 JDK_BUNDLE_SUBDIR := $(JDK_BUNDLE_SUBDIR)/$(DEBUG_LEVEL)
162 JRE_BUNDLE_SUBDIR := $(JRE_BUNDLE_SUBDIR)/$(DEBUG_LEVEL)
163 endif
164 endif
165
166 ################################################################################
167
168 ifneq ($(filter product-bundles legacy-bundles, $(MAKECMDGOALS)), )
169
170 SYMBOLS_EXCLUDE_PATTERN := %.debuginfo %.diz %.pdb %.map
171
172 # There may be files with spaces in the names, so use ShellFindFiles
173 # explicitly.
174 ALL_JDK_FILES := $(call ShellFindFiles, $(JDK_IMAGE_DIR))
175
176 # Create special filter rules when dealing with unzipped .dSYM directories on
177 # macosx
178 ifeq ($(OPENJDK_TARGET_OS), macosx)
179 ifeq ($(ZIP_EXTERNAL_DEBUG_SYMBOLS), false)
180 JDK_SYMBOLS_EXCLUDE_PATTERN := $(addprefix %, \
181 $(call containing, .dSYM/, $(patsubst $(JDK_IMAGE_DIR)/%, %, $(ALL_JDK_FILES))))
182 endif
183 endif
184
185 JDK_BUNDLE_FILES := \
186 $(filter-out \
187 $(JDK_SYMBOLS_EXCLUDE_PATTERN) \
188 $(JDK_EXTRA_EXCLUDES) \
189 $(SYMBOLS_EXCLUDE_PATTERN) \
190 $(JDK_IMAGE_HOMEDIR)/demo/% \
191 , \
192 $(ALL_JDK_FILES) \
193 )
194 JDK_SYMBOLS_BUNDLE_FILES := \
195 $(filter \
196 $(JDK_SYMBOLS_EXCLUDE_PATTERN) \
197 $(SYMBOLS_EXCLUDE_PATTERN) \
198 , \
199 $(filter-out \
200 $(JDK_IMAGE_HOMEDIR)/demo/% \
201 , \
202 $(ALL_JDK_FILES) \
203 ) \
204 ) \
205 $(call FindFiles, $(SYMBOLS_IMAGE_DIR))
206
207 TEST_DEMOS_BUNDLE_FILES := $(filter $(JDK_IMAGE_HOMEDIR)/demo/%, $(ALL_JDK_FILES))
208
209 ALL_JRE_FILES := $(call ShellFindFiles, $(JRE_IMAGE_DIR))
210
211 # Create special filter rules when dealing with unzipped .dSYM directories on
212 # macosx
213 ifeq ($(OPENJDK_TARGET_OS), macosx)
214 ifeq ($(ZIP_EXTERNAL_DEBUG_SYMBOLS), false)
215 JRE_SYMBOLS_EXCLUDE_PATTERN := $(addprefix %, \
216 $(call containing, .dSYM/, $(patsubst $(JRE_IMAGE_DIR)/%, %, $(ALL_JRE_FILES))))
217 endif
218 endif
219
220 JRE_BUNDLE_FILES := $(filter-out \
221 $(JRE_SYMBOLS_EXCLUDE_PATTERN) \
222 $(SYMBOLS_EXCLUDE_PATTERN), \
223 $(ALL_JRE_FILES))
224
225 # On Macosx release builds, when there is a code signing certificate available,
226 # the final bundle layout can be signed.
227 SIGN_BUNDLE := false
228 ifeq ($(OPENJDK_TARGET_OS)-$(DEBUG_LEVEL), macosx-release)
229 ifneq ($(CODESIGN), )
322 ))
323
324 PRODUCT_TARGETS += $(BUILD_JDK_SYMBOLS_BUNDLE)
325
326 # The demo bundle is only created to support client tests. Ideally it should
327 # be built with the main test bundle, but since the prerequisites match
328 # better with the product build, it makes more sense to keep it there for now.
329 $(eval $(call SetupBundleFile, BUILD_TEST_DEMOS_BUNDLE, \
330 BUNDLE_NAME := $(TEST_DEMOS_BUNDLE_NAME), \
331 FILES := $(TEST_DEMOS_BUNDLE_FILES), \
332 BASE_DIRS := $(JDK_IMAGE_DIR), \
333 SUBDIR := $(JDK_BUNDLE_SUBDIR), \
334 ))
335
336 PRODUCT_TARGETS += $(BUILD_TEST_DEMOS_BUNDLE)
337 endif
338
339 ################################################################################
340
341 ifneq ($(filter test-bundles, $(MAKECMDGOALS)), )
342 TEST_BUNDLE_FILES := $(call FindFiles, $(TEST_IMAGE_DIR))
343
344 $(eval $(call SetupBundleFile, BUILD_TEST_BUNDLE, \
345 BUNDLE_NAME := $(TEST_BUNDLE_NAME), \
346 FILES := $(TEST_BUNDLE_FILES), \
347 BASE_DIRS := $(TEST_IMAGE_DIR), \
348 ))
349
350 TEST_TARGETS += $(BUILD_TEST_BUNDLE)
351 endif
352
353 ################################################################################
354
355 ifneq ($(filter docs-bundles, $(MAKECMDGOALS)), )
356 DOCS_BUNDLE_FILES := $(call FindFiles, $(DOCS_IMAGE_DIR))
357
358 $(eval $(call SetupBundleFile, BUILD_DOCS_BUNDLE, \
359 BUNDLE_NAME := $(DOCS_BUNDLE_NAME), \
360 FILES := $(DOCS_BUNDLE_FILES), \
361 BASE_DIRS := $(DOCS_IMAGE_DIR), \
362 SUBDIR := docs, \
363 ))
364
365 DOCS_TARGETS += $(BUILD_DOCS_BUNDLE)
366 endif
367
368 ################################################################################
369
370 # Hook to include the corresponding custom file, if present.
371 $(eval $(call IncludeCustomExtension, Bundles.gmk))
372
373 ################################################################################
374
375 product-bundles: $(PRODUCT_TARGETS)
376 legacy-bundles: $(LEGACY_TARGETS)
|