Makefile 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. #
  2. EMHOME = ../../..
  3. MHDIR = $(EMHOME)/modules/h
  4. PKGDIR = $(EMHOME)/modules/pkg
  5. LIBDIR = $(EMHOME)/modules/lib
  6. LLGEN = $(EMHOME)/bin/LLgen
  7. MKDEP = $(EMHOME)/bin/mkdep
  8. INCLUDES = -I$(MHDIR) -I$(PKGDIR) -I$(EMHOME)/h
  9. GF = program.g declar.g expression.g statement.g
  10. GENGFILES= tokenfile.g
  11. GFILES =$(GENGFILES) $(GF)
  12. LLGENOPTIONS =
  13. PROFILE =
  14. M2COMPILER = m2
  15. DEFDIR = lib/m2
  16. HOMEDIR =
  17. CFLAGS = -O $(PROFILE) $(INCLUDES) -DSTATIC= -DM2COMPILER=\"$(M2COMPILER)\" -DDEF_DIR=\"$(DEFDIR)\" $(HOMEDIR)
  18. LINTFLAGS = -DSTATIC= -DNORCSID
  19. MALLOC = $(LIBDIR)/malloc.o
  20. LDFLAGS = $(PROFILE)
  21. LSRC = tokenfile.c program.c declar.c expression.c statement.c
  22. LOBJ = tokenfile.o program.o declar.o expression.o statement.o
  23. CSRC = LLlex.c LLmessage.c error.c main.c lib.c \
  24. tokenname.c idf.c input.c misc.c options.c Version.c
  25. COBJ = LLlex.o LLmessage.o error.o main.o lib.o \
  26. tokenname.o idf.o input.o misc.o options.o char.o symbol2str.o Version.o
  27. GENC= $(LSRC) symbol2str.c char.c Lpars.c
  28. SRC = $(CSRC) $(GENC)
  29. OBJ = $(COBJ) $(LOBJ) Lpars.o
  30. GENH = Lpars.h
  31. HSRC = main.h LLlex.h class.h f_info.h idf.h input.h tokenname.h
  32. HFILES =$(GENH) $(HSRC)
  33. #
  34. GENFILES = $(GENGFILES) $(GENC) $(GENH)
  35. all: Cfiles
  36. make "EMHOME="$(EMHOME) "DEFDIR="$(DEFDIR) "HOMEDIR="$(HOMEDIR) "M2COMPILER="$(M2COMPILER) m2mm
  37. install: all
  38. cp m2mm $(EMHOME)/bin
  39. cp m2mm.1 $(EMHOME)/man
  40. cmp: all
  41. -cmp m2mm $(EMHOME)/bin/m2mm
  42. -cmp m2mm.1 $(EMHOME)/man/m2mm.1
  43. opr:
  44. make "EMHOME="$(EMHOME) pr | opr
  45. pr:
  46. @pr Makefile $(GF) $(HFILES) $(CSRC)
  47. clean:
  48. rm -f $(OBJ) $(GENFILES) LLfiles Cfiles LL.output m2mm
  49. lint: Cfiles
  50. lint $(INCLUDES) $(LINTFLAGS) $(SRC) \
  51. $(LIBDIR)/llib-linput.ln \
  52. $(LIBDIR)/llib-lalloc.ln \
  53. $(LIBDIR)/llib-lprint.ln \
  54. $(LIBDIR)/llib-lstring.ln \
  55. $(LIBDIR)/llib-lsystem.ln
  56. # entry points not to be used directly
  57. Cfiles: LLfiles $(GENC) $(GENH) Makefile
  58. LLfiles: $(GFILES)
  59. $(LLGEN) $(LLGENOPTIONS) $(GFILES)
  60. @touch LLfiles
  61. tokenfile.g: tokenname.c make.tokfile
  62. make.tokfile <tokenname.c >tokenfile.g
  63. symbol2str.c: tokenname.c make.tokcase
  64. make.tokcase <tokenname.c >symbol2str.c
  65. char.c: char.tab
  66. $(EMHOME)/bin/tabgen -fchar.tab >char.c
  67. depend: Cfiles
  68. sed '/^#AUTOAUTO/,$$d' Makefile > Makefile.new
  69. echo '#AUTOAUTOAUTOAUTOAUTOAUTOAUTOAUTO' >> Makefile.new
  70. $(MKDEP) $(SRC) |\
  71. sed 's/\.c:/\.o:/' >> Makefile.new
  72. mv Makefile Makefile.old
  73. mv Makefile.new Makefile
  74. m2mm: $(OBJ)
  75. $(CC) $(LDFLAGS) $(OBJ) $(LIBDIR)/libinput.a $(LIBDIR)/liballoc.a $(MALLOC) $(LIBDIR)/libprint.a $(LIBDIR)/libstring.a $(LIBDIR)/libsystem.a -o m2mm
  76. -size m2mm
  77. #AUTOAUTOAUTOAUTOAUTOAUTOAUTOAUTO
  78. LLlex.o: LLlex.h
  79. LLlex.o: Lpars.h
  80. LLlex.o: class.h
  81. LLlex.o: f_info.h
  82. LLlex.o: file_list.h
  83. LLlex.o: idf.h
  84. LLlex.o: idfsize.h
  85. LLlex.o: input.h
  86. LLlex.o: inputtype.h
  87. LLmessage.o: LLlex.h
  88. LLmessage.o: Lpars.h
  89. LLmessage.o: file_list.h
  90. LLmessage.o: idf.h
  91. error.o: LLlex.h
  92. error.o: f_info.h
  93. error.o: input.h
  94. error.o: inputtype.h
  95. main.o: LLlex.h
  96. main.o: Lpars.h
  97. main.o: f_info.h
  98. main.o: file_list.h
  99. main.o: idf.h
  100. main.o: input.h
  101. main.o: inputtype.h
  102. main.o: tokenname.h
  103. tokenname.o: Lpars.h
  104. tokenname.o: file_list.h
  105. tokenname.o: idf.h
  106. tokenname.o: tokenname.h
  107. idf.o: file_list.h
  108. idf.o: idf.h
  109. input.o: f_info.h
  110. input.o: input.h
  111. input.o: inputtype.h
  112. misc.o: LLlex.h
  113. misc.o: f_info.h
  114. misc.o: file_list.h
  115. misc.o: idf.h
  116. options.o: main.h
  117. tokenfile.o: Lpars.h
  118. program.o: LLlex.h
  119. program.o: Lpars.h
  120. program.o: f_info.h
  121. program.o: file_list.h
  122. program.o: idf.h
  123. program.o: main.h
  124. declar.o: Lpars.h
  125. expression.o: Lpars.h
  126. statement.o: LLlex.h
  127. statement.o: Lpars.h
  128. statement.o: file_list.h
  129. statement.o: idf.h
  130. symbol2str.o: Lpars.h
  131. char.o: class.h
  132. Lpars.o: Lpars.h