From: Xavier Claessens Date: Sat, 5 May 2007 18:25:08 +0000 (+0000) Subject: [darcs-to-svn @ Cleanup build system and add MC plugin] X-Git-Url: https://git.0d.be/?p=empathy.git;a=commitdiff_plain;h=6e3981da3b4a2126fe10a9952baf56e26970ca8d [darcs-to-svn @ Cleanup build system and add MC plugin] svn path=/trunk/; revision=29 --- diff --git a/autogen.sh b/autogen.sh index 1b93b756..135edc47 100644 --- a/autogen.sh +++ b/autogen.sh @@ -1,174 +1,19 @@ #!/bin/sh -# Run this to generate all the initial makefiles, etc. - -: ${AUTOCONF=autoconf} -: ${AUTOHEADER=autoheader} -: ${AUTOMAKE=automake-1.9} -: ${ACLOCAL=aclocal-1.9} -: ${LIBTOOLIZE=libtoolize} -: ${INTLTOOLIZE=intltoolize} -: ${LIBTOOL=libtool} -: ${GNOME_DOC_PREPARE=gnome-doc-prepare} - -srcdir=`dirname $0` -test -z "$srcdir" && srcdir=. - -ORIGDIR=`pwd` -cd $srcdir -PROJECT="empathy" -TEST_TYPE=-f -CONFIGURE=configure.ac - -DIE=0 - -($AUTOCONF --version) < /dev/null > /dev/null 2>&1 || { - echo - echo "You must have autoconf installed to compile $PROJECT." - echo "Download the appropriate package for your distribution," - echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/" - DIE=1 -} - -(grep "^AC_PROG_INTLTOOL" $srcdir/$CONFIGURE >/dev/null) && { - ($INTLTOOLIZE --version) < /dev/null > /dev/null 2>&1 || { - echo - echo "You must have \`intltoolize' installed to compile $PROJECT." - echo "Get ftp://ftp.gnome.org/pub/GNOME/stable/sources/intltool/intltool-0.35.tar.gz" - echo "(or a newer version if it is available)" - DIE=1 - } -} - -(grep "^GNOME_DOC_INIT" $srcdir/$CONFIGURE >/dev/null) && { - ($GNOME_DOC_PREPARE --version) < /dev/null > /dev/null 2>&1 || { - echo - echo "You must have \`gnome-doc-prepare' installed to compile $PROJECT." - DIE=1 - } -} - -($AUTOMAKE --version) < /dev/null > /dev/null 2>&1 || { - echo - echo "You must have automake 1.9 installed to compile $PROJECT." - echo "Get ftp://ftp.gnu.org/pub/gnu/automake/automake-1.9.6.tar.gz" - echo "(or a newer version of 1.9.x if it is available)" - DIE=1 -} - -(grep "^AM_PROG_LIBTOOL" $CONFIGURE >/dev/null) && { - ($LIBTOOL --version) < /dev/null > /dev/null 2>&1 || { - echo - echo "**Error**: You must have \`libtool' installed to compile $PROJECT." - echo "Get ftp://ftp.gnu.org/pub/gnu/libtool/libtool-1.5.22.tar.gz" - echo "(or a newer version if it is available)" - DIE=1 - } -} - -if grep "^AM_[A-Z0-9_]\{1,\}_GETTEXT" "$CONFIGURE" >/dev/null; then - if grep "sed.*POTFILES" "$CONFIGURE" >/dev/null; then - GETTEXTIZE="" - else - if grep "^AM_GLIB_GNU_GETTEXT" "$CONFIGURE" >/dev/null; then - GETTEXTIZE="glib-gettextize" - GETTEXTIZE_URL="ftp://ftp.gtk.org/pub/gtk/v2.0/glib-2.0.0.tar.gz" - else - GETTEXTIZE="gettextize" - GETTEXTIZE_URL="ftp://alpha.gnu.org/gnu/gettext-0.10.35.tar.gz" - fi - - $GETTEXTIZE --version < /dev/null > /dev/null 2>&1 - if test $? -ne 0; then - echo - echo "**Error**: You must have \`$GETTEXTIZE' installed to compile $PKG_NAME." - echo "Get $GETTEXTIZE_URL" - echo "(or a newer version if it is available)" - DIE=1 - fi - fi -fi - -if test "$DIE" -eq 1; then - exit 1 -fi - -test $TEST_TYPE $FILE || { - echo "You must run this script in the top-level $PROJECT directory" - exit 1 -} - -#if test -z "$*"; then -# echo "I am going to run ./configure with no arguments - if you wish " -# echo "to pass any to it, please specify them on the $0 command line." -#fi - -case $CC in -*xlc | *xlc\ * | *lcc | *lcc\ *) am_opt=--include-deps;; -esac - -for coin in . -do - dr=`dirname $coin` - if test -f $dr/NO-AUTO-GEN; then - echo skipping $dr -- flagged as no auto-gen - else - echo processing $dr - macrodirs= #`sed -n -e 's,AM_ACLOCAL_INCLUDE(\(.*\)),\1,gp' < $coin` - ( cd $dr - aclocalinclude="$ACLOCAL_FLAGS" - for k in $macrodirs; do - if test -d $k; then - aclocalinclude="$aclocalinclude -I $k" - ##else - ## echo "**Warning**: No such directory \`$k'. Ignored." - fi - done - if grep "^AM_GLIB_GNU_GETTEXT" $CONFIGURE >/dev/null; then - if grep "sed.*POTFILES" $CONFIGURE >/dev/null; then - : do nothing -- we still have an old unmodified $CONFIGURE - else - echo "Creating $dr/aclocal.m4 ..." - test -r $dr/aclocal.m4 || touch $dr/aclocal.m4 - echo "Running glib-gettextize... Ignore non-fatal messages." - echo "no" | glib-gettextize --force --copy - echo "Making $dr/aclocal.m4 writable ..." - test -r $dr/aclocal.m4 && chmod u+w $dr/aclocal.m4 - fi - fi - if grep "^IT_PROG_INTLTOOL" $CONFIGURE >/dev/null; then - echo "Running intltoolize..." - intltoolize --copy --force --automake - fi - if grep "^GNOME_DOC_INIT" $CONFIGURE >/dev/null; then - echo "Running $GNOME_DOC_PREPARE..." - $GNOME_DOC_PREPARE --force --copy || exit 1 - fi - if grep "^AM_PROG_LIBTOOL" $CONFIGURE >/dev/null; then - echo "Running $LIBTOOLIZE..." - $LIBTOOLIZE --force --copy - fi - echo "Running $ACLOCAL $aclocalinclude ..." - $ACLOCAL $aclocalinclude - if grep "^AM_CONFIG_HEADER" $CONFIGURE >/dev/null; then - echo "Running $AUTOHEADER..." - $AUTOHEADER - fi - echo "Running $AUTOMAKE --gnu $am_opt ..." - $AUTOMAKE --add-missing --gnu $am_opt - echo "Running $AUTOCONF ..." - $AUTOCONF - ) - fi +set -e + +autoreconf -i --force + +run_configure=true +for arg in $*; do + case $arg in + --no-configure) + run_configure=false + ;; + *) + ;; + esac done -conf_flags="--enable-maintainer-mode" - -cd "$ORIGDIR" - -if test x$NOCONFIGURE = x; then - echo Running $srcdir/configure $conf_flags "$@" ... - $srcdir/configure $conf_flags "$@" \ - && echo Now type \`make\' to compile $PROJECT || exit 1 -else - echo Skipping configure process. +if test $run_configure = true; then + ./configure "$@" fi diff --git a/configure.ac b/configure.ac index 2a84a1b7..d03973ce 100644 --- a/configure.ac +++ b/configure.ac @@ -26,17 +26,40 @@ GTK_REQUIRED=2.10.0 GCONF_REQUIRED=1.2.0 LIBGLADE_REQUIRED=2.0.0 TELEPATHY_REQUIRED=0.0.51 -MISSION_CONTROL_REQUIRED=4.20 +MISSION_CONTROL_REQUIRED=0.21 + +IDT_COMPILE_WARNINGS GLIB_GENMARSHAL=`$PKG_CONFIG glib-2.0 --variable=glib_genmarshal` AC_SUBST(GLIB_GENMARSHAL) -IDT_COMPILE_WARNINGS +pluginlibdir=`$PKG_CONFIG mission-control --variable=pluginlibdir` +AC_SUBST(pluginlibdir) + +dnl ----------------------------------------------------------- +dnl Language Support +dnl ----------------------------------------------------------- + +GETTEXT_PACKAGE=empathy +AC_SUBST(GETTEXT_PACKAGE) +AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE",[Gettext package name]) + +AM_GLIB_GNU_GETTEXT dnl ----------------------------------------------------------- dnl Pkg-Config dependency checks dnl ----------------------------------------------------------- +PKG_CHECK_MODULES(LIBEMPATHY, +[ + glib-2.0 >= $GLIB_REQUIRED + gobject-2.0 + gconf-2.0 >= $GCONF_REQUIRED + libxml-2.0 + libtelepathy >= $TELEPATHY_REQUIRED + libmissioncontrol >= $MISSION_CONTROL_REQUIRED +]) + PKG_CHECK_MODULES(EMPATHY, [ glib-2.0 >= $GLIB_REQUIRED @@ -49,15 +72,14 @@ PKG_CHECK_MODULES(EMPATHY, libmissioncontrol >= $MISSION_CONTROL_REQUIRED ]) -dnl ----------------------------------------------------------- -dnl Language Support -dnl ----------------------------------------------------------- -GETTEXT_PACKAGE=empathy -AC_SUBST(GETTEXT_PACKAGE) -AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE",[Gettext package name]) - -AM_GLIB_GNU_GETTEXT - +PKG_CHECK_MODULES(MISSION_CONTROL_PLUGINS, +[ + mission-control >= $MISSION_CONTROL_REQUIRED + glib-2.0 >= $GLIB_REQUIRED + gobject-2.0 + dbus-glib-1 + libtelepathy >= $TELEPATHY_REQUIRED +]) dnl ----------------------------------------------------------- AC_OUTPUT([ diff --git a/libempathy-gtk/Makefile.am b/libempathy-gtk/Makefile.am index f6ed2fb3..2818b2a2 100644 --- a/libempathy-gtk/Makefile.am +++ b/libempathy-gtk/Makefile.am @@ -1,11 +1,11 @@ AM_CPPFLAGS = \ - -I. \ - -I$(top_srcdir) \ - -DDATADIR=\""$(datadir)"\" \ - -DLOCALEDIR=\""$(datadir)/locale"\" \ $(EMPATHY_CFLAGS) \ $(WARN_CFLAGS) +AM_LDFLAGS = \ + $(top_builddir)/libempathy/libempathy.la \ + $(EMPATHY_LIBS) + noinst_LTLIBRARIES = libempathy-gtk.la libempathy_gtk_la_SOURCES = \ @@ -32,10 +32,6 @@ libempathy_gtk_la_SOURCES = \ gossip-presence-chooser.c gossip-presence-chooser.h \ gossip-ui-utils.c gossip-ui-utils.h -libempathy_gtk_la_LIBADD = \ - $(top_builddir)/libempathy/libempathy.la \ - $(EMPATHY_LIBS) - libempathy_gtk_includedir = $(includedir)/empathy/ gladedir = $(datadir)/empathy diff --git a/libempathy/Makefile.am b/libempathy/Makefile.am index c681aa83..98349b20 100644 --- a/libempathy/Makefile.am +++ b/libempathy/Makefile.am @@ -1,11 +1,12 @@ AM_CPPFLAGS = \ - -I. \ - -I$(top_srcdir) \ -DDATADIR=\""$(datadir)"\" \ -DLOCALEDIR=\""$(datadir)/locale"\" \ - $(EMPATHY_CFLAGS) \ + $(LIBEMPATHY_CFLAGS) \ $(WARN_CFLAGS) +AM_LDFLAGS = \ + $(LIBEMPATHY_LIBS) + BUILT_SOURCES = \ empathy-marshal.h \ empathy-marshal.c \ @@ -30,9 +31,6 @@ libempathy_la_SOURCES = \ empathy-chandler.c empathy-chandler.h \ empathy-marshal-main.c -libempathy_la_LIBADD = \ - $(EMPATHY_LIBS) - libempathy_includedir = $(includedir)/empathy/ %-marshal.h: %-marshal.list Makefile.am diff --git a/src/Makefile.am b/src/Makefile.am index 83b07179..86ffade6 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1,29 +1,33 @@ -AM_CPPFLAGS = \ - -I$(top_srcdir) \ - -DPREFIX="\"$(prefix)"\" \ - -DSYSCONFDIR=\""$(sysconfdir)"\" \ - -DDATADIR=\""$(datadir)"\" \ - -DLIBDIR=\""$(libdir)"\" \ - $(EMPATHY_CFLAGS) \ - $(WARN_CFLAGS) - -LDADD = \ - $(top_builddir)/libempathy/libempathy.la \ +cflags = $(EMPATHY_CFLAGS) \ + $(WARN_CFLAGS) + +libs = $(top_builddir)/libempathy/libempathy.la \ $(top_builddir)/libempathy-gtk/libempathy-gtk.la \ $(EMPATHY_LIBS) bin_PROGRAMS = empathy empathy-accounts empathy-chat empathy-contact-list -empathy_SOURCES = \ - empathy-main.c -empathy_accounts_SOURCES = \ - empathy-accounts-main.c +empathy_SOURCES = empathy-main.c +empathy_CPPFLAGS = $(cflags) +empathy_LDFLAGS = $(libs) + +empathy_accounts_SOURCES = empathy-accounts-main.c +empathy_accounts_CPPFLAGS = $(cflags) +empathy_accounts_LDFLAGS = $(libs) + +empathy_chat_SOURCES = empathy-chat-main.c +empathy_chat_CPPFLAGS = $(cflags) +empathy_chat_LDFLAGS = $(libs) -empathy_chat_SOURCES = \ - empathy-chat-main.c +empathy_contact_list_SOURCES = empathy-contact-list-main.c +empathy_contact_list_CPPFLAGS = $(cflags) +empathy_contact_list_LDFLAGS = $(libs) -empathy_contact_list_SOURCES = \ - empathy-contact-list-main.c +# MC plugin +pluginlib_LTLIBRARIES = libempathy-filter-plugin.la +libempathy_filter_plugin_la_SOURCES = empathy-filter-plugin.c +libempathy_filter_plugin_la_CPPFLAGS = $(MISSION_CONTROL_PLUGINS_CFLAGS) +libempathy_filter_plugin_la_LDFLAGS = $(MISSION_CONTROL_PLUGINS_LIBS) # Dbus service file servicedir = $(datadir)/dbus-1/services diff --git a/src/empathy-filter-plugin.c b/src/empathy-filter-plugin.c new file mode 100644 index 00000000..8579213f --- /dev/null +++ b/src/empathy-filter-plugin.c @@ -0,0 +1,61 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ +/* + * Copyright (C) 2007 Collabora Ltd. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + * + * Authors: Xavier Claessens + */ + +#include + +#include +#include + +static void filter_plugin_text_channel (McdDispatcherContext *ctx); + +static McdFilter text_in_filters[] = { + {filter_plugin_text_channel, MCD_FILTER_PRIORITY_USER}, + {NULL, 0} +}; + +void +mcd_filters_init (McdDispatcher *dispatcher) +{ + mcd_dispatcher_register_filters (dispatcher, + text_in_filters, + TELEPATHY_CHAN_IFACE_TEXT_QUARK, + MCD_FILTER_IN); +} + +static void +filter_plugin_text_channel (McdDispatcherContext *ctx) +{ + McdChannel *channel; + const gchar *channel_name; + + channel = mcd_dispatcher_context_get_channel (ctx); + channel_name = mcd_channel_get_name (channel); + + if (strcmp (channel_name, "goerge.w.bush@whitehouse.com") == 0) { + g_debug ("Blocking contact"); + mcd_dispatcher_context_process (ctx, FALSE); + return; + } + + mcd_dispatcher_context_process (ctx, TRUE); +} +