~ubuntu-manual/ubuntu-manual/xenial

« back to all changes in this revision

Viewing changes to Makefile

  • Committer: Kevin M. Godby
  • Date: 2016-02-12 08:15:11 UTC
  • Revision ID: kevin@godby.org-20160212081511-ki6wpqkcoufy527t
Initial commit. Copied from trusty-e2 branch.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
LATEXFILE=ubuntu-manual
 
2
 
 
3
SHELL=/bin/bash
 
4
 
 
5
all: $(LATEXFILE).pdf
 
6
 
 
7
CHAPTERS := $(wildcard \
 
8
        frontmatter/*.tex \
 
9
        advanced-topics/*.tex \
 
10
        ubuntu-desktop/*.tex \
 
11
        backmatter/*.tex \
 
12
        working-with-ubuntu/*.tex \
 
13
        installation/*.tex \
 
14
        learning-more/*.tex \
 
15
        hardware/*.tex \
 
16
        software-management/*.tex \
 
17
        troubleshooting/*.tex)
 
18
 
 
19
$(LATEXFILE).pdf: $(LATEXFILE).tex ubuntu-manual.cls $(CHAPTERS) revinfo
 
20
        xelatex --output-driver="xdvipdfmx -V 5" $(LATEXFILE)
 
21
        xelatex --output-driver="xdvipdfmx -V 5" $(LATEXFILE)
 
22
        makeglossaries -L english $(LATEXFILE)
 
23
        makeindex $(LATEXFILE)
 
24
        #xindy -C utf8 -M texindy -L english -t $(LATEXFILE).ilg ${TEXFILE}.idx
 
25
        xelatex --output-driver="xdvipdfmx -V 5" $(LATEXFILE)
 
26
        makeglossaries -L english $(LATEXFILE)
 
27
        xelatex --output-driver="xdvipdfmx -V 5" $(LATEXFILE)
 
28
        xelatex --output-driver="xdvipdfmx -V 5" $(LATEXFILE)
 
29
        xelatex --output-driver="xdvipdfmx -V 5" $(LATEXFILE)
 
30
        ./screenshots/check_unused_screenshots.sh en_US
 
31
        $(color_tex) $(LATEXFILE).log
 
32
        @cat screenshots_missing-en_US.log
 
33
        @cat screenshots_unused-en_US.log
 
34
 
 
35
check: $(LATEXFILE).pdf
 
36
        $(color_tex) $(LATEXFILE).log
 
37
 
 
38
style-guide.pdf: style-guide.tex ubuntu-manual.cls
 
39
        xelatex --output-driver="xdvipdfmx -V 5" style-guide
 
40
        xelatex --output-driver="xdvipdfmx -V 5" style-guide
 
41
        makeglossaries -L english style-guide
 
42
        makeindex style-guide
 
43
        xelatex --output-driver="xdvipdfmx -V 5" style-guide
 
44
        makeglossaries -L english style-guide
 
45
        xelatex --output-driver="xdvipdfmx -V 5" style-guide
 
46
        xelatex --output-driver="xdvipdfmx -V 5" style-guide
 
47
        xelatex --output-driver="xdvipdfmx -V 5" style-guide
 
48
        $(color_tex) style-guide.log
 
49
 
 
50
 
 
51
# Handle translations
 
52
TRANSLATIONS=$(shell for PO in po/*.po; do basename $$PO .po; done) # list of languages in the po/ dir
 
53
 
 
54
# Default translation is en_US
 
55
ubuntu-manual-en_US.pdf: $(LATEXFILE).pdf
 
56
        cp $(LATEXFILE).pdf $@
 
57
 
 
58
LLANG=$(shell echo $${LANG} | sed -e 's/\..*$$//g')
 
59
SLANG=$(shell echo $${LANG} | sed -e 's/_.*$$//g')
 
60
MYLANG=$(shell for PO in ${TRANSLATIONS}; do if [ "$${PO}" == "${LLANG}" ]; then echo ${LLANG}; exit 0; elif [ "$${PO}" == "${SLANG}" ]; then echo ${SLANG}; exit 0; fi; done; echo "en_US")
 
61
 
 
62
# Compile the pdf for the current system language (if there's an appropriate translation)
 
63
mylang: ubuntu-manual-${MYLANG}.pdf
 
64
 
 
65
ubuntu-manual-%.tex: POLANG=$(shell basename $(subst ubuntu-manual-,,$@) .tex)
 
66
ubuntu-manual-%.tex: revinfo
 
67
        cp po/$(POLANG).po po/$(POLANG)_org.po
 
68
        ./po/convert_translation-credits.sed -n po/$(POLANG)_org.po > po/$(POLANG).po
 
69
        rm po/$(POLANG)_org.po
 
70
        po4a-translate --master-charset=utf8 -f latex -m $(LATEXFILE).tex -p $(subst .tex,.po,$(subst ubuntu-manual-,po/,$@)) -l $@ -k 0
 
71
        ./screenshots/check_unused_screenshots.sh $(POLANG)
 
72
 
 
73
#%.tex: %.po ubuntu-manual.cls revinfo
 
74
#       po4a-translate --master-charset=utf8 -f latex -m $(LATEXFILE).tex -p $< -l ubuntu-manual-$(shell basename $< .po).tex -k 0
 
75
 
 
76
%.pdf: POLANG=$(shell basename $(subst ubuntu-manual-,,$<) .tex)
 
77
%.pdf: TEXFILE=$(shell basename $< .tex)
 
78
%.pdf: XINDYLANG=$(shell grep -v "^#" langcodes.txt | grep "^${POLANG}" | awk '{ print $$3 }' || echo -n "general")
 
79
 
 
80
%.pdf: %.tex ubuntu-manual.cls revinfo
 
81
        $(call generate_titlepage,${POLANG})
 
82
        xelatex --output-driver="xdvipdfmx -V 5" -interaction nonstopmode "\def\polang{${POLANG}}\input{${TEXFILE}}"
 
83
        xelatex --output-driver="xdvipdfmx -V 5" -interaction nonstopmode "\def\polang{${POLANG}}\input{${TEXFILE}}"
 
84
        makeglossaries -L ${XINDYLANG} ${TEXFILE}
 
85
        #texindy -L ${XINDYLANG} -C utf8 ${TEXFILE}.idx
 
86
        xindy -C utf8 -M texindy -M um-page-ranges -L ${XINDYLANG} ${TEXFILE}.idx -t ${TEXFILE}.ilg
 
87
        xelatex --output-driver="xdvipdfmx -V 5" -interaction nonstopmode '\def\polang{$(POLANG)}\input{$(TEXFILE)}'
 
88
        makeglossaries -L ${XINDYLANG} $(TEXFILE)
 
89
        xelatex --output-driver="xdvipdfmx -V 5" -interaction nonstopmode '\def\polang{$(POLANG)}\input{$(TEXFILE)}'
 
90
        xelatex --output-driver="xdvipdfmx -V 5" -interaction nonstopmode '\def\polang{$(POLANG)}\input{$(TEXFILE)}'
 
91
        xelatex --output-driver="xdvipdfmx -V 5" -interaction nonstopmode '\def\polang{$(POLANG)}\input{$(TEXFILE)}'
 
92
        $(color_tex) $(TEXFILE).log
 
93
        @cat screenshots_missing-$(POLANG).log
 
94
        @cat screenshots_unused-$(POLANG).log
 
95
 
 
96
ubuntu-manual.pot:
 
97
        #po4a -v --no-translations -MUTF-8 --copyright-holder "The Ubuntu Manual Team" --package-name ubuntu-manual --package-version `bzr revno` po4a.conf
 
98
        po4a-gettextize -v -M UTF-8 --copyright-holder "The Ubuntu Manual Team" --package-name ubuntu-manual --package-version `bzr revno` -f latex -m $(LATEXFILE).tex -p po/ubuntu-manual.pot -o definitions=ubuntu-manual.cls
 
99
 
 
100
revinfo:
 
101
        bzr version-info --custom --template='\\revinfo{{revno}}{{date}}' > revision.tex
 
102
 
 
103
 
 
104
generate_titlepage = \
 
105
        inkscape --export-text-to-path --export-pdf=titlepage/titlepage-$(1).pdf titlepage/titlepage-$(1).svg
 
106
 
 
107
#titlepage/titlepage-%.pdf: titlepage/titlepage-%.svg
 
108
#       inkscape --export-text-to-path --export-pdf=$(subst .svg,.pdf,$<) $<
 
109
 
 
110
%.pdf: %.asy
 
111
        asy -f pdf $<
 
112
 
 
113
%.pdf: %.svg
 
114
        inkscape --export-text-to-path --export-pdf=$@ $<
 
115
        #pdfcrop $@ $@
 
116
 
 
117
%.png: %.dot
 
118
        dot -v -Tpng $< -o $@
 
119
 
 
120
show: $(LATEXFILE).pdf
 
121
        evince $<
 
122
 
 
123
show-mylang: ubuntu-manual-${MYLANG}.pdf
 
124
        evince $<
 
125
 
 
126
clean:
 
127
        -rm -fr $(LATEXFILE)*.aux $(LATEXFILE)*.log $(LATEXFILE)*.nav $(LATEXFILE)*.out $(LATEXFILE)*.snm $(LATEXFILE)*.toc
 
128
        -rm -fr $(LATEXFILE)*.idx $(LATEXFILE)*.ilg $(LATEXFILE)*.ind $(LATEXFILE)*.lof $(LATEXFILE)*.lot $(LATEXFILE)*.tdo
 
129
        -rm -fr $(LATEXFILE)*.glg $(LATEXFILE)*.glo $(LATEXFILE)*.gls $(LATEXFILE)*.xdy
 
130
        -rm -f missfont.log
 
131
        -rm -f */*.aux
 
132
        -rm -f */*.log
 
133
        -rm -f *.bbl *.blg */*.bbl */*.blg # biblio files
 
134
        -rm -f *.ptc # titletoc
 
135
        -rm -f screenshots*.log
 
136
 
 
137
 
 
138
#
 
139
# From Chris Monson's LaTeX Makefile
 
140
#
 
141
 
 
142
SED             ?= sed
 
143
TPUT    ?= tput
 
144
 
 
145
tput    = $(shell $(TPUT) $1)
 
146
 
 
147
black   := $(call tput,setaf 0)
 
148
red     := $(call tput,setaf 1)
 
149
green   := $(call tput,setaf 2)
 
150
yellow  := $(call tput,setaf 3)
 
151
blue    := $(call tput,setaf 4)
 
152
magenta := $(call tput,setaf 5)
 
153
cyan    := $(call tput,setaf 6)
 
154
white   := $(call tput,setaf 7)
 
155
bold    := $(call tput,bold)
 
156
uline   := $(call tput,smul)
 
157
reset   := $(call tput,sgr0)
 
158
 
 
159
#
 
160
# User-settable definitions
 
161
#
 
162
LATEX_COLOR_WARNING     ?= magenta
 
163
LATEX_COLOR_ERROR       ?= red
 
164
LATEX_COLOR_INFO        ?= green
 
165
LATEX_COLOR_UNDERFULL   ?= magenta
 
166
LATEX_COLOR_OVERFULL    ?= red bold
 
167
LATEX_COLOR_PAGES       ?= bold
 
168
LATEX_COLOR_BUILD       ?= blue
 
169
LATEX_COLOR_GRAPHIC     ?= yellow
 
170
LATEX_COLOR_DEP         ?= green
 
171
LATEX_COLOR_SUCCESS     ?= green bold
 
172
LATEX_COLOR_FAILURE     ?= red bold
 
173
 
 
174
# Gets the real color from a simple textual definition like those above
 
175
# $(call get-color,ALL_CAPS_COLOR_NAME)
 
176
# e.g., $(call get-color,WARNING)
 
177
get-color       = $(subst $(space),,$(foreach c,$(LATEX_COLOR_$1),$($c)))
 
178
 
 
179
#
 
180
# STANDARD COLORS
 
181
#
 
182
C_WARNING       := $(call get-color,WARNING)
 
183
C_ERROR         := $(call get-color,ERROR)
 
184
C_INFO          := $(call get-color,INFO)
 
185
C_UNDERFULL     := $(call get-color,UNDERFULL)
 
186
C_OVERFULL      := $(call get-color,OVERFULL)
 
187
C_PAGES         := $(call get-color,PAGES)
 
188
C_BUILD         := $(call get-color,BUILD)
 
189
C_GRAPHIC       := $(call get-color,GRAPHIC)
 
190
C_DEP           := $(call get-color,DEP)
 
191
C_SUCCESS       := $(call get-color,SUCCESS)
 
192
C_FAILURE       := $(call get-color,FAILURE)
 
193
C_RESET         := $(reset)
 
194
 
 
195
 
 
196
 
 
197
color_tex       := \
 
198
        @$(SED) \
 
199
        -e '$${' \
 
200
        -e '  /^$$/!{' \
 
201
        -e '    H' \
 
202
        -e '    s/.*//' \
 
203
        -e '  }' \
 
204
        -e '}' \
 
205
        -e '/^$$/!{' \
 
206
        -e '  H' \
 
207
        -e '  d' \
 
208
        -e '}' \
 
209
        -e '/^$$/{' \
 
210
        -e '  x' \
 
211
        -e '  s/^\n//' \
 
212
        -e '  /Output written/{' \
 
213
        -e '    s/.*(\([^)]\{1,\}\)).*/Success!  Wrote \1/' \
 
214
        -e '    s/[[:digit:]]\{1,\}/$(C_PAGES)&$(C_RESET)/g' \
 
215
        -e '    s/Success!/$(C_SUCCESS)&$(C_RESET)/g' \
 
216
        -e '    b end' \
 
217
        -e '  }' \
 
218
        -e '  /! *LaTeX Error:.*/{' \
 
219
        -e '    s/.*\(! *LaTeX Error:.*\)/$(C_ERROR)\1$(C_RESET)/' \
 
220
        -e '    b end' \
 
221
        -e '  }' \
 
222
        -e '  /.*Warning: Marginpar on page [0-9]\+ moved\./{' \
 
223
        -e '    s//$(C_RESET)&$(C_RESET)/' \
 
224
        -e '    b end' \
 
225
        -e '  }' \
 
226
        -e '  /.*Warning: Reference .*/{' \
 
227
        -e '    s//$(C_ERROR)&$(C_RESET)/' \
 
228
        -e '    b end' \
 
229
        -e '  }' \
 
230
        -e '  /.*Warning:.*/{' \
 
231
        -e '    s//$(C_WARNING)&$(C_RESET)/' \
 
232
        -e '    b end' \
 
233
        -e '  }' \
 
234
        -e '  /Underfull.*/{' \
 
235
        -e '    s/.*\(Underfull.*\)/$(C_UNDERFULL)\1$(C_RESET)/' \
 
236
        -e '    b end' \
 
237
        -e '  }' \
 
238
        -e '  /Overfull.*/{' \
 
239
        -e '    s/.*\(Overfull.*\)/$(C_OVERFULL)\1$(C_RESET)/' \
 
240
        -e '    b end' \
 
241
        -e '  }' \
 
242
        $(if $(VERBOSE),,-e '  d') \
 
243
        -e '  :end' \
 
244
        -e '  G' \
 
245
        -e '}' \
 
246
 
 
247
.PHONY: translations clean show all mylang show-mylang check revinfo -
 
248