• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#
2# Copyright (C) 2008 The Android Open Source Project
3#
4# Licensed under the Apache License, Version 2.0 (the "License");
5# you may not use this file except in compliance with the License.
6# You may obtain a copy of the License at
7#
8#      http://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS,
12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13# See the License for the specific language governing permissions and
14# limitations under the License.
15#
16
17$(call record-module-type,DROIDDOC)
18###########################################################
19## Common logic to both droiddoc and javadoc
20###########################################################
21LOCAL_IS_HOST_MODULE := $(call true-or-empty,$(LOCAL_IS_HOST_MODULE))
22ifeq ($(LOCAL_IS_HOST_MODULE),true)
23my_prefix := HOST_
24LOCAL_HOST_PREFIX :=
25else
26my_prefix := TARGET_
27endif
28
29LOCAL_MODULE_CLASS := $(strip $(LOCAL_MODULE_CLASS))
30ifndef LOCAL_MODULE_CLASS
31$(error $(LOCAL_PATH): LOCAL_MODULE_CLASS not defined)
32endif
33
34full_src_files := $(patsubst %,$(LOCAL_PATH)/%,$(LOCAL_SRC_FILES))
35out_dir := $(OUT_DOCS)/$(LOCAL_MODULE)
36full_target := $(call doc-timestamp-for,$(LOCAL_MODULE))
37
38ifeq ($(LOCAL_DROIDDOC_SOURCE_PATH),)
39LOCAL_DROIDDOC_SOURCE_PATH := $(LOCAL_PATH)
40endif
41
42ifeq ($(LOCAL_DROIDDOC_CUSTOM_TEMPLATE_DIR),)
43LOCAL_DROIDDOC_CUSTOM_TEMPLATE_DIR := $(SRC_DROIDDOC_DIR)/$(LOCAL_DROIDDOC_CUSTOM_TEMPLATE_DIR)
44endif
45
46ifeq ($(LOCAL_DROIDDOC_ASSET_DIR),)
47LOCAL_DROIDDOC_ASSET_DIR := assets
48endif
49ifeq ($(LOCAL_DROIDDOC_CUSTOM_ASSET_DIR),)
50LOCAL_DROIDDOC_CUSTOM_ASSET_DIR := assets
51endif
52
53ifeq ($(LOCAL_IS_HOST_MODULE),true)
54
55$(full_target): PRIVATE_BOOTCLASSPATH :=
56full_java_libs := $(addprefix $(HOST_OUT_JAVA_LIBRARIES)/,\
57  $(addsuffix $(COMMON_JAVA_PACKAGE_SUFFIX),$(LOCAL_JAVA_LIBRARIES)))
58
59else
60
61ifneq ($(LOCAL_SDK_VERSION),)
62  ifeq ($(LOCAL_SDK_VERSION)$(TARGET_BUILD_APPS),current)
63    # Use android_stubs_current if LOCAL_SDK_VERSION is current and no TARGET_BUILD_APPS.
64    LOCAL_JAVA_LIBRARIES := android_stubs_current $(LOCAL_JAVA_LIBRARIES)
65    $(full_target): PRIVATE_BOOTCLASSPATH := $(call java-lib-files, android_stubs_current)
66  else ifeq ($(LOCAL_SDK_VERSION)$(TARGET_BUILD_APPS),system_current)
67    LOCAL_JAVA_LIBRARIES := android_system_stubs_current $(LOCAL_JAVA_LIBRARIES)
68    $(full_target): PRIVATE_BOOTCLASSPATH := $(call java-lib-files, android_system_stubs_current)
69  else ifeq ($(LOCAL_SDK_VERSION)$(TARGET_BUILD_APPS),test_current)
70    LOCAL_JAVA_LIBRARIES := android_test_stubs_current $(LOCAL_JAVA_LIBRARIES)
71    $(full_target): PRIVATE_BOOTCLASSPATH := $(call java-lib-files, android_test_stubs_current)
72  else ifeq ($(LOCAL_SDK_VERSION)$(TARGET_BUILD_APPS),core_current)
73    LOCAL_JAVA_LIBRARIES := core.current.stubs $(LOCAL_JAVA_LIBRARIES)
74    $(full_target): PRIVATE_BOOTCLASSPATH := $(call java-lib-files, core.current.stubs)
75  else
76    # core_<ver> is subset of <ver>. Instead of defining a prebuilt lib for core_<ver>,
77    # use the stub for <ver> when building for apps.
78    _version := $(patsubst core_%,%,$(LOCAL_SDK_VERSION))
79    LOCAL_JAVA_LIBRARIES := sdk_v$(_version) $(LOCAL_JAVA_LIBRARIES)
80    $(full_target): PRIVATE_BOOTCLASSPATH := $(call java-lib-files, sdk_v$(_version))
81    _version :=
82  endif
83else
84  ifeq ($(LOCAL_NO_STANDARD_LIBRARIES),true)
85    LOCAL_JAVA_LIBRARIES := core-oj core-libart
86  else
87    LOCAL_JAVA_LIBRARIES := core-oj core-libart ext framework $(LOCAL_JAVA_LIBRARIES)
88  endif
89  $(full_target): PRIVATE_BOOTCLASSPATH := $(call java-lib-files, core-oj):$(call java-lib-files, core-libart)
90endif  # LOCAL_SDK_VERSION
91LOCAL_JAVA_LIBRARIES := $(sort $(LOCAL_JAVA_LIBRARIES))
92
93full_java_libs := $(call java-lib-files,$(LOCAL_JAVA_LIBRARIES)) $(LOCAL_CLASSPATH)
94endif # !LOCAL_IS_HOST_MODULE
95
96$(full_target): PRIVATE_CLASSPATH := $(call normalize-path-list,$(full_java_libs))
97
98intermediates.COMMON := $(call local-intermediates-dir,COMMON)
99
100$(full_target): PRIVATE_SOURCE_PATH := $(call normalize-path-list,$(LOCAL_DROIDDOC_SOURCE_PATH))
101$(full_target): PRIVATE_JAVA_FILES := $(filter %.java,$(full_src_files))
102$(full_target): PRIVATE_JAVA_FILES += $(addprefix $($(my_prefix)OUT_COMMON_INTERMEDIATES)/, $(filter %.java,$(LOCAL_INTERMEDIATE_SOURCES)))
103$(full_target): PRIVATE_JAVA_FILES += $(filter %.java,$(LOCAL_GENERATED_SOURCES))
104$(full_target): PRIVATE_SRCJARS := $(LOCAL_SRCJARS)
105$(full_target): PRIVATE_SOURCE_INTERMEDIATES_DIR := $(intermediates.COMMON)/src
106$(full_target): PRIVATE_SRCJAR_INTERMEDIATES_DIR := $(intermediates.COMMON)/srcjars
107$(full_target): PRIVATE_SRC_LIST_FILE := $(intermediates.COMMON)/droiddoc-src-list
108$(full_target): PRIVATE_SRCJAR_LIST_FILE := $(intermediates.COMMON)/droiddoc-srcjar-list
109
110ifneq ($(strip $(LOCAL_ADDITIONAL_JAVA_DIR)),)
111$(full_target): PRIVATE_ADDITIONAL_JAVA_DIR := $(LOCAL_ADDITIONAL_JAVA_DIR)
112endif
113
114$(full_target): PRIVATE_OUT_DIR := $(out_dir)
115$(full_target): PRIVATE_DROIDDOC_OPTIONS := $(LOCAL_DROIDDOC_OPTIONS)
116$(full_target): PRIVATE_STUB_OUT_DIR := $(LOCAL_DROIDDOC_STUB_OUT_DIR)
117$(full_target): PRIVATE_METALAVA_DOCS_STUB_OUT_DIR := $(LOCAL_DROIDDOC_METALAVA_DOCS_STUB_OUT_DIR)
118
119# Lists the input files for the doc build into a text file
120# suitable for the @ syntax of javadoc.
121# $(1): the file to create
122# $(2): files to include
123# $(3): list of directories to search for java files in
124define prepare-doc-source-list
125$(hide) mkdir -p $(dir $(1))
126$(call dump-words-to-file, $(2), $(1))
127$(hide) for d in $(3) ; do find $$d -name '*.java' -and -not -name '.*' >> $(1) 2> /dev/null ; done ; true
128endef
129
130###########################################################
131## Logic for droiddoc only
132###########################################################
133ifneq ($(strip $(LOCAL_DROIDDOC_USE_STANDARD_DOCLET)),true)
134
135droiddoc_templates := \
136    $(sort $(shell find $(LOCAL_DROIDDOC_CUSTOM_TEMPLATE_DIR) -type f $(if $(ALLOW_MISSING_DEPENDENCIES),2>/dev/null)))
137
138ifdef ALLOW_MISSING_DEPENDENCIES
139  ifndef droiddoc_templates
140    droiddoc_templates := $(LOCAL_DROIDDOC_CUSTOM_TEMPLATE_DIR)
141  endif
142endif
143
144$(full_target): PRIVATE_DOCLETPATH := $(HOST_OUT_JAVA_LIBRARIES)/jsilver$(COMMON_JAVA_PACKAGE_SUFFIX):$(HOST_OUT_JAVA_LIBRARIES)/doclava$(COMMON_JAVA_PACKAGE_SUFFIX)
145$(full_target): PRIVATE_CURRENT_BUILD := -hdf page.build $(BUILD_ID)-$(BUILD_NUMBER_FROM_FILE)
146$(full_target): PRIVATE_CURRENT_TIME :=  -hdf page.now "$$($(DATE_FROM_FILE) "+%d %b %Y %k:%M")"
147$(full_target): PRIVATE_CUSTOM_TEMPLATE_DIR := $(LOCAL_DROIDDOC_CUSTOM_TEMPLATE_DIR)
148$(full_target): PRIVATE_IN_CUSTOM_ASSET_DIR := $(LOCAL_DROIDDOC_CUSTOM_TEMPLATE_DIR)/$(LOCAL_DROIDDOC_CUSTOM_ASSET_DIR)
149$(full_target): PRIVATE_OUT_ASSET_DIR := $(out_dir)/$(LOCAL_DROIDDOC_ASSET_DIR)
150$(full_target): PRIVATE_OUT_CUSTOM_ASSET_DIR := $(out_dir)/$(LOCAL_DROIDDOC_CUSTOM_ASSET_DIR)
151
152html_dir_files :=
153ifneq ($(strip $(LOCAL_DROIDDOC_HTML_DIR)),)
154$(full_target): PRIVATE_DROIDDOC_HTML_DIR := -htmldir $(LOCAL_PATH)/$(LOCAL_DROIDDOC_HTML_DIR)
155html_dir_files := $(sort $(shell find $(LOCAL_PATH)/$(LOCAL_DROIDDOC_HTML_DIR) -type f))
156else
157$(full_target): PRIVATE_DROIDDOC_HTML_DIR :=
158endif
159ifneq ($(strip $(LOCAL_ADDITIONAL_HTML_DIR)),)
160$(full_target): PRIVATE_ADDITIONAL_HTML_DIR := -htmldir2 $(LOCAL_PATH)/$(LOCAL_ADDITIONAL_HTML_DIR)
161else
162$(full_target): PRIVATE_ADDITIONAL_HTML_DIR :=
163endif
164
165# TODO(nanzhang): Remove it if this is not used any more
166$(full_target): PRIVATE_LOCAL_PATH := $(LOCAL_PATH)
167
168ifeq ($(strip $(LOCAL_DROIDDOC_USE_METALAVA)),true)
169ifneq ($(LOCAL_DROIDDOC_METALAVA_PREVIOUS_API),)
170$(full_target): PRIVATE_DROIDDOC_METALAVA_PREVIOUS_API := --previous-api $(LOCAL_DROIDDOC_METALAVA_PREVIOUS_API)
171else
172$(full_target): PRIVATE_DROIDDOC_METALAVA_PREVIOUS_API :=
173endif #!LOCAL_DROIDDOC_METALAVA_PREVIOUS_API
174
175metalava_annotations_deps :=
176ifeq ($(strip $(LOCAL_DROIDDOC_METALAVA_ANNOTATIONS_ENABLED)),true)
177ifeq ($(LOCAL_DROIDDOC_METALAVA_PREVIOUS_API),)
178$(error $(LOCAL_PATH): LOCAL_DROIDDOC_METALAVA_PREVIOUS_API has to be non-empty if metalava annotations was enabled!)
179endif
180ifeq ($(LOCAL_DROIDDOC_METALAVA_MERGE_ANNOTATIONS_DIR),)
181$(error $(LOCAL_PATH): LOCAL_DROIDDOC_METALAVA_MERGE_ANNOTATIONS_DIR has to be non-empty if metalava annotations was enabled!)
182endif
183
184$(full_target): PRIVATE_DROIDDOC_METALAVA_ANNOTATIONS := --include-annotations --migrate-nullness \
185    --extract-annotations $(TARGET_OUT_COMMON_INTERMEDIATES)/PACKAGING/$(LOCAL_MODULE)_annotations.zip \
186    --merge-annotations $(LOCAL_DROIDDOC_METALAVA_MERGE_ANNOTATIONS_DIR) \
187    --hide HiddenTypedefConstant --hide SuperfluousPrefix --hide AnnotationExtraction
188metalava_annotations_deps := $(sort $(shell find $(LOCAL_DROIDDOC_METALAVA_MERGE_ANNOTATIONS_DIR) -type f))
189else
190$(full_target): PRIVATE_DROIDDOC_METALAVA_ANNOTATIONS :=
191endif #LOCAL_DROIDDOC_METALAVA_ANNOTATIONS_ENABLED=true
192
193ifneq (,$(filter --generate-documentation,$(LOCAL_DROIDDOC_OPTIONS)))
194
195pos = $(if $(findstring $1,$2),$(call pos,$1,$(wordlist 2,$(words $2),$2),x $3),$3)
196metalava_args := $(wordlist 1, $(words $(call pos,--generate-documentation,$(LOCAL_DROIDDOC_OPTIONS))), \
197    $(LOCAL_DROIDDOC_OPTIONS))
198remaining_args :=  $(wordlist $(words $(call pos,--generate-documentation,$(LOCAL_DROIDDOC_OPTIONS))), \
199    $(words $(LOCAL_DROIDDOC_OPTIONS)), $(LOCAL_DROIDDOC_OPTIONS))
200doclava_args := $(wordlist 2, $(words $(remaining_args)), $(remaining_args))
201
202$(full_target): \
203        $(full_src_files) $(LOCAL_GENERATED_SOURCES) \
204        $(droiddoc_templates) \
205        $(HOST_JDK_TOOLS_JAR) \
206        $(HOST_OUT_JAVA_LIBRARIES)/jsilver$(COMMON_JAVA_PACKAGE_SUFFIX) \
207        $(HOST_OUT_JAVA_LIBRARIES)/doclava$(COMMON_JAVA_PACKAGE_SUFFIX) \
208        $(HOST_OUT_JAVA_LIBRARIES)/metalava$(COMMON_JAVA_PACKAGE_SUFFIX) \
209        $(html_dir_files) \
210        $(full_java_libs) \
211        $(ZIPSYNC) \
212        $(LOCAL_SRCJARS) \
213        $(LOCAL_ADDITIONAL_DEPENDENCIES) \
214        $(LOCAL_DROIDDOC_METALAVA_PREVIOUS_API) \
215        $(metalava_annotations_deps)
216	@echo metalava based docs: $(PRIVATE_OUT_DIR)
217	$(hide) mkdir -p $(dir $@)
218	$(hide) rm -rf $(PRIVATE_STUB_OUT_DIR)
219	$(hide) rm -rf $(PRIVATE_METALAVA_DOCS_STUB_OUT_DIR)
220	$(call prepare-doc-source-list,$(PRIVATE_SRC_LIST_FILE),$(PRIVATE_JAVA_FILES), \
221			$(PRIVATE_SOURCE_INTERMEDIATES_DIR) $(PRIVATE_ADDITIONAL_JAVA_DIR))
222	$(ZIPSYNC) -d $(PRIVATE_SRCJAR_INTERMEDIATES_DIR) -l $(PRIVATE_SRCJAR_LIST_FILE) -f "*.java" $(PRIVATE_SRCJARS)
223	$(hide) ( \
224		$(JAVA) -jar $(HOST_OUT_JAVA_LIBRARIES)/metalava$(COMMON_JAVA_PACKAGE_SUFFIX) \
225                -encoding UTF-8 -source 1.8 \@$(PRIVATE_SRC_LIST_FILE) \@$(PRIVATE_SRCJAR_LIST_FILE) \
226                $(addprefix -bootclasspath ,$(PRIVATE_BOOTCLASSPATH)) \
227                $(addprefix -classpath ,$(PRIVATE_CLASSPATH)) \
228                --sourcepath $(PRIVATE_SOURCE_PATH) \
229                --no-banner --color --quiet \
230                $(addprefix --stubs ,$(PRIVATE_STUB_OUT_DIR)) \
231                $(addprefix --doc-stubs ,$(PRIVATE_METALAVA_DOCS_STUB_OUT_DIR)) \
232                --write-stubs-source-list $(intermediates.COMMON)/stubs-src-list \
233                $(metalava_args) $(PRIVATE_DROIDDOC_METALAVA_PREVIOUS_API) $(PRIVATE_DROIDDOC_METALAVA_ANNOTATIONS) \
234                $(JAVADOC) -encoding UTF-8 -source 1.8 STUBS_SOURCE_LIST \
235                -J-Xmx1600m -J-XX:-OmitStackTraceInFastThrow -XDignore.symbol.file \
236                -quiet -doclet com.google.doclava.Doclava -docletpath $(PRIVATE_DOCLETPATH) \
237                -templatedir $(PRIVATE_CUSTOM_TEMPLATE_DIR) \
238                $(PRIVATE_DROIDDOC_HTML_DIR) $(PRIVATE_ADDITIONAL_HTML_DIR) \
239                $(addprefix -bootclasspath ,$(PRIVATE_BOOTCLASSPATH)) \
240                $(addprefix -classpath ,$(PRIVATE_CLASSPATH)) \
241                -sourcepath $(PRIVATE_SOURCE_PATH) \
242                -d $(PRIVATE_OUT_DIR) \
243                $(PRIVATE_CURRENT_BUILD) $(PRIVATE_CURRENT_TIME) $(doclava_args) \
244        && touch -f $@ ) || (rm -rf $(PRIVATE_OUT_DIR) $(PRIVATE_SRC_LIST_FILE); exit 45)
245else
246# no docs generation
247$(full_target): \
248        $(full_src_files) $(LOCAL_GENERATED_SOURCES) \
249        $(full_java_libs) \
250        $(HOST_OUT_JAVA_LIBRARIES)/metalava$(COMMON_JAVA_PACKAGE_SUFFIX) \
251        $(ZIPSYNC) \
252        $(LOCAL_SRCJARS) \
253        $(LOCAL_ADDITIONAL_DEPENDENCIES)
254	@echo metalava based stubs: $@
255	$(hide) mkdir -p $(dir $@)
256	$(hide) rm -rf $(PRIVATE_STUB_OUT_DIR)
257	$(call prepare-doc-source-list,$(PRIVATE_SRC_LIST_FILE),$(PRIVATE_JAVA_FILES), \
258			$(PRIVATE_SOURCE_INTERMEDIATES_DIR) $(PRIVATE_ADDITIONAL_JAVA_DIR))
259	$(ZIPSYNC) -d $(PRIVATE_SRCJAR_INTERMEDIATES_DIR) -l $(PRIVATE_SRCJAR_LIST_FILE) -f "*.java" $(PRIVATE_SRCJARS)
260	$(hide) ( \
261		$(JAVA) -jar $(HOST_OUT_JAVA_LIBRARIES)/metalava$(COMMON_JAVA_PACKAGE_SUFFIX) \
262                -encoding UTF-8 -source 1.8 \@$(PRIVATE_SRC_LIST_FILE) \@$(PRIVATE_SRCJAR_LIST_FILE) \
263                $(addprefix -bootclasspath ,$(PRIVATE_BOOTCLASSPATH)) \
264                $(addprefix -classpath ,$(PRIVATE_CLASSPATH)) \
265                --sourcepath $(PRIVATE_SOURCE_PATH) \
266                $(PRIVATE_DROIDDOC_OPTIONS) $(PRIVATE_DROIDDOC_METALAVA_PREVIOUS_API) $(PRIVATE_DROIDDOC_METALAVA_ANNOTATIONS) \
267                --no-banner --color --quiet \
268                $(addprefix --stubs ,$(PRIVATE_STUB_OUT_DIR)) \
269        && touch -f $@ ) || (rm -rf $(PRIVATE_SRC_LIST_FILE); exit 45)
270
271endif # stubs + docs generation
272ifeq ($(strip $(LOCAL_DROIDDOC_METALAVA_ANNOTATIONS_ENABLED)),true)
273$(TARGET_OUT_COMMON_INTERMEDIATES)/PACKAGING/$(LOCAL_MODULE)_annotations.zip: $(full_target)
274endif
275
276else # doclava based droiddoc generation
277
278# TODO(tobiast): Clean this up once we move to -source 1.9.
279# OpenJDK 9 does not have the concept of a "boot classpath" so we should
280# then rename PRIVATE_BOOTCLASSPATH to PRIVATE_MODULE or similar. For now,
281# keep -bootclasspath here since it works in combination with -source 1.8.
282$(full_target): \
283        $(full_src_files) $(LOCAL_GENERATED_SOURCES) \
284        $(droiddoc_templates) \
285        $(HOST_JDK_TOOLS_JAR) \
286        $(HOST_OUT_JAVA_LIBRARIES)/jsilver$(COMMON_JAVA_PACKAGE_SUFFIX) \
287        $(HOST_OUT_JAVA_LIBRARIES)/doclava$(COMMON_JAVA_PACKAGE_SUFFIX) \
288        $(html_dir_files) \
289        $(full_java_libs) \
290        $(ZIPSYNC) \
291        $(LOCAL_SRCJARS) \
292        $(LOCAL_ADDITIONAL_DEPENDENCIES)
293	@echo Docs droiddoc: $(PRIVATE_OUT_DIR)
294	$(hide) mkdir -p $(dir $@)
295	$(hide) rm -rf $(PRIVATE_STUB_OUT_DIR)
296	$(call prepare-doc-source-list,$(PRIVATE_SRC_LIST_FILE),$(PRIVATE_JAVA_FILES), \
297			$(PRIVATE_SOURCE_INTERMEDIATES_DIR) $(PRIVATE_ADDITIONAL_JAVA_DIR))
298	$(ZIPSYNC) -d $(PRIVATE_SRCJAR_INTERMEDIATES_DIR) -l $(PRIVATE_SRCJAR_LIST_FILE) -f "*.java" $(PRIVATE_SRCJARS)
299	$(hide) ( \
300		$(JAVADOC) \
301                -encoding UTF-8 -source 1.8 \@$(PRIVATE_SRC_LIST_FILE) \@$(PRIVATE_SRCJAR_LIST_FILE) \
302                -J-Xmx1600m -J-XX:-OmitStackTraceInFastThrow -XDignore.symbol.file \
303                -quiet -doclet com.google.doclava.Doclava -docletpath $(PRIVATE_DOCLETPATH) \
304                -templatedir $(PRIVATE_CUSTOM_TEMPLATE_DIR) \
305                $(PRIVATE_DROIDDOC_HTML_DIR) $(PRIVATE_ADDITIONAL_HTML_DIR) \
306                $(addprefix -bootclasspath ,$(PRIVATE_BOOTCLASSPATH)) \
307                $(addprefix -classpath ,$(PRIVATE_CLASSPATH)) \
308                -sourcepath $(PRIVATE_SOURCE_PATH)$(addprefix :,$(PRIVATE_CLASSPATH)) \
309                -d $(PRIVATE_OUT_DIR) \
310                $(PRIVATE_CURRENT_BUILD) $(PRIVATE_CURRENT_TIME) $(PRIVATE_DROIDDOC_OPTIONS) \
311                $(addprefix -stubs ,$(PRIVATE_STUB_OUT_DIR)) \
312        && touch -f $@ ) || (rm -rf $(PRIVATE_OUT_DIR) $(PRIVATE_SRC_LIST_FILE); exit 45)
313endif #LOCAL_DROIDDOC_USE_METALAVA
314
315else
316
317###########################################################
318## Logic for javadoc only
319###########################################################
320ifdef USE_OPENJDK9
321# For OpenJDK 9 we use --patch-module to define the core libraries code.
322# TODO(tobiast): Reorganize this when adding proper support for OpenJDK 9
323# modules. Here we treat all code in core libraries as being in java.base
324# to work around the OpenJDK 9 module system. http://b/62049770
325$(full_target): PRIVATE_BOOTCLASSPATH_ARG := --patch-module=java.base=$(PRIVATE_BOOTCLASSPATH)
326else
327# For OpenJDK 8 we can use -bootclasspath to define the core libraries code.
328$(full_target): PRIVATE_BOOTCLASSPATH_ARG := $(addprefix -bootclasspath ,$(PRIVATE_BOOTCLASSPATH))
329endif
330$(full_target): $(full_src_files) $(LOCAL_GENERATED_SOURCES) $(full_java_libs) $(ZIPSYNC) $(LOCAL_SRCJARS) $(LOCAL_ADDITIONAL_DEPENDENCIES)
331	@echo Docs javadoc: $(PRIVATE_OUT_DIR)
332	@mkdir -p $(dir $@)
333	$(call prepare-doc-source-list,$(PRIVATE_SRC_LIST_FILE),$(PRIVATE_JAVA_FILES), \
334			$(PRIVATE_SOURCE_INTERMEDIATES_DIR) $(PRIVATE_ADDITIONAL_JAVA_DIR))
335	$(ZIPSYNC) -d $(PRIVATE_SRCJAR_INTERMEDIATES_DIR) -l $(PRIVATE_SRCJAR_LIST_FILE) -f "*.java" $(PRIVATE_SRCJARS)
336	$(hide) ( \
337		$(JAVADOC) -encoding UTF-8 \@$(PRIVATE_SRC_LIST_FILE) \@$(PRIVATE_SRCJAR_LIST_FILE) \
338                $(PRIVATE_DROIDDOC_OPTIONS) -J-Xmx1024m -XDignore.symbol.file -Xdoclint:none -quiet \
339                $(addprefix -classpath ,$(PRIVATE_CLASSPATH)) $(PRIVATE_BOOTCLASSPATH_ARG) \
340                -sourcepath $(PRIVATE_SOURCE_PATH) \
341                -d $(PRIVATE_OUT_DIR) \
342        && touch -f $@ \
343    ) || (rm -rf $(PRIVATE_OUT_DIR) $(PRIVATE_SRC_LIST_FILE); exit 45)
344
345endif # !LOCAL_DROIDDOC_USE_STANDARD_DOCLET
346
347ALL_DOCS += $(full_target)
348
349.PHONY: $(LOCAL_MODULE)-docs
350$(LOCAL_MODULE)-docs : $(full_target)
351
352ifeq ($(strip $(LOCAL_UNINSTALLABLE_MODULE)),)
353
354# Define a rule to create a zip of these docs.
355out_zip := $(OUT_DOCS)/$(LOCAL_MODULE)-docs.zip
356$(out_zip): PRIVATE_DOCS_DIR := $(out_dir)
357$(out_zip): $(full_target)
358	@echo Package docs: $@
359	@rm -f $@
360	@mkdir -p $(dir $@)
361	$(hide) ( F=$$(pwd)/$@ ; cd $(PRIVATE_DOCS_DIR) && zip -rqX $$F * )
362
363$(LOCAL_MODULE)-docs.zip : $(out_zip)
364
365$(call dist-for-goals,docs,$(out_zip))
366
367endif #!LOCAL_UNINSTALLABLE_MODULE
368