proto.make 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300
  1. # $Id$
  2. #PARAMS do not remove this line!
  3. SRC_DIR = $(SRC_HOME)/util/opt
  4. CFILES= $(SRC_DIR)/main.c $(SRC_DIR)/getline.c $(SRC_DIR)/lookup.c \
  5. $(SRC_DIR)/var.c $(SRC_DIR)/process.c $(SRC_DIR)/backward.c \
  6. $(SRC_DIR)/util.c $(SRC_DIR)/alloc.c $(SRC_DIR)/putline.c \
  7. $(SRC_DIR)/cleanup.c $(SRC_DIR)/peephole.c $(SRC_DIR)/flow.c \
  8. $(SRC_DIR)/reg.c $(SRC_DIR)/tes.c pop_push.c
  9. OFILES= main.$(SUF) getline.$(SUF) lookup.$(SUF) var.$(SUF) process.$(SUF) backward.$(SUF) util.$(SUF)\
  10. alloc.$(SUF) putline.$(SUF) cleanup.$(SUF) peephole.$(SUF) flow.$(SUF) tes.$(SUF) pop_push.$(SUF)
  11. ONOGLOB=regnoglob.$(SUF)
  12. OGLOB=regglob.$(SUF)
  13. LIBS= $(TARGET_HOME)/lib.bin/em_data.$(LIBSUF)
  14. ULIBS= $(UTIL_HOME)/lib.bin/em_data.$(ULIBSUF)
  15. INCLUDES=-I$(TARGET_HOME)/h -I$(SRC_DIR) -I.
  16. UINCLUDES=-I$(TARGET_HOME)/h -I$(SRC_DIR) -I.
  17. CFLAGS= -DNDEBUG $(INCLUDES) $(COPTIONS)
  18. UCFLAGS= -DNDEBUG $(INCLUDES) $(UCOPTIONS)
  19. LDFLAGS=$(LDOPTIONS)
  20. ULDFLAGS=$(ULDOPTIONS)
  21. LINTFLAGS=$(INCLUDES) -DNDEBUG -DNORCSID $(LINTOPTIONS)
  22. CPP=$(UTIL_HOME)/lib.bin/cpp
  23. all: opt opt2
  24. opt: $(OFILES) $(ONOGLOB) pattern.$(SUF) $(LIBS)
  25. $(CC) $(LDFLAGS) $(CFLAGS) $(OFILES) $(ONOGLOB) pattern.$(SUF) $(LIBS) -o opt
  26. opt2: $(OFILES) $(OGLOB) pattern.$(SUF) $(LIBS)
  27. $(CC) $(LDFLAGS) $(CFLAGS) $(OFILES) $(OGLOB) pattern.$(SUF) $(LIBS) -o opt2
  28. test: opt testopt
  29. testopt
  30. cmp: all
  31. -cmp opt $(TARGET_HOMTARGET_HOME)/lib.bin/em_opt
  32. -cmp opt2 $(TARGET_HOME)/lib.bin/em_opt2
  33. install:all
  34. cp opt $(TARGET_HOME)/lib.bin/em_opt
  35. cp opt2 $(TARGET_HOME)/lib.bin/em_opt2
  36. if [ $(DO_MACHINE_INDEP) = y ] ; \
  37. then mk_manpage $(SRC_DIR)/em_opt.6 $(TARGET_HOME) ; \
  38. fi
  39. pattern.c: $(SRC_DIR)/patterns mktab
  40. $(CPP) $(SRC_DIR)/patterns | mktab > pattern.c
  41. mktab: mktab.$(USUF) $(ULIBS)
  42. $(UCC) $(ULDFLAGS) mktab.$(USUF) $(ULIBS) -o mktab
  43. mktab.$(USUF): scan.c $(SRC_DIR)/optim.h $(SRC_DIR)/param.h $(SRC_DIR)/pattern.h $(SRC_DIR)/types.h mktab.c
  44. $(UCC) -c $(UCFLAGS) mktab.c
  45. mktab.c: $(SRC_DIR)/mktab.y
  46. yacc $(SRC_DIR)/mktab.y && mv y.tab.c mktab.c
  47. pop_push.c: $(SRC_HOME)/etc/em_table $(SRC_DIR)/pop_push.awk
  48. awk -f $(SRC_DIR)/pop_push.awk < $(SRC_HOME)/etc/em_table > pop_push.c
  49. regglob.c: $(SRC_DIR)/reg.c
  50. echo '#define GLOBAL_OPT' > regglob.c
  51. cat $(SRC_DIR)/reg.c >> regglob.c
  52. regnoglob.c: $(SRC_DIR)/reg.c
  53. cp $(SRC_DIR)/reg.c regnoglob.c
  54. depend: pattern.c pop_push.c regglob.c regnoglob.c
  55. rm_deps Makefile >Makefile.new
  56. for i in $(CFILES) pattern.c regglob.c regnoglob.c ; do \
  57. echo "`basename $$i .c`.$$(SUF): $$i" >> Makefile.new ; \
  58. echo ' $$(CC) -c $$(CFLAGS)' $$i >> Makefile.new ; \
  59. $(UTIL_HOME)/lib.bin/cpp -d $(INCLUDES) $$i | sed "s/^/`basename $$i .c`.$$(SUF): /" >> Makefile.new ; \
  60. done
  61. mv Makefile Makefile.old
  62. mv Makefile.new Makefile
  63. lint: $(CFILES) pattern.c
  64. $(LINT) $(LINTFLAGS) $(CFILES) pattern.c $(UTIL_HOME)/lib.bin/$(LINTPREF)em_data.$(LINTSUF)
  65. opr:
  66. make pr | opr
  67. pr:
  68. @pr -n $(SRC_DIR)/proto.make $(SRC_DIR)/*.h $(CFILES) $(SRC_DIR)/mktab.y $(SRC_DIR)/scan.l $(SRC_DIR)/patterns
  69. clean:
  70. rm -f *.$(SUF) opt mktab mktab.c scan.c pattern.c opt2 Out \
  71. pop_push.c regglob.c regnoglob.c *.old
  72. scan.c: $(SRC_DIR)/scan.l
  73. flex -st $(SRC_DIR)/scan.l > scan.c
  74. # the next lines are generated automatically
  75. #DEPENDENCIES
  76. main.$(SUF): $(SRC_DIR)/main.c
  77. $(CC) -c $(CFLAGS) $(SRC_DIR)/main.c
  78. main.$(SUF): $(SRC_DIR)/ext.h
  79. main.$(SUF): $(TARGET_HOME)/h/em_spec.h
  80. main.$(SUF): $(SRC_DIR)/alloc.h
  81. main.$(SUF): $(SRC_DIR)/tes.h
  82. main.$(SUF): $(SRC_DIR)/types.h
  83. main.$(SUF): $(SRC_DIR)/param.h
  84. getline.$(SUF): $(SRC_DIR)/getline.c
  85. $(CC) -c $(CFLAGS) $(SRC_DIR)/getline.c
  86. getline.$(SUF): $(SRC_DIR)/ext.h
  87. getline.$(SUF): $(TARGET_HOME)/h/em_mes.h
  88. getline.$(SUF): $(TARGET_HOME)/h/em_flag.h
  89. getline.$(SUF): $(TARGET_HOME)/h/em_pseu.h
  90. getline.$(SUF): $(TARGET_HOME)/h/em_spec.h
  91. getline.$(SUF): $(SRC_DIR)/proinf.h
  92. getline.$(SUF): $(SRC_DIR)/alloc.h
  93. getline.$(SUF): $(SRC_DIR)/lookup.h
  94. getline.$(SUF): $(SRC_DIR)/line.h
  95. getline.$(SUF): $(SRC_DIR)/tes.h
  96. getline.$(SUF): $(SRC_DIR)/types.h
  97. getline.$(SUF): $(SRC_DIR)/param.h
  98. lookup.$(SUF): $(SRC_DIR)/lookup.c
  99. $(CC) -c $(CFLAGS) $(SRC_DIR)/lookup.c
  100. lookup.$(SUF): $(SRC_DIR)/proinf.h
  101. lookup.$(SUF): $(SRC_DIR)/alloc.h
  102. lookup.$(SUF): $(SRC_DIR)/lookup.h
  103. lookup.$(SUF): $(SRC_DIR)/tes.h
  104. lookup.$(SUF): $(SRC_DIR)/types.h
  105. lookup.$(SUF): $(SRC_DIR)/param.h
  106. var.$(SUF): $(SRC_DIR)/var.c
  107. $(CC) -c $(CFLAGS) $(SRC_DIR)/var.c
  108. var.$(SUF): $(SRC_DIR)/proinf.h
  109. var.$(SUF): $(SRC_DIR)/lookup.h
  110. var.$(SUF): $(SRC_DIR)/tes.h
  111. var.$(SUF): $(SRC_DIR)/types.h
  112. var.$(SUF): $(SRC_DIR)/param.h
  113. process.$(SUF): $(SRC_DIR)/process.c
  114. $(CC) -c $(CFLAGS) $(SRC_DIR)/process.c
  115. process.$(SUF): $(SRC_DIR)/ext.h
  116. process.$(SUF): $(SRC_DIR)/proinf.h
  117. process.$(SUF): $(SRC_DIR)/lookup.h
  118. process.$(SUF): $(SRC_DIR)/line.h
  119. process.$(SUF): $(SRC_DIR)/alloc.h
  120. process.$(SUF): $(TARGET_HOME)/h/em_pseu.h
  121. process.$(SUF): $(TARGET_HOME)/h/em_spec.h
  122. process.$(SUF): $(SRC_DIR)/assert.h
  123. process.$(SUF): $(SRC_DIR)/tes.h
  124. process.$(SUF): $(SRC_DIR)/types.h
  125. process.$(SUF): $(SRC_DIR)/param.h
  126. backward.$(SUF): $(SRC_DIR)/backward.c
  127. $(CC) -c $(CFLAGS) $(SRC_DIR)/backward.c
  128. backward.$(SUF): $(SRC_DIR)/ext.h
  129. backward.$(SUF): $(TARGET_HOME)/h/em_mes.h
  130. backward.$(SUF): $(TARGET_HOME)/h/em_mnem.h
  131. backward.$(SUF): $(TARGET_HOME)/h/em_pseu.h
  132. backward.$(SUF): $(TARGET_HOME)/h/em_spec.h
  133. backward.$(SUF): $(SRC_DIR)/proinf.h
  134. backward.$(SUF): $(SRC_DIR)/alloc.h
  135. backward.$(SUF): $(SRC_DIR)/lookup.h
  136. backward.$(SUF): $(SRC_DIR)/line.h
  137. backward.$(SUF): $(SRC_DIR)/assert.h
  138. backward.$(SUF): $(SRC_DIR)/tes.h
  139. backward.$(SUF): $(SRC_DIR)/types.h
  140. backward.$(SUF): $(SRC_DIR)/param.h
  141. util.$(SUF): $(SRC_DIR)/util.c
  142. $(CC) -c $(CFLAGS) $(SRC_DIR)/util.c
  143. util.$(SUF): $(SRC_DIR)/ext.h
  144. util.$(SUF): $(SRC_DIR)/optim.h
  145. util.$(SUF): $(SRC_DIR)/proinf.h
  146. util.$(SUF): $(SRC_DIR)/lookup.h
  147. util.$(SUF): $(SRC_DIR)/assert.h
  148. util.$(SUF): $(SRC_DIR)/tes.h
  149. util.$(SUF): $(SRC_DIR)/types.h
  150. util.$(SUF): $(SRC_DIR)/param.h
  151. alloc.$(SUF): $(SRC_DIR)/alloc.c
  152. $(CC) -c $(CFLAGS) $(SRC_DIR)/alloc.c
  153. alloc.$(SUF): $(SRC_DIR)/proinf.h
  154. alloc.$(SUF): $(SRC_DIR)/lookup.h
  155. alloc.$(SUF): $(SRC_DIR)/line.h
  156. alloc.$(SUF): $(SRC_DIR)/alloc.h
  157. alloc.$(SUF): $(SRC_DIR)/assert.h
  158. alloc.$(SUF): $(SRC_DIR)/tes.h
  159. alloc.$(SUF): $(SRC_DIR)/types.h
  160. alloc.$(SUF): $(SRC_DIR)/param.h
  161. putline.$(SUF): $(SRC_DIR)/putline.c
  162. $(CC) -c $(CFLAGS) $(SRC_DIR)/putline.c
  163. putline.$(SUF): $(SRC_DIR)/ext.h
  164. putline.$(SUF): $(SRC_DIR)/optim.h
  165. putline.$(SUF): $(SRC_DIR)/proinf.h
  166. putline.$(SUF): $(SRC_DIR)/lookup.h
  167. putline.$(SUF): $(SRC_DIR)/line.h
  168. putline.$(SUF): $(SRC_DIR)/alloc.h
  169. putline.$(SUF): $(TARGET_HOME)/h/em_flag.h
  170. putline.$(SUF): $(TARGET_HOME)/h/em_mnem.h
  171. putline.$(SUF): $(TARGET_HOME)/h/em_pseu.h
  172. putline.$(SUF): $(TARGET_HOME)/h/em_spec.h
  173. putline.$(SUF): $(SRC_DIR)/assert.h
  174. putline.$(SUF): $(SRC_DIR)/tes.h
  175. putline.$(SUF): $(SRC_DIR)/types.h
  176. putline.$(SUF): $(SRC_DIR)/param.h
  177. cleanup.$(SUF): $(SRC_DIR)/cleanup.c
  178. $(CC) -c $(CFLAGS) $(SRC_DIR)/cleanup.c
  179. cleanup.$(SUF): $(SRC_DIR)/ext.h
  180. cleanup.$(SUF): $(SRC_DIR)/lookup.h
  181. cleanup.$(SUF): $(TARGET_HOME)/h/em_mes.h
  182. cleanup.$(SUF): $(TARGET_HOME)/h/em_spec.h
  183. cleanup.$(SUF): $(TARGET_HOME)/h/em_pseu.h
  184. cleanup.$(SUF): $(SRC_DIR)/assert.h
  185. cleanup.$(SUF): $(SRC_DIR)/types.h
  186. cleanup.$(SUF): $(SRC_DIR)/param.h
  187. peephole.$(SUF): $(SRC_DIR)/peephole.c
  188. $(CC) -c $(CFLAGS) $(SRC_DIR)/peephole.c
  189. peephole.$(SUF): $(SRC_DIR)/ext.h
  190. peephole.$(SUF): $(SRC_DIR)/optim.h
  191. peephole.$(SUF): $(TARGET_HOME)/h/em_mnem.h
  192. peephole.$(SUF): $(TARGET_HOME)/h/em_spec.h
  193. peephole.$(SUF): $(SRC_DIR)/pattern.h
  194. peephole.$(SUF): $(SRC_DIR)/alloc.h
  195. peephole.$(SUF): $(SRC_DIR)/proinf.h
  196. peephole.$(SUF): $(SRC_DIR)/lookup.h
  197. peephole.$(SUF): $(SRC_DIR)/line.h
  198. peephole.$(SUF): $(SRC_DIR)/assert.h
  199. peephole.$(SUF): $(SRC_DIR)/tes.h
  200. peephole.$(SUF): $(SRC_DIR)/types.h
  201. peephole.$(SUF): $(SRC_DIR)/param.h
  202. flow.$(SUF): $(SRC_DIR)/flow.c
  203. $(CC) -c $(CFLAGS) $(SRC_DIR)/flow.c
  204. flow.$(SUF): $(SRC_DIR)/ext.h
  205. flow.$(SUF): $(SRC_DIR)/optim.h
  206. flow.$(SUF): $(SRC_DIR)/proinf.h
  207. flow.$(SUF): $(SRC_DIR)/line.h
  208. flow.$(SUF): $(SRC_DIR)/alloc.h
  209. flow.$(SUF): $(TARGET_HOME)/h/em_mnem.h
  210. flow.$(SUF): $(TARGET_HOME)/h/em_spec.h
  211. flow.$(SUF): $(TARGET_HOME)/h/em_flag.h
  212. flow.$(SUF): $(SRC_DIR)/tes.h
  213. flow.$(SUF): $(SRC_DIR)/types.h
  214. flow.$(SUF): $(SRC_DIR)/param.h
  215. reg.$(SUF): $(SRC_DIR)/reg.c
  216. $(CC) -c $(CFLAGS) $(SRC_DIR)/reg.c
  217. reg.$(SUF): $(SRC_DIR)/ext.h
  218. reg.$(SUF): $(TARGET_HOME)/h/em_mes.h
  219. reg.$(SUF): $(TARGET_HOME)/h/em_pseu.h
  220. reg.$(SUF): $(TARGET_HOME)/h/em_spec.h
  221. reg.$(SUF): $(SRC_DIR)/alloc.h
  222. reg.$(SUF): $(SRC_DIR)/proinf.h
  223. reg.$(SUF): $(SRC_DIR)/tes.h
  224. reg.$(SUF): $(SRC_DIR)/line.h
  225. reg.$(SUF): $(SRC_DIR)/types.h
  226. reg.$(SUF): $(SRC_DIR)/param.h
  227. reg.$(SUF): $(SRC_DIR)/assert.h
  228. tes.$(SUF): $(SRC_DIR)/tes.c
  229. $(CC) -c $(CFLAGS) $(SRC_DIR)/tes.c
  230. tes.$(SUF): $(SRC_DIR)/pop_push.h
  231. tes.$(SUF): $(SRC_DIR)/ext.h
  232. tes.$(SUF): $(SRC_DIR)/line.h
  233. tes.$(SUF): $(SRC_DIR)/proinf.h
  234. tes.$(SUF): $(SRC_DIR)/alloc.h
  235. tes.$(SUF): $(SRC_DIR)/tes.h
  236. tes.$(SUF): $(SRC_DIR)/types.h
  237. tes.$(SUF): $(SRC_DIR)/assert.h
  238. tes.$(SUF): $(SRC_DIR)/param.h
  239. tes.$(SUF): $(TARGET_HOME)/h/em_pseu.h
  240. tes.$(SUF): $(TARGET_HOME)/h/em_mnem.h
  241. tes.$(SUF): $(TARGET_HOME)/h/em_spec.h
  242. pop_push.$(SUF): pop_push.c
  243. $(CC) -c $(CFLAGS) pop_push.c
  244. pop_push.$(SUF): $(SRC_DIR)/pop_push.h
  245. pattern.$(SUF): pattern.c
  246. $(CC) -c $(CFLAGS) pattern.c
  247. pattern.$(SUF): $(SRC_DIR)/pattern.h
  248. pattern.$(SUF): $(SRC_DIR)/types.h
  249. pattern.$(SUF): $(SRC_DIR)/param.h
  250. regglob.$(SUF): regglob.c
  251. $(CC) -c $(CFLAGS) regglob.c
  252. regglob.$(SUF): $(SRC_DIR)/ext.h
  253. regglob.$(SUF): $(TARGET_HOME)/h/em_mes.h
  254. regglob.$(SUF): $(TARGET_HOME)/h/em_pseu.h
  255. regglob.$(SUF): $(TARGET_HOME)/h/em_spec.h
  256. regglob.$(SUF): $(SRC_DIR)/alloc.h
  257. regglob.$(SUF): $(SRC_DIR)/proinf.h
  258. regglob.$(SUF): $(SRC_DIR)/tes.h
  259. regglob.$(SUF): $(SRC_DIR)/line.h
  260. regglob.$(SUF): $(SRC_DIR)/types.h
  261. regglob.$(SUF): $(SRC_DIR)/param.h
  262. regglob.$(SUF): $(SRC_DIR)/assert.h
  263. regnoglob.$(SUF): regnoglob.c
  264. $(CC) -c $(CFLAGS) regnoglob.c
  265. regnoglob.$(SUF): $(SRC_DIR)/ext.h
  266. regnoglob.$(SUF): $(TARGET_HOME)/h/em_mes.h
  267. regnoglob.$(SUF): $(TARGET_HOME)/h/em_pseu.h
  268. regnoglob.$(SUF): $(TARGET_HOME)/h/em_spec.h
  269. regnoglob.$(SUF): $(SRC_DIR)/alloc.h
  270. regnoglob.$(SUF): $(SRC_DIR)/proinf.h
  271. regnoglob.$(SUF): $(SRC_DIR)/tes.h
  272. regnoglob.$(SUF): $(SRC_DIR)/line.h
  273. regnoglob.$(SUF): $(SRC_DIR)/types.h
  274. regnoglob.$(SUF): $(SRC_DIR)/param.h
  275. regnoglob.$(SUF): $(SRC_DIR)/assert.h