TMP=/usr/tmp/ego DDUMP=$TMP.dd.$$ PDUMP=$TMP.pd.$$ PHASES='' FLAGS='' EM=$1 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;; -*) FLAGS="$FLAGS $A"; continue;; esac done if test "$PHASES" then : else PHASES='cj bo sp ' fi PASSES="ic cf $PHASES ca" OUTFILES="$PDUMP $DDUMP" 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.$$" trap "rm -f $INFILES $OUTFILES $PDUMP $DDUMP $TMPOPT; exit 1" 1 2 15 case $i in ic) if $OPT/ic $INFILES - - $OUTFILES $ICARG then : else exit 1 fi ;; ca) if $OPT/ca $INFILES $PDUMP $DDUMP - - then rm -f $INFILES $PDUMP $DDUMP $TMPOPT else rm -f $INFILES $PDUMP $DDUMP $TMPOPT exit 1 fi;; caopt) rm -f $TMPOPT TMPOPT=$TMP.o.$$ if $OPT/ca $INFILES $PDUMP $DDUMP - - | $EM/lib/em_opt2 > $TMPOPT then rm -f $INFILES $PDUMP $DDUMP else rm -f $INFILES $PDUMP $DDUMP $TMPOPT exit 1 fi ICARG=$TMPOPT OUTFILES="$PDUMP $DDUMP" ;; *) if $OPT/$i $INFILES $OUTFILES $FLAGS then rm -f $INFILES else rm -f $INFILES exit 1 fi ;; esac c=`expr $c + 1` done exit 0