* Makefile: New file subsuming create-docs.sh and run-tests.sh. * create-docs.sh: * run-tests.sh: Remove files. * .github/workflows/test.yml: * dash-template.texi (Contribute): * readme-template.md (Contribute): * pre-commit.sh: Refer to new Make targets. * dev/examples.el: Add support for running byte-compiled tests in Emacs < 24.3, where setf was still defined in cl-macs.el. * README.md: * dash.texi: Regenerate docs.master
parent
84721fc466
commit
9c6a7c3e07
10 changed files with 81 additions and 51 deletions
@ -0,0 +1,62 @@ |
|||||||
|
# Makefile for Dash.
|
||||||
|
|
||||||
|
# Copyright (C) 2021 Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
# Variables.
|
||||||
|
|
||||||
|
EMACS ?= emacs
|
||||||
|
BATCH := $(EMACS) -Q -batch -L .
|
||||||
|
ELS := dash.el dash-functional.el
|
||||||
|
ELCS := $(addsuffix c,$(ELS))
|
||||||
|
|
||||||
|
# Targets.
|
||||||
|
|
||||||
|
lisp: $(ELCS) |
||||||
|
.PHONY: lisp |
||||||
|
|
||||||
|
docs: README.md dash.texi |
||||||
|
.PHONY: docs |
||||||
|
|
||||||
|
# ERT_SELECTOR is a Lisp expression determining which tests to run.
|
||||||
|
# Its format is described in (info "(ert) Test Selectors"). It
|
||||||
|
# defaults to selecting all tests. Note that in batch mode, a nil
|
||||||
|
# selector is the same as t.
|
||||||
|
check: ERT_SELECTOR ?= t |
||||||
|
check: lisp |
||||||
|
$(BATCH) -l dev/examples-to-tests.el -l dev/examples.el \
|
||||||
|
-eval '(ert-run-tests-batch-and-exit (quote $(ERT_SELECTOR)))'
|
||||||
|
.PHONY: check |
||||||
|
|
||||||
|
all: lisp docs check |
||||||
|
.PHONY: all |
||||||
|
|
||||||
|
clean: |
||||||
|
$(RM) $(ELCS)
|
||||||
|
.PHONY: clean |
||||||
|
|
||||||
|
# Files.
|
||||||
|
|
||||||
|
%.elc: %.el |
||||||
|
$(BATCH) -eval '(setq byte-compile-error-on-warn t)' \
|
||||||
|
-f batch-byte-compile $<
|
||||||
|
|
||||||
|
dash-functional.elc: dash.elc |
||||||
|
|
||||||
|
README.md: $(ELS) dev/examples-to-docs.el dev/examples.el readme-template.md |
||||||
|
$(BATCH) $(addprefix -l ,$(filter %.el,$^)) -f create-docs-file
|
||||||
|
|
||||||
|
dash.texi: $(ELS) dev/examples-to-info.el dev/examples.el dash-template.texi |
||||||
|
$(BATCH) $(addprefix -l ,$(filter %.el,$^)) -f create-info-file
|
||||||
@ -1,10 +0,0 @@ |
|||||||
#!/usr/bin/env sh |
|
||||||
|
|
||||||
if [ -z "${EMACS}" ]; then |
|
||||||
EMACS=emacs |
|
||||||
fi |
|
||||||
|
|
||||||
"${EMACS}" -Q -batch -l dash.el -l dash-functional.el \ |
|
||||||
-l dev/examples-to-docs.el -l dev/examples.el -f create-docs-file |
|
||||||
"${EMACS}" -Q -batch -l dash.el -l dash-functional.el \ |
|
||||||
-l dev/examples-to-info.el -l dev/examples.el -f create-info-file |
|
||||||
@ -1,9 +1,9 @@ |
|||||||
#!/usr/bin/env bash |
#!/usr/bin/env sh |
||||||
|
|
||||||
git stash -q --keep-index |
git stash -q --keep-index |
||||||
./run-tests.sh |
make check |
||||||
RESULT=$? |
RESULT=$? |
||||||
[ $RESULT == 0 ] && ./create-docs.sh && git add ./README.md |
[ $RESULT -eq 0 ] && make docs && git add ./README.md |
||||||
git stash pop -q |
git stash pop -q |
||||||
[ $RESULT -ne 0 ] && exit 1 |
[ $RESULT -ne 0 ] && exit 1 |
||||||
exit 0 |
exit 0 |
||||||
|
|||||||
@ -1,28 +0,0 @@ |
|||||||
#!/usr/bin/env bash |
|
||||||
|
|
||||||
set -e |
|
||||||
|
|
||||||
if [ -z "$EMACS" ] ; then |
|
||||||
EMACS="emacs" |
|
||||||
fi |
|
||||||
|
|
||||||
# Run all tests by default. |
|
||||||
# To only run certain tests, set $ERT_SELECTOR as required. |
|
||||||
# For example, to skip the test "-fixfn", run the following command: |
|
||||||
# |
|
||||||
# ERT_SELECTOR='(not "-fixfn")' ./run-tests.sh |
|
||||||
# |
|
||||||
if [ -z "$ERT_SELECTOR" ] ; then |
|
||||||
ERT_SELECTOR="nil" |
|
||||||
fi |
|
||||||
|
|
||||||
$EMACS -Q -batch \ |
|
||||||
-l dash.el \ |
|
||||||
-l dash-functional.el \ |
|
||||||
-l dev/examples-to-tests.el \ |
|
||||||
-l dev/examples.el \ |
|
||||||
-eval "(ert-run-tests-batch-and-exit (quote ${ERT_SELECTOR}))" |
|
||||||
|
|
||||||
$EMACS -Q -batch \ |
|
||||||
-eval '(setq byte-compile-error-on-warn t)' \ |
|
||||||
-f batch-byte-compile dash.el |
|
||||||
Loading…
Reference in new issue