diff options
Diffstat (limited to 'Master/texmf-dist/source/latex/typog/Makefile')
-rw-r--r-- | Master/texmf-dist/source/latex/typog/Makefile | 183 |
1 files changed, 123 insertions, 60 deletions
diff --git a/Master/texmf-dist/source/latex/typog/Makefile b/Master/texmf-dist/source/latex/typog/Makefile index bb3c83ab24b..1b7e0b21a39 100644 --- a/Master/texmf-dist/source/latex/typog/Makefile +++ b/Master/texmf-dist/source/latex/typog/Makefile @@ -7,8 +7,9 @@ SHELL := /bin/sh -LATEX := /usr/bin/env max_print_line=2147483647 pdflatex -LATEX_FLAGS := -file-line-error -halt-on-error -interaction=nonstopmode +LATEX_PROPER := pdflatex +LATEX := /usr/bin/env max_print_line=2147483647 $(LATEX_PROPER) +LATEX_FLAGS := -file-line-error -halt-on-error -interaction=nonstopmode -output-directory=. LATEX_RERUN_TRIGGER := '^Package rerunfilecheck Warning: File [^ ]* has changed' LATEX_WARNING := '^LaTeX (|[A-Za-z0-9_]* )Warning:' @@ -16,6 +17,10 @@ MAKEINDEX := makeindex MAKEINDEX_FLAGS := -q +MAKEINFO := makeinfo +MAKEINFO_FLAGS := --no-split + + METAPOST := mpost METAPOST_FLAGS := -file-line-error -interaction=nonstopmode -tex=latex @@ -24,8 +29,12 @@ PODCHECKER := podchecker PODCHECKER_FLAGS := -warnings +define SED_VERSION_REGEXP +^\( *\|\\ProvidesPackage{[^}]*} *\)\[\([0-9][0-9]*/[0-9][0-9]*/[0-9][0-9]*\) *v\([^ ]*\) *\([^]]*\)].*$$ +endef + POD2MAN := pod2man -POD2MAN_FLAGS := $$(sed -ne 's,\\ProvidesPackage{typog}\[\([0-9][0-9]*/[0-9][0-9]*/[0-9][0-9]*\) *v\([^ ]*\) .*$$,--date=\1 --release=\2,p' < typog.sty) +POD2MAN_FLAGS := $$(sed -ne 's,$(SED_VERSION_REGEXP),--date=\2 --release=\3,p' < typog.sty) POD2TEXI := pod2texi @@ -33,31 +42,32 @@ POD2TEXI_FLAGS := GROFF := groff -## Codes of serif fonts that work for PDF output +## Codes of fonts that work for PDF output as by the contents +## of "/usr/share/groff/current/font/devpdf". +## +## Serif ## BM: URW Bookman L ## N: URW Century Schoolbook L ## P: URW Palladio L ## T: URW Nimbus Roman No9 L +## +## Sans Serif +## A: Avantgarde +## H: Helvetica +## +## Monospace +## C: Courier GROFF_FLAGS := -Tpdf -dpaper=a4 -fP -man -wall -SPELLCHECK := aspell -SPELLCHECK_FLAGS := \ - --add-tex-command='citenum p' --add-tex-command='code p' \ - --add-tex-command='Cref p' --add-tex-command='cref p' \ - --add-tex-command='cs p' \ - --add-tex-command='DescribeEnv p' --add-tex-command='DescribeMacro p' \ - --add-tex-command='marg p' --add-tex-command='meta p' \ - --add-tex-command='oarg p' \ - --lang=en_US --mode=tex - - -SOURCE_FILES := LICENSE Makefile typog.dtx typog.ins +PROJECT_NAME := typog +SOURCE_FILES := LICENSE Makefile README.md typog.dtx typog.ins +DOCUMENTATION_FILES := typog-example.pdf typog-grep.1.pdf typog.pdf .PHONY: all -all: sty pdf man +all: sty pdf bin man .PHONY: sty @@ -65,7 +75,7 @@ sty: typog.sty .PHONY: pdf -pdf: doc ex nomt +pdf: doc ex test .PHONY: doc @@ -76,69 +86,88 @@ doc: typog.pdf ex: typog-example.pdf -.PHONY: nomt -nomt: typog-nomt.pdf +.PHONY: test +test: typog-minimal-test.pdf typog-without-microtype-test.pdf + + +.PHONY: bin +bin: typog-grep .PHONY: man man: typog-grep.1 -.PHONY: cpio -cpio: - cd ..; \ - echo $(addprefix typog/,$(SOURCE_FILES)) | \ - cpio -o | \ - gzip > "typog-$$(date +%Y-%m-%d).cpio.gz" +export TEMPORARY_DIRECTORY + + +.PHONY: dist +dist: + $(eval TEMPORARY_DIRECTORY := $(shell mktemp -d)) + trap '$(RM) -r $(TEMPORARY_DIRECTORY); exit 1' HUP INT QUIT TERM; $(MAKE) __dist + $(RM) -r $(TEMPORARY_DIRECTORY) + + +.PHONY: __dist +__dist: LATEX_FLAGS += -interaction=batchmode +__dist: $(DOCUMENTATION_FILES) + test -d '$(TEMPORARY_DIRECTORY)' + test -w '$(TEMPORARY_DIRECTORY)' + mkdir $(TEMPORARY_DIRECTORY)/$(PROJECT_NAME) + cp $(SOURCE_FILES) $(TEMPORARY_DIRECTORY)/$(PROJECT_NAME) + mkdir $(TEMPORARY_DIRECTORY)/$(PROJECT_NAME)/docs + cp $(DOCUMENTATION_FILES) $(TEMPORARY_DIRECTORY)/$(PROJECT_NAME)/docs + tar czf $(PROJECT_NAME).tar.gz -C $(TEMPORARY_DIRECTORY) $(PROJECT_NAME) -.PHONY: tar -tar: - cd ..; \ - tar czf "typog-$$(date +%Y-%m-%d).tar.gz" $(addprefix typog/,$(SOURCE_FILES)) +.PHONY: distcheck +distcheck: LATEX_FLAGS += -interaction=batchmode +distcheck: dist + $(eval TEMPORARY_DIRECTORY := $(shell mktemp -d)) + test -d '$(TEMPORARY_DIRECTORY)' + test -w '$(TEMPORARY_DIRECTORY)' + tar xzf $(PROJECT_NAME).tar.gz -C $(TEMPORARY_DIRECTORY) + $(MAKE) --directory=$(TEMPORARY_DIRECTORY)/$(PROJECT_NAME) LATEX_FLAGS='$(LATEX_FLAGS)' all + $(RM) -r $(TEMPORARY_DIRECTORY) + @printf '\n\ndistcheck passed.\n' .PHONY: clean clean: - $(RM) ./*.1 ./*.aux ./*.brf ./*.glg ./*.glo ./*.gls - $(RM) ./*.hd ./*.idx ./*.ilg ./*.ind ./*.loe ./*.lof ./*.log ./*.lot - $(RM) ./*.mps ./*.mpx ./*.out ./*.pdf ./*.toc + $(RM) ./*.1 ./*.aux ./*.brf ./*.dvi ./*.glg ./*.glo ./*.gls + $(RM) ./*.hd ./*.idx ./*.ilg ./*.ind ./*.info ./*.loe ./*.lof ./*.log ./*.lot + $(RM) ./*.mps ./*.mpx ./*.out ./*.pdf ./*.pl.in ./*.toc $(RM) mptextmp.* mpxerr.tex $(RM) README README.html RELEASE-HOWTO RELEASE-HOWTO.html + $(RM) typog-grep typog-grep.version.sed + $(RM) $(PROJECT_NAME).tar.gz .PHONY: mostlyclean mostlyclean: clean + $(RM) ./*.texi .PHONY: maintainer-clean maintainer-clean: mostlyclean - $(RM) ./*.ist ./*.mp ./*.pl ./*.pod ./*.sed ./*.sty ./*.tex + $(RM) ./*.gst ./*.ist ./*.mp ./*.pl ./*.pod ./*.sed ./*.sty ./*.tex .PHONY: tool-check tool-check: - @printf '*** LATEX = "%s"\n' '$(LATEX)' - $(LATEX) --version + @printf '*** LATEX_PROPER = "%s"\n' '$(LATEX_PROPER)' + $(LATEX_PROPER) --version + @printf '\n\n*** BibTeX\n' + bibtex --version @printf '\n\n*** MAKEINDEX = "%s"\n' '$(MAKEINDEX)' - $(MAKEINDEX) < /dev/null + $(MAKEINDEX) < /dev/null @printf '\n\n*** METAPOST = "%s"\n' '$(METAPOST)' $(METAPOST) --version @printf '\n*** POD2MAN = "%s"\n' '$(POD2MAN)' $(POD2MAN) --help > /dev/null @printf '\n\n*** POD2TEXI = "%s"\n' '$(POD2TEXI)' $(POD2TEXI) --version - @printf '\n\nTool check passed.\n' - - -.PHONY: spell-check -spell-check: - @sed -e '\#<DISABLE-SPELL-CHECK/>#d' \ - -e '\#<DISABLE-SPELL-CHECK>#,\#</DISABLE-SPELL-CHECK>#d' < typog.dtx | \ - sed -e 's/^ *%%*//' | \ - sed -e 's/\\-//g' -e 's/|[^|]*|/ /g' | \ - $(SPELLCHECK) $(SPELLCHECK_FLAGS) list | \ - sort | uniq | fmt | sed -e 's/ / /g' + @printf '\n\ntool check passed.\n' .PHONY: update-docs @@ -151,10 +180,16 @@ Selected Phony Targets ---------------------- all: Make everything there is to make. This is the .DEFAULT_GOAL. +bin: Build typog-grep (which is not a binary, but executable). + clean: Remove some products. -cpio: In the parent directory create a cpio(1) archive of the - project source files whose name is time-stamped. +dist: Create a tar file of the project source files and the PDF + documentation files. The archive is in the form and has a + name that CTAN prefers. + +distcheck: Create a tar file of the project source files, unpack it in + a different location and build all targets. doc: Build "typog.pdf" the Typog documentation. @@ -170,12 +205,14 @@ pdf: Build doc: and gauge:. sty: Only extract "typog.sty" from "typog.dtx". This operation requires LaTeX (-> $(LATEX)) and nothing else. -tar: In the parent directory create a tar(1) file of the project - source files whose name is time-stamped. +test: Run some tests. tool-check: Check whether some of the required tools to build the project are available. +update-docs: Copy the documentation files into the "docs" + sub-directory. + Selected Implicit Rules ----------------------- @@ -206,6 +243,7 @@ README: Convert "README.html" to plain text. Requires w3m(1). endef + .PHONY: help help: $(info $(HELP_SCREEN)) @@ -217,10 +255,10 @@ help: define MAKE_INDEX_AND_GLOSSARY -sed -e '/@/d' -e 's/{\\ttfamily /{\\ttfamily\\hskip0pt\\relax /' < $*.idx > ,$*.idx; \ +sed -e '/@/d' -e 's/{\\ttfamily /{\\ttfamily\\hskip0pt\\relax /' < $*.idx > ,$*.idx; \ mv ,$*.idx $*.idx; \ -$(MAKEINDEX) $(MAKEINDEX_FLAGS) -s typog.ist -t $*.ilg -o $*.ind $*.idx; \ -$(MAKEINDEX) $(MAKEINDEX_FLAGS) -s gglo.ist -t $*.glg -o $*.gls $*.glo +$(MAKEINDEX) $(MAKEINDEX_FLAGS) -s $*.ist -t $*.ilg -o $*.ind $*.idx; \ +$(MAKEINDEX) $(MAKEINDEX_FLAGS) -s $*.gst -t $*.glg -o $*.gls $*.glo endef define GREP_LATEX_WARNINGS @@ -253,7 +291,13 @@ endef %-1.mps %-2.mps %-3.mps %-4.mps: %.mp - $(METAPOST) -s 'outputtemplate="%j-%c.mps"' $(METAPOST_FLAGS) $< + $(METAPOST) -s 'outputtemplate="%j-%c.mps"' $(METAPOST_FLAGS) $< || { \ + printf '=== $*.log ===\n'; \ + cat $*.log; \ + printf '\n\n=== mpxerr.log ===\n'; \ + cat mpxerr.log; \ + false; \ + } 1>&2 %.1: %.pod @@ -263,6 +307,15 @@ endef %.1.pdf: %.1 $(GROFF) $(GROFF_FLAGS) ./$< > $@ +%.texi: %.pod + $(POD2TEXI) $(POD2TEXI_FLAGS) --output=$@ ./$< + +%.info: %.texi + $(MAKEINFO) $(MAKEINFO_FLAGS) --output=$@ $< + +%.info.pdf: %.texi + $(MAKEINFO) $(MAKEINFO_FLAGS) --pdf --output=$@ $< + %.tex: %.pod | teximan2latex.sed $(POD2TEXI) $(POD2TEXI_FLAGS) ./$< | sed -f teximan2latex.sed > $@ @@ -276,12 +329,11 @@ endef crooked-paragraphs.mp slant-angle.mp smooth-parshapes.mp title.mp \ teximan2latex.sed \ -typog-grep.pl typog-grep typog-grep.pod \ -typog.sty typog.ist typog-example.tex typog-nomt.tex: \ +typog-grep.pl.in typog-grep.pod \ +typog.sty typog.ist typog-example.tex \ +typog-minimal-test.tex typog-without-microtype-test.tex: \ typog.ins typog.dtx $(LATEX) $(LATEX_FLAGS) $< - chmod 755 typog-grep.pl - ln -sf typog-grep.pl typog-grep crooked-paragraphs-1.mps crooked-paragraphs-2.mps \ @@ -300,3 +352,14 @@ typog.pdf: typog.dtx \ smooth-parshapes-1.mps smooth-parshapes-2.mps smooth-parshapes-3.mps \ typog-grep.tex \ | typog.sty + + +typog-grep.pl: typog-grep.pl.in typog.sty + sed -ne 's,$(SED_VERSION_REGEXP),s#@DATE@#\2#g\ns#@RELEASE@#\3#g\ns#@TITLE@#\4#g,p' \ + < typog.sty \ + > typog-grep.version.sed + sed -f typog-grep.version.sed < $< > $@ + chmod 755 $@ + +typog-grep: typog-grep.pl + ln -sf $< $@ |