aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile11
1 files changed, 10 insertions, 1 deletions
diff --git a/Makefile b/Makefile
index 5b3bb55..0d4d1d5 100644
--- a/Makefile
+++ b/Makefile
@@ -17,7 +17,7 @@ MAN5DIR := $(PREFIX)/share/man/man5
# over documenting the dune commands.
DUNE := opam exec --
-.PHONY: help build test check install uninstall reinstall clean fmt man doc release
+.PHONY: help build test check check-schema install uninstall reinstall clean fmt man doc release
help: ## show this help
@grep -hE '^[a-z-]+:.*##' $(MAKEFILE_LIST) | sed -E 's/:.*## /\t/' | sort
@@ -30,6 +30,15 @@ test: ## fast suite (~5s): properties sample 200 years
check: ## full gate (~2min): every year 1583-9999, not a sample
COLITUR_EXHAUSTIVE_SWEEP=1 $(DUNE) dune test --force
+check-schema: build ## validate emitted XML against schema/colitur-v1.xsd (needs xmllint; skipped if absent)
+ @if command -v xmllint >/dev/null 2>&1; then \
+ opam exec -- dune exec colitur -- emit --format xml --from 2027 --to 2027 > /tmp/colitur-check.xml && \
+ xmllint --noout --schema schema/colitur-v1.xsd /tmp/colitur-check.xml && \
+ echo "xml: valid against schema/colitur-v1.xsd"; \
+ else \
+ echo "SKIPPED: xmllint not installed -- XML is emitted but NOT schema-validated"; \
+ fi
+
install: build ## install binary, calendar data and man page into PREFIX (default ~/.local)
$(DUNE) dune install --prefix $(PREFIX)
@mkdir -p $(MANDIR)