#!/bin/csh -f
# create_pk_tfm - Font-creation for NTeX V1.0
# Copyright 1994, Frank Langbein
# All rights reserved.
#
# Redistributions of this script must retain the above copyright notice, 
# this condition and the following disclaimer.
#
#  THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
#  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
#  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO
#  EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
#  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
#  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
#  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
#  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
#  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
#  ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


if ($#argv < 4) then
   echo "Usage: $0 font_source main_directory type size [size ...]."
   exit(1)
endif

#remember old dir
set curr_dir=`pwd`

# set parameters
set f_source=$1
set main_dir=$2
set f_type=$3
shift
shift
shift

# source directory...
if (! -d $main_dir) then
   echo "WARNING: "$f_type"-font "$f_source" in "$main_dir" not installed."
   echo "WARNING: "$f_type"-font "$f_source" in "$main_dir" not installed" >>$curr_dir/create.log
   exit(0)
endif
if (! -d $main_dir/src) then
   echo "WARNING: "$f_type"-font "$f_source" in "$main_dir" not installed."
   echo "WARNING: "$f_type"-font "$f_source" in "$main_dir" not installed" >>$curr_dir/create.log
   exit(0)
endif
cd $main_dir/src

# fonttype
if ($f_type == cm) then
  set mf_cmd=cmmf
else
  set mf_cmd=mf
endif

echo "$f_type"-font $f_source at $argv
echo Font directory is $main_dir

# do all directories exist?
if (! -d ../tfm) then
   echo Creating tfm directory in $main_dir
   mkdir ../tfm
endif
if (! -d ../pk) then
   echo Creating pk directory in $main_dir
   mkdir ../pk
endif

rm -f c_f.err c_f.out

# just in case...
set DISPLAY=""

foreach f_size ($argv)
   if ("`echo $f_size | grep :`" != "") then
      set o_size=`echo $f_size | sed -e "s/:[./M0-9]*//"`
      set cmags=`echo $f_size | sed -e "s/[.0-9]*://"`
      if ("`echo $cmags | grep ^M`" != "") then
         set mags="magstep(`echo $cmags | sed -e s/^M//`)"
      else
         set mags=$cmags
      endif
   else
      set cmags="M0"
      set mags="magstep(0)"
      set o_size=$f_size
   endif
   echo "Creating "$f_type"-font "$f_source$o_size" at "$cmags >>$curr_dir/create.log
   echo -n ".................($f_source$o_size at $cmags"
   if (! -e "./"$f_source$o_size".mf") then
      if (-e /usr/bin/MakeTeXMF) then
         echo -n ",MakeTeXMF"
         /usr/bin/MakeTeXMF $f_source$o_size </dev/null >&/dev/null
         if (-e "/usr/lib/texmf/fonts/tmp/src/"$f_source$o_size".mf") then
            mv "/usr/lib/texmf/fonts/tmp/src/"$f_source$o_size".mf" .
            echo "Created "$f_source$o_size".mf in "$main_dir"/src" >>$curr_dir/create.log
         endif
      else
         echo -n ":/usr/bin/MakeTeXMF DOES NOT EXIST"
         echo "ERROR: /usr/bin/MakeTeXMF does not exist" >>$curr_dir/create.log
      endif
   endif
   if (-e "./"$f_source$o_size".mf") then
      echo -n ",$mf_cmd"
      $mf_cmd "\mode=localfont; scrollmode; mag=$mags;" input $f_source$o_size </dev/null >&c_f.out
       grep ^! c_f.out >&/dev/null
      if ($? == 0) then
         echo "ERROR: MetaFont - see "$f_source".ferr"  >>$curr_dir/create.log
         echo -n ":ERROR"
         if (! -e c_f.err) then
            echo MetaFont error log for "$f_type"-font $f_source >c_f.err
            echo ------------------------------------------------------------------------------ >>c_f.err
         endif
         echo "$f_type"-font $f_source$o_size at magification $cmags >>c_f.err
         echo >>c_f.err
         cat c_f.out >>c_f.err
         echo ------------------------------------------------------------------------------ >>c_f.err
      endif
      echo -n ",gftopk"
      gftopk "$f_source$o_size".*gf >&/dev/null
      echo -n ",pk"
      mv -f "$f_source$o_size".*pk ../pk >&/dev/null
      echo -n ",tfm"
      mv -f "$f_source$o_size".tfm ../tfm >&/dev/null
      rm -f "$f_source$o_size".*gf "$f_source$o_size".log >&/dev/null
   else
      echo "WARNING: font not installed"  >>$curr_dir/create.log
      echo -n ":FONT NOT INSTALLED"
   endif
   echo ")"
end
if (-e c_f.err) then
   mv c_f.err $curr_dir/$f_source".ferr"
endif
echo ------------------------------------------------------------------------------
rm -f c_f.out
cd $curr_dir



