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# 16LOCAL_PATH := $(call my-dir) 17 18# Load framework-specific path mappings used later in the build. 19include $(LOCAL_PATH)/pathmap.mk 20 21# Build the master framework library. 22# The framework contains too many method references (>64K) for poor old DEX. 23# So we first build the framework as a monolithic static library then split it 24# up into smaller pieces. 25# ============================================================ 26 27# embedded builds use nothing in frameworks/base 28ifneq ($(ANDROID_BUILD_EMBEDDED),true) 29 30# Copy AIDL files to be preprocessed and included in the SDK, 31# specified relative to the root of the build tree. 32# ============================================================ 33include $(CLEAR_VARS) 34 35aidl_parcelables := 36define stubs-to-aidl-parcelables 37 gen := $(TARGET_OUT_COMMON_INTERMEDIATES)/$1.aidl 38 aidl_parcelables += $$(gen) 39 $$(gen): $(call java-lib-header-files,$1) $(HOST_OUT_EXECUTABLES)/sdkparcelables 40 @echo Extract SDK parcelables: $$@ 41 rm -f $$@ 42 $(HOST_OUT_EXECUTABLES)/sdkparcelables $$< $$@ 43endef 44 45$(foreach stubs,android_stubs_current android_test_stubs_current android_system_stubs_current,\ 46 $(eval $(call stubs-to-aidl-parcelables,$(stubs)))) 47 48gen := $(TARGET_OUT_COMMON_INTERMEDIATES)/framework.aidl 49.KATI_RESTAT: $(gen) 50$(gen): $(aidl_parcelables) 51 @echo Combining SDK parcelables: $@ 52 rm -f $@.tmp 53 cat $^ | sort -u > $@.tmp 54 $(call commit-change-for-toc,$@) 55 56# the documentation 57# ============================================================ 58 59# TODO: deal with com/google/android/googleapps 60packages_to_document := \ 61 android \ 62 javax/microedition/khronos \ 63 org/apache/http/conn \ 64 org/apache/http/params \ 65 66# include definition of libcore_to_document 67include libcore/Docs.mk 68 69non_base_dirs := \ 70 ../opt/telephony/src/java/android/telephony \ 71 ../opt/telephony/src/java/android/telephony/gsm \ 72 ../opt/net/voip/src/java/android/net/rtp \ 73 ../opt/net/voip/src/java/android/net/sip \ 74 75# Find all files in specific directories (relative to frameworks/base) 76# to document and check apis 77files_to_check_apis := \ 78 $(call find-other-java-files, \ 79 $(non_base_dirs) \ 80 ) 81 82# Find all files in specific packages that were used to compile 83# framework.jar to document and check apis 84files_to_check_apis += \ 85 $(addprefix ../../,\ 86 $(filter \ 87 $(foreach dir,$(FRAMEWORKS_BASE_JAVA_SRC_DIRS),\ 88 $(foreach package,$(packages_to_document),\ 89 $(dir)/$(package)/%.java)),\ 90 $(SOONG_FRAMEWORK_SRCS))) 91 92# Find all generated files that were used to compile framework.jar 93files_to_check_apis_generated := \ 94 $(filter $(OUT_DIR)/%,\ 95 $(SOONG_FRAMEWORK_SRCS)) 96 97# These are relative to frameworks/base 98# FRAMEWORKS_BASE_SUBDIRS comes from build/core/pathmap.mk 99files_to_document := \ 100 $(files_to_check_apis) \ 101 $(call find-other-java-files,\ 102 test-base/src \ 103 test-mock/src \ 104 test-runner/src) 105 106# These are relative to frameworks/base 107html_dirs := \ 108 $(FRAMEWORKS_BASE_SUBDIRS) \ 109 $(non_base_dirs) \ 110 111# Common sources for doc check and api check 112common_src_files := \ 113 $(call find-other-html-files, $(html_dirs)) \ 114 $(addprefix ../../, $(libcore_to_document)) \ 115 116# These are relative to frameworks/base 117framework_docs_LOCAL_SRC_FILES := \ 118 $(files_to_document) \ 119 $(common_src_files) \ 120 121# These are relative to frameworks/base 122framework_docs_LOCAL_API_CHECK_SRC_FILES := \ 123 $(files_to_check_apis) \ 124 $(common_src_files) \ 125 126# This is used by ide.mk as the list of source files that are 127# always included. 128INTERNAL_SDK_SOURCE_DIRS := $(addprefix $(LOCAL_PATH)/,$(dirs_to_document)) 129 130framework_docs_LOCAL_DROIDDOC_SOURCE_PATH := \ 131 $(FRAMEWORKS_BASE_JAVA_SRC_DIRS) 132 133framework_docs_LOCAL_SRCJARS := $(SOONG_FRAMEWORK_SRCJARS) 134 135framework_docs_LOCAL_GENERATED_SOURCES := \ 136 $(libcore_to_document_generated) \ 137 $(files_to_check_apis_generated) \ 138 139framework_docs_LOCAL_API_CHECK_JAVA_LIBRARIES := \ 140 core-oj \ 141 core-libart \ 142 conscrypt \ 143 bouncycastle \ 144 okhttp \ 145 ext \ 146 framework \ 147 voip-common \ 148 149# Platform docs can refer to Support Library APIs, but we don't actually build 150# them as part of the docs target, so we need to include them on the classpath. 151framework_docs_LOCAL_JAVA_LIBRARIES := \ 152 $(framework_docs_LOCAL_API_CHECK_JAVA_LIBRARIES) \ 153 $(FRAMEWORKS_SUPPORT_JAVA_LIBRARIES) 154 155framework_docs_LOCAL_MODULE_CLASS := JAVA_LIBRARIES 156framework_docs_LOCAL_DROIDDOC_HTML_DIR := docs/html 157# The since flag (-since N.xml API_LEVEL) is used to add API Level information 158# to the reference documentation. Must be in order of oldest to newest. 159# 160# Conscrypt (com.android.org.conscrypt) is an implementation detail and should 161# not be referenced in the documentation. 162framework_docs_LOCAL_DROIDDOC_OPTIONS := \ 163 -android \ 164 -knowntags ./frameworks/base/docs/knowntags.txt \ 165 -knowntags ./libcore/known_oj_tags.txt \ 166 -manifest ./frameworks/base/core/res/AndroidManifest.xml \ 167 -hidePackage com.android.internal \ 168 -hidePackage com.android.internal.util \ 169 -hidePackage com.android.okhttp \ 170 -hidePackage com.android.org.conscrypt \ 171 -hidePackage com.android.server \ 172 -since $(SRC_API_DIR)/1.xml 1 \ 173 -since $(SRC_API_DIR)/2.xml 2 \ 174 -since $(SRC_API_DIR)/3.xml 3 \ 175 -since $(SRC_API_DIR)/4.xml 4 \ 176 -since $(SRC_API_DIR)/5.xml 5 \ 177 -since $(SRC_API_DIR)/6.xml 6 \ 178 -since $(SRC_API_DIR)/7.xml 7 \ 179 -since $(SRC_API_DIR)/8.xml 8 \ 180 -since $(SRC_API_DIR)/9.xml 9 \ 181 -since $(SRC_API_DIR)/10.xml 10 \ 182 -since $(SRC_API_DIR)/11.xml 11 \ 183 -since $(SRC_API_DIR)/12.xml 12 \ 184 -since $(SRC_API_DIR)/13.xml 13 \ 185 -since $(SRC_API_DIR)/14.txt 14 \ 186 -since $(SRC_API_DIR)/15.txt 15 \ 187 -since $(SRC_API_DIR)/16.txt 16 \ 188 -since $(SRC_API_DIR)/17.txt 17 \ 189 -since $(SRC_API_DIR)/18.txt 18 \ 190 -since $(SRC_API_DIR)/19.txt 19 \ 191 -since $(SRC_API_DIR)/20.txt 20 \ 192 -since $(SRC_API_DIR)/21.txt 21 \ 193 -since $(SRC_API_DIR)/22.txt 22 \ 194 -since $(SRC_API_DIR)/23.txt 23 \ 195 -since $(SRC_API_DIR)/24.txt 24 \ 196 -since $(SRC_API_DIR)/25.txt 25 \ 197 -since $(SRC_API_DIR)/26.txt 26 \ 198 -since $(SRC_API_DIR)/27.txt 27 \ 199 -since $(SRC_API_DIR)/28.txt 28 \ 200 -werror -lerror -hide 111 -hide 113 -hide 125 -hide 126 -hide 127 -hide 128 \ 201 -overview $(LOCAL_PATH)/core/java/overview.html \ 202 203framework_docs_LOCAL_API_CHECK_ADDITIONAL_JAVA_DIR:= \ 204 $(call intermediates-dir-for,JAVA_LIBRARIES,framework,,COMMON) 205 206framework_docs_LOCAL_ADDITIONAL_JAVA_DIR:= \ 207 $(framework_docs_LOCAL_API_CHECK_ADDITIONAL_JAVA_DIR) 208 209framework_docs_LOCAL_ADDITIONAL_DEPENDENCIES := \ 210 frameworks/base/docs/knowntags.txt \ 211 $(libcore_to_document_generated) 212 213samples_dir := development/samples/browseable 214 215# Whitelist of valid groups, used for default TOC grouping. Each sample must 216# belong to one (and only one) group. Assign samples to groups by setting 217# a sample.group var to one of these groups in the sample's _index.jd. 218sample_groups := -samplegroup Admin \ 219 -samplegroup Background \ 220 -samplegroup Connectivity \ 221 -samplegroup Content \ 222 -samplegroup Input \ 223 -samplegroup Media \ 224 -samplegroup Notification \ 225 -samplegroup RenderScript \ 226 -samplegroup Security \ 227 -samplegroup Sensors \ 228 -samplegroup System \ 229 -samplegroup Testing \ 230 -samplegroup UI \ 231 -samplegroup Views \ 232 -samplegroup Wearable 233 234## SDK version identifiers used in the published docs 235 # major[.minor] version for current SDK. (full releases only) 236framework_docs_SDK_VERSION:=7.0 237 # release version (ie "Release x") (full releases only) 238framework_docs_SDK_REL_ID:=1 239 240framework_docs_LOCAL_DROIDDOC_OPTIONS += \ 241 -hdf dac true \ 242 -hdf sdk.codename O \ 243 -hdf sdk.preview.version 1 \ 244 -hdf sdk.version $(framework_docs_SDK_VERSION) \ 245 -hdf sdk.rel.id $(framework_docs_SDK_REL_ID) \ 246 -hdf sdk.preview 0 \ 247 -resourcesdir $(LOCAL_PATH)/docs/html/reference/images/ \ 248 -resourcesoutdir reference/android/images/ 249 250# Federate Support Library references against local API file. 251framework_docs_LOCAL_DROIDDOC_OPTIONS += \ 252 -federate SupportLib https://developer.android.com \ 253 -federationapi SupportLib prebuilts/sdk/current/support-api.txt 254 255# Federate AndroidX references against local API file. 256framework_docs_LOCAL_DROIDDOC_OPTIONS += \ 257 -federate AndroidX https://developer.android.com \ 258 -federationapi AndroidX prebuilts/sdk/current/androidx-api.txt 259 260framework_metalava_docs_LOCAL_DROIDDOC_OPTIONS := \ 261 --manifest ./frameworks/base/core/res/AndroidManifest.xml \ 262 --hide-package com.android.okhttp \ 263 --hide-package com.android.org.conscrypt --hide-package com.android.server \ 264 --hide RequiresPermission \ 265 --hide MissingPermission --hide BroadcastBehavior \ 266 --hide HiddenSuperclass --hide DeprecationMismatch --hide UnavailableSymbol \ 267 --hide SdkConstant --hide HiddenTypeParameter --hide Todo --hide Typo 268 269# ==== Public API diff =========================== 270include $(CLEAR_VARS) 271 272LOCAL_SRC_FILES := $(framework_docs_LOCAL_API_CHECK_SRC_FILES) 273LOCAL_GENERATED_SOURCES := $(framework_docs_LOCAL_GENERATED_SOURCES) 274LOCAL_SRCJARS:=$(framework_docs_LOCAL_SRCJARS) 275LOCAL_JAVA_LIBRARIES := $(framework_docs_LOCAL_API_CHECK_JAVA_LIBRARIES) 276LOCAL_MODULE_CLASS := $(framework_docs_LOCAL_MODULE_CLASS) 277LOCAL_ADDITIONAL_JAVA_DIR := $(framework_docs_LOCAL_API_CHECK_ADDITIONAL_JAVA_DIR) 278LOCAL_ADDITIONAL_DEPENDENCIES := \ 279 $(framework_docs_LOCAL_ADDITIONAL_DEPENDENCIES) \ 280 $(INTERNAL_PLATFORM_API_FILE) 281 282LOCAL_MODULE := offline-sdk-referenceonly 283 284last_released_sdk_version := $(lastword $(call numerically_sort, \ 285 $(filter-out current, \ 286 $(patsubst $(SRC_API_DIR)/%.txt,%, $(wildcard $(SRC_API_DIR)/*.txt)) \ 287 )\ 288 )) 289 290LOCAL_APIDIFF_OLDAPI := $(LOCAL_PATH)/../../$(SRC_API_DIR)/$(last_released_sdk_version) 291LOCAL_APIDIFF_NEWAPI := $(LOCAL_PATH)/../../$(basename $(INTERNAL_PLATFORM_API_FILE)) 292 293include $(BUILD_APIDIFF) 294 295# Hack to get diffs included in docs output 296out_zip := $(OUT_DOCS)/$(LOCAL_MODULE)-docs.zip 297$(out_zip): $(full_target) 298 299# ==== System API diff =========================== 300include $(CLEAR_VARS) 301 302LOCAL_SRC_FILES := $(framework_docs_LOCAL_API_CHECK_SRC_FILES) 303LOCAL_GENERATED_SOURCES := $(framework_docs_LOCAL_GENERATED_SOURCES) 304LOCAL_SRCJARS:=$(framework_docs_LOCAL_SRCJARS) 305LOCAL_JAVA_LIBRARIES := $(framework_docs_LOCAL_API_CHECK_JAVA_LIBRARIES) 306LOCAL_MODULE_CLASS := $(framework_docs_LOCAL_MODULE_CLASS) 307LOCAL_ADDITIONAL_JAVA_DIR := $(framework_docs_LOCAL_API_CHECK_ADDITIONAL_JAVA_DIR) 308LOCAL_ADDITIONAL_DEPENDENCIES := \ 309 $(framework_docs_LOCAL_ADDITIONAL_DEPENDENCIES) \ 310 $(INTERNAL_PLATFORM_SYSTEM_API_FILE) 311 312LOCAL_MODULE := offline-system-sdk-referenceonly 313 314last_released_sdk_version := $(lastword $(call numerically_sort, \ 315 $(filter-out current, \ 316 $(patsubst $(SRC_SYSTEM_API_DIR)/%.txt,%, $(wildcard $(SRC_SYSTEM_API_DIR)/*.txt)) \ 317 )\ 318 )) 319 320LOCAL_APIDIFF_OLDAPI := $(LOCAL_PATH)/../../$(SRC_SYSTEM_API_DIR)/$(last_released_sdk_version) 321LOCAL_APIDIFF_NEWAPI := $(LOCAL_PATH)/../../$(basename $(INTERNAL_PLATFORM_SYSTEM_API_FILE)) 322 323include $(BUILD_APIDIFF) 324 325# Hack to get diffs included in docs output 326out_zip := $(OUT_DOCS)/$(LOCAL_MODULE)-docs.zip 327$(out_zip): $(full_target) 328 329# ==== the api stubs and current.xml =========================== 330include $(CLEAR_VARS) 331 332LOCAL_SRC_FILES:=$(framework_docs_LOCAL_API_CHECK_SRC_FILES) 333LOCAL_GENERATED_SOURCES:=$(framework_docs_LOCAL_GENERATED_SOURCES) 334LOCAL_SRCJARS:=$(framework_docs_LOCAL_SRCJARS) 335LOCAL_JAVA_LIBRARIES:=$(framework_docs_LOCAL_API_CHECK_JAVA_LIBRARIES) 336LOCAL_MODULE_CLASS:=$(framework_docs_LOCAL_MODULE_CLASS) 337LOCAL_DROIDDOC_SOURCE_PATH:=$(framework_docs_LOCAL_DROIDDOC_SOURCE_PATH) 338LOCAL_DROIDDOC_HTML_DIR:=$(framework_docs_LOCAL_DROIDDOC_HTML_DIR) 339LOCAL_ADDITIONAL_JAVA_DIR:=$(framework_docs_LOCAL_API_CHECK_ADDITIONAL_JAVA_DIR) 340LOCAL_ADDITIONAL_DEPENDENCIES:=$(framework_docs_LOCAL_ADDITIONAL_DEPENDENCIES) 341 342LOCAL_MODULE := api-stubs 343 344LOCAL_DROIDDOC_STUB_OUT_DIR := $(TARGET_OUT_COMMON_INTERMEDIATES)/JAVA_LIBRARIES/android_stubs_current_intermediates/src 345 346LOCAL_DROIDDOC_OPTIONS:=\ 347 $(framework_docs_LOCAL_DROIDDOC_OPTIONS) \ 348 -referenceonly \ 349 -api $(INTERNAL_PLATFORM_API_FILE) \ 350 -removedApi $(INTERNAL_PLATFORM_REMOVED_API_FILE) \ 351 -nodocs 352 353LOCAL_DROIDDOC_CUSTOM_TEMPLATE_DIR:=external/doclava/res/assets/templates-sdk 354 355LOCAL_UNINSTALLABLE_MODULE := true 356 357include $(BUILD_DROIDDOC) 358 359$(full_target): .KATI_IMPLICIT_OUTPUTS := $(INTERNAL_PLATFORM_API_FILE) \ 360 $(INTERNAL_PLATFORM_REMOVED_API_FILE) 361$(call dist-for-goals,sdk,$(INTERNAL_PLATFORM_API_FILE)) 362 363# ==== the metalava api stubs and current.xml =========================== 364include $(CLEAR_VARS) 365 366LOCAL_SRC_FILES:=$(framework_docs_LOCAL_API_CHECK_SRC_FILES) 367LOCAL_GENERATED_SOURCES:=$(framework_docs_LOCAL_GENERATED_SOURCES) 368LOCAL_SRCJARS:=$(framework_docs_LOCAL_SRCJARS) 369LOCAL_JAVA_LIBRARIES:=$(framework_docs_LOCAL_API_CHECK_JAVA_LIBRARIES) 370LOCAL_MODULE_CLASS:=$(framework_docs_LOCAL_MODULE_CLASS) 371LOCAL_DROIDDOC_SOURCE_PATH:=$(framework_docs_LOCAL_DROIDDOC_SOURCE_PATH) 372LOCAL_ADDITIONAL_JAVA_DIR:=$(framework_docs_LOCAL_API_CHECK_ADDITIONAL_JAVA_DIR) 373LOCAL_ADDITIONAL_DEPENDENCIES:=$(framework_docs_LOCAL_ADDITIONAL_DEPENDENCIES) 374 375LOCAL_MODULE := metalava-api-stubs 376LOCAL_DROIDDOC_USE_METALAVA := true 377LOCAL_DROIDDOC_METALAVA_PREVIOUS_API := prebuilts/sdk/api/27.txt 378LOCAL_DROIDDOC_METALAVA_ANNOTATIONS_ENABLED := true 379LOCAL_DROIDDOC_METALAVA_MERGE_ANNOTATIONS_DIR := tools/metalava/manual 380 381LOCAL_DROIDDOC_STUB_OUT_DIR := $(TARGET_OUT_COMMON_INTERMEDIATES)/JAVA_LIBRARIES/metalava_android_stubs_current_intermediates/src 382 383INTERNAL_PLATFORM_METALAVA_PUBLIC_API_FILE := $(TARGET_OUT_COMMON_INTERMEDIATES)/PACKAGING/metalava_public_api.txt 384INTERNAL_PLATFORM_METALAVA_PUBLIC_REMOVED_API_FILE := $(TARGET_OUT_COMMON_INTERMEDIATES)/PACKAGING/metalava_removed.txt 385 386LOCAL_DROIDDOC_OPTIONS:=\ 387 $(framework_metalava_docs_LOCAL_DROIDDOC_OPTIONS) \ 388 --api $(INTERNAL_PLATFORM_METALAVA_PUBLIC_API_FILE) \ 389 --removed-api $(INTERNAL_PLATFORM_METALAVA_PUBLIC_REMOVED_API_FILE) \ 390 -nodocs 391 392LOCAL_UNINSTALLABLE_MODULE := true 393 394include $(BUILD_DROIDDOC) 395 396$(full_target): .KATI_IMPLICIT_OUTPUTS := $(INTERNAL_PLATFORM_METALAVA_PUBLIC_API_FILE) \ 397 $(INTERNAL_PLATFORM_METALAVA_PUBLIC_REMOVED_API_FILE) 398$(call dist-for-goals,sdk,$(INTERNAL_PLATFORM_METALAVA_PUBLIC_API_FILE)) 399 400# ==== the system api stubs =================================== 401include $(CLEAR_VARS) 402 403LOCAL_SRC_FILES:=$(framework_docs_LOCAL_API_CHECK_SRC_FILES) 404LOCAL_GENERATED_SOURCES:=$(framework_docs_LOCAL_GENERATED_SOURCES) 405LOCAL_SRCJARS:=$(framework_docs_LOCAL_SRCJARS) 406LOCAL_JAVA_LIBRARIES:=$(framework_docs_LOCAL_API_CHECK_JAVA_LIBRARIES) 407LOCAL_MODULE_CLASS:=$(framework_docs_LOCAL_MODULE_CLASS) 408LOCAL_DROIDDOC_SOURCE_PATH:=$(framework_docs_LOCAL_DROIDDOC_SOURCE_PATH) 409LOCAL_DROIDDOC_HTML_DIR:=$(framework_docs_LOCAL_DROIDDOC_HTML_DIR) 410LOCAL_ADDITIONAL_JAVA_DIR:=$(framework_docs_LOCAL_API_CHECK_ADDITIONAL_JAVA_DIR) 411LOCAL_ADDITIONAL_DEPENDENCIES:=$(framework_docs_LOCAL_ADDITIONAL_DEPENDENCIES) 412 413LOCAL_MODULE := system-api-stubs 414 415LOCAL_DROIDDOC_STUB_OUT_DIR := $(TARGET_OUT_COMMON_INTERMEDIATES)/JAVA_LIBRARIES/android_system_stubs_current_intermediates/src 416 417LOCAL_DROIDDOC_OPTIONS:=\ 418 $(framework_docs_LOCAL_DROIDDOC_OPTIONS) \ 419 -referenceonly \ 420 -showAnnotation android.annotation.SystemApi \ 421 -api $(INTERNAL_PLATFORM_SYSTEM_API_FILE) \ 422 -removedApi $(INTERNAL_PLATFORM_SYSTEM_REMOVED_API_FILE) \ 423 -exactApi $(INTERNAL_PLATFORM_SYSTEM_EXACT_API_FILE) \ 424 -nodocs 425 426LOCAL_DROIDDOC_CUSTOM_TEMPLATE_DIR:=external/doclava/res/assets/templates-sdk 427 428LOCAL_UNINSTALLABLE_MODULE := true 429 430include $(BUILD_DROIDDOC) 431 432$(full_target): .KATI_IMPLICIT_OUTPUTS := $(INTERNAL_PLATFORM_SYSTEM_API_FILE) \ 433 $(INTERNAL_PLATFORM_SYSTEM_REMOVED_API_FILE) \ 434 $(INTERNAL_PLATFORM_SYSTEM_EXACT_API_FILE) 435$(call dist-for-goals,sdk,$(INTERNAL_PLATFORM_SYSTEM_API_FILE)) 436 437# ==== the metalava system api stubs =================================== 438include $(CLEAR_VARS) 439 440LOCAL_SRC_FILES:=$(framework_docs_LOCAL_API_CHECK_SRC_FILES) 441LOCAL_GENERATED_SOURCES:=$(framework_docs_LOCAL_GENERATED_SOURCES) 442LOCAL_SRCJARS:=$(framework_docs_LOCAL_SRCJARS) 443LOCAL_JAVA_LIBRARIES:=$(framework_docs_LOCAL_API_CHECK_JAVA_LIBRARIES) 444LOCAL_MODULE_CLASS:=$(framework_docs_LOCAL_MODULE_CLASS) 445LOCAL_DROIDDOC_SOURCE_PATH:=$(framework_docs_LOCAL_DROIDDOC_SOURCE_PATH) 446LOCAL_ADDITIONAL_JAVA_DIR:=$(framework_docs_LOCAL_API_CHECK_ADDITIONAL_JAVA_DIR) 447LOCAL_ADDITIONAL_DEPENDENCIES:=$(framework_docs_LOCAL_ADDITIONAL_DEPENDENCIES) 448 449LOCAL_MODULE := metalava-system-api-stubs 450LOCAL_DROIDDOC_USE_METALAVA := true 451LOCAL_DROIDDOC_METALAVA_PREVIOUS_API := prebuilts/sdk/api/27.txt 452LOCAL_DROIDDOC_METALAVA_ANNOTATIONS_ENABLED := true 453LOCAL_DROIDDOC_METALAVA_MERGE_ANNOTATIONS_DIR := tools/metalava/manual 454 455LOCAL_DROIDDOC_STUB_OUT_DIR := $(TARGET_OUT_COMMON_INTERMEDIATES)/JAVA_LIBRARIES/metalava_android_system_stubs_current_intermediates/src 456 457INTERNAL_PLATFORM_METALAVA_SYSTEM_API_FILE := $(TARGET_OUT_COMMON_INTERMEDIATES)/PACKAGING/metalava-system-api.txt 458INTERNAL_PLATFORM_METALAVA_SYSTEM_REMOVED_API_FILE := $(TARGET_OUT_COMMON_INTERMEDIATES)/PACKAGING/metalava-system-removed.txt 459 460LOCAL_DROIDDOC_OPTIONS:=\ 461 $(framework_metalava_docs_LOCAL_DROIDDOC_OPTIONS) \ 462 --show-annotation android.annotation.SystemApi \ 463 --api $(INTERNAL_PLATFORM_METALAVA_SYSTEM_API_FILE) \ 464 --removed-api $(INTERNAL_PLATFORM_METALAVA_SYSTEM_REMOVED_API_FILE) \ 465 -nodocs 466 467LOCAL_UNINSTALLABLE_MODULE := true 468 469include $(BUILD_DROIDDOC) 470 471$(full_target): .KATI_IMPLICIT_OUTPUTS := $(INTERNAL_PLATFORM_METALAVA_SYSTEM_API_FILE) \ 472 $(INTERNAL_PLATFORM_METALAVA_SYSTEM_REMOVED_API_FILE) \ 473$(call dist-for-goals,sdk,$(INTERNAL_PLATFORM_METALAVA_SYSTEM_API_FILE)) 474 475# ==== the test api stubs =================================== 476include $(CLEAR_VARS) 477 478LOCAL_SRC_FILES:=$(framework_docs_LOCAL_API_CHECK_SRC_FILES) 479LOCAL_GENERATED_SOURCES:=$(framework_docs_LOCAL_GENERATED_SOURCES) 480LOCAL_SRCJARS:=$(framework_docs_LOCAL_SRCJARS) 481LOCAL_JAVA_LIBRARIES:=$(framework_docs_LOCAL_API_CHECK_JAVA_LIBRARIES) 482LOCAL_MODULE_CLASS:=$(framework_docs_LOCAL_MODULE_CLASS) 483LOCAL_DROIDDOC_SOURCE_PATH:=$(framework_docs_LOCAL_DROIDDOC_SOURCE_PATH) 484LOCAL_DROIDDOC_HTML_DIR:=$(framework_docs_LOCAL_DROIDDOC_HTML_DIR) 485LOCAL_ADDITIONAL_JAVA_DIR:=$(framework_docs_LOCAL_API_CHECK_ADDITIONAL_JAVA_DIR) 486LOCAL_ADDITIONAL_DEPENDENCIES:=$(framework_docs_LOCAL_ADDITIONAL_DEPENDENCIES) 487 488LOCAL_MODULE := test-api-stubs 489 490LOCAL_DROIDDOC_STUB_OUT_DIR := $(TARGET_OUT_COMMON_INTERMEDIATES)/JAVA_LIBRARIES/android_test_stubs_current_intermediates/src 491 492LOCAL_DROIDDOC_OPTIONS:=\ 493 $(framework_docs_LOCAL_DROIDDOC_OPTIONS) \ 494 -referenceonly \ 495 -stubs $(TARGET_OUT_COMMON_INTERMEDIATES)/JAVA_LIBRARIES/android_test_stubs_current_intermediates/src \ 496 -showAnnotation android.annotation.TestApi \ 497 -api $(INTERNAL_PLATFORM_TEST_API_FILE) \ 498 -removedApi $(INTERNAL_PLATFORM_TEST_REMOVED_API_FILE) \ 499 -exactApi $(INTERNAL_PLATFORM_TEST_EXACT_API_FILE) \ 500 -nodocs 501 502LOCAL_DROIDDOC_CUSTOM_TEMPLATE_DIR:=external/doclava/res/assets/templates-sdk 503 504LOCAL_UNINSTALLABLE_MODULE := true 505 506include $(BUILD_DROIDDOC) 507 508$(full_target): .KATI_IMPLICIT_OUTPUTS := $(INTERNAL_PLATFORM_TEST_API_FILE) \ 509 $(INTERNAL_PLATFORM_TEST_REMOVED_API_FILE) \ 510 $(INTERNAL_PLATFORM_TEST_EXACT_API_FILE) 511$(call dist-for-goals,sdk,$(INTERNAL_PLATFORM_TEST_API_FILE)) 512 513# ==== the metalava test api stubs =================================== 514include $(CLEAR_VARS) 515 516LOCAL_SRC_FILES:=$(framework_docs_LOCAL_API_CHECK_SRC_FILES) 517LOCAL_GENERATED_SOURCES:=$(framework_docs_LOCAL_GENERATED_SOURCES) 518LOCAL_SRCJARS:=$(framework_docs_LOCAL_SRCJARS) 519LOCAL_JAVA_LIBRARIES:=$(framework_docs_LOCAL_API_CHECK_JAVA_LIBRARIES) 520LOCAL_MODULE_CLASS:=$(framework_docs_LOCAL_MODULE_CLASS) 521LOCAL_DROIDDOC_SOURCE_PATH:=$(framework_docs_LOCAL_DROIDDOC_SOURCE_PATH) 522LOCAL_ADDITIONAL_JAVA_DIR:=$(framework_docs_LOCAL_API_CHECK_ADDITIONAL_JAVA_DIR) 523LOCAL_ADDITIONAL_DEPENDENCIES:=$(framework_docs_LOCAL_ADDITIONAL_DEPENDENCIES) 524 525LOCAL_MODULE := metalava-test-api-stubs 526LOCAL_DROIDDOC_USE_METALAVA := true 527LOCAL_DROIDDOC_METALAVA_PREVIOUS_API := prebuilts/sdk/api/27.txt 528LOCAL_DROIDDOC_METALAVA_ANNOTATIONS_ENABLED := true 529LOCAL_DROIDDOC_METALAVA_MERGE_ANNOTATIONS_DIR := tools/metalava/manual 530 531LOCAL_DROIDDOC_STUB_OUT_DIR := $(TARGET_OUT_COMMON_INTERMEDIATES)/JAVA_LIBRARIES/metalava_android_test_stubs_current_intermediates/src 532 533INTERNAL_PLATFORM_METALAVA_TEST_API_FILE := $(TARGET_OUT_COMMON_INTERMEDIATES)/PACKAGING/metalava-test-api.txt 534INTERNAL_PLATFORM_METALAVA_TEST_REMOVED_API_FILE := $(TARGET_OUT_COMMON_INTERMEDIATES)/PACKAGING/metalava-test-removed.txt 535 536LOCAL_DROIDDOC_OPTIONS:=\ 537 $(framework_metalava_docs_LOCAL_DROIDDOC_OPTIONS) \ 538 --show-annotation android.annotation.TestApi \ 539 --api $(INTERNAL_PLATFORM_METALAVA_TEST_API_FILE) \ 540 --removed-api $(INTERNAL_PLATFORM_METALAVA_TEST_REMOVED_API_FILE) \ 541 -nodocs 542 543LOCAL_UNINSTALLABLE_MODULE := true 544 545include $(BUILD_DROIDDOC) 546 547$(full_target): .KATI_IMPLICIT_OUTPUTS := $(INTERNAL_PLATFORM_METALAVA_TEST_API_FILE) \ 548 $(INTERNAL_PLATFORM_METALAVA_TEST_REMOVED_API_FILE) \ 549$(call dist-for-goals,sdk,$(INTERNAL_PLATFORM_METALAVA_TEST_API_FILE)) 550 551# ==== the complete hidden api list =================================== 552include $(CLEAR_VARS) 553 554LOCAL_SRC_FILES:=$(framework_docs_LOCAL_API_CHECK_SRC_FILES) 555LOCAL_GENERATED_SOURCES:=$(framework_docs_LOCAL_GENERATED_SOURCES) 556LOCAL_SRCJARS:=$(framework_docs_LOCAL_SRCJARS) 557LOCAL_JAVA_LIBRARIES:=$(framework_docs_LOCAL_API_CHECK_JAVA_LIBRARIES) 558LOCAL_MODULE_CLASS:=$(framework_docs_LOCAL_MODULE_CLASS) 559LOCAL_DROIDDOC_SOURCE_PATH:=$(framework_docs_LOCAL_DROIDDOC_SOURCE_PATH) 560LOCAL_DROIDDOC_HTML_DIR:=$(framework_docs_LOCAL_DROIDDOC_HTML_DIR) 561LOCAL_ADDITIONAL_JAVA_DIR:=$(framework_docs_LOCAL_API_CHECK_ADDITIONAL_JAVA_DIR) 562LOCAL_ADDITIONAL_DEPENDENCIES:=$(framework_docs_LOCAL_ADDITIONAL_DEPENDENCIES) 563 564LOCAL_MODULE := hidden-api-list 565 566LOCAL_DROIDDOC_OPTIONS:=\ 567 $(framework_docs_LOCAL_DROIDDOC_OPTIONS) \ 568 -referenceonly \ 569 -showUnannotated \ 570 -showAnnotation android.annotation.SystemApi \ 571 -showAnnotation android.annotation.TestApi \ 572 -dexApi $(INTERNAL_PLATFORM_DEX_API_FILE) \ 573 -privateDexApi $(INTERNAL_PLATFORM_PRIVATE_DEX_API_FILE) \ 574 -removedDexApi $(INTERNAL_PLATFORM_REMOVED_DEX_API_FILE) \ 575 -nodocs 576 577LOCAL_DROIDDOC_CUSTOM_TEMPLATE_DIR:=external/doclava/res/assets/templates-sdk 578 579LOCAL_UNINSTALLABLE_MODULE := true 580 581include $(BUILD_DROIDDOC) 582 583$(full_target): .KATI_IMPLICIT_OUTPUTS := $(INTERNAL_PLATFORM_DEX_API_FILE) \ 584 $(INTERNAL_PLATFORM_PRIVATE_DEX_API_FILE) \ 585 $(INTERNAL_PLATFORM_REMOVED_DEX_API_FILE) 586 587# ==== check javadoc comments but don't generate docs ======== 588include $(CLEAR_VARS) 589 590LOCAL_SRC_FILES:=$(framework_docs_LOCAL_SRC_FILES) 591LOCAL_GENERATED_SOURCES:=$(framework_docs_LOCAL_GENERATED_SOURCES) 592LOCAL_SRCJARS:=$(framework_docs_LOCAL_SRCJARS) 593LOCAL_JAVA_LIBRARIES:=$(framework_docs_LOCAL_JAVA_LIBRARIES) 594LOCAL_MODULE_CLASS:=$(framework_docs_LOCAL_MODULE_CLASS) 595LOCAL_DROIDDOC_SOURCE_PATH:=$(framework_docs_LOCAL_DROIDDOC_SOURCE_PATH) 596LOCAL_DROIDDOC_HTML_DIR:=$(framework_docs_LOCAL_DROIDDOC_HTML_DIR) 597LOCAL_ADDITIONAL_JAVA_DIR:=$(framework_docs_LOCAL_ADDITIONAL_JAVA_DIR) 598LOCAL_ADDITIONAL_DEPENDENCIES:=$(framework_docs_LOCAL_ADDITIONAL_DEPENDENCIES) 599 600LOCAL_MODULE := doc-comment-check 601 602LOCAL_DROIDDOC_OPTIONS:=\ 603 $(framework_docs_LOCAL_DROIDDOC_OPTIONS) \ 604 -referenceonly \ 605 -parsecomments 606 607LOCAL_DROIDDOC_CUSTOM_TEMPLATE_DIR:=external/doclava/res/assets/templates-sdk 608 609LOCAL_UNINSTALLABLE_MODULE := true 610 611include $(BUILD_DROIDDOC) 612 613# Run this for checkbuild 614checkbuild: doc-comment-check-docs 615# Check comment when you are updating the API 616update-api: doc-comment-check-docs 617 618# ==== static html in the sdk ================================== 619include $(CLEAR_VARS) 620 621LOCAL_SRC_FILES:=$(framework_docs_LOCAL_SRC_FILES) 622LOCAL_GENERATED_SOURCES:=$(framework_docs_LOCAL_GENERATED_SOURCES) 623LOCAL_SRCJARS:=$(framework_docs_LOCAL_SRCJARS) 624LOCAL_JAVA_LIBRARIES:=$(framework_docs_LOCAL_JAVA_LIBRARIES) 625LOCAL_MODULE_CLASS:=$(framework_docs_LOCAL_MODULE_CLASS) 626LOCAL_DROIDDOC_SOURCE_PATH:=$(framework_docs_LOCAL_DROIDDOC_SOURCE_PATH) 627LOCAL_DROIDDOC_HTML_DIR:=$(framework_docs_LOCAL_DROIDDOC_HTML_DIR) 628LOCAL_ADDITIONAL_JAVA_DIR:=$(framework_docs_LOCAL_ADDITIONAL_JAVA_DIR) 629LOCAL_ADDITIONAL_DEPENDENCIES:=$(framework_docs_LOCAL_ADDITIONAL_DEPENDENCIES) 630 631LOCAL_MODULE := offline-sdk 632 633LOCAL_DROIDDOC_OPTIONS:=\ 634 $(framework_docs_LOCAL_DROIDDOC_OPTIONS) \ 635 -offlinemode \ 636 -title "Android SDK" \ 637 -proofread $(OUT_DOCS)/$(LOCAL_MODULE)-proofread.txt \ 638 -sdkvalues $(OUT_DOCS) \ 639 -hdf android.whichdoc offline 640 641LOCAL_DROIDDOC_CUSTOM_TEMPLATE_DIR:=external/doclava/res/assets/templates-sdk 642 643include $(BUILD_DROIDDOC) 644 645static_doc_index_redirect := $(out_dir)/index.html 646$(static_doc_index_redirect): \ 647 $(LOCAL_PATH)/docs/docs-preview-index.html | $(ACP) 648 $(hide) mkdir -p $(dir $@) 649 $(hide) $(ACP) $< $@ 650 651$(full_target): $(static_doc_index_redirect) 652 653 654# ==== Public API static reference docs ================================== 655include $(CLEAR_VARS) 656 657LOCAL_SRC_FILES:=$(framework_docs_LOCAL_SRC_FILES) 658LOCAL_GENERATED_SOURCES:=$(framework_docs_LOCAL_GENERATED_SOURCES) 659LOCAL_SRCJARS:=$(framework_docs_LOCAL_SRCJARS) 660LOCAL_JAVA_LIBRARIES:=$(framework_docs_LOCAL_JAVA_LIBRARIES) 661LOCAL_MODULE_CLASS:=$(framework_docs_LOCAL_MODULE_CLASS) 662LOCAL_DROIDDOC_SOURCE_PATH:=$(framework_docs_LOCAL_DROIDDOC_SOURCE_PATH) 663LOCAL_DROIDDOC_HTML_DIR:=$(framework_docs_LOCAL_DROIDDOC_HTML_DIR) 664LOCAL_ADDITIONAL_JAVA_DIR:=$(framework_docs_LOCAL_ADDITIONAL_JAVA_DIR) 665LOCAL_ADDITIONAL_DEPENDENCIES:=$(framework_docs_LOCAL_ADDITIONAL_DEPENDENCIES) 666 667LOCAL_MODULE := offline-sdk-referenceonly 668 669LOCAL_DROIDDOC_OPTIONS:=\ 670 $(framework_docs_LOCAL_DROIDDOC_OPTIONS) \ 671 -offlinemode \ 672 -title "Android SDK" \ 673 -proofread $(OUT_DOCS)/$(LOCAL_MODULE)-proofread.txt \ 674 -sdkvalues $(OUT_DOCS) \ 675 -hdf android.whichdoc offline \ 676 -referenceonly 677 678LOCAL_DROIDDOC_CUSTOM_TEMPLATE_DIR:=external/doclava/res/assets/templates-sdk 679 680include $(BUILD_DROIDDOC) 681 682static_doc_index_redirect := $(out_dir)/index.html 683$(static_doc_index_redirect): $(LOCAL_PATH)/docs/docs-documentation-redirect.html 684 $(copy-file-to-target) 685 686static_doc_properties := $(out_dir)/source.properties 687$(static_doc_properties): \ 688 $(LOCAL_PATH)/docs/source.properties | $(ACP) 689 $(hide) mkdir -p $(dir $@) 690 $(hide) $(ACP) $< $@ 691 692$(full_target): $(static_doc_index_redirect) 693$(full_target): $(static_doc_properties) 694 695 696# ==== System API static reference docs ================================== 697include $(CLEAR_VARS) 698 699LOCAL_SRC_FILES:=$(framework_docs_LOCAL_SRC_FILES) 700LOCAL_GENERATED_SOURCES:=$(framework_docs_LOCAL_GENERATED_SOURCES) 701LOCAL_SRCJARS:=$(framework_docs_LOCAL_SRCJARS) 702LOCAL_JAVA_LIBRARIES:=$(framework_docs_LOCAL_JAVA_LIBRARIES) 703LOCAL_MODULE_CLASS:=$(framework_docs_LOCAL_MODULE_CLASS) 704LOCAL_DROIDDOC_SOURCE_PATH:=$(framework_docs_LOCAL_DROIDDOC_SOURCE_PATH) 705LOCAL_DROIDDOC_HTML_DIR:=$(framework_docs_LOCAL_DROIDDOC_HTML_DIR) 706LOCAL_ADDITIONAL_JAVA_DIR:=$(framework_docs_LOCAL_ADDITIONAL_JAVA_DIR) 707LOCAL_ADDITIONAL_DEPENDENCIES:=$(framework_docs_LOCAL_ADDITIONAL_DEPENDENCIES) 708 709LOCAL_MODULE := offline-system-sdk-referenceonly 710 711LOCAL_DROIDDOC_OPTIONS:=\ 712 $(framework_docs_LOCAL_DROIDDOC_OPTIONS) \ 713 -hide 101 -hide 104 -hide 108 \ 714 -showAnnotation android.annotation.SystemApi \ 715 -offlinemode \ 716 -title "Android System SDK" \ 717 -proofread $(OUT_DOCS)/$(LOCAL_MODULE)-proofread.txt \ 718 -sdkvalues $(OUT_DOCS) \ 719 -hdf android.whichdoc offline \ 720 -referenceonly 721 722LOCAL_DROIDDOC_CUSTOM_TEMPLATE_DIR:=external/doclava/res/assets/templates-sdk 723 724include $(BUILD_DROIDDOC) 725 726static_doc_index_redirect := $(out_dir)/index.html 727$(static_doc_index_redirect): $(LOCAL_PATH)/docs/docs-documentation-redirect.html 728 $(copy-file-to-target) 729 730static_doc_properties := $(out_dir)/source.properties 731$(static_doc_properties): \ 732 $(LOCAL_PATH)/docs/source.properties | $(ACP) 733 $(hide) mkdir -p $(dir $@) 734 $(hide) $(ACP) $< $@ 735 736$(full_target): $(static_doc_index_redirect) 737$(full_target): $(static_doc_properties) 738$(full_target): $(framework_built) 739 740 741# ==== docs for the web (on the androiddevdocs app engine server) ======================= 742include $(CLEAR_VARS) 743 744LOCAL_SRC_FILES:=$(framework_docs_LOCAL_SRC_FILES) 745LOCAL_GENERATED_SOURCES:=$(framework_docs_LOCAL_GENERATED_SOURCES) 746LOCAL_SRCJARS:=$(framework_docs_LOCAL_SRCJARS) 747LOCAL_STATIC_JAVA_LIBRARIES:=$(framework_docs_LOCAL_STATIC_JAVA_LIBRARIES) 748LOCAL_JAVA_LIBRARIES:=$(framework_docs_LOCAL_JAVA_LIBRARIES) 749LOCAL_MODULE_CLASS:=$(framework_docs_LOCAL_MODULE_CLASS) 750LOCAL_DROIDDOC_SOURCE_PATH:=$(framework_docs_LOCAL_DROIDDOC_SOURCE_PATH) 751LOCAL_DROIDDOC_HTML_DIR:=$(framework_docs_LOCAL_DROIDDOC_HTML_DIR) 752LOCAL_ADDITIONAL_JAVA_DIR:=$(framework_docs_LOCAL_ADDITIONAL_JAVA_DIR) 753LOCAL_ADDITIONAL_DEPENDENCIES:=$(framework_docs_LOCAL_ADDITIONAL_DEPENDENCIES) 754LOCAL_ADDITIONAL_HTML_DIR:=docs/html-intl / 755 756LOCAL_MODULE := online-sdk 757 758LOCAL_DROIDDOC_OPTIONS:= \ 759 $(framework_docs_LOCAL_DROIDDOC_OPTIONS) \ 760 -toroot / \ 761 -hdf android.whichdoc online \ 762 $(sample_groups) \ 763 -hdf android.hasSamples true \ 764 -samplesdir $(samples_dir) 765 766LOCAL_DROIDDOC_CUSTOM_TEMPLATE_DIR:=external/doclava/res/assets/templates-sdk 767 768include $(BUILD_DROIDDOC) 769 770# ==== docs for the web (on the androiddevdocs app engine server) ======================= 771include $(CLEAR_VARS) 772 773LOCAL_SRC_FILES:=$(framework_docs_LOCAL_SRC_FILES) 774LOCAL_GENERATED_SOURCES:=$(framework_docs_LOCAL_GENERATED_SOURCES) 775LOCAL_SRCJARS:=$(framework_docs_LOCAL_SRCJARS) 776LOCAL_STATIC_JAVA_LIBRARIES:=$(framework_docs_LOCAL_STATIC_JAVA_LIBRARIES) 777LOCAL_JAVA_LIBRARIES:=$(framework_docs_LOCAL_JAVA_LIBRARIES) 778LOCAL_MODULE_CLASS:=$(framework_docs_LOCAL_MODULE_CLASS) 779LOCAL_DROIDDOC_SOURCE_PATH:=$(framework_docs_LOCAL_DROIDDOC_SOURCE_PATH) 780LOCAL_DROIDDOC_HTML_DIR:=$(framework_docs_LOCAL_DROIDDOC_HTML_DIR) 781LOCAL_ADDITIONAL_JAVA_DIR:=$(framework_docs_LOCAL_ADDITIONAL_JAVA_DIR) 782LOCAL_ADDITIONAL_DEPENDENCIES:=$(framework_docs_LOCAL_ADDITIONAL_DEPENDENCIES) 783LOCAL_ADDITIONAL_HTML_DIR:=docs/html-intl / 784 785LOCAL_MODULE := online-system-api-sdk 786 787LOCAL_DROIDDOC_OPTIONS:= \ 788 $(framework_docs_LOCAL_DROIDDOC_OPTIONS) \ 789 -referenceonly \ 790 -showAnnotation android.annotation.SystemApi \ 791 -title "Android SDK - Including system APIs." \ 792 -toroot / \ 793 -hide 101 \ 794 -hide 104 \ 795 -hide 108 \ 796 -hdf android.whichdoc online \ 797 $(sample_groups) \ 798 -hdf android.hasSamples true \ 799 -samplesdir $(samples_dir) 800 801LOCAL_DROIDDOC_CUSTOM_TEMPLATE_DIR:=external/doclava/res/assets/templates-sdk 802 803LOCAL_UNINSTALLABLE_MODULE := true 804 805include $(BUILD_DROIDDOC) 806 807# ==== docs for the web (on the devsite app engine server) ======================= 808include $(CLEAR_VARS) 809LOCAL_SRC_FILES:=$(framework_docs_LOCAL_SRC_FILES) 810LOCAL_GENERATED_SOURCES:=$(framework_docs_LOCAL_GENERATED_SOURCES) 811LOCAL_SRCJARS:=$(framework_docs_LOCAL_SRCJARS) 812LOCAL_STATIC_JAVA_LIBRARIES:=$(framework_docs_LOCAL_STATIC_JAVA_LIBRARIES) 813LOCAL_JAVA_LIBRARIES:=$(framework_docs_LOCAL_JAVA_LIBRARIES) 814LOCAL_MODULE_CLASS:=$(framework_docs_LOCAL_MODULE_CLASS) 815LOCAL_DROIDDOC_SOURCE_PATH:=$(framework_docs_LOCAL_DROIDDOC_SOURCE_PATH) 816LOCAL_DROIDDOC_HTML_DIR:=$(framework_docs_LOCAL_DROIDDOC_HTML_DIR) 817LOCAL_ADDITIONAL_JAVA_DIR:=$(framework_docs_LOCAL_ADDITIONAL_JAVA_DIR) 818LOCAL_ADDITIONAL_DEPENDENCIES:=$(framework_docs_LOCAL_ADDITIONAL_DEPENDENCIES) 819# specify a second html input dir and an output path relative to OUT_DIR) 820LOCAL_ADDITIONAL_HTML_DIR:=docs/html-intl / 821 822LOCAL_MODULE := ds 823 824LOCAL_DROIDDOC_OPTIONS:= \ 825 $(framework_docs_LOCAL_DROIDDOC_OPTIONS) \ 826 -toroot / \ 827 -hdf android.whichdoc online \ 828 -devsite \ 829 -yamlV2 \ 830 $(sample_groups) \ 831 -hdf android.hasSamples true \ 832 -samplesdir $(samples_dir) 833 834LOCAL_DROIDDOC_CUSTOM_TEMPLATE_DIR:=external/doclava/res/assets/templates-sdk 835 836include $(BUILD_DROIDDOC) 837 838# ==== docs for the web (on the devsite app engine server) ======================= 839include $(CLEAR_VARS) 840LOCAL_SRC_FILES:=$(framework_docs_LOCAL_SRC_FILES) 841LOCAL_GENERATED_SOURCES:=$(framework_docs_LOCAL_GENERATED_SOURCES) 842LOCAL_SRCJARS:=$(framework_docs_LOCAL_SRCJARS) 843LOCAL_STATIC_JAVA_LIBRARIES:=$(framework_docs_LOCAL_STATIC_JAVA_LIBRARIES) 844LOCAL_JAVA_LIBRARIES:=$(framework_docs_LOCAL_JAVA_LIBRARIES) 845LOCAL_MODULE_CLASS:=$(framework_docs_LOCAL_MODULE_CLASS) 846LOCAL_DROIDDOC_SOURCE_PATH:=$(framework_docs_LOCAL_DROIDDOC_SOURCE_PATH) 847LOCAL_DROIDDOC_HTML_DIR:=$(framework_docs_LOCAL_DROIDDOC_HTML_DIR) 848LOCAL_ADDITIONAL_JAVA_DIR:=$(framework_docs_LOCAL_ADDITIONAL_JAVA_DIR) 849LOCAL_ADDITIONAL_DEPENDENCIES:=$(framework_docs_LOCAL_ADDITIONAL_DEPENDENCIES) 850# specify a second html input dir and an output path relative to OUT_DIR) 851LOCAL_ADDITIONAL_HTML_DIR:=docs/html-intl / 852 853LOCAL_MODULE := ds-static 854 855LOCAL_DROIDDOC_OPTIONS:= \ 856 $(framework_docs_LOCAL_DROIDDOC_OPTIONS) \ 857 -hdf android.whichdoc online \ 858 -staticonly \ 859 -toroot / \ 860 -devsite \ 861 -ignoreJdLinks 862 863LOCAL_DROIDDOC_CUSTOM_TEMPLATE_DIR:=external/doclava/res/assets/templates-sdk 864 865include $(BUILD_DROIDDOC) 866 867# ==== generates full navtree for resolving @links in ds postprocessing ==== 868include $(CLEAR_VARS) 869 870LOCAL_SRC_FILES:=$(framework_docs_LOCAL_SRC_FILES) 871LOCAL_GENERATED_SOURCES:=$(framework_docs_LOCAL_GENERATED_SOURCES) 872LOCAL_SRCJARS:=$(framework_docs_LOCAL_SRCJARS) 873LOCAL_STATIC_JAVA_LIBRARIES:=$(framework_docs_LOCAL_STATIC_JAVA_LIBRARIES) 874LOCAL_JAVA_LIBRARIES:=$(framework_docs_LOCAL_JAVA_LIBRARIES) 875LOCAL_MODULE_CLASS:=$(framework_docs_LOCAL_MODULE_CLASS) 876LOCAL_DROIDDOC_SOURCE_PATH:=$(framework_docs_LOCAL_DROIDDOC_SOURCE_PATH) 877LOCAL_ADDITIONAL_JAVA_DIR:=$(framework_docs_LOCAL_ADDITIONAL_JAVA_DIR) 878LOCAL_ADDITIONAL_DEPENDENCIES:=$(framework_docs_LOCAL_ADDITIONAL_DEPENDENCIES) 879 880LOCAL_MODULE := ds-ref-navtree 881 882LOCAL_DROIDDOC_OPTIONS:= \ 883 $(framework_docs_LOCAL_DROIDDOC_OPTIONS) \ 884 -hdf android.whichdoc online \ 885 -toroot / \ 886 -atLinksNavtree \ 887 -navtreeonly 888 889LOCAL_DROIDDOC_CUSTOM_TEMPLATE_DIR:=external/doclava/res/assets/templates-sdk 890 891include $(BUILD_DROIDDOC) 892 893# ==== site updates for docs (on the androiddevdocs app engine server) ======================= 894include $(CLEAR_VARS) 895 896LOCAL_SRC_FILES:=$(framework_docs_LOCAL_SRC_FILES) 897LOCAL_GENERATED_SOURCES:=$(framework_docs_LOCAL_GENERATED_SOURCES) 898LOCAL_SRCJARS:=$(framework_docs_LOCAL_SRCJARS) 899LOCAL_STATIC_JAVA_LIBRARIES:=$(framework_docs_LOCAL_STATIC_JAVA_LIBRARIES) 900LOCAL_JAVA_LIBRARIES:=$(framework_docs_LOCAL_JAVA_LIBRARIES) 901LOCAL_MODULE_CLASS:=$(framework_docs_LOCAL_MODULE_CLASS) 902LOCAL_DROIDDOC_SOURCE_PATH:=$(framework_docs_LOCAL_DROIDDOC_SOURCE_PATH) 903LOCAL_DROIDDOC_HTML_DIR:=$(framework_docs_LOCAL_DROIDDOC_HTML_DIR) 904LOCAL_ADDITIONAL_JAVA_DIR:=$(framework_docs_LOCAL_ADDITIONAL_JAVA_DIR) 905LOCAL_ADDITIONAL_DEPENDENCIES:=$(framework_docs_LOCAL_ADDITIONAL_DEPENDENCIES) 906LOCAL_ADDITIONAL_HTML_DIR:=docs/html-intl / 907 908LOCAL_MODULE := online-sdk-dev 909 910LOCAL_DROIDDOC_OPTIONS:= \ 911 $(framework_docs_LOCAL_DROIDDOC_OPTIONS) \ 912 -toroot / \ 913 -hdf android.whichdoc online \ 914 $(sample_groups) \ 915 -hdf android.hasSamples true \ 916 -samplesdir $(samples_dir) 917 918LOCAL_DROIDDOC_CUSTOM_TEMPLATE_DIR:=external/doclava/res/assets/templates-sdk 919 920include $(BUILD_DROIDDOC) 921 922# ==== docs that have all of the stuff that's @hidden ======================= 923include $(CLEAR_VARS) 924 925LOCAL_SRC_FILES:=$(framework_docs_LOCAL_SRC_FILES) 926LOCAL_GENERATED_SOURCES:=$(framework_docs_LOCAL_GENERATED_SOURCES) 927LOCAL_SRCJARS:=$(framework_docs_LOCAL_SRCJARS) 928LOCAL_JAVA_LIBRARIES:=$(framework_docs_LOCAL_JAVA_LIBRARIES) 929LOCAL_MODULE_CLASS:=$(framework_docs_LOCAL_MODULE_CLASS) 930LOCAL_DROIDDOC_SOURCE_PATH:=$(framework_docs_LOCAL_DROIDDOC_SOURCE_PATH) 931LOCAL_DROIDDOC_HTML_DIR:=$(framework_docs_LOCAL_DROIDDOC_HTML_DIR) 932LOCAL_ADDITIONAL_JAVA_DIR:=$(framework_docs_LOCAL_ADDITIONAL_JAVA_DIR) 933LOCAL_ADDITIONAL_DEPENDENCIES:=$(framework_docs_LOCAL_ADDITIONAL_DEPENDENCIES) 934 935LOCAL_MODULE := hidden 936LOCAL_DROIDDOC_OPTIONS:=\ 937 $(framework_docs_LOCAL_DROIDDOC_OPTIONS) \ 938 -referenceonly \ 939 -title "Android SDK - Including hidden APIs." 940# -hidden 941 942LOCAL_DROIDDOC_CUSTOM_TEMPLATE_DIR:=external/doclava/res/assets/templates-sdk 943 944include $(BUILD_DROIDDOC) 945 946# ==== java proto host library ============================== 947include $(CLEAR_VARS) 948LOCAL_MODULE := platformprotos 949LOCAL_PROTOC_OPTIMIZE_TYPE := full 950LOCAL_PROTOC_FLAGS := \ 951 -Iexternal/protobuf/src 952LOCAL_SOURCE_FILES_ALL_GENERATED := true 953LOCAL_SRC_FILES := \ 954 cmds/am/proto/instrumentation_data.proto \ 955 cmds/statsd/src/perfetto/perfetto_config.proto \ 956 $(call all-proto-files-under, core/proto) \ 957 $(call all-proto-files-under, libs/incident/proto) \ 958 $(call all-proto-files-under, cmds/statsd/src) 959# b/72714520 960LOCAL_ERROR_PRONE_FLAGS := -Xep:MissingOverride:OFF 961include $(BUILD_HOST_JAVA_LIBRARY) 962 963# ==== java proto device library (for test only) ============================== 964include $(CLEAR_VARS) 965LOCAL_MODULE := platformprotosnano 966LOCAL_MODULE_TAGS := tests 967LOCAL_PROTOC_OPTIMIZE_TYPE := nano 968LOCAL_PROTOC_FLAGS := \ 969 -Iexternal/protobuf/src 970LOCAL_PROTO_JAVA_OUTPUT_PARAMS := \ 971 store_unknown_fields = true 972LOCAL_SDK_VERSION := current 973LOCAL_SRC_FILES := \ 974 $(call all-proto-files-under, core/proto) \ 975 $(call all-proto-files-under, libs/incident/proto/android/os) 976include $(BUILD_STATIC_JAVA_LIBRARY) 977 978 979# ==== java proto device library (for test only) ============================== 980include $(CLEAR_VARS) 981LOCAL_MODULE := platformprotoslite 982LOCAL_MODULE_TAGS := tests 983LOCAL_PROTOC_OPTIMIZE_TYPE := lite 984LOCAL_PROTOC_FLAGS := \ 985 -Iexternal/protobuf/src 986LOCAL_SRC_FILES := \ 987 $(call all-proto-files-under, core/proto) \ 988 $(call all-proto-files-under, libs/incident/proto/android/os) 989# Protos have lots of MissingOverride and similar. 990LOCAL_ERROR_PRONE_FLAGS := -XepDisableAllChecks 991include $(BUILD_STATIC_JAVA_LIBRARY) 992 993# ==== hiddenapi lists ======================================= 994include $(CLEAR_VARS) 995 996# File names of final API lists 997LOCAL_LIGHT_GREYLIST := $(INTERNAL_PLATFORM_HIDDENAPI_LIGHT_GREYLIST) 998LOCAL_DARK_GREYLIST := $(INTERNAL_PLATFORM_HIDDENAPI_DARK_GREYLIST) 999LOCAL_BLACKLIST := $(INTERNAL_PLATFORM_HIDDENAPI_BLACKLIST) 1000 1001# File names of source files we will use to generate the final API lists. 1002LOCAL_SRC_GREYLIST := frameworks/base/config/hiddenapi-light-greylist.txt 1003LOCAL_SRC_VENDOR_LIST := frameworks/base/config/hiddenapi-vendor-list.txt 1004LOCAL_SRC_FORCE_BLACKLIST := frameworks/base/config/hiddenapi-force-blacklist.txt 1005LOCAL_SRC_PUBLIC_API := frameworks/base/config/hiddenapi-public-dex.txt 1006LOCAL_SRC_PRIVATE_API := frameworks/base/config/hiddenapi-private-dex.txt 1007LOCAL_SRC_REMOVED_API := frameworks/base/config/hiddenapi-removed-dex.txt 1008 1009LOCAL_SRC_ALL := \ 1010 $(LOCAL_SRC_GREYLIST) \ 1011 $(LOCAL_SRC_VENDOR_LIST) \ 1012 $(LOCAL_SRC_FORCE_BLACKLIST) \ 1013 $(LOCAL_SRC_PUBLIC_API) \ 1014 $(LOCAL_SRC_PRIVATE_API) \ 1015 $(LOCAL_SRC_REMOVED_API) 1016 1017define assert-has-no-overlap 1018if [ ! -z "`comm -12 <(sort $(1)) <(sort $(2))`" ]; then \ 1019 echo "$(1) and $(2) should not overlap" 1>&2; \ 1020 comm -12 <(sort $(1)) <(sort $(2)) 1>&2; \ 1021 exit 1; \ 1022fi 1023endef 1024 1025define assert-is-subset 1026if [ ! -z "`comm -23 <(sort $(1)) <(sort $(2))`" ]; then \ 1027 echo "$(1) must be a subset of $(2)" 1>&2; \ 1028 comm -23 <(sort $(1)) <(sort $(2)) 1>&2; \ 1029 exit 1; \ 1030fi 1031endef 1032 1033define assert-has-no-duplicates 1034if [ ! -z "`sort $(1) | uniq -D`" ]; then \ 1035 echo "$(1) has duplicate entries" 1>&2; \ 1036 sort $(1) | uniq -D 1>&2; \ 1037 exit 1; \ 1038fi 1039endef 1040 1041# The following rules build API lists in the build folder. 1042# By not using files from the source tree, ART buildbots can mock these lists 1043# or have alternative rules for building them. Other rules in the build system 1044# should depend on the files in the build folder. 1045 1046# Merge light greylist from multiple files: 1047# (1) manual greylist LOCAL_SRC_GREYLIST 1048# (2) list of usages from vendor apps LOCAL_SRC_VENDOR_LIST 1049# (3) list of removed APIs in LOCAL_SRC_REMOVED_API 1050# @removed does not imply private in Doclava. We must take the subset also 1051# in LOCAL_SRC_PRIVATE_API. 1052# (4) list of serialization APIs 1053# Automatically adds all methods which match the signatures in 1054# REGEX_SERIALIZATION. These are greylisted in order to allow applications 1055# to write their own serializers. 1056$(LOCAL_LIGHT_GREYLIST): REGEX_SERIALIZATION := \ 1057 "readObject\(Ljava/io/ObjectInputStream;\)V" \ 1058 "readObjectNoData\(\)V" \ 1059 "readResolve\(\)Ljava/lang/Object;" \ 1060 "serialVersionUID:J" \ 1061 "serialPersistentFields:\[Ljava/io/ObjectStreamField;" \ 1062 "writeObject\(Ljava/io/ObjectOutputStream;\)V" \ 1063 "writeReplace\(\)Ljava/lang/Object;" 1064$(LOCAL_LIGHT_GREYLIST): $(LOCAL_SRC_ALL) 1065 sort $(LOCAL_SRC_GREYLIST) $(LOCAL_SRC_VENDOR_LIST) \ 1066 <(grep -E "\->("$(subst $(space),"|",$(REGEX_SERIALIZATION))")$$" \ 1067 $(LOCAL_SRC_PRIVATE_API)) \ 1068 <(comm -12 <(sort $(LOCAL_SRC_REMOVED_API)) <(sort $(LOCAL_SRC_PRIVATE_API))) \ 1069 > $@ 1070 $(call assert-has-no-duplicates,$@) 1071 $(call assert-is-subset,$@,$(LOCAL_SRC_PRIVATE_API)) 1072 $(call assert-has-no-overlap,$@,$(LOCAL_SRC_FORCE_BLACKLIST)) 1073 1074# Generate dark greylist as remaining classes and class members in the same 1075# package as classes listed in the light greylist. 1076# The algorithm is as follows: 1077# (1) extract the class descriptor from each entry in LOCAL_LIGHT_GREYLIST 1078# (2) strip everything after the last forward-slash, 1079# e.g. 'Lpackage/subpackage/class$inner;' turns into 'Lpackage/subpackage/' 1080# (3) insert all entries from LOCAL_SRC_PRIVATE_API which begin with the package 1081# name but do not contain another forward-slash in the class name, e.g. 1082# matching '^Lpackage/subpackage/[^/;]*;' 1083# (4) subtract entries shared with LOCAL_LIGHT_GREYLIST 1084$(LOCAL_DARK_GREYLIST): $(LOCAL_SRC_ALL) $(LOCAL_LIGHT_GREYLIST) 1085 comm -13 <(sort $(LOCAL_LIGHT_GREYLIST) $(LOCAL_SRC_FORCE_BLACKLIST)) \ 1086 <(cat $(LOCAL_SRC_PUBLIC_API) $(LOCAL_LIGHT_GREYLIST) | \ 1087 sed 's/\->.*//' | sed 's/\(.*\/\).*/\1/' | sort | uniq | \ 1088 while read PKG_NAME; do \ 1089 grep -E "^$${PKG_NAME}[^/;]*;" $(LOCAL_SRC_PRIVATE_API); \ 1090 done | sort | uniq) \ 1091 > $@ 1092 $(call assert-is-subset,$@,$(LOCAL_SRC_PRIVATE_API)) 1093 $(call assert-has-no-duplicates,$@) 1094 $(call assert-has-no-overlap,$@,$(LOCAL_LIGHT_GREYLIST)) 1095 $(call assert-has-no-overlap,$@,$(LOCAL_SRC_FORCE_BLACKLIST)) 1096 1097# Generate blacklist as private API minus (light greylist plus dark greylist). 1098$(LOCAL_BLACKLIST): $(LOCAL_SRC_ALL) $(LOCAL_LIGHT_GREYLIST) $(LOCAL_DARK_GREYLIST) 1099 comm -13 <(sort $(LOCAL_LIGHT_GREYLIST) $(LOCAL_DARK_GREYLIST)) \ 1100 <(sort $(LOCAL_SRC_PRIVATE_API)) \ 1101 > $@ 1102 $(call assert-is-subset,$@,$(LOCAL_SRC_PRIVATE_API)) 1103 $(call assert-has-no-duplicates,$@) 1104 $(call assert-has-no-overlap,$@,$(LOCAL_LIGHT_GREYLIST)) 1105 $(call assert-has-no-overlap,$@,$(LOCAL_DARK_GREYLIST)) 1106 $(call assert-is-subset,$(LOCAL_SRC_FORCE_BLACKLIST),$@) 1107 1108# Include subdirectory makefiles 1109# ============================================================ 1110 1111# If we're building with ONE_SHOT_MAKEFILE (mm, mmm), then what the framework 1112# team really wants is to build the stuff defined by this makefile. 1113ifeq (,$(ONE_SHOT_MAKEFILE)) 1114include $(call first-makefiles-under,$(LOCAL_PATH)) 1115endif 1116 1117endif # ANDROID_BUILD_EMBEDDED 1118