Merge "core/Makefile: also look for device/*/build/tasks"
diff --git a/CleanSpec.mk b/CleanSpec.mk
index 74ad978..6d81733 100644
--- a/CleanSpec.mk
+++ b/CleanSpec.mk
@@ -125,6 +125,8 @@
# Now we switched to build against Mac OS X SDK 10.6
$(call add-clean-step, rm -rf $(OUT_DIR)/host/darwin-x86/obj)
+$(call add-clean-step, rm -f $(OUT_DIR)/versions_checked.mk)
+
# ************************************************
# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST
# ************************************************
diff --git a/core/Makefile b/core/Makefile
index 3b086c7..66520ed 100644
--- a/core/Makefile
+++ b/core/Makefile
@@ -353,7 +353,7 @@
BUILT_RAMDISK_TARGET := $(PRODUCT_OUT)/ramdisk.img
ifeq ($(HAVE_SELINUX),true)
-SELINUX_DEPENDS := sepolicy file_contexts seapp_contexts
+SELINUX_DEPENDS := sepolicy file_contexts seapp_contexts property_contexts
endif
# We just build this directly to the install location.
@@ -1298,7 +1298,7 @@
# -----------------------------------------------------------------
# The emulator package
-
+ifeq ($(BUILD_EMULATOR),true)
INTERNAL_EMULATOR_PACKAGE_FILES += \
$(HOST_OUT_EXECUTABLES)/emulator$(HOST_EXECUTABLE_SUFFIX) \
prebuilts/qemu-kernel/$(TARGET_ARCH)/kernel-qemu \
@@ -1314,6 +1314,7 @@
@echo "Package: $@"
$(hide) zip -qj $@ $(INTERNAL_EMULATOR_PACKAGE_FILES)
+endif
# -----------------------------------------------------------------
# Old PDK stuffs, retired
# The pdk package (Platform Development Kit)
diff --git a/core/combo/TARGET_linux-x86.mk b/core/combo/TARGET_linux-x86.mk
index 28c031d..9c0f7b9 100644
--- a/core/combo/TARGET_linux-x86.mk
+++ b/core/combo/TARGET_linux-x86.mk
@@ -186,12 +186,14 @@
endef
+# Add -fuse-ld=bfd because ld.gold doesn't support "--copy-dt-needed-entries".
define transform-o-to-executable-inner
$(hide) $(PRIVATE_CXX) \
$(TARGET_GLOBAL_LDFLAGS) \
-nostdlib -Bdynamic \
-Wl,-dynamic-linker,/system/bin/linker \
-Wl,--copy-dt-needed-entries \
+ -fuse-ld=bfd \
-Wl,-z,nocopyreloc \
-fPIE -pie \
-o $@ \
diff --git a/core/dex_preopt.mk b/core/dex_preopt.mk
index 38982c0..4c51b10 100644
--- a/core/dex_preopt.mk
+++ b/core/dex_preopt.mk
@@ -4,7 +4,7 @@
####################################
# TODO: replace it with device's BOOTCLASSPATH
-DEXPREOPT_BOOT_JARS := core:core-junit:bouncycastle:ext:framework:android.policy:services:apache-xml
+DEXPREOPT_BOOT_JARS := core:core-junit:bouncycastle:ext:framework:telephony-common:mms-common:android.policy:services:apache-xml
DEXPREOPT_BOOT_JARS_MODULES := $(subst :, ,$(DEXPREOPT_BOOT_JARS))
DEXPREOPT_BUILD_DIR := $(OUT_DIR)
diff --git a/core/main.mk b/core/main.mk
index 08efbda..6516fa6 100644
--- a/core/main.mk
+++ b/core/main.mk
@@ -84,7 +84,7 @@
# be generated correctly
include $(BUILD_SYSTEM)/cleanbuild.mk
-VERSION_CHECK_SEQUENCE_NUMBER := 2
+VERSION_CHECK_SEQUENCE_NUMBER := 3
-include $(OUT_DIR)/versions_checked.mk
ifneq ($(VERSION_CHECK_SEQUENCE_NUMBER),$(VERSIONS_CHECKED))
@@ -166,11 +166,35 @@
$(warning * gcc is linked to llvm-gcc which will *)
$(warning * not create a useable emulator. *)
$(warning ****************************************)
+ BUILD_EMULATOR := false
+else
+ BUILD_EMULATOR := true
endif
+# When building on Leopard or above, we need to use the 10.4 SDK
+# or the generated binary will not run on Tiger.
+darwin_version := $(strip $(shell sw_vers -productVersion))
+ifneq ($(filter 10.1 10.2 10.3 10.1.% 10.2.% 10.3.% 10.4 10.4.%,$(darwin_version)),)
+ $(error Building the Android emulator requires OS X 10.5 or above)
endif
+ifneq ($(filter 10.5 10.5.% 10.6 10.6.%,$(darwin_version)),)
+ # We are on Leopard or Snow Leopard
+ MSDK=10.5
+else
+ # We are on Lion or beyond, and 10.6 SDK is the minimum in Xcode 4.x
+ MSDK=10.6
+endif
+MACOSX_SDK := /Developer/SDKs/MacOSX$(MSDK).sdk
+ifeq ($(strip $(wildcard $(MACOSX_SDK))),)
+ BUILD_EMULATOR := false
+endif
+else # HOST_OS is not darwin
+ BUILD_EMULATOR := true
+endif # HOST_OS is darwin
$(shell echo 'VERSIONS_CHECKED := $(VERSION_CHECK_SEQUENCE_NUMBER)' \
> $(OUT_DIR)/versions_checked.mk)
+$(shell echo 'BUILD_EMULATOR := $(BUILD_EMULATOR)' \
+ >> $(OUT_DIR)/versions_checked.mk)
endif
# These are the modifier targets that don't do anything themselves, but
diff --git a/target/product/core.mk b/target/product/core.mk
index 688c806..c7ae51c 100644
--- a/target/product/core.mk
+++ b/target/product/core.mk
@@ -119,7 +119,12 @@
screencap \
sensorservice \
lint \
- uiautomator
+ uiautomator \
+ telephony-common \
+ mms-common \
+ zoneinfo.dat \
+ zoneinfo.idx \
+ zoneinfo.version
PRODUCT_COPY_FILES += \
system/core/rootdir/init.usb.rc:root/init.usb.rc \
@@ -138,5 +143,8 @@
libjavacore \
libssl \
libz-host \
- dalvik
+ dalvik \
+ zoneinfo-host.dat \
+ zoneinfo-host.idx \
+ zoneinfo-host.version
endif