From 26b4cc4aad93e25dab1e1f38f19f1ae69cde389c Mon Sep 17 00:00:00 2001 From: =?utf8?q?C=C3=A9dric=20Cabessa?= Date: Sun, 23 Jan 2011 14:33:43 +0100 Subject: [PATCH] configure: add options to disable emacs/zsh/bash and choose install dir. 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 | 2 ++ completion/Makefile.local | 4 +++ configure | 53 +++++++++++++++++++++++++++++++++++++-- emacs/Makefile.local | 2 ++ 4 files changed, 59 insertions(+), 2 deletions(-) diff --git a/Makefile.local b/Makefile.local index f9b5a9b3..3c6151cf 100644 --- a/Makefile.local +++ b/Makefile.local @@ -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: diff --git a/completion/Makefile.local b/completion/Makefile.local index 6a6012d4..0b74c065 100644 --- a/completion/Makefile.local +++ b/completion/Makefile.local @@ -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 diff --git a/configure b/configure index c58dd0fd..c7ec4145 100755 --- 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) \\ diff --git a/emacs/Makefile.local b/emacs/Makefile.local index 86f9b07f..9ea8e491 100644 --- a/emacs/Makefile.local +++ b/emacs/Makefile.local @@ -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: -- 2.43.0