home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 5 Edit / 05-Edit.zip / texlatex.zip / web2c72.zip / bin / mktextfm < prev    next >
Text File  |  1999-09-14  |  4KB  |  122 lines

  1. #!sh
  2. # original mktextfm -- make a new TFM file, because one wasn't found.
  3. # (If you change or delete the word `original' on the previous line,
  4. # installation won't write this script over yours.)
  5. # te@informatik.uni-hannover.de, kb@mail.tug.org, and infovore@xs4all.nl.
  6. # Public domain.
  7.  
  8. version='$Id: mktextfm,v 1.17 1998/02/16 08:56:13 olaf Exp $'
  9. progname=`echo $0 | sed 's%.*/%%'`
  10. usage="Usage: $progname [--destdir DESTDIR] FONT.
  11.  
  12. Makes a TFM file for FONT, if possible. Use DESTDIR for the root of where
  13. to install into, either the absolute directory name to use (if it starts
  14. with a /) or relative to the default DESTDIR (if not)."
  15.  
  16. # Handle non-positional options, except for --version/--help
  17. while test $# -gt 0; do
  18.   case "$1" in
  19.     --destdir) shift; DEST="$1"; shift ;;
  20.     --version|-version) break ;;
  21.     --help|-help) break ;;
  22.     *) break ;;
  23.   esac
  24. done
  25.  
  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
  33. fi
  34.  
  35. . "$MT_MKTEX_OPT"
  36.  
  37. # start of redirection stdout -> stderr, stdin <- /dev/null
  38. (
  39.  
  40. NAME=`basename "$1" .tfm`
  41. MAG=1
  42. #DEST="$2"
  43. DPI=$BDPI
  44.  
  45. OIFS=$IFS; IFS=$SEP
  46. set x `"$MT_MKTEXNAM" $NAME $DPI $MODE $DEST`; shift
  47. IFS=$OIFS
  48.  
  49. PKDEST="$1"
  50. TFMDEST="$2"
  51. PKDESTDIR=`echo "$PKDEST" | sed -e 's%/[^/][^/]*$%%' -e 's%^.:%%'` # can't rely on dirname
  52. TFMDESTDIR=`echo "$TFMDEST" | sed -e 's%/[^/][^/]*$%%' -e 's%^.:%%'`
  53. PKNAME=`basename "$PKDEST"`
  54. TFMNAME=$NAME.tfm
  55. GFNAME=$NAME.$DPI'gf'
  56.  
  57. if test -r "$TFMDESTDIR/$TFMNAME"; then
  58.   echo "$progname: $TFMDESTDIR/$TFMNAME already exists." >&2
  59.   echo "$TFMDESTDIR/$TFMNAME" >$STDOUT
  60.   "$MT_MKTEXUPD" "$TFMDESTDIR" $TFMNAME
  61.   exit
  62. fi
  63.  
  64. # Try to create the destdir first. Do not create fonts, if this fails.
  65. "$MT_MKTEXDIR" "$TFMDESTDIR"
  66. if test ! -d "$TFMDESTDIR"; then
  67.   echo "$progname: mktexdir $TFMDESTDIR failed."
  68.   exit 1
  69. fi
  70.  
  71. cmd="mf \mode:=$MODE; mag:=$MAG; nonstopmode; input $NAME"
  72. echo "$progname: Running $cmd"
  73.  
  74. $cmd </dev/null || {
  75.   grep '^!' $NAME.log >$$.errs 2>/dev/null
  76.   grep '^! Strange path' $$.errs >$$.strange 2>/dev/null
  77.   if cmp $$.errs $$.strange >/dev/null 2>&1 \
  78.     && test -s $$.strange >/dev/null 2>&1; then
  79.     echo "$progname: warning: \`$cmd' caused strange path errors." >&2
  80.   else
  81.     echo "$progname: \`$cmd' failed." >&2
  82.     test -s $NAME.log && mv -f $NAME.log "$KPSE_DOT"
  83.     exit 1;
  84.   fi
  85. }
  86.  
  87. test -r $TFMNAME || { echo "$progname: \`$cmd' failed to make $TFMNAME."; exit 1; }
  88.  
  89. # Install the TFM file carefully, since others may be working simultaneously.
  90. # Use cp when mv fails, since DOS will fail mv for deeply-nested directories.
  91. mv $TFMNAME "$TFMDESTDIR/tfm$$.tmp" 2>/dev/null \
  92.   || cp $TFMNAME "$TFMDESTDIR/tfm$$.tmp" || exit 1
  93. cd "$TFMDESTDIR" || exit 1
  94. chmod `kpsestat -xst,go-w .` tfm$$.tmp
  95. test -r $TFMNAME || mv tfm$$.tmp $TFMNAME || exit 1
  96.  
  97. # OK, success with the TFM.
  98. "$MT_MKTEXUPD" "$TFMDESTDIR" $TFMNAME
  99. echo "$TFMDESTDIR/$TFMNAME" >$STDOUT
  100. echo "$progname: $TFMDESTDIR/$TFMNAME: successfully generated." >&2
  101.  
  102. # Since we probably made a GF(->PK) file, too, may as well install it if
  103. # it's needed.
  104. cd $TEMPDIR
  105. if test -r $GFNAME && test ! -f "$PKDESTDIR/$PKNAME"; then
  106.   gftopk ./$GFNAME $PKNAME || exit 1
  107.   "$MT_MKTEXDIR" "$PKDESTDIR"
  108.   mv $PKNAME "$PKDESTDIR/pk$$.tmp" 2>/dev/null \
  109.     || cp $PKNAME "$PKDESTDIR/pk$$.tmp" || exit 1
  110.   cd "$PKDESTDIR" || exit 1
  111.   if test -f $PKNAME; then
  112.     rm -f pk$$.tmp
  113.   else
  114.     chmod `kpsestat -xst,go-w .` pk$$.tmp
  115.     mv pk$$.tmp $PKNAME
  116.     "$MT_MKTEXUPD" "$PKDESTDIR" $PKNAME
  117.   fi
  118. fi
  119. ) 1>&2 </dev/null
  120.