1CONF=pi 2CONFLIST=pi picpu pifat 3EXTRACOPIES= 4 5loadaddr=0x80008000 6 7objtype=arm 8</$objtype/mkfile 9p=9 10 11DEVS=`{rc ../port/mkdevlist $CONF} 12 13PORT=\ 14 alarm.$O\ 15 alloc.$O\ 16 allocb.$O\ 17 auth.$O\ 18 cache.$O\ 19 chan.$O\ 20 dev.$O\ 21 edf.$O\ 22 fault.$O\ 23 mul64fract.$O\ 24 page.$O\ 25 parse.$O\ 26 pgrp.$O\ 27 portclock.$O\ 28 print.$O\ 29 proc.$O\ 30 qio.$O\ 31 qlock.$O\ 32 rdb.$O\ 33 rebootcmd.$O\ 34 segment.$O\ 35 swap.$O\ 36 syscallfmt.$O\ 37 sysfile.$O\ 38 sysproc.$O\ 39 taslock.$O\ 40 tod.$O\ 41 xalloc.$O\ 42 43OBJ=\ 44 l.$O\ 45 lexception.$O\ 46 lproc.$O\ 47 arch.$O\ 48 clock.$O\ 49 fpi.$O\ 50 fpiarm.$O\ 51 fpimem.$O\ 52 main.$O\ 53 mmu.$O\ 54 random.$O\ 55 syscall.$O\ 56 trap.$O\ 57 $CONF.root.$O\ 58 $CONF.rootc.$O\ 59 $DEVS\ 60 $PORT\ 61 62# HFILES= 63 64LIB=\ 65 /$objtype/lib/libmemlayer.a\ 66 /$objtype/lib/libmemdraw.a\ 67 /$objtype/lib/libdraw.a\ 68 /$objtype/lib/libip.a\ 69 /$objtype/lib/libsec.a\ 70 /$objtype/lib/libmp.a\ 71 /$objtype/lib/libc.a\ 72 739:V: $p$CONF s$p$CONF 74 75$p$CONF:DQ: $CONF.c $OBJ $LIB mkfile 76 $CC $CFLAGS '-DKERNDATE='`{date -n} $CONF.c 77 echo '# linking raw kernel' # H6: no headers, data segment aligned 78 $LD -l -o $target -H6 -R4096 -T$loadaddr $OBJ $CONF.$O $LIB 79 80s$p$CONF:DQ: $CONF.$O $OBJ $LIB 81 echo '# linking kernel with symbols' 82 $LD -l -o $target -R4096 -T$loadaddr $OBJ $CONF.$O $LIB 83 size $target 84 85$p$CONF.gz:D: $p$CONF 86 gzip -9 <$p$CONF >$target 87 88$OBJ: $HFILES 89 90install:V: /$objtype/$p$CONF 91 92/$objtype/$p$CONF:D: $p$CONF s$p$CONF 93 cp -x $p$CONF s$p$CONF /$objtype/ & 94 for(i in $EXTRACOPIES) 95 { 9fs $i && cp $p$CONF s$p$CONF /n/$i/$objtype && echo -n $i... & } 96 wait 97 echo 98 touch $target 99 100<../boot/bootmkfile 101<../port/portmkfile 102<|../port/mkbootrules $CONF 103 104arch.$O clock.$O fpiarm.$O main.$O mmu.$O screen.$O syscall.$O trap.$O: \ 105 /$objtype/include/ureg.h 106 107archbcm.$O devether.$0: etherif.h ../port/netif.h 108archbcm.$O: ../port/flashif.h 109fpi.$O fpiarm.$O fpimem.$O: ../port/fpi.h 110l.$O lexception.$O lproc.$O mmu.$O: arm.s mem.h 111main.$O: errstr.h init.h reboot.h 112devmouse.$O mouse.$O screen.$O: screen.h 113devusb.$O: ../port/usb.h 114usbehci.$O usbohci.$O usbuhci.$O: ../port/usb.h usbehci.h uncached.h 115 116init.h:D: ../port/initcode.c init9.s 117 $CC ../port/initcode.c 118 $AS init9.s 119 $LD -l -R1 -s -o init.out init9.$O initcode.$O /$objtype/lib/libc.a 120 {echo 'uchar initcode[]={' 121 xd -1x <init.out | 122 sed -e 's/^[0-9a-f]+ //' -e 's/ ([0-9a-f][0-9a-f])/0x\1,/g' 123 echo '};'} > init.h 124 125reboot.h:D: rebootcode.s arm.s arm.h mem.h 126 $AS rebootcode.s 127 # -lc is only for memmove. -T arg is PADDR(REBOOTADDR) 128 $LD -l -s -T0x3400 -R4 -o reboot.out rebootcode.$O -lc 129 {echo 'uchar rebootcode[]={' 130 xd -1x reboot.out | 131 sed -e '1,2d' -e 's/^[0-9a-f]+ //' -e 's/ ([0-9a-f][0-9a-f])/0x\1,/g' 132 echo '};'} > reboot.h 133