summaryrefslogtreecommitdiffstats
path: root/emacs
diff options
context:
space:
mode:
authorGravatar Tom Willemse2015-07-08 15:21:41 +0200
committerGravatar Tom Willemse2015-07-08 15:21:41 +0200
commit668c80ccc7e054f55cabfe2b8693946c3dc227d8 (patch)
tree8eacb5085dc9a4c12835d02c0b3a1f9c5024fdd4 /emacs
parentdd58c6cf66c9445d5439ae02d5f4daee08b55ef1 (diff)
downloaddotfiles-668c80ccc7e054f55cabfe2b8693946c3dc227d8.tar.gz
dotfiles-668c80ccc7e054f55cabfe2b8693946c3dc227d8.zip
Compile snippets and improve site-lisp compilation
Files can't be left out from being compiled anymore. Even though the snippet rules depend on every `.yas-compiled-snippets.el' separately, when the first is compiled, the rest don't need to anymore.
Diffstat (limited to 'emacs')
-rw-r--r--emacs/.emacs.d/Makefile46
1 files changed, 35 insertions, 11 deletions
diff --git a/emacs/.emacs.d/Makefile b/emacs/.emacs.d/Makefile
index b0701fb..516eb07 100644
--- a/emacs/.emacs.d/Makefile
+++ b/emacs/.emacs.d/Makefile
@@ -1,31 +1,53 @@
-SITE_LISPS = site-lisp/oni-smt.elc site-lisp/appt-init.elc \
- site-lisp/jabber-init.elc site-lisp/org-init.elc \
- site-lisp/gnus-init.elc site-lisp/drd.elc \
- site-lisp/oni-eshell-prompt.elc
+EMACS = cask exec emacs
+EARGS = -Q -batch -l package
-.PHONY: all site-lisp
-all: init2.elc init.elc $(SITE_LISPS) site-lisp/site-autoloads.el
+.PHONY: all site-lisp snippets
+all: init2.elc init.elc site-lisp/site-autoloads.el snippets
+
+### Init
%.elc: %.el
@echo "ELC $<"
- @cask exec emacs -Q -batch -l package -eval "(byte-compile-file \"$<\")"
+ @$(EMACS) $(EARGS) -eval "(byte-compile-file \"$<\")"
init.el: init2.el
init2.el: init.org org/intro.org
@echo "OBT $<"
- @emacs -Q -batch -l "ob-tangle" -eval "(org-babel-tangle-file \"init.org\")"
+ @$(EMACS) $(EARGS) -l "ob-tangle" \
+ -eval "(org-babel-tangle-file \"init.org\")"
+
+### Site Lisp
+
+AUTOLOADS_FILE=site-lisp/site-autoloads.el
+UNWANTED=$(AUTOLOADS_FILE) site-lisp/flycheck_% site-lisp/flycheck-%
+SITE_LISPS = $(addsuffix c,$(filter-out $(UNWANTED),$(wildcard site-lisp/*.el)))
-site-lisp/site-autoloads.el: $(SITE_LISPS)
+$(AUTOLOADS_FILE): $(SITE_LISPS)
@echo "GEN $@"
- @cask exec emacs -Q -batch \
+ @$(EMACS) $(EARGS) \
-eval "(setq generated-autoload-file \"$(CURDIR)/$@\")" \
-eval "(update-directory-autoloads \"$(CURDIR)/site-lisp/\")"
+### Snippets
+
+SNIPPET_DIRS = $(wildcard snippets/*)
+COMPILED_SNIPPETS = $(addsuffix /.yas-compiled-snippets.el, $(SNIPPET_DIRS))
+
+%/.yas-compiled-snippets.el: %/*
+ $(EMACS) $(EARGS) -l yasnippet \
+ -eval "(yas-compile-directory \"$(CURDIR)/snippets\")"
+
+snippets: $(COMPILED_SNIPPETS)
+
+### Packages
+
rudel:
git clone git://github.com/scymtym/rudel.git packages/rudel
- emacs -Q --batch --visit packages/rudel/rudel-compile.el \
+ $(EMACS) $(EARGS) --visit packages/rudel/rudel-compile.el \
--eval "(eval-buffel)"
+### Cleanup
+
clean-byte-compiled:
rm -f $(SITE_LISPS) init2.elc init.elc
@@ -37,6 +59,8 @@ clean-export:
clean: clean-export clean-byte-compiled clean-generated
+### HTML Export
+
export: clean-export
emacs -L $(CURDIR) -L ~/.emacs.d/vendor-lisp/org/lisp \
-L ~/.emacs.d/vendor-lisp/org/contrib/lisp -batch -l project.el \