Tom Willemse
4d01c6d8bf
This way make won’t remove them after compilation is done. Normally this might be useful, but in the case of Emacs Lisp being generated from Org files, it’s really useful to have the original lisp files after compiling them to elc files.
47 lines
1.5 KiB
Makefile
47 lines
1.5 KiB
Makefile
include ../../dotfiles.mk
|
|
|
|
.SECONDARY:
|
|
|
|
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)))
|
|
INIT_LISPS = $(addsuffix .elc,$(basename $(wildcard init/*.org)))
|
|
VENDOR_DIRS = $(wildcard vendor-lisp/*)
|
|
|
|
.PHONE: all snippets
|
|
all: $(SITE_LISPS) init.elc $(INIT_LISPS) $(AUTOLOADS_FILE) snippets
|
|
|
|
%.el: %.org
|
|
$(call tangle,emacs-lisp)
|
|
|
|
%.elc: %.el
|
|
@echo -e "\e[31mELC\e[0m $<"
|
|
@$(EMACS) -batch \
|
|
-directory "$(HOME)/.emacs.d/site-lisp" \
|
|
-directory "$(HOME)/.emacs.d/vendor-lisp/emacs-slack" \
|
|
-directory "$(HOME)/.emacs.d/vendor-lisp/circe" \
|
|
-directory "$(HOME)/.emacs.d/vendor-lisp/circe-serenity" \
|
|
-eval "(package-initialize)" \
|
|
-eval "(byte-compile-file \"$<\")"
|
|
|
|
### Site Lisp
|
|
|
|
$(AUTOLOADS_FILE): $(SITE_LISPS)
|
|
@echo -e "\e[32mGEN\e[0m $@"
|
|
@$(EMACS) -batch \
|
|
-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: %/*
|
|
@echo -e "\e[36mYAS\e[0m $(CURDIR)/snippets"
|
|
@$(EMACS) -batch \
|
|
-eval "(package-initialize)" \
|
|
-l yasnippet \
|
|
-eval "(yas-compile-directory \"$(CURDIR)/snippets\")"
|
|
|
|
snippets: $(COMPILED_SNIPPETS)
|