Merge "Point to new linux prebuilt toolchain for SDK build"
diff --git a/core/Makefile b/core/Makefile
index 8d0dfed..4b8b5d8 100644
--- a/core/Makefile
+++ b/core/Makefile
@@ -624,7 +624,7 @@
 # Recovery image
 
 # If neither TARGET_NO_KERNEL nor TARGET_NO_RECOVERY are true
-ifeq (,$(filter true, $(TARGET_NO_KERNEL) $(TARGET_NO_RECOVERY) $(BUILD_TINY_ANDROID)))
+ifeq (,$(filter true, $(TARGET_NO_KERNEL) $(TARGET_NO_RECOVERY) $(BUILD_TINY_ANDROID) $(BUILD_PDK)))
 
 INSTALLED_RECOVERYIMAGE_TARGET := $(PRODUCT_OUT)/recovery.img
 
@@ -1206,7 +1206,7 @@
 # -----------------------------------------------------------------
 # A zip of the tests that are built when running "make tests".
 # This is very similar to BUILT_TARGET_FILES_PACKAGE, but we
-# only grab SYSTEM and DATA, and it's called "*-tests-*.zip".
+# only grab DATA, and it's called "*-tests-*.zip".
 #
 name := $(TARGET_PRODUCT)
 ifeq ($(TARGET_BUILD_TYPE),debug)
@@ -1222,21 +1222,11 @@
 # Depending on the images guarantees that the underlying
 # directories are up-to-date.
 $(BUILT_TESTS_ZIP_PACKAGE): \
-		$(BUILT_SYSTEMIMAGE) \
 		$(INSTALLED_USERDATAIMAGE_TARGET) \
 		| $(ACP)
 	@echo "Package test files: $@"
 	$(hide) rm -rf $@ $(zip_root)
 	$(hide) mkdir -p $(dir $@) $(zip_root)
-	@# Some parts of the system image
-	$(hide) $(call package_files-copy-root, \
-		$(SYSTEMIMAGE_SOURCE_DIR)/xbin,$(zip_root)/SYSTEM/xbin)
-	$(hide) $(call package_files-copy-root, \
-		$(SYSTEMIMAGE_SOURCE_DIR)/lib,$(zip_root)/SYSTEM/lib)
-	$(hide) $(call package_files-copy-root, \
-		$(SYSTEMIMAGE_SOURCE_DIR)/framework, \
-		$(zip_root)/SYSTEM/framework)
-	$(hide) $(ACP) $(SYSTEMIMAGE_SOURCE_DIR)/build.prop $(zip_root)/SYSTEM
 	@# Contents of the data image
 	$(hide) $(call package_files-copy-root, \
 		$(TARGET_OUT_DATA),$(zip_root)/DATA)
@@ -1325,11 +1315,13 @@
 	$(hide) zip -qj $@ $(INTERNAL_EMULATOR_PACKAGE_FILES)
 
 # -----------------------------------------------------------------
+# Old PDK stuffs, retired
 # The pdk package (Platform Development Kit)
 
-ifneq (,$(filter pdk,$(MAKECMDGOALS)))
-  include development/pdk/Pdk.mk
-endif
+#ifneq (,$(filter pdk,$(MAKECMDGOALS)))
+#  include development/pdk/Pdk.mk
+#endif
+
 
 # -----------------------------------------------------------------
 # The SDK
diff --git a/core/clear_vars.mk b/core/clear_vars.mk
index ae4bd38..63f44b3 100644
--- a/core/clear_vars.mk
+++ b/core/clear_vars.mk
@@ -117,6 +117,7 @@
 LOCAL_PROPRIETARY_MODULE:=
 LOCAL_MODULE_OWNER:=
 LOCAL_CTS_TEST_PACKAGE:=
+LOCAL_CTS_TEST_RUNNER:=
 
 # Trim MAKEFILE_LIST so that $(call my-dir) doesn't need to
 # iterate over thousands of entries every time.
diff --git a/core/main.mk b/core/main.mk
index 3098051..5604df2 100644
--- a/core/main.mk
+++ b/core/main.mk
@@ -207,6 +207,32 @@
 $(error stopping)
 endif
 
+# -----------------------------------------------------------------
+# The pdk (Platform Development Kit) build
+# pdk1 : for building binary blob necessary for pdk2 build
+# pdk2 : HAL build for chipset vendors
+
+PDK_BUILD_TYPE:= $(filter pdk1 pdk2,$(MAKECMDGOALS))
+ifeq (2,$(words $(PDK_BUILD_TYPE)))
+  $(error You can't build pdk1 and pdk2 in the same run.)
+endif
+ifneq ($(PDK_BUILD_TYPE),)
+  $(info PDK build type $(PDK_BUILD_TYPE))
+  BUILD_PDK:= true
+  include pdk/build/pdk.mk
+  # force droid target
+  MAKECMDGOALS:= $(subst $(PDK_BUILD_TYPE),droid,$(MAKECMDGOALS))
+ifeq ($(PDK_BUILD_TYPE), pdk1)
+  .PHONY: pdk1
+  pdk1: droid pdk_bin_zip
+
+else  # pdk2
+  .PHONY: pdk2
+  pdk2: droid
+
+endif # pdk2
+endif # PDK_BUILD_TYPE
+# -----------------------------------------------------------------
 ###
 ### In this section we set up the things that are different
 ### between the build variants
@@ -421,7 +447,10 @@
 	external/yaffs2 \
 	external/zlib
 else	# !BUILD_TINY_ANDROID
-
+ifneq ($(BUILD_PDK),)
+subdirs := $(BUILD_PDK_SUBDIRS)
+FULL_BUILD := true
+else # Normal droid build
 #
 # Typical build; include any Android.mk files we can find.
 #
@@ -429,6 +458,8 @@
 
 FULL_BUILD := true
 
+endif  # !BUILD_PDK
+
 endif	# !BUILD_TINY_ANDROID
 
 endif	# !SDK_ONLY
@@ -698,6 +729,9 @@
 ifeq ($(BUILD_TINY_ANDROID), true)
 INSTALLED_RECOVERYIMAGE_TARGET :=
 endif
+ifneq ($(BUILD_PDK),)
+INSTALLED_RECOVERYIMAGE_TARGET :=
+endif
 
 # Build files and then package it into the rom formats
 .PHONY: droidcore
diff --git a/core/tasks/apicheck.mk b/core/tasks/apicheck.mk
index 96e0f44..b3d800b 100644
--- a/core/tasks/apicheck.mk
+++ b/core/tasks/apicheck.mk
@@ -17,7 +17,8 @@
 # api compatibility or added apis illegally.
 #
 
-ifneq ($(BUILD_TINY_ANDROID), true)
+# skip api check for TINY_ANDROID and PDK buid
+ifeq (,$(filter true, $(BUILD_TINY_ANDROID) $(BUILD_PDK)))
 
 .PHONY: checkapi
 
diff --git a/target/product/generic_no_telephony.mk b/target/product/generic_no_telephony.mk
index 2cd26d4..b7c9b32 100644
--- a/target/product/generic_no_telephony.mk
+++ b/target/product/generic_no_telephony.mk
@@ -53,7 +53,8 @@
     librs_jni \
     libvideoeditor_jni \
     libvideoeditorplayer \
-    libvideoeditor_core
+    libvideoeditor_core \
+    libdownmix
 
 PRODUCT_PACKAGES += \
     audio.primary.default \