; Fix last change
[emacs.git] / etc / refcards / Makefile
blobe998ab7abc6df4d55388c260e6cef1a8e9a2b1b8
1 ### Makefile for Emacs refcards
3 ## Copyright (C) 1993-1994, 2001-2017 Free Software Foundation, Inc.
5 ## This file is part of GNU Emacs.
7 ## GNU Emacs is free software: you can redistribute it and/or modify
8 ## it under the terms of the GNU General Public License as published by
9 ## the Free Software Foundation, either version 3 of the License, or
10 ## (at your option) any later version.
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.
17 ## You should have received a copy of the GNU General Public License
18 ## along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
20 ### Commentary:
22 ## See README for details.
24 PDF_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
35 PDF_CZECH = \
36 cs-dired-ref.pdf \
37 cs-refcard.pdf \
38 cs-survival.pdf
40 PDF_FRENCH = \
41 fr-dired-ref.pdf \
42 fr-refcard.pdf \
43 fr-survival.pdf \
45 PDF_GERMAN = de-refcard.pdf
47 PDF_POLISH = pl-refcard.pdf
49 PDF_PORTUGUESE = pt-br-refcard.pdf
51 PDF_RUSSIAN = ru-refcard.pdf
53 PDF_SLOVAKIAN = \
54 sk-dired-ref.pdf \
55 sk-refcard.pdf \
56 sk-survival.pdf
58 PDF_TARGETS = $(PDF_ENGLISH) $(PDF_CZECH) $(PDF_FRENCH) $(PDF_GERMAN) \
59 $(PDF_POLISH) $(PDF_PORTUGUESE) $(PDF_RUSSIAN) $(PDF_SLOVAKIAN)
61 PS_ENGLISH = $(PDF_ENGLISH:.pdf=.ps)
62 PS_CZECH = $(PDF_CZECH:.pdf=.ps)
63 PS_FRENCH = $(PDF_FRENCH:.pdf=.ps)
64 PS_GERMAN = $(PDF_GERMAN:.pdf=.ps)
65 PS_POLISH = $(PDF_POLISH:.pdf=.ps)
66 PS_PORTUGUESE = $(PDF_PORTUGUESE:.pdf=.ps)
67 PS_RUSSIAN = $(PDF_RUSSIAN:.pdf=.ps)
68 PS_SLOVAKIAN = $(PDF_SLOVAKIAN:.pdf=.ps)
70 PS_TARGETS = $(PDF_TARGETS:.pdf=.ps)
73 ## For emacsver.tex.
74 ENVADD = TEXINPUTS=".:$(TEXINPUTS)"
77 .PHONY: all pdf ps
79 all: pdf
80 pdf: $(PDF_TARGETS)
81 ps: $(PS_TARGETS)
84 .PHONY: english czech french german polish portuguese russian slovakian
85 english: $(PDF_ENGLISH)
86 czech: $(PDF_CZECH)
87 french: $(PDF_FRENCH)
88 german: $(PDF_GERMAN)
89 polish: $(PDF_POLISH)
90 portuguese: $(PDF_PORTUGUESE)
91 russian: $(PDF_RUSSIAN)
92 slovakian: $(PDF_SLOVAKIAN)
94 .PHONY: english-ps czech-ps french-ps german-ps polish-ps portuguese-ps russian-ps slovakian-ps
95 english-ps: $(PS_ENGLISH)
96 czech-ps: $(PS_CZECH)
97 french-ps: $(PS_FRENCH)
98 german-ps: $(PS_GERMAN)
99 polish-ps: $(PS_POLISH)
100 portuguese-ps: $(PS_PORTUGUESE)
101 russian-ps: $(PS_RUSSIAN)
102 slovakian-ps: $(PS_SLOVAKIAN)
105 ## Default for file that do not use a different paper size.
106 .SUFFIXES: .ps .dvi
107 .dvi.ps:
108 dvips -t letter -o $@ $<
111 make_cs=if pdfcsplain --version > /dev/null 2> /dev/null; then \
112 $(ENVADD) pdfcsplain $$input; \
113 else \
114 $(ENVADD) csplain "\pdfoutput=1\input $$input"; \
117 ## For pdf output, the page layouts (a4/letter) are written directly
118 ## in the .tex files.
120 ## For PostScript output, note that some of the tex files (refcard,
121 ## de-refcard, fr-refcard, pt-br-refcard) have settings for letter or
122 ## a4 paper. The Following are the default paper sizes (letter for English,
123 ## A4 for translations).
124 ## FIXME orgcard.ps does not fit on letter (see orgcard.tex).
126 ## A4, landscape: de-refcard, fr-refcard, pt-br-refcard orgcard
127 ## A4, portrait: cs-*, fr-dired-ref, sk-*, pl-refcard, ru-refcard
128 ## Letter, landscape: calccard, refcard
129 ## Letter, portrait (suffix rule): dired-ref, gnus-*, survival, vip*
131 calccard_deps = calccard.tex emacsver.tex pdflayout.sty
132 calccard.pdf: $(calccard_deps)
133 $(ENVADD) pdftex calccard.tex
134 calccard.dvi: $(calccard_deps)
135 $(ENVADD) tex calccard.tex
136 calccard.ps: calccard.dvi
137 dvips -t letter -t landscape -o $@ calccard.dvi
139 cs_dired_ref_deps = cs-dired-ref.tex emacsver.tex pdflayout.sty
140 cs-dired-ref.pdf: $(cs_dired_ref_deps)
141 input=cs-dired-ref.tex; $(make_cs)
142 cs-dired-ref.dvi: $(cs_dired_ref_deps)
143 $(ENVADD) csplain cs-dired-ref.tex
144 cs-dired-ref.ps: cs-dired-ref.dvi
145 dvips -t a4 -o $@ cs-dired-ref.dvi
147 cs_refcard_deps = cs-refcard.tex emacsver.tex pdflayout.sty
148 cs-refcard.pdf: $(cs_refcard_deps)
149 input=cs-refcard.tex; $(make_cs)
150 cs-refcard.dvi: $(cs_refcard_deps)
151 $(ENVADD) csplain cs-refcard.tex
152 cs-refcard.ps: cs-refcard.dvi
153 dvips -t a4 -o $@ cs-refcard.dvi
155 cs_survival_deps = cs-survival.tex emacsver.tex pdflayout.sty
156 cs-survival.pdf: $(cs_survival_deps)
157 input=cs-survival.tex; $(make_cs)
158 cs-survival.dvi: $(cs_survival_deps)
159 $(ENVADD) csplain cs-survival.tex
160 cs-survival.ps: cs-survival.dvi
161 dvips -t a4 -o $@ cs-survival.dvi
163 de_refcard_deps = de-refcard.tex emacsver.tex pdflayout.sty
164 de-refcard.pdf: $(de_refcard_deps)
165 $(ENVADD) pdftex de-refcard.tex
166 de-refcard.dvi: $(de_refcard_deps)
167 $(ENVADD) tex de-refcard.tex
168 de-refcard.ps: de-refcard.dvi
169 dvips -t a4 -t landscape -o $@ de-refcard.dvi
171 dired_ref_deps = dired-ref.tex emacsver.tex pdflayout.sty
172 dired-ref.pdf: $(dired_ref_deps)
173 $(ENVADD) pdftex dired-ref.tex
174 dired-ref.dvi: $(dired_ref_deps)
175 $(ENVADD) tex dired-ref.tex
177 fr_dired_ref_deps = fr-dired-ref.tex emacsver.tex pdflayout.sty
178 fr-dired-ref.pdf: $(fr_dired_ref_deps)
179 $(ENVADD) pdftex fr-dired-ref.tex
180 fr-dired-ref.dvi: $(fr_dired_ref_deps)
181 $(ENVADD) tex fr-dired-ref.tex
182 fr-dired-ref.ps: fr-dired-ref.dvi
183 dvips -t a4 -o $@ fr-dired-ref.dvi
185 fr_refcard_deps = fr-refcard.tex emacsver.tex pdflayout.sty
186 fr-refcard.pdf: $(fr_refcard_deps)
187 $(ENVADD) pdftex fr-refcard.tex
188 fr-refcard.dvi: $(fr_refcard_deps)
189 $(ENVADD) tex fr-refcard.tex
190 fr-refcard.ps: fr-refcard.dvi
191 dvips -t a4 -t landscape -o $@ fr-refcard.dvi
193 fr_survival_deps = fr-survival.tex emacsver.tex pdflayout.sty
194 fr-survival.pdf: $(fr_survival_deps)
195 $(ENVADD) pdftex fr-survival.tex
196 fr-survival.dvi: $(fr_survival_deps)
197 $(ENVADD) tex fr-survival.tex
198 fr-survival.ps: fr-survival.dvi
199 dvips -t a4 -o $@ fr-survival.dvi
201 ## No dependency on emacsver.tex, pdflayout.sty; no need for ENVADD.
202 gnus_booklet_deps = gnus-refcard.tex gnus-logo.pdf
203 gnus-booklet.pdf: $(gnus_booklet_deps)
204 pdflatex -jobname=gnus-booklet '\def\booklettrue{}\def\letterpapertrue{}\input{gnus-refcard}'
205 gnus-booklet.dvi: gnus-refcard.tex gnus-logo.eps
206 latex '\def\booklettrue{}\def\letterpapertrue{}\input{gnus-refcard}'
207 mv gnus-refcard.dvi $@
209 ###gnus-logo.pdf: gnus-logo.eps
210 ### ps2pdf gnus-logo.eps
212 ## No dependency on emacsver.tex, pdflayout.sty; no need for ENVADD.
213 gnus_refcard_deps = gnus-refcard.tex gnus-logo.pdf
214 gnus-refcard.pdf: $(gnus_refcard_deps)
215 pdflatex gnus-refcard.tex
216 gnus-refcard.dvi: $(gnus_refcard_deps)
217 latex gnus-refcard.tex
219 orgcard_deps = orgcard.tex emacsver.tex pdflayout.sty
220 orgcard.pdf: $(orgcard_deps)
221 $(ENVADD) pdftex orgcard.tex
222 orgcard.dvi: $(orgcard_deps)
223 $(ENVADD) tex orgcard.tex
224 orgcard.ps: orgcard.dvi
225 dvips -t a4 -t landscape -o $@ orgcard.dvi
227 pl_refcard_deps = pl-refcard.tex emacsver.tex pdflayout.sty
228 ## Some versions of pdfmex seem to create dvi by default, hence output-format.
229 pl-refcard.pdf: $(pl_refcard_deps)
230 if ! kpsewhich -format=fmt mex > /dev/null && \
231 ! pdfmex --version > /dev/null 2> /dev/null; then \
232 echo "No mex format found."; false; \
234 $(ENVADD) pdftex -output-format=pdf pl-refcard.tex
235 pl-refcard.dvi: $(pl_refcard_deps)
236 if ! kpsewhich -format=fmt mex > /dev/null; then \
237 echo "No mex format found."; false; \
239 $(ENVADD) tex pl-refcard.tex
240 pl-refcard.ps: pl-refcard.dvi
241 dvips -t a4 -o $@ pl-refcard.dvi
243 pt_br_refcard_deps = pt-br-refcard.tex emacsver.tex pdflayout.sty
244 pt-br-refcard.pdf: $(pt_br_refcard_deps)
245 $(ENVADD) pdftex pt-br-refcard.tex
246 pt-br-refcard.dvi: $(pt_br_refcard_deps)
247 $(ENVADD) tex pt-br-refcard.tex
248 pt-br-refcard.ps: pt-br-refcard.dvi
249 dvips -t a4 -t landscape -o $@ pt-br-refcard.dvi
251 refcard_deps = refcard.tex emacsver.tex pdflayout.sty
252 refcard.pdf: $(refcard_deps)
253 $(ENVADD) pdftex refcard.tex
254 refcard.dvi: $(refcard_deps)
255 $(ENVADD) tex refcard.tex
256 refcard.ps: refcard.dvi
257 dvips -t letter -t landscape -o $@ refcard.dvi
259 ## No dependency on emacsver.tex, pdflayout.sty; no need for ENVADD.
260 ru_refcard_deps = ru-refcard.tex
261 ru-refcard.pdf: $(ru_refcard_deps)
262 pdflatex ru-refcard.tex
263 ru-refcard.dvi: $(ru_refcard_deps)
264 latex ru-refcard.tex
265 ru-refcard.ps: ru-refcard.dvi
266 dvips -t a4 -o $@ ru-refcard.dvi
268 sk_dired_ref_deps = sk-dired-ref.tex emacsver.tex pdflayout.sty
269 sk-dired-ref.pdf: $(sk_dired_ref_deps)
270 input=sk-dired-ref.tex; $(make_cs)
271 sk-dired-ref.dvi: $(sk_dired_ref_deps)
272 $(ENVADD) csplain sk-dired-ref.tex
273 sk-dired-ref.ps: sk-dired-ref.dvi
274 dvips -t a4 -o $@ sk-dired-ref.dvi
276 sk_refcard_deps = sk-refcard.tex emacsver.tex pdflayout.sty
277 sk-refcard.pdf: $(sk_refcard_deps)
278 input=sk-refcard.tex; $(make_cs)
279 sk-refcard.dvi: $(sk_refcard_deps)
280 $(ENVADD) csplain sk-refcard.tex
281 sk-refcard.ps: sk-refcard.dvi
282 dvips -t a4 -o $@ sk-refcard.dvi
284 sk_survival_deps = sk-survival.tex emacsver.tex pdflayout.sty
285 sk-survival.pdf: $(sk_survival_deps)
286 input=sk-survival.tex; $(make_cs)
287 sk-survival.dvi: $(sk_survival_deps)
288 $(ENVADD) csplain sk-survival.tex
289 sk-survival.ps: sk-survival.dvi
290 dvips -t a4 -o $@ sk-survival.dvi
292 survival_deps = survival.tex emacsver.tex pdflayout.sty
293 survival.pdf: $(survival_deps)
294 $(ENVADD) pdftex survival.tex
295 survival.dvi: $(survival_deps)
296 $(ENVADD) tex survival.tex
298 vipcard_deps = vipcard.tex emacsver.tex pdflayout.sty
299 vipcard.pdf: $(vipcard_deps)
300 $(ENVADD) pdftex vipcard.tex
301 vipcard.dvi: $(vipcard_deps)
302 $(ENVADD) tex vipcard.tex
304 vipercard_deps = viperCard.tex emacsver.tex pdflayout.sty
305 viperCard.pdf: $(vipercard_deps)
306 $(ENVADD) pdftex viperCard.tex
307 viperCard.dvi: $(vipercard_deps)
308 $(ENVADD) tex viperCard.tex
311 .PHONY: clean
313 clean:
314 -rm -f *.dvi *.log *.aux
316 distclean: clean
318 ## This should really by maintainer-clean, but the handling of the
319 ## refcards is funny. So abuse extraclean for this.
320 extraclean: clean
321 -rm -f $(PDF_TARGETS) $(PS_TARGETS)
323 ## For the Emacs website.
324 dist:
325 rm -rf emacs-refcards
326 mkdir emacs-refcards
327 cp Makefile README *.tex gnus-logo.* pdflayout.sty emacs-refcards/
328 tar -cf emacs-refcards.tar emacs-refcards
329 rm -rf emacs-refcards
331 ### Makefile ends here