#
#  FILE: Makefile
#  LICENCE: LGPL
#  AUTHOR: Pooria Madani
#  PROJECT: LISA
#  MANTAINER: Cezar Campeanu
#
#
#  Modified by:
#
#	Brandon Stewart - added nxjson, stack, and filereader.  June/July 2015
#
ODIR = obj
YFLAGS = -d
PROGRAM = lex.yy.c y.tab.c nxjson.o symboltable.o icg.o abstractsyntaxtree.o  stack.o filereader.o parser.o
OBJS =  y.tab.o lex.yy.o nxjson.o icg.o symboltable.o abstractsyntaxtree.o f stack.o filereader.o
SRCS = y.tab.c lex.yy.c


CC = gcc

all:	$(PROGRAM)

lex.yy.c: lex.l
	flex -otmp/lex.yy.c lex.l


icg.o:	icg.h icg.c
	gcc -g -std=gnu99 -c -w -otmp/icg.o icg.c

y.tab.c: parser.y
	bison -g  -otmp/y.tab.c  -dv  parser.y

nxjson.o: ./nxjson/nxjson.c ./nxjson/nxjson.h
	gcc -g -std=gnu99 -c -o./tmp/nxjson.o ./nxjson/nxjson.c

symboltable.o: symboltable.h symboltable.c
	gcc -g -w -std=gnu99 -c -o./tmp/symboltable.o symboltable.c

abstractsyntaxtree.o: abstractsyntaxtree.c abstractsyntaxtree.h
	gcc -g -std=gnu99 -c -o./tmp/abstractsyntaxtree.o abstractsyntaxtree.c

stack.o: stack.c stack.h
	gcc -g -std=gnu99 -c -w -o./tmp/stack.o stack.c

filereader.o: filereader.c filereader.h
	gcc -g -std=gnu99 -c -w -o./tmp/filereader.o filereader.c

parser.o:  y.tab.c symboltable.o icg.o
		$(CC) -g -std=gnu99 -w  -o ../bin/lisa ./tmp/y.tab.c ./tmp/nxjson.o ./tmp/symboltable.o ./tmp/icg.o ./tmp/abstractsyntaxtree.o ./tmp/stack.o ./tmp/filereader.o -lfl -lm

clean:
	rm -f lex.yy.* *.tab.*
