Year 2 compilers coureswork

Makefile 598B

12345678910111213141516171819202122232425262728293031
  1. CFLAGS := -g -std=gnu11
  2. OBJS := lex.yy.o C.tab.o symbol_table.o nodes.o main.o list.o
  3. SRCS := lex.yy.c C.tab.c symbol_table.c nodes.c main.c list.c
  4. CC := gcc
  5. all: mycc
  6. clean:
  7. rm -f ${OBJS}
  8. rm -f C.tab.c lex.yy.c
  9. mycc: ${OBJS}
  10. ${CC} ${CFLAGS} -o mycc ${OBJS}
  11. lex.yy.c: C.flex
  12. flex C.flex
  13. C.tab.c: C.y
  14. bison -d -t C.y
  15. .c.o:
  16. ${CC} ${CFLAGS} -c $*.c
  17. depend:
  18. ${CC} ${CFLAGS} -M $(SRCS) > .deps
  19. cat Makefile .deps > makefile
  20. dist: symbol_table.c nodes.c main.c Makefile C.flex C.y nodes.h token.h
  21. tar cvfz mycc.tgz symbol_table.c nodes.c main.c Makefile C.flex C.y \
  22. nodes.h token.h