ack/util/ego/em_ego/em_ego
1990-12-17 14:22:09 +00:00

92 lines
1.8 KiB
Plaintext
Executable file

TMP=/usr/tmp/ego
DDUMP=$TMP.dd.$$
PDUMP=$TMP.pd.$$
PHASES=''
FLAGS=''
LEVEL=xxx
EM=$1
KEEPTEMPS=no
shift
while :
do
case $# in
0) break ;;
esac
A="$1"
shift
case $A in
*.m|*.ma) ICARG="$ICARG $A"; continue;;
-P) OPT="$1"; shift; continue;;
-IL) PHASES="$PHASES il cf caopt ic cf " ; continue;;
-CS) PHASES="$PHASES cs " ; continue;;
-SR) PHASES="$PHASES sr " ; continue;;
-UD) PHASES="$PHASES ud " ; continue;;
-LV) PHASES="$PHASES lv " ; continue;;
-RA) PHASES="$PHASES ra " ; continue;;
-SP) PHASES="$PHASES sp " ; continue;;
-BO) PHASES="$PHASES bo " ; continue;;
-CJ) PHASES="$PHASES cj " ; continue;;
-O*) LEVEL=$A ; continue;;
-t) KEEPTEMPS=yes ; continue;;
-*) FLAGS="$FLAGS $A"; continue;;
esac
done
if test "$PHASES"
then :
else
case $LEVEL in
-O2|-O|xxx)PHASES='cj bo sp ' ;;
-O3) PHASES='cs sr cj bo sp ud lv ra ' ;;
*) PHASES='il cf caopt ic cf cs sr cj bo sp ud lv ra ' ;;
esac
fi
TMPOPT=$TMP.o.$$
PASSES="ic cf $PHASES ca"
OUTFILES="$PDUMP $DDUMP"
FILES="$OUTFILES $TMPOPT"
c=1
if test "$ICARG"
then :
else
exit 0
fi
for i in $PASSES
do INFILES=$OUTFILES
OUTFILES="$TMP.p.$c.$$ $TMP.d.$c.$$ $TMP.l.$c.$$ $TMP.b.$c.$$"
FILES="$FILES $OUTFILES"
if [ $KEEPTEMPS = no ]
then
trap "rm -f $FILES; exit 1" 0 1 2 15
fi
case $i in
ic) $OPT/ic $INFILES - - $OUTFILES $ICARG || exit 1
;;
ca) $OPT/ca $INFILES $PDUMP $DDUMP - - || exit 1
;;
caopt) rm -f $TMPOPT
$OPT/ca $INFILES $PDUMP $DDUMP - - | $EM/lib/em_opt2 > $TMPOPT || exit 1
ICARG=$TMPOPT
OUTFILES="$PDUMP $DDUMP"
if [ $KEEPTEMPS = no ]
then
rm -f $INFILES $PDUMP $DDUMP
fi
;;
*) $OPT/$i $INFILES $OUTFILES $FLAGS || exit 1
if [ $KEEPTEMPS = no ]
then
rm -f $INFILES
fi
;;
esac
c=`expr $c + 1`
done
if [ $KEEPTEMPS = no ]
then
rm -f $FILES
fi
trap 0
exit 0