[darcs-to-svn @ Cleanup build system and add MC plugin]
authorXavier Claessens <xclaesse@src.gnome.org>
Sat, 5 May 2007 18:25:08 +0000 (18:25 +0000)
committerXavier Claessens <xclaesse@src.gnome.org>
Sat, 5 May 2007 18:25:08 +0000 (18:25 +0000)
svn path=/trunk/; revision=29

autogen.sh
configure.ac
libempathy-gtk/Makefile.am
libempathy/Makefile.am
src/Makefile.am
src/empathy-filter-plugin.c [new file with mode: 0644]

index 1b93b75..135edc4 100644 (file)
 #!/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
index 2a84a1b..d03973c 100644 (file)
@@ -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([
index f6ed2fb..2818b2a 100644 (file)
@@ -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
index c681aa8..98349b2 100644 (file)
@@ -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
index 83b0717..86ffade 100644 (file)
@@ -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 (file)
index 0000000..8579213
--- /dev/null
@@ -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 <xclaesse@gmail.com>
+ */
+
+#include <glib.h>
+
+#include <mission-control/mcd-dispatcher.h>
+#include <mission-control/mcd-dispatcher-context.h>
+
+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);
+}
+