X-Git-Url: https://code.delx.au/gnu-emacs-elpa/blobdiff_plain/ba603c98369e875b5b723b0b335a3c2b702af9c7..HEAD:/GNUmakefile diff --git a/GNUmakefile b/GNUmakefile index 010d16585..d23d52316 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -1,4 +1,5 @@ # Makefile for GNU Emacs Lisp Package Archive. +# EMACS=emacs --batch @@ -13,20 +14,20 @@ CR_EXCEPTIONS=copyright_exceptions .PHONY: check_copyrights check_copyrights: @echo "Compute exceptions >$(CR_EXCEPTIONS)~" - @export LC_ALL=C; \ - (cd packages && \ - find . -name '.git' -prune -o \ - -name 'test' -prune -o \ - -name '*.el' -print0 | \ - xargs -0 grep -L 'Free Software Foundation, Inc' | \ - grep -v '\(\.dir-locals\|.-\(pkg\|autoloads\)\)\.el$$'; \ - find . -name '.git' -prune -o -name '*.el' -print | \ - while read f; do \ - fquoted="$$(echo $$f|tr '|' '_')"; \ - sed -n -e '/[Cc]opyright.*, *[1-9][-0-9]*,\?$$/N' \ - -e '/Free Software Foundation/d' \ - -e "s|^\\(.*[Cc]opyright\\)|$$fquoted:\\1|p" \ - "$$f"; \ + @export LC_ALL=C; \ + (cd packages && \ + find . -name '.git' -prune -o \ + -name 'test' -prune -o \ + -name '*.el' -print0 | \ + xargs -0 grep -L 'Free Software Foundation, Inc' | \ + grep -v '\(\.dir-locals\|.-\(pkg\|autoloads\)\)\.el$$'; \ + find . -name '.git' -prune -o -name '*.el' -type f -print | \ + while read f; do \ + fquoted="$$(echo $$f|tr '|' '_')"; \ + sed -n -e '/[Cc]opyright.*, *[1-9][-0-9]*,\?$$/N' \ + -e '/Free Software Foundation/d' \ + -e "s|^\\(.*[Cc]opyright\\)|$$fquoted:\\1|p" \ + "$$f"; \ done) | sort >$(CR_EXCEPTIONS)~ diff -u "$(CR_EXCEPTIONS)" "$(CR_EXCEPTIONS)~" @@ -190,3 +191,31 @@ all-in-place: $(extra_elcs) $(autoloads) $(pkg_descs) externals: $(EMACS) -l admin/archive-contents.el \ -f archive-add/remove/update-externals + + + + +################### Testing ############### + +PACKAGE_DIRS = $(shell find packages -maxdepth 1 -type d) +PACKAGES=$(subst /,,$(subst packages,,$(PACKAGE_DIRS))) + +TOP =$(shell pwd) + +define test_template +$(1)-test: + cd packages/$(1);\ + $(EMACS) -l $(TOP)/admin/ert-support.el \ + --eval "(ert-support-test-package \"$(TOP)\" '$(1))" \ + +$(1)-test-log: + $(MAKE) $(1)-test > packages/$(1)/$(1).log 2>&1 || { stat=ERROR; } +endef + +$(foreach package,$(PACKAGES),$(eval $(call test_template,$(package)))) + +PACKAGES_TESTS=$(addsuffix -test-log,$(PACKAGES)) +PACKAGES_LOG=$(foreach package,$(PACKAGES),packages/$(package)/$(package).log) + +check: $(PACKAGES_TESTS) + $(EMACS) -l ert -f ert-summarize-tests-batch-and-exit $(PACKAGES_LOG)