Really unbundle libcrypto and libssl.

1. If built with the NDK, they should link against the NDK libdl and libz.
2. Upgrade to NDK version 5, because NDKr4 lacks some functions in
libdl.

Change-Id: I080d102d224496c63060c58a08b1dfd1de05978c
diff --git a/CleanSpec.mk b/CleanSpec.mk
index 2a55189..7549ef9 100644
--- a/CleanSpec.mk
+++ b/CleanSpec.mk
@@ -50,6 +50,10 @@
 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libcrypto_intermediates $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libssl_intermediates $(PRODUCT_OUT)/obj/EXECUTABLES/openssl_intermediates $(PRODUCT_OUT)/obj/EXECUTABLES/ssltest_intermediates)
 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libcrypto_intermediates $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libssl_intermediates $(PRODUCT_OUT)/obj/EXECUTABLES/openssl_intermediates $(PRODUCT_OUT)/obj/EXECUTABLES/ssltest_intermediates)
 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libcrypto_intermediates $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libssl_intermediates $(PRODUCT_OUT)/obj/EXECUTABLES/openssl_intermediates $(PRODUCT_OUT)/obj/EXECUTABLES/ssltest_intermediates)
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libssl_intermediates)
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libcrypto_intermediates)
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES/libssl_static_intermediates)
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES/libcrypto_static_intermediates)
 
 # ************************************************
 # NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST
diff --git a/crypto/Android.mk b/crypto/Android.mk
index d6ff574..2bce944 100644
--- a/crypto/Android.mk
+++ b/crypto/Android.mk
@@ -484,24 +484,22 @@
 #######################################
 # target static library
 include $(CLEAR_VARS)
+include $(LOCAL_PATH)/../android-config.mk
 
 ifneq ($(TARGET_ARCH),x86)
-LOCAL_NDK_VERSION := 4
-LOCAL_SDK_VERSION := 8
+LOCAL_NDK_VERSION := 5
+LOCAL_SDK_VERSION := 9
 endif
 
-include $(LOCAL_PATH)/../android-config.mk
 LOCAL_SRC_FILES += $(local_src_files)
 LOCAL_CFLAGS += $(local_c_flags)
 LOCAL_C_INCLUDES += $(local_c_includes)
-LOCAL_SHARED_LIBRARIES += libz
 ifeq ($(TARGET_ARCH),arm)
 	LOCAL_SRC_FILES += $(arm_src_files)
 	LOCAL_CFLAGS += $(arm_cflags)
 else
 	LOCAL_SRC_FILES += $(non_arm_src_files)
 endif
-LOCAL_SHARED_LIBRARIES += libdl
 LOCAL_MODULE_TAGS := optional
 LOCAL_MODULE:= libcrypto_static
 include $(BUILD_STATIC_LIBRARY)
@@ -509,24 +507,26 @@
 #######################################
 # target shared library
 include $(CLEAR_VARS)
+include $(LOCAL_PATH)/../android-config.mk
 
 ifneq ($(TARGET_ARCH),x86)
-LOCAL_NDK_VERSION := 4
-LOCAL_SDK_VERSION := 8
+LOCAL_NDK_VERSION := 5
+LOCAL_SDK_VERSION := 9
+# Use the NDK prebuilt libz and libdl.
+LOCAL_LDFLAGS += -lz -ldl
+else
+LOCAL_SHARED_LIBRARIES += libz libdl
 endif
 
-include $(LOCAL_PATH)/../android-config.mk
 LOCAL_SRC_FILES += $(local_src_files)
 LOCAL_CFLAGS += $(local_c_flags)
 LOCAL_C_INCLUDES += $(local_c_includes)
-LOCAL_SHARED_LIBRARIES += libz
 ifeq ($(TARGET_ARCH),arm)
 	LOCAL_SRC_FILES += $(arm_src_files)
 	LOCAL_CFLAGS += $(arm_cflags)
 else
 	LOCAL_SRC_FILES += $(non_arm_src_files)
 endif
-LOCAL_SHARED_LIBRARIES += libdl
 LOCAL_MODULE_TAGS := optional
 LOCAL_MODULE:= libcrypto
 include $(BUILD_SHARED_LIBRARY)
diff --git a/patches/crypto_Android.mk b/patches/crypto_Android.mk
index d6ff574..2bce944 100644
--- a/patches/crypto_Android.mk
+++ b/patches/crypto_Android.mk
@@ -484,24 +484,22 @@
 #######################################
 # target static library
 include $(CLEAR_VARS)
+include $(LOCAL_PATH)/../android-config.mk
 
 ifneq ($(TARGET_ARCH),x86)
-LOCAL_NDK_VERSION := 4
-LOCAL_SDK_VERSION := 8
+LOCAL_NDK_VERSION := 5
+LOCAL_SDK_VERSION := 9
 endif
 
-include $(LOCAL_PATH)/../android-config.mk
 LOCAL_SRC_FILES += $(local_src_files)
 LOCAL_CFLAGS += $(local_c_flags)
 LOCAL_C_INCLUDES += $(local_c_includes)
-LOCAL_SHARED_LIBRARIES += libz
 ifeq ($(TARGET_ARCH),arm)
 	LOCAL_SRC_FILES += $(arm_src_files)
 	LOCAL_CFLAGS += $(arm_cflags)
 else
 	LOCAL_SRC_FILES += $(non_arm_src_files)
 endif
-LOCAL_SHARED_LIBRARIES += libdl
 LOCAL_MODULE_TAGS := optional
 LOCAL_MODULE:= libcrypto_static
 include $(BUILD_STATIC_LIBRARY)
@@ -509,24 +507,26 @@
 #######################################
 # target shared library
 include $(CLEAR_VARS)
+include $(LOCAL_PATH)/../android-config.mk
 
 ifneq ($(TARGET_ARCH),x86)
-LOCAL_NDK_VERSION := 4
-LOCAL_SDK_VERSION := 8
+LOCAL_NDK_VERSION := 5
+LOCAL_SDK_VERSION := 9
+# Use the NDK prebuilt libz and libdl.
+LOCAL_LDFLAGS += -lz -ldl
+else
+LOCAL_SHARED_LIBRARIES += libz libdl
 endif
 
-include $(LOCAL_PATH)/../android-config.mk
 LOCAL_SRC_FILES += $(local_src_files)
 LOCAL_CFLAGS += $(local_c_flags)
 LOCAL_C_INCLUDES += $(local_c_includes)
-LOCAL_SHARED_LIBRARIES += libz
 ifeq ($(TARGET_ARCH),arm)
 	LOCAL_SRC_FILES += $(arm_src_files)
 	LOCAL_CFLAGS += $(arm_cflags)
 else
 	LOCAL_SRC_FILES += $(non_arm_src_files)
 endif
-LOCAL_SHARED_LIBRARIES += libdl
 LOCAL_MODULE_TAGS := optional
 LOCAL_MODULE:= libcrypto
 include $(BUILD_SHARED_LIBRARY)
diff --git a/patches/ssl_Android.mk b/patches/ssl_Android.mk
index 8b75335..487aabb 100644
--- a/patches/ssl_Android.mk
+++ b/patches/ssl_Android.mk
@@ -47,12 +47,12 @@
 #######################################
 # target static library
 include $(CLEAR_VARS)
-ifneq ($(TARGET_ARCH),x86)
-LOCAL_NDK_VERSION := 4
-LOCAL_SDK_VERSION := 8
-endif
-
 include $(LOCAL_PATH)/../android-config.mk
+
+ifneq ($(TARGET_ARCH),x86)
+LOCAL_NDK_VERSION := 5
+LOCAL_SDK_VERSION := 9
+endif
 LOCAL_SRC_FILES += $(local_src_files)
 LOCAL_C_INCLUDES += $(local_c_includes)
 LOCAL_MODULE_TAGS := optional
@@ -62,12 +62,12 @@
 #######################################
 # target shared library
 include $(CLEAR_VARS)
-ifneq ($(TARGET_ARCH),x86)
-LOCAL_NDK_VERSION := 4
-LOCAL_SDK_VERSION := 8
-endif
-
 include $(LOCAL_PATH)/../android-config.mk
+
+ifneq ($(TARGET_ARCH),x86)
+LOCAL_NDK_VERSION := 5
+LOCAL_SDK_VERSION := 9
+endif
 LOCAL_SRC_FILES += $(local_src_files)
 LOCAL_C_INCLUDES += $(local_c_includes)
 LOCAL_SHARED_LIBRARIES += libcrypto
diff --git a/ssl/Android.mk b/ssl/Android.mk
index 8b75335..487aabb 100644
--- a/ssl/Android.mk
+++ b/ssl/Android.mk
@@ -47,12 +47,12 @@
 #######################################
 # target static library
 include $(CLEAR_VARS)
-ifneq ($(TARGET_ARCH),x86)
-LOCAL_NDK_VERSION := 4
-LOCAL_SDK_VERSION := 8
-endif
-
 include $(LOCAL_PATH)/../android-config.mk
+
+ifneq ($(TARGET_ARCH),x86)
+LOCAL_NDK_VERSION := 5
+LOCAL_SDK_VERSION := 9
+endif
 LOCAL_SRC_FILES += $(local_src_files)
 LOCAL_C_INCLUDES += $(local_c_includes)
 LOCAL_MODULE_TAGS := optional
@@ -62,12 +62,12 @@
 #######################################
 # target shared library
 include $(CLEAR_VARS)
-ifneq ($(TARGET_ARCH),x86)
-LOCAL_NDK_VERSION := 4
-LOCAL_SDK_VERSION := 8
-endif
-
 include $(LOCAL_PATH)/../android-config.mk
+
+ifneq ($(TARGET_ARCH),x86)
+LOCAL_NDK_VERSION := 5
+LOCAL_SDK_VERSION := 9
+endif
 LOCAL_SRC_FILES += $(local_src_files)
 LOCAL_C_INCLUDES += $(local_c_includes)
 LOCAL_SHARED_LIBRARIES += libcrypto