Subversion Repositories planix.SVN

Rev

Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed

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