From b9a83af04a984d4b9ae865465408f85baff572ae Mon Sep 17 00:00:00 2001 From: Alvaro Soliverez Date: Wed, 2 Nov 2011 10:45:52 -0300 Subject: [PATCH 2/2] Support building for Android Modified from a patch contributed by Derek Foreman --- .gitignore | 1 + Android.mk | 37 +++++++++++++++++++++++++++++++++++++ configure.ac | 5 +++++ extensions/Makefile.am | 12 ++++++++++++ lib/gibber/Makefile.am | 11 +++++++++++ src/Makefile.am | 25 +++++++++++++++++++++++++ src/connection.c | 1 - src/salut.c | 4 ++++ 8 files changed, 95 insertions(+), 1 deletions(-) create mode 100644 Android.mk diff --git a/.gitignore b/.gitignore index e62cade..509272c 100644 --- a/.gitignore +++ b/.gitignore @@ -45,6 +45,7 @@ ChangeSet .cvsignore Thumbs.db autom4te.cache +Android.mk Makefile Makefile.in INSTALL diff --git a/Android.mk b/Android.mk new file mode 100644 index 0000000..c0d422f --- /dev/null +++ b/Android.mk @@ -0,0 +1,37 @@ +LOCAL_PATH:= $(call my-dir) + +include $(CLEAR_VARS) + +TELEPATHY_SALUT_BUILT_SOURCES := \ + src/Android.mk \ + extensions/Android.mk \ + lib/gibber/Android.mk + +telepathy-salut-configure-real: + cd $(TELEPATHY_SALUT_TOP) ; \ + CC="$(CONFIGURE_CC)" \ + CFLAGS="$(CONFIGURE_CFLAGS)" \ + LD=$(TARGET_LD) \ + LDFLAGS="$(CONFIGURE_LDFLAGS)" \ + CPP=$(CONFIGURE_CPP) \ + CPPFLAGS="$(CONFIGURE_CPPFLAGS)" \ + PKG_CONFIG_LIBDIR=$(CONFIGURE_PKG_CONFIG_LIBDIR) \ + PKG_CONFIG_TOP_BUILD_DIR=$(PKG_CONFIG_TOP_BUILD_DIR) \ + $(TELEPATHY_SALUT_TOP)/$(CONFIGURE) --host=arm-linux-androideabi \ + --enable-android \ + --disable-Werror && \ + for file in $(TELEPATHY_SALUT_BUILT_SOURCES); do \ + rm -f $$file && \ + make -C $$(dirname $$file) $$(basename $$file) ; \ + done + +telepathy-salut-configure: telepathy-salut-configure-real + +.PHONY: telepathy-salut-configure + +CONFIGURE_TARGETS += telepathy-salut-configure + +#include all the subdirs... +-include $(TELEPATHY_SALUT_TOP)/src/Android.mk +-include $(TELEPATHY_SALUT_TOP)/extensions/Android.mk +-include $(TELEPATHY_SALUT_TOP)/lib/gibber/Android.mk diff --git a/configure.ac b/configure.ac index 0fa3390..89481f0 100644 --- a/configure.ac +++ b/configure.ac @@ -204,6 +204,11 @@ else AC_MSG_WARN([libuuid not found, falling back to generating random IDs]) fi +dnl check for Android build +AC_ARG_ENABLE(android, + AC_HELP_STRING([--enable-android],[compile Android code]), + android_build=$enableval, android_build=no ) + dnl plugins AC_ARG_ENABLE(plugins, AC_HELP_STRING([--disable-plugins], diff --git a/extensions/Makefile.am b/extensions/Makefile.am index de6c256..8e2e767 100644 --- a/extensions/Makefile.am +++ b/extensions/Makefile.am @@ -109,3 +109,15 @@ _gen/svc.c _gen/svc.h: _gen/all.xml $(tools_dir)/glib-ginterface-gen.py --not-implemented-func='tp_dbus_g_method_return_not_implemented' \ --allow-unstable \ $< Salut_Svc_ + +Android.mk: Makefile.am $(BUILT_SOURCES) + androgenizer -:PROJECT telepathy-salut -:SHARED salut-extensions \ + -:TAGS eng debug \ + -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \ + -:SOURCES $(nodist_libsalut_extensions_la_SOURCES) \ + $(libsalut_extensions_la_SOURCES) \ + -:CFLAGS $(DEFS) $(CFLAGS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CFLAGS) \ + -:CPPFLAGS $(CPPFLAGS) $(AM_CPPFLAGS) \ + -:LDFLAGS $(AM_LDFLAGS) \ + > $@ diff --git a/lib/gibber/Makefile.am b/lib/gibber/Makefile.am index 5a048ea..d036c72 100644 --- a/lib/gibber/Makefile.am +++ b/lib/gibber/Makefile.am @@ -110,3 +110,14 @@ AM_LDFLAGS = $(GCOV_LIBS) @GLIB_LIBS@ @LIBXML2_LIBS@ @WOCKY_LIBS@ @LIBSOUP_LIBS@ --vprod " { @VALUENAME@, \"@VALUENAME@\", \"@VALUENAME@\" }," \ --vtail " { 0, NULL, NULL }\n };\n etype = g_@type@_register_static (\"@EnumName@\", values);\n }\n return etype;\n}\n" \ $< > $@ + +Android.mk: Makefile.am $(BUILT_SOURCES) + androgenizer -:PROJECT telepathy-salut -:STATIC gibber-salut \ + -:TAGS eng debug \ + -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \ + -:SOURCES $(libgibber_la_SOURCES) \ + -:CFLAGS $(DEFS) $(CFLAGS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CFLAGS) \ + -:CPPFLAGS $(CPPFLAGS) $(AM_CPPFLAGS) \ + -:LDFLAGS $(AM_LDFLAGS) \ + > $@ diff --git a/src/Makefile.am b/src/Makefile.am index 60552a9..bbe3e5b 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -155,6 +155,11 @@ include $(top_srcdir)/tools/check-coding-style.mk check-local: check-coding-style # TELEPATHY_GLIB_LIBS is only here so compiling against a static lib succeeds +telepathy_salut_android_libs = libsalut-convenience.la \ + -lgibber-salut \ + $(top_builddir)/extensions/libsalut-extensions.la \ + -ltelepathy-glib + telepathy_salut_LDADD = libsalut-convenience.la \ $(top_builddir)/lib/gibber/libgibber.la \ $(top_builddir)/extensions/libsalut-extensions.la \ @@ -237,3 +242,23 @@ enumtypes.c: $(enumtype_sources) Makefile.in --vprod " { @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" }," \ --vtail " { 0, NULL, NULL }\n };\n etype = g_@type@_register_static (\"@EnumName@\", values);\n }\n return etype;\n}\n" \ $(enumtype_sources) > $@ + +Android.mk: Makefile.am $(BUILT_SOURCES) + androgenizer -:PROJECT telepathy-salut -:STATIC salut-convenience \ + -:TAGS eng debug \ + -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \ + -:SOURCES $(libsalut_convenience_la_SOURCES) \ + -:CFLAGS $(DEFS) $(CFLAGS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CFLAGS) \ + -:CPPFLAGS $(CPPFLAGS) $(AM_CPPFLAGS) \ + -:SHARED telepathy-salut \ + -:TAGS eng debug \ + -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \ + -:SOURCES $(telepathy_salut_SOURCES) \ + -:CFLAGS $(DEFS) $(CFLAGS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CFLAGS) \ + -:CPPFLAGS $(CPPFLAGS) $(AM_CPPFLAGS) -DBUILD_AS_ANDROID_SERVICE \ + -:LDFLAGS $(telepathy_salut_android_libs) $(AM_LDFLAGS) \ + -lsoup -lgio-2.0 -lgcrypt -lgnutls -lsqlite3 \ + -:LIBFILTER_STATIC salut-convenience \ + > $@ diff --git a/src/connection.c b/src/connection.c index e2f5e43..93b4be7 100644 --- a/src/connection.c +++ b/src/connection.c @@ -26,7 +26,6 @@ #include #include -#include #include #include diff --git a/src/salut.c b/src/salut.c index 161aeae..f257414 100644 --- a/src/salut.c +++ b/src/salut.c @@ -21,7 +21,11 @@ salut_create_connection_manager (void) } int +#ifdef BUILD_AS_ANDROID_SERVICE +salut_main (int argc, char **argv) +#else main (int argc, char **argv) +#endif { GLogLevelFlags fatal_mask; gint ret; -- 1.7.7