forked from polymode/polymode
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
92 lines (69 loc) · 2.5 KB
/
Makefile
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
MODULE = POLYMODE
export EMACS ?= emacs
EMACS_VERSION = $(shell ${EMACS} -Q --batch --eval "(princ emacs-version)")
ELPA_DIR := .ELPA/$(EMACS_VERSION)
EMACSRUN = $(EMACS) -Q -L . -L modes -L tests -L $(ELPA_DIR)
EMACSBATCH = $(EMACSRUN) --batch
EMACSTARGET = $(EMACSBATCH) -l targets/poly-targets.el
ELS = $(wildcard *.el)
LINTELS = $(filter-out polymode-autoloads.el polymode-compat.el polymode-configuration.el, $(ELS))
OBJECTS = $(ELS:.el=.elc)
# export PM_VERBOSE
.PHONY: build test version clean cleansilent cleanall
all: build checkdoc test
build: version cleansilent
@echo "******************* BUILDING $(MODULE) *************************"
@$(EMACSBATCH) --funcall batch-byte-compile *.el
checkdoc: version
@echo "******************* CHECKDOC $(MODULE) *************************"
@$(EMACSTARGET) -f pm--target-checkdoc $(LINTELS)
clean:
rm -f $(OBJECTS) polymode-autoloads.el
cleanall: cleansilent
rm -rf $(ELPA_DIR)
cleansilent:
@rm -f $(OBJECTS)
docs-build:
mkdocs build
docs-deploy:
cd ../polymode.github.io/; mkdocs gh-deploy --config-file ../polymode/mkdocs.yml --remote-branch master
lint: version
@$(EMACSTARGET) -f pm--target-melpa-init -f pm--target-lint $(LINTELS)
melpa: version
@$(EMACSTARGET) -f pm--target-melpa
elpa: melpa
start: version melpa
$(EMACSTARGET) -L . \
-f pm--target-melpa-init \
--load tests/*.el
startvs: version
$(EMACSTARGET) -L . \
-f pm--target-melpa-init \
-f pm--parget-local \
--load tests/*.el --load ~/.eBasic.el
test: version clean
@echo "******************* TESTING $(MODULE) **************************"
$(EMACSTARGET) -f pm--target-melpa-init -f pm--target-test
test-local: version
@echo "******************* Testing $(MODULE) ***************************"
$(EMACSTARGET) -f pm--target-local -f pm--target-test
test/%:
$(eval PATTERN := $(subst test/, , $@))
@echo "********** TESTING WITH PATTERN $(PATTERN) in $(MODULE) ************"
$(EMACSTARGET) -f pm--target-melpa-init \
--eval "(setq pm-ert-selector \"$(PATTERN)\")" \
-f pm--target-test
template../%:
@echo $@
$(eval OUTDIR := $(subst template, , $@))
$(eval ABSDIR := $(abspath $(OUTDIR)))
./targets/template.sh $(ABSDIR)
version:
@echo "EMACS VERSION: $(EMACS_VERSION)"
@echo "GIT HEAD: $(shell git rev-parse --short HEAD)"
update-versions:
@echo "******************* UPDATING VERSIONS **************************"
@./targets/update-versions.sh
update-templates:
@echo "******************* UPDATING TEMPLATES *************************"
@./targets/update-templates.sh