#!/bin/sh

# change these to fit your religion ...

BINPATH=/usr/local/bin/
LIBPATH=/usr/lib

##### No need to touch the rest #####

QPCOMP=${BINPATH}/qpascal
QPCPP=${BINPATH}/qpascal_cpp
QPAS=${BINPATH}/pas_as
QPLD=${BINPATH}/pas_ld
QPCV=${BINPATH}/pas_cv

if [ x$1 = x ]; then
	echo usage: qpas {file name}
	exit 1
fi

if [ ! -f $1 ]; then
	echo qpas: no such file: $1
	exit 1
fi

name=`basename $1 .pas`

# echo compiling
${QPCOMP} ${name}.pas ${name}.as >${name}.lst
if [ $? != 0 ]; then
	rm ${name}.as
	echo error in compilation. stop.
	exit 2
fi

# echo qcpp
${QPCPP} ${name}.as >${name}.qcpp
# Currently, QPCPP always returns zero
rm ${name}.as

# echo assembling
${QPAS} - ${name}.qcpp -o ${name}.o
# Currently, QPAS always returns zero
rm ${name}.qcpp

# echo linking
${QPLD} -i -o ${name}.out \
	${LIBPATH}/pas_ncrtso.o ${name}.o \
	${LIBPATH}/paslib.o \
	${LIBPATH}/pas_libd.a \
	${LIBPATH}/pas_libc.a \
	${LIBPATH}/pas_libfp.a \
	${LIBPATH}/pas_libe.a \
	${LIBPATH}/pas_end.a
if [ $? != 0 ]; then
	rm -f ${name}.out ${name}.o
	echo error in linking. stop.
	exit 2
fi
rm ${name}.o

# echo cv
${QPCV} ${name}.out $name
if [ $? != 0 ]; then
	rm -f ${name}.out $name
	echo error in linking. stop.
	exit 2
fi
rm ${name}.out
