diff options
Diffstat (limited to 'sys/src/9/xen/mkfile')
| -rw-r--r-- | sys/src/9/xen/mkfile | 188 |
1 files changed, 188 insertions, 0 deletions
diff --git a/sys/src/9/xen/mkfile b/sys/src/9/xen/mkfile new file mode 100644 index 000000000..560efa422 --- /dev/null +++ b/sys/src/9/xen/mkfile @@ -0,0 +1,188 @@ +CONF=xenpcf +CONFLIST=xenpcf + +objtype=386 +</$objtype/mkfile +p=9 + +KTZERO=0x80010000 +KZERO=0x80000000 +KPZERO=0x10000 +PAE=yes + +DEVS=`{rc ../port/mkdevlist $CONF} + +PORT=\ + alarm.$O\ + alloc.$O\ + allocb.$O\ + auth.$O\ + cache.$O\ + chan.$O\ + dev.$O\ + edf.$O\ + fault.$O\ + page.$O\ + parse.$O\ + pgrp.$O\ + portclock.$O\ + print.$O\ + proc.$O\ + qio.$O\ + qlock.$O\ + rebootcmd.$O\ + segment.$O\ + swap.$O\ + sysfile.$O\ + sysproc.$O\ + taslock.$O\ + tod.$O\ + xalloc.$O\ + +XEN=\ + xengrant.$O\ + xentimer.$O\ + xensystem.$O\ + +SCHED=`{ls -p xen-public/sched*.h >[2]/dev/null} +ARCH=`{test -d xen-public/arch-x86 && echo arch-x86/xen-x86_32.h arch-x86/xen.h || echo arch-x86_32.h } + +XENHEADERS=\ + $ARCH\ + xen.h\ + event_channel.h\ + grant_table.h\ + memory.h\ + physdev.h\ + $SCHED\ + io/ring.h\ + io/blkif.h\ + io/console.h\ + io/netif.h\ + io/xenbus.h\ + io/xs_wire.h\ + +OBJ=\ + l.$O\ + plan9l.$O\ + xen.$O\ + main.$O\ + mmu.$O\ + random.$O\ + rdb.$O\ + trap.$O\ + $CONF.root.$O\ + $CONF.rootc.$O\ + $DEVS\ + $PORT\ + $XEN\ + +LIB=\ + /$objtype/lib/libmemlayer.a\ + /$objtype/lib/libmemdraw.a\ + /$objtype/lib/libdraw.a\ + /$objtype/lib/libip.a\ + /$objtype/lib/libsec.a\ + /$objtype/lib/libmp.a\ + /$objtype/lib/libc.a\ + +ETHER=`{echo devether.c ether*.c | sed 's/\.c/.'$O'/g'} +VGA=`{echo devvga.c screen.c vga*.c | sed 's/\.c/.'$O'/g'} +SDEV=`{echo devsd.c sd*.c | sed 's/\.c/.'$O'/g'} + +PAE=`{echo $PAE | sed 's/yes/yes[extended-cr3]/'} +XENELF='LOADER=generic,XEN_VER=xen-3.0,ELF_PADDR_OFFSET=0,VIRT_BASE='$KZERO',VIRT_ENTRY='$KTZERO',PAE='$PAE + +#$p$CONF: $CONF.c $OBJ $LIB xenbin +# $CC $CFLAGS '-DKERNDATE='`{date -n} $CONF.c +# $LD -o $target.tmp -T$KTZERO -l $OBJ $CONF.$O $LIB +# ./xenbin <$target.tmp >$target +# rm $target.tmp +# size $target + +$p$CONF: $CONF.c $OBJ $LIB xenelf + $CC $CFLAGS '-DKERNDATE='`{date -n} $CONF.c + $LD -o $target.elf -H5 -T$KTZERO -P$KPZERO -l $OBJ $CONF.$O $LIB + ./xenelf $target.elf $target __xen_guest ''$XENELF'' + size $target + +$p$CONF.gz: $p$CONF + #strip -o /fd/1 $p$CONF | gzip -9 > $p$CONF.gz + gzip -9 $p$CONF > $p$CONF.gz + +install:V: $p$CONF $p$CONF.gz + cp $p$CONF $p$CONF.gz /$objtype/ + # import lookout / /n/lookout && cp $p$CONF $p$CONF.gz /n/lookout/$objtype/ + +# copies generated by the rule below +PCHEADERS=uncached.h etherif.h ethermii.h mp.h io.h + +REPCH=`{echo $PCHEADERS | sed 's/\.h//g; s/ /|/g'} +^($REPCH)\.h:R: '../pc/\1.h' + cp $prereq . + +REPCC=`{../port/mkfilelist ../pc} +^($REPCC)\.$O:R: '../pc/\1.c' + $CC $CFLAGS -I. -. ../pc/$stem1.c + +<../boot/bootmkfile +<../port/portmkfile +<|../port/mkbootrules $CONF + +ptclbsum386.$O: ../pc/ptclbsum386.s + $AS $AFLAGS ../pc/ptclbsum386.s + +# we inherited these.. revisit. +$ETHER: etherif.h ../port/netif.h +$SDEV: ../port/sd.h +main.$O: init.h reboot.h +trap.$O: /sys/include/tos.h + +%.$O: /$objtype/include/u.h ../port/lib.h mem.h dat.h fns.h io.h ../port/error.h ../port/portdat.h ../port/portfns.h xendat.h xendefs.h + +xendefs.h: xendat.h + grep '^#define[ ]+FLAT_' xendat.h >$target + +xendat.h: + { echo '#define __i386__ __i386__'; \ + echo '#define __XEN_INTERFACE_VERSION__ 0x00030201'; \ + echo '#define XEN_GUEST_HANDLE_00030205(type) type *'; \ + cat xen-public/^($XENHEADERS) } | \ + ./cppx > $target + +init.h: ../port/initcode.c ../pc/init9.c + $CC ../port/initcode.c + $CC ../pc/init9.c + $LD -l -R1 -o init.out init9.$O initcode.$O /386/lib/libc.a + {echo 'uchar initcode[]={' + strip -o /fd/1 init.out | xd -1x | + sed -e 's/^[0-9a-f]+ //' -e 's/ ([0-9a-f][0-9a-f])/0x\1,/g' + echo '};'} > init.h + +reboot.h: ../pc/rebootcode.s + $AS ../pc/rebootcode.s + $LD -l -s -T0x1000 -R4 -o reboot.out rebootcode.$O + {echo 'uchar rebootcode[]={' + xd -1x reboot.out | + sed -e '1,2d' -e 's/^[0-9a-f]+ //' -e 's/ ([0-9a-f][0-9a-f])/0x\1,/g' + echo '};'} > reboot.h + +acid:V: + $CC -a -w main.c>acid + +dpart: dpart.$O + $LD -o dpart dpart.$O + +xenstore: xenstore.$O + $LD -o xenstore xenstore.$O + +# XXX this is wrong if we're cross-compiling +xenbin: xenbin.$O + $LD -o xenbin xenbin.$O +xenelf: xenelf.$O + $LD -o xenelf xenelf.$O + +%.clean:V: + rm -f $stem.c [9bz]$stem [9bz]$stem.gz 9$stem.elf boot$stem.* reboot.h init.h xendat.h xendefs.h $PCHEADERS dpart xenbin xenelf xenstore + + |
