]> git.notmuchmail.org Git - notmuch/blobdiff - emacs/Makefile.local
Merge tag 'debian/0.17-4'
[notmuch] / emacs / Makefile.local
index 7537c3d5b43214a3c9ebb8d727b2cd41da4e83b1..42bfbd96c78dee4a4e06cc5bb50208861c692edc 100644 (file)
@@ -3,35 +3,63 @@
 dir := emacs
 emacs_sources := \
        $(dir)/notmuch-lib.el \
+       $(dir)/notmuch-parser.el \
        $(dir)/notmuch.el \
        $(dir)/notmuch-query.el \
        $(dir)/notmuch-show.el \
+       $(dir)/notmuch-tree.el \
        $(dir)/notmuch-wash.el \
        $(dir)/notmuch-hello.el \
        $(dir)/notmuch-mua.el \
-       $(dir)/notmuch-address.el
+       $(dir)/notmuch-address.el \
+       $(dir)/notmuch-maildir-fcc.el \
+       $(dir)/notmuch-message.el \
+       $(dir)/notmuch-crypto.el \
+       $(dir)/notmuch-tag.el \
+       $(dir)/coolj.el \
+       $(dir)/notmuch-print.el
 
 emacs_images := \
-       $(dir)/notmuch-logo.png
+       $(srcdir)/$(dir)/notmuch-logo.png
 
-emacs_bytecode := $(subst .el,.elc,$(emacs_sources))
+emacs_bytecode = $(emacs_sources:.el=.elc)
 
-%.elc: %.el
+# Because of defmacro's and defsubst's, we have to account for load
+# dependencies between Elisp files when byte compiling.  Otherwise,
+# the byte compiler may load an old .elc file when processing a
+# "require" or we may fail to rebuild a .elc that depended on a macro
+# from an updated file.
+ifeq ($(HAVE_EMACS),1)
+$(dir)/.eldeps: $(dir)/Makefile.local $(dir)/make-deps.el $(emacs_sources)
+       $(call quiet,EMACS) --directory emacs -batch -l make-deps.el \
+               -f batch-make-deps $(emacs_sources) > $@.tmp && \
+               (cmp -s $@.tmp $@ || mv $@.tmp $@)
+-include $(dir)/.eldeps
+endif
+CLEAN+=$(dir)/.eldeps $(dir)/.eldeps.tmp
+
+ifeq ($(HAVE_EMACS),1)
+%.elc: %.el $(global_deps)
        $(call quiet,EMACS) --directory emacs -batch -f batch-byte-compile $<
+endif
 
+ifeq ($(WITH_EMACS),1)
 ifeq ($(HAVE_EMACS),1)
 all: $(emacs_bytecode)
+install-emacs: $(emacs_bytecode)
 endif
 
 install: install-emacs
+endif
 
 .PHONY: install-emacs
 install-emacs:
-       mkdir -p $(DESTDIR)$(emacslispdir)
-       install -m0644 $(emacs_sources) $(DESTDIR)$(emacslispdir)
+       mkdir -p "$(DESTDIR)$(emacslispdir)"
+       install -m0644 $(emacs_sources) "$(DESTDIR)$(emacslispdir)"
 ifeq ($(HAVE_EMACS),1)
-       install -m0644 $(emacs_bytecode) $(DESTDIR)$(emacslispdir)
+       install -m0644 $(emacs_bytecode) "$(DESTDIR)$(emacslispdir)"
 endif
-       install -m0644 $(emacs_images) $(DESTDIR)$(emacslispdir)
+       mkdir -p "$(DESTDIR)$(emacsetcdir)"
+       install -m0644 $(emacs_images) "$(DESTDIR)$(emacsetcdir)"
 
 CLEAN := $(CLEAN) $(emacs_bytecode)