いさぽん部屋(isapon.com)

ゲーム系プログラマによる特に方針のないブログ。技術系とカレー、ラーメンネタ多めだったはずが、最近はダイエットネタ多め。

Android NDK : OpenSSLをビルドする。

環境

NDKはAndroid-ndk-r9c(x86 64bit版)

OpenSSL for android は android の gitHub から持ってきます。

https://github.com/android

ここの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 するだけ。