Merge "Generate SHA-1 build ID for host-generated *.oat files (2/2)."
diff --git a/core/Makefile b/core/Makefile
index 42d42bb..a1d483b 100644
--- a/core/Makefile
+++ b/core/Makefile
@@ -522,12 +522,10 @@
INTERNAL_BOOTIMAGE_FILES := $(filter-out --%,$(INTERNAL_BOOTIMAGE_ARGS))
-BOARD_KERNEL_BASE := $(strip $(BOARD_KERNEL_BASE))
ifdef BOARD_KERNEL_BASE
INTERNAL_BOOTIMAGE_ARGS += --base $(BOARD_KERNEL_BASE)
endif
-BOARD_KERNEL_PAGESIZE := $(strip $(BOARD_KERNEL_PAGESIZE))
ifdef BOARD_KERNEL_PAGESIZE
INTERNAL_BOOTIMAGE_ARGS += --pagesize $(BOARD_KERNEL_PAGESIZE)
endif
@@ -539,9 +537,9 @@
endif
endif
-BOARD_KERNEL_CMDLINE := $(strip $(BOARD_KERNEL_CMDLINE) buildvariant=$(TARGET_BUILD_VARIANT) $(VERITY_KEYID))
-ifdef BOARD_KERNEL_CMDLINE
-INTERNAL_BOOTIMAGE_ARGS += --cmdline "$(BOARD_KERNEL_CMDLINE)"
+INTERNAL_KERNEL_CMDLINE := $(strip $(BOARD_KERNEL_CMDLINE) buildvariant=$(TARGET_BUILD_VARIANT) $(VERITY_KEYID))
+ifdef INTERNAL_KERNEL_CMDLINE
+INTERNAL_BOOTIMAGE_ARGS += --cmdline "$(INTERNAL_KERNEL_CMDLINE)"
endif
INTERNAL_MKBOOTIMG_VERSION_ARGS := \
@@ -632,6 +630,7 @@
endif # BOARD_USES_RECOVERY_AS_BOOT
else # TARGET_NO_KERNEL
+INTERNAL_KERNEL_CMDLINE := $(strip $(BOARD_KERNEL_CMDLINE))
# HACK: The top-level targets depend on the bootimage. Not all targets
# can produce a bootimage, though, and emulator targets need the ramdisk
# instead. Fake it out by calling the ramdisk the bootimage.
@@ -977,13 +976,12 @@
--ramdisk $(recovery_ramdisk)
# Assumes this has already been stripped
-ifdef BOARD_KERNEL_CMDLINE
- INTERNAL_RECOVERYIMAGE_ARGS += --cmdline "$(BOARD_KERNEL_CMDLINE)"
+ifdef INTERNAL_KERNEL_CMDLINE
+ INTERNAL_RECOVERYIMAGE_ARGS += --cmdline "$(INTERNAL_KERNEL_CMDLINE)"
endif
ifdef BOARD_KERNEL_BASE
INTERNAL_RECOVERYIMAGE_ARGS += --base $(BOARD_KERNEL_BASE)
endif
-BOARD_KERNEL_PAGESIZE := $(strip $(BOARD_KERNEL_PAGESIZE))
ifdef BOARD_KERNEL_PAGESIZE
INTERNAL_RECOVERYIMAGE_ARGS += --pagesize $(BOARD_KERNEL_PAGESIZE)
endif
@@ -1045,6 +1043,12 @@
$(BOOT_SIGNER) /recovery $(1) $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_VERITY_SIGNING_KEY).pk8 $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_VERITY_SIGNING_KEY).x509.pem $(1))
$(if $(filter true,$(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SUPPORTS_VBOOT)), \
$(VBOOT_SIGNER) $(FUTILITY) $(1).unsigned $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_VBOOT_SIGNING_KEY).vbpubk $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_VBOOT_SIGNING_KEY).vbprivk $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_VBOOT_SIGNING_SUBKEY).vbprivk $(1).keyblock $(1))
+ $(if $(and $(filter true,$(BOARD_USES_RECOVERY_AS_BOOT)),$(filter true,$(BOARD_AVB_ENABLE))), \
+ $(hide) $(AVBTOOL) add_hash_footer \
+ --image $(1) \
+ --partition_size $(BOARD_BOOTIMAGE_PARTITION_SIZE) \
+ --partition_name boot $(INTERNAL_AVB_SIGNING_ARGS) \
+ $(BOARD_AVB_BOOT_ADD_HASH_FOOTER_ARGS))
$(if $(filter true,BOARD_USES_RECOVERY_AS_BOOT), \
$(hide) $(call assert-max-image-size,$(1),$(BOARD_BOOTIMAGE_PARTITION_SIZE)), \
$(hide) $(call assert-max-image-size,$(1),$(BOARD_RECOVERYIMAGE_PARTITION_SIZE)))
@@ -1346,7 +1350,7 @@
$(hide) echo "Target boot fs tarball: $(INSTALLED_BOOTTARBALL_TARGET)"
$(hide) mkdir -p $(PRODUCT_OUT)/boot
$(hide) cp -f $(INTERNAL_BOOTIMAGE_FILES) $(PRODUCT_OUT)/boot/.
- $(hide) echo $(BOARD_KERNEL_CMDLINE) > $(PRODUCT_OUT)/boot/cmdline
+ $(hide) echo $(INTERNAL_KERNEL_CMDLINE) > $(PRODUCT_OUT)/boot/cmdline
$(hide) $(MKTARBALL) $(FS_GET_STATS) \
$(PRODUCT_OUT) boot $(PRIVATE_BOOT_TAR) \
$(INSTALLED_BOOTTARBALL_TARGET) $(TARGET_OUT)
@@ -1812,8 +1816,8 @@
$(hide) $(ACP) \
$(INSTALLED_2NDBOOTLOADER_TARGET) $(zip_root)/$(PRIVATE_RECOVERY_OUT)/second
endif
-ifdef BOARD_KERNEL_CMDLINE
- $(hide) echo "$(BOARD_KERNEL_CMDLINE)" > $(zip_root)/$(PRIVATE_RECOVERY_OUT)/cmdline
+ifdef INTERNAL_KERNEL_CMDLINE
+ $(hide) echo "$(INTERNAL_KERNEL_CMDLINE)" > $(zip_root)/$(PRIVATE_RECOVERY_OUT)/cmdline
endif
ifdef BOARD_KERNEL_BASE
$(hide) echo "$(BOARD_KERNEL_BASE)" > $(zip_root)/$(PRIVATE_RECOVERY_OUT)/base
@@ -1841,8 +1845,8 @@
$(hide) $(ACP) \
$(INSTALLED_2NDBOOTLOADER_TARGET) $(zip_root)/BOOT/second
endif
-ifdef BOARD_KERNEL_CMDLINE
- $(hide) echo "$(BOARD_KERNEL_CMDLINE)" > $(zip_root)/BOOT/cmdline
+ifdef INTERNAL_KERNEL_CMDLINE
+ $(hide) echo "$(INTERNAL_KERNEL_CMDLINE)" > $(zip_root)/BOOT/cmdline
endif
ifdef BOARD_KERNEL_BASE
$(hide) echo "$(BOARD_KERNEL_BASE)" > $(zip_root)/BOOT/base
diff --git a/core/binary.mk b/core/binary.mk
index 4dcb152..c682d4e 100644
--- a/core/binary.mk
+++ b/core/binary.mk
@@ -1596,6 +1596,16 @@
my_cflags += -DANDROID_STRICT
endif
+# Add -Werror if LOCAL_PATH is in the WARNING_DISALLOWED project list,
+# or not in the WARNING_ALLOWED project list.
+ifneq (,$(strip $(call find_warning_disallowed_projects,$(LOCAL_PATH))))
+ my_cflags_no_override += -Werror
+else
+ ifeq (,$(strip $(call find_warning_allowed_projects,$(LOCAL_PATH))))
+ my_cflags_no_override += -Werror
+ endif
+endif
+
# Disable clang-tidy if it is not found.
ifeq ($(PATH_TO_CLANG_TIDY),)
my_tidy_enabled := false
diff --git a/core/config.mk b/core/config.mk
index bab31b7..c35bfda 100644
--- a/core/config.mk
+++ b/core/config.mk
@@ -216,6 +216,9 @@
endif
TARGET_CPU_ABI2 := $(strip $(TARGET_CPU_ABI2))
+BOARD_KERNEL_BASE := $(strip $(BOARD_KERNEL_BASE))
+BOARD_KERNEL_PAGESIZE := $(strip $(BOARD_KERNEL_PAGESIZE))
+
# Commands to generate .toc file common to ELF .so files.
define _gen_toc_command_for_elf
$(hide) ($($(PRIVATE_2ND_ARCH_VAR_PREFIX)$(PRIVATE_PREFIX)READELF) -d $(1) | grep SONAME || echo "No SONAME for $1") > $(2)
@@ -463,7 +466,11 @@
# Always use prebuilts for ckati and makeparallel
prebuilt_build_tools := prebuilts/build-tools
+ifeq ($(filter address,$(SANITIZE_HOST)),)
prebuilt_build_tools_bin := $(prebuilt_build_tools)/$(HOST_PREBUILT_TAG)/bin
+else
+prebuilt_build_tools_bin := $(prebuilt_build_tools)/$(HOST_PREBUILT_TAG)/asan/bin
+endif
ACP := $(prebuilt_build_tools_bin)/acp
CKATI := $(prebuilt_build_tools_bin)/ckati
IJAR := $(prebuilt_build_tools_bin)/ijar
@@ -783,4 +790,39 @@
export PATH:=$(abspath $(BUILD_SYSTEM)/no_java_path):$(PATH)
endif
+# Projects clean of compiler warnings should be compiled with -Werror.
+# If most modules in a directory such as external/ have warnings,
+# the directory should be in ANDROID_WARNING_ALLOWED_PROJECTS list.
+# When some of its subdirectories are cleaned up, the subdirectories
+# can be added into ANDROID_WARNING_DISALLOWED_PROJECTS list, e.g.
+# external/fio/.
+ANDROID_WARNING_DISALLOWED_PROJECTS := \
+ art/% \
+ bionic/% \
+ external/fio/% \
+
+define find_warning_disallowed_projects
+ $(filter $(ANDROID_WARNING_DISALLOWED_PROJECTS),$(1)/)
+endef
+
+# Projects with compiler warnings are compiled without -Werror.
+ANDROID_WARNING_ALLOWED_PROJECTS := \
+ bootable/% \
+ cts/% \
+ dalvik/% \
+ development/% \
+ device/% \
+ external/% \
+ frameworks/% \
+ hardware/% \
+ packages/% \
+ system/% \
+ test/vts/% \
+ tools/adt/idea/android/ultimate/get_modification_time/jni/% \
+ vendor/% \
+
+define find_warning_allowed_projects
+ $(filter $(ANDROID_WARNING_ALLOWED_PROJECTS),$(1)/)
+endef
+
include $(BUILD_SYSTEM)/dumpvar.mk
diff --git a/core/dex_preopt_libart_boot.mk b/core/dex_preopt_libart_boot.mk
index 9f27db7..5d383a9 100644
--- a/core/dex_preopt_libart_boot.mk
+++ b/core/dex_preopt_libart_boot.mk
@@ -52,7 +52,7 @@
$($(my_2nd_arch_prefix)DEFAULT_DEX_PREOPT_BUILT_IMAGE_FILENAME): PRIVATE_2ND_ARCH_VAR_PREFIX := $(my_2nd_arch_prefix)
# Use dex2oat debug version for better error reporting
-$($(my_2nd_arch_prefix)DEFAULT_DEX_PREOPT_BUILT_IMAGE_FILENAME) : $(LIBART_TARGET_BOOT_DEX_FILES) $(DEX2OAT_DEPENDENCY)
+$($(my_2nd_arch_prefix)DEFAULT_DEX_PREOPT_BUILT_IMAGE_FILENAME) : $(LIBART_TARGET_BOOT_DEX_FILES) $(PRELOADED_CLASSES) $(COMPILED_CLASSES) $(DEX2OAT_DEPENDENCY)
@echo "target dex2oat: $@"
@mkdir -p $(dir $@)
@mkdir -p $(dir $($(PRIVATE_2ND_ARCH_VAR_PREFIX)LIBART_TARGET_BOOT_OAT_UNSTRIPPED))
diff --git a/core/main.mk b/core/main.mk
index de77927..dabe093 100644
--- a/core/main.mk
+++ b/core/main.mk
@@ -504,12 +504,9 @@
FULL_BUILD := true
-# Before we go and include all of the module makefiles, stash away
-# the PRODUCT_* values so that later we can verify they are not modified.
-stash_product_vars:=true
-ifeq ($(stash_product_vars),true)
- $(call stash-product-vars, __STASHED)
-endif
+# Before we go and include all of the module makefiles, mark the PRODUCT_*
+# values readonly so that they won't be modified.
+$(call readonly-product-vars)
ifneq ($(ONE_SHOT_MAKEFILE),)
# We've probably been invoked by the "mm" shell function
@@ -574,10 +571,6 @@
# Now with all Android.mks loaded we can do post cleaning steps.
include $(BUILD_SYSTEM)/post_clean.mk
-ifeq ($(stash_product_vars),true)
- $(call assert-product-vars, __STASHED)
-endif
-
# -------------------------------------------------------------------
# All module makefiles have been included at this point.
# -------------------------------------------------------------------
diff --git a/core/ninja.mk b/core/ninja.mk
index 3779df3..30146d2 100644
--- a/core/ninja.mk
+++ b/core/ninja.mk
@@ -1,4 +1,8 @@
+ifeq ($(filter address,$(SANITIZE_HOST)),)
NINJA ?= prebuilts/build-tools/$(HOST_PREBUILT_TAG)/bin/ninja
+else
+NINJA ?= prebuilts/build-tools/$(HOST_PREBUILT_TAG)/asan/bin/ninja
+endif
include $(BUILD_SYSTEM)/soong.mk
@@ -36,7 +40,6 @@
eng \
fusion \
oem_image \
- old-cts \
online-system-api-sdk-docs \
pdk \
platform \
diff --git a/core/product.mk b/core/product.mk
index 7193cf7..d4790d5 100644
--- a/core/product.mk
+++ b/core/product.mk
@@ -296,33 +296,15 @@
GLOBAL_CLANG_CFLAGS_NO_OVERRIDE \
#
-# Stash values of the variables in _product_stash_var_list.
-# $(1): Renamed prefix
+# Mark the variables in _product_stash_var_list as readonly
#
-define stash-product-vars
+define readonly-product-vars
$(foreach v,$(_product_stash_var_list), \
- $(eval $(strip $(1))_rot26_$(v):=$$($$(v))) \
+ $(eval $(v) ?=) \
+ $(eval .KATI_READONLY := $(v)) \
)
endef
-#
-# Assert that the the variable stashed by stash-product-vars remains untouched.
-# $(1): The prefix as supplied to stash-product-vars
-#
-define assert-product-vars
-$(strip \
- $(eval changed_variables:=)
- $(foreach v,$(_product_stash_var_list), \
- $(if $(call streq,$($(v)),$($(strip $(1))_rot26_$(v))),, \
- $(eval $(warning $(v) has been modified: $($(v)))) \
- $(eval $(warning previous value: $($(strip $(1))_$(call rot13,$(v))))) \
- $(eval changed_variables := $(changed_variables) $(v))) \
- ) \
- $(if $(changed_variables),\
- $(eval $(error The following variables have been changed: $(changed_variables))),)
-)
-endef
-
define add-to-product-copy-files-if-exists
$(if $(wildcard $(word 1,$(subst :, ,$(1)))),$(1))
endef
diff --git a/core/product_config.mk b/core/product_config.mk
index 0d4ced3..3b8c0eb 100644
--- a/core/product_config.mk
+++ b/core/product_config.mk
@@ -189,6 +189,8 @@
all_product_configs := $(get-all-product-makefiles)
endif
+all_named_products :=
+
# Find the product config makefile for the current product.
# all_product_configs consists items like:
# <product_name>:<path_to_the_product_makefile>
@@ -202,9 +204,11 @@
$(eval _cpm_word2 := $(word 2,$(_cpm_words)))\
$(if $(_cpm_word2),\
$(eval all_product_makefiles += $(_cpm_word2))\
+ $(eval all_named_products += $(_cpm_word2))\
$(if $(filter $(TARGET_PRODUCT),$(_cpm_word1)),\
$(eval current_product_makefile += $(_cpm_word2)),),\
$(eval all_product_makefiles += $(f))\
+ $(eval all_named_products += $(basename $(notdir $(f))))\
$(if $(filter $(TARGET_PRODUCT),$(basename $(notdir $(f)))),\
$(eval current_product_makefile += $(f)),)))
_cpm_words :=
diff --git a/core/shared_library_internal.mk b/core/shared_library_internal.mk
index 05886fa..1a8975a 100644
--- a/core/shared_library_internal.mk
+++ b/core/shared_library_internal.mk
@@ -96,17 +96,23 @@
STATIC_LIBRARIES,$(lib),$(my_kind),,$(LOCAL_2ND_ARCH_VAR_PREFIX), \
$(my_host_cross))/$(lib)$(gcno_suffix))
-GCNO_ARCHIVE := $(LOCAL_MODULE)$(gcno_suffix)
+ifdef LOCAL_IS_HOST_MODULE
+my_coverage_path := $($(my_prefix)OUT_COVERAGE)/$(patsubst $($(my_prefix)OUT)/%,%,$(my_module_path))
+else
+my_coverage_path := $(TARGET_OUT_COVERAGE)/$(patsubst $(PRODUCT_OUT)/%,%,$(my_module_path))
+endif
+
+GCNO_ARCHIVE := $(basename $(my_installed_module_stem))$(gcno_suffix)
$(intermediates)/$(GCNO_ARCHIVE) : PRIVATE_ALL_OBJECTS := $(strip $(LOCAL_GCNO_FILES))
$(intermediates)/$(GCNO_ARCHIVE) : PRIVATE_ALL_WHOLE_STATIC_LIBRARIES := $(strip $(built_whole_gcno_libraries)) $(strip $(built_static_gcno_libraries))
$(intermediates)/$(GCNO_ARCHIVE) : $(LOCAL_GCNO_FILES) $(built_whole_gcno_libraries) $(built_static_gcno_libraries)
$(transform-o-to-static-lib)
-$($(my_prefix)OUT_COVERAGE)/$(GCNO_ARCHIVE) : $(intermediates)/$(GCNO_ARCHIVE)
+$(my_coverage_path)/$(GCNO_ARCHIVE) : $(intermediates)/$(GCNO_ARCHIVE)
$(copy-file-to-target)
-$(LOCAL_BUILT_MODULE): $($(my_prefix)OUT_COVERAGE)/$(GCNO_ARCHIVE)
+$(LOCAL_BUILT_MODULE): $(my_coverage_path)/$(GCNO_ARCHIVE)
endif
endif # skip_build_from_source
diff --git a/core/tasks/old-cts.mk b/core/tasks/old-cts.mk
deleted file mode 100644
index 7024638..0000000
--- a/core/tasks/old-cts.mk
+++ /dev/null
@@ -1,399 +0,0 @@
-# Copyright (C) 2008 The Android Open Source Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-cts_dir := $(HOST_OUT)/old-cts
-cts_tools_src_dir := cts/tools
-
-cts_name := old-android-cts
-
-JUNIT_HOST_JAR := $(HOST_OUT_JAVA_LIBRARIES)/junit.jar
-HOSTTESTLIB_JAR := $(HOST_OUT_JAVA_LIBRARIES)/hosttestlib.jar
-TF_JAR := $(HOST_OUT_JAVA_LIBRARIES)/tradefed-prebuilt.jar
-CTS_TF_JAR := $(HOST_OUT_JAVA_LIBRARIES)/old-cts-tradefed.jar
-CTS_TF_EXEC_PATH ?= $(HOST_OUT_EXECUTABLES)/old-cts-tradefed
-CTS_TF_README_PATH := $(cts_tools_src_dir)/tradefed-host/README
-
-VMTESTSTF_INTERMEDIATES :=$(call intermediates-dir-for,JAVA_LIBRARIES,vm-tests-tf,HOST)
-VMTESTSTF_JAR := $(VMTESTSTF_INTERMEDIATES)/android.core.vm-tests-tf.jar
-
-# The list of test packages that core-tests (libcore/Android.mk)
-# is split into.
-CTS_CORE_CASE_LIST := \
- android.core.tests.libcore.package.dalvik \
- android.core.tests.libcore.package.com \
- android.core.tests.libcore.package.conscrypt \
- android.core.tests.libcore.package.sun \
- android.core.tests.libcore.package.tests \
- android.core.tests.libcore.package.org \
- android.core.tests.libcore.package.libcore \
- android.core.tests.libcore.package.jsr166 \
- android.core.tests.libcore.package.harmony_annotation \
- android.core.tests.libcore.package.harmony_java_io \
- android.core.tests.libcore.package.harmony_java_lang \
- android.core.tests.libcore.package.harmony_java_math \
- android.core.tests.libcore.package.harmony_java_net \
- android.core.tests.libcore.package.harmony_java_nio \
- android.core.tests.libcore.package.harmony_java_text \
- android.core.tests.libcore.package.harmony_java_util \
- android.core.tests.libcore.package.harmony_javax_security \
- android.core.tests.libcore.package.okhttp \
- android.core.tests.runner
-
-# Additional CTS packages for code under libcore
-CTS_CORE_CASE_LIST += \
- android.core.tests.libcore.package.tzdata
-
-# The list of test packages that apache-harmony-tests (external/apache-harmony/Android.mk)
-# is split into.
-CTS_CORE_CASE_LIST += \
- android.core.tests.libcore.package.harmony_beans \
- android.core.tests.libcore.package.harmony_logging \
- android.core.tests.libcore.package.harmony_prefs \
- android.core.tests.libcore.package.harmony_sql
-
-
-CTS_TEST_JAR_LIST := \
- cts-junit \
- CtsJdwp \
- cts-testng \
- CtsLibcoreOj
-
-# Depend on the full package paths rather than the phony targets to avoid
-# rebuilding the packages every time.
-CTS_CORE_CASES := $(foreach pkg,$(CTS_CORE_CASE_LIST),$(call intermediates-dir-for,APPS,$(pkg))/package.apk)
-CTS_TEST_JAR_FILES := $(foreach c,$(CTS_TEST_JAR_LIST),$(call intermediates-dir-for,JAVA_LIBRARIES,$(c))/javalib.jar)
-
--include cts/OldCtsTestCaseList.mk
-
-# A module may have mutliple installed files (e.g. split apks)
-CTS_CASE_LIST_APKS :=
-$(foreach m, $(CTS_TEST_CASE_LIST),\
- $(foreach fp, $(ALL_MODULES.$(m).BUILT_INSTALLED),\
- $(eval pair := $(subst :,$(space),$(fp)))\
- $(eval CTS_CASE_LIST_APKS += $(CTS_TESTCASES_OUT)/$(notdir $(word 2,$(pair))))))\
-$(foreach m, $(CTS_CORE_CASE_LIST),\
- $(foreach fp, $(ALL_MODULES.$(m).BUILT_INSTALLED),\
- $(eval pair := $(subst :,$(space),$(fp)))\
- $(eval built := $(word 1,$(pair)))\
- $(eval installed := $(CTS_TESTCASES_OUT)/$(notdir $(word 2,$(pair))))\
- $(eval $(call copy-one-file, $(built), $(installed)))\
- $(eval CTS_CASE_LIST_APKS += $(installed))))
-
-CTS_CASE_LIST_JARS :=
-$(foreach m, $(CTS_TEST_JAR_LIST),\
- $(eval CTS_CASE_LIST_JARS += $(CTS_TESTCASES_OUT)/$(m).jar))
-
-CTS_SHARED_LIBS :=
-
-DEFAULT_TEST_PLAN := $(cts_dir)/$(cts_name)/resource/plans
-$(cts_dir)/all_cts_files_stamp: $(CTS_CORE_CASES) $(CTS_TEST_JAR_FILES) $(CTS_TEST_CASES) $(CTS_CASE_LIST_APKS) $(CTS_CASE_LIST_JARS) $(JUNIT_HOST_JAR) $(HOSTTESTLIB_JAR) $(CTS_HOST_LIBRARY_JARS) $(TF_JAR) $(VMTESTSTF_JAR) $(CTS_TF_JAR) $(CTS_TF_EXEC_PATH) $(CTS_TF_README_PATH) $(ADDITIONAL_TF_JARS) $(ACP) $(CTS_SHARED_LIBS)
-
-# Make necessary directory for CTS
- $(hide) mkdir -p $(TMP_DIR)
- $(hide) mkdir -p $(PRIVATE_DIR)/docs
- $(hide) mkdir -p $(PRIVATE_DIR)/tools
- $(hide) mkdir -p $(PRIVATE_DIR)/repository/testcases
- $(hide) mkdir -p $(PRIVATE_DIR)/repository/plans
-# Copy executable and JARs to CTS directory
- $(hide) $(ACP) -fp $(VMTESTSTF_JAR) $(CTS_TESTCASES_OUT)
- $(hide) $(ACP) -fp $(HOSTTESTLIB_JAR) $(CTS_HOST_LIBRARY_JARS) $(TF_JAR) $(CTS_TF_JAR) $(CTS_TF_EXEC_PATH) $(ADDITIONAL_TF_JARS) $(CTS_TF_README_PATH) $(PRIVATE_DIR)/tools
- $(hide) $(call copy-files-with-structure, $(CTS_SHARED_LIBS),$(HOST_OUT)/,$(PRIVATE_DIR))
- $(hide) touch $@
-
-# Generate the test descriptions for the core-tests
-# Parameters:
-# $1 : The output file where the description should be written (without the '.xml' extension)
-# $2 : The AndroidManifest.xml corresponding to the test package
-# $3 : The jar file name on PRIVATE_CLASSPATH containing junit tests to search for
-# $4 : The package prefix of classes to include, possible empty
-# $5 : The architecture of the current build
-# $6 : The directory containing vogar expectations files
-# $7 : The Android.mk corresponding to the test package (required for host-side tests only)
-define generate-core-test-description
-@echo "Generate core-test description ("$(notdir $(1))")"
-$(hide) java -Xmx256M \
- -Xbootclasspath/a:$(PRIVATE_CLASSPATH):$(JUNIT_HOST_JAR) \
- -classpath $(HOST_OUT_JAVA_LIBRARIES)/descGen.jar:$(HOST_JDK_TOOLS_JAR) \
- $(PRIVATE_PARAMS) CollectAllTests $(1) $(2) $(3) "$(4)" $(5) $(6) $(7)
-endef
-
-OJ_INTERMEDIATES :=$(call intermediates-dir-for,JAVA_LIBRARIES,core-oj,,COMMON)
-CORE_INTERMEDIATES :=$(call intermediates-dir-for,JAVA_LIBRARIES,core-libart,,COMMON)
-CONSCRYPT_INTERMEDIATES :=$(call intermediates-dir-for,JAVA_LIBRARIES,conscrypt,,COMMON)
-BOUNCYCASTLE_INTERMEDIATES :=$(call intermediates-dir-for,JAVA_LIBRARIES,bouncycastle,,COMMON)
-APACHEXML_INTERMEDIATES :=$(call intermediates-dir-for,JAVA_LIBRARIES,apache-xml,,COMMON)
-OKHTTP_INTERMEDIATES :=$(call intermediates-dir-for,JAVA_LIBRARIES,okhttp-nojarjar,,COMMON)
-OKHTTPTESTS_INTERMEDIATES :=$(call intermediates-dir-for,JAVA_LIBRARIES,okhttp-tests-nojarjar,,COMMON)
-OKHTTP_REPACKAGED_INTERMEDIATES :=$(call intermediates-dir-for,JAVA_LIBRARIES,okhttp,,COMMON)
-APACHEHARMONYTESTS_INTERMEDIATES :=$(call intermediates-dir-for,JAVA_LIBRARIES,apache-harmony-tests,,COMMON)
-SQLITEJDBC_INTERMEDIATES :=$(call intermediates-dir-for,JAVA_LIBRARIES,sqlite-jdbc,,COMMON)
-JUNIT_INTERMEDIATES :=$(call intermediates-dir-for,JAVA_LIBRARIES,core-junit,,COMMON)
-CORETESTS_INTERMEDIATES :=$(call intermediates-dir-for,JAVA_LIBRARIES,core-tests,,COMMON)
-JSR166TESTS_INTERMEDIATES :=$(call intermediates-dir-for,JAVA_LIBRARIES,jsr166-tests,,COMMON)
-CONSCRYPTTESTS_INTERMEDIATES :=$(call intermediates-dir-for,JAVA_LIBRARIES,conscrypt-tests,,COMMON)
-TZDATAUPDATETESTS_INTERMEDIATES :=$(call intermediates-dir-for,JAVA_LIBRARIES,tzdata_update-tests,,COMMON)
-
-GEN_CLASSPATH := \
- $(OJ_INTERMEDIATES)/classes.jar:$(CORE_INTERMEDIATES)/classes.jar:$(CONSCRYPT_INTERMEDIATES)/classes.jar:$(BOUNCYCASTLE_INTERMEDIATES)/classes.jar:$(APACHEXML_INTERMEDIATES)/classes.jar:$(APACHEHARMONYTESTS_INTERMEDIATES)/classes.jar:$(OKHTTP_INTERMEDIATES)/classes.jar:$(OKHTTPTESTS_INTERMEDIATES)/classes.jar:$(OKHTTP_REPACKAGED_INTERMEDIATES)/classes.jar:$(JUNIT_INTERMEDIATES)/classes.jar:$(SQLITEJDBC_INTERMEDIATES)/javalib.jar:$(CORETESTS_INTERMEDIATES)/javalib.jar:$(JSR166TESTS_INTERMEDIATES)/javalib.jar:$(CONSCRYPTTESTS_INTERMEDIATES)/javalib.jar:$(TZDATAUPDATETESTS_INTERMEDIATES)/javalib.jar
-
-CTS_CORE_XMLS := \
- $(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.dalvik.xml \
- $(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.com.xml \
- $(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.conscrypt.xml \
- $(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.sun.xml \
- $(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.tests.xml \
- $(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.org.xml \
- $(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.libcore.xml \
- $(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.jsr166.xml \
- $(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.harmony_annotation.xml \
- $(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.harmony_java_io.xml \
- $(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.harmony_java_lang.xml \
- $(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.harmony_java_math.xml \
- $(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.harmony_java_net.xml \
- $(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.harmony_java_nio.xml \
- $(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.harmony_java_text.xml \
- $(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.harmony_java_util.xml \
- $(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.harmony_javax_security.xml \
- $(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.harmony_beans.xml \
- $(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.harmony_logging.xml \
- $(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.harmony_prefs.xml \
- $(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.harmony_sql.xml \
- $(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.okhttp.xml \
- $(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.tzdata.xml \
-
-$(CTS_CORE_XMLS): PRIVATE_CLASSPATH:=$(GEN_CLASSPATH)
-# Why does this depend on javalib.jar instead of classes.jar? Because
-# even though the tool will operate on the classes.jar files, the
-# build system requires that dependencies use javalib.jar. If
-# javalib.jar is up-to-date, then classes.jar is as well. Depending
-# on classes.jar will build the files incorrectly.
-CTS_CORE_XMLS_DEPS := $(CTS_CORE_CASES) $(HOST_OUT_JAVA_LIBRARIES)/descGen.jar $(JUNIT_HOST_JAR) $(CORE_INTERMEDIATES)/javalib.jar $(BOUNCYCASTLE_INTERMEDIATES)/javalib.jar $(APACHEXML_INTERMEDIATES)/javalib.jar $(APACHEHARMONYTESTS_INTERMEDIATES)/javalib.jar $(OKHTTP_INTERMEDIATES)/javalib.jar $(OKHTTPTESTS_INTERMEDIATES)/javalib.jar $(OKHTTP_REPACKAGED_INTERMEDIATES)/javalib.jar $(SQLITEJDBC_INTERMEDIATES)/javalib.jar $(JUNIT_INTERMEDIATES)/javalib.jar $(CORETESTS_INTERMEDIATES)/javalib.jar $(JSR166TESTS_INTERMEDIATES)/javalib.jar $(CONSCRYPTTESTS_INTERMEDIATES)/javalib.jar $(TZDATAUPDATETESTS_INTERMEDIATES)/javalib.jar build/core/tasks/cts.mk | $(ACP)
-
-$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.dalvik.xml: $(CTS_CORE_XMLS_DEPS)
- $(hide) mkdir -p $(CTS_TESTCASES_OUT)
- $(call generate-core-test-description,$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.dalvik,\
- cts/tests/core/libcore/dalvik/AndroidManifest.xml,\
- $(CORETESTS_INTERMEDIATES)/javalib.jar,dalvik,\
- $(TARGET_ARCH),libcore/expectations)
-
-$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.com.xml: $(CTS_CORE_XMLS_DEPS)
- $(hide) mkdir -p $(CTS_TESTCASES_OUT)
- $(call generate-core-test-description,$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.com,\
- cts/tests/core/libcore/com/AndroidManifest.xml,\
- $(CORETESTS_INTERMEDIATES)/javalib.jar,com,\
- $(TARGET_ARCH),libcore/expectations)
-
-$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.conscrypt.xml: $(CTS_CORE_XMLS_DEPS)
- $(hide) mkdir -p $(CTS_TESTCASES_OUT)
- $(call generate-core-test-description,$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.conscrypt,\
- cts/tests/core/libcore/conscrypt/AndroidManifest.xml,\
- $(CONSCRYPTTESTS_INTERMEDIATES)/javalib.jar,,\
- $(TARGET_ARCH),libcore/expectations)
-
-$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.sun.xml: $(CTS_CORE_XMLS_DEPS)
- $(hide) mkdir -p $(CTS_TESTCASES_OUT)
- $(call generate-core-test-description,$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.sun,\
- cts/tests/core/libcore/sun/AndroidManifest.xml,\
- $(CORETESTS_INTERMEDIATES)/javalib.jar,sun,\
- $(TARGET_ARCH),libcore/expectations)
-
-$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.tests.xml: $(CTS_CORE_XMLS_DEPS)
- $(hide) mkdir -p $(CTS_TESTCASES_OUT)
- $(call generate-core-test-description,$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.tests,\
- cts/tests/core/libcore/tests/AndroidManifest.xml,\
- $(CORETESTS_INTERMEDIATES)/javalib.jar,tests,\
- $(TARGET_ARCH),libcore/expectations)
-
-$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.org.xml: $(CTS_CORE_XMLS_DEPS)
- $(hide) mkdir -p $(CTS_TESTCASES_OUT)
- $(call generate-core-test-description,$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.org,\
- cts/tests/core/libcore/org/AndroidManifest.xml,\
- $(CORETESTS_INTERMEDIATES)/javalib.jar,\
- org.w3c.domts:\
- org.apache.harmony.security.tests:\
- org.apache.harmony.nio.tests:\
- org.apache.harmony.crypto.tests:\
- org.apache.harmony.regex.tests:\
- org.apache.harmony.luni.tests:\
- org.apache.harmony.tests.internal.net.www.protocol:\
- org.apache.harmony.tests.javax.net:\
- org.apache.harmony.tests.javax.xml:\
- org.json,\
- $(TARGET_ARCH),libcore/expectations)
-
-$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.libcore.xml: $(CTS_CORE_XMLS_DEPS)
- $(hide) mkdir -p $(CTS_TESTCASES_OUT)
- $(call generate-core-test-description,$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.libcore,\
- cts/tests/core/libcore/libcore/AndroidManifest.xml,\
- $(CORETESTS_INTERMEDIATES)/javalib.jar,libcore,\
- $(TARGET_ARCH),libcore/expectations)
-
-$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.jsr166.xml: $(CTS_CORE_XMLS_DEPS)
- $(hide) mkdir -p $(CTS_TESTCASES_OUT)
- $(call generate-core-test-description,$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.jsr166,\
- cts/tests/core/libcore/jsr166/AndroidManifest.xml,\
- $(JSR166TESTS_INTERMEDIATES)/javalib.jar,jsr166,\
- $(TARGET_ARCH),libcore/expectations)
-
-$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.harmony_annotation.xml: $(CTS_CORE_XMLS_DEPS)
- $(hide) mkdir -p $(CTS_TESTCASES_OUT)
- $(call generate-core-test-description,$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.harmony_annotation,\
- cts/tests/core/libcore/harmony_annotation/AndroidManifest.xml,\
- $(CORETESTS_INTERMEDIATES)/javalib.jar,org.apache.harmony.annotation.tests,\
- $(TARGET_ARCH),libcore/expectations)
-
-$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.harmony_java_io.xml: $(CTS_CORE_XMLS_DEPS)
- $(hide) mkdir -p $(CTS_TESTCASES_OUT)
- $(call generate-core-test-description,$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.harmony_java_io,\
- cts/tests/core/libcore/harmony_java_io/AndroidManifest.xml,\
- $(CORETESTS_INTERMEDIATES)/javalib.jar,org.apache.harmony.tests.java.io,\
- $(TARGET_ARCH),libcore/expectations)
-
-$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.harmony_java_lang.xml: $(CTS_CORE_XMLS_DEPS)
- $(hide) mkdir -p $(CTS_TESTCASES_OUT)
- $(call generate-core-test-description,$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.harmony_java_lang,\
- cts/tests/core/libcore/harmony_java_lang/AndroidManifest.xml,\
- $(CORETESTS_INTERMEDIATES)/javalib.jar,org.apache.harmony.tests.java.lang,\
- $(TARGET_ARCH),libcore/expectations)
-
-$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.harmony_java_math.xml: $(CTS_CORE_XMLS_DEPS)
- $(hide) mkdir -p $(CTS_TESTCASES_OUT)
- $(call generate-core-test-description,$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.harmony_java_math,\
- cts/tests/core/libcore/harmony_java_math/AndroidManifest.xml,\
- $(CORETESTS_INTERMEDIATES)/javalib.jar,org.apache.harmony.tests.java.math,\
- $(TARGET_ARCH),libcore/expectations)
-
-$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.harmony_java_net.xml: $(CTS_CORE_XMLS_DEPS)
- $(hide) mkdir -p $(CTS_TESTCASES_OUT)
- $(call generate-core-test-description,$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.harmony_java_net,\
- cts/tests/core/libcore/harmony_java_net/AndroidManifest.xml,\
- $(CORETESTS_INTERMEDIATES)/javalib.jar,org.apache.harmony.tests.java.net,\
- $(TARGET_ARCH),libcore/expectations)
-
-$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.harmony_java_nio.xml: $(CTS_CORE_XMLS_DEPS)
- $(hide) mkdir -p $(CTS_TESTCASES_OUT)
- $(call generate-core-test-description,$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.harmony_java_nio,\
- cts/tests/core/libcore/harmony_java_nio/AndroidManifest.xml,\
- $(CORETESTS_INTERMEDIATES)/javalib.jar,org.apache.harmony.tests.java.nio,\
- $(TARGET_ARCH),libcore/expectations)
-
-$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.harmony_java_text.xml: $(CTS_CORE_XMLS_DEPS)
- $(hide) mkdir -p $(CTS_TESTCASES_OUT)
- $(call generate-core-test-description,$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.harmony_java_text,\
- cts/tests/core/libcore/harmony_java_text/AndroidManifest.xml,\
- $(CORETESTS_INTERMEDIATES)/javalib.jar,org.apache.harmony.tests.java.text,\
- $(TARGET_ARCH),libcore/expectations)
-
-$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.harmony_java_util.xml: $(CTS_CORE_XMLS_DEPS)
- $(hide) mkdir -p $(CTS_TESTCASES_OUT)
- $(call generate-core-test-description,$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.harmony_java_util,\
- cts/tests/core/libcore/harmony_java_util/AndroidManifest.xml,\
- $(CORETESTS_INTERMEDIATES)/javalib.jar,org.apache.harmony.tests.java.util,\
- $(TARGET_ARCH),libcore/expectations)
-
-$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.harmony_javax_security.xml: $(CTS_CORE_XMLS_DEPS)
- $(hide) mkdir -p $(CTS_TESTCASES_OUT)
- $(call generate-core-test-description,$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.harmony_javax_security,\
- cts/tests/core/libcore/harmony_javax_security/AndroidManifest.xml,\
- $(CORETESTS_INTERMEDIATES)/javalib.jar,org.apache.harmony.tests.javax.security,\
- $(TARGET_ARCH),libcore/expectations)
-
-$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.harmony_beans.xml: $(CTS_CORE_XMLS_DEPS)
- $(hide) mkdir -p $(CTS_TESTCASES_OUT)
- $(call generate-core-test-description,$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.harmony_beans,\
- cts/tests/core/libcore/harmony_beans/AndroidManifest.xml,\
- $(APACHEHARMONYTESTS_INTERMEDIATES)/javalib.jar,com.android.org.apache.harmony.beans,\
- $(TARGET_ARCH),libcore/expectations external/apache-harmony/Android.mk)
-
-$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.harmony_logging.xml: $(CTS_CORE_XMLS_DEPS)
- $(hide) mkdir -p $(CTS_TESTCASES_OUT)
- $(call generate-core-test-description,$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.harmony_logging,\
- cts/tests/core/libcore/harmony_logging/AndroidManifest.xml,\
- $(APACHEHARMONYTESTS_INTERMEDIATES)/javalib.jar,com.android.org.apache.harmony.logging,\
- $(TARGET_ARCH),libcore/expectations external/apache-harmony/Android.mk)
-
-$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.harmony_prefs.xml: $(CTS_CORE_XMLS_DEPS)
- $(hide) mkdir -p $(CTS_TESTCASES_OUT)
- $(call generate-core-test-description,$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.harmony_prefs,\
- cts/tests/core/libcore/harmony_prefs/AndroidManifest.xml,\
- $(APACHEHARMONYTESTS_INTERMEDIATES)/javalib.jar,com.android.org.apache.harmony.prefs,\
- $(TARGET_ARCH),libcore/expectations external/apache-harmony/Android.mk)
-
-$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.harmony_sql.xml: $(CTS_CORE_XMLS_DEPS)
- $(hide) mkdir -p $(CTS_TESTCASES_OUT)
- $(call generate-core-test-description,$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.harmony_sql,\
- cts/tests/core/libcore/harmony_sql/AndroidManifest.xml,\
- $(APACHEHARMONYTESTS_INTERMEDIATES)/javalib.jar,com.android.org.apache.harmony.sql,\
- $(TARGET_ARCH),libcore/expectations external/apache-harmony/Android.mk)
-
-$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.okhttp.xml: $(CTS_CORE_XMLS_DEPS)
- $(hide) mkdir -p $(CTS_TESTCASES_OUT)
- $(call generate-core-test-description,$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.okhttp,\
- cts/tests/core/libcore/okhttp/AndroidManifest.xml,\
- $(OKHTTPTESTS_INTERMEDIATES)/javalib.jar,,\
- $(TARGET_ARCH),libcore/expectations)
-
-$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.tzdata.xml: $(CTS_CORE_XMLS_DEPS)
- $(hide) mkdir -p $(CTS_TESTCASES_OUT)
- $(call generate-core-test-description,$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.tzdata,\
- cts/tests/core/libcore/tzdata/AndroidManifest.xml,\
- $(TZDATAUPDATETESTS_INTERMEDIATES)/javalib.jar,,\
- $(TARGET_ARCH),libcore/expectations)
-
-# ----- Generate the test descriptions for the vm-tests-tf -----
-#
-CORE_VM_TEST_TF_DESC := $(CTS_TESTCASES_OUT)/android.core.vm-tests-tf.xml
-
-# core tests only needed to get hold of junit-framework-classes
-OJ_INTERMEDIATES :=$(call intermediates-dir-for,JAVA_LIBRARIES,core-oj,,COMMON)
-CORE_INTERMEDIATES :=$(call intermediates-dir-for,JAVA_LIBRARIES,core-libart,,COMMON)
-JUNIT_INTERMEDIATES :=$(call intermediates-dir-for,JAVA_LIBRARIES,core-junit,,COMMON)
-
-GEN_CLASSPATH := $(OJ_INTERMEDIATES)/classes.jar:$(CORE_INTERMEDIATES)/classes.jar:$(JUNIT_INTERMEDIATES)/classes.jar:$(VMTESTSTF_JAR):$(TF_JAR)
-
-$(CORE_VM_TEST_TF_DESC): PRIVATE_CLASSPATH:=$(GEN_CLASSPATH)
-# Please see big comment above on why this line depends on javalib.jar instead of classes.jar
-$(CORE_VM_TEST_TF_DESC): $(HOST_OUT_JAVA_LIBRARIES)/descGen.jar $(JUNIT_HOST_JAR) $(CORE_INTERMEDIATES)/javalib.jar $(JUNIT_INTERMEDIATES)/javalib.jar $(VMTESTSTF_JAR) | $(ACP)
- $(hide) mkdir -p $(CTS_TESTCASES_OUT)
- $(call generate-core-test-description,$(CTS_TESTCASES_OUT)/android.core.vm-tests-tf,\
- cts/tests/vm-tests-tf/AndroidManifest.xml,\
- $(VMTESTSTF_JAR),"",\
- $(TARGET_ARCH),\
- libcore/expectations,\
- cts/tools/vm-tests-tf/Android.mk)
-
-# Generate the default test plan for User.
-# Usage: buildCts.py <testRoot> <ctsOutputDir> <tempDir> <androidRootDir> <docletPath>
-
-$(DEFAULT_TEST_PLAN): $(cts_dir)/all_cts_files_stamp $(cts_tools_src_dir)/utils/buildCts.py $(HOST_OUT_JAVA_LIBRARIES)/descGen.jar $(CTS_CORE_XMLS) $(CTS_TEST_XMLS) $(CORE_VM_TEST_TF_DESC)
- $(hide) $(cts_tools_src_dir)/utils/buildCts.py cts/tests/tests/ $(PRIVATE_DIR) $(TMP_DIR) \
- $(TOP) $(HOST_OUT_JAVA_LIBRARIES)/descGen.jar
- $(hide) mkdir -p $(dir $@) && touch $@
-
-# Package CTS and clean up.
-#
-# TODO:
-# Pack cts.bat into the same zip file as well. See http://buganizer/issue?id=1656821 for more details
-INTERNAL_CTS_TARGET := $(cts_dir)/$(cts_name).zip
-$(INTERNAL_CTS_TARGET): PRIVATE_NAME := $(cts_name)
-$(INTERNAL_CTS_TARGET): PRIVATE_CTS_DIR := $(cts_dir)
-$(INTERNAL_CTS_TARGET): PRIVATE_DIR := $(cts_dir)/$(cts_name)
-$(INTERNAL_CTS_TARGET): TMP_DIR := $(cts_dir)/temp
-$(INTERNAL_CTS_TARGET): $(cts_dir)/all_cts_files_stamp $(DEFAULT_TEST_PLAN)
- $(hide) echo "Package CTS: $@"
- $(hide) cd $(dir $@) && zip -rqX $(notdir $@) $(PRIVATE_NAME)
-
-.PHONY: old-cts
-old-cts: $(INTERNAL_CTS_TARGET) adb
-$(call dist-for-goals,old-cts,$(INTERNAL_CTS_TARGET))
diff --git a/target/product/core_minimal.mk b/target/product/core_minimal.mk
index d19dcb2..e008640 100644
--- a/target/product/core_minimal.mk
+++ b/target/product/core_minimal.mk
@@ -75,6 +75,7 @@
make_ext4fs \
e2fsck \
resize2fs \
+ tune2fs \
screencap \
sensorservice \
telephony-common \
diff --git a/target/product/core_tiny.mk b/target/product/core_tiny.mk
index ec2fa41..ea70454 100644
--- a/target/product/core_tiny.mk
+++ b/target/product/core_tiny.mk
@@ -72,6 +72,7 @@
make_ext4fs \
e2fsck \
resize2fs \
+ tune2fs \
nullwebview \
screencap \
sensorservice \
diff --git a/tools/droiddoc/templates-ds/customizations.cs b/tools/droiddoc/templates-ds/customizations.cs
index 75559e6..c1138f5 100644
--- a/tools/droiddoc/templates-ds/customizations.cs
+++ b/tools/droiddoc/templates-ds/customizations.cs
@@ -10,7 +10,7 @@
<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
<?cs
- include:"../../../../frameworks/base/docs/html/sdk/sdk_toc.cs" ?>
+ include:"../../../../../frameworks/base/docs/html/sdk/sdk_toc.cs" ?>
</div>
@@ -25,7 +25,7 @@
<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
<?cs
- include:"../../../../frameworks/base/docs/html/resources/resources_toc.cs" ?>
+ include:"../../../../../frameworks/base/docs/html/resources/resources_toc.cs" ?>
</div>
@@ -43,7 +43,7 @@
<div id="devdoc-nav" class="scroll-pane">
<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
<?cs
- include:"../../../../frameworks/base/docs/html/tools/tools_toc.cs" ?>
+ include:"../../../../../frameworks/base/docs/html/tools/tools_toc.cs" ?>
</div>
@@ -63,7 +63,7 @@
<?cs
- include:"../../../../frameworks/base/docs/html/training/training_toc.cs" ?>
+ include:"../../../../../frameworks/base/docs/html/training/training_toc.cs" ?>
</div>
@@ -83,7 +83,7 @@
<?cs
- include:"../../../../frameworks/base/docs/html/guide/guide_toc.cs" ?>
+ include:"../../../../../frameworks/base/docs/html/guide/guide_toc.cs" ?>
</div>
@@ -103,7 +103,7 @@
<?cs
- include:"../../../../frameworks/base/docs/html/design/design_toc.cs" ?>
+ include:"../../../../../frameworks/base/docs/html/design/design_toc.cs" ?>
</div>
@@ -122,7 +122,7 @@
<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
<?cs
- include:"../../../../frameworks/base/docs/html/distribute/distribute_toc.cs" ?>
+ include:"../../../../../frameworks/base/docs/html/distribute/distribute_toc.cs" ?>
</div>
@@ -142,7 +142,7 @@
<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
<?cs
- include:"../../../../frameworks/base/docs/html/google/google_toc.cs" ?>
+ include:"../../../../../frameworks/base/docs/html/google/google_toc.cs" ?>
</div>
@@ -166,7 +166,7 @@
<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
<?cs
- include:"../../../../frameworks/base/docs/html/about/about_toc.cs" ?>
+ include:"../../../../../frameworks/base/docs/html/about/about_toc.cs" ?>
</div>
@@ -186,7 +186,7 @@
<?cs
- include:"../../../../frameworks/base/docs/html/distribute/more/more_toc.cs" ?>
+ include:"../../../../../frameworks/base/docs/html/distribute/more/more_toc.cs" ?>
</div>
diff --git a/tools/droiddoc/templates-ndk/customizations.cs b/tools/droiddoc/templates-ndk/customizations.cs
index 0c640de..808bc81 100644
--- a/tools/droiddoc/templates-ndk/customizations.cs
+++ b/tools/droiddoc/templates-ndk/customizations.cs
@@ -9,7 +9,7 @@
<div id="devdoc-nav" class="scroll-pane">
<?cs
- include:"../../../../frameworks/base/docs/html/sdk/sdk_toc.cs" ?>
+ include:"../../../../../frameworks/base/docs/html/sdk/sdk_toc.cs" ?>
</div>
@@ -25,7 +25,7 @@
<div class="col-3" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
<div id="devdoc-nav" class="scroll-pane">
<?cs
- include:"../../../../frameworks/base/docs/html/tools/tools_toc.cs" ?>
+ include:"../../../../../frameworks/base/docs/html/tools/tools_toc.cs" ?>
</div>
@@ -43,7 +43,7 @@
<div class="col-3" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
<div id="devdoc-nav" class="scroll-pane">
<?cs
- include:"../../../../frameworks/base/docs/html-ndk/ndk/guides/guides_toc.cs" ?>
+ include:"../../../../../frameworks/base/docs/html-ndk/ndk/guides/guides_toc.cs" ?>
</div>
@@ -62,7 +62,7 @@
<div class="col-3" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
<div id="devdoc-nav" class="scroll-pane">
<?cs
- include:"../../../../frameworks/base/docs/html-ndk/ndk/reference/reference_toc.cs" ?>
+ include:"../../../../../frameworks/base/docs/html-ndk/ndk/reference/reference_toc.cs" ?>
</div>
@@ -81,7 +81,7 @@
<div class="col-3" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
<div id="devdoc-nav" class="scroll-pane">
<?cs
- include:"../../../../frameworks/base/docs/html-ndk/ndk/samples/samples_toc.cs" ?>
+ include:"../../../../../frameworks/base/docs/html-ndk/ndk/samples/samples_toc.cs" ?>
</div>
@@ -100,7 +100,7 @@
<div class="col-3" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
<div id="devdoc-nav" class="scroll-pane">
<?cs
- include:"../../../../frameworks/base/docs/html-ndk/ndk/downloads/downloads_toc.cs" ?>
+ include:"../../../../../frameworks/base/docs/html-ndk/ndk/downloads/downloads_toc.cs" ?>
</div>
@@ -120,7 +120,7 @@
<?cs
- include:"../../../../frameworks/base/docs/html/training/training_toc.cs" ?>
+ include:"../../../../../frameworks/base/docs/html/training/training_toc.cs" ?>
</div>
@@ -136,7 +136,7 @@
<div class="wrap clearfix" id="body-content">
<div class="col-3" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
<div id="devdoc-nav" class="scroll-pane">
-<?cs include:"../../../../frameworks/base/docs/html/distribute/googleplay/googleplay_toc.cs" ?>
+<?cs include:"../../../../../frameworks/base/docs/html/distribute/googleplay/googleplay_toc.cs" ?>
</div>
</div> <!-- end side-nav -->
<script>
@@ -150,7 +150,7 @@
<div class="wrap clearfix" id="body-content">
<div class="col-3" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
<div id="devdoc-nav" class="scroll-pane">
-<?cs include:"../../../../frameworks/base/docs/html/distribute/essentials/essentials_toc.cs" ?>
+<?cs include:"../../../../../frameworks/base/docs/html/distribute/essentials/essentials_toc.cs" ?>
</div>
</div> <!-- end side-nav -->
<script>
@@ -164,7 +164,7 @@
<div class="wrap clearfix" id="body-content">
<div class="col-3" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
<div id="devdoc-nav" class="scroll-pane">
-<?cs include:"../../../../frameworks/base/docs/html/distribute/users/users_toc.cs" ?>
+<?cs include:"../../../../../frameworks/base/docs/html/distribute/users/users_toc.cs" ?>
</div>
</div> <!-- end side-nav -->
<script>
@@ -178,7 +178,7 @@
<div class="wrap clearfix" id="body-content">
<div class="col-3" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
<div id="devdoc-nav" class="scroll-pane">
-<?cs include:"../../../../frameworks/base/docs/html/distribute/engage/engage_toc.cs" ?>
+<?cs include:"../../../../../frameworks/base/docs/html/distribute/engage/engage_toc.cs" ?>
</div>
</div> <!-- end side-nav -->
<script>
@@ -192,7 +192,7 @@
<div class="wrap clearfix" id="body-content">
<div class="col-3" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
<div id="devdoc-nav" class="scroll-pane">
-<?cs include:"../../../../frameworks/base/docs/html/distribute/analyze/analyze_toc.cs" ?>
+<?cs include:"../../../../../frameworks/base/docs/html/distribute/analyze/analyze_toc.cs" ?>
</div>
</div> <!-- end side-nav -->
<script>
@@ -206,7 +206,7 @@
<div class="wrap clearfix" id="body-content">
<div class="col-3" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
<div id="devdoc-nav" class="scroll-pane">
-<?cs include:"../../../../frameworks/base/docs/html/distribute/monetize/monetize_toc.cs" ?>
+<?cs include:"../../../../../frameworks/base/docs/html/distribute/monetize/monetize_toc.cs" ?>
</div>
</div> <!-- end side-nav -->
<script>
@@ -220,7 +220,7 @@
<div class="wrap clearfix" id="body-content">
<div class="col-3" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
<div id="devdoc-nav" class="scroll-pane">
-<?cs include:"../../../../frameworks/base/docs/html/distribute/tools/disttools_toc.cs" ?>
+<?cs include:"../../../../../frameworks/base/docs/html/distribute/tools/disttools_toc.cs" ?>
</div>
</div> <!-- end side-nav -->
<script>
@@ -234,7 +234,7 @@
<div class="wrap clearfix" id="body-content">
<div class="col-3" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
<div id="devdoc-nav" class="scroll-pane">
-<?cs include:"../../../../frameworks/base/docs/html/distribute/stories/stories_toc.cs" ?>
+<?cs include:"../../../../../frameworks/base/docs/html/distribute/stories/stories_toc.cs" ?>
</div>
</div> <!-- end side-nav -->
<script>
@@ -250,7 +250,7 @@
<div id="devdoc-nav" class="scroll-pane">
<?cs
- include:"../../../../frameworks/base/docs/html/guide/guide_toc.cs" ?>
+ include:"../../../../../frameworks/base/docs/html/guide/guide_toc.cs" ?>
</div>
@@ -269,7 +269,7 @@
<?cs
- include:"../../../../frameworks/base/docs/html/design/design_toc.cs" ?>
+ include:"../../../../../frameworks/base/docs/html/design/design_toc.cs" ?>
</div>
@@ -287,7 +287,7 @@
<div id="devdoc-nav" class="scroll-pane">
<?cs
- include:"../../../../frameworks/base/docs/html/distribute/distribute_toc.cs" ?>
+ include:"../../../../../frameworks/base/docs/html/distribute/distribute_toc.cs" ?>
</div>
@@ -306,7 +306,7 @@
<div id="devdoc-nav" class="scroll-pane">
<?cs
- include:"../../../../frameworks/base/docs/html/samples/samples_toc.cs" ?>
+ include:"../../../../../frameworks/base/docs/html/samples/samples_toc.cs" ?>
</div>
@@ -325,7 +325,7 @@
<div id="devdoc-nav" class="scroll-pane">
<?cs
- include:"../../../../frameworks/base/docs/html/google/google_toc.cs" ?>
+ include:"../../../../../frameworks/base/docs/html/google/google_toc.cs" ?>
</div>
@@ -348,7 +348,7 @@
<div id="devdoc-nav" class="scroll-pane">
<?cs
- include:"../../../../frameworks/base/docs/html/about/about_toc.cs" ?>
+ include:"../../../../../frameworks/base/docs/html/about/about_toc.cs" ?>
</div>
@@ -368,7 +368,7 @@
<div id="devdoc-nav" class="scroll-pane">
<?cs
- include:"../../../../frameworks/base/docs/html/wear/wear_toc.cs" ?>
+ include:"../../../../../frameworks/base/docs/html/wear/wear_toc.cs" ?>
</div>
@@ -386,7 +386,7 @@
<div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
<div id="devdoc-nav" class="scroll-pane">
<?cs
- include:"../../../../frameworks/base/docs/html/preview/preview_toc.cs" ?>
+ include:"../../../../../frameworks/base/docs/html/preview/preview_toc.cs" ?>
</div>
</div> <!-- end side-nav -->
<script>
diff --git a/tools/droiddoc/templates-pdk/customizations.cs b/tools/droiddoc/templates-pdk/customizations.cs
index e4fbbb9..15f67ea 100644
--- a/tools/droiddoc/templates-pdk/customizations.cs
+++ b/tools/droiddoc/templates-pdk/customizations.cs
@@ -3,7 +3,7 @@
<div class="g-section g-tpl-240" id="body-content">
<div class="g-unit g-first" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
<div id="devdoc-nav"><?cs
- include:"../../../../frameworks/base/docs/html/sdk/sdk_toc.cs" ?>
+ include:"../../../../../frameworks/base/docs/html/sdk/sdk_toc.cs" ?>
</div>
</div> <!-- end side-nav -->
<?cs /def ?>
@@ -12,7 +12,7 @@
<div class="g-section g-tpl-240" id="body-content">
<div class="g-unit g-first" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
<div id="devdoc-nav"><?cs
- include:"../../../../frameworks/base/docs/html/resources/resources_toc.cs" ?>
+ include:"../../../../../frameworks/base/docs/html/resources/resources_toc.cs" ?>
</div>
</div> <!-- end side-nav -->
<script>
@@ -26,7 +26,7 @@
<div class="g-section g-tpl-240" id="body-content">
<div class="g-unit g-first" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
<div id="devdoc-nav"><?cs
- include:"../../../../vendor/pdk/data/google/docs/guide/guide_toc.cs" ?>
+ include:"../../../../../vendor/pdk/data/google/docs/guide/guide_toc.cs" ?>
</div>
</div> <!-- end side-nav -->
<script>
@@ -37,7 +37,7 @@
<?cs /def ?>
<?cs
def:design_nav() ?>
- <?cs include:"../../../../frameworks/base/docs/html/design/design_toc.cs" ?>
+ <?cs include:"../../../../../frameworks/base/docs/html/design/design_toc.cs" ?>
<?cs /def ?>
<?cs # The default side navigation for the reference docs ?><?cs
diff --git a/tools/droiddoc/templates-sac/customizations.cs b/tools/droiddoc/templates-sac/customizations.cs
index 1120e70..01d3d72 100644
--- a/tools/droiddoc/templates-sac/customizations.cs
+++ b/tools/droiddoc/templates-sac/customizations.cs
@@ -10,7 +10,7 @@
<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
<?cs
- include:"../../../../frameworks/base/docs/html/sdk/sdk_toc.cs" ?>
+ include:"../../../../../frameworks/base/docs/html/sdk/sdk_toc.cs" ?>
</div>
@@ -25,7 +25,7 @@
<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
<?cs
- include:"../../../../frameworks/base/docs/html/resources/resources_toc.cs" ?>
+ include:"../../../../../frameworks/base/docs/html/resources/resources_toc.cs" ?>
</div>
@@ -43,7 +43,7 @@
<div id="devdoc-nav" class="scroll-pane">
<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
<?cs
- include:"../../../../frameworks/base/docs/html/tools/tools_toc.cs" ?>
+ include:"../../../../../frameworks/base/docs/html/tools/tools_toc.cs" ?>
</div>
@@ -63,7 +63,7 @@
<?cs
- include:"../../../../frameworks/base/docs/html/training/training_toc.cs" ?>
+ include:"../../../../../frameworks/base/docs/html/training/training_toc.cs" ?>
</div>
@@ -83,7 +83,7 @@
<?cs
- include:"../../../../frameworks/base/docs/html/guide/guide_toc.cs" ?>
+ include:"../../../../../frameworks/base/docs/html/guide/guide_toc.cs" ?>
</div>
@@ -103,7 +103,7 @@
<?cs
- include:"../../../../frameworks/base/docs/html/design/design_toc.cs" ?>
+ include:"../../../../../frameworks/base/docs/html/design/design_toc.cs" ?>
</div>
@@ -122,7 +122,7 @@
<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
<?cs
- include:"../../../../frameworks/base/docs/html/distribute/distribute_toc.cs" ?>
+ include:"../../../../../frameworks/base/docs/html/distribute/distribute_toc.cs" ?>
</div>
@@ -142,7 +142,7 @@
<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
<?cs
- include:"../../../../frameworks/base/docs/html/google/google_toc.cs" ?>
+ include:"../../../../../frameworks/base/docs/html/google/google_toc.cs" ?>
</div>
@@ -166,7 +166,7 @@
<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
<?cs
- include:"../../../../frameworks/base/docs/html/about/about_toc.cs" ?>
+ include:"../../../../../frameworks/base/docs/html/about/about_toc.cs" ?>
</div>
@@ -186,7 +186,7 @@
<?cs
- include:"../../../../frameworks/base/docs/html/distribute/more/more_toc.cs" ?>
+ include:"../../../../../frameworks/base/docs/html/distribute/more/more_toc.cs" ?>
</div>
@@ -397,7 +397,7 @@
<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
<?cs
- include:"../../../../docs/source.android.com/src/devices/devices_toc.cs" ?>
+ include:"../../../../../docs/source.android.com/src/devices/devices_toc.cs" ?>
</div>
<script type="text/javascript">
@@ -419,7 +419,7 @@
<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
<?cs
- include:"../../../../docs/source.android.com/src/compatibility/compatibility_toc.cs" ?>
+ include:"../../../../../docs/source.android.com/src/compatibility/compatibility_toc.cs" ?>
</div>
</div> <!-- end side-nav -->
@@ -438,7 +438,7 @@
<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
<?cs
- include:"../../../../docs/source.android.com/src/source/source_toc.cs" ?>
+ include:"../../../../../docs/source.android.com/src/source/source_toc.cs" ?>
</div>
</div> <!-- end side-nav -->
@@ -457,7 +457,7 @@
<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
<?cs
- include:"../../../../docs/source.android.com/src/security/security_toc.cs" ?>
+ include:"../../../../../docs/source.android.com/src/security/security_toc.cs" ?>
</div>
</div> <!-- end side-nav -->
diff --git a/tools/droiddoc/templates-sdk-dev/customizations.cs b/tools/droiddoc/templates-sdk-dev/customizations.cs
index 44ae239..38584d2 100644
--- a/tools/droiddoc/templates-sdk-dev/customizations.cs
+++ b/tools/droiddoc/templates-sdk-dev/customizations.cs
@@ -18,7 +18,7 @@
<!-- End: Fullscreen toggler -->
<?cs if:reference.gcm || reference.gms ?>
- <?cs include:"../../../../frameworks/base/docs/html/google/google_toc.cs" ?>
+ <?cs include:"../../../../../frameworks/base/docs/html/google/google_toc.cs" ?>
<script type="text/javascript">
showGoogleRefTree();
</script>
@@ -83,10 +83,10 @@
<div class="dac-toggle-content" id="devdoc-nav">
<div class="scroll-pane">
<?cs
-if:guide ?><?cs include:"../../../../frameworks/base/docs/html/ndk/guides/guides_toc.cs" ?><?cs
-elif:reference ?><?cs include:"../../../../frameworks/base/docs/html/ndk/reference/reference_toc.cs" ?><?cs
-elif:downloads ?><?cs include:"../../../../frameworks/base/docs/html/ndk/downloads/downloads_toc.cs" ?><?cs
-elif:samples ?><?cs include:"../../../../frameworks/base/docs/html/ndk/samples/samples_toc.cs" ?><?cs
+if:guide ?><?cs include:"../../../../../frameworks/base/docs/html/ndk/guides/guides_toc.cs" ?><?cs
+elif:reference ?><?cs include:"../../../../../frameworks/base/docs/html/ndk/reference/reference_toc.cs" ?><?cs
+elif:downloads ?><?cs include:"../../../../../frameworks/base/docs/html/ndk/downloads/downloads_toc.cs" ?><?cs
+elif:samples ?><?cs include:"../../../../../frameworks/base/docs/html/ndk/samples/samples_toc.cs" ?><?cs
/if ?>
</div>
</div>
@@ -158,52 +158,52 @@
<div class="dac-nav-sub dac-swap-section dac-right dac-active" itemscope itemtype="http://schema.org/SiteNavigationElement">
<?cs if:ndk ?>
<?cs if:guide ?>
- <?cs include:"../../../../frameworks/base/docs/html/ndk/guides/guides_toc.cs" ?>
+ <?cs include:"../../../../../frameworks/base/docs/html/ndk/guides/guides_toc.cs" ?>
<?cs elif:reference ?>
- <?cs include:"../../../../frameworks/base/docs/html/ndk/reference/reference_toc.cs" ?>
+ <?cs include:"../../../../../frameworks/base/docs/html/ndk/reference/reference_toc.cs" ?>
<?cs elif:downloads ?>
- <?cs include:"../../../../frameworks/base/docs/html/ndk/downloads/downloads_toc.cs" ?>
+ <?cs include:"../../../../../frameworks/base/docs/html/ndk/downloads/downloads_toc.cs" ?>
<?cs elif:samples ?>
- <?cs include:"../../../../frameworks/base/docs/html/ndk/samples/samples_toc.cs" ?>
+ <?cs include:"../../../../../frameworks/base/docs/html/ndk/samples/samples_toc.cs" ?>
<?cs else ?>
<?cs call:reference_default_nav() ?>
<?cs /if ?>
<?cs elif:guide ?>
- <?cs include:"../../../../frameworks/base/docs/html/guide/guide_toc.cs" ?>
+ <?cs include:"../../../../../frameworks/base/docs/html/guide/guide_toc.cs" ?>
<?cs elif:design ?>
- <?cs include:"../../../../frameworks/base/docs/html/design/design_toc.cs" ?>
+ <?cs include:"../../../../../frameworks/base/docs/html/design/design_toc.cs" ?>
<?cs elif:training ?>
- <?cs include:"../../../../frameworks/base/docs/html/training/training_toc.cs" ?>
+ <?cs include:"../../../../../frameworks/base/docs/html/training/training_toc.cs" ?>
<?cs elif:tools ?>
- <?cs include:"../../../../frameworks/base/docs/html/tools/tools_toc.cs" ?>
+ <?cs include:"../../../../../frameworks/base/docs/html/tools/tools_toc.cs" ?>
<?cs elif:google ?>
- <?cs include:"../../../../frameworks/base/docs/html/google/google_toc.cs" ?>
+ <?cs include:"../../../../../frameworks/base/docs/html/google/google_toc.cs" ?>
<?cs elif:samples ?>
- <?cs include:"../../../../frameworks/base/docs/html/samples/samples_toc.cs" ?>
+ <?cs include:"../../../../../frameworks/base/docs/html/samples/samples_toc.cs" ?>
<?cs elif:preview ?>
- <?cs include:"../../../../frameworks/base/docs/html/preview/preview_toc.cs" ?>
+ <?cs include:"../../../../../frameworks/base/docs/html/preview/preview_toc.cs" ?>
<?cs elif:preview ?>
- <?cs include:"../../../../frameworks/base/docs/html/wear/preview/preview_toc.cs" ?>
+ <?cs include:"../../../../../frameworks/base/docs/html/wear/preview/preview_toc.cs" ?>
<?cs elif:distribute ?>
<?cs if:googleplay ?>
- <?cs include:"../../../../frameworks/base/docs/html/distribute/googleplay/googleplay_toc.cs" ?>
+ <?cs include:"../../../../../frameworks/base/docs/html/distribute/googleplay/googleplay_toc.cs" ?>
<?cs elif:essentials ?>
- <?cs include:"../../../../frameworks/base/docs/html/distribute/essentials/essentials_toc.cs" ?>
+ <?cs include:"../../../../../frameworks/base/docs/html/distribute/essentials/essentials_toc.cs" ?>
<?cs elif:users ?>
- <?cs include:"../../../../frameworks/base/docs/html/distribute/users/users_toc.cs" ?>
+ <?cs include:"../../../../../frameworks/base/docs/html/distribute/users/users_toc.cs" ?>
<?cs elif:engage ?>
- <?cs include:"../../../../frameworks/base/docs/html/distribute/engage/engage_toc.cs" ?>
+ <?cs include:"../../../../../frameworks/base/docs/html/distribute/engage/engage_toc.cs" ?>
<?cs elif:monetize ?>
- <?cs include:"../../../../frameworks/base/docs/html/distribute/monetize/monetize_toc.cs" ?>
+ <?cs include:"../../../../../frameworks/base/docs/html/distribute/monetize/monetize_toc.cs" ?>
<?cs elif:analyze ?>
- <?cs include:"../../../../frameworks/base/docs/html/distribute/analyze/analyze_toc.cs" ?>
+ <?cs include:"../../../../../frameworks/base/docs/html/distribute/analyze/analyze_toc.cs" ?>
<?cs elif:disttools ?>
- <?cs include:"../../../../frameworks/base/docs/html/distribute/tools/disttools_toc.cs" ?>
+ <?cs include:"../../../../../frameworks/base/docs/html/distribute/tools/disttools_toc.cs" ?>
<?cs elif:stories ?>
- <?cs include:"../../../../frameworks/base/docs/html/distribute/stories/stories_toc.cs" ?>
+ <?cs include:"../../../../../frameworks/base/docs/html/distribute/stories/stories_toc.cs" ?>
<?cs /if ?>
<?cs elif:about ?>
- <?cs include:"../../../../frameworks/base/docs/html/about/about_toc.cs" ?>
+ <?cs include:"../../../../../frameworks/base/docs/html/about/about_toc.cs" ?>
<?cs else ?>
<?cs call:reference_default_nav() ?>
<?cs /if ?>
diff --git a/tools/droiddoc/templates-sdk-dev/sdkpage.cs b/tools/droiddoc/templates-sdk-dev/sdkpage.cs
index 1785fa0..1f3bf90 100644
--- a/tools/droiddoc/templates-sdk-dev/sdkpage.cs
+++ b/tools/droiddoc/templates-sdk-dev/sdkpage.cs
@@ -1,6 +1,6 @@
<?cs include:"doctype.cs" ?>
<?cs include:"macros.cs" ?>
-<?cs include:"../../../../frameworks/base/docs/html/sdk/sdk_vars.cs" ?>
+<?cs include:"../../../../../frameworks/base/docs/html/sdk/sdk_vars.cs" ?>
<html<?cs if:devsite ?> devsite<?cs /if ?>>
<?cs if:sdk.redirect ?>
<head>
diff --git a/tools/droiddoc/templates-sdk-refonly/customizations.cs b/tools/droiddoc/templates-sdk-refonly/customizations.cs
index 16469ac..1f48c16 100644
--- a/tools/droiddoc/templates-sdk-refonly/customizations.cs
+++ b/tools/droiddoc/templates-sdk-refonly/customizations.cs
@@ -17,7 +17,7 @@
<?cs call:mobile_nav_toggle() ?>
<div class="dac-toggle-content" id="devdoc-nav">
<div class="scroll-pane">
-<?cs include:"../../../../frameworks/base/docs/html/sdk/sdk_toc.cs" ?>
+<?cs include:"../../../../../frameworks/base/docs/html/sdk/sdk_toc.cs" ?>
</div>
</div>
</div> <!-- end side-nav -->
@@ -34,7 +34,7 @@
<?cs call:mobile_nav_toggle() ?>
<div class="dac-toggle-content" id="devdoc-nav">
<div class="scroll-pane">
-<?cs include:"../../../../frameworks/base/docs/html/tools/tools_toc.cs" ?>
+<?cs include:"../../../../../frameworks/base/docs/html/tools/tools_toc.cs" ?>
</div>
</div>
</div> <!-- end side-nav -->
@@ -51,7 +51,7 @@
<?cs call:mobile_nav_toggle() ?>
<div class="dac-toggle-content" id="devdoc-nav">
<div class="scroll-pane">
-<?cs include:"../../../../frameworks/base/docs/html/training/training_toc.cs" ?>
+<?cs include:"../../../../../frameworks/base/docs/html/training/training_toc.cs" ?>
</div>
</div>
</div> <!-- end side-nav -->
@@ -68,7 +68,7 @@
<?cs call:mobile_nav_toggle() ?>
<div class="dac-toggle-content" id="devdoc-nav">
<div class="scroll-pane">
-<?cs include:"../../../../frameworks/base/docs/html/distribute/googleplay/googleplay_toc.cs" ?>
+<?cs include:"../../../../../frameworks/base/docs/html/distribute/googleplay/googleplay_toc.cs" ?>
</div>
</div>
</div> <!-- end side-nav -->
@@ -85,7 +85,7 @@
<?cs call:mobile_nav_toggle() ?>
<div class="dac-toggle-content" id="devdoc-nav">
<div class="scroll-pane">
-<?cs include:"../../../../frameworks/base/docs/html/preview/preview_toc.cs" ?>
+<?cs include:"../../../../../frameworks/base/docs/html/preview/preview_toc.cs" ?>
</div>
</div>
</div> <!-- end side-nav -->
@@ -102,7 +102,7 @@
<?cs call:mobile_nav_toggle() ?>
<div class="dac-toggle-content" id="devdoc-nav">
<div class="scroll-pane">
-<?cs include:"../../../../frameworks/base/docs/html/distribute/essentials/essentials_toc.cs" ?>
+<?cs include:"../../../../../frameworks/base/docs/html/distribute/essentials/essentials_toc.cs" ?>
</div>
</div>
</div> <!-- end side-nav -->
@@ -119,7 +119,7 @@
<?cs call:mobile_nav_toggle() ?>
<div class="dac-toggle-content" id="devdoc-nav">
<div class="scroll-pane">
-<?cs include:"../../../../frameworks/base/docs/html/distribute/users/users_toc.cs" ?>
+<?cs include:"../../../../../frameworks/base/docs/html/distribute/users/users_toc.cs" ?>
</div>
</div>
</div> <!-- end side-nav -->
@@ -136,7 +136,7 @@
<?cs call:mobile_nav_toggle() ?>
<div class="dac-toggle-content" id="devdoc-nav">
<div class="scroll-pane">
-<?cs include:"../../../../frameworks/base/docs/html/distribute/engage/engage_toc.cs" ?>
+<?cs include:"../../../../../frameworks/base/docs/html/distribute/engage/engage_toc.cs" ?>
</div>
</div>
</div> <!-- end side-nav -->
@@ -153,7 +153,7 @@
<?cs call:mobile_nav_toggle() ?>
<div class="dac-toggle-content" id="devdoc-nav">
<div class="scroll-pane">
-<?cs include:"../../../../frameworks/base/docs/html/distribute/analyze/analyze_toc.cs" ?>
+<?cs include:"../../../../../frameworks/base/docs/html/distribute/analyze/analyze_toc.cs" ?>
</div>
</div>
</div> <!-- end side-nav -->
@@ -170,7 +170,7 @@
<?cs call:mobile_nav_toggle() ?>
<div class="dac-toggle-content" id="devdoc-nav">
<div class="scroll-pane">
-<?cs include:"../../../../frameworks/base/docs/html/distribute/monetize/monetize_toc.cs" ?>
+<?cs include:"../../../../../frameworks/base/docs/html/distribute/monetize/monetize_toc.cs" ?>
</div>
</div>
</div> <!-- end side-nav -->
@@ -187,7 +187,7 @@
<?cs call:mobile_nav_toggle() ?>
<div class="dac-toggle-content" id="devdoc-nav">
<div class="scroll-pane">
-<?cs include:"../../../../frameworks/base/docs/html/distribute/tools/disttools_toc.cs" ?>
+<?cs include:"../../../../../frameworks/base/docs/html/distribute/tools/disttools_toc.cs" ?>
</div>
</div>
</div> <!-- end side-nav -->
@@ -204,7 +204,7 @@
<?cs call:mobile_nav_toggle() ?>
<div class="dac-toggle-content" id="devdoc-nav">
<div class="scroll-pane">
-<?cs include:"../../../../frameworks/base/docs/html/distribute/stories/stories_toc.cs" ?>
+<?cs include:"../../../../../frameworks/base/docs/html/distribute/stories/stories_toc.cs" ?>
</div>
</div>
</div> <!-- end side-nav -->
@@ -221,7 +221,7 @@
<?cs call:mobile_nav_toggle() ?>
<div class="dac-toggle-content" id="devdoc-nav">
<div class="scroll-pane">
-<?cs include:"../../../../frameworks/base/docs/html/guide/guide_toc.cs" ?>
+<?cs include:"../../../../../frameworks/base/docs/html/guide/guide_toc.cs" ?>
</div>
</div>
</div> <!-- end side-nav -->
@@ -238,7 +238,7 @@
<?cs call:mobile_nav_toggle() ?>
<div class="dac-toggle-content" id="devdoc-nav">
<div class="scroll-pane">
-<?cs include:"../../../../frameworks/base/docs/html/design/design_toc.cs" ?>
+<?cs include:"../../../../../frameworks/base/docs/html/design/design_toc.cs" ?>
</div>
</div>
</div> <!-- end side-nav -->
@@ -255,7 +255,7 @@
<?cs call:mobile_nav_toggle() ?>
<div class="dac-toggle-content" id="devdoc-nav">
<div class="scroll-pane">
-<?cs include:"../../../../frameworks/base/docs/html/distribute/distribute_toc.cs" ?>
+<?cs include:"../../../../../frameworks/base/docs/html/distribute/distribute_toc.cs" ?>
</div>
</div>
</div> <!-- end side-nav -->
@@ -273,7 +273,7 @@
<?cs call:mobile_nav_toggle() ?>
<div class="dac-toggle-content" id="devdoc-nav">
<div class="scroll-pane">
-<?cs include:"../../../../frameworks/base/docs/html/samples/samples_toc.cs" ?>
+<?cs include:"../../../../../frameworks/base/docs/html/samples/samples_toc.cs" ?>
</div>
</div>
@@ -292,7 +292,7 @@
<?cs call:mobile_nav_toggle() ?>
<div class="dac-toggle-content" id="devdoc-nav">
<div class="scroll-pane">
-<?cs include:"../../../../frameworks/base/docs/html/google/google_toc.cs" ?>
+<?cs include:"../../../../../frameworks/base/docs/html/google/google_toc.cs" ?>
</div>
</div>
<script type="text/javascript">
@@ -314,7 +314,7 @@
<?cs call:mobile_nav_toggle() ?>
<div class="dac-toggle-content" id="devdoc-nav">
<div class="scroll-pane">
-<?cs include:"../../../../frameworks/base/docs/html/about/about_toc.cs" ?>
+<?cs include:"../../../../../frameworks/base/docs/html/about/about_toc.cs" ?>
</div>
</div>
</div> <!-- end side-nav -->
@@ -333,7 +333,7 @@
<?cs call:mobile_nav_toggle() ?>
<div class="dac-toggle-content" id="devdoc-nav">
<div class="scroll-pane">
-<?cs include:"../../../../frameworks/base/docs/html/wear/wear_toc.cs" ?>
+<?cs include:"../../../../../frameworks/base/docs/html/wear/wear_toc.cs" ?>
</div>
</div>
</div> <!-- end side-nav -->
@@ -463,10 +463,10 @@
<div class="dac-toggle-content" id="devdoc-nav">
<div class="scroll-pane">
<?cs
-if:guide ?><?cs include:"../../../../frameworks/base/docs/html/ndk/guides/guides_toc.cs" ?><?cs
-elif:reference ?><?cs include:"../../../../frameworks/base/docs/html/ndk/reference/reference_toc.cs" ?><?cs
-elif:downloads ?><?cs include:"../../../../frameworks/base/docs/html/ndk/downloads/downloads_toc.cs" ?><?cs
-elif:samples ?><?cs include:"../../../../frameworks/base/docs/html/ndk/samples/samples_toc.cs" ?><?cs
+if:guide ?><?cs include:"../../../../../frameworks/base/docs/html/ndk/guides/guides_toc.cs" ?><?cs
+elif:reference ?><?cs include:"../../../../../frameworks/base/docs/html/ndk/reference/reference_toc.cs" ?><?cs
+elif:downloads ?><?cs include:"../../../../../frameworks/base/docs/html/ndk/downloads/downloads_toc.cs" ?><?cs
+elif:samples ?><?cs include:"../../../../../frameworks/base/docs/html/ndk/samples/samples_toc.cs" ?><?cs
/if ?>
</div>
</div>
diff --git a/tools/droiddoc/templates-sdk-refonly/sdkpage.cs b/tools/droiddoc/templates-sdk-refonly/sdkpage.cs
index 9076387..5274a04 100644
--- a/tools/droiddoc/templates-sdk-refonly/sdkpage.cs
+++ b/tools/droiddoc/templates-sdk-refonly/sdkpage.cs
@@ -1,6 +1,6 @@
<?cs include:"doctype.cs" ?>
<?cs include:"macros.cs" ?>
-<?cs include:"../../../../frameworks/base/docs/html/sdk/sdk_vars.cs" ?>
+<?cs include:"../../../../../frameworks/base/docs/html/sdk/sdk_vars.cs" ?>
<html<?cs if:devsite ?> devsite<?cs /if ?>>
<?cs if:sdk.redirect ?>
<head>
diff --git a/tools/droiddoc/templates-sdk/customizations.cs b/tools/droiddoc/templates-sdk/customizations.cs
index 4cf5abb..00d0bc7 100644
--- a/tools/droiddoc/templates-sdk/customizations.cs
+++ b/tools/droiddoc/templates-sdk/customizations.cs
@@ -17,7 +17,7 @@
<?cs call:mobile_nav_toggle() ?>
<div class="dac-toggle-content" id="devdoc-nav">
<div class="scroll-pane">
-<?cs include:"../../../../frameworks/base/docs/html/sdk/sdk_toc.cs" ?>
+<?cs include:"../../../../../frameworks/base/docs/html/sdk/sdk_toc.cs" ?>
</div>
</div>
</div> <!-- end side-nav -->
@@ -34,7 +34,7 @@
<?cs call:mobile_nav_toggle() ?>
<div class="dac-toggle-content" id="devdoc-nav">
<div class="scroll-pane">
-<?cs include:"../../../../frameworks/base/docs/html/tools/tools_toc.cs" ?>
+<?cs include:"../../../../../frameworks/base/docs/html/tools/tools_toc.cs" ?>
</div>
</div>
</div> <!-- end side-nav -->
@@ -51,7 +51,7 @@
<?cs call:mobile_nav_toggle() ?>
<div class="dac-toggle-content" id="devdoc-nav">
<div class="scroll-pane">
-<?cs include:"../../../../frameworks/base/docs/html/training/training_toc.cs" ?>
+<?cs include:"../../../../../frameworks/base/docs/html/training/training_toc.cs" ?>
</div>
</div>
</div> <!-- end side-nav -->
@@ -68,7 +68,7 @@
<?cs call:mobile_nav_toggle() ?>
<div class="dac-toggle-content" id="devdoc-nav">
<div class="scroll-pane">
-<?cs include:"../../../../frameworks/base/docs/html/distribute/googleplay/googleplay_toc.cs" ?>
+<?cs include:"../../../../../frameworks/base/docs/html/distribute/googleplay/googleplay_toc.cs" ?>
</div>
</div>
</div> <!-- end side-nav -->
@@ -85,7 +85,7 @@
<?cs call:mobile_nav_toggle() ?>
<div class="dac-toggle-content" id="devdoc-nav">
<div class="scroll-pane">
-<?cs include:"../../../../frameworks/base/docs/html/preview/preview_toc.cs" ?>
+<?cs include:"../../../../../frameworks/base/docs/html/preview/preview_toc.cs" ?>
</div>
</div>
</div> <!-- end side-nav -->
@@ -102,7 +102,7 @@
<?cs call:mobile_nav_toggle() ?>
<div class="dac-toggle-content" id="devdoc-nav">
<div class="scroll-pane">
-<?cs include:"../../../../frameworks/base/docs/html/distribute/essentials/essentials_toc.cs" ?>
+<?cs include:"../../../../../frameworks/base/docs/html/distribute/essentials/essentials_toc.cs" ?>
</div>
</div>
</div> <!-- end side-nav -->
@@ -119,7 +119,7 @@
<?cs call:mobile_nav_toggle() ?>
<div class="dac-toggle-content" id="devdoc-nav">
<div class="scroll-pane">
-<?cs include:"../../../../frameworks/base/docs/html/distribute/users/users_toc.cs" ?>
+<?cs include:"../../../../../frameworks/base/docs/html/distribute/users/users_toc.cs" ?>
</div>
</div>
</div> <!-- end side-nav -->
@@ -136,7 +136,7 @@
<?cs call:mobile_nav_toggle() ?>
<div class="dac-toggle-content" id="devdoc-nav">
<div class="scroll-pane">
-<?cs include:"../../../../frameworks/base/docs/html/distribute/engage/engage_toc.cs" ?>
+<?cs include:"../../../../../frameworks/base/docs/html/distribute/engage/engage_toc.cs" ?>
</div>
</div>
</div> <!-- end side-nav -->
@@ -153,7 +153,7 @@
<?cs call:mobile_nav_toggle() ?>
<div class="dac-toggle-content" id="devdoc-nav">
<div class="scroll-pane">
-<?cs include:"../../../../frameworks/base/docs/html/distribute/analyze/analyze_toc.cs" ?>
+<?cs include:"../../../../../frameworks/base/docs/html/distribute/analyze/analyze_toc.cs" ?>
</div>
</div>
</div> <!-- end side-nav -->
@@ -170,7 +170,7 @@
<?cs call:mobile_nav_toggle() ?>
<div class="dac-toggle-content" id="devdoc-nav">
<div class="scroll-pane">
-<?cs include:"../../../../frameworks/base/docs/html/distribute/monetize/monetize_toc.cs" ?>
+<?cs include:"../../../../../frameworks/base/docs/html/distribute/monetize/monetize_toc.cs" ?>
</div>
</div>
</div> <!-- end side-nav -->
@@ -187,7 +187,7 @@
<?cs call:mobile_nav_toggle() ?>
<div class="dac-toggle-content" id="devdoc-nav">
<div class="scroll-pane">
-<?cs include:"../../../../frameworks/base/docs/html/distribute/tools/disttools_toc.cs" ?>
+<?cs include:"../../../../../frameworks/base/docs/html/distribute/tools/disttools_toc.cs" ?>
</div>
</div>
</div> <!-- end side-nav -->
@@ -204,7 +204,7 @@
<?cs call:mobile_nav_toggle() ?>
<div class="dac-toggle-content" id="devdoc-nav">
<div class="scroll-pane">
-<?cs include:"../../../../frameworks/base/docs/html/distribute/stories/stories_toc.cs" ?>
+<?cs include:"../../../../../frameworks/base/docs/html/distribute/stories/stories_toc.cs" ?>
</div>
</div>
</div> <!-- end side-nav -->
@@ -221,7 +221,7 @@
<?cs call:mobile_nav_toggle() ?>
<div class="dac-toggle-content" id="devdoc-nav">
<div class="scroll-pane">
-<?cs include:"../../../../frameworks/base/docs/html/guide/guide_toc.cs" ?>
+<?cs include:"../../../../../frameworks/base/docs/html/guide/guide_toc.cs" ?>
</div>
</div>
</div> <!-- end side-nav -->
@@ -238,7 +238,7 @@
<?cs call:mobile_nav_toggle() ?>
<div class="dac-toggle-content" id="devdoc-nav">
<div class="scroll-pane">
-<?cs include:"../../../../frameworks/base/docs/html/design/design_toc.cs" ?>
+<?cs include:"../../../../../frameworks/base/docs/html/design/design_toc.cs" ?>
</div>
</div>
</div> <!-- end side-nav -->
@@ -255,7 +255,7 @@
<?cs call:mobile_nav_toggle() ?>
<div class="dac-toggle-content" id="devdoc-nav">
<div class="scroll-pane">
-<?cs include:"../../../../frameworks/base/docs/html/distribute/distribute_toc.cs" ?>
+<?cs include:"../../../../../frameworks/base/docs/html/distribute/distribute_toc.cs" ?>
</div>
</div>
</div> <!-- end side-nav -->
@@ -273,7 +273,7 @@
<?cs call:mobile_nav_toggle() ?>
<div class="dac-toggle-content" id="devdoc-nav">
<div class="scroll-pane">
-<?cs include:"../../../../frameworks/base/docs/html/samples/samples_toc.cs" ?>
+<?cs include:"../../../../../frameworks/base/docs/html/samples/samples_toc.cs" ?>
</div>
</div>
@@ -292,7 +292,7 @@
<?cs call:mobile_nav_toggle() ?>
<div class="dac-toggle-content" id="devdoc-nav">
<div class="scroll-pane">
-<?cs include:"../../../../frameworks/base/docs/html/google/google_toc.cs" ?>
+<?cs include:"../../../../../frameworks/base/docs/html/google/google_toc.cs" ?>
</div>
</div>
<script type="text/javascript">
@@ -314,7 +314,7 @@
<?cs call:mobile_nav_toggle() ?>
<div class="dac-toggle-content" id="devdoc-nav">
<div class="scroll-pane">
-<?cs include:"../../../../frameworks/base/docs/html/about/about_toc.cs" ?>
+<?cs include:"../../../../../frameworks/base/docs/html/about/about_toc.cs" ?>
</div>
</div>
</div> <!-- end side-nav -->
@@ -333,7 +333,7 @@
<?cs call:mobile_nav_toggle() ?>
<div class="dac-toggle-content" id="devdoc-nav">
<div class="scroll-pane">
-<?cs include:"../../../../frameworks/base/docs/html/wear/wear_toc.cs" ?>
+<?cs include:"../../../../../frameworks/base/docs/html/wear/wear_toc.cs" ?>
</div>
</div>
</div> <!-- end side-nav -->
@@ -463,10 +463,10 @@
<div class="dac-toggle-content" id="devdoc-nav">
<div class="scroll-pane">
<?cs
-if:guide ?><?cs include:"../../../../frameworks/base/docs/html/ndk/guides/guides_toc.cs" ?><?cs
-elif:reference ?><?cs include:"../../../../frameworks/base/docs/html/ndk/reference/reference_toc.cs" ?><?cs
-elif:downloads ?><?cs include:"../../../../frameworks/base/docs/html/ndk/downloads/downloads_toc.cs" ?><?cs
-elif:samples ?><?cs include:"../../../../frameworks/base/docs/html/ndk/samples/samples_toc.cs" ?><?cs
+if:guide ?><?cs include:"../../../../../frameworks/base/docs/html/ndk/guides/guides_toc.cs" ?><?cs
+elif:reference ?><?cs include:"../../../../../frameworks/base/docs/html/ndk/reference/reference_toc.cs" ?><?cs
+elif:downloads ?><?cs include:"../../../../../frameworks/base/docs/html/ndk/downloads/downloads_toc.cs" ?><?cs
+elif:samples ?><?cs include:"../../../../../frameworks/base/docs/html/ndk/samples/samples_toc.cs" ?><?cs
/if ?>
</div>
</div>
diff --git a/tools/droiddoc/templates-sdk/sdkpage.cs b/tools/droiddoc/templates-sdk/sdkpage.cs
index c6679a6..62ce174 100644
--- a/tools/droiddoc/templates-sdk/sdkpage.cs
+++ b/tools/droiddoc/templates-sdk/sdkpage.cs
@@ -1,6 +1,6 @@
<?cs include:"doctype.cs" ?>
<?cs include:"macros.cs" ?>
-<?cs include:"../../../../frameworks/base/docs/html/sdk/sdk_vars.cs" ?>
+<?cs include:"../../../../../frameworks/base/docs/html/sdk/sdk_vars.cs" ?>
<html<?cs if:devsite ?> devsite<?cs /if ?>>
<?cs if:sdk.redirect ?>
<head>
diff --git a/tools/kati_all_products.sh b/tools/kati_all_products.sh
new file mode 100755
index 0000000..4567dbd
--- /dev/null
+++ b/tools/kati_all_products.sh
@@ -0,0 +1,7 @@
+#!/bin/bash -e
+
+cd $ANDROID_BUILD_TOP
+mkdir -p out.kati
+source build/envsetup.sh
+
+get_build_var all_named_products | sed "s/ /\n/g" | parallel "$@" --progress "(source build/envsetup.sh; lunch {}-eng && m -j OUT_DIR=out.kati/{} out.kati/{}/build-{}.ninja) >out.kati/log.{} 2>&1"
diff --git a/tools/warn.py b/tools/warn.py
index 4ed4952..3c75825 100755
--- a/tools/warn.py
+++ b/tools/warn.py
@@ -32,6 +32,7 @@
# warning_records array of [idx to warn_patterns,
# idx to project_names,
# idx to warning_messages]
+# android_root
# platform_version
# target_product
# target_variant
@@ -80,6 +81,7 @@
# dump_csv():
import argparse
+import os
import re
parser = argparse.ArgumentParser(description='Convert a build log into HTML')
@@ -109,17 +111,19 @@
HIGH = 1
MEDIUM = 2
LOW = 3
- TIDY = 4
- HARMLESS = 5
- UNKNOWN = 6
- SKIP = 7
- range = range(8)
+ ANALYZER = 4
+ TIDY = 5
+ HARMLESS = 6
+ UNKNOWN = 7
+ SKIP = 8
+ range = range(SKIP + 1)
attributes = [
# pylint:disable=bad-whitespace
['fuchsia', 'FixNow', 'Critical warnings, fix me now'],
['red', 'High', 'High severity warnings'],
['orange', 'Medium', 'Medium severity warnings'],
['yellow', 'Low', 'Low severity warnings'],
+ ['hotpink', 'Analyzer', 'Clang-Analyzer warnings'],
['peachpuff', 'Tidy', 'Clang-Tidy warnings'],
['limegreen', 'Harmless', 'Harmless warnings'],
['lightblue', 'Unknown', 'Unknown warnings'],
@@ -131,6 +135,9 @@
warn_patterns = [
# pylint:disable=line-too-long,g-inconsistent-quotes
+ {'category': 'C/C++', 'severity': Severity.ANALYZER,
+ 'description': 'clang-analyzer Security warning',
+ 'patterns': [r".*: warning: .+\[clang-analyzer-security.*\]"]},
{'category': 'make', 'severity': Severity.MEDIUM,
'description': 'make: overriding commands/ignoring old commands',
'patterns': [r".*: warning: overriding commands for target .+",
@@ -1283,8 +1290,8 @@
'description': 'Comment inside comment',
'patterns': [r".*: warning: "".+"" within comment"]},
# Warning "value stored is never read" could be from clang-tidy or clang static analyzer.
- {'category': 'C/C++', 'severity': Severity.TIDY,
- 'description': 'clang-tidy Value stored is never read',
+ {'category': 'C/C++', 'severity': Severity.ANALYZER,
+ 'description': 'clang-analyzer Value stored is never read',
'patterns': [r".*: warning: Value stored to .+ is never read.*clang-analyzer-deadcode.DeadStores"]},
{'category': 'C/C++', 'severity': Severity.LOW,
'description': 'Value stored is never read',
@@ -1601,46 +1608,46 @@
{'category': 'C/C++', 'severity': Severity.TIDY,
'description': 'clang-tidy performance-unnecessary-value-param',
'patterns': [r".*: .+\[performance-unnecessary-value-param\]$"]},
- {'category': 'C/C++', 'severity': Severity.TIDY,
+ {'category': 'C/C++', 'severity': Severity.ANALYZER,
'description': 'clang-analyzer Unreachable code',
'patterns': [r".*: warning: This statement is never executed.*UnreachableCode"]},
- {'category': 'C/C++', 'severity': Severity.TIDY,
+ {'category': 'C/C++', 'severity': Severity.ANALYZER,
'description': 'clang-analyzer Size of malloc may overflow',
'patterns': [r".*: warning: .* size of .* may overflow .*MallocOverflow"]},
- {'category': 'C/C++', 'severity': Severity.TIDY,
+ {'category': 'C/C++', 'severity': Severity.ANALYZER,
'description': 'clang-analyzer Stream pointer might be NULL',
'patterns': [r".*: warning: Stream pointer might be NULL .*unix.Stream"]},
- {'category': 'C/C++', 'severity': Severity.TIDY,
+ {'category': 'C/C++', 'severity': Severity.ANALYZER,
'description': 'clang-analyzer Opened file never closed',
'patterns': [r".*: warning: Opened File never closed.*unix.Stream"]},
- {'category': 'C/C++', 'severity': Severity.TIDY,
+ {'category': 'C/C++', 'severity': Severity.ANALYZER,
'description': 'clang-analyzer sozeof() on a pointer type',
'patterns': [r".*: warning: .*calls sizeof.* on a pointer type.*SizeofPtr"]},
- {'category': 'C/C++', 'severity': Severity.TIDY,
+ {'category': 'C/C++', 'severity': Severity.ANALYZER,
'description': 'clang-analyzer Pointer arithmetic on non-array variables',
'patterns': [r".*: warning: Pointer arithmetic on non-array variables .*PointerArithm"]},
- {'category': 'C/C++', 'severity': Severity.TIDY,
+ {'category': 'C/C++', 'severity': Severity.ANALYZER,
'description': 'clang-analyzer Subtraction of pointers of different memory chunks',
'patterns': [r".*: warning: Subtraction of two pointers .*PointerSub"]},
- {'category': 'C/C++', 'severity': Severity.TIDY,
+ {'category': 'C/C++', 'severity': Severity.ANALYZER,
'description': 'clang-analyzer Access out-of-bound array element',
'patterns': [r".*: warning: Access out-of-bound array element .*ArrayBound"]},
- {'category': 'C/C++', 'severity': Severity.TIDY,
+ {'category': 'C/C++', 'severity': Severity.ANALYZER,
'description': 'clang-analyzer Out of bound memory access',
'patterns': [r".*: warning: Out of bound memory access .*ArrayBoundV2"]},
- {'category': 'C/C++', 'severity': Severity.TIDY,
+ {'category': 'C/C++', 'severity': Severity.ANALYZER,
'description': 'clang-analyzer Possible lock order reversal',
'patterns': [r".*: warning: .* Possible lock order reversal.*PthreadLock"]},
- {'category': 'C/C++', 'severity': Severity.TIDY,
+ {'category': 'C/C++', 'severity': Severity.ANALYZER,
'description': 'clang-analyzer Argument is a pointer to uninitialized value',
'patterns': [r".*: warning: .* argument is a pointer to uninitialized value .*CallAndMessage"]},
- {'category': 'C/C++', 'severity': Severity.TIDY,
+ {'category': 'C/C++', 'severity': Severity.ANALYZER,
'description': 'clang-analyzer cast to struct',
'patterns': [r".*: warning: Casting a non-structure type to a structure type .*CastToStruct"]},
- {'category': 'C/C++', 'severity': Severity.TIDY,
+ {'category': 'C/C++', 'severity': Severity.ANALYZER,
'description': 'clang-analyzer call path problems',
'patterns': [r".*: warning: Call Path : .+"]},
- {'category': 'C/C++', 'severity': Severity.TIDY,
+ {'category': 'C/C++', 'severity': Severity.ANALYZER,
'description': 'clang-analyzer other',
'patterns': [r".*: .+\[clang-analyzer-.+\]$",
r".*: Call Path : .+$"]},
@@ -1771,6 +1778,7 @@
initialize_arrays()
+android_root = ''
platform_version = 'unknown'
target_product = 'unknown'
target_variant = 'unknown'
@@ -2015,6 +2023,53 @@
i['compiled_patterns'].append(re.compile(pat))
+def find_android_root(path):
+ """Set and return android_root path if it is found."""
+ global android_root
+ parts = path.split('/')
+ for idx in reversed(range(2, len(parts))):
+ root_path = '/'.join(parts[:idx])
+ # Android root directory should contain this script.
+ if os.path.exists(root_path + '/build/tools/warn.py'):
+ android_root = root_path
+ return root_path
+ return ''
+
+
+def remove_android_root_prefix(path):
+ """Remove android_root prefix from path if it is found."""
+ if path.startswith(android_root):
+ return path[1 + len(android_root):]
+ else:
+ return path
+
+
+def normalize_path(path):
+ """Normalize file path relative to android_root."""
+ # If path is not an absolute path, just normalize it.
+ path = os.path.normpath(path)
+ if path[0] != '/':
+ return path
+ # Remove known prefix of root path and normalize the suffix.
+ if android_root or find_android_root(path):
+ return remove_android_root_prefix(path)
+ else:
+ return path
+
+
+def normalize_warning_line(line):
+ """Normalize file path relative to android_root in a warning line."""
+ # replace fancy quotes with plain ol' quotes
+ line = line.replace('‘', "'")
+ line = line.replace('’', "'")
+ line = line.strip()
+ first_column = line.find(':')
+ if first_column > 0:
+ return normalize_path(line[:first_column]) + line[first_column:]
+ else:
+ return line
+
+
def parse_input_file():
"""Parse input file, match warning lines."""
global platform_version
@@ -2023,16 +2078,15 @@
infile = open(args.buildlog, 'r')
line_counter = 0
- warning_pattern = re.compile('.* warning:.*')
+ # handle only warning messages with a file path
+ warning_pattern = re.compile('^[^ ]*/[^ ]*: warning: .*')
compile_patterns()
# read the log file and classify all the warnings
warning_lines = set()
for line in infile:
- # replace fancy quotes with plain ol' quotes
- line = line.replace('‘', "'")
- line = line.replace('’', "'")
if warning_pattern.match(line):
+ line = normalize_warning_line(line)
if line not in warning_lines:
classify_warning(line)
warning_lines.add(line)
@@ -2050,9 +2104,9 @@
target_variant = m.group(0)
-# Return s with escaped quotation characters.
+# Return s with escaped backslash and quotation characters.
def escape_string(s):
- return s.replace('"', '\\"')
+ return s.replace('\\', '\\\\').replace('"', '\\"')
# Return s without trailing '\n' and escape the quotation characters.
diff --git a/tools/zipalign/ZipEntry.cpp b/tools/zipalign/ZipEntry.cpp
index 2f33e23..a9c2d33 100644
--- a/tools/zipalign/ZipEntry.cpp
+++ b/tools/zipalign/ZipEntry.cpp
@@ -130,6 +130,7 @@
if (mCDE.mFileCommentLength > 0) {
/* TODO: stop assuming null-terminated ASCII here? */
mCDE.mFileComment = new uint8_t[mCDE.mFileCommentLength+1];
+ assert(comment != NULL);
strcpy((char*) mCDE.mFileComment, comment);
}
diff --git a/tools/zipalign/ZipFile.cpp b/tools/zipalign/ZipFile.cpp
index 4edf0aa..98d02e0 100644
--- a/tools/zipalign/ZipFile.cpp
+++ b/tools/zipalign/ZipFile.cpp
@@ -919,6 +919,7 @@
getSize = fread(inBuf, 1, kBufSize, srcFp);
if (ferror(srcFp)) {
ALOGD("deflate read failed (errno=%d)\n", errno);
+ result = UNKNOWN_ERROR;
delete[] inBuf;
goto bail;
}
@@ -937,6 +938,7 @@
ALOGV("+++ writing %d bytes\n", (int)outSize);
if (fwrite(outBuf, 1, outSize, dstFp) != outSize) {
ALOGD("write %d failed in deflate\n", (int)outSize);
+ result = UNKNOWN_ERROR;
goto bail;
}