47 lines
993 B
Makefile
47 lines
993 B
Makefile
# Makefile for C-Minus
|
|
#
|
|
# ./lex/tiny.l --> ./cminus.l (from Project 1)
|
|
# ./yacc/tiny.y --> ./cminus.y (from Project 2)
|
|
# ./yacc/globals.h --> ./globals.h (from Project 2)
|
|
|
|
CC = gcc
|
|
|
|
CFLAGS = -W -Wall -g
|
|
|
|
OBJS = main.o util.o lex.yy.o y.tab.o symtab.o analyze.o
|
|
|
|
.PHONY: all clean
|
|
all: cminus_semantic
|
|
|
|
clean:
|
|
rm -vf cminus_semantic *.o lex.yy.c y.tab.c y.tab.h y.output
|
|
|
|
cminus_semantic: $(OBJS)
|
|
$(CC) $(CFLAGS) $(OBJS) -o $@ -lfl
|
|
|
|
main.o: main.c globals.h util.h scan.h parse.h y.tab.h analyze.h
|
|
$(CC) $(CFLAGS) -c main.c
|
|
|
|
util.o: util.c util.h globals.h y.tab.h
|
|
$(CC) $(CFLAGS) -c util.c
|
|
|
|
lex.yy.o: lex.yy.c scan.h globals.h y.tab.h util.h
|
|
$(CC) $(CFLAGS) -c lex.yy.c
|
|
|
|
lex.yy.c: cminus.l
|
|
flex cminus.l
|
|
|
|
y.tab.h: y.tab.c
|
|
|
|
y.tab.o: y.tab.c parse.h
|
|
$(CC) $(CFLAGS) -c y.tab.c
|
|
|
|
y.tab.c: cminus.y
|
|
yacc -d -v cminus.y
|
|
|
|
analyze.o: analyze.c analyze.h globals.h y.tab.h symtab.h util.h
|
|
$(CC) $(CFLAGS) -c analyze.c
|
|
|
|
symtab.o: symtab.c symtab.h
|
|
$(CC) $(CFLAGS) -c symtab.c
|