]> git.lizzy.rs Git - plan9front.git/blob - sys/src/9/port/mkbootrules
pc kernel: fix wrong simd exception mask (fixes go bootstrap)
[plan9front.git] / sys / src / 9 / port / mkbootrules
1 #!/bin/rc
2
3 rfork e
4 if(~ $#CONF 0)
5         CONF=$1
6 awk -v 'objtype='$objtype -v 'CONF='$CONF '
7 BEGIN { nfs = 0 }
8 /^$/{
9         next;
10 }
11 /^#/{
12         next;
13 }
14 collect && /^[^ \t]/{
15         collect = 0;
16 }
17 collect && 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
39 END{
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 ' $*