[nautilus-actions/file-manager-actions] Have a review of m4 macros



commit d5a6eaa93275e6ecb0bd1cdece89de5beae7af7b
Author: Pierre Wieser <pwieser trychlos org>
Date:   Wed Apr 29 18:57:06 2015 +0200

    Have a review of m4 macros

 ChangeLog                      |   19 +++++++
 INSTALL                        |    8 ++--
 NEWS                           |   23 +++++++--
 configure.ac                   |  111 +++++++++++++++++++--------------------
 m4/na-check-for-gconf.m4       |   77 +++++++++++----------------
 m4/na-check-for-gdbus.m4       |   69 -------------------------
 m4/na-check-module.m4          |   42 +++++++--------
 m4/na-file-manager.m4          |   90 ++++++++++++++++++++++++++++++++
 maintainer/run-autogen.sh      |    3 +-
 src/plugin-tracker/Makefile.am |   11 ----
 src/utils/Makefile.am          |   11 ----
 11 files changed, 237 insertions(+), 227 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index eae85ef..e3bd56c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,25 @@
+2015-02-25 Pierre Wieser <pwieser trychlos org>
+
+       * maintainer/run-autogen.sh: defaults to enable nautilus.
+
+       * m4/na-check-module.m4: remove Gtk2 vs. Gtk3 checks.
+
+       * m4/na-check-for-gconf.m4: GConf defaults to be disabled.
+
+       * m4/na-check-for-gdbus.m4,
+       * m4/na-check-for-gtk.m4: removed files.
+
+       * m4/na-file-manager.m4: new file.
+
+       * src/plugin-tracker/Makefile.am,
+       * src/utils/Makefile.am: updated accordingly.
+
 2015-02-24 Pierre Wieser <pwieser trychlos org>
 
        Start with File-Manager Actions.
+
+       * configure.ac:
+       - bump next release version.
        
        * ChangeLog-2014: copied from ChangeLog, which is reset.
 
diff --git a/INSTALL b/INSTALL
index a1e89e1..007e939 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,7 +1,7 @@
 Installation Instructions
 *************************
 
-Copyright (C) 1994-1996, 1999-2002, 2004-2011 Free Software Foundation,
+Copyright (C) 1994-1996, 1999-2002, 2004-2013 Free Software Foundation,
 Inc.
 
    Copying and distribution of this file, with or without modification,
@@ -309,9 +309,10 @@ causes the specified `gcc' to be used as the C compiler (unless it is
 overridden in the site shell script).
 
 Unfortunately, this technique does not work for `CONFIG_SHELL' due to
-an Autoconf bug.  Until the bug is fixed you can use this workaround:
+an Autoconf limitation.  Until the limitation is lifted, you can use
+this workaround:
 
-     CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
+     CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash
 
 `configure' Invocation
 ======================
@@ -367,4 +368,3 @@ operates.
 
 `configure' also accepts some other, not widely useful, options.  Run
 `configure --help' for more details.
-
diff --git a/NEWS b/NEWS
index 741067c..2b05f27 100644
--- a/NEWS
+++ b/NEWS
@@ -3,10 +3,25 @@ Version 3.4
 
        Release date
 
-       The work on this version started on february 2015. At this date,
-       we target to support:
-       - Debian 7.0 Wheezy, published on 2013-05-04
-       - Unbuntu 12.04 LTS The Precise Pangolin, published on 2012-04-26. 
+       Libraries supported versions:
+
+               The work on this version started on february 2015. At this date,
+               we target to support:
+               - Debian 7.0 Wheezy, published on 2013-05-04
+               - Unbuntu 12.04 LTS The Precise Pangolin, published on 2012-04-16.
+
+       What's new here:
+
+               GConf is more and more deprecated.
+               GConf support, which provides the GConf I/O Provider, is no more
+               automatically built, but defaults to be disabled. It must be
+               explicitely enabled from configure in order the GConf I/O Provider
+               to be built.
+
+               As we target now Gtk+ 3.4, support for Gtk+2 is removed.
+
+               As we target now GLib 2.32, support for legacy compatibility
+               layers is removed: dbus-glib-1, libICE, libSM.
 
 Version 3.2.4
 =============
diff --git a/configure.ac b/configure.ac
index df7e422..b3291e7 100644
--- a/configure.ac
+++ b/configure.ac
@@ -60,45 +60,31 @@ NA_MAINTAINER_CHECK_MODE
 # libtool
 AM_PROG_LIBTOOL
 
-# localization
-# note that this same version is also required by autogen.sh
-IT_PROG_INTLTOOL([0.35.5])
-GETTEXT_PACKAGE=${PACKAGE}
-AC_SUBST([GETTEXT_PACKAGE])
-AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],["${GETTEXT_PACKAGE}"],[gettext package])
-AM_GLIB_GNU_GETTEXT
-
-# a counter of fatal warnings emitted
-let na_fatal_count=0
-
 # we are using pkgconfig for all development libraries we need
 AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
 if test "${PKG_CONFIG}" = "no"; then
        AC_MSG_ERROR([You need to install pkg-config])
 fi
 
-# Have and want GConf support ?
-NA_CHECK_FOR_GCONF
+# Oldest supported distribution as of Feb. 2015: Ubuntu 12.04 LTS
+glib_required=2.32.1
+gtk_required=3.4.1
+intltool_required=0.50.2
 
-# Oldest supported distribution as of Apr. 2013: Ubuntu 10 LTS (Gnome 2.30)
-glib_required=2.24.0
-gtk_required=2.20.0
-NA_CHECK_FOR_GTK
-NA_CHECK_MODULE([GLIB],    [glib-2.0 >= ${glib_required}])
-NA_CHECK_MODULE([GMODULE], [gmodule-2.0 >= ${glib_required}])
+nautilus_required=3.4.1
 
-# GDBus comes in GIO with 2.26
-# so uses GDBus if present, or fallback into dbus-glib-1
-NA_CHECK_FOR_GDBUS
+# localization
+# note that this same intltool version is also required by autogen.sh
+# and thus set in maintainer/run-autogen.sh script
+IT_PROG_INTLTOOL([${intltool_required}])
+GETTEXT_PACKAGE=${PACKAGE}
+AC_SUBST([GETTEXT_PACKAGE])
+AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],["${GETTEXT_PACKAGE}"],[gettext package])
+AM_GLIB_GNU_GETTEXT
 
-# other required libraries
-dnl aclocal complains if the comma is not just after the square bracket
-NA_CHECK_MODULE([GIO_UNIX],[gio-unix-2.0])
-NA_CHECK_MODULE([GTOP],    [libgtop-2.0 >= 2.23.1])
-NA_CHECK_MODULE([LIBXML],  [libxml-2.0 >= 2.6])
-NA_CHECK_MODULE([SM],      [sm >= 1.0])
-NA_CHECK_MODULE([ICE],     [ice])
-NA_CHECK_MODULE([UUID],    [uuid])
+# a counter of fatal warnings emitted
+let na_fatal_count=0
+na_fatal_list=""
 
 # GLib marshaling
 AC_PATH_PROG(GLIB_GENMARSHAL, glib-genmarshal, no)
@@ -106,22 +92,25 @@ if test "${GLIB_GENMARSHAL}" = "no"; then
        AC_MSG_WARN([glib2-devel installed, but glib-genmarshal not found])
        let na_fatal_count+=1
 fi
+# Have and want GConf support ?
+# As of 3.4 release, we are deprecating GConf, disabled it by default.
+# We only search for the libraries when explicitely required from 
+# configure. This is a first step deprecation; in a second step, we
+# will emit a warning.
+NA_CHECK_FOR_GCONF
 
-##
-## Nautilus file-manager
-##
-NA_CHECK_MODULE([NAUTILUS_EXTENSION],[libnautilus-extension >= 2.16])
-#
-# when working in a test environment, nautilus extensions are typically
-# installed in a non-standard location ; lets specify this location here
-NA_NAUTILUS_EXTDIR
-#
-# Check for menu update function
-AC_CHECK_LIB([nautilus-extension],[nautilus_menu_item_new])
-AC_CHECK_FUNCS([nautilus_menu_provider_emit_items_updated_signal])
-#
-# starting with 2.91.90, Nautilus no more allows extensions to add toolbar items
-AC_CHECK_FUNCS([nautilus_menu_provider_get_toolbar_items])
+# As of 3.4 release, remove Gtk+2 support, only allowing for Gtk+3
+dnl aclocal complains if the comma is not just after the square bracket
+NA_CHECK_MODULE([GTK3],    [gtk+-3.0],   [${gtk_required}])
+NA_CHECK_MODULE([GLIB],    [glib-2.0],   [${glib_required}])
+NA_CHECK_MODULE([GMODULE], [gmodule-2.0],[${glib_required}])
+NA_CHECK_MODULE([GIO_UNIX],[gio-unix-2.0])
+NA_CHECK_MODULE([GTOP],    [libgtop-2.0],[2.23.1])
+NA_CHECK_MODULE([LIBXML],  [libxml-2.0], [2.6])
+NA_CHECK_MODULE([UUID],    [uuid])
+
+# target a file manager (nautilus, nemo, ...)
+NA_TARGET_FILE_MANAGER
 
 AC_SUBST([NAUTILUS_ACTIONS_CFLAGS])
 AC_SUBST([NAUTILUS_ACTIONS_LIBS])
@@ -129,6 +118,9 @@ AC_SUBST([NAUTILUS_ACTIONS_LIBS])
 # defines a log domain for each component
 NA_LOG_DOMAINS
 
+# print the debug output be printed to the console
+AC_DEFINE([NAUTILUS_ACTIONS_DEBUG],["NAUTILUS_ACTIONS_DEBUG"],[Debug environment variable])
+
 # add --with-default-io-provider option
 NA_SET_DEFAULT_IO_PROVIDER([io-desktop])
 
@@ -186,10 +178,6 @@ GNOME_DOC_INIT(,,[gdu_cv_have_gdu=no])
 # add --enable-html-manuals and --enable-pdf-manuals configure options
 NA_ENABLE_MANUALS
 
-# define NA_MAINTAINER_MODE variable
-NA_MAINTAINER_CHECK_MODE
-AC_DEFINE([NAUTILUS_ACTIONS_DEBUG],["NAUTILUS_ACTIONS_DEBUG"],[Debug environment variable])
-
 # display and keep configuration informations
 config_options="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" 
 AC_DEFINE_UNQUOTED([NA_CONFIG_OPTIONS],["$0 ${config_options}"],["Configure options"])
@@ -197,25 +185,34 @@ AC_DEFINE_UNQUOTED([NA_CONFIG_OPTIONS],["$0 ${config_options}"],["Configure opti
 AC_OUTPUT
 
 msg_gtk_doc=`if test "x${enable_gtk_doc}" = "xno"; then echo "disabled"; else echo "enabled"; fi`
-msg_gtk_version=""
-if test "${have_gtk3}" = "yes"; then msg_gtk_version="Gtk+ 3.0"; 
-       elif  test "${have_gtk2}" = "yes"; then msg_gtk_version="Gtk+ 2.0"; fi
 $as_echo "
        ${PACKAGE_STRING} configuration summary:
 
        Installation prefix             ${prefix}
        Build system type               ${ac_cv_build}
-       Nautilus extensions directory   ${with_nautilus_extdir}
-       Gtk+ version                    ${msg_gtk_version}
+       Gtk+ version                    ${GTK3_msg_version}
+       GLib version                    ${GLIB_msg_version}
        Default I/O provider            ${with_default_io_provider}
+       Targeted file-manager           ${enable_file_manager}"
+if test "${enable_file_manager}" = "nautilus"; then
+       $as_echo "      Nautilus extensions directory   ${with_nautilus_extdir}"
+fi
+$as_echo "     GConf enabled                   ${enable_gconf}"
+if test "${enable_gconf}" = "yes"; then
+       $as_echo "      GConf schemas installation      ${msg_schemas_install}"
+fi
+$as_echo "     Maintainer mode                 ${msg_maintainer_mode}
        Enable deprecated functions     ${enable_deprecated}
-       GConf enabled                   ${enable_gconf}
-       GConf schemas installation      ${msg_schemas_install}
-       Maintainer mode                 ${msg_maintainer_mode}
        API Reference generation        ${msg_gtk_doc}
        HTML User's Manuals generation  ${msg_html_manuals}
        PDF User's Manuals generation   ${msg_pdf_manuals}
 "
+if test ${na_fatal_count} -gt 0; then
+       $as_echo "${na_fatal_list}
+"
+       exit 1
+fi
+
 #      Preprocessor flags              ${AM_CPPFLAGS}
 #      Compiler flags                  ${AM_CFLAGS} ${NAUTILUS_ACTIONS_CFLAGS}
 #      Linker flags                    ${NAUTILUS_ACTIONS_LIBS}
diff --git a/m4/na-check-for-gconf.m4 b/m4/na-check-for-gconf.m4
index bfb1413..cbd0c93 100644
--- a/m4/na-check-for-gconf.m4
+++ b/m4/na-check-for-gconf.m4
@@ -25,84 +25,69 @@
 #   Pierre Wieser <pwieser trychlos org>
 #   ... and many others (see AUTHORS)
 
-# serial 2 review the macro behavior
+# serial 3 GConf is deprecated, and thus disabled by default
 
 dnl let the user choose whether to compile with GConf enabled
 dnl --enable-gconf
 dnl
-dnl defaults to automatically enable GConf if it is present on the
-dnl compiling system, or disable it if it is absent
-dnl if --enable-gconf is specified, then GConf subsystem must be present
+dnl defaults to disabling GConf, only searching for a GConf subsystem
+dnl when the '--enable-gconf' option is specified.
 dnl
 dnl Please note that, from the packager point of view, we should have
 dnl both GConf2 and GConf2-devel package, in order to be able to build
 dnl and distribute the 'na-gconf' I/O provider
+dnl
+dnl Define the HAVE_GCONF conditional
 
 AC_DEFUN([NA_CHECK_FOR_GCONF],[
-       AC_REQUIRE([_AC_NA_ARG_GCONF])dnl
-       AC_REQUIRE([_AC_NA_CHECK_GCONF])dnl
+       AC_REQUIRE([_AC_NA_GCONF_ARG])dnl
+       AC_REQUIRE([_AC_NA_GCONF_CHECK])dnl
 ])
 
-AC_DEFUN([_AC_NA_ARG_GCONF],[
+AC_DEFUN([_AC_NA_GCONF_ARG],[
        AC_ARG_ENABLE(
                [gconf],
                AC_HELP_STRING(
                        [--enable-gconf],
-                       [whether to enable GConf subsystem @<:@auto@:>@]),
+                       [whether to enable GConf subsystem @<:@no@:>@]),
                [enable_gconf=$enableval],
-               [enable_gconf="auto"])
+               [enable_gconf="no"])
 ])
 
-AC_DEFUN([_AC_NA_CHECK_GCONF],[
-       AC_MSG_CHECKING([whether GConf is enabled])
+AC_DEFUN([_AC_NA_GCONF_CHECK],[
+       AC_MSG_CHECKING([whether GConf is required])
        AC_MSG_RESULT([${enable_gconf}])
        compile_with_gconf="no"
 
-       dnl if --enable-gconf is not specified, then we make the choice
-       dnl based on the presence of GConf subsystem (and development
-       dnl libraries)
-       if test "${enable_gconf}" = "auto"; then
-               AC_PATH_PROG([have_gconf],[gconftool-2],[yes],[no])
-               if test "${have_gconf}" = "yes"; then
-                       compile_with_gconf="yes"
-               fi
-
-       dnl if --enable-gconf is set to yes, then check that the subsystem
-       dnl is installed
-       else
-               if test "${enable_gconf}" = "yes"; then
-                       AC_PATH_PROG([have_gconf],[gconftool-2],[yes],[no])
-                       if test "${have_gconf}" = "no"; then
-                               AC_MSG_WARN([GConf2 subsystem is missing])
-                               let na_fatal_count+=1
-                       else
-                               compile_with_gconf="yes"
-                       fi
-               fi
-       fi
+       dnl as of 3.4, GConf is disabled if --enable-gconf is not specified
+       if test "${enable_gconf}" = "yes"; then
+               AC_PATH_PROG([have_gconftool],[gconftool-2],[yes],[no])
 
-       dnl if want to compile with GConf, then check that we have the
-       dnl development libraries
+               dnl this is not fatal to not have GConf (even if required)
+               dnl just the GConf I/O provider will not be built
+               if test "${have_gconftool}" != "yes"; then
+                       AC_MSG_WARN([GConf2 subsystem (gconftool-2) is missing])
 
-       if test "${compile_with_gconf}" = "yes"; then
-               PKG_CHECK_MODULES([GCONF],
-                       [gconf-2.0 >= 2.8.0],[have_gconf_devel="yes"],[have_gconf_devel="no"])
-               if test "${have_gconf_devel}" = "no"; then
-                       if test "${enable_gconf}" != "auto"; then
+               dnl if want to compile with GConf, then check that we have the
+               dnl development libraries
+               else
+                       PKG_CHECK_MODULES([GCONF],
+                                       [gconf-2.0 >= 2.8.0],[have_gconf_devel="yes"],[have_gconf_devel="no"])
+                       if test "${have_gconf_devel}" = "no"; then
                                AC_MSG_WARN([GConf2 development libraries are missing. Please install 
GConf2-devel package])
-                               let na_fatal_count+=1
+
+                       else
+                               compile_with_gconf="yes"
                        fi
-                       compile_with_gconf="no"
-               else
-                       msg_gconf2_version=$(pkg-config --modversion gconf-2.0)
                fi
        fi
 
        if test "${compile_with_gconf}" = "yes"; then
+               gconf_msg_version=$(pkg-config --modversion gconf-2.0)
                AC_SUBST([AM_CPPFLAGS],["${AM_CPPFLAGS} -DHAVE_GCONF"])
                NAUTILUS_ACTIONS_CFLAGS="${NAUTILUS_ACTIONS_CFLAGS} ${GCONF_CFLAGS}"
                NAUTILUS_ACTIONS_LIBS="${NAUTILUS_ACTIONS_LIBS} ${GCONF_LIBS}"
-               AC_DEFINE_UNQUOTED([HAVE_GCONF],[1],[Whether we compile against the GConf library])
+               AC_DEFINE_UNQUOTED([HAVE_GCONF],[1],[Whether we compile against the GConf library (and build 
the GConf I/O Provider)])
        fi
 
        _NA_GCONF_SOURCE_2(["${compile_with_gconf}"])
@@ -170,5 +155,5 @@ AC_DEFUN([_NA_GCONF_SOURCE_2],
                msg_schemas_install="enabled in ${GCONF_SCHEMA_FILE_DIR}"
        fi
       
-  AM_CONDITIONAL([GCONF_SCHEMAS_INSTALL], [test "$enable_schemas_install" != no -a "$1" = "yes"])
+  AM_CONDITIONAL([GCONF_SCHEMAS_INSTALL], [test "$enable_schemas_install" != "no" -a "$1" = "yes"])
 ])
diff --git a/m4/na-check-module.m4 b/m4/na-check-module.m4
index 85d058c..30afd3e 100644
--- a/m4/na-check-module.m4
+++ b/m4/na-check-module.m4
@@ -25,18 +25,21 @@
 #   Pierre Wieser <pwieser trychlos org>
 #   ... and many others (see AUTHORS)
 
-# serial 1 creation
+# serial 2 remove Gtk2 vs. Gtk3 check
 
-dnl usage:  NA_CHECK_MODULE(var,condition[,error])
+dnl usage:  NA_CHECK_MODULE(var,module[,[version],[error]])
 dnl
-dnl this macro checks that gtk+-2.0 and gtk+-3.0 libraries are not mixed
+dnl if 'error' = 'no', then only displays on information message, making
+dnl the lack of library non fatal.
 dnl
-dnl if 'error' != 'no', then displays an error message if condition is
-dnl not met.
 # translit($1, 'a-z', 'A-Z'),
 
 AC_DEFUN([NA_CHECK_MODULE],[
-       PKG_CHECK_MODULES([$1],[$2],[have_$1="yes"],[have_$1="no"])
+       _cond="$2"
+       if test "$3" != ""; then
+               _cond="$2 >= $3"
+       fi
+       PKG_CHECK_MODULES([$1],[${_cond}],[have_$1="yes"],[have_$1="no"])
 
        #echo "have_gtk2=$have_gtk2 have_gtk3=$have_gtk3"
        #echo "$1_CFLAGS='${$1_CFLAGS}'"
@@ -45,32 +48,25 @@ AC_DEFUN([NA_CHECK_MODULE],[
        #echo "against Gtk3: $(echo ${$1_LIBS} | grep -E 'gtk-@<:@^-@:>@+-3\.0')"
 
        if test "${have_$1}" = "yes"; then
-               if test "${have_gtk3}" = "yes"; then
-                       if echo ${$1_LIBS} | grep -qE 'gtk-@<:@^-@:>@+-2\.0'; then
-                               _NA_CHECK_MODULE_MSG([$3],[$1: compiling with Gtk+-3 but adresses Gtk+-2 
libraries])
-                               have_$1="no"
-                       fi
-               elif test "${have_gtk2}" = "yes"; then
-                       if echo ${$1_LIBS} | grep -qE 'gtk-@<:@^-@:>@+-3.0'; then
-                               _NA_CHECK_MODULE_MSG([$3],[$1: compiling with Gtk+-2 but adresses Gtk+-3 
libraries])
-                               have_$1="no"
-                       fi
-               fi
-       else
-               _NA_CHECK_MODULE_MSG([$3],[$1: condition $2 not satisfied])
-       fi
-
-       if test "${have_$1}" = "yes"; then
+               $1_msg_version=$(pkg-config --modversion $2)
                NAUTILUS_ACTIONS_CFLAGS="${NAUTILUS_ACTIONS_CFLAGS} ${$1_CFLAGS}"
                NAUTILUS_ACTIONS_LIBS="${NAUTILUS_ACTIONS_LIBS} ${$1_LIBS}"
+       else
+               _NA_CHECK_MODULE_MSG([$4],[$1: condition ${_cond} not satisfied])
        fi
 ])
 
+dnl what to do when the searched for library is missing: it is a fatal
+dnl error, or no ?
+
 AC_DEFUN([_NA_CHECK_MODULE_MSG],[
        if test "$1" = "no"; then
                AC_MSG_RESULT([warning: $2])
        else
-               AC_MSG_WARN([$2])
                let na_fatal_count+=1
+               AC_MSG_WARN([$2 (fatal_count=${na_fatal_count})])
+               if test "${na_fatal_list}" != ""; then na_fatal_list="${na_fatal_list}
+"; fi
+               na_fatal_list="${na_fatal_list}$2"
        fi
 ])
diff --git a/m4/na-file-manager.m4 b/m4/na-file-manager.m4
new file mode 100644
index 0000000..8371eee
--- /dev/null
+++ b/m4/na-file-manager.m4
@@ -0,0 +1,90 @@
+# Nautilus-Actions
+# A Nautilus extension which offers configurable context menu actions.
+#
+# Copyright (C) 2005 The GNOME Foundation
+# Copyright (C) 2006-2008 Frederic Ruaudel and others (see AUTHORS)
+# Copyright (C) 2009-2014 Pierre Wieser and others (see AUTHORS)
+#
+# Nautilus-Actions 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.
+#
+# Nautilus-Actions 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 Nautilus-Actions; see the file COPYING. If not, see
+# <http://www.gnu.org/licenses/>.
+#
+# Authors:
+#   Frederic Ruaudel <grumz grumz net>
+#   Rodrigo Moya <rodrigo gnome-db org>
+#   Pierre Wieser <pwieser trychlos org>
+#   ... and many others (see AUTHORS)
+
+# serial 1 let the user choose a target file-manager
+
+dnl defaults to nautilus
+
+AC_DEFUN([NA_TARGET_FILE_MANAGER],[
+
+       AC_ARG_ENABLE([file-manager],
+               AC_HELP_STRING(
+                       [--enable-file-manager=@<:@nautilus|nemo@:>@],
+                       [the targeted file manager @<:@nautilus@:>@]),
+               [enable_file_manager=$withval],
+               [enable_file_manager="nautilus"])
+
+       if test "${enable_file_manager}" = "nautilus"; then
+               AC_MSG_NOTICE([targeting Nautilus file-manager])
+               AC_REQUIRE([_AC_NA_FILE_MANAGER_NAUTILUS])dnl
+
+       elif test "${enable_file_manager}" = "nemo"; then
+               AC_MSG_NOTICE([targeting Nemo file-manager])
+       fi
+])
+
+# target file manager: nautilus
+# when working in a test environment, nautilus extensions are typically
+# installed in a non-standard location; lets specify this location here
+# --with-nautilus-extdir=<dir>
+
+AC_DEFUN([_AC_NA_FILE_MANAGER_NAUTILUS],[
+
+       AC_ARG_WITH(
+               [nautilus-extdir],
+               AC_HELP_STRING(
+                       [--with-nautilus-extdir=DIR],
+                       [nautilus plugins extension directory @<:@auto@:>@]),
+               [with_nautilus_extdir=$withval],
+               [with_nautilus_extdir=""])
+
+       if test "${with_nautilus_extdir}" = ""; then
+               if test "{PKG_CONFIG}" != ""; then
+                       with_nautilus_extdir=`${PKG_CONFIG} --variable=extensiondir libnautilus-extension`
+               fi
+       fi
+       if test "${with_nautilus_extdir}" = ""; then
+               AC_MSG_ERROR([Unable to determine nautilus extension folder, please use 
--with-nautilus-extdir option])
+       else
+               AC_MSG_NOTICE([installing plugins in ${with_nautilus_extdir}])
+               AC_SUBST([NAUTILUS_EXTENSIONS_DIR],[${with_nautilus_extdir}])
+               AC_DEFINE_UNQUOTED([NA_NAUTILUS_EXTENSIONS_DIR],[${with_nautilus_extdir}],[Nautilus 
extensions directory])
+       fi
+
+       NA_CHECK_MODULE([NAUTILUS_EXTENSION],[libnautilus-extension],[${nautilus_required}])
+
+       # Check for menu update function
+       AC_CHECK_LIB([nautilus-extension],[nautilus_menu_item_new])
+       AC_CHECK_FUNCS([nautilus_menu_provider_emit_items_updated_signal])
+
+       # starting with 2.91.90, Nautilus no more allows extensions to
+       #  add toolbar items
+       AC_CHECK_FUNCS([nautilus_menu_provider_get_toolbar_items])
+])
+
+AC_DEFUN([_AC_NA_FILE_MANAGER_NEMO],[
+])
diff --git a/maintainer/run-autogen.sh b/maintainer/run-autogen.sh
index 747c84e..d638b2d 100755
--- a/maintainer/run-autogen.sh
+++ b/maintainer/run-autogen.sh
@@ -142,9 +142,8 @@ conf_cmd="\${top_srcdir}/configure"
 conf_args="${conf_args}"
 conf_args="\${conf_args} --prefix=\${heredir}/_install"
 conf_args="\${conf_args} --sysconfdir=/etc"
+conf_args="\${conf_args} --enable-file-manager=nautilus"
 conf_args="\${conf_args} --with-nautilus-extdir=\${heredir}/_install/lib/nautilus"
-conf_args="\${conf_args} --disable-schemas-install"
-conf_args="\${conf_args} --disable-scrollkeeper"
 conf_args="\${conf_args} --enable-maintainer-mode"
 conf_args="\${conf_args} $*"
 conf_args="\${conf_args} \$*"
diff --git a/src/plugin-tracker/Makefile.am b/src/plugin-tracker/Makefile.am
index 65bb71e..8e47335 100644
--- a/src/plugin-tracker/Makefile.am
+++ b/src/plugin-tracker/Makefile.am
@@ -38,7 +38,6 @@ nautilus_extension_LTLIBRARIES = libnautilus-actions-tracker.la
 
 BUILT_SOURCES =
 
-if HAVE_GDBUS
 BUILT_SOURCES += \
        na-tracker-gdbus.c                                                                                    
  \
        na-tracker-gdbus.h                                                                                    
  \
@@ -55,16 +54,6 @@ na-tracker-gdbus.c na-tracker-gdbus.h: na-tracker-gdbus.xml
 
 DISTCLEANFILES = \
        na-tracker-gdbus-docs-org.nautilus_actions.DBus.Tracker.Properties1.xml
-endif
-
-if HAVE_DBUS_GLIB
-BUILT_SOURCES += \
-       na-tracker-dbus-glib.h                                                                          \
-       $(NULL)
-
-na-tracker-dbus-glib.h: na-tracker-dbus-glib.xml
-       dbus-binding-tool --mode=glib-server --prefix=na_tracker_dbus $< > $@
-endif
 
 nodist_libnautilus_actions_tracker_la_SOURCES = \
        $(BUILT_SOURCES)                                                                                      
  \
diff --git a/src/utils/Makefile.am b/src/utils/Makefile.am
index 89c12fd..d5d60d3 100644
--- a/src/utils/Makefile.am
+++ b/src/utils/Makefile.am
@@ -71,7 +71,6 @@ nautilus_actions_print_LDADD = \
 
 BUILT_SOURCES =
 
-if HAVE_GDBUS
 BUILT_SOURCES += \
        nautilus-actions-run-bindings.c                                                         \
        nautilus-actions-run-bindings.h                                                         \
@@ -84,16 +83,6 @@ nautilus-actions-run-bindings.c nautilus-actions-run-bindings.h: $(top_srcdir)/s
                --c-namespace NA_Tracker                                                                \
                --c-generate-object-manager                                                             \
                $<
-endif
-
-if HAVE_DBUS_GLIB
-BUILT_SOURCES += \
-       nautilus-actions-run-bindings.h                                                         \
-       $(NULL)
-
-nautilus-actions-run-bindings.h: $(top_srcdir)/src/plugin-tracker/na-tracker-dbus-glib.xml
-       dbus-binding-tool --mode=glib-client $< > $@
-endif
 
 nodist_nautilus_actions_run_SOURCES = \
        $(BUILT_SOURCES)                                                                                      
  \


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]