xref: /plan9/sys/src/9/port/mkbootrules (revision dc5a79c1208f0704eeb474acc990728f8b4854f5)
1#!/bin/rc
2
3rfork e
4if(~ $#CONF 0)
5	CONF=$1
6awk -v 'objtype='$objtype -v 'CONF='$CONF '
7BEGIN { nfs = 0 }
8/^$/{
9	next;
10}
11/^#/{
12	next;
13}
14collect && /^[^ \t]/{
15	collect = 0;
16}
17collect && section ~ "bootdir" {
18	if(NF >= 2)
19		x = $2;
20	else{
21		x = $1;
22		sub(/.*\//, "", x);
23	}
24	fsname[nfs] = x;
25	x = $1;
26	gsub(/[^a-zA-Z0-9_]/, "_", x);
27	fs[nfs] = x;
28	file[nfs] = $1;
29	nfs++;
30}
31$0 ~ /^[^ \t]/{
32	if($0 ~ "bootdir"){
33		section = $0;
34		collect = 1;
35	}
36	next;
37}
38
39END{
40	printf "%s.root.s:D:", CONF;
41	for(i=0; i<nfs; i++)
42		printf " %s", file[i];
43	printf "\n";
44	printf "\t../port/mkrootall \\\n";
45	for(i=0; i<nfs; i++)
46		printf "\t\t%s %s %s\\\n", fsname[i], fs[i], file[i];
47	printf "\t>$target\n";
48
49	printf "%s.rootc.c:D:", CONF;
50	for(i=0; i<nfs; i++)
51		printf " %s", file[i];
52	printf "\n";
53	printf "\t../port/mkrootc \\\n";
54	for(i=0; i<nfs; i++)
55		printf "\t\t%s %s %s\\\n", fsname[i], fs[i], file[i];
56	printf "\t>$target\n";
57}
58
59' $*
60