fe 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254
  1. # (c) copyright 1983 by the Vrije Universiteit, Amsterdam, The Netherlands.
  2. # $Id$
  3. #
  4. # Don't generate line updating code by default (i.e.: -L flag provided to cem).
  5. # To put it on again: use -NL
  6. var LFLAG=-L
  7. var C_INCLUDES=-I{EM}/include/_tail_cc
  8. var ANSI_C_INCLUDES=-I{EM}/include/tail_ac
  9. callname ack
  10. name cpp
  11. # no from, this is a preprocessor
  12. to .i
  13. program {EM}/lib.bin/cpp{ANSI_C?}
  14. mapflag -I* CPP_F={CPP_F?} -I*
  15. mapflag -U* CPP_F={CPP_F?} -U*
  16. mapflag -D* CPP_F={CPP_F?} -D*
  17. mapflag -P CPP_F={CPP_F?} -P
  18. mapflag -C CPP_F={CPP_F?} -C
  19. mapflag -wo CPP_F={CPP_F?} -o
  20. mapflag -ansi ANSI_C=.ansi
  21. args {CPP_F?} ({SUFFIX?}:.ocm=-I{EM}/include/occam) \
  22. -D__{NAME} \
  23. -D__ACK \
  24. {SYSINCLUDES?} \
  25. ({ANSI_C?}:.ansi={ANSI_C_INCLUDES}) \
  26. {C_INCLUDES} \
  27. {INCLUDES?} \
  28. ({ANSI_C?.xx}:.xx=-D{NAME} \
  29. -DEM_WSIZE={w} -DEM_PSIZE={p} \
  30. -DEM_SSIZE={s} -DEM_LSIZE={l} -DEM_FSIZE={f} -DEM_DSIZE={d}) \
  31. -D_EM_WSIZE={w} -D_EM_PSIZE={p} \
  32. -D_EM_SSIZE={s} -D_EM_LSIZE={l} -D_EM_FSIZE={f} -D_EM_DSIZE={d} \
  33. <
  34. stdout
  35. prep is
  36. end
  37. name f77
  38. from .f
  39. to .c
  40. program {EM}/lib.bin/f2c
  41. mapflag -ansi F2_F={F2_F?} -A
  42. mapflag -w* F2_F={F2_F?} -w*
  43. args \
  44. {F2_F?}
  45. stdin
  46. stdout
  47. prep cond
  48. rts .f
  49. need .f
  50. callname f77
  51. callname f2c
  52. end
  53. name cem
  54. from .c
  55. to .k
  56. program {EM}/lib.bin/em_cemcom{ANSI_C?}
  57. mapflag -ansi ANSI=ansi
  58. # mapflag -I* CPP_F={CPP_F?} -I*
  59. # mapflag -U* CPP_F={CPP_F?} -U*
  60. # mapflag -D* CPP_F={CPP_F?} -D*
  61. mapflag -M* CEM_F={CEM_F?} -M*
  62. mapflag -L CEM_F={CEM_F?} -L
  63. mapflag -A CEM_F={CEM_F?} -A
  64. mapflag -NL LFLAG=
  65. mapflag -KR CEM_F={CEM_F?} -R
  66. mapflag -w CEM_F={CEM_F?} -w
  67. mapflag -wa CEM_F={CEM_F?} -a
  68. mapflag -wo CEM_F={CEM_F?} -o
  69. mapflag -ws CEM_F={CEM_F?} -s
  70. mapflag -g* CEM_F={CEM_F?} -g
  71. mapflag -p CEM_F={CEM_F?} -p
  72. mapflag -V* CEM_F={CEM_F?} -V*
  73. rts .c
  74. need .c
  75. args \
  76. {CPP_F?} \
  77. -D__{NAME} \
  78. -D__ACK \
  79. {SYSINCLUDES?} \
  80. ({ANSI_C?}:.ansi={ANSI_C_INCLUDES}) \
  81. {C_INCLUDES} \
  82. {INCLUDES?} \
  83. ({ANSI_C?.xx}:.xx=-D{NAME} \
  84. -DEM_WSIZE={w} -DEM_PSIZE={p} \
  85. -DEM_SSIZE={s} -DEM_LSIZE={l} -DEM_FSIZE={f} -DEM_DSIZE={d}) \
  86. -D_EM_WSIZE={w} -D_EM_PSIZE={p} \
  87. -D_EM_SSIZE={s} -D_EM_LSIZE={l} -D_EM_FSIZE={f} -D_EM_DSIZE={d} \
  88. -Vw{w}.{w}i{w}.{w}p{p}.{w}f{f}.{w}s{s}.{s}l{l}.{w}d{d}.{w} \
  89. {CC_ALIGN?} \
  90. {CEM_F?} {LFLAG?} < >
  91. callname acc
  92. callname cc
  93. end
  94. name pc
  95. from .p
  96. to .k
  97. program {EM}/lib.bin/em_pc
  98. mapflag -L PC_F={PC_F?} -L
  99. # mapflag -s PC_F={PC_F?} -s
  100. mapflag -_ PC_F={PC_F?} -U
  101. mapflag -w PC_F={PC_F?} -w
  102. mapflag -V* PC_F={PC_F?} -V*
  103. mapflag -M* PC_F={PC_F?} -M*
  104. mapflag -g* PC_F={PC_F?} -g
  105. # mapflag -i* PC_F={PC_F?} -i*
  106. mapflag -A PC_F={PC_F?} -A
  107. # mapflag -R PC_F={PC_F?} -R
  108. mapflag --* PC_F={PC_F?} -*
  109. #range checks can only be disabled through comments
  110. args \
  111. -Vw{w}.{w}i{w}.{w}l{l}.{w}p{p}.{w}f{d}.{w}S{w}.{w} \
  112. {PC_F?} < > {SOURCE}
  113. prep cond
  114. rts .p
  115. need .p
  116. callname apc
  117. callname pc
  118. end
  119. name m2
  120. from .mod.def
  121. to .k
  122. program {EM}/lib.bin/em_m2
  123. mapflag -I* M2_INCL={M2_INCL?} -I*
  124. mapflag -L M2_F={M2_F?} -L
  125. mapflag -g* M2_F={M2_F?} -g*
  126. mapflag -w* M2_F={M2_F?} -w*
  127. mapflag -W* M2_F={M2_F?} -W*
  128. mapflag -_ M2_F={M2_F?} -U
  129. mapflag -M* M2_F={M2_F?} -M*
  130. mapflag -x M2_F={M2_F?} -x
  131. mapflag -Xs M2_F={M2_F?} -s
  132. mapflag -V* M2_F={M2_F?} -V*
  133. mapflag --* M2_F={M2_F?} -*
  134. args \
  135. {M2_INCL?} -I{EM}/lib/m2 {M2SYSLIB?} \
  136. -Vw{w}.{w}i{w}.{w}p{p}.{w}l{l}.{w}f{f}.{w}d{d}.{w} \
  137. {M2_ALIGN?} {M2_F?} < >
  138. prep cond
  139. rts .mod
  140. need .mod
  141. callname m2
  142. end
  143. name ocm
  144. from .ocm
  145. to .k
  146. program {EM}/lib.bin/em_occam
  147. mapflag -L OCM_F={OCM_F?} -L
  148. mapflag -V* OCM_F={OCM_F?} -V*
  149. args -Vw{w}p{p}l{l} {OCM_F?}
  150. stdin
  151. stdout
  152. rts .ocm
  153. need .ocm
  154. prep cond
  155. callname ocm
  156. end
  157. name abc
  158. from .b
  159. to .k
  160. program {EM}/lib.bin/em_bem
  161. mapflag -h ABC_F={ABC_F?} -h
  162. mapflag -w ABC_F={ABC_F?} -w
  163. mapflag -L ABC_F={ABC_F?} -L
  164. mapflag -E ABC_F={ABC_F?} -E
  165. # mapflag -d ABC_F={ABC_F?} -d
  166. args -Vw{w}p{p}f{d} {ABC_F?} < > {SOURCE}
  167. prep cond
  168. rts .b
  169. need .b
  170. callname abc
  171. end
  172. var A68INIT={EM}/lib.bin/em_a68s_init
  173. name a68s
  174. from .8.a68
  175. to .k
  176. program {EM}/lib.bin/em_a68s{w}{p}
  177. mapflag -PA* A68INIT=*
  178. args < > {SOURCE}.lst {A68INIT}{w}{p} /dev/null
  179. prep cond
  180. rts .8
  181. need .8
  182. callname a68s
  183. end
  184. name encode
  185. from .e
  186. to .k
  187. program {EM}/lib.bin/em_encode
  188. args <
  189. prep cond
  190. stdout
  191. end
  192. name opt
  193. from .k
  194. to .m
  195. program {EM}/lib.bin/em_opt
  196. mapflag -LIB OPT_F={OPT_F?} -L
  197. # when running the global optimizer, no multiplication optimization here.
  198. mapflag -O2 OPT2_F=-m0
  199. mapflag -O3 OPT2_F=-m0
  200. mapflag -O4 OPT2_F=-m0
  201. args {OPT_F?} {MACHOPT_F?} {OPT2_F?} <
  202. stdout
  203. optimizer
  204. end
  205. name ego
  206. from .m.ma
  207. to .gk
  208. program {EM}/lib.bin/em_ego
  209. mapflag -EGO-* EGO_F={EGO_F?} -*
  210. # The following lines are obsolete, but here for backwards compatibility.
  211. # They should be removed some day.
  212. mapflag -IL* EGO_F={EGO_F?} -IL*
  213. mapflag -CS* EGO_F={EGO_F?} -CS*
  214. mapflag -SR* EGO_F={EGO_F?} -SR*
  215. mapflag -UD* EGO_F={EGO_F?} -UD*
  216. mapflag -LV* EGO_F={EGO_F?} -LV*
  217. mapflag -SA* EGO_F={EGO_F?} -RA*
  218. mapflag -SP* EGO_F={EGO_F?} -SP*
  219. mapflag -BO* EGO_F={EGO_F?} -BO*
  220. mapflag -CJ* EGO_F={EGO_F?} -CJ*
  221. mapflag -EV EGO_F={EGO_F?} -V
  222. # End of obsolete lines
  223. mapflag -Q* EGO_F={EGO_F?} -Q*
  224. mapflag -T* EGO_F={EGO_F?} -T*
  225. mapflag -S* EGO_F={EGO_F?} -S*
  226. mapflag -s* EGO_F={EGO_F?} -s*
  227. mapflag -a EGO_F={EGO_F?} -a
  228. mapflag -O* EGO_F={EGO_F?} -O*
  229. args \
  230. {EGO_F?} -P {EM}/lib.bin/ego \
  231. -M{EM}/lib.bin/ego/{M}descr <
  232. optimizer 2
  233. stdout
  234. combiner
  235. end
  236. name opt2
  237. # output of the global optimizer is processed by a stripped version
  238. # of the em peephole optimizer
  239. from .gk
  240. to .g
  241. program {EM}/lib.bin/em_opt2
  242. # mapflag -LIB OPT_F={OPT_F?} -L
  243. args {OPT_F?} {MACHOPT_F?} <
  244. optimizer
  245. stdout
  246. end
  247. name decode
  248. from .k.m.g.gk
  249. to .e
  250. program {EM}/lib.bin/em_decode
  251. args <
  252. stdout
  253. end