]> git.lizzy.rs Git - plan9front.git/blob - sys/lib/dist/mkfile
/sys/lib/dist: split 9boot into 9bootproto, make *.386.iso and *.amd64.iso targets
[plan9front.git] / sys / lib / dist / mkfile
1 proto=/n/src9/sys/lib/sysconfig/proto/distproto
2
3 cd:V:   /tmp/9front.386.iso.gz
4
5 %.gz:D: %
6         gzip -9 < $prereq > $target
7
8 %.386.iso:
9         @{
10         objtype=386
11         kernel=/n/src9/$objtype/9pc
12         mk $target.$pid.pc.iso
13         mv $target.$pid.pc.iso $target
14         }
15
16 %.amd64.iso:
17         @{
18         objtype=amd64
19         kernel=/n/src9/$objtype/9pc64
20         mk $target.$pid.pc.iso
21         mv $target.$pid.pc.iso $target
22         }
23
24 %.zynq.img:
25         @{
26         objtype=arm
27         kernel=/n/src9/$objtype/9zynq
28         echo 'bootfile='^`{basename $kernel} > /env/plan9.ini
29         fatfiles=(/env/plan9.ini $kernel)
30         mb=1919 # storage vendors idea of 2GB
31         mk $target.$pid.disk
32         mv $target.$pid.disk $target
33         }
34
35 %.pc.iso:D:     $proto /n/src9/sys/lib/sysconfig/proto/9bootproto /n/src9/cfg/plan9.ini $kernel
36         @{rfork n
37         mk binds
38         {grep -v '^bootfile=' /n/src9/cfg/plan9.ini
39         echo 'bootfile='^`{echo $kernel | sed 's!^/n/src9!!'}} > /env/plan9.ini
40         bind /env/plan9.ini /n/src9/cfg/plan9.ini
41         disk/mk9660 -c9j -B 386/9bootiso -E 386/efiboot.fat \
42                 -p <{cat $proto /n/src9/sys/lib/sysconfig/proto/9bootproto} \
43                 -s /n/src9 -v 'Plan 9 Front ('^$objtype^')' $target
44         if(test -r /n/src9/386/9boothyb){
45                 dd -if /dev/zero -bs 2048 -count 1024 >> $target
46                 disk/partfs -m /n/partfs $target
47                 disk=/n/partfs/sdXX
48                 disk/mbr -m /n/src9/386/mbr $disk/data
49                 @{echo a p1 '$-1' '$'
50                         echo t p1 ESP
51                         echo A p1
52                         echo w
53                         echo q} | disk/fdisk -b $disk/data
54                 disk/format -b /n/src9/386/pbs -xd -t hard $disk/esp
55                 s = esp.$pid
56                 dossrv -f $disk/esp $s
57                 mount -c /srv/$s /n/esp
58                 cp /n/src9/386/9boothyb /n/esp/9bootfat
59                 mkdir /n/esp/efi
60                 mkdir /n/esp/efi/boot
61                 cp /n/src9/386/boot*.efi /n/esp/efi/boot
62                 unmount /n/esp
63                 rm -f /srv/$s
64         }}
65
66 %.disk:D:       $proto $fatfiles
67         @{rfork n
68         mk binds
69         rm -f $target
70         dd -if /dev/zero -of $target -bs 1048576 -oseek $mb -count 1
71         s=`{basename $target}
72         disk/partfs -m /n/$s $target
73         d=/n/$s/sdXX
74         disk/mbr $d/data
75         disk/fdisk -baw $d/data
76         disk/prep -bw -a^(9fat nvram fs) $d/plan9
77         disk/format -d -r 2 $d/9fat $fatfiles
78         hjfs -f $d/fs -n $s -S -r
79         {
80                 echo echo on
81                 echo create /dist sys sys 775 d
82                 echo create /usr sys sys 775 d
83                 user=glenda
84                 echo newuser $user
85                 echo newuser adm +$user
86                 echo newuser sys +$user
87                 echo newuser upas +$user
88                 echo echo off
89                 sleep 1
90         } >> /srv/$s.cmd
91         mount -N -c /srv/$s /n/newfs
92         disk/mkfs -z 4096 -U -s /n/src9 -d /n/newfs $proto
93         echo sync >> /srv/$s.cmd
94         echo halt >> /srv/$s.cmd
95         while(test -e /srv/$s.cmd) sleep 1
96         exit ''
97         }
98
99 binds:V:
100         test -d /n/src9/.hg && bind /n/src9 /n/src9/dist/plan9front
101         bind cfg /n/src9/cfg
102         bind mail/lib /n/src9/mail/lib
103         bind ndb /n/src9/lib/ndb
104         bind -a adm/timezone /n/src9/adm/timezone
105         bind usr /n/src9/usr