Makefile 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. EMHOME = ../../..
  2. MODLIB = $(EMHOME)/modules/lib
  3. INCL = -I$(EMHOME)/modules/h -I$(EMHOME)/h
  4. GFILES= occam.g
  5. PRIMARY= occam.o Lpars.o keytab.o lex.yy.o code.o em.o
  6. SECUNDARY= symtab.o expr.o builtin.o
  7. TERTIARY= report.o
  8. LLOPT=
  9. LEXLIB=-ll
  10. LIBRARY= $(MODLIB)/libem_mes.a $(MODLIB)/libemk.a \
  11. $(MODLIB)/liballoc.a $(MODLIB)/libprint.a \
  12. $(MODLIB)/libstring.a \
  13. $(MODLIB)/libsystem.a $(LEXLIB)
  14. CFLAGS = -Dvoid=int -O $(INCL)
  15. LDFLAGS =
  16. # void = int, because some compilers don't understand void
  17. HSRC = code.h em.h expr.h sizes.h symtab.h token.h
  18. CSRC = builtin.c code.c em.c expr.c keytab.c report.c symtab.c
  19. all: dummy
  20. make oc
  21. dummy: $(GFILES)
  22. LLgen $(LLOPT) $(GFILES)
  23. touch dummy
  24. oc: $(PRIMARY) $(SECUNDARY) $(TERTIARY)
  25. $(CC) $(LDFLAGS) -o oc $(PRIMARY) $(SECUNDARY) $(TERTIARY) $(LIBRARY)
  26. lex.yy.c: lex.l
  27. lex lex.l
  28. install: all
  29. rm -f $(EMHOME)/lib/em_occam
  30. cp oc $(EMHOME)/lib/em_occam
  31. cmp: all
  32. -cmp oc $(EMHOME)/lib/em_occam
  33. pr:
  34. @pr Makefile $(HSRC) occam.g lex.l $(CSRC)
  35. opr:
  36. make pr | opr
  37. clean:
  38. rm -f lex.yy.c occam.c *.o oc dummy Lpars.c Lpars.h
  39. $(PRIMARY): Lpars.h
  40. occam.o keytab.o: token.h
  41. occam.o $(SECUNDARY): symtab.h expr.h
  42. $(PRIMARY) $(SECUNDARY): sizes.h
  43. occam.o code.o: code.h
  44. code.o em.o: em.h