aboutsummaryrefslogtreecommitdiffstats
path: root/emacs/.emacs.d/GNUmakefile
blob: 738090d9f9099cb87c7a1e42483a5e6d201f367d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
SHELL = bash
EMACS := emacs

.SECONDARY:

AUTOLOADS_FILE := site-lisp/oni-site-autoloads.el
UNWANTED := $(AUTOLOADS_FILE) site-lisp/flycheck_% site-lisp/flycheck-%
SITE_LISPS := $(filter-out $(UNWANTED),$(wildcard site-lisp/*.el))
COMPILED_SITE_LISPS := $(addsuffix c,$(SITE_LISPS))
VENDOR_DIRS := $(wildcard vendor-lisp/*)
BASE_DIR := $(CURDIR)

.PHONY: all snippets
all: $(COMPILED_SITE_LISPS) init.elc $(AUTOLOADS_FILE) snippets

%.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): $(COMPILED_SITE_LISPS)
	@echo -e "\e[32mGEN\e[0m $@"
	@$(EMACS) -batch \
        -eval "(setq generated-autoload-file \"$(BASE_DIR)/$@\")" \
        -eval "(update-directory-autoloads \"$(BASE_DIR)/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 $(BASE_DIR)/snippets"
	@$(EMACS) -batch \
            -eval "(package-initialize)" \
            -l yasnippet \
            -eval "(yas-compile-directory \"$(BASE_DIR)/snippets\")"

snippets: $(COMPILED_SNIPPETS)

ifeq ($(OS),Windows_NT)
include windows.mk
endif