NL=' ' FLAGS= msk= prompt=prompt files= quick=: for i do case $i in LINT) >>LINT quick=break; case `ls -t lib.a LINT` in lib.a*) sh -x runlint esac ;; -i) ;; -x) set -x FLAGS=x continue ;; -n) msk=: continue ;; -q) quick=break continue ;; -s) prompt=: continue ;; -*) prompt "$i: bad flag$NL" exit 1 ;; *) files="$files $i" ;; esac done case $files in "") files=`ls -t *.[cs]` esac for i in $files do case $i in \**) prompt "$i: not found$NL" continue ;; *.s) B=`basename $i .s` CMD="as - -o $B.o $i" ;; *.c) B=`basename $i .c` CMD="cc -O -c $i" ;; *.o) continue ;; esac set -$FLAGS `ls -t $B.[ocs]` case $2 in $i) $quick $prompt "$B.o is up to date$NL" ;; *) $prompt "$CMD$NL" $msk $CMD obj="$obj $B.o" ;; esac done : ${obj=*.o} if test -f lib.a then set -$FLAGS `ls -t lib.a $obj` else set -$FLAGS x fi case $1 in lib.a) ;; *) # ar r lib.a `lorder *.o | tsort` rm -f lib.a $prompt "ar r lib.a $obj$NL" ar r lib.a *.o ranlib lib.a esac