summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/fithesis/test/mu/compare/Makefile
blob: 4c74b60b9dfbc5b790eb8223651da1f3f4733027 (plain)
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
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
.PHONY: all implode bootstrap all
FAKETIME=faketime '2000-01-01 01:01:01'
COMPARE=../comparepdf.sh
SOURCES=base-digital.tex base-printed.tex base-10pt.tex \
	base-11pt.tex base-12pt.tex econ-czech.tex econ-english.tex \
	econ-oldtable.tex econ-slovak.tex econ-table.tex fi-color.tex \
	fi-czech.tex fi-english.tex fi-czech-male.tex \
	fi-czech-female.tex fi-slovak-male.tex fi-slovak-female.tex \
	fi-oldtable.tex fi-rigorous.tex fi-slovak.tex fi-table.tex \
	fsps-czech.tex fsps-english.tex fsps-oldtable.tex \
	fsps-slovak.tex fsps-table.tex fss-czech.tex fss-english.tex \
	fss-oldtable.tex fss-slovak.tex fss-table.tex \
	fss-czech-male.tex fss-czech-female.tex \
	fss-slovak-male.tex fss-slovak-female.tex law-czech.tex \
	law-english.tex law-oldtable.tex law-slovak.tex law-table.tex \
	med-czech.tex med-english.tex med-oldtable.tex med-slovak.tex \
	med-table.tex ped-czech.tex ped-english.tex ped-oldtable.tex \
	ped-slovak.tex ped-table.tex phil-czech.tex phil-english.tex \
	phil-kisk-english.tex phil-kisk-czech.tex phil-kisk-slovak.tex \
	phil-oldtable.tex phil-slovak.tex phil-table.tex sci-color.tex \
	sci-czech.tex sci-czech-male.tex sci-czech-female.tex \
	sci-slovak-male.tex sci-slovak-female.tex sci-english.tex \
	sci-oldtable.tex sci-rigorous.tex sci-slovak.tex sci-table.tex \
	phil-kisk-czech-male.tex phil-kisk-czech-female.tex \
	phil-kisk-slovak-male.tex phil-kisk-slovak-female.tex \
	phil-czech-female.tex phil-czech-male.tex \
	phil-slovak-female.tex phil-slovak-male.tex \
	toc-01.tex toc-02.tex toc-03.tex toc-04.tex toc-05.tex \
	toc-06.tex toc-07.tex toc-08.tex toc-09.tex toc-10.tex \
	toc-11.tex toc-12.tex toc-13.tex toc-14.tex toc-15.tex \
	toc-16.tex toc-17.tex toc-18.tex toc-19.tex toc-20.tex \
	toc-21.tex toc-22.tex toc-23.tex toc-24.tex toc-25.tex \
	toc-26.tex toc-27.tex toc-28.tex $(BIB) \
	fi-digital-emptyassignment.tex fi-digital-noassignment.tex \
	fi-digital-someassignment.tex fi-printed-emptyassignment.tex \
	fi-printed-noassignment.tex \
	fi-printed-someassignment-oneside.tex \
	fi-printed-someassignment-twoside.tex \
	sci-digital-emptyassignment.tex sci-digital-noassignment.tex \
	sci-digital-someassignment-oneside.tex \
	sci-digital-someassignment-twoside.tex \
	sci-printed-emptyassignment.tex sci-printed-noassignment.tex \
	sci-printed-someassignment-oneside.tex \
	sci-printed-someassignment-twoside.tex fi-proposal
BIB_UNSOLICITED=econ-bibliography-unsolicited.tex \
	fi-bibliography-unsolicited.tex \
	fsps-bibliography-unsolicited.tex \
	fss-bibliography-unsolicited.tex \
	law-bibliography-unsolicited.tex \
	med-bibliography-unsolicited.tex \
	ped-bibliography-unsolicited.tex \
	phil-bibliography-unsolicited.tex \
	sci-bibliography-unsolicited.tex
BIB_SOLICITED=econ-bibliography-solicited.tex \
	fi-bibliography-solicited.tex \
	fsps-bibliography-solicited.tex \
	fss-bibliography-solicited.tex \
	law-bibliography-solicited.tex \
	med-bibliography-solicited.tex \
	ped-bibliography-solicited.tex \
	phil-bibliography-solicited.tex \
	sci-bibliography-solicited.tex
BIB=$(BIB_UNSOLICITED) $(BIB_SOLICITED)
TESTS=$(addsuffix -pdflatex.pdf,$(basename $(SOURCES))) \
	$(addsuffix -lualatex.pdf,$(basename $(SOURCES)))
PROTOTYPES=$(addprefix expected-,$(TESTS))

# This target typesets all the test documents,
# compares them with the prototypes, and cleans
# up afterwards.
all: $(TESTS) implode

# This target typesets all the prototypes.
bootstrap: $(PROTOTYPES) clean

# This target typesets a pdfLaTeX prototype.
expected-%-pdflatex.pdf: %.tex
	rm -f $@
	make $(basename $<)-pdflatex.pdf
	mv   $(basename $<)-pdflatex.pdf $@

# This target typesets a LuaLaTeX prototype.
expected-%-lualatex.pdf: %.tex
	rm -f $@
	make $(basename $<)-lualatex.pdf
	mv   $(basename $<)-lualatex.pdf $@

# This target typesets a pdfLaTeX test file and compares
# it against a prototype.
%-pdflatex.pdf: %.tex
	@# The first run.
	$(FAKETIME) pdflatex -jobname          $(basename $@) $<
	@# Prepare bibliography, if necessary.
	! [ -e $(basename $<)-pdflatex.bcf ] || \
		(biber  $(basename $<)-pdflatex.bcf && \
	$(FAKETIME) pdflatex -jobname          $(basename $@) $<)
	@# Prepare index, if necessary.
	! [ -e $(basename $<)-pdflatex.idx ] || \
		(texindy -I latex -C utf8 -L english \
		$(basename $<)-pdflatex.idx && \
	$(FAKETIME) pdflatex -jobname          $(basename $@) $<)
	@# The second run.
	$(FAKETIME) pdflatex -jobname          $(basename $@) $<
	@# Compare the result with the prototype.
	! [ -e expected-$@ ] || $(COMPARE) expected-$@ $@ || \
	{ [ "$(UPDATE_FAILED)" = true ] && mv $@ expected-$@; }

# This target typesets a LuaLaTeX test file and compares
# it against a prototype.
%-lualatex.pdf: %.tex
	@# The first run.
	$(FAKETIME) lualatex -jobname          $(basename $@) $<
	@# Prepare bibliography, if necessary.
	! [ -e $(basename $<)-lualatex.bcf ] || \
		(biber  $(basename $<)-lualatex.bcf && \
	$(FAKETIME) lualatex -jobname          $(basename $@) $<)
	@# Prepare index, if necessary.
	! [ -e $(basename $<)-lualatex.idx ] || \
		(texindy -I latex -C utf8 -L english \
		$(basename $<)-lualatex.idx && \
	$(FAKETIME) lualatex -jobname          $(basename $@) $<)
	@# The second run.
	$(FAKETIME) lualatex -jobname          $(basename $@) $<
	@# Compare the result with the prototype.
	! [ -e expected-$@ ] || $(COMPARE) expected-$@ $@ || \
	{ [ "$(UPDATE_FAILED)" = true ] && mv $@ expected-$@; }

# This target removes any auxiliary files.
clean:
	rm -f *.aux *.log *.out *.toc *.lot *.lof *.bcf *.blg *.run.xml \
		*.bbl *.idx *.ind *.ilg

# This target removes any auxiliary files and the output PDF files.
implode: clean
	rm -f $(TESTS)