From 60858cdcc4ed2e56e327ade3cf2f2d7850c9b6e3 Mon Sep 17 00:00:00 2001 From: Bin Li Date: Wed, 12 Jul 2017 10:17:07 -0400 Subject: [PATCH] Add support for building android package This commit adds the Android.mk to build for android. Signed-off-by: Bin Li --- android/Android.mk | 140 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 140 insertions(+) create mode 100644 android/Android.mk diff --git a/android/Android.mk b/android/Android.mk new file mode 100644 index 00000000..6338da50 --- /dev/null +++ b/android/Android.mk @@ -0,0 +1,140 @@ +# Example: Android Native Library makefile for paho.mqtt.c +# contributed by Bin Li + +LOCAL_PATH := $(call my-dir) +libpaho-mqtt3_lib_path := ../src +libpaho-mqtt3_c_includes := $(LOCAL_PATH)/$(libpaho-mqtt3_lib_path) \ + external/hdc/android-ifaddrs \ + external/openssl/include \ + external/zlib + +# build sample util +define build_sample_util +__sample_module:= $1 +__sample_lib:= $2 +include $(CLEAR_VARS) +LOCAL_C_INCLUDES := $(libpaho-mqtt3_c_includes) +LOCAL_SHARED_LIBRARIES := $$(__sample_lib) +LOCAL_MODULE := $$(__sample_module) +LOCAL_SRC_FILES := $(libpaho-mqtt3_lib_path)/samples/$$(__sample_module).c +include $(BUILD_EXECUTABLE) +endef + +libpaho-mqtt3_local_src_c_files_common := \ + $(libpaho-mqtt3_lib_path)/MQTTProtocolClient.c \ + $(libpaho-mqtt3_lib_path)/Tree.c \ + $(libpaho-mqtt3_lib_path)/Heap.c \ + $(libpaho-mqtt3_lib_path)/MQTTPacket.c \ + $(libpaho-mqtt3_lib_path)/Clients.c \ + $(libpaho-mqtt3_lib_path)/Thread.c \ + $(libpaho-mqtt3_lib_path)/utf-8.c \ + $(libpaho-mqtt3_lib_path)/StackTrace.c \ + $(libpaho-mqtt3_lib_path)/MQTTProtocolOut.c \ + $(libpaho-mqtt3_lib_path)/Socket.c \ + $(libpaho-mqtt3_lib_path)/Log.c \ + $(libpaho-mqtt3_lib_path)/Messages.c \ + $(libpaho-mqtt3_lib_path)/LinkedList.c \ + $(libpaho-mqtt3_lib_path)/MQTTPersistence.c \ + $(libpaho-mqtt3_lib_path)/MQTTPacketOut.c \ + $(libpaho-mqtt3_lib_path)/SocketBuffer.c \ + $(libpaho-mqtt3_lib_path)/MQTTPersistenceDefault.c \ + +libpaho-mqtt3_local_src_c_files_c := \ + $(libpaho-mqtt3_lib_path)/MQTTClient.c \ + +libpaho-mqtt3_local_src_c_files_cs := \ + $(libpaho-mqtt3_lib_path)/MQTTClient.c \ + $(libpaho-mqtt3_lib_path)/SSLSocket.c \ + +libpaho-mqtt3_local_src_c_files_a := \ + $(libpaho-mqtt3_lib_path)/MQTTAsync.c \ + +libpaho-mqtt3_local_src_c_files_as := \ + $(libpaho-mqtt3_lib_path)/MQTTAsync.c \ + $(libpaho-mqtt3_lib_path)/SSLSocket.c \ + +# update the header file which normally generated by cmake +$(shell (cp -f $(LOCAL_PATH)/$(libpaho-mqtt3_lib_path)/VersionInfo.h.in $(LOCAL_PATH)/$(libpaho-mqtt3_lib_path)/VersionInfo.h)) +$(shell (sed -i "s/@CLIENT_VERSION@/1.2.0/g" $(LOCAL_PATH)/$(libpaho-mqtt3_lib_path)/VersionInfo.h)) +$(shell ( sed -i "s/@BUILD_TIMESTAMP@/$(shell date)/g" $(LOCAL_PATH)/$(libpaho-mqtt3_lib_path)/VersionInfo.h)) + +# building static libraries + +include $(CLEAR_VARS) +LOCAL_MODULE := libpaho-mqtt3c +LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/$(libpaho-mqtt3_lib_path) +LOCAL_C_INCLUDES:= $(libpaho-mqtt3_c_includes) +LOCAL_SRC_FILES := $(libpaho-mqtt3_local_src_c_files_common) $(libpaho-mqtt3_local_src_c_files_c) +include $(BUILD_STATIC_LIBRARY) + +include $(CLEAR_VARS) +LOCAL_MODULE := libpaho-mqtt3cs +LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/$(libpaho-mqtt3_lib_path) +LOCAL_C_INCLUDES:= $(libpaho-mqtt3_c_includes) +LOCAL_CFLAGS += -DOPENSSL +LOCAL_SRC_FILES := $(libpaho-mqtt3_local_src_c_files_common) $(libpaho-mqtt3_local_src_c_files_cs) +include $(BUILD_STATIC_LIBRARY) + +include $(CLEAR_VARS) +LOCAL_MODULE := libpaho-mqtt3a +LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/${libpaho-mqtt3_lib_path} +LOCAL_C_INCLUDES:= $(libpaho-mqtt3_c_includes) +LOCAL_SRC_FILES := $(libpaho-mqtt3_local_src_c_files_common) $(libpaho-mqtt3_local_src_c_files_a) +include $(BUILD_STATIC_LIBRARY) + +include $(CLEAR_VARS) +LOCAL_MODULE := libpaho-mqtt3as +LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/${libpaho-mqtt3_lib_path} +LOCAL_CFLAGS += -DOPENSSL +LOCAL_C_INCLUDES:= $(libpaho-mqtt3_c_includes) +LOCAL_SRC_FILES := $(libpaho-mqtt3_local_src_c_files_common) $(libpaho-mqtt3_local_src_c_files_as) +include $(BUILD_STATIC_LIBRARY) + +# building shared libraries + +include $(CLEAR_VARS) +LOCAL_MODULE := libpaho-mqtt3c +LOCAL_SHARED_LIBRARIES := libdl +LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/$(libpaho-mqtt3_lib_path) +LOCAL_C_INCLUDES:= $(libpaho-mqtt3_c_includes) +LOCAL_SRC_FILES := $(libpaho-mqtt3_local_src_c_files_common) $(libpaho-mqtt3_local_src_c_files_c) +include $(BUILD_SHARED_LIBRARY) + +include $(CLEAR_VARS) +LOCAL_MODULE := libpaho-mqtt3cs +LOCAL_SHARED_LIBRARIES := libcrypto libssl libdl +LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/$(libpaho-mqtt3_lib_path) +LOCAL_C_INCLUDES:= $(libpaho-mqtt3_c_includes) +LOCAL_CFLAGS += -DOPENSSL +LOCAL_SRC_FILES := $(libpaho-mqtt3_local_src_c_files_common) $(libpaho-mqtt3_local_src_c_files_cs) +include $(BUILD_SHARED_LIBRARY) + +include $(CLEAR_VARS) +LOCAL_MODULE := libpaho-mqtt3a +LOCAL_SHARED_LIBRARIES := libdl +LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/${libpaho-mqtt3_lib_path} +LOCAL_C_INCLUDES:= $(libpaho-mqtt3_c_includes) +LOCAL_SRC_FILES := $(libpaho-mqtt3_local_src_c_files_common) $(libpaho-mqtt3_local_src_c_files_a) +include $(BUILD_SHARED_LIBRARY) + +include $(CLEAR_VARS) +LOCAL_MODULE := libpaho-mqtt3as +LOCAL_SHARED_LIBRARIES := libcrypto libssl libdl +LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/${libpaho-mqtt3_lib_path} +LOCAL_CFLAGS += -DOPENSSL +LOCAL_C_INCLUDES:= $(libpaho-mqtt3_c_includes) +LOCAL_SRC_FILES := $(libpaho-mqtt3_local_src_c_files_common) $(libpaho-mqtt3_local_src_c_files_as) +include $(BUILD_SHARED_LIBRARY) + +# building samples + +$(eval $(call build_sample_util, MQTTAsync_subscribe, libpaho-mqtt3a ) ) +$(eval $(call build_sample_util, MQTTAsync_publish, libpaho-mqtt3a ) ) +$(eval $(call build_sample_util, MQTTClient_publish, libpaho-mqtt3c ) ) +$(eval $(call build_sample_util, MQTTClient_publish_async, libpaho-mqtt3c ) ) +$(eval $(call build_sample_util, MQTTClient_subscribe, libpaho-mqtt3c ) ) +$(eval $(call build_sample_util, paho_c_pub, libpaho-mqtt3a ) ) +$(eval $(call build_sample_util, paho_c_sub, libpaho-mqtt3a ) ) +$(eval $(call build_sample_util, paho_cs_pub, libpaho-mqtt3c ) ) +$(eval $(call build_sample_util, paho_cs_sub, libpaho-mqtt3c ) ) +