Files
2025-02-Compiler/src/Makefile
2025-12-02 05:11:27 +09:00

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