# Makefile for java parser
# for compiler design project 2
# Date: 18/03/95
# Authors:
#	Hongfei Zhang (zhangh@cs.rpi.edu)
#	Hongshi Guo (guoh@cs.rpi.edu)
#

PROGS = jcc

SRC =  java.l java.y tree.c symtbl.c bachpatch.c constPool.c class.c

JFLAGS = 

CLASSPATH = 

LEX = lex

YACC = yacc

YFLAGS = -d -v

CC = gcc

CFLAGS = -g 
CFLAGS1 = -c -g

# JAVACOMPILER = /usr/local/packages/java/bin/javac

submit: ${PROGS}

jcc: y.tab.o tree.o lex.yy.o genAsmCode.o constPool.o class.o method.o
	${CC} ${CFLAGS} y.tab.o tree.o lex.yy.o genAsmCode.o constPool.o class.o method.o -ll -ly -o jcc
	rm *.o

y.tab.o: y.tab.h types.h tree.h symtbl.h y.tab.c
	${CC} ${CFLAGS1} y.tab.c

tree.o: tree.h types.h tree.c
	${CC} ${CFLAGS1} tree.c

lex.yy.o: types.h symtbl.h tree.h y.tab.h lex.yy.c
	${CC} ${CFLAGS1} lex.yy.c
bachpatch.o: types.h genAsmCode.c
	${CC} ${CFLAGS1} genAsmCode.c
constPool.o: types.h constPool.c
	${CC} ${CFLAGS1} constPool.c
class.o: types.h instructions.h class.c
	${CC} ${CFLAGS1} class.c
method.o: types.h method.c
	${CC} ${CFLAGS1} method.c
lex.yy.c: java.l
	${LEX} java.l

y.tab.h:java.y
	${YACC} ${YFLAGS} java.y

y.tab.c: java.y
	${YACC} ${YFLAGS} java.y

clean:
	rm -f *.class  *.o lex.yy.c y.tab.c y.tab.h jcc y.output










