Hi Ghislain,

Great work!

Is there a reason why the build for Android isn't integrated with existing autotools build system?

Martin

On 11/06/2010 03:39 PM, Ghislain PUTOIS wrote:
Dear all,

Here is a small patch to ease the cross-compilation of the trunk on the Android platform, which is mostly a LINUX platform, except form some missing POSIX functions. You can also find a compiled version and a copy of the sources I am currently using for cross-compiling to Android on http://ghislain.putois.free.fr/azmq.tar.bz2 . The tar.bz2 package contains a copy of uuid and zmq sources. It requires the unofficial NDK R4 by CrystaX.


From 7c3e67e49f50d19891186fd264392df41bc79fea Mon Sep 17 00:00:00 2001
From: Ghislain Putois <g...@ultraguile.(none)>
Date: Sat, 6 Nov 2010 15:28:33 +0100
Subject: [PATCH] Signed-off-by: Ghislain Putois <g...@infonie.fr <mailto:g...@infonie.fr>>

Some small changes to prepare a cross-compilation for the Android platform.
---
 src/Android.mk |   10 ++++++++++
 src/ip.cpp     |    2 +-
 src/swap.cpp   |    2 ++
 src/thread.cpp |    2 ++
 4 files changed, 15 insertions(+), 1 deletions(-)
 create mode 100644 src/Android.mk

diff --git a/src/Android.mk b/src/Android.mk
new file mode 100644
index 0000000..dff161b
--- /dev/null
+++ b/src/Android.mk
@@ -0,0 +1,10 @@
+LOCAL_PATH := $(call my-dir)
+include $(CLEAR_VARS)
+
+APP_PLATFORM = android-8
+
+LOCAL_MODULE := libzmq
+LOCAL_SRC_FILES := clock.cpp options.cpp socket_base.cpp command.cpp own.cpp streamer.cpp connect_session.cpp pair.cpp sub.cpp ctx.cpp pgm_receiver.cpp swap.cpp decoder.cpp pgm_sender.cpp tcp_connecter.cpp devpoll.cpp pgm_socket.cpp tcp_listener.cpp encoder.cpp pipe.cpp tcp_socket.cpp epoll.cpp poll.cpp thread.cpp err.cpp poller_base.cpp transient_session.cpp forwarder.cpp pub.cpp trie.cpp fq.cpp pull.cpp uuid.cpp io_object.cpp push.cpp xrep.cpp io_thread.cpp queue.cpp xreq.cpp ip.cpp rep.cpp zmq_connecter.cpp kqueue.cpp req.cpp zmq.cpp lb.cpp select.cpp zmq_engine.cpp named_session.cpp session.cpp zmq_init.cpp object.cpp zmq_listener.cpp mailbox.cpp
+
+LOCAL_LDLIBS := -luuid -lc -lm -lstdc++
+include $(BUILD_SHARED_LIBRARY)
diff --git a/src/ip.cpp b/src/ip.cpp
index eb05aec..736ea04 100644
--- a/src/ip.cpp
+++ b/src/ip.cpp
@@ -89,7 +89,7 @@ static int resolve_nic_name (in_addr* addr_, char const *interface_)
     return 0;
 }

-#elif defined ZMQ_HAVE_AIX || ZMQ_HAVE_HPUX
+#elif defined ZMQ_HAVE_AIX || ZMQ_HAVE_HPUX || ANDROID

 #include <sys/types.h>
 #include <unistd.h>
diff --git a/src/swap.cpp b/src/swap.cpp
index e3cc63e..4d03b27 100644
--- a/src/swap.cpp
+++ b/src/swap.cpp
@@ -111,9 +111,11 @@ int zmq::swap_t::init ()
         return -1;

 #ifdef ZMQ_HAVE_LINUX
+#ifndef ANDROID
     //  Enable more aggresive read-ahead optimization.
     posix_fadvise (fd, 0, filesize, POSIX_FADV_SEQUENTIAL);
 #endif
+#endif
     return 0;
 }

diff --git a/src/thread.cpp b/src/thread.cpp
index 2edd85b..ac3312a 100644
--- a/src/thread.cpp
+++ b/src/thread.cpp
@@ -71,9 +71,11 @@ void *zmq::thread_t::thread_routine (void *arg_)
     sigset_t signal_set;
     int rc = sigfillset (&signal_set);
     errno_assert (rc == 0);
+#if !defined ANDROID
     rc = pthread_sigmask (SIG_BLOCK, &signal_set, NULL);
     errno_assert (rc == 0);
 #endif
+#endif

     thread_t *self = (thread_t*) arg_;
     self->tfn (self->arg);
--
1.7.1


Yours,

--
Ghislain PUTOIS
g...@infonie.fr <mailto:g...@infonie.fr>


_______________________________________________
zeromq-dev mailing list
zeromq-dev@lists.zeromq.org
http://lists.zeromq.org/mailman/listinfo/zeromq-dev

_______________________________________________
zeromq-dev mailing list
zeromq-dev@lists.zeromq.org
http://lists.zeromq.org/mailman/listinfo/zeromq-dev

Reply via email to