forked from slime/slime
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile
113 lines (89 loc) · 2.41 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
113
### Makefile for SLIME
#
# This file is in the public domain.
# Variables
#
EMACS=emacs
LISP=sbcl
LOAD_PATH=-L .
ELFILES := slime.el slime-autoloads.el slime-tests.el $(wildcard lib/*.el)
ELCFILES := $(ELFILES:.el=.elc)
default: compile contrib-compile
all: compile
help:
@printf "\
Main targets\n\
all -- see compile\n\
compile -- compile .el files\n\
check -- run tests in batch mode\n\
clean -- delete generated files\n\
doc-help -- print help about doc targets\n\
help-vars -- print info about variables\n\
help -- print this message\n"
help-vars:
@printf "\
Main make variables:\n\
EMACS -- program to start Emacs ($(EMACS))\n\
LISP -- program to start Lisp ($(LISP))\n\
SELECTOR -- selector for ERT tests ($(SELECTOR))\n"
# Compilation
#
slime.elc: slime.el lib/hyperspec.elc
%.elc: %.el
$(EMACS) -Q $(LOAD_PATH) --batch -f batch-byte-compile $<
compile: $(ELCFILES)
# Automated tests
#
SELECTOR=t
check: compile
$(EMACS) -Q --batch $(LOAD_PATH) \
--eval "(require 'slime-tests)" \
--eval "(slime-setup)" \
--eval "(setq inferior-lisp-program \"$(LISP)\")" \
--eval '(slime-batch-test (quote $(SELECTOR)))'
# run tests interactively
#
# FIXME: Not terribly useful until bugs in ert-run-tests-interactively
# are fixed.
test: compile
$(EMACS) -Q -nw $(LOAD_PATH) \
--eval "(require 'slime-tests)" \
--eval "(slime-setup)" \
--eval "(setq inferior-lisp-program \"$(LISP)\")" \
--eval '(slime-batch-test (quote $(SELECTOR)))'
compile-swank:
echo '(load "swank-loader.lisp")' '(swank-loader:init :setup nil)' \
| $(LISP)
run-swank:
{ echo \
'(load "swank-loader.lisp")' \
'(swank-loader:init)' \
'(swank:create-server)' \
&& cat; } \
| $(LISP)
elpa-slime:
echo "Not implemented yet: elpa-slime target" && exit 255
elpa: elpa-slime contrib-elpa
# Cleanup
#
FASLREGEX = .*\.\(fasl\|ufasl\|sse2f\|lx32fsl\|abcl\|fas\|lib\|trace\)$$
clean-fasls:
find . -regex '$(FASLREGEX)' -exec rm -v {} \;
[ ! -d ~/.slime/fasl ] || rm -rf ~/.slime/fasl
clean: clean-fasls
find . -iname '*.elc' -exec rm {} \;
# Contrib stuff. Should probably also go to contrib/
#
MAKECONTRIB=$(MAKE) -C contrib EMACS="$(EMACS)" LISP="$(LISP)"
contrib-check-% check-%:
$(MAKECONTRIB) $(@:contrib-%=%)
contrib-elpa:
$(MAKECONTRIB) elpa-all
contrib-compile:
$(MAKECONTRIB) compile
# Doc
#
doc-%:
$(MAKE) -C doc $(@:doc-%=%)
doc: doc-help
.PHONY: clean elpa compile check doc dist