Commit 4fa44856 authored by Glenn Morris's avatar Glenn Morris

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.
parent 555d5565
2013-08-15 Glenn Morris <rgm@gnu.org>
* make-dist: Do not distribute etc/refcards TeX intermediate files.
* Makefile.in (install-arch-indep):
Do not install etc/refcards TeX intermediate files.
2013-08-14 Ulrich Müller <ulm@gentoo.org>
* configure.ac (EMACS_CONFIGURATION): Escape backslashes. (Bug#15091)
......
......@@ -543,6 +543,11 @@ set_installuser=for installuser in $${LOGNAME} $${USERNAME} $${USER} \
## deleted the entire installed etc/ directory and recreated it.
## install-etcdoc installs the relevant DOC.
## Note that we install etc/refcards/*.ps if present.
## TODO we should compress these if GZIP_PROG is set.
## It would be simpler to have a separate install rule for etc/refcards
## (maybe move it to doc/refcards?).
## Note that the Makefiles in the etc directory are potentially useful
## in an installed Emacs, so should not be excluded.
......@@ -578,7 +583,12 @@ install-arch-indep: lisp leim install-info install-man ${INSTALL_ARCH_INDEP_EXTR
(cd $${dir}; tar -chf - . ) \
| (cd $${dest}; umask 022; \
tar -xvf - && cat > /dev/null) || exit 1; \
[ "$${dir}" != "${srcdir}/etc" ] || rm -f $${dest}/DOC* ; \
if [ "$${dir}" = "${srcdir}/etc" ]; then \
rm -f $${dest}/DOC* ; \
rm -f $${dest}/refcards/*.aux $${dest}/refcards/*.dvi; \
rm -f $${dest}/refcards/*.log; \
else true; \
fi; \
for subdir in `find $${dest} -type d -print` ; do \
chmod a+rx $${subdir} ; \
rm -f $${subdir}/.gitignore ; \
......
2013-08-15 Glenn Morris <rgm@gnu.org>
* refcards/Makefile: Rewrite to use portable Makefile syntax.
Add language-specific targets.
(distclean, extraclean): New rules.
2013-08-13 Glenn Morris <rgm@gnu.org>
* refcards/Makefile (all_pdf, all_ps, fr-survival.ps, dist):
......
......@@ -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
......
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/>.
......@@ -476,6 +476,9 @@ echo "Making links to \`etc' and its subdirectories"
for f in `find etc -type f`; do
case $f in
etc/DOC*|etc/*.pyc) continue ;;
## Arguably we should not exclude *.ps.
etc/refcards/*.aux|etc/refcards/*.dvi|etc/refcards/*.log|etc/refcards/*.ps)
continue ;;
esac
ln $f $tempdir/$f
done
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment