Repository navigation
Expand file tree
/
Copy pathMakefile
More file actions
109 lines (96 loc) · 4.42 KB
/
Copy pathMakefile
File metadata and controls
109 lines (96 loc) · 4.42 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
.PHONY: help check test save-baselines example doc dist overleaf-check ctan release-check website clean
PACKAGE := texchanges
BUILD_DIR := build
DIST_DIR := dist
help:
@printf '%s\n' \
'make check Run the verification suite (TEST=<name> filters cases)' \
'make test Alias for make check' \
'make save-baselines Regenerate l3build .tlg baselines' \
'make example Compile the explicit review example' \
'make doc Compile the package manual' \
'make dist Build the unified Overleaf-ready zip archive' \
'make overleaf-check Validate the unified Overleaf bundle' \
'make ctan Build the CTAN submission archive' \
'make release-check Verify package, manual, archives, and website' \
'make website Build the public documentation site' \
'make clean Remove generated output'
check:
TEST="$(TEST)" ./scripts/test.sh
test: check
example:
mkdir -p $(BUILD_DIR)/explicit-review
TEXINPUTS="$(CURDIR):" latexmk -pdf -halt-on-error \
-interaction=nonstopmode \
-outdir=$(BUILD_DIR)/explicit-review \
examples/explicit-review/texchanges-explicit-review.tex
doc:
mkdir -p $(BUILD_DIR)
latexmk -pdf -halt-on-error -interaction=nonstopmode \
-outdir=$(BUILD_DIR) texchanges-doc.tex
dist: clean
$(MAKE) doc
mkdir -p $(DIST_DIR) $(BUILD_DIR)/overleaf-workflow
cp texchanges.sty examples/explicit-review/texchanges-explicit-review.tex \
examples/automatic-diff/texchanges-original.tex \
examples/automatic-diff/texchanges-revised.tex \
examples/automatic-diff/texchanges-review.tex \
examples/automatic-diff/latexmkrc \
$(BUILD_DIR)/overleaf-workflow/
cp examples/overleaf-workflow/README.md $(BUILD_DIR)/overleaf-workflow/README.md
(cd $(BUILD_DIR)/overleaf-workflow && zip -q ../../$(DIST_DIR)/$(PACKAGE)-overleaf.zip \
texchanges.sty texchanges-explicit-review.tex texchanges-original.tex \
texchanges-revised.tex texchanges-review.tex latexmkrc README.md)
overleaf-check: dist
@task_tmp=$$(mktemp -d "$${TMPDIR:-/tmp}/texchanges-overleaf.XXXXXX"); \
trap 'rm -rf "$$task_tmp"' EXIT; \
unzip -t $(DIST_DIR)/$(PACKAGE)-overleaf.zip >/dev/null; \
unzip -q $(DIST_DIR)/$(PACKAGE)-overleaf.zip -d "$$task_tmp"; \
(cd "$$task_tmp" && \
latexmk -pdf -halt-on-error -interaction=nonstopmode texchanges-explicit-review.tex >/dev/null && \
latexmk -pdf -halt-on-error -interaction=nonstopmode texchanges-review.tex >/dev/null && \
pdftotext texchanges-explicit-review.pdf - | grep -Fq 'Texchanges Explicit Review' && \
pdftotext texchanges-review.pdf - | grep -Fq 'selected' && \
pdftotext texchanges-review.pdf - | grep -Fq 'adaptive' && \
test -f review-generated.tex)
@task_tmp=$$(mktemp -d "$${TMPDIR:-/tmp}/texchanges-overleaf-jobname.XXXXXX"); \
trap 'rm -rf "$$task_tmp"' EXIT; \
unzip -q $(DIST_DIR)/$(PACKAGE)-overleaf.zip -d "$$task_tmp"; \
(cd "$$task_tmp" && \
latexmk -pdf -jobname=output -halt-on-error -interaction=nonstopmode texchanges-explicit-review.tex >/dev/null && \
test -f output.pdf && \
rm -f output.* && \
latexmk -pdf -jobname=output -halt-on-error -interaction=nonstopmode texchanges-review.tex >/dev/null && \
test -f output.pdf && \
test -f review-generated.tex && \
pdftotext output.pdf - | grep -Fq 'adaptive')
ctan: doc
./scripts/ctan-release.sh
website:
npm --prefix website run build
release-check: check overleaf-check ctan website
@for archive in $(DIST_DIR)/*.zip; do unzip -t "$$archive" >/dev/null; done
@task_tmp=$$(mktemp -d "$${TMPDIR:-/tmp}/texchanges-checksums.XXXXXX"); \
trap 'rm -rf "$$task_tmp"' EXIT; \
cp $(DIST_DIR)/*.zip $(BUILD_DIR)/texchanges-doc.pdf "$$task_tmp"/; \
cd "$$task_tmp" && \
if command -v sha256sum >/dev/null 2>&1; then \
sha256sum *.zip texchanges-doc.pdf; \
else \
shasum -a 256 *.zip texchanges-doc.pdf; \
fi > "$(CURDIR)/$(DIST_DIR)/SHA256SUMS"
@printf 'Texchanges release artifacts verified.\n'
save-baselines:
l3build save $(TEST) < /dev/null
clean:
l3build clean >/dev/null 2>&1 || true
latexmk -C examples/explicit-review/texchanges-explicit-review.tex >/dev/null 2>&1 || true
$(RM) \
examples/automatic-diff/review-generated.tex \
examples/automatic-diff/texchanges-review.aux \
examples/automatic-diff/texchanges-review.fdb_latexmk \
examples/automatic-diff/texchanges-review.fls \
examples/automatic-diff/texchanges-review.log \
examples/automatic-diff/texchanges-review.pdf
rm -rf $(BUILD_DIR) $(DIST_DIR)
find . -type d -name __pycache__ -prune -exec rm -rf {} +