@@@ yet more mess
[sod] / doc / Makefile.am
CommitLineData
3f725f73
MW
1### -*-makefile-*-
2###
3### Build script for the manual
4###
5### (c) 2015 Straylight/Edgeware
6###
7
8###----- Licensing notice ---------------------------------------------------
9###
e0808c47 10### This file is part of the Sensible Object Design, an object system for C.
3f725f73
MW
11###
12### SOD is free software; you can redistribute it and/or modify
13### it under the terms of the GNU General Public License as published by
14### the Free Software Foundation; either version 2 of the License, or
15### (at your option) any later version.
16###
17### SOD is distributed in the hope that it will be useful,
18### but WITHOUT ANY WARRANTY; without even the implied warranty of
19### MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20### GNU General Public License for more details.
21###
22### You should have received a copy of the GNU General Public License
23### along with SOD; if not, write to the Free Software Foundation,
24### Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
25
26include $(top_srcdir)/vars.am
27
28doc_DATA =
29TEX_FILES =
d892b0c3 30BIB_FILES =
3f725f73 31
ddfe4265 32CLEANFILES += *.aux *.out *.log *.toc *.ind *.idx *.ilg
d892b0c3 33EXTRA_DIST += $(TEX_FILES) $(BIB_FILES)
3f725f73 34
684d95c7
MW
35V_LATEX = $(V_LATEX_@AM_V@)
36V_LATEX_ = $(V_LATEX_@AM_DEFAULT_V@)
37V_LATEX_0 = @echo " LATEX $@";
7ad0d250 38
684d95c7
MW
39V_TEXMODE = $(V_TEXMODE_@AM_V@)
40V_TEXMODE_ = $(V_TEXMODE_@AM_DEFAULT_V@)
41V_TEXMODE_0 = batchmode
42V_TEXMODE_1 = nonstopmode
b20e5e26 43
684d95c7
MW
44V_BIBTEX = $(V_BIBTEX_@AM_V@)
45V_BIBTEX_ = $(V_BIBTEX_@AM_DEFAULT_V@)
46V_BIBTEX_0 = @echo " BIBTEX $@";
b20e5e26 47
684d95c7
MW
48V_MAKEINDEX = $(V_MAKEINDEX_@AM_V@)
49V_MAKEINDEX_ = $(V_MAKEINDEX_@AM_DEFAULT_V@)
50V_MAKEINDEX_0 = @echo " MAKEIDX $@";
51
52TEXFLAGS = --interaction=$(V_TEXMODE) \
53 --output-directory=$(abs_builddir)
54BIBTEXFLAGS = --terse
55MAKEINDEXFLAGS = -q
b20e5e26
MW
56
57run_pdflatex = $(V_LATEX)cd $(srcdir) && \
53045abe 58 version=$$(echo '$(VERSION)' | sed 's/~/\\textasciitilde /g') && \
b20e5e26 59 $(PDFLATEX) $(TEXFLAGS) \
87837656 60 --jobname=$(basename $1) \
53045abe 61 "\def\pkgversion{$$version}\input{$1}"
87837656 62
3f725f73
MW
63###--------------------------------------------------------------------------
64### The manual.
65
66## The master file.
67TEX_FILES += sod.tex
68
69## Main document styling and definitions.
70TEX_FILES += sod.sty
71
e655a9fd
MW
72## The introduction.
73TEX_FILES += intro.tex
74
3f725f73
MW
75## Tutorial.
76TEX_FILES += tutorial.tex
77
78## Reference.
bdcacad3 79TEX_FILES += refintro.tex
3f725f73 80TEX_FILES += concepts.tex
15ad30aa 81TEX_FILES += cmdline.tex
3f725f73
MW
82TEX_FILES += syntax.tex
83TEX_FILES += runtime.tex
84TEX_FILES += structures.tex
85
86## Lisp interface.
87TEX_FILES += lispintro.tex
88TEX_FILES += misc.tex
89TEX_FILES += parsing.tex
90TEX_FILES += clang.tex
756f4928
MW
91TEX_FILES += meta.tex
92TEX_FILES += layout.tex
bca101d9 93TEX_FILES += module.tex
999a0e35 94TEX_FILES += output.tex
3f725f73
MW
95
96## Other hacks.
97TEX_FILES += cutting-room-floor.tex
98
1edb774e
MW
99## Bibliography database.
100BIB_FILES += sod.bib
101
d892b0c3
MW
102## Building the bibliography style.
103EXTRA_DIST += mdwalpha.dbj
104
713c4990
MW
105## Spelling dictionary.
106EXTRA_DIST += sod.words
107
3f725f73 108## Building the output documents.
d892b0c3 109MAINTAINERCLEANFILES += sod.pdf sod.bst babelbst.tex
b20e5e26
MW
110
111if HAVE_LATEX
3f725f73 112doc_DATA += sod.pdf
b20e5e26 113EXTRA_DIST += sod.pdf
d892b0c3 114sod.pdf: $(TEX_FILES) $(BIB_FILES)
87837656 115 $(call run_pdflatex,sod.tex)
d892b0c3
MW
116 $(V_BIBTEX)env \
117 BIBINPUTS=$(srcdir):$$BIBINPUTS \
118 BSTINPUTS=$(srcdir):$$BSTINPUTS \
119 $(BIBTEX) $(BIBTEXFLAGS) sod.aux
87837656 120 $(call run_pdflatex,sod.tex)
b20e5e26 121 $(V_MAKEINDEX)$(MAKEINDEX) $(MAKEINDEXFLAGS) sod.idx
87837656 122 $(call run_pdflatex,sod.tex)
d892b0c3
MW
123
124if HAVE_CUSTOM_BIB
125BIB_FILES += mdwalpha.bst babelbst.tex
126babelbst.tex: mdwalpha.bst
127mdwalpha.bst: mdwalpha.dbj
128 (cd $(srcdir) && $(TEX) \
129 --jobname=mdwalpha \
684d95c7 130 --interaction=$(V_TEXMODE) \
d892b0c3
MW
131 --output-directory=$(abs_builddir) \
132 '\let\ifbatching\iftrue \input mdwalpha.dbj')
133endif
b20e5e26 134endif
3f725f73 135
684d95c7
MW
136###--------------------------------------------------------------------------
137### Maintenance rules.
138
139fixup-wordlist:
140 { IFS= read -r hdr && echo "$$hdr" && \
141 LC_COLLATE=POSIX sort -f; \
142 } <$(srcdir)/sod.words >$(srcdir)/sod.words.new && \
143 mv $(srcdir)/sod.words.new $(srcdir)/sod.words
144.PHONY: fixup-wordlist
145
146update-symbols:
147 $(ASDF_ENV) $(RUNLISP) -L$(WORKING_LISPS) $(srcdir)/list-exports \
148 >$(srcdir)/SYMBOLS.new && \
149 mv $(srcdir)/SYMBOLS.new $(srcdir)/SYMBOLS
150.PHONY: update-symbols
151
152check-manual: update-symbols sod.pdf
153 $(srcdir)/check-docs sod.aux $(srcdir)/SYMBOLS
154.PHONY: check-manual
155
3f725f73 156###----- That's all, folks --------------------------------------------------