Makefile 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175
  1. # $Header$
  2. EM = ../..# # EM tree
  3. CC = cc# # C comp used for compiling the interpreter
  4. CFLAGS = -O# # passed to C compiler
  5. LFLAGS = # # passed to loader
  6. IDIRS = -I$(EM)/h# # passed to C compiler and lint
  7. LINT = lint# # lint to be used
  8. LINTFLAGS = -h# # passed to lint
  9. INT = ./int# # name of resulting interpreter
  10. IP_SPEC = $(EM)/etc/ip_spec.t
  11. TRAPS = $(EM)/etc/traps
  12. APP_A = $(EM)/doc/int/appA # to be moved later
  13. SRC = alloc.c core.c data.c do_array.c do_branch.c do_comp.c do_conv.c \
  14. do_fpar.c do_incdec.c do_intar.c do_load.c do_logic.c do_misc.c \
  15. do_proc.c do_ptrar.c do_sets.c do_store.c do_unsar.c dump.c \
  16. disassemble.c fra.c global.c init.c io.c log.c m_ioctl.c m_sigtrp.c \
  17. main.c moncalls.c monstruct.c proctab.c read.c rsb.c segment.c \
  18. stack.c switch.c tally.c text.c trap.c warn.c
  19. OBJ = alloc.o core.o data.o do_array.o do_branch.o do_comp.o do_conv.o \
  20. do_fpar.o do_incdec.o do_intar.o do_load.o do_logic.o do_misc.o \
  21. do_proc.o do_ptrar.o do_sets.o do_store.o do_unsar.o dump.o \
  22. disassemble.o fra.o global.o init.o io.o log.o m_ioctl.o m_sigtrp.o \
  23. main.o moncalls.o monstruct.o proctab.o read.o rsb.o segment.o \
  24. stack.o switch.o tally.o text.o trap.o warn.o
  25. HDR = alloc.h fra.h global.h linfil.h log.h mem.h memdirect.h monstruct.h \
  26. opcode.h proctab.h read.h rsb.h shadow.h text.h trap.h \
  27. logging.h debug.h nofloat.h segcheck.h sysidf.h v7ioctl.h \
  28. e.out.h# should be in $(EM)/h or so, or in $(EM/h/em_abs.h
  29. .SUFFIXES: .o
  30. .c.o:
  31. $(CC) $(CFLAGS) $(IDIRS) -c $<
  32. # Main entries
  33. all: test
  34. install: $(INT)
  35. cp $(INT) $(EM)/bin/int
  36. cp int.1 $(EM)/man/int.1
  37. cmp: $(INT)
  38. -cmp $(INT) $(EM)/bin/int
  39. -cmp int.1 $(EM)/man/int.1
  40. test: $(INT) test/awa.em22 test/awa.em24 test/awa.em44
  41. @rm -f int.mess
  42. -echo 3 5 7 2 -1 | time $(INT) test/awa.em22
  43. cat int.mess
  44. @rm -f int.mess
  45. -echo 3 5 7 2 -1 | time $(INT) test/awa.em24
  46. cat int.mess
  47. @rm -f int.mess
  48. -echo 3 5 7 2 -1 | time $(INT) test/awa.em44
  49. cat int.mess
  50. $(INT): $(OBJ) Makefile
  51. $(CC) $(LFLAGS) -o $(INT) $(OBJ)
  52. @size $(INT)
  53. # Generated files
  54. trap_msg: M.trap_msg $(TRAPS)
  55. M.trap_msg $(TRAPS)
  56. warn_msg: M.warn_msg $(APP_A)
  57. M.warn_msg $(APP_A)
  58. warn.h: M.warn_h $(APP_A)
  59. M.warn_h $(APP_A)
  60. switch/DoCases:
  61. (cd switch; make DoCases)
  62. switch/PrCases:
  63. (cd switch; make PrCases)
  64. test/awa.em22:
  65. (cd test; make awa.em22)
  66. test/awa.em24:
  67. (cd test; make awa.em24)
  68. test/awa.em44:
  69. (cd test; make awa.em44)
  70. # Auxiliary entries
  71. lint: $(SRC) trap_msg warn_msg warn.h switch/DoCases switch/PrCases
  72. $(LINT) $(LINTFLAGS) $(IDIRS) $(SRC) -lc
  73. tags: $(HDR) $(SRC)
  74. ctags $(HDR) $(SRC)
  75. MFILES = M.trap_msg M.warn_h M.warn_msg
  76. ALL = READ_ME Makefile $(MFILES) $(HDR) $(SRC)
  77. DISTR = $(ALL) int.1 switch test
  78. print:
  79. @pr $(ALL)
  80. pr: print
  81. opr:
  82. make pr | opr
  83. distr: .distr
  84. (cd switch; make distr)
  85. (cd test; make distr)
  86. .distr: Makefile
  87. echo $(DISTR) | tr ' ' '\012' >.distr
  88. clean:
  89. rm -f core mon.out int.mess int.log int.core int.tally \
  90. trap_msg warn_msg warn.h tags print \
  91. $(OBJ) $(INT)
  92. (cd switch; make clean)
  93. (cd test; make clean)
  94. bare: clean
  95. (cd switch; make bare)
  96. #----------------------------------------------------------------
  97. alloc.o: alloc.h debug.h global.h
  98. core.o: fra.h global.h logging.h shadow.h
  99. data.o: alloc.h global.h log.h logging.h mem.h memdirect.h nofloat.h shadow.h trap.h warn.h
  100. disassemble.o: alloc.h global.h memdirect.h opcode.h proctab.h switch/PrCases
  101. do_array.o: fra.h global.h log.h logging.h mem.h text.h trap.h
  102. do_branch.o: fra.h global.h log.h logging.h mem.h text.h trap.h warn.h
  103. do_comp.o: fra.h global.h log.h logging.h mem.h nofloat.h shadow.h text.h trap.h warn.h
  104. do_conv.o: fra.h global.h log.h logging.h mem.h nofloat.h text.h trap.h warn.h
  105. do_fpar.o: fra.h global.h log.h logging.h mem.h nofloat.h text.h trap.h warn.h
  106. do_incdec.o: fra.h global.h log.h logging.h mem.h nofloat.h text.h trap.h warn.h
  107. do_intar.o: fra.h global.h log.h logging.h mem.h text.h trap.h warn.h
  108. do_load.o: fra.h global.h log.h logging.h mem.h rsb.h text.h trap.h warn.h
  109. do_logic.o: fra.h global.h log.h logging.h mem.h shadow.h text.h trap.h warn.h
  110. do_misc.o: fra.h global.h linfil.h log.h logging.h mem.h memdirect.h read.h rsb.h shadow.h text.h trap.h warn.h
  111. do_proc.o: fra.h global.h linfil.h log.h logging.h mem.h memdirect.h proctab.h rsb.h shadow.h text.h trap.h warn.h
  112. do_ptrar.o: fra.h global.h log.h logging.h mem.h segcheck.h text.h trap.h warn.h
  113. do_sets.o: fra.h global.h log.h logging.h mem.h text.h trap.h
  114. do_store.o: fra.h global.h log.h logging.h mem.h text.h trap.h warn.h
  115. do_unsar.o: fra.h global.h log.h logging.h mem.h text.h trap.h warn.h
  116. dump.o: fra.h global.h linfil.h log.h logging.h mem.h memdirect.h proctab.h rsb.h shadow.h text.h
  117. fra.o: alloc.h fra.h global.h logging.h mem.h shadow.h
  118. global.o: global.h
  119. init.o: alloc.h global.h log.h logging.h mem.h read.h shadow.h trap.h warn.h
  120. io.o: global.h linfil.h logging.h mem.h
  121. log.o: global.h linfil.h logging.h
  122. m_ioctl.o: global.h mem.h sysidf.h v7ioctl.h warn.h
  123. m_sigtrp.o: global.h log.h logging.h trap.h warn.h
  124. main.o: e.out.h global.h log.h logging.h nofloat.h opcode.h read.h rsb.h text.h trap.h warn.h
  125. moncalls.o: alloc.h global.h log.h logging.h mem.h shadow.h sysidf.h trap.h warn.h
  126. monstruct.o: global.h mem.h monstruct.h sysidf.h v7ioctl.h
  127. proctab.o: alloc.h global.h log.h logging.h proctab.h
  128. read.o: e.out.h global.h log.h logging.h mem.h nofloat.h read.h shadow.h text.h warn.h
  129. rsb.o: global.h linfil.h logging.h mem.h proctab.h rsb.h shadow.h warn.h
  130. segment.o: alloc.h global.h mem.h segcheck.h
  131. stack.o: alloc.h global.h log.h logging.h mem.h memdirect.h nofloat.h rsb.h shadow.h trap.h warn.h
  132. switch.o: global.h opcode.h switch/DoCases text.h trap.h warn.h
  133. tally.o: alloc.h global.h linfil.h
  134. text.o: alloc.h global.h proctab.h read.h text.h trap.h warn.h
  135. trap.o: fra.h global.h linfil.h log.h logging.h mem.h rsb.h shadow.h trap.h trap_msg warn.h
  136. warn.o: alloc.h global.h linfil.h log.h logging.h warn.h warn_msg