Makefile 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. EMROOT=../../..
  2. ACK=$(EMROOT)/bin/$(MACH)
  3. PC=/proj/em/bin/sun3 -.p -PR$(EMROOT)/lang/a68s/cpem/cpem -Ras=/proj/em/Work/lib/m68020/as -I/proj/em/h -Rbe=/proj/em/Work/lib/m68020/cg
  4. PCFLAGS=-v -L -e -LIB # -Oego -SR -CJ -BO -SP
  5. EPCFLAGS=-v -L -e -LIB $(BSD4) $(VAX4)
  6. UTIL=$(EMROOT)/lang/a68s/util
  7. TAILOR=$(UTIL)/tailor
  8. XREF=$(UTIL)/xref -i$(UTIL)/pascal.ign -p
  9. CHECKSEQ=$(UTIL)/checkseq
  10. TERRS=/dev/tty
  11. TNOS=101 2 103 104 105 111 21 122 123 124 125 32 41 150 151 152 153 154 155 161 $(RECIPE)
  12. CFILES=aclose.c aopen.c powi.c powr.c mod.c entier.c signi.c signr.c \
  13. timesten.c shl.c shr.c time.c sin.c cos.c arctan.c sqrt.c exp.c \
  14. ln.c maxr.c cleanup.c
  15. COFILES=aclose.o aopen.o powi.o powr.o mod.o entier.o signi.o signr.o \
  16. timesten.o shl.o shr.o time.o sin.o cos.o arctan.o sqrt.o exp.o \
  17. ln.o maxr.o cleanup.o
  18. FILES=run68g.p
  19. GFILES=errorr.p global.p safeaccess.p
  20. GOFILES=errorr.o global.o safeaccess.o
  21. PFILES=collp.p colltm.p collts.p complex.p crmult.p crrefn.p dclpsn.p drefm.p \
  22. drefs.p dummy.p genrec.p getmult.p getout.p gtot.p gtotref.p \
  23. gvasstx.p gvscope.p heapmul.p heapstr.p is.p linit2.p linit34.p \
  24. linitinc.p nassts.p nassp.p pcollmul.p pcollst.p rangent.p rangext.p \
  25. rnstart.p routn.p routnp.p rowm.p rownm.p scopext.p selectr.p \
  26. selecttsn.p setcc.p skip.p slice12.p slicen.p strsubtrim.p \
  27. structscope.p tassp.p tasstm.p tassts.p trim.p widchar.p widen.p
  28. POFILES=collp.o colltm.o collts.o complex.o crmult.o crrefn.o dclpsn.o drefm.o \
  29. drefs.o dummy.o genrec.o getmult.o getout.o gtot.o gtotref.o gvasstx.o \
  30. gvscope.o heapmul.o heapstr.o is.o linit2.o linit34.o linitinc.o \
  31. nassts.o nassp.o pcollmul.o pcollst.o rangent.o rangext.o rnstart.o \
  32. routn.o routnp.o rowm.o rownm.o scopext.o selectr.o selecttsn.o \
  33. setcc.o skip.o slice12.o slicen.o strsubtrim.o structscope.o tassp.o \
  34. tasstm.o tassts.o trim.o widchar.o widen.o
  35. OPFILES=catpl.p cfstr.p mulis.p powneg.p uplwb.p uplwbm.p uplwbmstr.p
  36. OPOFILES=catpl.o cfstr.o mulis.o powneg.o uplwb.o uplwbm.o uplwbmstr.o
  37. SPFILES=bytespack.p random.p trig.p
  38. SPOFILES=bytespack.o random.o trig.o
  39. TFILES=associate.p dumbacch.p duminch.p dumoutch.p ensure.p fixed.p float.p \
  40. gett.p newline.p onend.p openclose.p posenq.p putt.p reset.p sett.p \
  41. space.p standass.p standin.p standout.p stbacch.p stinch.p stopen.p \
  42. stoutch.p whole.p
  43. TOFILES=associate.o dumbacch.o duminch.o dumoutch.o ensure.o fixed.o float.o \
  44. gett.o newline.o onend.o openclose.o posenq.o putt.o reset.o sett.o \
  45. space.o standass.o standin.o standout.o stbacch.o stinch.o stopen.o \
  46. stoutch.o whole.o
  47. EFILES=calls.e chains.e div.e get.e getaddr.e globale.e hoist.e put.e \
  48. standback.e swap.e trace.e wrs.e
  49. EOFILES=calls.o chains.o div.o get.o getaddr.o globale.o hoist.o put.o \
  50. standback.o swap.o trace.o wrs.o
  51. LIBFILES=$(GFILES) $(PFILES) $(OPFILES) $(SPFILES) $(TFILES)
  52. LIBOFILES=$(GOFILES) $(POFILES) $(OPOFILES) $(SPOFILES) $(TOFILES)
  53. all: liba68s$(w)$(p)
  54. rundecs.h: check$(w)$(p) rundecs.p
  55. echo $(TNOS) 300 | $(TAILOR) rundecs.p $(TERRS) \
  56. >rundecs.h
  57. rundecsg.h: check$(w)$(p) rundecs.p
  58. echo $(TNOS) 71 300 | $(TAILOR) rundecs.p $(TERRS) >rundecsg.h
  59. run68g.o: rundecsg.h run68g.p
  60. (cat rundecsg.h; \
  61. cat run68g.p ) \
  62. >temp.p
  63. $(PC) $(PCFLAGS) -c.s temp.p
  64. sed -e '/^.define __m_a_i_n/d' -e '/^.extern __m_a_i_n/,$$d' -e '/^.globl __m_a_i_n/,$$d' temp.s > run68g.s
  65. $(PC) $(PCFLAGS) -c.o run68g.s
  66. rm temp.p run68g.s
  67. .p.o:
  68. ( echo $(TNOS) 300 | $(TAILOR) $*.p $(TERRS) ) \
  69. >temp.p
  70. $(PC) $(PCFLAGS) -c.s temp.p
  71. mv temp.s $*.s
  72. $(PC) $(PCFLAGS) -c.o $*.s
  73. rm temp.p $*.s
  74. $(LIBOFILES): rundecs.h
  75. .SUFFIXES: .e
  76. e.h: check$(w)$(p)
  77. .e.o:
  78. $(PC) $(EPCFLAGS) -c.s -DEM_WSIZE=$(w) -DEM_PSIZE=$(p) $*.e
  79. $(PC) $(EPCFLAGS) -c.o $*.s
  80. rm $*.s
  81. $(EOFILES): e.h
  82. maxr.o: maxr.c
  83. /lib/cpp <maxr.c >temp.c
  84. $(PC) $(PCFLAGS) -I$(EMROOT)/h -c.s -o maxr.s temp.c
  85. $(PC) $(PCFLAGS) -c.o maxr.s
  86. rm maxr.s
  87. .c.o:
  88. $(PC) $(PCFLAGS) -I$(EMROOT)/h -c.s $*.c
  89. $(PC) $(PCFLAGS) -c.o $*.s
  90. rm $*.s
  91. liba68s: liba68s$(w)$(p)
  92. liba68s$(w)$(p): $(EOFILES) $(COFILES) $(LIBOFILES) $(SOFILES) run68g.o
  93. -rm liba68s$(w)$(p)
  94. $(ASAR) crv liba68s$(w)$(p) $(EOFILES) $(COFILES) $(LIBOFILES) $(SOFILES) run68g.o
  95. sh -c '$${RANLIB-:} liba68s$(w)$(p)'
  96. check$(w)$(p):
  97. /bin/make -f $(EMROOT)/lang/a68s/liba68s/Makefile clean
  98. echo >> check$(w)$(p)
  99. checkseq:
  100. $(CHECKSEQ) rundecs.p $(LIBFILES)
  101. pr:
  102. pr rundecs.p $(LIBFILES) $(FILES) $(EFILES) $(CFILES)
  103. xref:
  104. (/bin/make pr; \
  105. echo 1000 | $(TAILOR) rundecs.p $(TERRS) | $(XREF) | pr -h rundecs.xref; \
  106. for II in $(LIBFILES); do echo 1000 | $(TAILOR) $$II $(TERRS); done \
  107. | $(XREF) | pr -h run68.xref \
  108. ) | opr
  109. clean:
  110. -rm liba68s$(w)$(p) check?? rundec*.h *.o