beta-0.89.2
[luatex.git] / source / texk / kpathsea / mktexmf
blobbb868c12a8d5355612ffa9b59bbaab71528800c6
1 #!/bin/sh
2 # original mktexmf -- make a new MF file, because one wasn't found.
3 #
4 # (If you change or delete the word `original' on the previous line,
5 # installation won't write this script over yours.)
6 #
7 # Originally written by Thomas Esser.
8 # Public domain.
10 version='$Id: mktexmf 34656 2014-07-18 23:38:50Z karl $'
12 # preferentially use subprograms from our own directory.
13 mydir=`echo "$0" | sed 's,/[^/]*$,,'`
14 mydir=`cd "$mydir" && pwd`
15 PATH="$mydir:$PATH"; export PATH
17 usage="Usage: $0 FONT.
19 Makes the Metafont source file for FONT, if possible. For example,
20 \`ecr12' or \`cmr11'.
22 Report bugs to: tex-k@tug.org
23 TeX Live home page: <http://tug.org/texlive/>
26 # Common code for all scripts.
27 : ${MT_TEXMFMAIN=`kpsewhich --expand-path='$TEXMFMAIN'`}
28 : ${MT_MKTEX_OPT=`kpsewhich --format='web2c files' mktex.opt`}
29 test -n "$MT_MKTEX_OPT" || MT_MKTEX_OPT="$MT_TEXMFMAIN/web2c/mktex.opt"
30 if test ! -f "$MT_MKTEX_OPT"; then
31 echo "$progname: Cannot find mktex.opt; check your installation." >&2
32 exit 1
35 . "$MT_MKTEX_OPT"
38 # See comments in mktexpk.
39 name="`echo $1 | sed 's%.*/%%; s%\.mf$%%'`"
40 rootname=`echo "$name" | sed 's/[0-9]*$//'`
41 pointsize=`echo "$name" | sed "s/^$rootname//"`
43 sauterroot=`kpsewhich b-$rootname.mf 2>/dev/null`
44 if test -n "$sauterroot"; then
45 rootfile=$sauterroot
46 rootname=b-$rootname
47 else
48 case $name in
49 # csso12[0-5][0-9] from CJK package; unsupported by mktexmf
50 csso12[0-5][0-9])
51 rootfile=;;
53 case $rootname in
54 cs*|lcsss*|icscsc*|icstt*|ilcsss*)
55 rootfile=`kpsewhich cscode.mf`;;
56 wn[bcdfirstuv]*|rx[bcdfiorstuvx][bcfhilmostx]|l[abcdhl][bcdfiorstuvx]*)
57 lhprefix=`echo "$name" | sed 's/^\(..\).*/\1/'`
58 rootfile=`kpsewhich ${lhprefix}codes.mf 2>/dev/null`;;
60 rootfile=`kpsewhich $rootname.mf 2>/dev/null`;;
61 esac;;
62 esac
64 { test -z "$rootfile" || test ! -f "$rootfile"; } && exit 1
66 #if test -z "$MT_MFNAME"; then
67 OIFS=$IFS; IFS=$SEP
68 set x `"$MT_MKTEXNAM" $name`; shift
69 IFS=$OIFS
70 MT_MFNAME="$3"
71 #fi
73 destdir=`echo "$MT_MFNAME" | sed 's%/[^/][^/]*$%%'`
74 test -d "$destdir" || "$MT_MKTEXDIR" "$destdir" || exit 1
75 cd "$destdir" || exit 1
77 case "$pointsize" in
78 "") echo "$progname: no pointsize."; exit 1;;
79 11) realsize=10.95;; # \magstephalf
80 14) realsize=14.4;; # \magstep2
81 17) realsize=17.28;; # \magstep3
82 20) realsize=20.74;; # \magstep4
83 25) realsize=24.88;; # \magstep5
84 30) realsize=29.86;; # \magstep6
85 36) realsize=35.83;; # \magstep7
86 # The new convention is to have three or four letters for the
87 # font name and four digits for the pointsize. The number is
88 # pointsize * 100. We effectively divide by 100 by ignoring the
89 # last two digits.
90 ????|?????) realsize=`echo "$pointsize" | sed 's/\(..\)$/.\1/'`;;
91 *) realsize="$pointsize";;
92 esac
94 mfname="$name.mf"
95 if test -r "$mfname"; then
96 echo "$progname: $destdir/$mfname already exists."
97 echo "$destdir/$mfname" >$STDOUT
98 "$MT_MKTEXUPD" "$destdir" "$mfname"
99 exit 0
102 case "$name" in
103 ec*|tc*)
104 cat > "mf$$.tmp" <<END
105 if unknown exbase: input exbase fi;
106 gensize:=$realsize;
107 generate $rootname;
110 dc*)
111 cat > "mf$$.tmp" <<END
112 if unknown dxbase: input dxbase fi;
113 gensize:=$realsize;
114 generate $rootname;
117 cs*|lcsss*|icscsc*|icstt*|ilcsss*)
118 cat > "mf$$.tmp" <<END
119 input cscode
120 use_driver;
123 wn[bcdfirstuv]*|rx[bcdfiorstuvx][bcfhilmostx]*|l[abcdhl][bcdfiorstuvx]*)
124 cat > "mf$$.tmp" <<END
125 input fikparm;
128 g[lmorst][bijmtwx][cilnoru]*)
129 # A small superset of the names of the cbgreek fonts.
130 cat > "mf$$.tmp" <<END
131 % generated by mktexmf
132 input cbgreek;
136 cat > "mf$$.tmp" <<END
137 design_size := $realsize;
138 input $rootname;
141 esac
143 chmod `kpsestat -xst,go-w .` "mf$$.tmp"
144 rm -f "$mfname"
145 mv "mf$$.tmp" "$mfname"
147 echo "$destdir/$mfname" >$STDOUT
148 echo "$progname: $destdir/$mfname: successfully generated." >&2
149 "$MT_MKTEXUPD" "$destdir" "$mfname"
150 exit 0
151 ) 1>&2 </dev/null