configure: add options to disable emacs/zsh/bash and choose install dir.
authorCédric Cabessa <ced@ryick.net>
Sun, 23 Jan 2011 13:33:43 +0000 (14:33 +0100)
committerCarl Worth <cworth@cworth.org>
Wed, 26 Jan 2011 12:30:32 +0000 (22:30 +1000)
add --bashcompletiondir and --zshcompletiondir (like --emacslispdir) to choose
installation dir for bash/zsh completion files

Make some features optional:
  --without-emacs / --with-emacs=no do not install lisp file
  --without-bash-completion / --with-bash-completion=no  do not install bash
files
  --without-zsh-completion / --with-zsh-completion=no do not install zsh files
By default, everything is enabled. You can reenable something with
  --with-feature=yes

Makefile.local
completion/Makefile.local
configure
emacs/Makefile.local

index f9b5a9b3417c7bec2c159df3e656a71434c6676c..3c6151cf2b89bbc6b2613e4eef9aa748992da85c 100644 (file)
@@ -277,6 +277,7 @@ ifeq ($(MAKECMDGOALS), install)
        @echo "through the process of configuring notmuch and creating"
        @echo "a database of existing email messages. The \"notmuch\""
        @echo "command will also offer some sample search commands."
+ifeq ($(WITH_EMACS), 1)
        @echo ""
        @echo "Beyond the command-line interface, notmuch also offers"
        @echo "a full-featured interface for reading and writing mail"
@@ -288,6 +289,7 @@ ifeq ($(MAKECMDGOALS), install)
        @echo "And then run emacs as \"emacs -f notmuch\" or invoke"
        @echo "the command \"M-x notmuch\" from within emacs."
 endif
+endif
 
 .PHONY: install-desktop
 install-desktop:
index 6a6012d442c89ecd2fce43ea8816bbe49103ee9d..0b74c06569202a9158d2a8455c71cd1909d48964 100644 (file)
@@ -12,7 +12,11 @@ install: install-$(dir)
 
 install-$(dir):
        @echo $@
+ifeq ($(WITH_BASH),1)
        mkdir -p $(DESTDIR)$(bash_completion_dir)
        install -m0644 $(bash_script) $(DESTDIR)$(bash_completion_dir)/notmuch
+endif
+ifeq ($(WITH_ZSH),1)
        mkdir -p $(DESTDIR)$(zsh_completion_dir)
        install -m0644 $(zsh_script) $(DESTDIR)$(zsh_completion_dir)/notmuch
+endif
index c58dd0fd471b98f7ebd716ae583e896f665db552..c7ec4145afb37518d2d2155911f86ef61effece2 100755 (executable)
--- a/configure
+++ b/configure
@@ -28,6 +28,9 @@ XAPIAN_CONFIG=${XAPIAN_CONFIG:-xapian-config}
 # options.
 PREFIX=/usr/local
 LIBDIR=
+WITH_EMACS=1
+WITH_BASH=1
+WITH_ZSH=1
 
 usage ()
 {
@@ -81,6 +84,15 @@ Fine tuning of some installation directories is available:
        --mandir=DIR            Install man pages to DIR [PREFIX/share/man]
        --sysconfdir=DIR        Read-only single-machine data [PREFIX/etc]
        --emacslispdir=DIR      Emacs code [PREFIX/share/emacs/site-lisp]
+       --bashcompletiondir=DIR Bash completions files [SYSCONFDIR/bash_completion.d]
+       --zshcompletiondir=DIR  Zsh completions files [PREFIX/share/zsh/functions/Completion/Unix]
+
+Some features can be disabled (--with-feature=no is equivalent to
+--without-feature) :
+
+       --without-emacs                 Do not install lisp file
+       --without-bash-completion       Do not install bash completions files
+       --without-zsh-completion        Do not install zsh completions files
 
 Additional options are accepted for compatibility with other
 configure-script calling conventions, but don't do anything yet:
@@ -114,6 +126,34 @@ for option; do
        SYSCONFDIR="${option#*=}"
     elif [ "${option%%=*}" = '--emacslispdir' ] ; then
        EMACSLISPDIR="${option#*=}"
+    elif [ "${option%%=*}" = '--bashcompletiondir' ] ; then
+       BASHCOMPLETIONDIR="${option#*=}"
+    elif [ "${option%%=*}" = '--zshcompletiondir' ] ; then
+       ZSHCOMLETIONDIR="${option#*=}"
+    elif [ "${option%%=*}" = '--with-emacs' ]; then
+       if [ "${option#*=}" = 'no' ]; then
+           WITH_EMACS=0
+       else
+           WITH_EMACS=1
+       fi
+    elif [ "${option}" = '--without-emacs' ] ; then
+       WITH_EMACS=0
+    elif [ "${option%%=*}" = '--with-bash-completion' ]; then
+       if [ "${option#*=}" = 'no' ]; then
+           WITH_BASH=0
+       else
+           WITH_BASH=1
+       fi
+    elif [ "${option}" = '--without-bash-completion' ] ; then
+       WITH_BASH=0
+    elif [ "${option%%=*}" = '--with-zsh-completion' ]; then
+       if [ "${option#*=}" = 'no' ]; then
+           WITH_ZSH=0
+       else
+           WITH_ZSH=1
+       fi
+    elif [ "${option}" = '--without-zsh-completion' ] ; then
+       WITH_ZSH=0
     elif [ "${option%%=*}" = '--build' ] ; then
        build_option="${option#*=}"
        case ${build_option} in
@@ -527,10 +567,10 @@ HAVE_EMACS = ${have_emacs}
 desktop_dir = \$(prefix)/share/applications
 
 # The directory to which bash completions files should be installed
-bash_completion_dir = \$(sysconfdir)/bash_completion.d
+bash_completion_dir = ${BASHCOMPLETIONDIR:=\$(sysconfdir)/bash_completion.d}
 
 # The directory to which zsh completions files should be installed
-zsh_completion_dir = \$(prefix)/share/zsh/functions/Completion/Unix
+zsh_completion_dir = ${ZSHCOMLETIONDIR:=\$(prefix)/share/zsh/functions/Completion/Unix}
 
 # Whether the getline function is available (if not, then notmuch will
 # build its own version)
@@ -572,6 +612,15 @@ HAVE_VALGRIND = ${have_valgrind}
 # And if so, flags needed at compile time for valgrind macros
 VALGRIND_CFLAGS = ${valgrind_cflags}
 
+# Support for emacs
+WITH_EMACS = ${WITH_EMACS}
+
+# Support for bash completion
+WITH_BASH = ${WITH_BASH}
+
+# Support for zsh completion
+WITH_ZSH = ${WITH_ZSH}
+
 # Combined flags for compiling and linking against all of the above
 CONFIGURE_CFLAGS = -DHAVE_GETLINE=\$(HAVE_GETLINE) \$(GMIME_CFLAGS)      \\
                   \$(TALLOC_CFLAGS) -DHAVE_VALGRIND=\$(HAVE_VALGRIND)   \\
index 86f9b07fe64bb46805f18bd3d2ad80c26dc3f0b7..9ea8e491a6d6308f430f9d2d1b0b6554e27af803 100644 (file)
@@ -22,11 +22,13 @@ emacs_bytecode := $(subst .el,.elc,$(emacs_sources))
 %.elc: %.el
        $(call quiet,EMACS) --directory emacs -batch -f batch-byte-compile $<
 
+ifeq ($(WITH_EMACS),1)
 ifeq ($(HAVE_EMACS),1)
 all: $(emacs_bytecode)
 endif
 
 install: install-emacs
+endif
 
 .PHONY: install-emacs
 install-emacs: