fe 5.6 KB

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