summaryrefslogtreecommitdiff
path: root/etc/refcards
diff options
context:
space:
mode:
authorGlenn Morris <rgm@gnu.org>2013-08-14 23:31:14 -0700
committerGlenn Morris <rgm@gnu.org>2013-08-14 23:31:14 -0700
commit4fa4485689619ad0092e3fd289534cfb320f56f3 (patch)
treef72f5aa4f2bccf9d859c4c0458b32d429e53208d /etc/refcards
parent555d556547d3cd97803ff2fcb06307a94e51ace5 (diff)
downloademacs-4fa4485689619ad0092e3fd289534cfb320f56f3.tar.gz
Cleanup for etc/refcards/Makefile and related items
* .bzrignore: Unignore etc/refcards/Makefile. * make-dist: Do not distribute etc/refcards TeX intermediate files. * Makefile.in (install-arch-indep): Do not install etc/refcards TeX intermediate files. * etc/refcards/Makefile: Rewrite to use portable Makefile syntax. Add language-specific targets. (distclean, extraclean): New rules. * etc/refcards/README: Add copyright and license. Add Makefile details. Mention http and FSF store versions.
Diffstat (limited to 'etc/refcards')
-rw-r--r--etc/refcards/Makefile378
-rw-r--r--etc/refcards/README36
2 files changed, 324 insertions, 90 deletions
diff --git a/etc/refcards/Makefile b/etc/refcards/Makefile
index ebd7ca9e408..5f7aedf7993 100644
--- a/etc/refcards/Makefile
+++ b/etc/refcards/Makefile
@@ -17,128 +17,321 @@
## You should have received a copy of the GNU General Public License
## along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
+### Commentary:
-## Top-level targets.
+## See README for details.
-## PDF files that are included with Emacs.
-all: refcards_pdf dired-refcards_pdf misc-refcards_pdf
+PDF_ENGLISH = \
+ calccard.pdf \
+ dired-ref.pdf \
+ gnus-booklet.pdf \
+ gnus-refcard.pdf \
+ orgcard.pdf \
+ refcard.pdf \
+ survival.pdf \
+ vipcard.pdf \
+ viperCard.pdf
-all_pdf: all survival-cards_pdf viper-cards_pdf
-all_ps: refcards_ps dired-refcards_ps misc-refcards_ps survival-cards_ps \
- viper-cards_ps
+PDF_CZECH = \
+ cs-dired-ref.pdf \
+ cs-refcard.pdf \
+ cs-survival.pdf
-REFCARDS_PDF = refcard.pdf cs-refcard.pdf de-refcard.pdf fr-refcard.pdf \
- pl-refcard.pdf pt-br-refcard.pdf ru-refcard.pdf sk-refcard.pdf
-refcards_pdf: ${REFCARDS_PDF}
-refcards_ps: ${REFCARDS_PDF:.pdf=.ps}
+PDF_FRENCH = \
+ fr-dired-ref.pdf \
+ fr-refcard.pdf \
+ fr-survival.pdf \
-DIRED_REFCARDS_PDF = dired-ref.pdf cs-dired-ref.pdf fr-dired-ref.pdf \
- sk-dired-ref.pdf
-dired-refcards_pdf: ${DIRED_REFCARDS_PDF}
-dired-refcards_ps: ${DIRED_REFCARDS_PDF:.pdf=.ps}
+PDF_GERMAN = de-refcard.pdf
-MISC_REFCARDS_PDF = calccard.pdf gnus-booklet.pdf gnus-refcard.pdf orgcard.pdf
-misc-refcards_pdf: ${MISC_REFCARDS_PDF}
-misc-refcards_ps: ${MISC_REFCARDS_PDF:.pdf=.ps}
+PDF_POLISH = pl-refcard.pdf
+PDF_PORTUGUESE = pt-br-refcard.pdf
-## The following files are not included with Emacs.
-SURVIVAL_CARDS_PDF = survival.pdf cs-survival.pdf fr-survival.pdf sk-survival.pdf
-survival-cards_pdf: ${SURVIVAL_CARDS_PDF}
-survival-cards_ps: ${SURVIVAL_CARDS_PDF:.pdf=.ps}
+PDF_RUSSIAN = ru-refcard.pdf
-VIPER_CARDS_PDF = vipcard.pdf viperCard.pdf
-viper-cards_pdf: ${VIPER_CARDS_PDF}
-viper-cards_ps: ${VIPER_CARDS_PDF:.pdf=.ps}
+PDF_SLOVAKIAN = \
+ sk-dired-ref.pdf \
+ sk-refcard.pdf \
+ sk-survival.pdf
-ENVADD = TEXINPUTS=".:"
+PDF_TARGETS = $(PDF_ENGLISH) $(PDF_CZECH) $(PDF_FRENCH) $(PDF_GERMAN) \
+ $(PDF_POLISH) $(PDF_PORTUGUESE) $(PDF_RUSSIAN) $(PDF_SLOVAKIAN)
-## PDF files.
+PS_ENGLISH = \
+ calccard.ps \
+ dired-ref.ps \
+ gnus-booklet.ps \
+ gnus-refcard.ps \
+ orgcard.ps \
+ refcard.ps \
+ survival.ps \
+ vipcard.ps \
+ viperCard.ps
-## The page layouts (a4/letter) are written directly in the .tex files.
+PS_CZECH = \
+ cs-dired-ref.ps \
+ cs-refcard.ps \
+ cs-survival.ps
-cs-refcard.pdf cs-dired-ref.pdf cs-survival.pdf sk-refcard.pdf \
-sk-dired-ref.pdf sk-survival.pdf: %.pdf: %.tex emacsver.tex
- if pdfcsplain --version > /dev/null 2> /dev/null; then \
- ${ENVADD} pdfcsplain $<; \
- else \
- ${ENVADD} csplain "\pdfoutput=1\input $<"; \
- fi
+PS_FRENCH = \
+ fr-dired-ref.ps \
+ fr-refcard.ps \
+ fr-survival.ps \
-## Some versions of pdfmex seem to create dvi by default, hence output-format.
-pl-refcard.pdf: %.pdf: %.tex emacsver.tex
- 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 $<
+PS_GERMAN = de-refcard.ps
-ru-refcard.pdf: %.pdf: %.tex
- pdflatex $<
+PS_POLISH = pl-refcard.ps
-#gnus-logo.pdf: %.pdf: %.eps
-# ps2pdf $<
+PS_PORTUGUESE = pt-br-refcard.ps
-gnus-refcard.pdf: %.pdf: %.tex gnus-logo.pdf
- pdflatex $<
+PS_RUSSIAN = ru-refcard.ps
-gnus-booklet.pdf: gnus-refcard.tex gnus-logo.pdf
- pdflatex -jobname=gnus-booklet '\def\booklettrue{}\def\letterpapertrue{}\input{gnus-refcard}'
+PS_SLOVAKIAN = \
+ sk-dired-ref.ps \
+ sk-refcard.ps \
+ sk-survival.ps
-## Everything not explicitly listed above.
-%.pdf: %.tex emacsver.tex
- ${ENVADD} pdftex $<
+PS_TARGETS = $(PS_ENGLISH) $(PS_CZECH) $(PS_FRENCH) $(PS_GERMAN) \
+ $(PS_POLISH) $(PS_PORTUGUESE) $(PS_RUSSIAN) $(PS_SLOVAKIAN)
-## dvi files.
+## For emacsver.tex.
+ENVADD = TEXINPUTS=".:$(TEXINPUTS)"
-cs-refcard.dvi cs-dired-ref.dvi cs-survival.dvi sk-refcard.dvi \
-sk-dired-ref.dvi sk-survival.dvi: %.dvi: %.tex emacsver.tex
- ${ENVADD} csplain $<
-pl-refcard.dvi: %.dvi: %.tex emacsver.tex
- if ! kpsewhich -format=fmt mex > /dev/null; then \
- echo "No mex format found."; false; \
- fi
- ${ENVADD} tex $<
+.PHONY: all pdf ps
-ru-refcard.dvi gnus-refcard.dvi: %.dvi: %.tex
- latex $<
+all: pdf
+pdf: $(PDF_TARGETS)
+ps: $(PS_TARGETS)
-gnus-booklet.dvi: gnus-refcard.tex
- latex '\def\booklettrue{}\def\letterpapertrue{}\input{gnus-refcard}'
- mv gnus-refcard.dvi $@
-## Everything not explicitly listed above.
-%.dvi: %.tex emacsver.tex
- ${ENVADD} tex $<
+.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)
-## PostScript files.
-## Note that some of the tex files (refcard, de-refcard, fr-refcard,
-## pt-br-refcard) have settings for letter or a4 paper. Following are
-## the default paper sizes (letter for English, A4 for translations).
-## FIXME orgcard.ps does not fit on letter (see orgcard.tex).
+## 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
-## A4, landscape.
-de-refcard.ps fr-refcard.ps fr-survival.ps pt-br-refcard.ps orgcard.ps: %.ps: %.dvi
- dvips -t a4 -t landscape $< -o $@
+## For pdf output, the page layouts (a4/letter) are written directly
+## in the .tex files.
-## A4, portrait.
-cs-dired-ref.ps cs-refcard.ps cs-survival.ps fr-dired-ref.ps \
-pl-refcard.ps ru-refcard.ps \
-sk-dired-ref.ps sk-refcard.ps sk-survival.ps: %.ps: %.dvi
- dvips -t a4 $< -o $@
+## 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).
-## letter, landscape.
-calccard.ps refcard.ps: %.ps: %.dvi
- dvips -t letter -t landscape $< -o $@
+## 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): diref-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 $@
-## letter, portrait.
-dired-ref.ps gnus-booklet.ps gnus-refcard.ps survival.ps vipcard.ps \
-viperCard.ps: %.ps: %.dvi
- dvips -t letter $< -o $@
+###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 \
+ echo "No mex format found."; false; \
+ fi
+ $(ENVADD) tex pl-refcard.tex
+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
+
+vipcard_deps = vipcard.tex emacsver.tex pdflayout.sty
+vipcard.pdf: $(vipcard_deps)
+ $(ENVADD) pdftex vipcard.tex
+vipcard.dvi: $(vipcard_deps)
+ $(ENVADD) tex vipcard.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
@@ -146,6 +339,13 @@ viperCard.ps: %.ps: %.dvi
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
diff --git a/etc/refcards/README b/etc/refcards/README
index 273f7ca317c..7a8c7c76bf4 100644
--- a/etc/refcards/README
+++ b/etc/refcards/README
@@ -1,5 +1,11 @@
+Copyright (C) 2013 Free Software Foundation, Inc.
+See the end of the file for license conditions.
+
+
+REFERENCE CARDS FOR GNU EMACS
+
To generate these refcards, you need to install the TeX document
-production system. For example, http://www.tug.org/texlive/ .
+production system. For example, <http://www.tug.org/texlive/>.
All modern GNU/Linux distributions provide TeX packages, so the
easiest way is just to install those. Your distribution may have
@@ -7,7 +13,18 @@ split some of the files needed to process non-English output into
separate, optional packages such as: texlive-lang-cyrillic,
texlive-lang-czechslovak, texlive-lang-german, and texlive-lang-polish.
+Type `make all' (or `make pdf') to generate PDF versions of all the cards.
+For PostScript format, use `make ps'.
+To only generate the cards for a specific language, use e.g.
+`make french' or `make french-ps'. As mentioned above, you may need
+to install extra TeX packages for some languages.
+
+PDF and PS copies of these cards are also available at
+<http://www.gnu.org/software/emacs/refcards>. The FSF online
+store <http://shop.fsf.org/> sometimes has printed copies for sale.
+
+
COPYRIGHT AND LICENSE INFORMATION FOR IMAGE FILES
The file gnus-logo.eps contains copyright and license information, but
@@ -17,3 +34,20 @@ File: gnus-logo.eps, gnus-logo.pdf
Author: Luis Fernandes <elf@ee.ryerson.ca>
Copyright (C) 2001-2013 Free Software Foundation, Inc.
License: GNU General Public License version 3 or later (see COPYING)
+
+
+
+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 <http://www.gnu.org/licenses/>.