Merge "Add TTS language files to the full build." into gingerbread
diff --git a/CleanSpec.mk b/CleanSpec.mk
index 5ec2630..2663780 100644
--- a/CleanSpec.mk
+++ b/CleanSpec.mk
@@ -49,6 +49,8 @@
 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libstagefright_omx_intermediates)
 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/vendor)
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/android-info.txt)
+$(call add-clean-step, find $(PRODUCT_OUT) -name "*.apk" | xargs rm)
 
 # NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST
 # ************************************************
diff --git a/core/combo/select.mk b/core/combo/select.mk
index 916320b..797c573 100644
--- a/core/combo/select.mk
+++ b/core/combo/select.mk
@@ -50,7 +50,7 @@
 $(combo_target)GLOBAL_LDFLAGS :=
 $(combo_target)GLOBAL_ARFLAGS := crsP
 
-$(combo_target)EXECUTABLE_SUFFIX := 
+$(combo_target)EXECUTABLE_SUFFIX :=
 $(combo_target)SHLIB_SUFFIX := .so
 $(combo_target)JNILIB_SUFFIX := $($(combo_target)SHLIB_SUFFIX)
 $(combo_target)STATIC_LIB_SUFFIX := .a
@@ -62,7 +62,12 @@
 
 ifneq ($(USE_CCACHE),)
   ccache := prebuilt/$(HOST_PREBUILT_TAG)/ccache/ccache
-  $(combo_target)CC := $(ccache) $($(combo_target)CC)
-  $(combo_target)CXX := $(ccache) $($(combo_target)CXX)
+  # prepend ccache if necessary
+  ifneq ($(ccache),$(firstword $($(combo_target)CC)))
+    $(combo_target)CC := $(ccache) $($(combo_target)CC)
+  endif
+  ifneq ($(ccache),$(firstword $($(combo_target)CXX)))
+    $(combo_target)CXX := $(ccache) $($(combo_target)CXX)
+  endif
   ccache =
 endif
diff --git a/core/definitions.mk b/core/definitions.mk
index 6f7d2a3..6232668 100644
--- a/core/definitions.mk
+++ b/core/definitions.mk
@@ -1367,6 +1367,7 @@
     $(addprefix -I , $(PRIVATE_AAPT_INCLUDES)) \
     $(addprefix --min-sdk-version , $(DEFAULT_APP_TARGET_SDK)) \
     $(addprefix --target-sdk-version , $(DEFAULT_APP_TARGET_SDK)) \
+    $(addprefix --product , $(TARGET_AAPT_CHARACTERISTICS)) \
     $(if $(filter --version-code,$(PRIVATE_AAPT_FLAGS)),,$(addprefix --version-code , $(PLATFORM_SDK_VERSION))) \
     $(if $(filter --version-name,$(PRIVATE_AAPT_FLAGS)),,$(addprefix --version-name , $(PLATFORM_VERSION))) \
     $(addprefix --rename-manifest-package , $(PRIVATE_MANIFEST_PACKAGE_NAME)) \
diff --git a/core/multi_prebuilt.mk b/core/multi_prebuilt.mk
index 738a88d..7602673 100644
--- a/core/multi_prebuilt.mk
+++ b/core/multi_prebuilt.mk
@@ -21,6 +21,7 @@
 prebuilt_java_libraries := $(LOCAL_PREBUILT_JAVA_LIBRARIES)
 prebuilt_static_java_libraries := $(LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES)
 prebuilt_is_host := $(LOCAL_IS_HOST_MODULE)
+prebuilt_module_tags := $(LOCAL_MODULE_TAGS)
 
 
 ifndef multi_prebuilt_once
@@ -29,9 +30,10 @@
 # $(1): file list
 # $(2): IS_HOST_MODULE
 # $(3): MODULE_CLASS
-# $(4): OVERRIDE_BUILT_MODULE_PATH
-# $(5): UNINSTALLABLE_MODULE
-# $(6): BUILT_MODULE_STEM
+# $(4): MODULE_TAGS
+# $(5): OVERRIDE_BUILT_MODULE_PATH
+# $(6): UNINSTALLABLE_MODULE
+# $(7): BUILT_MODULE_STEM
 #
 # Elements in the file list may be bare filenames,
 # or of the form "<modulename>:<filename>".
@@ -45,8 +47,9 @@
   $(eval include $(CLEAR_VARS)) \
   $(eval LOCAL_IS_HOST_MODULE := $(2)) \
   $(eval LOCAL_MODULE_CLASS := $(3)) \
-  $(eval OVERRIDE_BUILT_MODULE_PATH := $(4)) \
-  $(eval LOCAL_UNINSTALLABLE_MODULE := $(5)) \
+  $(eval LOCAL_MODULE_TAGS := $(4)) \
+  $(eval OVERRIDE_BUILT_MODULE_PATH := $(5)) \
+  $(eval LOCAL_UNINSTALLABLE_MODULE := $(6)) \
   $(eval tw := $(subst :, ,$(strip $(t)))) \
   $(if $(word 3,$(tw)),$(error $(LOCAL_PATH): Bad prebuilt filename '$(t)')) \
   $(if $(word 2,$(tw)), \
@@ -56,8 +59,8 @@
     $(eval LOCAL_MODULE := $(basename $(notdir $(t)))) \
     $(eval LOCAL_SRC_FILES := $(t)) \
    ) \
-  $(if $(6), \
-    $(eval LOCAL_BUILT_MODULE_STEM := $(6)) \
+  $(if $(7), \
+    $(eval LOCAL_BUILT_MODULE_STEM := $(7)) \
    , \
     $(eval LOCAL_BUILT_MODULE_STEM := $(notdir $(LOCAL_SRC_FILES))) \
    ) \
@@ -73,6 +76,7 @@
     $(prebuilt_static_libs), \
     $(prebuilt_is_host), \
     STATIC_LIBRARIES, \
+    $(prebuilt_module_tags), \
     , \
     true)
 
@@ -80,17 +84,20 @@
     $(prebuilt_shared_libs), \
     $(prebuilt_is_host), \
     SHARED_LIBRARIES, \
+    $(prebuilt_module_tags), \
     $($(if $(prebuilt_is_host),HOST,TARGET)_OUT_INTERMEDIATE_LIBRARIES))
 
 $(call auto-prebuilt-boilerplate, \
     $(prebuilt_executables), \
     $(prebuilt_is_host), \
-    EXECUTABLES)
+    EXECUTABLES, \
+    $(prebuilt_module_tags))
 
 $(call auto-prebuilt-boilerplate, \
     $(prebuilt_java_libraries), \
     $(prebuilt_is_host), \
     JAVA_LIBRARIES, \
+    $(prebuilt_module_tags), \
     , \
     , \
     javalib.jar)
@@ -99,6 +106,7 @@
     $(prebuilt_static_java_libraries), \
     $(prebuilt_is_host), \
     JAVA_LIBRARIES, \
+    $(prebuilt_module_tags), \
     , \
     true, \
     javalib.jar)
@@ -109,3 +117,4 @@
 prebuilt_java_libraries :=
 prebuilt_static_java_libraries :=
 prebuilt_is_host :=
+prebuilt_module_tags :=
diff --git a/core/product.mk b/core/product.mk
index 7594f6f..4a0ee01 100644
--- a/core/product.mk
+++ b/core/product.mk
@@ -68,6 +68,7 @@
     PRODUCT_MANUFACTURER \
     PRODUCT_BRAND \
     PRODUCT_PROPERTY_OVERRIDES \
+    PRODUCT_CHARACTERISTICS \
     PRODUCT_COPY_FILES \
     PRODUCT_OTA_PUBLIC_KEYS \
     PRODUCT_PACKAGE_OVERLAYS \
diff --git a/core/product_config.mk b/core/product_config.mk
index 4824245..70ac894 100644
--- a/core/product_config.mk
+++ b/core/product_config.mk
@@ -253,6 +253,12 @@
   PRODUCT_MANUFACTURER := unknown
 endif
 
+ifeq ($(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_CHARACTERISTICS),)
+  TARGET_AAPT_CHARACTERISTICS := default
+else
+  TARGET_AAPT_CHARACTERISTICS := $(strip $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_CHARACTERISTICS))
+endif
+
 PRODUCT_DEFAULT_WIFI_CHANNELS := \
 	$(strip $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_DEFAULT_WIFI_CHANNELS))