forked from vermiculus/magithub
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
112 lines (86 loc) · 2.82 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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
-include config.mk
PKG = magithub
EMACS ?= emacs
EMACS_ARGS ?=
ifndef ORG_LOAD_PATH
ORG_LOAD_PATH = -L ../dash
ORG_LOAD_PATH += -L ../org/lisp
ORG_LOAD_PATH += -L ../org/contrib/lisp
ORG_LOAD_PATH += -L ../ox-texinfo+
endif
INSTALL_INFO ?= $(shell command -v ginstall-info || printf install-info)
MAKEINFO ?= makeinfo
MANUAL_HTML_ARGS ?= --css-ref /assets/the.css
EENVS = PACKAGE_FILE="magithub.el"
EENVS += PACKAGE_TESTS="test/test-helper.el test/magithub-test.el"
EENVS += PACKAGE_LISP="$(wildcard magithub*.el)"
ifeq ($(MELPA_STABLE),true)
EENVS += PACKAGE_ARCHIVES="gnu melpa-stable"
else
EENVS += PACKAGE_ARCHIVES="gnu melpa"
endif
EMAKE := $(EENVS) emacs -batch -l emake.el --eval "(emake (pop argv))"
doc: info html html-dir pdf
help:
$(info make doc - generate most manual formats)
$(info make texi - generate texi manual (see comments))
$(info make info - generate info manual)
$(info make html - generate html manual file)
$(info make html-dir - generate html manual directory)
$(info make pdf - generate pdf manual)
@printf "\n"
.PHONY: clean install build test
clean:
rm -f *.elc
rm -rf .elpa/
emake.el:
wget 'https://raw.githubusercontent.com/vermiculus/emake.el/master/emake.el'
.elpa/: emake.el
$(EMAKE) install
install: .elpa/
build: install
$(EMAKE) compile ~error-on-warn
test: build test-ert
# run ERT tests
test-ert: emake.el
$(EMAKE) test ert
setup-CI:
export PATH="$(HOME)/bin:$(PATH)"
wget 'https://raw.githubusercontent.com/flycheck/emacs-travis/master/emacs-travis.mk'
make -f emacs-travis.mk install_emacs
emacs --version
info: $(PKG).info dir
html: $(PKG).html
pdf: $(PKG).pdf
ORG_ARGS = --batch -Q $(ORG_LOAD_PATH) -l ox-extra -l ox-texinfo+.el
ORG_EVAL = --eval "(ox-extras-activate '(ignore-headlines))"
ORG_EVAL += --eval "(setq indent-tabs-mode nil)"
ORG_EVAL += --eval "(setq org-src-preserve-indentation nil)"
ORG_EVAL += --funcall org-texinfo-export-to-texinfo
# This target first bumps version strings in the Org source. The
# necessary tools might be missing so other targets do not depend
# on this target and it has to be run explicitly when appropriate.
#
# AMEND=t make texi Update manual to be amended to HEAD.
# VERSION=N make texi Update manual for release.
#
.PHONY: texi
texi:
@$(EMACS) $(ORG_ARGS) $(PKG).org $(ORG_EVAL)
@printf "\n" >> $(PKG).texi
@rm -f $(PKG).texi~
%.info: %.texi
@printf "Generating $@\n"
@$(MAKEINFO) --no-split $< -o $@
dir: $(PKG).info
@printf "Generating $@\n"
@printf "%s" $^ | xargs -n 1 $(INSTALL_INFO) --dir=$@
%.html: %.texi
@printf "Generating $@\n"
@$(MAKEINFO) --html --no-split $(MANUAL_HTML_ARGS) $<
html-dir: $(PKG).texi
@printf "Generating $(PKG)/*.html\n"
@$(MAKEINFO) --html $(MANUAL_HTML_ARGS) $<
%.pdf: %.texi
@printf "Generating $@\n"
@texi2pdf --clean $< > /dev/null