mkfile 2.6 KB

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