326 lines
9.6 KiB
Makefile
326 lines
9.6 KiB
Makefile
### Makefile for Emacs refcards
|
|
|
|
## Copyright (C) 1993-1994, 2001-2024 Free Software Foundation, Inc.
|
|
|
|
## This file is part of GNU Emacs.
|
|
#
|
|
## GNU Emacs is free software: you can redistribute it and/or modify
|
|
## it under the terms of the GNU General Public License as published by
|
|
## the Free Software Foundation, either version 3 of the License, or
|
|
## (at your option) any later version.
|
|
|
|
## GNU Emacs is distributed in the hope that it will be useful,
|
|
## but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
## GNU General Public License for more details.
|
|
|
|
## You should have received a copy of the GNU General Public License
|
|
## along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
|
|
|
|
### Commentary:
|
|
|
|
## See README for details.
|
|
|
|
PDF_ENGLISH = \
|
|
calccard.pdf \
|
|
dired-ref.pdf \
|
|
gnus-booklet.pdf \
|
|
gnus-refcard.pdf \
|
|
orgcard.pdf \
|
|
refcard.pdf \
|
|
survival.pdf \
|
|
viperCard.pdf
|
|
|
|
PDF_CZECH = \
|
|
cs-dired-ref.pdf \
|
|
cs-refcard.pdf \
|
|
cs-survival.pdf
|
|
|
|
PDF_FRENCH = \
|
|
fr-dired-ref.pdf \
|
|
fr-refcard.pdf \
|
|
fr-survival.pdf
|
|
|
|
PDF_GERMAN = de-refcard.pdf
|
|
|
|
PDF_POLISH = pl-refcard.pdf
|
|
|
|
PDF_PORTUGUESE = pt-br-refcard.pdf
|
|
|
|
PDF_RUSSIAN = ru-refcard.pdf
|
|
|
|
PDF_SLOVAKIAN = \
|
|
sk-dired-ref.pdf \
|
|
sk-refcard.pdf \
|
|
sk-survival.pdf
|
|
|
|
PDF_TARGETS = $(PDF_ENGLISH) $(PDF_CZECH) $(PDF_FRENCH) $(PDF_GERMAN) \
|
|
$(PDF_POLISH) $(PDF_PORTUGUESE) $(PDF_RUSSIAN) $(PDF_SLOVAKIAN)
|
|
|
|
PS_ENGLISH = $(PDF_ENGLISH:.pdf=.ps)
|
|
PS_CZECH = $(PDF_CZECH:.pdf=.ps)
|
|
PS_FRENCH = $(PDF_FRENCH:.pdf=.ps)
|
|
PS_GERMAN = $(PDF_GERMAN:.pdf=.ps)
|
|
PS_POLISH = $(PDF_POLISH:.pdf=.ps)
|
|
PS_PORTUGUESE = $(PDF_PORTUGUESE:.pdf=.ps)
|
|
PS_RUSSIAN = $(PDF_RUSSIAN:.pdf=.ps)
|
|
PS_SLOVAKIAN = $(PDF_SLOVAKIAN:.pdf=.ps)
|
|
|
|
PS_TARGETS = $(PDF_TARGETS:.pdf=.ps)
|
|
|
|
|
|
## For emacsver.tex.
|
|
ENVADD = TEXINPUTS=".:$(TEXINPUTS)"
|
|
|
|
|
|
.PHONY: all pdf ps
|
|
|
|
all: pdf
|
|
pdf: $(PDF_TARGETS)
|
|
ps: $(PS_TARGETS)
|
|
|
|
|
|
.PHONY: english czech french german polish portuguese russian slovakian
|
|
english: $(PDF_ENGLISH)
|
|
czech: $(PDF_CZECH)
|
|
french: $(PDF_FRENCH)
|
|
german: $(PDF_GERMAN)
|
|
polish: $(PDF_POLISH)
|
|
portuguese: $(PDF_PORTUGUESE)
|
|
russian: $(PDF_RUSSIAN)
|
|
slovakian: $(PDF_SLOVAKIAN)
|
|
|
|
.PHONY: english-ps czech-ps french-ps german-ps polish-ps portuguese-ps russian-ps slovakian-ps
|
|
english-ps: $(PS_ENGLISH)
|
|
czech-ps: $(PS_CZECH)
|
|
french-ps: $(PS_FRENCH)
|
|
german-ps: $(PS_GERMAN)
|
|
polish-ps: $(PS_POLISH)
|
|
portuguese-ps: $(PS_PORTUGUESE)
|
|
russian-ps: $(PS_RUSSIAN)
|
|
slovakian-ps: $(PS_SLOVAKIAN)
|
|
|
|
|
|
## Default for file that do not use a different paper size.
|
|
.SUFFIXES: .ps .dvi
|
|
.dvi.ps:
|
|
dvips -t letter -o $@ $<
|
|
|
|
|
|
make_cs=if pdfcsplain --version > /dev/null 2> /dev/null; then \
|
|
$(ENVADD) pdfcsplain $$input; \
|
|
else \
|
|
$(ENVADD) csplain "\pdfoutput=1\input $$input"; \
|
|
fi
|
|
|
|
## For pdf output, the page layouts (a4/letter) are written directly
|
|
## in the .tex files.
|
|
|
|
## For PostScript output, note that some of the tex files (refcard,
|
|
## de-refcard, fr-refcard, pt-br-refcard) have settings for letter or
|
|
## a4 paper. The Following are the default paper sizes (letter for English,
|
|
## A4 for translations).
|
|
## FIXME orgcard.ps does not fit on letter (see orgcard.tex).
|
|
|
|
## A4, landscape: de-refcard, fr-refcard, pt-br-refcard orgcard
|
|
## A4, portrait: cs-*, fr-dired-ref, sk-*, pl-refcard, ru-refcard
|
|
## Letter, landscape: calccard, refcard
|
|
## Letter, portrait (suffix rule): dired-ref, gnus-*, survival, vip*
|
|
|
|
calccard_deps = calccard.tex emacsver.tex pdflayout.sty
|
|
calccard.pdf: $(calccard_deps)
|
|
$(ENVADD) pdftex calccard.tex
|
|
calccard.dvi: $(calccard_deps)
|
|
$(ENVADD) tex calccard.tex
|
|
calccard.ps: calccard.dvi
|
|
dvips -t letter -t landscape -o $@ calccard.dvi
|
|
|
|
cs_dired_ref_deps = cs-dired-ref.tex emacsver.tex pdflayout.sty
|
|
cs-dired-ref.pdf: $(cs_dired_ref_deps)
|
|
input=cs-dired-ref.tex; $(make_cs)
|
|
cs-dired-ref.dvi: $(cs_dired_ref_deps)
|
|
$(ENVADD) csplain cs-dired-ref.tex
|
|
cs-dired-ref.ps: cs-dired-ref.dvi
|
|
dvips -t a4 -o $@ cs-dired-ref.dvi
|
|
|
|
cs_refcard_deps = cs-refcard.tex emacsver.tex pdflayout.sty
|
|
cs-refcard.pdf: $(cs_refcard_deps)
|
|
input=cs-refcard.tex; $(make_cs)
|
|
cs-refcard.dvi: $(cs_refcard_deps)
|
|
$(ENVADD) csplain cs-refcard.tex
|
|
cs-refcard.ps: cs-refcard.dvi
|
|
dvips -t a4 -o $@ cs-refcard.dvi
|
|
|
|
cs_survival_deps = cs-survival.tex emacsver.tex pdflayout.sty
|
|
cs-survival.pdf: $(cs_survival_deps)
|
|
input=cs-survival.tex; $(make_cs)
|
|
cs-survival.dvi: $(cs_survival_deps)
|
|
$(ENVADD) csplain cs-survival.tex
|
|
cs-survival.ps: cs-survival.dvi
|
|
dvips -t a4 -o $@ cs-survival.dvi
|
|
|
|
de_refcard_deps = de-refcard.tex emacsver.tex pdflayout.sty
|
|
de-refcard.pdf: $(de_refcard_deps)
|
|
$(ENVADD) pdftex de-refcard.tex
|
|
de-refcard.dvi: $(de_refcard_deps)
|
|
$(ENVADD) tex de-refcard.tex
|
|
de-refcard.ps: de-refcard.dvi
|
|
dvips -t a4 -t landscape -o $@ de-refcard.dvi
|
|
|
|
dired_ref_deps = dired-ref.tex emacsver.tex pdflayout.sty
|
|
dired-ref.pdf: $(dired_ref_deps)
|
|
$(ENVADD) pdftex dired-ref.tex
|
|
dired-ref.dvi: $(dired_ref_deps)
|
|
$(ENVADD) tex dired-ref.tex
|
|
|
|
fr_dired_ref_deps = fr-dired-ref.tex emacsver.tex pdflayout.sty
|
|
fr-dired-ref.pdf: $(fr_dired_ref_deps)
|
|
$(ENVADD) pdftex fr-dired-ref.tex
|
|
fr-dired-ref.dvi: $(fr_dired_ref_deps)
|
|
$(ENVADD) tex fr-dired-ref.tex
|
|
fr-dired-ref.ps: fr-dired-ref.dvi
|
|
dvips -t a4 -o $@ fr-dired-ref.dvi
|
|
|
|
fr_refcard_deps = fr-refcard.tex emacsver.tex pdflayout.sty
|
|
fr-refcard.pdf: $(fr_refcard_deps)
|
|
$(ENVADD) pdftex fr-refcard.tex
|
|
fr-refcard.dvi: $(fr_refcard_deps)
|
|
$(ENVADD) tex fr-refcard.tex
|
|
fr-refcard.ps: fr-refcard.dvi
|
|
dvips -t a4 -t landscape -o $@ fr-refcard.dvi
|
|
|
|
fr_survival_deps = fr-survival.tex emacsver.tex pdflayout.sty
|
|
fr-survival.pdf: $(fr_survival_deps)
|
|
$(ENVADD) pdftex fr-survival.tex
|
|
fr-survival.dvi: $(fr_survival_deps)
|
|
$(ENVADD) tex fr-survival.tex
|
|
fr-survival.ps: fr-survival.dvi
|
|
dvips -t a4 -o $@ fr-survival.dvi
|
|
|
|
## No dependency on emacsver.tex, pdflayout.sty; no need for ENVADD.
|
|
gnus_booklet_deps = gnus-refcard.tex gnus-logo.pdf
|
|
gnus-booklet.pdf: $(gnus_booklet_deps)
|
|
pdflatex -jobname=gnus-booklet '\def\booklettrue{}\def\letterpapertrue{}\input{gnus-refcard}'
|
|
gnus-booklet.dvi: gnus-refcard.tex gnus-logo.eps
|
|
latex '\def\booklettrue{}\def\letterpapertrue{}\input{gnus-refcard}'
|
|
mv gnus-refcard.dvi $@
|
|
|
|
###gnus-logo.pdf: gnus-logo.eps
|
|
### ps2pdf gnus-logo.eps
|
|
|
|
## No dependency on emacsver.tex, pdflayout.sty; no need for ENVADD.
|
|
gnus_refcard_deps = gnus-refcard.tex gnus-logo.pdf
|
|
gnus-refcard.pdf: $(gnus_refcard_deps)
|
|
pdflatex gnus-refcard.tex
|
|
gnus-refcard.dvi: $(gnus_refcard_deps)
|
|
latex gnus-refcard.tex
|
|
|
|
orgcard_deps = orgcard.tex emacsver.tex pdflayout.sty
|
|
orgcard.pdf: $(orgcard_deps)
|
|
$(ENVADD) pdftex orgcard.tex
|
|
orgcard.dvi: $(orgcard_deps)
|
|
$(ENVADD) tex orgcard.tex
|
|
orgcard.ps: orgcard.dvi
|
|
dvips -t a4 -t landscape -o $@ orgcard.dvi
|
|
|
|
pl_refcard_deps = pl-refcard.tex emacsver.tex pdflayout.sty
|
|
## Some versions of pdfmex seem to create dvi by default, hence output-format.
|
|
pl-refcard.pdf: $(pl_refcard_deps)
|
|
if ! kpsewhich -format=fmt mex > /dev/null && \
|
|
! pdfmex --version > /dev/null 2> /dev/null; then \
|
|
echo "No mex format found."; false; \
|
|
fi
|
|
$(ENVADD) pdftex -output-format=pdf pl-refcard.tex
|
|
pl-refcard.dvi: $(pl_refcard_deps)
|
|
if kpsewhich -format=fmt mex > /dev/null; then \
|
|
$(ENVADD) tex pl-refcard.tex; \
|
|
else \
|
|
$(ENVADD) mex pl-refcard.tex; \
|
|
fi
|
|
pl-refcard.ps: pl-refcard.dvi
|
|
dvips -t a4 -o $@ pl-refcard.dvi
|
|
|
|
pt_br_refcard_deps = pt-br-refcard.tex emacsver.tex pdflayout.sty
|
|
pt-br-refcard.pdf: $(pt_br_refcard_deps)
|
|
$(ENVADD) pdftex pt-br-refcard.tex
|
|
pt-br-refcard.dvi: $(pt_br_refcard_deps)
|
|
$(ENVADD) tex pt-br-refcard.tex
|
|
pt-br-refcard.ps: pt-br-refcard.dvi
|
|
dvips -t a4 -t landscape -o $@ pt-br-refcard.dvi
|
|
|
|
refcard_deps = refcard.tex emacsver.tex pdflayout.sty
|
|
refcard.pdf: $(refcard_deps)
|
|
$(ENVADD) pdftex refcard.tex
|
|
refcard.dvi: $(refcard_deps)
|
|
$(ENVADD) tex refcard.tex
|
|
refcard.ps: refcard.dvi
|
|
dvips -t letter -t landscape -o $@ refcard.dvi
|
|
|
|
## No dependency on emacsver.tex, pdflayout.sty; no need for ENVADD.
|
|
ru_refcard_deps = ru-refcard.tex
|
|
ru-refcard.pdf: $(ru_refcard_deps)
|
|
pdflatex ru-refcard.tex
|
|
ru-refcard.dvi: $(ru_refcard_deps)
|
|
latex ru-refcard.tex
|
|
ru-refcard.ps: ru-refcard.dvi
|
|
dvips -t a4 -o $@ ru-refcard.dvi
|
|
|
|
sk_dired_ref_deps = sk-dired-ref.tex emacsver.tex pdflayout.sty
|
|
sk-dired-ref.pdf: $(sk_dired_ref_deps)
|
|
input=sk-dired-ref.tex; $(make_cs)
|
|
sk-dired-ref.dvi: $(sk_dired_ref_deps)
|
|
$(ENVADD) csplain sk-dired-ref.tex
|
|
sk-dired-ref.ps: sk-dired-ref.dvi
|
|
dvips -t a4 -o $@ sk-dired-ref.dvi
|
|
|
|
sk_refcard_deps = sk-refcard.tex emacsver.tex pdflayout.sty
|
|
sk-refcard.pdf: $(sk_refcard_deps)
|
|
input=sk-refcard.tex; $(make_cs)
|
|
sk-refcard.dvi: $(sk_refcard_deps)
|
|
$(ENVADD) csplain sk-refcard.tex
|
|
sk-refcard.ps: sk-refcard.dvi
|
|
dvips -t a4 -o $@ sk-refcard.dvi
|
|
|
|
sk_survival_deps = sk-survival.tex emacsver.tex pdflayout.sty
|
|
sk-survival.pdf: $(sk_survival_deps)
|
|
input=sk-survival.tex; $(make_cs)
|
|
sk-survival.dvi: $(sk_survival_deps)
|
|
$(ENVADD) csplain sk-survival.tex
|
|
sk-survival.ps: sk-survival.dvi
|
|
dvips -t a4 -o $@ sk-survival.dvi
|
|
|
|
survival_deps = survival.tex emacsver.tex pdflayout.sty
|
|
survival.pdf: $(survival_deps)
|
|
$(ENVADD) pdftex survival.tex
|
|
survival.dvi: $(survival_deps)
|
|
$(ENVADD) tex survival.tex
|
|
|
|
vipercard_deps = viperCard.tex emacsver.tex pdflayout.sty
|
|
viperCard.pdf: $(vipercard_deps)
|
|
$(ENVADD) pdftex viperCard.tex
|
|
viperCard.dvi: $(vipercard_deps)
|
|
$(ENVADD) tex viperCard.tex
|
|
|
|
|
|
.PHONY: clean
|
|
|
|
clean:
|
|
-rm -f ./*.dvi ./*.log ./*.aux
|
|
|
|
distclean: clean
|
|
|
|
## This should really by maintainer-clean, but the handling of the
|
|
## refcards is funny. So abuse extraclean for this.
|
|
extraclean: clean
|
|
-rm -f $(PDF_TARGETS) $(PS_TARGETS)
|
|
|
|
## For the Emacs website.
|
|
dist:
|
|
rm -rf emacs-refcards
|
|
mkdir emacs-refcards
|
|
cp Makefile README *.tex gnus-logo.* pdflayout.sty emacs-refcards/
|
|
tar -cf emacs-refcards.tar emacs-refcards
|
|
rm -rf emacs-refcards
|
|
|
|
### Makefile ends here
|