#!/bin/sh
# MakeTeXnames -- find PK and TFM names.
# Use alias files from the ftp://ftp.tug.org/tex/fontname.tar.gz distribution.
# te@informatik.uni-hannover.de and kb@mail.tug.org. Public domain.

version='$Id: MakeTeXnames,v 1.7 1997/02/08 15:52:15 karl Exp karl $'
usage="Usage: $0 NAME [DPI MODE] [DESTDIR].
  Output the PK and TFM names for a font NAME."
mt_max_args=4

# The main system texmf tree:
: ${TEXMFMAIN=`kpsewhich -expand-var='$TEXMFMAIN'`}
if test -z "$TEXMFMAIN"; then
  echo "$0: No \$TEXMFMAIN; set the environment variable or in texmf.cnf." >&2
  exit 1
fi

. $TEXMFMAIN/web2c/MakeTeXcommon

NAME=$1
case $# in
1|2) DPI=$BDPI; DEST=$2;;
3|4) DPI=$2;  MODE=$3;    DEST=$4;;
*)   help;;
esac

SPECIALMAP=`kpsewhich special.map`
TYPEFACEMAP=`kpsewhich typeface.map`
SUPPLIERMAP=`kpsewhich supplier.map`

: ${MT_PKDESTDIR='$MT_DESTROOT/$MT_PKPART/$MT_MODE/$MT_NAMEPART'}
: ${MT_TFMDESTDIR='$MT_DESTROOT/$MT_TFMPART/$MT_NAMEPART'}
: ${MT_MFDESTDIR='$MT_DESTROOT/$MT_MFPART/$MT_NAMEPART'}
: ${MT_PKPART='pk'}
: ${MT_TFMPART='tfm'}
: ${MT_MFPART='source'}
: ${MT_PKNAME='$NAME.${DPI}pk'}
: ${MT_TFMNAME='$NAME.tfm'}
: ${MT_MFNAME='$NAME.mf'}
: ${MT_DESTROOT='$VARTEXMF/fonts'}
: ${MT_NAMEPART='$MT_SUPPLIER/$MT_TYPEFACE'}
: ${MT_DEFAULT_SUPPLIER=unknown}
: ${MT_DEFAULT_TYPEFACE=unknown}

if test -r $SPECIALMAP; then
  set x `awk \
'{if ($1 == NAME || (substr (NAME, 1, length ($1)) == $1 \
                  && substr (NAME, length (NAME), 1) ~ /[0-9]/ \
                  && substr ($1, length ($1), 1) ~ /[^0-9]/)) \
 { print $2 " " $3; exit; }}' NAME=$NAME $SPECIALMAP`
  shift; SUPPLIER=$1; TYPEFACE=$2

  if test -z "$SUPPLIER"; then
    # Try the normal case. Source first.
    s_abbrev=`echo $NAME | sed 's/^\(.\).*$/\1/'`
    SUPPLIER=`awk '{ if ($1 == s_abbrev) { print $2; exit; }}' \
               s_abbrev=$s_abbrev $SUPPLIERMAP`
    if test -n "$SUPPLIER"; then
      # We found the source. Try for the typeface.
      t_abbrev=`echo $NAME | sed 's/^.//;s/\(..\).*$/\1/'`
      TYPEFACE=`awk '{ if ($1 == t_abbrev) { print $2; exit; }}' \
                   t_abbrev=$t_abbrev $TYPEFACEMAP`
    fi
  fi
fi

if test -z "$SUPPLIER"; then
  echo "$0: Could not map source abbreviation $s_abbrev for $NAME." >&2
  echo "$0: Need to update $SPECIALMAP?" >&2
  MT_SUPPLIER=$MT_DEFAULT_SUPPLIER
  MT_TYPEFACE=$MT_DEFAULT_TYPEFACE
else
  MT_SUPPLIER=$SUPPLIER
  if test -z "$TYPEFACE"; then
    echo "$0: Could not map typeface abbreviation $t_abbrev for $NAME." >&2
    echo "$0: Need to update $SPECIALMAP?" >&2
    MT_TYPEFACE=$MT_DEFAULT_TYPEFACE
  else
    MT_TYPEFACE=$TYPEFACE
  fi
fi

. $TEXMFMAIN/web2c/MakeTeXnames.cnf

case "$DEST" in
  "") ;;
  /*) MT_PKDESTDIR=$DEST
      MT_TFMDESTDIR=$DEST
      MT_MFDESTDIR=$DEST
      MT_NAMEPART=;; # Absolute, explicit destdir => use it.
   *) MT_NAMEPART=$DEST;; # Relative destdir => append to the default.
esac

eval MT_MODE=$MODE
eval MT_PKPART=$MT_PKPART
eval MT_NAMEPART=$MT_NAMEPART
eval MT_DESTROOT=$MT_DESTROOT
eval PKNAME=$MT_PKDESTDIR/$MT_PKNAME
eval TFMNAME=$MT_TFMDESTDIR/$MT_TFMNAME
eval MFNAME=$MT_MFDESTDIR/$MT_MFNAME

echo $PKNAME $TFMNAME $MFNAME | sed 's@//*@/@g'
