plan9fox/sys/lib/dist/mkfile

106 lines
2.5 KiB
Makefile

proto=/n/src9/sys/lib/sysconfig/proto/distproto
cd:V: /tmp/9front.386.iso.gz
%.gz:D: %
gzip -9 < $prereq > $target
%.386.iso:
@{
objtype=386
kernel=/n/src9/$objtype/9pc
mk $target.$pid.pc.iso
mv $target.$pid.pc.iso $target
}
%.amd64.iso:
@{
objtype=amd64
kernel=/n/src9/$objtype/9pc64
mk $target.$pid.pc.iso
mv $target.$pid.pc.iso $target
}
%.zynq.img:
@{
objtype=arm
kernel=/n/src9/$objtype/9zynq
echo 'bootfile='^`{basename $kernel} > /env/plan9.ini
fatfiles=(/env/plan9.ini $kernel)
mb=1919 # storage vendors idea of 2GB
mk $target.$pid.disk
mv $target.$pid.disk $target
}
%.pc.iso:D: $proto /n/src9/sys/lib/sysconfig/proto/9bootproto $kernel
@{rfork n
mk binds
{grep -v '^bootfile=' /n/src9/cfg/plan9.ini
echo 'bootfile='^`{echo $kernel | sed 's!^/n/src9!!'}} > /env/plan9.ini
bind /env/plan9.ini /n/src9/cfg/plan9.ini
disk/mk9660 -c9j -B 386/9bootiso -E 386/efiboot.fat \
-p <{cat $proto /n/src9/sys/lib/sysconfig/proto/9bootproto} \
-s /n/src9 -v 'Plan 9 Front ('^$objtype^')' $target
if(test -r /n/src9/386/9boothyb){
dd -if /dev/zero -bs 2048 -count 1024 >> $target
disk/partfs -m /n/partfs $target
disk=/n/partfs/sdXX
disk/mbr -m /n/src9/386/mbr $disk/data
@{echo a p1 '$-1' '$'
echo t p1 ESP
echo A p1
echo w
echo q} | disk/fdisk -b $disk/data
disk/format -b /n/src9/386/pbs -xd -t hard $disk/esp
s = esp.$pid
dossrv -f $disk/esp $s
mount -c /srv/$s /n/esp
cp /n/src9/386/9boothyb /n/esp/9bootfat
mkdir /n/esp/efi
mkdir /n/esp/efi/boot
cp /n/src9/386/boot*.efi /n/esp/efi/boot
unmount /n/esp
rm -f /srv/$s
}}
%.disk:D: $proto $fatfiles
@{rfork n
mk binds
rm -f $target
dd -if /dev/zero -of $target -bs 1048576 -oseek $mb -count 1
s=`{basename $target}
disk/partfs -m /n/$s $target
d=/n/$s/sdXX
disk/mbr $d/data
disk/fdisk -baw $d/data
disk/prep -bw -a^(9fat nvram fs) $d/plan9
disk/format -d -r 2 $d/9fat $fatfiles
hjfs -f $d/fs -n $s -S -r
{
echo echo on
echo create /dist sys sys 775 d
echo create /usr sys sys 775 d
user=glenda
echo newuser $user
echo newuser adm +$user
echo newuser sys +$user
echo newuser upas +$user
echo echo off
sleep 1
} >> /srv/$s.cmd
mount -N -c /srv/$s /n/newfs
disk/mkfs -z 4096 -U -s /n/src9 -d /n/newfs $proto
echo sync >> /srv/$s.cmd
echo halt >> /srv/$s.cmd
while(test -e /srv/$s.cmd) sleep 1
exit ''
}
binds:V:
test -d /n/src9/.hg && bind /n/src9 /n/src9/dist/plan9front
bind cfg /n/src9/cfg
bind mail/lib /n/src9/mail/lib
bind ndb /n/src9/lib/ndb
bind -a adm/timezone /n/src9/adm/timezone
bind usr /n/src9/usr