-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile
60 lines (45 loc) · 1.38 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
CASK ?= cask
EMACS ?= emacs
DIST ?= dist
EMACSFLAGS = --batch -Q
EMACSBATCH = $(EMACS) $(EMACSFLAGS)
VERSION := $(shell EMACS=$(EMACS) $(CASK) version)
PKG_DIR := $(shell EMACS=$(EMACS) $(CASK) package-directory)
PROJ_ROOT := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
EMACS_D = ~/.emacs.d
USER_ELPA_D = $(EMACS_D)/elpa
SRCS = $(filter-out %-pkg.el, $(wildcard *.el))
TESTS = $(wildcard test/*.el)
ORG_MANUAL = doc/gene-info.org
TEXI_MANUAL = doc/gene-info.texi
TAR = $(DIST)/gene-info-$(VERSION).tar
.PHONY: all check install uninstall reinstall clean-all clean
all : $(PKG_DIR) $(TAR)
check : $(PKG_DIR)
$(CASK) exec $(EMACSBATCH) \
$(patsubst %,-l % , $(SRCS) $(TESTS)) \
-f ert-run-tests-batch-and-exit
install : $(TAR)
$(EMACSBATCH) -l package -f package-initialize \
--eval '(package-install-file "$(PROJ_ROOT)/$(TAR)")'
uninstall :
rm -rf $(USER_ELPA_D)/gene-info-*
reinstall : clean uninstall install
clean-all : clean
rm -rf $(PKG_DIR)
clean :
rm -f *.elc
rm -rf $(DIST)
rm -f $(TEXI_MANUAL)
rm -f *-pkg.el
$(PKG_DIR) : Cask
$(CASK) install
touch $(PKG_DIR)
$(TAR) : $(DIST) # $(TEXI_MANUAL)
$(CASK) package
$(DIST) :
mkdir $(DIST)
# $(TEXI_MANUAL) : $(PKG_DIR) $(ORG_MANUAL)
# $(CASK) exec $(EMACSBATCH) \
# -l org -l ox-texinfo \
# --file=$(ORG_MANUAL) -f org-texinfo-export-to-texinfo