~ubuntu-manual/ubuntu-manual/saucy

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
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
LATEXFILE=ubuntu-manual

SHELL=/bin/bash

all: $(LATEXFILE).pdf

CHAPTERS=\
	frontmatter/*.tex \
	advanced-topics/*.tex \
	ubuntu-desktop/*.tex \
	backmatter/*.tex \
	working-with-ubuntu/*.tex \
	installation/*.tex \
	learning-more/*.tex \
	hardware/*.tex \
	software-management/*.tex \
	troubleshooting/*.tex

$(LATEXFILE).pdf: $(LATEXFILE).tex ubuntu-manual.cls $(CHAPTERS) revinfo
	xelatex --output-driver="xdvipdfmx -V 5" $(LATEXFILE)
	xelatex --output-driver="xdvipdfmx -V 5" $(LATEXFILE)
	makeglossaries -L english $(LATEXFILE)
	makeindex $(LATEXFILE)
	#xindy -C utf8 -M texindy -L english -t $(LATEXFILE).ilg ${TEXFILE}.idx
	xelatex --output-driver="xdvipdfmx -V 5" $(LATEXFILE)
	makeglossaries -L english $(LATEXFILE)
	xelatex --output-driver="xdvipdfmx -V 5" $(LATEXFILE)
	xelatex --output-driver="xdvipdfmx -V 5" $(LATEXFILE)
	xelatex --output-driver="xdvipdfmx -V 5" $(LATEXFILE)
	./screenshots/check_unused_screenshots.sh en_US
	$(color_tex) $(LATEXFILE).log
	cat screenshots_missing-en_US.log
	cat screenshots_unused-en_US.log

check: $(LATEXFILE).pdf
	$(color_tex) $(LATEXFILE).log

style-guide.pdf: style-guide.tex ubuntu-manual.cls
	xelatex --output-driver="xdvipdfmx -V 5" style-guide
	xelatex --output-driver="xdvipdfmx -V 5" style-guide
	makeglossaries -L english style-guide
	makeindex style-guide
	xelatex --output-driver="xdvipdfmx -V 5" style-guide
	makeglossaries -L english style-guide
	xelatex --output-driver="xdvipdfmx -V 5" style-guide
	xelatex --output-driver="xdvipdfmx -V 5" style-guide
	xelatex --output-driver="xdvipdfmx -V 5" style-guide
	$(color_tex) style-guide.log


# Handle translations
TRANSLATIONS=$(shell for PO in po/*.po; do basename $$PO .po; done) # list of languages in the po/ dir
TRANSLATIONS_TEX=$(foreach PO, $(TRANSLATIONS), ubuntu-manual-$(shell basename $(PO) .po).tex) # list of .tex files to be generated
TRANSLATIONS_PDF=$(foreach PO, $(TRANSLATIONS), ubuntu-manual-$(shell basename $(PO) .po).pdf) # list of .pdf files to be generated

# Default translation is en_US
ubuntu-manual-en_US.pdf: $(LATEXFILE).pdf
	cp $(LATEXFILE).pdf $@

# Compile all translations at once
translations: $(TRANSLATIONS_PDF) ubuntu-manual.cls

LLANG=$(shell echo $${LANG} | sed -e 's/\..*$$//g')
SLANG=$(shell echo $${LANG} | sed -e 's/_.*$$//g')
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")

# Compile the pdf for the current system language (if there's an appropriate translation)
mylang: ubuntu-manual-${MYLANG}.pdf

ubuntu-manual-%.tex: POLANG=$(shell basename $(subst ubuntu-manual-,,$@) .tex)
ubuntu-manual-%.tex: revinfo
	cp po/$(POLANG).po po/$(POLANG)_org.po
	./po/convert_translation-credits.sed -n po/$(POLANG)_org.po > po/$(POLANG).po
	rm po/$(POLANG)_org.po
	po4a-translate --master-charset=utf8 -f latex -m $(LATEXFILE).tex -p $(subst .tex,.po,$(subst ubuntu-manual-,po/,$@)) -l $@ -k 0
	./screenshots/check_unused_screenshots.sh $(POLANG)

#%.tex: %.po ubuntu-manual.cls revinfo
#	po4a-translate --master-charset=utf8 -f latex -m $(LATEXFILE).tex -p $< -l ubuntu-manual-$(shell basename $< .po).tex -k 0

%.pdf: POLANG=$(shell basename $(subst ubuntu-manual-,,$<) .tex)
%.pdf: TEXFILE=$(shell basename $< .tex)
%.pdf: XINDYLANG=$(shell grep -v "^#" langcodes.txt | grep "^${POLANG}" | awk '{ print $$3 }' || echo -n "general")

%.pdf: %.tex ubuntu-manual.cls revinfo
	#$(call generate_titlepage,${POLANG})
	xelatex --output-driver="xdvipdfmx -V 5" -interaction nonstopmode "\def\polang{${POLANG}}\input{${TEXFILE}}"
	xelatex --output-driver="xdvipdfmx -V 5" -interaction nonstopmode "\def\polang{${POLANG}}\input{${TEXFILE}}"
	makeglossaries -L ${XINDYLANG} ${TEXFILE}
	#texindy -L ${XINDYLANG} -C utf8 ${TEXFILE}.idx
	xindy -C utf8 -M texindy -M um-page-ranges -L ${XINDYLANG} ${TEXFILE}.idx -t ${TEXFILE}.ilg
	xelatex --output-driver="xdvipdfmx -V 5" -interaction nonstopmode '\def\polang{$(POLANG)}\input{$(TEXFILE)}'
	makeglossaries -L ${XINDYLANG} $(TEXFILE)
	xelatex --output-driver="xdvipdfmx -V 5" -interaction nonstopmode '\def\polang{$(POLANG)}\input{$(TEXFILE)}'
	xelatex --output-driver="xdvipdfmx -V 5" -interaction nonstopmode '\def\polang{$(POLANG)}\input{$(TEXFILE)}'
	xelatex --output-driver="xdvipdfmx -V 5" -interaction nonstopmode '\def\polang{$(POLANG)}\input{$(TEXFILE)}'
	$(color_tex) $(TEXFILE).log
	cat screenshots_missing-$(POLANG).log
	cat screenshots_unused-$(POLANG).log

ubuntu-manual.pot:
	#po4a -v --no-translations -MUTF-8 --copyright-holder "The Ubuntu Manual Team" --package-name ubuntu-manual --package-version `bzr revno` po4a.conf
	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

revinfo:
	bzr version-info --custom --template='\\revinfo{{revno}}{{date}}' > revision.tex


generate_titlepage = \
	inkscape --export-text-to-path --export-pdf=titlepage/titlepage-$(1).pdf titlepage/titlepage-$(1).svg

#titlepage/titlepage-%.pdf: titlepage/titlepage-%.svg
#	inkscape --export-text-to-path --export-pdf=$(subst .svg,.pdf,$<) $<

%.pdf: %.asy
	asy -f pdf $<

%.pdf: %.svg
	inkscape --export-text-to-path --export-pdf=$@ $<
	#pdfcrop $@ $@

%.png: %.dot
	dot -v -Tpng $< -o $@

show: $(LATEXFILE).pdf
	evince $<

show-mylang: ubuntu-manual-${MYLANG}.pdf
	evince $<

clean:
	-rm -fr $(LATEXFILE)*.aux $(LATEXFILE)*.log $(LATEXFILE)*.nav $(LATEXFILE)*.out $(LATEXFILE)*.snm $(LATEXFILE)*.toc
	-rm -fr $(LATEXFILE)*.idx $(LATEXFILE)*.ilg $(LATEXFILE)*.ind $(LATEXFILE)*.lof $(LATEXFILE)*.lot $(LATEXFILE)*.tdo
	-rm -fr $(LATEXFILE)*.glg $(LATEXFILE)*.glo $(LATEXFILE)*.gls $(LATEXFILE)*.xdy
	-rm -f missfont.log
	-rm -f */*.aux
	-rm -f */*.log
	-rm -f *.bbl *.blg */*.bbl */*.blg # biblio files
	-rm -f *.ptc # titletoc
	-rm -f screenshots*.log


#
# From Chris Monson's LaTeX Makefile
#

SED		?= sed
TPUT	?= tput

tput	= $(shell $(TPUT) $1)

black	:= $(call tput,setaf 0)
red	:= $(call tput,setaf 1)
green	:= $(call tput,setaf 2)
yellow	:= $(call tput,setaf 3)
blue	:= $(call tput,setaf 4)
magenta	:= $(call tput,setaf 5)
cyan	:= $(call tput,setaf 6)
white	:= $(call tput,setaf 7)
bold	:= $(call tput,bold)
uline	:= $(call tput,smul)
reset	:= $(call tput,sgr0)

#
# User-settable definitions
#
LATEX_COLOR_WARNING	?= magenta
LATEX_COLOR_ERROR	?= red
LATEX_COLOR_INFO	?= green
LATEX_COLOR_UNDERFULL	?= magenta
LATEX_COLOR_OVERFULL	?= red bold
LATEX_COLOR_PAGES	?= bold
LATEX_COLOR_BUILD	?= blue
LATEX_COLOR_GRAPHIC	?= yellow
LATEX_COLOR_DEP		?= green
LATEX_COLOR_SUCCESS	?= green bold
LATEX_COLOR_FAILURE	?= red bold

# Gets the real color from a simple textual definition like those above
# $(call get-color,ALL_CAPS_COLOR_NAME)
# e.g., $(call get-color,WARNING)
get-color	= $(subst $(space),,$(foreach c,$(LATEX_COLOR_$1),$($c)))

#
# STANDARD COLORS
#
C_WARNING	:= $(call get-color,WARNING)
C_ERROR		:= $(call get-color,ERROR)
C_INFO		:= $(call get-color,INFO)
C_UNDERFULL	:= $(call get-color,UNDERFULL)
C_OVERFULL	:= $(call get-color,OVERFULL)
C_PAGES		:= $(call get-color,PAGES)
C_BUILD		:= $(call get-color,BUILD)
C_GRAPHIC	:= $(call get-color,GRAPHIC)
C_DEP		:= $(call get-color,DEP)
C_SUCCESS	:= $(call get-color,SUCCESS)
C_FAILURE	:= $(call get-color,FAILURE)
C_RESET		:= $(reset)



color_tex	:= \
	@$(SED) \
	-e '$${' \
	-e '  /^$$/!{' \
	-e '    H' \
	-e '    s/.*//' \
	-e '  }' \
	-e '}' \
	-e '/^$$/!{' \
	-e '  H' \
	-e '  d' \
	-e '}' \
	-e '/^$$/{' \
	-e '  x' \
	-e '  s/^\n//' \
	-e '  /Output written/{' \
	-e '    s/.*(\([^)]\{1,\}\)).*/Success!  Wrote \1/' \
	-e '    s/[[:digit:]]\{1,\}/$(C_PAGES)&$(C_RESET)/g' \
	-e '    s/Success!/$(C_SUCCESS)&$(C_RESET)/g' \
	-e '    b end' \
	-e '  }' \
	-e '  /! *LaTeX Error:.*/{' \
	-e '    s/.*\(! *LaTeX Error:.*\)/$(C_ERROR)\1$(C_RESET)/' \
	-e '    b end' \
	-e '  }' \
	-e '  /.*Warning: Marginpar on page [0-9]\+ moved\./{' \
	-e '    s//$(C_RESET)&$(C_RESET)/' \
	-e '    b end' \
	-e '  }' \
	-e '  /.*Warning: Reference .*/{' \
	-e '    s//$(C_ERROR)&$(C_RESET)/' \
	-e '    b end' \
	-e '  }' \
	-e '  /.*Warning:.*/{' \
	-e '    s//$(C_WARNING)&$(C_RESET)/' \
	-e '    b end' \
	-e '  }' \
	-e '  /Underfull.*/{' \
	-e '    s/.*\(Underfull.*\)/$(C_UNDERFULL)\1$(C_RESET)/' \
	-e '    b end' \
	-e '  }' \
	-e '  /Overfull.*/{' \
	-e '    s/.*\(Overfull.*\)/$(C_OVERFULL)\1$(C_RESET)/' \
	-e '    b end' \
	-e '  }' \
	$(if $(VERBOSE),,-e '  d') \
	-e '  :end' \
	-e '  G' \
	-e '}' \

.PHONY: translations clean show all mylang show-mylang check revinfo -