CCFLAGS = -DLINUX -msse2 -msse3 
all: build

exec: build
	./fvpl < $(ARGS) > /tmp/tmp.c
	g++ $(CCFLAGS) -I./ /tmp/tmp.c

build: ast.cmo parser.cmo scanner.cmo symbol.cmo  interpret.cmo  fvpl.cmo 
		ocamlc -o fvpl parser.cmo scanner.cmo symbol.cmo interpret.cmo fvpl.cmo 

scanner.cmo: scanner.mll
		ocamllex scanner.mll
		
		
parser.cmo: parser.mly
		ocamlyacc parser.mly
		ocamlc -c parser.mli
		
ast.cmo: ast.mli
		ocamlc -c ast.mli

interpret.cmo: interpret.ml
		ocamlc -c interpret.ml
		
symbol.cmo: symbol.ml
		ocamlc -c symbol.ml

fvpl.cmo: fvpl.ml scanner.ml parser.ml 
		ocamlc -c scanner.ml
		ocamlc -c parser.ml
		ocamlc -c fvpl.ml

test: build
		chmod u+x testscript.sh
		./testscript.sh both

clean:
		rm -f *.cmo *.cmi parser.mli parser.ml scanner.ml fvpl a.out
