mkfile 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. CONF=plug
  2. CONFLIST=plug
  3. # allegedly u-boot uses the bottom 8MB (up to 0x800000)
  4. # so avoid that
  5. loadaddr=0x60800000
  6. objtype=arm
  7. </$objtype/mkfile
  8. p=9
  9. DEVS=`{rc ../port/mkdevlist $CONF}
  10. PORT=\
  11. alarm.$O\
  12. alloc.$O\
  13. allocb.$O\
  14. auth.$O\
  15. cache.$O\
  16. chan.$O\
  17. dev.$O\
  18. edf.$O\
  19. fault.$O\
  20. latin1.$O\
  21. mul64fract.$O\
  22. rebootcmd.$O\
  23. page.$O\
  24. parse.$O\
  25. pgrp.$O\
  26. portclock.$O\
  27. print.$O\
  28. proc.$O\
  29. qio.$O\
  30. qlock.$O\
  31. segment.$O\
  32. swap.$O\
  33. syscallfmt.$O\
  34. sysfile.$O\
  35. sysproc.$O\
  36. taslock.$O\
  37. tod.$O\
  38. xalloc.$O\
  39. OBJ=\
  40. l.$O\
  41. lexception.$O\
  42. lproc.$O\
  43. arch.$O\
  44. cga.$O\
  45. clock.$O\
  46. fpi.$O\
  47. fpiarm.$O\
  48. fpimem.$O\
  49. main.$O\
  50. mmu.$O\
  51. random.$O\
  52. trap.$O\
  53. $CONF.root.$O\
  54. $CONF.rootc.$O\
  55. $DEVS\
  56. $PORT\
  57. # HFILES=
  58. LIB=\
  59. /$objtype/lib/libmemlayer.a\
  60. /$objtype/lib/libmemdraw.a\
  61. /$objtype/lib/libdraw.a\
  62. /$objtype/lib/libip.a\
  63. /$objtype/lib/libsec.a\
  64. /$objtype/lib/libc.a\
  65. 9:V: $p$CONF s$p$CONF
  66. $p$CONF:DQ: $CONF.c $OBJ $LIB mkfile
  67. $CC $CFLAGS '-DKERNDATE='`{date -n} $CONF.c
  68. echo '# linking raw kernel'
  69. # sleep 1 # avoid relinking later
  70. $LD -o $target -H0 -R4096 -T$loadaddr -l $OBJ $CONF.$O $LIB
  71. s$p$CONF:DQ: $CONF.$O $OBJ $LIB
  72. echo '# linking kernel with symbols'
  73. # sleep 1 # avoid relinking later
  74. $LD -o $target -R4096 -T$loadaddr -l $OBJ $CONF.$O $LIB
  75. size $target
  76. $p$CONF.gz:D: $p$CONF
  77. gzip -9 <$p$CONF >$target
  78. $OBJ: $HFILES
  79. install:V: /$objtype/$p$CONF
  80. install-in-flash:V: /$objtype/$p$CONF paqdisk
  81. plug.flash.cfg
  82. echo erase all >/dev/flash/kernelctl
  83. cp /$objtype/$p$CONF /dev/flash/kernel
  84. echo erase all >/dev/flash/plan9ctl
  85. cp paqdisk /dev/flash/plan9
  86. /$objtype/$p$CONF:D: $p$CONF s$p$CONF
  87. cp -x $p$CONF s$p$CONF /$objtype &
  88. { 9fs lookout && cp -x $p$CONF s$p$CONF /n/lookout/$objtype } &
  89. # { 9fs piestand && cp -x $p$CONF s$p$CONF /n/piestand/$objtype } &
  90. wait
  91. touch $target
  92. paqdisk:
  93. rm -fr armpaq
  94. mkdir armpaq
  95. cd armpaq
  96. disk/mkfs -d . /sys/lib/sysconfig/proto/armpaqproto
  97. mkpaqfs -o ../paqdisk
  98. cd ..
  99. <../boot/bootmkfile
  100. <../port/portmkfile
  101. <|../port/mkbootrules $CONF
  102. # CFLAGS= -I. -I../port $CFLAGS # hack to compile private sysproc.c (e.g.)
  103. arch.$O clock.$O fpiarm.$O main.$O mmu.$O screen.$O sdscsi.$O syscall.$O \
  104. trap.$O: /$objtype/include/ureg.h
  105. archkw.$O devether.$O ether1116.$O ethermii.$O: \
  106. etherif.h ethermii.h ../port/netif.h
  107. archkw.$O devflash.$O flashkw.$O: ../port/flashif.h
  108. fpi.$O fpiarm.$O fpimem.$O: fpi.h
  109. l.$O lexception.$O lproc.$O mmu.$O: arm.s arm.h mem.h
  110. main.$O: errstr.h init.h reboot.h
  111. mouse.$O: screen.h
  112. devusb.$O: ../port/usb.h
  113. usbehci.$O usbohci.$O usbuhci.$O: ../port/usb.h usbehci.h uncached.h
  114. init.h:D: ../port/initcode.c init9.s
  115. $CC ../port/initcode.c
  116. $AS init9.s
  117. $LD -l -R1 -s -o init.out init9.$O initcode.$O /$objtype/lib/libc.a
  118. {echo 'uchar initcode[]={'
  119. xd -1x <init.out |
  120. sed -e 's/^[0-9a-f]+ //' -e 's/ ([0-9a-f][0-9a-f])/0x\1,/g'
  121. echo '};'} > init.h
  122. reboot.h:D: rebootcode.s arm.s arm.h mem.h
  123. $AS rebootcode.s
  124. # -lc is only for memmove. -T arg is PADDR(REBOOTADDR)
  125. $LD -l -a -s -T0x100 -R4 -o reboot.out rebootcode.$O -lc >reboot.list
  126. {echo 'uchar rebootcode[]={'
  127. xd -1x reboot.out |
  128. sed -e '1,2d' -e 's/^[0-9a-f]+ //' -e 's/ ([0-9a-f][0-9a-f])/0x\1,/g'
  129. echo '};'} > reboot.h
  130. errstr.h:D: ../port/mkerrstr ../port/error.h
  131. rc ../port/mkerrstr > errstr.h
  132. plug.clean:
  133. rm -rf $p$CONF s$p$CONF armpaq paqdisk $CONF.c boot$CONF.c ../boot/libboot.a5