#! /bin/sh
#
# efs2efd -- EDR-plus font source (EFS) convert to EDR-plus font data (EFD).
#
# efs2efd EFS-filename [EFD-filename]
#
#

PROGNAME=`basename $0`
AS="/usr/local/bin/has"
ASFLAGS="-c -m68000"
LD="/usr/local/bin/hlk"
LDFLAGS="-x"
CV="/usr/local/bin/hcv"
CVFLAGS="-r"
OTMP="$temp/ASXXXXXX.o"
XTMP="$temp/LDXXXXXX.x"
RTMP="$temp/CVXXXXXX.r"
SIZE=80

usage() {
    echo 'This is fontfile generater for EDR-plus, SHELL version 1.0 (EFD SYSTEM V1).'
    echo "usage: $PROGNAME EFS-filename [EFD-filename]"
    exit 1
}

execer() {
#	echo $1 $2 -o $4 $3
	$1 $2 -o $4 $3 >& /dev/null
	    if [ $? -ne 0 ]; then
	      echo "${PROGNAME}: error at generate $5"
	      rm -f $OTMP $XTMP $RTMP
	      exit 1
	    fi
}

if [ $# -eq 1 -o $# -eq 2 ]; then
	EFS=$1

	if [ $# -eq 1 ]; then
	    EFD=`basename $1 .efs`.efd
	else
	    EFD=$2
	fi

	if [ -f $EFS ]; then
	    execer $AS "$ASFLAGS" $EFS  $OTMP
	    execer $LD "$LDFLAGS" $OTMP $XTMP
	    execer $CV "$CVFLAGS" $XTMP $RTMP

	    cp -p $RTMP $EFD >& /dev/null
	    if [ $? -ne 0 ]; then
	      echo "error at generate $EFD"
	      rm -f $OTMP $XTMP $RTMP
	      exit 1
	    fi
	    rm -f $OTMP $XTMP $RTMP
	    if [ $SIZE -ne `wc -c < ${EFD}` ]; then
	      echo "$PROGNAME: $EFD is generated with wrong size."
	      exit 1
	    else
	      exit 0
	    fi
	else
	      echo "$PROGNAME: $EFS: no such file or directory."
	      exit 1
	fi
else
	usage
fi
