OCAMLC=ocamlc
OCAMLLEX=ocamllex
OCAMLYAC=ocamlyacc
REMOVE= banana *.cmi *.cmo lexer.ml parser.ml parser.mli inlineAuxLexer.ml inlineAuxParser.ml inlineAuxParser.mli *~ examples/*~


all: lexer.mll parser.mly ast.ml pretty.ml main.ml parse.ml transform.ml reduce.ml codeXML.ml
	$(OCAMLC) -c -g ast.ml
	$(OCAMLYAC) parser.mly
	$(OCAMLLEX) lexer.mll
	$(OCAMLC) -c -g parser.mli
	$(OCAMLC) -c -g lexer.ml
	$(OCAMLC) -c -g parser.ml
	$(OCAMLC) -c -g parse.ml
	$(OCAMLC) -c -g transform.ml
	$(OCAMLC) -c -g codeXML.ml
	$(OCAMLYAC) inlineAuxParser.mly
	$(OCAMLLEX) inlineAuxLexer.mll
	$(OCAMLC) -c -g inlineAuxParser.mli
	$(OCAMLC) -c -g inlineAuxLexer.ml
	$(OCAMLC) -c -g inlineAuxParser.ml
	$(OCAMLC) -c -g inlineParser.ml
	$(OCAMLC) -c -g reduce.ml
	$(OCAMLC) -c -g pretty.ml
	$(OCAMLC) -c -g main.ml
	$(OCAMLC) -g -o banana ast.cmo lexer.cmo parser.cmo parse.cmo transform.cmo codeXML.cmo inlineAuxLexer.cmo inlineAuxParser.cmo inlineParser.cmo reduce.cmo pretty.cmo main.cmo


lexer: lexer.mll
	$(OCAMLLEX) lexer.mll


parser: parser.mly
	$(OCAMLYAC) parser.mly


clean:
	-rm -rfv $(REMOVE) 


backup:
	make clean
	tar -zcvf banana-`date +%y_%m_%d_%Hh%M`.tgz compile *.ml* Makefile examples/*/*.l examples/*/*.x
