kernel.sl 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. %
  2. % KERNEL.SL - Generate scripts for building PSL kernel
  3. %
  4. % Author: Eric Benson
  5. % Symbolic Computation Group
  6. % Computer Science Dept.
  7. % University of Utah
  8. % Date: 26 May 1982
  9. % Copyright (c) 1982 University of Utah
  10. %
  11. % <PSL.UTIL>KERNEL.SL.2, 20-Dec-82 11:21:03, Edit by BENSON
  12. % Added kernel-header and kernel-trailer
  13. % <PSL.UTIL>KERNEL.SL.9, 7-Jun-82 12:22:48, Edit by BENSON
  14. % Changed kernel-file to all-kernel-script-name* and all-kernel-script-format*
  15. % <PSL.UTIL>KERNEL.SL.8, 6-Jun-82 05:23:40, Edit by GRISS
  16. % Added kernel-file
  17. (compiletime (load useful))
  18. (compiletime (flag '(build-link-script build-kernel-file
  19. build-init-file build-file-aux
  20. insert-file-names insert-file-names-aux)
  21. 'InternalFunction))
  22. (fluid '(kernel-name-list*
  23. command-file-name*
  24. command-file-format*
  25. init-file-name*
  26. init-file-format*
  27. all-kernel-script-name*
  28. all-kernel-script-header*
  29. all-kernel-script-format*
  30. all-kernel-script-trailer*
  31. code-object-file-name*
  32. data-object-file-name*
  33. link-script-name*
  34. link-script-format*
  35. script-file-name-separator*))
  36. (de kernel (kernel-name-list*)
  37. (let ((*lower t)) % For the benefit of Unix
  38. (build-command-files kernel-name-list*)
  39. % MAIN is not included in all-kernel-script
  40. (build-kernel-file (delete 'main kernel-name-list*))
  41. (build-link-script)
  42. (build-init-file)))
  43. (de build-command-files (k-list)
  44. (unless (null k-list)
  45. (let ((name-stem (first k-list)))
  46. (let ((f (wrs (open (bldmsg command-file-name* name-stem)
  47. 'output))))
  48. (printf command-file-format* name-stem
  49. name-stem
  50. name-stem
  51. name-stem
  52. name-stem
  53. name-stem
  54. name-stem
  55. name-stem
  56. name-stem
  57. name-stem
  58. name-stem
  59. name-stem
  60. name-stem)
  61. (close (wrs f))))
  62. (build-command-files (rest k-list))))
  63. (de build-link-script ()
  64. (let ((f (wrs (open link-script-name* 'output))))
  65. (linelength 1000)
  66. (printf link-script-format* '(insert-link-file-names)
  67. '(insert-link-file-names)
  68. '(insert-link-file-names)
  69. '(insert-link-file-names)
  70. '(insert-link-file-names)
  71. '(insert-link-file-names))
  72. (close (wrs f))))
  73. (de build-kernel-file (n-list)
  74. (let ((f (wrs (open all-kernel-script-name* 'output))))
  75. (linelength 1000)
  76. (unless (null all-kernel-script-header*)
  77. (prin2 all-kernel-script-header*))
  78. (build-file-aux n-list all-kernel-script-format*)
  79. (unless (null all-kernel-script-trailer*)
  80. (prin2 all-kernel-script-trailer*))
  81. (close (wrs f))))
  82. (de insert-link-file-names ()
  83. (insert-file-names kernel-name-list* code-object-file-name*)
  84. (prin2 script-file-name-separator*)
  85. (insert-file-names kernel-name-list* data-object-file-name*))
  86. (de insert-file-names (n-list format)
  87. (printf format (first n-list))
  88. (insert-file-names-aux (rest n-list) format))
  89. (de insert-file-names-aux (n-list format)
  90. (unless (null n-list)
  91. (prin2 script-file-name-separator*)
  92. (printf format (first n-list))
  93. (insert-file-names-aux (rest n-list) format)))
  94. (de build-init-file ()
  95. (let ((f (wrs (open init-file-name* 'output))))
  96. (build-file-aux kernel-name-list* init-file-format*)
  97. (close (wrs f))))
  98. (de build-file-aux (n-list format)
  99. (unless (null n-list)
  100. (printf format (first n-list))
  101. (build-file-aux (rest n-list) format)))