Makefile 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228
  1. # $Header$
  2. EMHOME=../..
  3. CFILES=main.c getline.c lookup.c var.c process.c backward.c util.c \
  4. alloc.c putline.c cleanup.c peephole.c flow.c reg.c tes.c \
  5. pop_push.c
  6. OFILES=main.o getline.o lookup.o var.o process.o backward.o util.o\
  7. alloc.o putline.o cleanup.o peephole.o flow.o tes.o pop_push.o
  8. ONOGLOB=regnoglob.o
  9. OGLOB=regglob.o
  10. LIBS=$(EMHOME)/lib/em_data.a
  11. CFLAGS=-O -DNDEBUG -I$(EMHOME)/h
  12. LDFLAGS=
  13. LINT=lint
  14. OPR=opr
  15. PROPTS=
  16. CPP=$(EMHOME)/lib/cpp
  17. # LEXLIB is implementation dependent, try -ll or -lln first
  18. LEXLIB=-ll
  19. all: opt opt2
  20. opt: $(OFILES) $(ONOGLOB) pattern.o $(LIBS)
  21. $(CC) $(LDFLAGS) $(CFLAGS) $(OFILES) $(ONOGLOB) pattern.o $(LIBS) -o opt
  22. opt2: $(OFILES) $(OGLOB) pattern.o $(LIBS)
  23. $(CC) $(LDFLAGS) $(CFLAGS) $(OFILES) $(OGLOB) pattern.o $(LIBS) -o opt2
  24. test: opt testopt
  25. testopt
  26. cmp: all
  27. -cmp opt $(EMHOME)/lib/em_opt
  28. -cmp opt2 $(EMHOME)/lib/em_opt2
  29. -cmp em_opt.6 $(EMHOME)/man/em_opt.6
  30. install:all
  31. -size opt $(EMHOME)/lib/em_opt
  32. rm -f $(EMHOME)/lib/em_opt
  33. cp opt $(EMHOME)/lib/em_opt
  34. -size opt2 $(EMHOME)/lib/em_opt2
  35. rm -f $(EMHOME)/lib/em_opt2
  36. cp opt2 $(EMHOME)/lib/em_opt2
  37. rm -f $(EMHOME)/man/em_opt.6
  38. cp em_opt.6 $(EMHOME)/man/em_opt.6
  39. pattern.c: patterns mktab
  40. $(CPP) patterns | mktab > pattern.c
  41. mktab: mktab.o $(LIBS)
  42. $(CC) $(CFLAGS) mktab.o $(LIBS) $(LEXLIB) -o mktab
  43. mktab.o: scan.c optim.h param.h pattern.h types.h
  44. pop_push.c pop_push.h: $(EMHOME)/etc/em_table pop_push.awk
  45. awk -f pop_push.awk < $(EMHOME)/etc/em_table > pop_push.c
  46. depend: pattern.c
  47. sed '/^#AUTOAUTO/,$$d' Makefile >Makefile.new
  48. echo '#AUTOAUTOAUTOAUTOAUTOAUTOAUTOAUTO' >> Makefile.new
  49. cp reg.c regglob.c
  50. cp reg.c regnoglob.c
  51. mkdep $(CFILES) pattern.c regglob.c regnoglob.c | sed 's/\.c:/.o:/' >> Makefile.new
  52. rm -f regglob.c regnoglob.c
  53. mv Makefile Makefile.old
  54. mv Makefile.new Makefile
  55. lint: $(CFILES) pattern.c
  56. $(LINT) $(CFLAGS) $(CFILES) pattern.c>lint 2>&1
  57. printall:
  58. -pr $(PROPTS) Makefile -n *.h `ls $(CFILES)` mktab.y scan.l patterns|$(OPR)
  59. touch print
  60. print: Makefile *.h $(CFILES) mktab.y scan.l patterns
  61. -pr $(PROPTS) -n $? | $(OPR)
  62. touch print
  63. opr:
  64. make pr | $(OPR)
  65. pr:
  66. @pr $(PROPTS) -n Makefile *.h $(CFILES) mktab.y scan.l patterns
  67. clean:
  68. rm -f *.o opt mktab mktab.c scan.c pattern.c opt2 Out \
  69. pop_push.c pop_push.h
  70. regnoglob.o: reg.c
  71. $(CC) $(CFLAGS) -c reg.c
  72. mv reg.o regnoglob.o
  73. regglob.o: reg.c
  74. $(CC) $(CFLAGS) -c -DGLOBAL_OPT reg.c
  75. mv reg.o regglob.o
  76. # the next lines are generated automatically
  77. #AUTOAUTOAUTOAUTOAUTOAUTOAUTOAUTO
  78. main.o: alloc.h
  79. main.o: ext.h
  80. main.o: param.h
  81. main.o: tes.h
  82. main.o: types.h
  83. getline.o: alloc.h
  84. getline.o: ext.h
  85. getline.o: line.h
  86. getline.o: lookup.h
  87. getline.o: param.h
  88. getline.o: proinf.h
  89. getline.o: tes.h
  90. getline.o: types.h
  91. lookup.o: alloc.h
  92. lookup.o: lookup.h
  93. lookup.o: param.h
  94. lookup.o: proinf.h
  95. lookup.o: tes.h
  96. lookup.o: types.h
  97. var.o: lookup.h
  98. var.o: param.h
  99. var.o: proinf.h
  100. var.o: tes.h
  101. var.o: types.h
  102. process.o: alloc.h
  103. process.o: assert.h
  104. process.o: ext.h
  105. process.o: line.h
  106. process.o: lookup.h
  107. process.o: param.h
  108. process.o: proinf.h
  109. process.o: tes.h
  110. process.o: types.h
  111. backward.o: alloc.h
  112. backward.o: assert.h
  113. backward.o: ext.h
  114. backward.o: line.h
  115. backward.o: lookup.h
  116. backward.o: param.h
  117. backward.o: proinf.h
  118. backward.o: tes.h
  119. backward.o: types.h
  120. util.o: assert.h
  121. util.o: ext.h
  122. util.o: lookup.h
  123. util.o: optim.h
  124. util.o: param.h
  125. util.o: proinf.h
  126. util.o: tes.h
  127. util.o: types.h
  128. alloc.o: alloc.h
  129. alloc.o: assert.h
  130. alloc.o: line.h
  131. alloc.o: lookup.h
  132. alloc.o: param.h
  133. alloc.o: proinf.h
  134. alloc.o: tes.h
  135. alloc.o: types.h
  136. putline.o: alloc.h
  137. putline.o: assert.h
  138. putline.o: ext.h
  139. putline.o: line.h
  140. putline.o: lookup.h
  141. putline.o: optim.h
  142. putline.o: param.h
  143. putline.o: proinf.h
  144. putline.o: tes.h
  145. putline.o: types.h
  146. cleanup.o: assert.h
  147. cleanup.o: ext.h
  148. cleanup.o: lookup.h
  149. cleanup.o: param.h
  150. cleanup.o: types.h
  151. peephole.o: alloc.h
  152. peephole.o: assert.h
  153. peephole.o: ext.h
  154. peephole.o: line.h
  155. peephole.o: lookup.h
  156. peephole.o: optim.h
  157. peephole.o: param.h
  158. peephole.o: pattern.h
  159. peephole.o: proinf.h
  160. peephole.o: tes.h
  161. peephole.o: types.h
  162. flow.o: alloc.h
  163. flow.o: ext.h
  164. flow.o: line.h
  165. flow.o: optim.h
  166. flow.o: param.h
  167. flow.o: proinf.h
  168. flow.o: tes.h
  169. flow.o: types.h
  170. reg.o: alloc.h
  171. reg.o: assert.h
  172. reg.o: ext.h
  173. reg.o: line.h
  174. reg.o: param.h
  175. reg.o: proinf.h
  176. reg.o: tes.h
  177. reg.o: types.h
  178. tes.o: alloc.h
  179. tes.o: assert.h
  180. tes.o: ext.h
  181. tes.o: line.h
  182. tes.o: param.h
  183. tes.o: pop_push.h
  184. tes.o: proinf.h
  185. tes.o: tes.h
  186. tes.o: types.h
  187. pop_push.o: pop_push.h
  188. pattern.o: param.h
  189. pattern.o: pattern.h
  190. pattern.o: types.h
  191. regglob.o: alloc.h
  192. regglob.o: assert.h
  193. regglob.o: ext.h
  194. regglob.o: line.h
  195. regglob.o: param.h
  196. regglob.o: proinf.h
  197. regglob.o: tes.h
  198. regglob.o: types.h
  199. regnoglob.o: alloc.h
  200. regnoglob.o: assert.h
  201. regnoglob.o: ext.h
  202. regnoglob.o: line.h
  203. regnoglob.o: param.h
  204. regnoglob.o: proinf.h
  205. regnoglob.o: tes.h
  206. regnoglob.o: types.h