1*1ee3cffaSDavid du Colombier#!/bin/rc 2*1ee3cffaSDavid du Colombier 3*1ee3cffaSDavid du Colombiertarg=multi 4*1ee3cffaSDavid du Colombier 5*1ee3cffaSDavid du Colombiern=0 6*1ee3cffaSDavid du Colombierdir=`{pwd} 7*1ee3cffaSDavid du Colombier 8*1ee3cffaSDavid du Colombierfn grab { 9*1ee3cffaSDavid du Colombier echo using $* 10*1ee3cffaSDavid du Colombier for(i){ 11*1ee3cffaSDavid du Colombier n=`{echo 1+$n|hoc} 12*1ee3cffaSDavid du Colombier mv $i $dir/a.$n.8 13*1ee3cffaSDavid du Colombier } 14*1ee3cffaSDavid du Colombier} 15*1ee3cffaSDavid du Colombier 16*1ee3cffaSDavid du Colombierfn getfiles { 17*1ee3cffaSDavid du Colombier sed -n 's/^(pcc|8\^l|8l) +(-o [^ ]* +)?([^\-].*)/ \3/p' | sed 's/ -[^ ]*//g' | 18*1ee3cffaSDavid du Colombier sed 's/ [^ ]*\.a//g' 19*1ee3cffaSDavid du Colombier} 20*1ee3cffaSDavid du Colombier 21*1ee3cffaSDavid du Colombierrm a.*.8 22*1ee3cffaSDavid du Colombier>multi.h 23*1ee3cffaSDavid du Colombier>multiproto.h 24*1ee3cffaSDavid du Colombier 25*1ee3cffaSDavid du Colombierfor(i){ 26*1ee3cffaSDavid du Colombierecho $i... 27*1ee3cffaSDavid du Colombier b=`{basename $i} 28*1ee3cffaSDavid du Colombier p=$b 29*1ee3cffaSDavid du Colombier if(~ $b [0-9]*) 30*1ee3cffaSDavid du Colombier p=_$b 31*1ee3cffaSDavid du Colombier echo void $p^_main'(int, char**);' >>$dir/multiproto.h 32*1ee3cffaSDavid du Colombier echo "$b", $p^_main, >>$dir/multi.h 33*1ee3cffaSDavid du Colombier d=`{basename -d $i} 34*1ee3cffaSDavid du Colombier if(~ $i disk/prep disk/fdisk){ 35*1ee3cffaSDavid du Colombier cd /sys/src/cmd/disk/prep 36*1ee3cffaSDavid du Colombier rm 8.$b 37*1ee3cffaSDavid du Colombier files=`{mk 8.$b | getfiles} 38*1ee3cffaSDavid du Colombier } 39*1ee3cffaSDavid du Colombier if not if(test -d /sys/src/cmd/$i && @{cd /sys/src/cmd/$i && mk 8.out}){ 40*1ee3cffaSDavid du Colombier cd /sys/src/cmd/$i 41*1ee3cffaSDavid du Colombier rm 8.out 42*1ee3cffaSDavid du Colombier files=`{mk 8.out | getfiles} 43*1ee3cffaSDavid du Colombier } 44*1ee3cffaSDavid du Colombier if not if(test -d /sys/src/cmd/$i && @{cd /sys/src/cmd/$i && mk 8.$b}){ 45*1ee3cffaSDavid du Colombier cd /sys/src/cmd/$i 46*1ee3cffaSDavid du Colombier rm 8.out 47*1ee3cffaSDavid du Colombier files=`{mk 8.$b | getfiles} 48*1ee3cffaSDavid du Colombier } 49*1ee3cffaSDavid du Colombier if not if(test -d /sys/src/cmd/$d && @{cd /sys/src/cmd/$d && mk 8.$b}){ 50*1ee3cffaSDavid du Colombier cd /sys/src/cmd/$d 51*1ee3cffaSDavid du Colombier rm 8.$b 52*1ee3cffaSDavid du Colombier files=`{mk 8.$b | getfiles} 53*1ee3cffaSDavid du Colombier } 54*1ee3cffaSDavid du Colombier if not{ 55*1ee3cffaSDavid du Colombier echo do not know how to make $i 56*1ee3cffaSDavid du Colombier exit oops 57*1ee3cffaSDavid du Colombier } 58*1ee3cffaSDavid du Colombier aux/8prefix $p^_ $files 59*1ee3cffaSDavid du Colombier grab $files 60*1ee3cffaSDavid du Colombier switch(`{pwd}){ 61*1ee3cffaSDavid du Colombier case /sys/src/cmd /sys/src/cmd/aux /sys/src/cmd/ip 62*1ee3cffaSDavid du Colombier rm 8.$b 63*1ee3cffaSDavid du Colombier case * 64*1ee3cffaSDavid du Colombier mk clean 65*1ee3cffaSDavid du Colombier } 66*1ee3cffaSDavid du Colombier} 67*1ee3cffaSDavid du Colombiercd $dir 68*1ee3cffaSDavid du Colombier8c -FVw multi.c 69*1ee3cffaSDavid du Colombier8l -o 8.$targ multi.8 a.*.8 70*1ee3cffaSDavid du Colombier# rm a.*.8 71