Instead, simply byte-compile the emacs source files as part of "make"
and install them as part of "make install". The byte compilation is
made conditional on the configure script finding the emacs binary.
That way, "make; make install" will still work for someone that doesn't
have emacs installed, (which was the only reason we had made a separate
"make install-emacs" target in the first place).
%.o: %.c $(global_deps)
$(call quiet,CC $(CFLAGS)) -c $(FINAL_CFLAGS) $< -o $@
%.o: %.c $(global_deps)
$(call quiet,CC $(CFLAGS)) -c $(FINAL_CFLAGS) $< -o $@
-%.elc: %.el
- $(call quiet,EMACS) --directory emacs -batch -f batch-byte-compile $<
-
.deps/%.d: %.c $(global_deps)
@set -e; rm -f $@; mkdir -p $$(dirname $@) ; \
$(CC) -M $(CPPFLAGS) $(FINAL_CFLAGS) $< > $@.$$$$ 2>/dev/null ; \
.deps/%.d: %.c $(global_deps)
@set -e; rm -f $@; mkdir -p $$(dirname $@) ; \
$(CC) -M $(CPPFLAGS) $(FINAL_CFLAGS) $< > $@.$$$$ 2>/dev/null ; \
install -m0644 notmuch.1.gz $(DESTDIR)$(prefix)/share/man/man1/
ifeq ($(MAKECMDGOALS), install)
@echo ""
install -m0644 notmuch.1.gz $(DESTDIR)$(prefix)/share/man/man1/
ifeq ($(MAKECMDGOALS), install)
@echo ""
- @echo "Notmuch is now installed."
+ @echo "Notmuch is now installed to $(DESTDIR)$(prefix)"
+ @echo ""
+ @echo "To run notmuch from emacs, each user should add the following line to ~/.emacs:"
+ @echo ""
+ @echo " (require 'notmuch)"
+ @echo ""
+ @echo "And should then run \"M-x notmuch\" from within emacs or run \"emacs -f notmuch\""
@echo ""
@echo "You may now want to install additional components to support using notmuch"
@echo "together with other software packages:"
@echo ""
@echo ""
@echo "You may now want to install additional components to support using notmuch"
@echo "together with other software packages:"
@echo ""
- @echo " make install-emacs"
@echo " make install-bash"
@echo " make install-zsh"
@echo ""
@echo " make install-bash"
@echo " make install-zsh"
@echo ""
emacs_lispdir='$(prefix)/share/emacs/site-lisp'
fi
emacs_lispdir='$(prefix)/share/emacs/site-lisp'
fi
+printf "Checking if emacs is available... "
+if emacs --quick --batch > /dev/null 2>&1; then
+ printf "Yes.\n"
+ have_emacs=1
+else
+ printf "No (so will not byte-compile emacs code)\n"
+ have_emacs=0
+fi
+
if [ $errors -gt 0 ]; then
cat <<EOF
if [ $errors -gt 0 ]; then
cat <<EOF
# The directory to which emacs lisp files should be installed
emacs_lispdir=${emacs_lispdir}
# The directory to which emacs lisp files should be installed
emacs_lispdir=${emacs_lispdir}
+# Whether there's an emacs binary available for byte-compiling
+HAVE_EMACS = ${have_emacs}
+
# The directory to which desktop files should be installed
desktop_dir = \$(prefix)/share/applications
# The directory to which desktop files should be installed
desktop_dir = \$(prefix)/share/applications
emacs_bytecode := $(subst .el,.elc,$(emacs_sources))
emacs_bytecode := $(subst .el,.elc,$(emacs_sources))
-.PHONY: emacs
-emacs: $(emacs_bytecode)
+%.elc: %.el
+ $(call quiet,EMACS) --directory emacs -batch -f batch-byte-compile $<
+
+ifeq ($(HAVE_EMACS),1)
+all: $(emacs_bytecode)
+endif
+
+install: install-emacs
-install-emacs: install emacs
mkdir -p $(DESTDIR)/$(emacs_lispdir)
mkdir -p $(DESTDIR)/$(emacs_lispdir)
- install -m0644 $(emacs_sources) $(emacs_bytecode) $(DESTDIR)$(emacs_lispdir)
- @echo ""
- @echo "The notmuch emacs client is now installed."
- @echo ""
- @echo "To run this, each user should add the following line to the ~/.emacs file:"
- @echo ""
- @echo " (require 'notmuch)"
- @echo ""
- @echo "And should then run \"M-x notmuch\" from within emacs or run \"emacs -f notmuch\""
- @echo ""
+ install -m0644 $(emacs_sources) $(DESTDIR)$(emacs_lispdir)
+ifeq ($(HAVE_EMACS),1)
+ install -m0644 $(emacs_bytecode) $(DESTDIR)$(emacs_lispdir)
+endif
CLEAN := $(CLEAN) $(emacs_bytecode)
CLEAN := $(CLEAN) $(emacs_bytecode)