12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- #!/bin/rc
- targ=multi
- n=0
- dir=`{pwd}
- fn grab {
- echo using $*
- for(i){
- n=`{echo 1+$n|hoc}
- mv $i $dir/a.$n.8
- }
- }
- fn getfiles {
- sed -n 's/^(pcc|8\^l|8l) +(-o [^ ]* +)?([^\-].*)/ \3/p' | sed 's/ -[^ ]*//g' |
- sed 's/ [^ ]*\.a//g'
- }
- rm a.*.8
- >multi.h
- >multiproto.h
- for(i){
- echo $i...
- b=`{basename $i}
- p=$b
- if(~ $b [0-9]*)
- p=_$b
- echo void $p^_main'(int, char**);' >>$dir/multiproto.h
- echo "$b", $p^_main, >>$dir/multi.h
- d=`{basename -d $i}
- if(~ $i disk/prep disk/fdisk){
- cd /sys/src/cmd/disk/prep
- rm 8.$b
- files=`{mk 8.$b | getfiles}
- }
- if not if(test -d /sys/src/cmd/$i && @{cd /sys/src/cmd/$i && mk 8.out}){
- cd /sys/src/cmd/$i
- rm 8.out
- files=`{mk 8.out | getfiles}
- }
- if not if(test -d /sys/src/cmd/$i && @{cd /sys/src/cmd/$i && mk 8.$b}){
- cd /sys/src/cmd/$i
- rm 8.$b
- files=`{mk 8.$b | getfiles}
- }
- if not if(test -d /sys/src/cmd/$d && @{cd /sys/src/cmd/$d && mk 8.$b}){
- cd /sys/src/cmd/$d
- rm 8.$b
- files=`{mk 8.$b | getfiles}
- }
- if not{
- echo do not know how to make $i
- exit oops
- }
- aux/8prefix $p^_ $files
- grab $files
- switch(`{pwd}){
- case /sys/src/cmd /sys/src/cmd/aux /sys/src/cmd/ip
- rm 8.$b
- case *
- mk clean
- }
- }
- cd $dir
- 8c -FVw multi.c
- 8l -o 8.$targ multi.8 a.*.8
- # rm a.*.8
|