55 lines
717 B
Plaintext
55 lines
717 B
Plaintext
![]() |
#!/bin/rc
|
||
|
|
||
|
rfork e
|
||
|
n=`{echo $#*^'%3' | hoc}
|
||
|
if(! ~ $n 0){
|
||
|
echo 'usage: mkrootc [name cname file]...' >[1=2]
|
||
|
exit usage
|
||
|
}
|
||
|
|
||
|
tmp=mkroot.$pid.out
|
||
|
fn sigexit {
|
||
|
rm -f $tmp
|
||
|
}
|
||
|
|
||
|
allcname=()
|
||
|
allname=()
|
||
|
while(! ~ $#* 0){
|
||
|
name=$1
|
||
|
cname=$2
|
||
|
file=$3
|
||
|
shift
|
||
|
shift
|
||
|
shift
|
||
|
allname=($allname $name)
|
||
|
allcname=($allcname $cname)
|
||
|
}
|
||
|
|
||
|
echo '
|
||
|
#include "u.h"
|
||
|
#include "../port/lib.h"
|
||
|
#include "mem.h"
|
||
|
#include "dat.h"
|
||
|
#include "fns.h"
|
||
|
#include "io.h"
|
||
|
#include "../port/error.h"
|
||
|
'
|
||
|
|
||
|
for(i in $allcname){
|
||
|
echo 'extern uchar '$i'code[];'
|
||
|
echo 'extern ulong '$i'len;'
|
||
|
}
|
||
|
|
||
|
echo '
|
||
|
void bootlinks(void){
|
||
|
'
|
||
|
x=($allname)
|
||
|
for(i in $allcname){
|
||
|
name=$x(1)
|
||
|
*=($x); shift; x=($*)
|
||
|
echo ' addbootfile("'$name'", '$i'code, '$i'len);'
|
||
|
}
|
||
|
echo '
|
||
|
}
|
||
|
'
|