#!/usr/bin/ksh 
#
if [ -x /bin/arch ]; then
   alias machine="echo `/bin/arch`"
fi
if [ -x /bin/uname ]; then
   alias machine="echo `/bin/uname`"
fi
if [ -z "$HARDWARE" ]; then HARDWARE="`machine`"; fi
if [ "$HARDWARE" = "mips" ]; then HARDWARE="decs"; fi
if [ "$HARDWARE" = "AIX" ]; then HARDWARE="RS6000"; fi
if [ "$HARDWARE" = "i586" -o "$HARDWARE" = "i686" ]; then HARDWARE="pentium"; fi

warn=' '
optimz=' '
warn=' '
opar=' '
Opar='-O4'
gpar='-g3'
if [ "$HARDWARE" = "pentium" ]; then Opar=' '; gpar='-g'; fi
if [ "$HARDWARE" = "RS6000"  ]; then Opar=' '; gpar='-g'; fi

if [ \( "$HARDWARE" = "pentium" \) -o \( "$HARDWARE" = "RS6000" \) ]; then
   options="wgO:"
else
   options="wg:O:"
fi

while getopts $options xopt
do
   case $xopt in
   w) warn='-w';;
   g) if [ \( "$HARDWARE" = "pentium" \) -o \( "$HARDWARE" = "RS6000" \) ]; then
         gpar="-g"
      else
         gpar="-g$OPTARG"
      fi;;
   O) Opar="-O$OPTARG";;
   \?) echo 'fort [-w] file.f'
       echo \(the -w switch suppresses the warnings about unused var.\)
      ;;
   esac
done
shift `expr $OPTIND - 1 `
nargs=$#

if [ $HARDWARE = 'mips' ]; then
        F77="/usr/bin/f77 -c -g3 -O1 -w$warn -G 0 -backslash -Nq3000 -static"
        lst=''
elif [ $HARDWARE = 'decs' ]; then
        F77="/usr/bin/f77 -c $opar $Opar $gpar -fpe2 -G 3 $warn -assume backslash"
        lst=''
elif [ $HARDWARE = 'alpha' ]; then
        F77="/usr/bin/f77 -c $opar $Opar $gpar -fpe2 -G 3 $warn -assume backslash"
        lst=''
elif [ $HARDWARE = 'pentium' ]; then
        if [ "$warn" = "-w" ]; then warn='-Wall'; fi
        F77="/usr/bin/g77 -c -fno-automatic -finit-local-zero -fno-f90 -fugly-complex -fno-backslash $opar $Opar $gpar $warn "
        lst=''
elif [ $HARDWARE = 'RS6000' ]; then
        if [ "$warn"  = "-w" ]; then warn='-w'; else warn=''; fi
        F77="xlf -c -qsigtrap $Opar $gpar -qsave -qrndsngl -qmaxmem=-1 -qextname -qfloat=fltint:hsflt:hssngl:nans:rndsngl -qcharlen=32767 $warn -qxlf77=leadzero -qfullpath -qctyplss -qintlog"
        lst=''
elif [ $HARDWARE = 'apollo' ]; then
        if [ "$warn" = "-w" ]; then apowarn='-nwarn'; else apowarn='-warn'; fi
      apowarn='-nwarn'
#        F77="mapof77 -type -indexl -zero -save -opt 2 -dbs -nmsgs $apowarn"
        F77="ftn $1 -type -indexl -zero -save -opt 2 -dbs -nmsgs $apowarn"
        lst="if [ -f $1.bin ]; then mv $1.bin $1.o; fi"
        shift $nargs
fi

if [ $nargs -le 0 ]; then
   echo $F77
   exit 1
fi

$F77 $* 
eval $lst
