Cleanup for etc/refcards/Makefile and related items
[bpt/emacs.git] / etc / refcards / Makefile
CommitLineData
86965385
GM
1### Makefile for Emacs refcards
2
ab422c4d 3## Copyright (C) 1993-1994, 2001-2013 Free Software Foundation, Inc.
86965385
GM
4
5## This file is part of GNU Emacs.
b83446dd
GM
6#
7## GNU Emacs is free software: you can redistribute it and/or modify
86965385 8## it under the terms of the GNU General Public License as published by
b83446dd
GM
9## the Free Software Foundation, either version 3 of the License, or
10## (at your option) any later version.
86965385
GM
11
12## GNU Emacs is distributed in the hope that it will be useful,
13## but WITHOUT ANY WARRANTY; without even the implied warranty of
14## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15## GNU General Public License for more details.
16
17## You should have received a copy of the GNU General Public License
b83446dd 18## along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
86965385 19
4fa44856 20### Commentary:
86965385 21
4fa44856 22## See README for details.
86965385 23
4fa44856
GM
24PDF_ENGLISH = \
25 calccard.pdf \
26 dired-ref.pdf \
27 gnus-booklet.pdf \
28 gnus-refcard.pdf \
29 orgcard.pdf \
30 refcard.pdf \
31 survival.pdf \
32 vipcard.pdf \
33 viperCard.pdf
86965385 34
4fa44856
GM
35PDF_CZECH = \
36 cs-dired-ref.pdf \
37 cs-refcard.pdf \
38 cs-survival.pdf
45c33aa6 39
4fa44856
GM
40PDF_FRENCH = \
41 fr-dired-ref.pdf \
42 fr-refcard.pdf \
43 fr-survival.pdf \
86965385 44
4fa44856 45PDF_GERMAN = de-refcard.pdf
86965385 46
4fa44856 47PDF_POLISH = pl-refcard.pdf
86965385 48
4fa44856 49PDF_PORTUGUESE = pt-br-refcard.pdf
86965385 50
4fa44856 51PDF_RUSSIAN = ru-refcard.pdf
8fb9a9b6 52
4fa44856
GM
53PDF_SLOVAKIAN = \
54 sk-dired-ref.pdf \
55 sk-refcard.pdf \
56 sk-survival.pdf
8fb9a9b6 57
4fa44856
GM
58PDF_TARGETS = $(PDF_ENGLISH) $(PDF_CZECH) $(PDF_FRENCH) $(PDF_GERMAN) \
59 $(PDF_POLISH) $(PDF_PORTUGUESE) $(PDF_RUSSIAN) $(PDF_SLOVAKIAN)
8fb9a9b6 60
4fa44856
GM
61PS_ENGLISH = \
62 calccard.ps \
63 dired-ref.ps \
64 gnus-booklet.ps \
65 gnus-refcard.ps \
66 orgcard.ps \
67 refcard.ps \
68 survival.ps \
69 vipcard.ps \
70 viperCard.ps
8fb9a9b6 71
4fa44856
GM
72PS_CZECH = \
73 cs-dired-ref.ps \
74 cs-refcard.ps \
75 cs-survival.ps
8fb9a9b6 76
4fa44856
GM
77PS_FRENCH = \
78 fr-dired-ref.ps \
79 fr-refcard.ps \
80 fr-survival.ps \
8fb9a9b6 81
4fa44856 82PS_GERMAN = de-refcard.ps
8fb9a9b6 83
4fa44856 84PS_POLISH = pl-refcard.ps
8fb9a9b6 85
4fa44856 86PS_PORTUGUESE = pt-br-refcard.ps
8fb9a9b6 87
4fa44856 88PS_RUSSIAN = ru-refcard.ps
8fb9a9b6 89
4fa44856
GM
90PS_SLOVAKIAN = \
91 sk-dired-ref.ps \
92 sk-refcard.ps \
93 sk-survival.ps
8fb9a9b6 94
4fa44856
GM
95PS_TARGETS = $(PS_ENGLISH) $(PS_CZECH) $(PS_FRENCH) $(PS_GERMAN) \
96 $(PS_POLISH) $(PS_PORTUGUESE) $(PS_RUSSIAN) $(PS_SLOVAKIAN)
86965385 97
86965385 98
4fa44856
GM
99## For emacsver.tex.
100ENVADD = TEXINPUTS=".:$(TEXINPUTS)"
86965385 101
86965385 102
4fa44856 103.PHONY: all pdf ps
86965385 104
4fa44856
GM
105all: pdf
106pdf: $(PDF_TARGETS)
107ps: $(PS_TARGETS)
86965385 108
86965385 109
4fa44856
GM
110.PHONY: english czech french german polish portuguese russian slovakian
111english: $(PDF_ENGLISH)
112czech: $(PDF_CZECH)
113french: $(PDF_FRENCH)
114german: $(PDF_GERMAN)
115polish: $(PDF_POLISH)
116portuguese: $(PDF_PORTUGUESE)
117russian: $(PDF_RUSSIAN)
118slovakian: $(PDF_SLOVAKIAN)
86965385 119
4fa44856
GM
120.PHONY: english-ps czech-ps french-ps german-ps polish-ps portuguese-ps russian-ps slovakian-ps
121english-ps: $(PS_ENGLISH)
122czech-ps: $(PS_CZECH)
123french-ps: $(PS_FRENCH)
124german-ps: $(PS_GERMAN)
125polish-ps: $(PS_POLISH)
126portuguese-ps: $(PS_PORTUGUESE)
127russian-ps: $(PS_RUSSIAN)
128slovakian-ps: $(PS_SLOVAKIAN)
86965385 129
86965385 130
4fa44856
GM
131## Default for file that do not use a different paper size.
132.SUFFIXES: .ps .dvi
133.dvi.ps:
134 dvips -t letter -o $@ $<
135
136
137make_cs=if pdfcsplain --version > /dev/null 2> /dev/null; then \
138 $(ENVADD) pdfcsplain $$input; \
139 else \
140 $(ENVADD) csplain "\pdfoutput=1\input $$input"; \
141 fi
86965385 142
4fa44856
GM
143## For pdf output, the page layouts (a4/letter) are written directly
144## in the .tex files.
86965385 145
4fa44856
GM
146## For PostScript output, note that some of the tex files (refcard,
147## de-refcard, fr-refcard, pt-br-refcard) have settings for letter or
148## a4 paper. The Following are the default paper sizes (letter for English,
149## A4 for translations).
150## FIXME orgcard.ps does not fit on letter (see orgcard.tex).
86965385 151
4fa44856
GM
152## A4, landscape: de-refcard, fr-refcard, pt-br-refcard orgcard
153## A4, portrait: cs-*, fr-dired-ref, sk-*, pl-refcard, ru-refcard
154## Letter, landscape: calccard, refcard
155## Letter, portrait (suffix rule): diref-ref, gnus-*, survival, vip*
156
157calccard_deps = calccard.tex emacsver.tex pdflayout.sty
158calccard.pdf: $(calccard_deps)
159 $(ENVADD) pdftex calccard.tex
160calccard.dvi: $(calccard_deps)
161 $(ENVADD) tex calccard.tex
162calccard.ps: calccard.dvi
163 dvips -t letter -t landscape -o $@ calccard.dvi
164
165cs_dired_ref_deps = cs-dired-ref.tex emacsver.tex pdflayout.sty
166cs-dired-ref.pdf: $(cs_dired_ref_deps)
167 input=cs-dired-ref.tex; $(make_cs)
168cs-dired-ref.dvi: $(cs_dired_ref_deps)
169 $(ENVADD) csplain cs-dired-ref.tex
170cs-dired-ref.ps: cs-dired-ref.dvi
171 dvips -t a4 -o $@ cs-dired-ref.dvi
172
173cs_refcard_deps = cs-refcard.tex emacsver.tex pdflayout.sty
174cs-refcard.pdf: $(cs_refcard_deps)
175 input=cs-refcard.tex; $(make_cs)
176cs-refcard.dvi: $(cs_refcard_deps)
177 $(ENVADD) csplain cs-refcard.tex
178cs-refcard.ps: cs-refcard.dvi
179 dvips -t a4 -o $@ cs-refcard.dvi
180
181cs_survival_deps = cs-survival.tex emacsver.tex pdflayout.sty
182cs-survival.pdf: $(cs_survival_deps)
183 input=cs-survival.tex; $(make_cs)
184cs-survival.dvi: $(cs_survival_deps)
185 $(ENVADD) csplain cs-survival.tex
186cs-survival.ps: cs-survival.dvi
187 dvips -t a4 -o $@ cs-survival.dvi
188
189de_refcard_deps = de-refcard.tex emacsver.tex pdflayout.sty
190de-refcard.pdf: $(de_refcard_deps)
191 $(ENVADD) pdftex de-refcard.tex
192de-refcard.dvi: $(de_refcard_deps)
193 $(ENVADD) tex de-refcard.tex
194de-refcard.ps: de-refcard.dvi
195 dvips -t a4 -t landscape -o $@ de-refcard.dvi
196
197dired_ref_deps = dired-ref.tex emacsver.tex pdflayout.sty
198dired-ref.pdf: $(dired_ref_deps)
199 $(ENVADD) pdftex dired-ref.tex
200dired-ref.dvi: $(dired_ref_deps)
201 $(ENVADD) tex dired-ref.tex
202
203fr_dired_ref_deps = fr-dired-ref.tex emacsver.tex pdflayout.sty
204fr-dired-ref.pdf: $(fr_dired_ref_deps)
205 $(ENVADD) pdftex fr-dired-ref.tex
206fr-dired-ref.dvi: $(fr_dired_ref_deps)
207 $(ENVADD) tex fr-dired-ref.tex
208fr-dired-ref.ps: fr-dired-ref.dvi
209 dvips -t a4 -o $@ fr-dired-ref.dvi
210
211fr_refcard_deps = fr-refcard.tex emacsver.tex pdflayout.sty
212fr-refcard.pdf: $(fr_refcard_deps)
213 $(ENVADD) pdftex fr-refcard.tex
214fr-refcard.dvi: $(fr_refcard_deps)
215 $(ENVADD) tex fr-refcard.tex
216fr-refcard.ps: fr-refcard.dvi
217 dvips -t a4 -t landscape -o $@ fr-refcard.dvi
218
219fr_survival_deps = fr-survival.tex emacsver.tex pdflayout.sty
220fr-survival.pdf: $(fr_survival_deps)
221 $(ENVADD) pdftex fr-survival.tex
222fr-survival.dvi: $(fr_survival_deps)
223 $(ENVADD) tex fr-survival.tex
224fr-survival.ps: fr-survival.dvi
225 dvips -t a4 -o $@ fr-survival.dvi
226
227## No dependency on emacsver.tex, pdflayout.sty; no need for ENVADD.
228gnus_booklet_deps = gnus-refcard.tex gnus-logo.pdf
229gnus-booklet.pdf: $(gnus_booklet_deps)
230 pdflatex -jobname=gnus-booklet '\def\booklettrue{}\def\letterpapertrue{}\input{gnus-refcard}'
231gnus-booklet.dvi: gnus-refcard.tex gnus-logo.eps
232 latex '\def\booklettrue{}\def\letterpapertrue{}\input{gnus-refcard}'
233 mv gnus-refcard.dvi $@
86965385 234
4fa44856
GM
235###gnus-logo.pdf: gnus-logo.eps
236### ps2pdf gnus-logo.eps
237
238## No dependency on emacsver.tex, pdflayout.sty; no need for ENVADD.
239gnus_refcard_deps = gnus-refcard.tex gnus-logo.pdf
240gnus-refcard.pdf: $(gnus_refcard_deps)
241 pdflatex gnus-refcard.tex
242gnus-refcard.dvi: $(gnus_refcard_deps)
243 latex gnus-refcard.tex
244
245orgcard_deps = orgcard.tex emacsver.tex pdflayout.sty
246orgcard.pdf: $(orgcard_deps)
247 $(ENVADD) pdftex orgcard.tex
248orgcard.dvi: $(orgcard_deps)
249 $(ENVADD) tex orgcard.tex
250orgcard.ps: orgcard.dvi
251 dvips -t a4 -t landscape -o $@ orgcard.dvi
252
253pl_refcard_deps = pl-refcard.tex emacsver.tex pdflayout.sty
254## Some versions of pdfmex seem to create dvi by default, hence output-format.
255pl-refcard.pdf: $(pl_refcard_deps)
256 if ! kpsewhich -format=fmt mex > /dev/null && \
257 ! pdfmex --version > /dev/null 2> /dev/null; then \
258 echo "No mex format found."; false; \
259 fi
260 $(ENVADD) pdftex -output-format=pdf pl-refcard.tex
261pl-refcard.dvi: $(pl_refcard_deps)
262 if ! kpsewhich -format=fmt mex > /dev/null; then \
263 echo "No mex format found."; false; \
264 fi
265 $(ENVADD) tex pl-refcard.tex
266pl-refcard.ps: pl-refcard.dvi
267 dvips -t a4 -o $@ pl-refcard.dvi
268
269pt_br_refcard_deps = pt-br-refcard.tex emacsver.tex pdflayout.sty
270pt-br-refcard.pdf: $(pt_br_refcard_deps)
271 $(ENVADD) pdftex pt-br-refcard.tex
272pt-br-refcard.dvi: $(pt_br_refcard_deps)
273 $(ENVADD) tex pt-br-refcard.tex
274pt-br-refcard.ps: pt-br-refcard.dvi
275 dvips -t a4 -t landscape -o $@ pt-br-refcard.dvi
276
277refcard_deps = refcard.tex emacsver.tex pdflayout.sty
278refcard.pdf: $(refcard_deps)
279 $(ENVADD) pdftex refcard.tex
280refcard.dvi: $(refcard_deps)
281 $(ENVADD) tex refcard.tex
282refcard.ps: refcard.dvi
283 dvips -t letter -t landscape -o $@ refcard.dvi
284
285## No dependency on emacsver.tex, pdflayout.sty; no need for ENVADD.
286ru_refcard_deps = ru-refcard.tex
287ru-refcard.pdf: $(ru_refcard_deps)
288 pdflatex ru-refcard.tex
289ru-refcard.dvi: $(ru_refcard_deps)
290 latex ru-refcard.tex
291ru-refcard.ps: ru-refcard.dvi
292 dvips -t a4 -o $@ ru-refcard.dvi
293
294sk_dired_ref_deps = sk-dired-ref.tex emacsver.tex pdflayout.sty
295sk-dired-ref.pdf: $(sk_dired_ref_deps)
296 input=sk-dired-ref.tex; $(make_cs)
297sk-dired-ref.dvi: $(sk_dired_ref_deps)
298 $(ENVADD) csplain sk-dired-ref.tex
299sk-dired-ref.ps: sk-dired-ref.dvi
300 dvips -t a4 -o $@ sk-dired-ref.dvi
301
302sk_refcard_deps = sk-refcard.tex emacsver.tex pdflayout.sty
303sk-refcard.pdf: $(sk_refcard_deps)
304 input=sk-refcard.tex; $(make_cs)
305sk-refcard.dvi: $(sk_refcard_deps)
306 $(ENVADD) csplain sk-refcard.tex
307sk-refcard.ps: sk-refcard.dvi
308 dvips -t a4 -o $@ sk-refcard.dvi
309
310sk_survival_deps = sk-survival.tex emacsver.tex pdflayout.sty
311sk-survival.pdf: $(sk_survival_deps)
312 input=sk-survival.tex; $(make_cs)
313sk-survival.dvi: $(sk_survival_deps)
314 $(ENVADD) csplain sk-survival.tex
315sk-survival.ps: sk-survival.dvi
316 dvips -t a4 -o $@ sk-survival.dvi
317
318survival_deps = survival.tex emacsver.tex pdflayout.sty
319survival.pdf: $(survival_deps)
320 $(ENVADD) pdftex survival.tex
321survival.dvi: $(survival_deps)
322 $(ENVADD) tex survival.tex
323
324vipcard_deps = vipcard.tex emacsver.tex pdflayout.sty
325vipcard.pdf: $(vipcard_deps)
326 $(ENVADD) pdftex vipcard.tex
327vipcard.dvi: $(vipcard_deps)
328 $(ENVADD) tex vipcard.tex
329
330vipercard_deps = viperCard.tex emacsver.tex pdflayout.sty
331viperCard.pdf: $(vipercard_deps)
332 $(ENVADD) pdftex viperCard.tex
333viperCard.dvi: $(vipercard_deps)
334 $(ENVADD) tex viperCard.tex
86965385
GM
335
336
337.PHONY: clean
338
339clean:
298c6467 340 -rm -f *.dvi *.log *.aux
86965385 341
4fa44856
GM
342distclean: clean
343
344## This should really by maintainer-clean, but the handling of the
345## refcards is funny. So abuse extraclean for this.
346extraclean: clean
347 -rm -f $(PDF_TARGETS) $(PS_TARGETS)
348
72baeef2
GM
349## For the Emacs website.
350dist:
351 rm -rf emacs-refcards
352 mkdir emacs-refcards
353 cp Makefile README *.tex gnus-logo.* pdflayout.sty emacs-refcards/
354 tar -cf emacs-refcards.tar emacs-refcards
355 rm -rf emacs-refcards
356
86965385 357### Makefile ends here