12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- EMACS=emacs
- EMACS_CLEAN=-Q
- EMACS_BATCH=$(EMACS_CLEAN) --batch
- TESTS=
- CURL=curl --silent
- WORK_DIR=$(shell pwd)
- PACKAGE_NAME=$(shell basename $(WORK_DIR))
- AUTOLOADS_FILE=$(PACKAGE_NAME)-autoloads.el
- TRAVIS_FILE=.travis.yml
- TEST_DIR=test
- TEST_DEP_1=ert
- TEST_DEP_1_STABLE_URL=http://git.savannah.gnu.org/cgit/emacs.git/plain/lisp/emacs-lisp/ert.el?h=emacs-24.3
- TEST_DEP_1_LATEST_URL=http://git.savannah.gnu.org/cgit/emacs.git/plain/lisp/emacs-lisp/ert.el?h=master
- .PHONY : build downloads downloads-latest autoloads test-autoloads test-travis \
- test test-interactive clean edit test-dep-1 test-dep-2 test-dep-3 \
- test-dep-4 test-dep-5 test-dep-6 test-dep-7 test-dep-8 test-dep-9
- build :
- $(EMACS) $(EMACS_BATCH) --eval \
- "(progn \
- (setq byte-compile-error-on-warn t) \
- (batch-byte-compile))" *.el
- test-dep-1 :
- @cd $(TEST_DIR) && \
- $(EMACS) $(EMACS_BATCH) -L . -L .. -l $(TEST_DEP_1) || \
- (echo "Can't load test dependency $(TEST_DEP_1).el, run 'make downloads' to fetch it" ; exit 1)
- downloads :
- $(CURL) '$(TEST_DEP_1_STABLE_URL)' > $(TEST_DIR)/$(TEST_DEP_1).el
- downloads-latest :
- $(CURL) '$(TEST_DEP_1_LATEST_URL)' > $(TEST_DIR)/$(TEST_DEP_1).el
- autoloads :
- $(EMACS) $(EMACS_BATCH) --eval \
- "(progn \
- (setq generated-autoload-file \"$(WORK_DIR)/$(AUTOLOADS_FILE)\") \
- (update-directory-autoloads \"$(WORK_DIR)\"))"
- test-autoloads : autoloads
- @$(EMACS) $(EMACS_BATCH) -L . -l "./$(AUTOLOADS_FILE)" || \
- ( echo "failed to load autoloads: $(AUTOLOADS_FILE)" && false )
- test-travis :
- @if test -z "$$TRAVIS" && test -e $(TRAVIS_FILE); then travis-lint $(TRAVIS_FILE); fi
- test : build test-dep-1 test-autoloads
- @cd $(TEST_DIR) && \
- (for test_lib in *-test.el; do \
- $(EMACS) $(EMACS_BATCH) -L . -L .. -l cl -l $(TEST_DEP_1) -l $$test_lib --eval \
- "(flet ((ert--print-backtrace (&rest args) \
- (insert \"no backtrace in batch mode\"))) \
- (ert-run-tests-batch-and-exit '(and \"$(TESTS)\" (not (tag :interactive)))))" || exit 1; \
- done)
- clean :
- @rm -f $(AUTOLOADS_FILE) *.elc *~ */*.elc */*~
- @rm -f \#*\#
- @rm -rf .cask
|