]> git.notmuchmail.org Git - notmuch/blobdiff - emacs/Makefile.local
Merge branch 'release'
[notmuch] / emacs / Makefile.local
index 102277778a9902e4f1b978fdc541b3c00b5b4be5..456700ac8c62ecf7a060529ee78e4de9a57b3cc7 100644 (file)
@@ -13,14 +13,28 @@ emacs_sources := \
        $(dir)/notmuch-maildir-fcc.el \
        $(dir)/notmuch-message.el \
        $(dir)/notmuch-crypto.el \
-       $(dir)/coolj.el
+       $(dir)/notmuch-tag.el \
+       $(dir)/coolj.el \
+       $(dir)/notmuch-print.el
 
 emacs_images := \
        $(srcdir)/$(dir)/notmuch-logo.png
 
 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.
+$(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
+CLEAN+=$(dir)/.eldeps $(dir)/.eldeps.tmp
+
+%.elc: %.el $(global_deps)
        $(call quiet,EMACS) --directory emacs -batch -f batch-byte-compile $<
 
 ifeq ($(WITH_EMACS),1)
@@ -38,6 +52,7 @@ install-emacs:
 ifeq ($(HAVE_EMACS),1)
        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)