zeromq / zeromq3-x

ØMQ/3.2 release branch - bug fixes only
GNU General Public License v3.0
227 stars 96 forks source link

Patch to make it Android friendly #16

Closed cyrilh closed 12 years ago

cyrilh commented 12 years ago

Hi,

I have been working on porting pyzmq to Android (see work progress here: https://github.com/zeromq/pyzmq/issues/227#issuecomment-6713218). The symptoms without the patch are:

Starting from libzmq3.x (https://github.com/zeromq/zeromq3-x), the following patch that will add -avoid-version to LDFLAGS:

diff --git a/configure.in b/configure.in
index 7152015..60416ff 100644
--- a/configure.in
+++ b/configure.in
@@ -75,8 +75,9 @@ libzmq_werror="yes"
 # By default use DSO visibility
 libzmq_dso_visibility="yes"

-# Whether we are on mingw or not.
+# Whether we are on mingw or android or not.
 libzmq_on_mingw32="no"
+libzmq_on_android="no"

 # Set some default features required by 0MQ code.
 CPPFLAGS="-D_REENTRANT -D_THREAD_SAFE $CPPFLAGS"
@@ -96,6 +97,7 @@ case "${host_os}" in
         case "${host_os}" in
             *android*)
                 AC_DEFINE(ZMQ_HAVE_ANDROID, 1, [Have Android OS])
+                libzmq_on_android="yes"
             ;;
         esac
         ;;
@@ -373,6 +375,7 @@ AC_LANG_POP([C++])

 AM_CONDITIONAL(BUILD_PGM, test "x$libzmq_pgm_ext" = "xyes")
 AM_CONDITIONAL(ON_MINGW, test "x$libzmq_on_mingw32" = "xyes")
+AM_CONDITIONAL(ON_ANDROID, test "x$libzmq_on_android" = "xyes")

 # Checks for library functions.
 AC_TYPE_SIGNAL
diff --git a/src/Makefile.am b/src/Makefile.am
index c69a556..23c8cbe 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -138,8 +138,12 @@ libzmq_la_SOURCES = \
 if ON_MINGW
 libzmq_la_LDFLAGS = -no-undefined -avoid-version -version-info @LTVER@ @LIBZMQ_EXTRA_LDFLAGS@
 else
+if ON_ANDROID
+libzmq_la_LDFLAGS = -avoid-version -version-info @LTVER@ @LIBZMQ_EXTRA_LDFLAGS@
+else
 libzmq_la_LDFLAGS = -version-info @LTVER@ @LIBZMQ_EXTRA_LDFLAGS@
 endif
+endif

 libzmq_la_CXXFLAGS = @LIBZMQ_EXTRA_CXXFLAGS@

Then I also need to make use of that patch not yet released in 3.x: https://github.com/zeromq/libzmq/commit/eb6c668c2ae961a4a53d11d81dd6d2df5bffa666

I have never made git pull request and do not have any folder on git... I will try to keep it that way for now, that's why I post my patch here.

EDITS:

cyrilh commented 12 years ago

OK... it was not so hard after all, see https://github.com/zeromq/libzmq/pull/393

hintjens commented 12 years ago

:-)