xref: /plan9/sys/src/9/port/mkrootc (revision f6eb8b353b1d6b6fa052ff54a71d39ba9b112583)
1#!/bin/rc
2
3rfork e
4n=`{echo $#*^'%3' | hoc}
5if(! ~ $n 0){
6	echo 'usage: mkrootc [name cname file]...' >[1=2]
7	exit usage
8}
9
10tmp=mkroot.$pid.out
11fn sigexit {
12	rm -f $tmp
13}
14
15allcname=()
16allname=()
17while(! ~ $#* 0){
18	name=$1
19	cname=$2
20	file=$3
21	shift
22	shift
23	shift
24	allname=($allname $name)
25	allcname=($allcname $cname)
26}
27
28echo '
29#include "u.h"
30#include "../port/lib.h"
31#include "mem.h"
32#include "dat.h"
33#include "fns.h"
34#include "io.h"
35#include "../port/error.h"
36'
37
38for(i in $allcname){
39	echo 'extern uchar '$i'code[];'
40	echo 'extern ulong '$i'len;'
41}
42
43echo '
44void bootlinks(void){
45'
46x=($allname)
47for(i in $allcname){
48	name=$x(1)
49	*=($x); shift; x=($*)
50	echo '	addbootfile("'$name'", '$i'code, '$i'len);'
51}
52echo '
53}
54'
55