diff options
Diffstat (limited to 'sys/lib/dist.old/cmd/multi/mkmulti')
| -rw-r--r-- | sys/lib/dist.old/cmd/multi/mkmulti | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/sys/lib/dist.old/cmd/multi/mkmulti b/sys/lib/dist.old/cmd/multi/mkmulti new file mode 100644 index 000000000..2317e51e8 --- /dev/null +++ b/sys/lib/dist.old/cmd/multi/mkmulti @@ -0,0 +1,70 @@ +#!/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.out + 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 |
