Merge "Revert "Added webrtc audio processing library""
diff --git a/core/Makefile b/core/Makefile
index 237245b..87b91bd 100644
--- a/core/Makefile
+++ b/core/Makefile
@@ -16,17 +16,16 @@
# e.g., "system/etc/file.xml".
# The filter part means "only eval the copy-one-file rule if this
# src:dest pair is the first one to match the same dest"
-unique_product_copy_files_destinations := $(sort \
- $(foreach cf,$(PRODUCT_COPY_FILES), $(call word-colon,2,$(cf))))
+unique_product_copy_files_destinations :=
$(foreach cf,$(PRODUCT_COPY_FILES), \
$(eval _src := $(call word-colon,1,$(cf))) \
$(eval _dest := $(call word-colon,2,$(cf))) \
- $(if $(filter $(unique_product_copy_files_destinations),$(_dest)), \
+ $(if $(filter $(unique_product_copy_files_destinations),$(_dest)),, \
$(eval _fulldest := $(call append-path,$(PRODUCT_OUT),$(_dest))) \
$(eval $(call copy-one-file,$(_src),$(_fulldest))) \
$(eval ALL_DEFAULT_INSTALLED_MODULES += $(_fulldest)) \
- $(eval unique_product_copy_files_destinations := $(filter-out $(_dest), \
- $(unique_product_copy_files_destinations)))))
+ $(eval unique_product_copy_files_destinations += $(_dest))))
+unique_product_copy_files_destinations :=
# -----------------------------------------------------------------
# docs/index.html
@@ -41,9 +40,11 @@
INSTALLED_DEFAULT_PROP_TARGET := $(TARGET_ROOT_OUT)/default.prop
ALL_DEFAULT_INSTALLED_MODULES += $(INSTALLED_DEFAULT_PROP_TARGET)
ADDITIONAL_DEFAULT_PROPERTIES := \
- $(call collapse-pairs, $(ADDITIONAL_DEFAULT_PROPERTIES))
+ $(call collapse-pairs, $(ADDITIONAL_DEFAULT_PROPERTIES))
ADDITIONAL_DEFAULT_PROPERTIES += \
- $(call collapse-pairs, $(PRODUCT_DEFAULT_PROPERTY_OVERRIDES))
+ $(call collapse-pairs, $(PRODUCT_DEFAULT_PROPERTY_OVERRIDES))
+ADDITIONAL_DEFAULT_PROPERTIES := $(call uniq-pairs-by-first-component, \
+ $(ADDITIONAL_DEFAULT_PROPERTIES),=)
$(INSTALLED_DEFAULT_PROP_TARGET):
@echo Target buildinfo: $@
@@ -60,7 +61,9 @@
INSTALLED_BUILD_PROP_TARGET := $(TARGET_OUT)/build.prop
ALL_DEFAULT_INSTALLED_MODULES += $(INSTALLED_BUILD_PROP_TARGET)
ADDITIONAL_BUILD_PROPERTIES := \
- $(call collapse-pairs, $(ADDITIONAL_BUILD_PROPERTIES))
+ $(call collapse-pairs, $(ADDITIONAL_BUILD_PROPERTIES))
+ADDITIONAL_BUILD_PROPERTIES := $(call uniq-pairs-by-first-component, \
+ $(ADDITIONAL_BUILD_PROPERTIES),=)
# A list of arbitrary tags describing the build configuration.
# Force ":=" so we can use +=
@@ -1362,6 +1365,14 @@
$(atree_dir)/sdk-$(HOST_OS)-$(HOST_ARCH).atree \
$(sdk_tools_atree_files)
+# development/build/sdk-android-<abi>.atree is used to differentiate
+# between architecture models (e.g. ARMv5TE versus ARMv7) when copying
+# files like the kernel image. We use TARGET_CPU_ABI because we don't
+# have a better way to distinguish between CPU models.
+ifneq (,$(strip $(wildcard $(atree_dir)/sdk-android-$(TARGET_CPU_ABI).atree)))
+ sdk_atree_files += $(atree_dir)/sdk-android-$(TARGET_CPU_ABI).atree
+endif
+
deps := \
$(target_notice_file_txt) \
$(tools_notice_file_txt) \
@@ -1422,9 +1433,9 @@
$(PRIVATE_DIR)/platforms/android-$(PLATFORM_VERSION)/images/$(TARGET_CPU_ABI)/NOTICE.txt && \
cp -f $(tools_notice_file_txt) $(PRIVATE_DIR)/tools/NOTICE.txt && \
cp -f $(tools_notice_file_txt) $(PRIVATE_DIR)/platform-tools/NOTICE.txt && \
- if [ -f $(PRIVATE_DIR)/platform-tools/llvm-rs-cc ]; then \
- $(HOST_STRIP_SDK_LLVM) $(PRIVATE_DIR)/platform-tools/llvm-rs-cc; \
- fi && \
+ for f in $(PRIVATE_DIR)/platform-tools/llvm-rs-cc-* ; do \
+ if [ -f "$$f" ]; then $(HOST_STRIP_SDK_LLVM) "$$f"; fi; \
+ done && \
HOST_OUT_EXECUTABLES=$(HOST_OUT_EXECUTABLES) HOST_OS=$(HOST_OS) \
development/build/tools/sdk_clean.sh $(PRIVATE_DIR) && \
chmod -R ug+rwX $(PRIVATE_DIR) && \
diff --git a/core/combo/TARGET_linux-arm.mk b/core/combo/TARGET_linux-arm.mk
index 6db0795..9748187 100644
--- a/core/combo/TARGET_linux-arm.mk
+++ b/core/combo/TARGET_linux-arm.mk
@@ -47,13 +47,22 @@
prebuilt/$(HOST_PREBUILT_TAG)/toolchain/arm-linux-androideabi-4.4.x/bin/arm-linux-androideabi-
endif
-TARGET_CC := $(TARGET_TOOLS_PREFIX)gcc$(HOST_EXECUTABLE_SUFFIX)
-TARGET_CXX := $(TARGET_TOOLS_PREFIX)g++$(HOST_EXECUTABLE_SUFFIX)
-TARGET_AR := $(TARGET_TOOLS_PREFIX)ar$(HOST_EXECUTABLE_SUFFIX)
-TARGET_OBJCOPY := $(TARGET_TOOLS_PREFIX)objcopy$(HOST_EXECUTABLE_SUFFIX)
-TARGET_LD := $(TARGET_TOOLS_PREFIX)ld$(HOST_EXECUTABLE_SUFFIX)
-TARGET_STRIP := $(TARGET_TOOLS_PREFIX)strip$(HOST_EXECUTABLE_SUFFIX)
-TARGET_STRIP_COMMAND = $(TARGET_STRIP) --strip-all $< -o $@
+# Only define these if there's actually a gcc in there.
+# The gcc toolchain does not exists for windows/cygwin. In this case, do not reference it.
+ifneq ($(wildcard $(TARGET_TOOLS_PREFIX)gcc$(HOST_EXECUTABLE_SUFFIX)),)
+ TARGET_CC := $(TARGET_TOOLS_PREFIX)gcc$(HOST_EXECUTABLE_SUFFIX)
+ TARGET_CXX := $(TARGET_TOOLS_PREFIX)g++$(HOST_EXECUTABLE_SUFFIX)
+ TARGET_AR := $(TARGET_TOOLS_PREFIX)ar$(HOST_EXECUTABLE_SUFFIX)
+ TARGET_OBJCOPY := $(TARGET_TOOLS_PREFIX)objcopy$(HOST_EXECUTABLE_SUFFIX)
+ TARGET_LD := $(TARGET_TOOLS_PREFIX)ld$(HOST_EXECUTABLE_SUFFIX)
+ TARGET_STRIP := $(TARGET_TOOLS_PREFIX)strip$(HOST_EXECUTABLE_SUFFIX)
+ ifeq ($(TARGET_BUILD_VARIANT),user)
+ TARGET_STRIP_COMMAND = $(TARGET_STRIP) --strip-all $< -o $@
+ else
+ TARGET_STRIP_COMMAND = $(TARGET_STRIP) --strip-all $< -o $@ && \
+ $(TARGET_OBJCOPY) --add-gnu-debuglink=$< $@
+ endif
+endif
TARGET_NO_UNDEFINED_LDFLAGS := -Wl,--no-undefined
diff --git a/core/combo/TARGET_linux-sh.mk b/core/combo/TARGET_linux-sh.mk
index f54a49e..b8e00dd 100644
--- a/core/combo/TARGET_linux-sh.mk
+++ b/core/combo/TARGET_linux-sh.mk
@@ -29,7 +29,13 @@
TARGET_OBJCOPY := $(TARGET_TOOLS_PREFIX)objcopy$(HOST_EXECUTABLE_SUFFIX)
TARGET_LD := $(TARGET_TOOLS_PREFIX)ld$(HOST_EXECUTABLE_SUFFIX)
TARGET_STRIP := $(TARGET_TOOLS_PREFIX)strip$(HOST_EXECUTABLE_SUFFIX)
+
+ifeq ($(TARGET_BUILD_VARIANT),user)
TARGET_STRIP_COMMAND = $(TARGET_STRIP) --strip-debug $< -o $@
+else
+TARGET_STRIP_COMMAND = $(TARGET_STRIP) --strip-debug $< -o $@ && \
+ $(TARGET_OBJCOPY) --add-gnu-debuglink=$< $@
+endif
TARGET_NO_UNDEFINED_LDFLAGS := -Wl,--no-undefined
diff --git a/core/combo/TARGET_linux-x86.mk b/core/combo/TARGET_linux-x86.mk
index d8056e3..5a90951 100644
--- a/core/combo/TARGET_linux-x86.mk
+++ b/core/combo/TARGET_linux-x86.mk
@@ -47,7 +47,13 @@
TARGET_OBJCOPY := $(TARGET_TOOLS_PREFIX)objcopy$(HOST_EXECUTABLE_SUFFIX)
TARGET_LD := $(TARGET_TOOLS_PREFIX)ld$(HOST_EXECUTABLE_SUFFIX)
TARGET_STRIP := $(TARGET_TOOLS_PREFIX)strip$(HOST_EXECUTABLE_SUFFIX)
+
+ifeq ($(TARGET_BUILD_VARIANT),user)
TARGET_STRIP_COMMAND = $(TARGET_STRIP) --strip-debug $< -o $@
+else
+TARGET_STRIP_COMMAND = $(TARGET_STRIP) --strip-debug $< -o $@ && \
+ $(TARGET_OBJCOPY) --add-gnu-debuglink=$< $@
+endif
ifneq ($(wildcard $(TARGET_CC)),)
TARGET_LIBGCC := \
diff --git a/core/config.mk b/core/config.mk
index 82238e9..3a25825 100644
--- a/core/config.mk
+++ b/core/config.mk
@@ -102,6 +102,11 @@
# list of flags to turn specific warnings in to errors
TARGET_ERROR_FLAGS := -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point
+# Temporarily turn off Wunsed-but-set-variables warning in gcc-4.6
+# since this warning becomes an error in dalvik, core and renderscript.
+# This is ignored by gcc-4.4.x.
+TARGET_ERROR_FLAGS += -Wno-unused-but-set-variable
+
# TODO: do symbol compression
TARGET_COMPRESS_MODULE_SYMBOLS := false
diff --git a/core/definitions.mk b/core/definitions.mk
index 9251017..4c499ad 100644
--- a/core/definitions.mk
+++ b/core/definitions.mk
@@ -600,6 +600,21 @@
endef
###########################################################
+## Given a list of pairs, if multiple pairs have the same
+## first components, keep only the first pair.
+##
+## $(1): list of pairs
+## $(2): the separator word, such as ":", "=", etc.
+define uniq-pairs-by-first-component
+$(eval _upbfc_fc_set :=)\
+$(strip $(foreach w,$(1), $(eval _first := $(word 1,$(subst $(2),$(space),$(w))))\
+ $(if $(filter $(_upbfc_fc_set),$(_first)),,$(w)\
+ $(eval _upbfc_fc_set += $(_first)))))\
+$(eval _upbfc_fc_set :=)\
+$(eval _first:=)
+endef
+
+###########################################################
## MODULE_TAG set operations
###########################################################
diff --git a/core/dumpvar.mk b/core/dumpvar.mk
index c94d943..831ed97 100644
--- a/core/dumpvar.mk
+++ b/core/dumpvar.mk
@@ -8,8 +8,11 @@
ifeq ($(TARGET_SIMULATOR),true)
ABP:=$(ABP):$(TARGET_OUT_EXECUTABLES)
else
- # this should be copied to HOST_OUT_EXECUTABLES instead
- ABP:=$(ABP):$(PWD)/prebuilt/$(HOST_PREBUILT_TAG)/toolchain/arm-linux-androideabi-4.4.x/bin
+ # Add the toolchain bin dir if it actually exists
+ ifneq ($(wildcard $(PWD)/prebuilt/$(HOST_PREBUILT_TAG)/toolchain/arm-linux-androideabi-4.4.x/bin),)
+ # this should be copied to HOST_OUT_EXECUTABLES instead
+ ABP:=$(ABP):$(PWD)/prebuilt/$(HOST_PREBUILT_TAG)/toolchain/arm-linux-androideabi-4.4.x/bin
+ endif
endif
ANDROID_BUILD_PATHS := $(ABP)
ANDROID_PREBUILTS := prebuilt/$(HOST_PREBUILT_TAG)
diff --git a/core/envsetup.mk b/core/envsetup.mk
index 800a9bf..b02d8c6 100644
--- a/core/envsetup.mk
+++ b/core/envsetup.mk
@@ -36,18 +36,6 @@
TARGET_BUILD_VARIANT := eng
endif
-# Read the product specs so we an get TARGET_DEVICE and other
-# variables that we need in order to locate the output files.
-include $(BUILD_SYSTEM)/product_config.mk
-
-build_variant := $(filter-out eng user userdebug tests,$(TARGET_BUILD_VARIANT))
-ifneq ($(build_variant)-$(words $(TARGET_BUILD_VARIANT)),-1)
-$(warning bad TARGET_BUILD_VARIANT: $(TARGET_BUILD_VARIANT))
-$(error must be empty or one of: eng user userdebug tests)
-endif
-
-
-
# ---------------------------------------------------------------
# Set up configuration for host machine. We don't do cross-
# compiles except for arm, so the HOST is whatever we are
@@ -119,17 +107,15 @@
HOST_PREBUILT_TAG := $(HOST_OS)-$(HOST_ARCH)
endif
-# Default to building dalvikvm on hosts that support it...
-ifeq ($(HOST_OS),linux)
-# ... but not if we're building the sim...
-ifneq ($(TARGET_SIMULATOR),true)
-# ... or if the if the option is already set
-ifeq ($(WITH_HOST_DALVIK),)
- WITH_HOST_DALVIK := true
-endif
-endif
-endif
+# Read the product specs so we an get TARGET_DEVICE and other
+# variables that we need in order to locate the output files.
+include $(BUILD_SYSTEM)/product_config.mk
+build_variant := $(filter-out eng user userdebug tests,$(TARGET_BUILD_VARIANT))
+ifneq ($(build_variant)-$(words $(TARGET_BUILD_VARIANT)),-1)
+$(warning bad TARGET_BUILD_VARIANT: $(TARGET_BUILD_VARIANT))
+$(error must be empty or one of: eng user userdebug tests)
+endif
# ---------------------------------------------------------------
# Set up configuration for target machine.
diff --git a/core/host_native_test.mk b/core/host_native_test.mk
index 2a77f1e..a5d87e4 100644
--- a/core/host_native_test.mk
+++ b/core/host_native_test.mk
@@ -5,10 +5,9 @@
LOCAL_CFLAGS += -DGTEST_OS_LINUX -DGTEST_HAS_STD_STRING -O0 -g
LOCAL_C_INCLUDES += \
- bionic/libstdc++/include \
- external/gtest/include \
- external/astl/include
-LOCAL_STATIC_LIBRARIES += libgtest_host libgtest_main_host libastl_host
+ external/gtest/include
+
+LOCAL_STATIC_LIBRARIES += libgtest_host libgtest_main_host
LOCAL_SHARED_LIBRARIES +=
include $(BUILD_HOST_EXECUTABLE)
diff --git a/core/main.mk b/core/main.mk
index f918dfd..959cd83 100644
--- a/core/main.mk
+++ b/core/main.mk
@@ -12,6 +12,13 @@
# this turns off the suffix rules built into make
.SUFFIXES:
+# this turns off the RCS / SCCS implicit rules of GNU Make
+% : RCS/%,v
+% : RCS/%
+% : %,v
+% : s.%
+% : SCCS/s.%
+
# If a rule fails, delete $@.
.DELETE_ON_ERROR:
@@ -249,12 +256,12 @@
ifeq (true,$(strip $(enable_target_debugging)))
# Target is more debuggable and adbd is on by default
- ADDITIONAL_DEFAULT_PROPERTIES += ro.debuggable=1 persist.service.adb.enable=1
+ ADDITIONAL_DEFAULT_PROPERTIES += ro.debuggable=1
# Include the debugging/testing OTA keys in this build.
INCLUDE_TEST_OTA_KEYS := true
else # !enable_target_debugging
# Target is less debuggable and adbd is off by default
- ADDITIONAL_DEFAULT_PROPERTIES += ro.debuggable=0 persist.service.adb.enable=0
+ ADDITIONAL_DEFAULT_PROPERTIES += ro.debuggable=0
endif # !enable_target_debugging
## eng ##
@@ -448,7 +455,7 @@
else # !SDK_ONLY
ifeq ($(BUILD_TINY_ANDROID), true)
-# TINY_ANDROID is a super-minimal build configuration, handy for board
+# TINY_ANDROID is a super-minimal build configuration, handy for board
# bringup and very low level debugging
subdirs := \
diff --git a/core/pathmap.mk b/core/pathmap.mk
index 78dee49..6c6ff2e 100644
--- a/core/pathmap.mk
+++ b/core/pathmap.mk
@@ -88,7 +88,6 @@
sax \
telephony \
wifi \
- vpn \
keystore \
icu4j \
voip \
diff --git a/core/prebuilt.mk b/core/prebuilt.mk
index 8f9eafb..07ecf64 100644
--- a/core/prebuilt.mk
+++ b/core/prebuilt.mk
@@ -26,7 +26,22 @@
endif
endif
-include $(BUILD_SYSTEM)/base_rules.mk
+ifeq ($(LOCAL_STRIP_MODULE),true)
+ ifdef LOCAL_IS_HOST_MODULE
+ $(error Cannot strip host module LOCAL_PATH=$(LOCAL_PATH))
+ endif
+ ifeq ($(filter SHARED_LIBRARIES EXECUTABLES,$(LOCAL_MODULE_CLASS)),)
+ $(error Can strip only shared libraries or executables LOCAL_PATH=$(LOCAL_PATH))
+ endif
+ ifneq ($(LOCAL_PREBUILT_STRIP_COMMENTS),)
+ $(error Cannot strip scripts LOCAL_PATH=$(LOCAL_PATH))
+ endif
+ include $(BUILD_SYSTEM)/dynamic_binary.mk
+ built_module := $(linked_module)
+else
+ include $(BUILD_SYSTEM)/base_rules.mk
+ built_module := $(LOCAL_BUILT_MODULE)
+endif
# Deal with the OSX library timestamp issue when installing
# a prebuilt simulator library.
@@ -42,24 +57,24 @@
ifneq ($(filter APPS,$(LOCAL_MODULE_CLASS)),)
ifeq ($(LOCAL_DEX_PREOPT),true)
# Make sure the boot jars get dexpreopt-ed first
-$(LOCAL_BUILT_MODULE): $(DEXPREOPT_BOOT_ODEXS) | $(DEXPREOPT) $(DEXOPT) $(AAPT)
+$(built_module): $(DEXPREOPT_BOOT_ODEXS) | $(DEXPREOPT) $(DEXOPT) $(AAPT)
endif
-$(LOCAL_BUILT_MODULE) : $(LOCAL_PATH)/$(LOCAL_SRC_FILES) | $(ZIPALIGN)
+$(built_module) : $(LOCAL_PATH)/$(LOCAL_SRC_FILES) | $(ZIPALIGN)
$(transform-prebuilt-to-target-with-zipalign)
ifeq ($(LOCAL_DEX_PREOPT),true)
$(hide) rm -f $(patsubst %.apk,%.odex,$@)
$(call dexpreopt-one-file,$@,$(patsubst %.apk,%.odex,$@))
$(call dexpreopt-remove-classes.dex,$@)
-built_odex := $(basename $(LOCAL_BUILT_MODULE)).odex
-$(built_odex): $(LOCAL_BUILT_MODULE)
+built_odex := $(basename $(built_module)).odex
+$(built_odex): $(built_module)
endif
else
ifneq ($(LOCAL_PREBUILT_STRIP_COMMENTS),)
-$(LOCAL_BUILT_MODULE) : $(LOCAL_PATH)/$(LOCAL_SRC_FILES)
+$(built_module) : $(LOCAL_PATH)/$(LOCAL_SRC_FILES)
$(transform-prebuilt-to-target-strip-comments)
else
-$(LOCAL_BUILT_MODULE) : $(LOCAL_PATH)/$(LOCAL_SRC_FILES) | $(ACP)
+$(built_module) : $(LOCAL_PATH)/$(LOCAL_SRC_FILES) | $(ACP)
$(transform-prebuilt-to-target)
endif
endif
@@ -79,7 +94,7 @@
$(transform-prebuilt-to-target)
# make sure the classes.jar and javalib.jar are built before $(LOCAL_BUILT_MODULE)
-$(LOCAL_BUILT_MODULE) : $(common_javalib_jar)
+$(built_module) : $(common_javalib_jar)
endif # TARGET JAVA_LIBRARIES
ifeq ($(LOCAL_CERTIFICATE),EXTERNAL)
diff --git a/core/product_config.mk b/core/product_config.mk
index 6dc8221..d766ba7 100644
--- a/core/product_config.mk
+++ b/core/product_config.mk
@@ -164,6 +164,27 @@
endif # unbundled_goals
# ---------------------------------------------------------------
+# Simulator overrides
+ifeq ($(TARGET_PRODUCT),sim)
+ # Tell the build system to turn on some special cases
+ # to deal with the simulator product.
+ TARGET_SIMULATOR := true
+ # dexpreopt doesn't work when building the simulator
+ DISABLE_DEXPREOPT := true
+endif
+
+# Default to building dalvikvm on hosts that support it...
+ifeq ($(HOST_OS),linux)
+# ... but not if we're building the sim...
+ifneq ($(TARGET_SIMULATOR),true)
+# ... or if the if the option is already set
+ifeq ($(WITH_HOST_DALVIK),)
+ WITH_HOST_DALVIK := true
+endif
+endif
+endif
+
+# ---------------------------------------------------------------
# Include the product definitions.
# We need to do this to translate TARGET_PRODUCT into its
# underlying TARGET_DEVICE before we start defining any rules.
@@ -303,14 +324,3 @@
PRODUCT_EXTRA_RECOVERY_KEYS := $(sort \
$(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_EXTRA_RECOVERY_KEYS))
-
-
-# ---------------------------------------------------------------
-# Simulator overrides
-ifeq ($(TARGET_PRODUCT),sim)
- # Tell the build system to turn on some special cases
- # to deal with the simulator product.
- TARGET_SIMULATOR := true
- # dexpreopt doesn't work when building the simulator
- DISABLE_DEXPREOPT := true
-endif
diff --git a/envsetup.sh b/envsetup.sh
index 8b36bba..a9417b8 100644
--- a/envsetup.sh
+++ b/envsetup.sh
@@ -95,11 +95,14 @@
# #
##################################################################
+ # Note: on windows/cygwin, ANDROID_BUILD_PATHS will contain spaces
+ # due to "C:\Program Files" being in the path.
+
# out with the old
- if [ -n $ANDROID_BUILD_PATHS ] ; then
+ if [ -n "$ANDROID_BUILD_PATHS" ] ; then
export PATH=${PATH/$ANDROID_BUILD_PATHS/}
fi
- if [ -n $ANDROID_PRE_BUILD_PATHS ] ; then
+ if [ -n "$ANDROID_PRE_BUILD_PATHS" ] ; then
export PATH=${PATH/$ANDROID_PRE_BUILD_PATHS/}
# strip trailing ':', if any
export PATH=${PATH/%:/}
@@ -108,20 +111,31 @@
# and in with the new
CODE_REVIEWS=
prebuiltdir=$(getprebuilt)
- export ANDROID_EABI_TOOLCHAIN=$prebuiltdir/toolchain/arm-linux-androideabi-4.4.x/bin
- export ARM_EABI_TOOLCHAIN=$prebuiltdir/toolchain/arm-eabi-4.4.3/bin
+
+ # The gcc toolchain does not exists for windows/cygwin. In this case, do not reference it.
+ export ANDROID_EABI_TOOLCHAIN=
+ toolchaindir=toolchain/arm-linux-androideabi-4.4.x/bin
+ if [ -d "$prebuiltdir/$toolchaindir" ]; then
+ export ANDROID_EABI_TOOLCHAIN=$prebuiltdir/$toolchaindir
+ fi
+
+ export ARM_EABI_TOOLCHAIN=
+ toolchaindir=toolchain/arm-eabi-4.4.3/bin
+ if [ -d "$prebuiltdir/$toolchaindir" ]; then
+ export ARM_EABI_TOOLCHAIN=$prebuiltdir/$toolchaindir
+ fi
+
export ANDROID_TOOLCHAIN=$ANDROID_EABI_TOOLCHAIN
export ANDROID_QTOOLS=$T/development/emulator/qtools
export ANDROID_BUILD_PATHS=:$(get_build_var ANDROID_BUILD_PATHS):$ANDROID_QTOOLS:$ANDROID_TOOLCHAIN:$ARM_EABI_TOOLCHAIN$CODE_REVIEWS
export PATH=$PATH$ANDROID_BUILD_PATHS
unset ANDROID_JAVA_TOOLCHAIN
+ unset ANDROID_PRE_BUILD_PATHS
if [ -n "$JAVA_HOME" ]; then
export ANDROID_JAVA_TOOLCHAIN=$JAVA_HOME/bin
- fi
- export ANDROID_PRE_BUILD_PATHS=$ANDROID_JAVA_TOOLCHAIN
- if [ -n "$ANDROID_PRE_BUILD_PATHS" ]; then
- export PATH=$ANDROID_PRE_BUILD_PATHS:$PATH
+ export ANDROID_PRE_BUILD_PATHS=$ANDROID_JAVA_TOOLCHAIN:
+ export PATH=$ANDROID_PRE_BUILD_PATHS$PATH
fi
unset ANDROID_PRODUCT_OUT
@@ -1109,13 +1123,15 @@
fi
}
-case `ps -o command -p $$` in
- *bash*)
- ;;
- *)
- echo "WARNING: Only bash is supported, use of other shell would lead to erroneous results"
- ;;
-esac
+if [ "x$SHELL" != "x/bin/bash" ]; then
+ case `ps -o command -p $$` in
+ *bash*)
+ ;;
+ *)
+ echo "WARNING: Only bash is supported, use of other shell would lead to erroneous results"
+ ;;
+ esac
+fi
# Execute the contents of any vendorsetup.sh files we can find.
for f in `/bin/ls vendor/*/vendorsetup.sh vendor/*/*/vendorsetup.sh device/*/*/vendorsetup.sh 2> /dev/null`
diff --git a/target/board/generic/BoardConfig.mk b/target/board/generic/BoardConfig.mk
index 2b05f79..d02205b 100644
--- a/target/board/generic/BoardConfig.mk
+++ b/target/board/generic/BoardConfig.mk
@@ -6,7 +6,22 @@
# The generic product target doesn't have any hardware-specific pieces.
TARGET_NO_BOOTLOADER := true
TARGET_NO_KERNEL := true
-TARGET_CPU_ABI := armeabi
+
+# Note: we build the platform images for ARMv7-A _without_ NEON.
+#
+# Technically, the emulator supports ARMv7-A _and_ NEON instructions, but
+# emulated NEON code paths typically ends up 2x slower than the normal C code
+# it is supposed to replace (unlike on real devices where it is 2x to 3x
+# faster).
+#
+# What this means is that the platform image will not use NEON code paths
+# that are slower to emulate. On the other hand, it is possible to emulate
+# application code generated with the NDK that uses NEON in the emulator.
+#
+TARGET_ARCH_VARIANT := armv7-a
+TARGET_CPU_ABI := armeabi-v7a
+TARGET_CPU_ABI2 := armeabi
+
HAVE_HTC_AUDIO_DRIVER := true
BOARD_USES_GENERIC_AUDIO := true
diff --git a/target/product/core.mk b/target/product/core.mk
index 01903c6..caa3e381 100644
--- a/target/product/core.mk
+++ b/target/product/core.mk
@@ -26,6 +26,7 @@
apache-xml \
bouncycastle \
bu \
+ bluetooth-health \
cacerts \
com.android.location.provider \
com.android.location.provider.xml \
@@ -39,6 +40,7 @@
dmtracedump \
dx \
ext \
+ filterfw \
framework-res \
hprof-conv \
icu.dat \
@@ -100,6 +102,7 @@
# host-only dependencies
ifeq ($(WITH_HOST_DALVIK),true)
PRODUCT_PACKAGES += \
+ apache-xml-hostdex \
bouncycastle-hostdex \
core-hostdex \
libjavacore-host \
diff --git a/target/product/full_base.mk b/target/product/full_base.mk
index 8ad812e..a8a32fe 100644
--- a/target/product/full_base.mk
+++ b/target/product/full_base.mk
@@ -25,10 +25,12 @@
libdrmframework_jni \
libfwdlockengine \
OpenWnn \
+ PhotoEditor \
PinyinIME \
libWnnEngDic \
libWnnJpnDic \
libwnndict \
+ VideoEditor \
WAPPushManager
# Additional settings used in all AOSP builds
diff --git a/target/product/languages_full.mk b/target/product/languages_full.mk
index 236dfa2..b18f78f 100644
--- a/target/product/languages_full.mk
+++ b/target/product/languages_full.mk
@@ -21,7 +21,5 @@
# Those are all the locales that have translations and are displayable
# by TextView in this branch.
-PRODUCT_LOCALES := en_US fr_FR it_IT es_ES de_DE nl_NL cs_CZ pl_PL ja_JP zh_TW zh_CN ru_RU ko_KR nb_NO es_US da_DK el_GR tr_TR pt_PT pt_BR rm_CH sv_SE bg_BG ca_ES en_GB fi_FI hr_HR hu_HU in_ID iw_IL lt_LT lv_LV ro_RO sk_SK sl_SI sr_RS uk_UA vi_VN tl_PH
-
-# Not currently usable:
-# ar, fa, th
+PRODUCT_LOCALES := en_US fr_FR it_IT es_ES de_DE nl_NL cs_CZ pl_PL ja_JP zh_TW zh_CN ru_RU ko_KR nb_NO es_US da_DK el_GR tr_TR pt_PT pt_BR rm_CH sv_SE bg_BG ca_ES en_GB fi_FI hr_HR hu_HU in_ID iw_IL lt_LT lv_LV ro_RO sk_SK sl_SI sr_RS uk_UA vi_VN tl_PH ar_EG fa_IR th_TH sw_TZ ms_MY af_ZA zu_ZA
+# We don't have the fonts to display am_ET yet
diff --git a/target/product/sdk.mk b/target/product/sdk.mk
index 92de1b2..7e470b9 100644
--- a/target/product/sdk.mk
+++ b/target/product/sdk.mk
@@ -121,7 +121,8 @@
ninepatch-tests \
common-tests \
sdklib-tests \
- sdkuilib-tests
+ sdkuilib-tests \
+ layoutlib-tests
PRODUCT_PACKAGE_OVERLAYS := development/sdk_overlay
diff --git a/tools/droiddoc/templates-sdk/assets/android-developer-docs.js b/tools/droiddoc/templates-sdk/assets/android-developer-docs.js
index 728e015..e353236 100644
--- a/tools/droiddoc/templates-sdk/assets/android-developer-docs.js
+++ b/tools/droiddoc/templates-sdk/assets/android-developer-docs.js
@@ -255,23 +255,23 @@
if (lastSlashPos == (fullPageName.length - 1)) { // if the url ends in slash (add 'index.html')
fullPageName = fullPageName + "index.html";
}
- // First check if the exact URL, with query string and all, is in the navigation menu
- var pathPageName = fullPageName.substr(firstSlashPos);
+
+ // get the path and page name from the URL (such as 'guide/topics/graphics/index.html')
+ var htmlPos = fullPageName.indexOf(".html");
+ var pathPageName = fullPageName.slice(firstSlashPos, htmlPos + 5); // +5 advances past ".html"
+ // find instances of the page name in the side nav
var link = $("#devdoc-nav a[href$='"+ pathPageName+"']");
- if (link.length == 0) {
- var htmlPos = fullPageName.lastIndexOf(".html", fullPageName.length);
- pathPageName = fullPageName.slice(firstSlashPos, htmlPos + 5); // +5 advances past ".html"
- link = $("#devdoc-nav a[href$='"+ pathPageName+"']");
- if ((link.length == 0) && ((fullPageName.indexOf("/guide/") != -1) || (fullPageName.indexOf("/resources/") != -1))) {
- // if there's no match, then let's backstep through the directory until we find an index.html page
- // that matches our ancestor directories (only for dev guide and resources)
- lastBackstep = pathPageName.lastIndexOf("/");
- while (link.length == 0) {
- backstepDirectory = pathPageName.lastIndexOf("/", lastBackstep);
- link = $("#devdoc-nav a[href$='"+ pathPageName.slice(0, backstepDirectory + 1)+"index.html']");
- lastBackstep = pathPageName.lastIndexOf("/", lastBackstep - 1);
- if (lastBackstep == 0) break;
- }
+ // if there's no match, then let's backstep through the directory until we find an index.html
+ // page that matches our ancestor directories (only for dev guide and resources)
+ if ((link.length == 0) && ((fullPageName.indexOf("/guide/") != -1) ||
+ (fullPageName.indexOf("/resources/") != -1))) {
+ lastBackstep = pathPageName.lastIndexOf("/");
+ while (link.length == 0) {
+ backstepDirectory = pathPageName.lastIndexOf("/", lastBackstep);
+ link = $("#devdoc-nav a[href$='"+ pathPageName.slice(0, backstepDirectory +
+ 1)+"index.html']");
+ lastBackstep = pathPageName.lastIndexOf("/", lastBackstep - 1);
+ if (lastBackstep == 0) break;
}
}
diff --git a/tools/droiddoc/templates-sdk/assets/images/home/GTV_icon_large.png b/tools/droiddoc/templates-sdk/assets/images/home/GTV_icon_large.png
new file mode 100644
index 0000000..72d54ad
--- /dev/null
+++ b/tools/droiddoc/templates-sdk/assets/images/home/GTV_icon_large.png
Binary files differ
diff --git a/tools/droiddoc/templates-sdk/assets/images/home/GTV_icon_small.png b/tools/droiddoc/templates-sdk/assets/images/home/GTV_icon_small.png
new file mode 100644
index 0000000..3da1699
--- /dev/null
+++ b/tools/droiddoc/templates-sdk/assets/images/home/GTV_icon_small.png
Binary files differ
diff --git a/tools/droiddoc/templates-sdk/assets/images/home/tv_l.png b/tools/droiddoc/templates-sdk/assets/images/home/tv_l.png
deleted file mode 100644
index ed89bfc..0000000
--- a/tools/droiddoc/templates-sdk/assets/images/home/tv_l.png
+++ /dev/null
Binary files differ
diff --git a/tools/droiddoc/templates-sdk/assets/images/home/tv_s.png b/tools/droiddoc/templates-sdk/assets/images/home/tv_s.png
deleted file mode 100644
index 6ca68cb..0000000
--- a/tools/droiddoc/templates-sdk/assets/images/home/tv_s.png
+++ /dev/null
Binary files differ