# A Makefile for the VSPL compiler and interpreter

# Changed to lex and yacc rather than flex and bison -- MR 4/3/03

help:
	@echo
	@echo "make primes         Compile and run primes.vs"
	@echo "make demo           Compile and run demo.vs"
	@echo "make t              Compile and run t.vs"
	@echo "make tst            Compile and run tst.vs"
	@echo "make clean          Delete unneeded files"
	@echo

primes:	vspl
	vspl  -p -c ../primes.vs

demo:	vspl
	vspl -p -c -t ../demo.vs

t:	vspl
	cat ../t.vs
	vspl -p ../t.vs

tst:	vspl
	cat ../tst.vs
	vspl -p ../tst.vs

# How to compile with gcc

.c.o:
	gcc -c -O2 $*.c

# Create a new compiler

vspl:	main.o parser.o scanner.o
	gcc -o vspl main.o parser.o scanner.o -lfl

main.o:	parser.h

scanner.c:	scanner.l
	lex scanner.l
	mv lex.yy.c scanner.c

scanner.o:	scanner.c parser.h vspl.h

parser.o:	parser.c vspl.h

parser.c parser.h:	parser.y
	yacc -v -d parser.y
	mv y.tab.c parser.c
	mv y.tab.h parser.h

clean:	
	rm -f vspl main.o parser.o scanner.o
	rm -f scanner.c parser.c parser.h y.output
	rm -f *~ *.*~ core





