Android NDK : OpenSSLをビルドする。
環境
NDKはAndroid-ndk-r9c(x86 64bit版)
OpenSSL for android は android の gitHub から持ってきます。
ここのexternal_openssl をgitでクローンする。
リビジョンは2014-2-22 09:05:07 にコミットされたもの。
ディレクトリ構成など
普通にjniを使ったアプリのビルド環境を作ります。 jni の中に上記のファイルを全部コピーします。
$PROJECT_ROOT + jni + .git + その他external OpenSSLのソース + AndroidManifestなど
書き換える場所
Android.mk
Apps.mk は実行可能なコマンドを作成するためのものなのでコメントアウト。
#include $(LOCAL_PATH)/Apps.mk
Crypto-config.mk Ssl-config.mk
target_c_includes := $(addprefix external/openssl/,$(common_c_includes)) $(local_c_includes)
という行があるので
target_c_includes := $(addprefix $(LOCAL_PATH)/,$(common_c_includes)) $(local_c_includes)
という感じ、つまりexternal/openssl を $(LOCAL_PATH)に変えます。
Crypto.mk
最後の方にある下のようなあたりをごそっと削除かコメントアウト。
include $(CLEAR_VARS) include $(LOCAL_PATH)/android-config.mk LOCAL_SHARED_LIBRARIES := $(log_shared_libraries) LOCAL_SRC_FILES += $(host_src_files) LOCAL_CFLAGS += $(host_c_flags) -DPURIFY LOCAL_C_INCLUDES += $(host_c_includes) LOCAL_LDLIBS += -ldl LOCAL_MODULE_TAGS := optional LOCAL_MODULE:= libcrypto_static LOCAL_ADDITIONAL_DEPENDENCIES := $(local_additional_dependencies) include $(BUILD_HOST_STATIC_LIBRARY)
ビルド方法
$PROJECT_ROOT で ndk-build するだけ。