cd $home 9fs sources cp /n/sources/contrib/forsyth/9c.tgz . tar xzvf 9c.tgz 9c=$home/9c # for(i in `{du -a $9c | awk '{print $2}'}){if(test -f $i) echo $i} # fix gc.h sed 's/void cas/void casf/' < $9c/sys/src/cmd/9c/gc.h > $9c/sys/src/cmd/9c/gc.h.new && mv $9c/sys/src/cmd/9c/gc.h.new $9c/sys/src/cmd/9c/gc.h # fix mkfile.proto pattern='s/^OS=.*$/OS=5689qv/ s/^CPUS=.*$/CPUS=arm amd64 386 power64 power mips/' cp /sys/src/mkfile.proto $9c/sys/src sed -e $pattern < $9c/sys/src/mkfile.proto > $9c/sys/src/mkfile.proto.new && mv $9c/sys/src/mkfile.proto.new $9c/sys/src/mkfile.proto # fix old file rm $9c/sys/src/libmp/power64/mkfile.old # files and directories newdir=(\ /power64/include/ape\ /sys/src/libc/power64\ /sys/src/libmp/power64\ /sys/src/libsec/power64\ /sys/src/libmach/9c\ /sys/src/cmd/9c\ /sys/src/cmd/9l\ /sys/src/cmd/9a\ ) newfile=(\ /sys/src/libthread/power64.c\ /sys/src/libthread/xincpower64.s\ ) file=(\ /sys/src/mkfile.proto\ ) emptydir=(\ /acme/bin/power64\ /power64/bin/ape\ /power64/bin/ape\ /power64/bin/auth\ /power64/bin/aux\ /power64/bin/bitsy\ /power64/bin/dial\ /power64/bin/disk\ /power64/bin/fossil\ /power64/bin/fs\ /power64/bin/games\ /power64/bin/ip\ /power64/bin/ip/httpd\ /power64/bin/ndb\ /power64/bin/replica\ /power64/bin/upas\ /power64/bin/usb\ /power64/bin/venti\ /power64/lib/ape\ ) # prepare for(i in $newdir) { rm -rf $i mkdir $i bind -c $9c^$i $i } for(i in $newfile) { rm -f $i touch $i bind $9c^$i $i } for(i in $file) { bind $9c^$i $i } for(i in $emptydir) { rm -rf $i mkdir -p $i } # build power64 for(i in /sys/src/cmd/9?) {cd $i && mk install && mk clean} cd /sys/src && objtype=power64 {mk nuke && mk install && mk clean} # generate patch (personal use) rm -f /tmp/9c.diff for(i in $newdir $newfile $file) sdiff $i | night >> /tmp/9c.diff mv /tmp/9c.diff /n/web/www.9legacy.org/9legacy/patch # clean for(i in $newdir $newfile $emptydir) { unmount $i rm -rf $i } # bind only for(i in $newdir) { bind -c $nix^$i $i } for(i in $newfile $file) { bind $nix^$i $i }