#
# Mark Thomas
#


GCC 	= gcc
LEX 	= /usr/bin/lex
YACC 	= bison
YFLAGS	= -dv
LFLAGS	= -t
CFLAGS 	= -O2 -ansi -pedantic -ggdb -g 
LINKER	= -ll
SRC	= debug.c debug.h  nameAnalyser.c nameAnalyser.h xalloc.c xalloc.h node.c node.h parse.y lex.l main.c evalTree.c evalTree.h
OBJ	= parse.o lex.o debug.o xalloc.o nameAnalyser.o node.o main.o evalTree.o
EXE	= interpreter

all:	$(OBJ)
	$(GCC) $(CFLAGS) -Wall -o $(EXE) $(OBJ) $(LINKER)

.c.o:
	$(GCC) $(CFLAGS) -c $<

lex.o:	parse.tab.h lex.c

lex.c:	lex.l
	$(LEX) $(LFLAGS) lex.l > lex.c

parse.o:parse.c

parse.c:parse.y
	$(YACC) $(YFLAGS) parse.y
	mv -f parse.tab.c parse.c
	
	
clean:	;rm -f $(EXE) parse.output parse.tab.h parse.c lex.c core *.o *~
