From 66f9d47c926fc0db94354883f3c79ac73b462b9d Mon Sep 17 00:00:00 2001 From: Alvaro Soliverez Date: Mon, 14 Nov 2011 16:27:47 -0300 Subject: [PATCH] Support building for Android, modified from a patch contributed by Derek Foreman --- .gitignore | 1 + Android.mk | 37 +++++++++++++++++++++++++++++++++++++ autogen.sh | 10 +++++----- configure.ac | 10 ++++++++++ extensions/Makefile.am | 12 ++++++++++++ lib/gibber/Makefile.am | 11 +++++++++++ src/Makefile.am | 28 ++++++++++++++++++++++++++++ src/connection.c | 1 - src/salut.c | 4 ++++ 9 files changed, 108 insertions(+), 6 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..a87e498 --- /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 \ + --disable-submodules \ + --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/autogen.sh b/autogen.sh index e3c4720..4da1c1f 100755 --- a/autogen.sh +++ b/autogen.sh @@ -16,19 +16,19 @@ fi autoreconf -i -f -#Check if Android build -run_android_build=false +#Check if building submodules +build_submodules=true for arg in $*; do case $arg in - --enable-android) - run_android_build=true + --disable-submodules) + build_submodules=false ;; *) ;; esac done -if test $run_android_build = false; then +if test $build_submodules = true; then # Fetch Wocky if needed if test ! -f lib/ext/wocky/autogen.sh; then diff --git a/configure.ac b/configure.ac index 0fa3390..8e03f8f 100644 --- a/configure.ac +++ b/configure.ac @@ -166,6 +166,12 @@ AC_SUBST(GLIB_LIBS) GLIB_GENMARSHAL=`$PKG_CONFIG --variable=glib_genmarshal glib-2.0` AC_SUBST(GLIB_GENMARSHAL) +dnl Check for Glib +PKG_CHECK_MODULES(GIO, [gio-2.0]) + +AC_SUBST(GIO_CFLAGS) +AC_SUBST(GIO_LIBS) + dnl Check for D-Bus PKG_CHECK_MODULES(DBUS, [dbus-1 >= 1.1.0, dbus-glib-1 >= 0.61]) @@ -204,6 +210,10 @@ else AC_MSG_WARN([libuuid not found, falling back to generating random IDs]) fi +AC_ARG_ENABLE(submodules, + AS_HELP_STRING([--disable-submodules],[Use system versions of Wocky and Telepathy-Yell, rather than submodules]), + build_submodules=$enableval, build_submodules=yes ) + 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..049f35f 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 \ @@ -172,24 +177,28 @@ AM_CFLAGS = \ $(GCOV_CFLAGS) \ @LIBXML2_CFLAGS@ \ @GLIB_CFLAGS@ \ + @GIO_CFLAGS@ \ @GMODULE_CFLAGS@ \ @WOCKY_CFLAGS@ \ @DBUS_CFLAGS@ \ @AVAHI_CFLAGS@ \ @TELEPATHY_GLIB_CFLAGS@ \ @UUID_CFLAGS@ \ + @LIBSOUP_CFLAGS@ \ $(NULL) AM_LDFLAGS = \ $(GCOV_LIBS) \ @LIBXML2_LIBS@ \ @GLIB_LIBS@ \ + @GIO_LIBS@ \ @GMODULE_LIBS@ \ @WOCKY_LIBS@ \ @DBUS_LIBS@ \ @AVAHI_LIBS@ \ @TELEPATHY_GLIB_LIBS@ \ @UUID_LIBS@ \ + @LIBSOUP_LIBS@ \ $(NULL) # Teach it how to make libgibber.la @@ -237,3 +246,22 @@ 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) \ + -: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.3