TMP=/usr/tmp/ego DDUMP=$TMP.dd.$$ PDUMP=$TMP.pd.$$ PHASES='' FLAGS='' 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 " ; 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; 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 else rm -f $INFILES $PDUMP $DDUMP exit 1 fi;; *) 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