113 lines
2.4 KiB
Makefile
113 lines
2.4 KiB
Makefile
### 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
|