summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/fonts/modes/GNUmakefile
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/fonts/modes/GNUmakefile')
-rw-r--r--Master/texmf-dist/doc/fonts/modes/GNUmakefile132
1 files changed, 132 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/fonts/modes/GNUmakefile b/Master/texmf-dist/doc/fonts/modes/GNUmakefile
new file mode 100644
index 00000000000..b7efb2baade
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/modes/GNUmakefile
@@ -0,0 +1,132 @@
+# $Id: GNUmakefile,v 1.3 2020/01/28 19:13:52 karl Exp $
+# Makefile for the mode_def collection. Public domain.
+
+version = 4.0
+
+default: check
+
+testfonts = cmr5 cmtt8 cmti7 cmr10 cmti10 cmtt10 cmtt12 cmr17
+%.600pk: %.600gf
+ gftopk $<
+
+%.tfm %.600gf: modes.base
+ mf '&./modes \mode:=ljfour; nonstopmode; input $*'
+
+test.ps: $(addsuffix .600pk,$(testfonts)) test.dvi
+ dvips test -o
+
+test.dvi: $(addsuffix .tfm, $(testfonts)) test.tex
+ tex test
+
+# Upload in directory modes/ per CTAN.
+distdir = modes
+distname = $(distdir)/modes.mf
+dist: badnames
+ test -z `rcslocks`
+ rm -rf $(distdir) && mkdir $(distdir)
+ expand <modes.mf | sed 's/[ ]*$$//' >$(distname)
+# ensure no trailing spaces crept into the source (sigh):
+ diff modes.mf $(distname)
+# these three commands are tiny shell scripts, not distributed (better to
+# start with the versioned file).
+ add-version $(version) $(distname)
+ add-date $(distname)
+ fix-checksum $(distname)
+#
+ cp -p ChangeLog GNUmakefile README $(distdir)/
+ cp -p modedpicheck $(distdir)/
+ cp -p list $(distdir)/modelist.txt
+ cp -p shortlist $(distdir)/modenames.txt
+ cd $(distdir) && mft ./modes.mf && pdftex ./modes.tex && rm -f *.log modes.tex
+ rm -f modes.zip; zip -r modes.zip modes
+
+# old stuff for karl.
+# mv $$HOME/mail/2modes $(archive)/$(version).mail && gzip $(archive)/$(version).mail
+# cp -p $(distname) $(archive) && gzip -f $(archive)/$(distname) && rooo
+# cp -p $(distname) $(mfsys)/modes.mf
+#archive = $(HOME)/misc/archive/modes
+
+list: modes.mf
+ grep \^mode_def modes.mf | grep -v help | sed 's/\\\[//' >list
+
+shortlist: list
+ sed 's/^mode_def \(.*\) =.*$$/\1/' list >$@
+
+badnames: shortlist
+ sort $< | uniq -d
+ gawk '{if (length ($$0) > 8) {print $0; count++} } END {exit count}' $<
+
+dvi: modes.dvi
+modes.dvi: modes.tex
+ tex '\scrollmode \input modes.tex'
+
+pdf: modes.pdf
+modes.pdf: modes.tex
+ texfot pdftex '\nonstopmode \input modes.tex'
+
+modes.tex: modes.mf
+ mft modes.mf
+
+modes.base: modes.mf
+ mf -ini plain input modes\; dump
+ mv plain.base $@
+
+# systematically check all modes, and some known past problems.
+check: badnames modes.dvi checkx check-primitives check-modedpi \
+cmr10.300pk logo10.2540gf test.ps cmbsy7.1200gf
+
+# Check that Xerox info is included if requested. Must use -ini because
+# mf.base includes modes.mf by default, and it intentionally stops
+# itself from being read twice. So, for development convenience, do it
+# all by hand (instead of depending on modes.base and dumping a new one
+# every time).
+#
+checkx:
+ -mf -ini '\input plain; nonstopmode; input modes; mode:=cx; mode_include_extra_info; input logo10'
+ tftopl ./plain.tfm | fgrep CODING
+
+check-mktextfm:
+ rm -f logo10.tfm
+ mktextfm --destdir=`pwd` logo10
+# no xerox info by default:
+ ! (tftopl ./logo10.tfm | fgrep CODING)
+#
+ rm -f logo10.tfm
+ env MF_MODE_EXTRA_INFO=1 mktextfm --destdir=`pwd` logo10
+# xerox info if requested:
+ tftopl ./logo10.tfm | fgrep CODING
+# This will fail unless the new mktextfm is in PATH, and
+# unless the correct modes.mf is compiled into mf.base,.
+# It seems like overkill to have a new option to mktextfm so we can
+# specify a fake mf, something like "inimf \input plain \input modes ...".
+# We'll just test after installation.
+
+check-primitives: modes.base
+# test for knuth: primitives work as designed, no Xerox info by default.
+ mf "&./modes \fontmaking:=1; end"
+ ! (tftopl ./mfput.tfm | fgrep CODING)
+
+check-modedpi:
+ modedpicheck
+
+gft: cmr10.600gf
+ gftype -m -i ./$< >cmr10.600gft
+cmr10.600gf: modes.base
+ mf '&./modes \mode:=ricoh; mag:=2; input cmr10'
+
+# Make sure write-white works.
+cmr10.300pk: modes.base
+ mf "&./modes \mode:=ricoh; scrollmode; input cmr10"
+
+# cmbsy7 fails with blacker >= 3 and pixels_per_inch >= 1200.
+cmbsy7.1200gf: modes.base
+ mf "&./modes \mode:=lexmarkr; scrollmode; input cmbsy7"
+
+logo10.2540gf: shortlist modes.base
+ for f in `cat shortlist`; do echo $${f}; \
+ mf "&./modes \mode:=$${f}; scrollmode; input logo10"; \
+ done
+
+realclean distclean clean mostlyclean:
+ rm -f *gf *.gft *pk *.tfm *.pl *.ps *.log *.base *.dvi
+ rm -f modes.dvi list shortlist modes.tex modes.pdf