Makefile 1001 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. PROG=Compiler
  2. VOC=/opt/voc/bin/voc
  3. CC=gcc
  4. VOCPATH=/opt/voc
  5. VOCLIBS=$(VOCPATH)/lib/libvoc-OC.a
  6. COMPILE=$(VOC) -OC -cesF
  7. all: $(PROG)
  8. $(PROG): $(PROG).sym
  9. $(CC) -fPIC -g -I $(VOCPATH)/C/include \
  10. -o $(PROG) Parser.o Scanner.o \
  11. SymTable.o Generator.o \
  12. Chmod.o \
  13. c_chmod.o \
  14. $(PROG).o \
  15. $(VOCLIBS)
  16. $(PROG).sym: Mod/$(PROG).Mod Parser.sym
  17. $(COMPILE) -m Mod/$(PROG).Mod
  18. Parser.sym: Mod/Parser.Mod Scanner.sym SymTable.sym Generator.sym
  19. $(COMPILE) Mod/Parser.Mod
  20. Scanner.sym: Mod/Scanner.Mod
  21. $(COMPILE) Mod/Scanner.Mod
  22. Generator.sym: Mod/Generator.Mod SymTable.sym Chmod.sym
  23. $(COMPILE) Mod/Generator.Mod
  24. SymTable.sym: Mod/SymTable.Mod
  25. $(COMPILE) Mod/SymTable.Mod
  26. Chmod.sym: Mod/Chmod.Mod c_chmod.o
  27. $(VOC) -OC -fF Mod/Chmod.Mod
  28. c_chmod.o: Mod/c_chmod/c_chmod.c Mod/c_chmod/c_chmod.h
  29. $(CC) -c Mod/c_chmod/c_chmod.c -o c_chmod.o
  30. cp Mod/c_chmod/c_chmod.h .
  31. .PHONY: run clean
  32. run: $(PROG)
  33. @clear; nl Test.Mod; ./$(PROG)
  34. clean:
  35. @rm -f *.c *.h *.o *.sym .tmp..* Test $(PROG)