X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/be520aca79dd429d55012a1916bdc97f06773fc5..9bf31d1d3f35880c652f76509d1e27d33e454121:/etc/refcards/Makefile?ds=sidebyside diff --git a/etc/refcards/Makefile b/etc/refcards/Makefile index 115b0ca084..20057cb4b1 100644 --- a/etc/refcards/Makefile +++ b/etc/refcards/Makefile @@ -1,6 +1,6 @@ ### Makefile for Emacs refcards -## Copyright (C) 1993-1994, 2001-2011 Free Software Foundation, Inc. +## Copyright (C) 1993-1994, 2001-2016 Free Software Foundation, Inc. ## This file is part of GNU Emacs. # @@ -17,123 +17,295 @@ ## You should have received a copy of the GNU General Public License ## along with GNU Emacs. If not, see . +### 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 -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_CZECH = \ + cs-dired-ref.pdf \ + cs-refcard.pdf \ + cs-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_FRENCH = \ + fr-dired-ref.pdf \ + fr-refcard.pdf \ + fr-survival.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_GERMAN = de-refcard.pdf +PDF_POLISH = pl-refcard.pdf -## The following files are not included with Emacs. -SURVIVAL_CARDS_PDF = survival.pdf cs-survival.pdf sk-survival.pdf -survival-cards_pdf: ${SURVIVAL_CARDS_PDF} -survival-cards_ps: ${SURVIVAL_CARDS_PDF:.pdf=.ps} +PDF_PORTUGUESE = pt-br-refcard.pdf -VIPER_CARDS_PDF = vipcard.pdf viperCard.pdf -viper-cards_pdf: ${VIPER_CARDS_PDF} -viper-cards_ps: ${VIPER_CARDS_PDF:.pdf=.ps} +PDF_RUSSIAN = ru-refcard.pdf +PDF_SLOVAKIAN = \ + sk-dired-ref.pdf \ + sk-refcard.pdf \ + sk-survival.pdf -## PDF files. +PDF_TARGETS = $(PDF_ENGLISH) $(PDF_CZECH) $(PDF_FRENCH) $(PDF_GERMAN) \ + $(PDF_POLISH) $(PDF_PORTUGUESE) $(PDF_RUSSIAN) $(PDF_SLOVAKIAN) -## The page layouts (a4/letter) are written directly in the .tex files. +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) -cs-refcard.pdf cs-dired-ref.pdf cs-survival.pdf sk-refcard.pdf \ -sk-dired-ref.pdf sk-survival.pdf: %.pdf: %.tex - if pdfcsplain --version > /dev/null 2> /dev/null; then \ - pdfcsplain $<; \ - else \ - csplain "\pdfoutput=1\input $<"; \ - fi +PS_TARGETS = $(PDF_TARGETS:.pdf=.ps) -## Some versions of pdfmex seem to create dvi by default, hence output-format. -pl-refcard.pdf: %.pdf: %.tex - if ! kpsewhich -format=fmt mex > /dev/null && \ - ! pdfmex --version > /dev/null 2> /dev/null; then \ - echo "No mex format found."; false; \ - fi - pdftex -output-format=pdf $< -ru-refcard.pdf: %.pdf: %.tex - pdflatex $< +## For emacsver.tex. +ENVADD = TEXINPUTS=".:$(TEXINPUTS)" -#gnus-logo.pdf: %.pdf: %.eps -# ps2pdf $< -gnus-refcard.pdf: %.pdf: %.tex gnus-logo.pdf - pdflatex $< +.PHONY: all pdf ps -gnus-booklet.pdf: gnus-refcard.tex gnus-logo.pdf - pdflatex -jobname=gnus-booklet '\def\booklettrue{}\def\letterpapertrue{}\input{gnus-refcard}' +all: pdf +pdf: $(PDF_TARGETS) +ps: $(PS_TARGETS) -## Everything not explicitly listed above. -%.pdf: %.tex - pdftex $< +.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) -## dvi files. +.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) -cs-refcard.dvi cs-dired-ref.dvi cs-survival.dvi sk-refcard.dvi \ -sk-dired-ref.dvi sk-survival.dvi: %.dvi: %.tex - csplain $< -pl-refcard.dvi: %.dvi: %.tex - if ! kpsewhich -format=fmt mex > /dev/null; then \ - echo "No mex format found."; false; \ - fi - tex $< - -ru-refcard.dvi gnus-refcard.dvi: %.dvi: %.tex - latex $< - -gnus-booklet.dvi: gnus-refcard.tex - latex '\def\booklettrue{}\def\letterpapertrue{}\input{gnus-refcard}' - mv gnus-refcard.dvi $@ +## Default for file that do not use a different paper size. +.SUFFIXES: .ps .dvi +.dvi.ps: + dvips -t letter -o $@ $< -## Everything not explicitly listed above. -%.dvi: %.tex - tex $< +make_cs=if pdfcsplain --version > /dev/null 2> /dev/null; then \ + $(ENVADD) pdfcsplain $$input; \ + else \ + $(ENVADD) csplain "\pdfoutput=1\input $$input"; \ + fi -## PostScript files. +## For pdf output, the page layouts (a4/letter) are written directly +## in the .tex 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). +## 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.ps fr-refcard.ps pt-br-refcard.ps orgcard.ps: %.ps: %.dvi - dvips -t a4 -t landscape $< -o $@ - -## 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 $@ - -## 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): 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 $@ -## 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 @@ -141,4 +313,19 @@ 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 + 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