OCAMLMAKEFILE = ./OCamlMakefile
RESULT=lus2lic

LIBS = str 
OCAMLC=ocamlc

ifndef SOURCES
SOURCES =  \
	./version.ml \
	./verbose.mli \
	./verbose.ml \
	./global.ml \
	./ident.mli \
	./ident.ml \
	./lxm.mli \
	./lxm.ml \
	./errors.ml \
	./predef.ml \
	./syntaxTreeCore.ml \
	./syntaxTree.ml \
	./solveIdent.mli \
	./solveIdent.ml \
	./parserUtils.ml \
	./parser.mly \
	./lexer.mll \
	./syntaxTreeDump.mli \
	./syntaxTreeDump.ml \
	./syntaxTabUtils.mli \
	./syntaxTabUtils.ml \
	./expandPack.mli \
	./expandPack.ml \
	./symbolTab.mli \
	./symbolTab.ml \
	./compiledData.ml \
	./compiledDataDump.ml \
	./unify.mli \
	./unify.ml \
	./syntaxTab.mli \
	./syntaxTab.ml \
	./predefEvalType.mli \
	./predefEvalType.ml \
	./predefEvalConst.mli \
	./predefEvalConst.ml \
	./evalConst.mli \
	./evalConst.ml \
	./evalType.mli \
	./evalType.ml \
	./getEff.mli \
	./getEff.ml \
	./lazyCompiler.ml \
	./lazyCompiler.mli \
	./compile.ml \
	./main.ml
endif

MLONLY_SOURCES=$(filter %.ml %.mll %.mly, $(SOURCES))


all: version.ml
	make bc

# for using the debugger
debug: version.ml
	mkdir -p mli
	mv *.mli mli/
	make MLONLY=yes SOURCES="$(MLONLY_SOURCES)" dc || true
	mv mli/* .





include $(OCAMLMAKEFILE)




tags:
	otags  $(SOURCES)  $(shell ocamlc -where)/*.mli

test: $(RESULT)
	cd test; make test

utest: $(RESULT)
	cd test; make utest

diff:
	cd ..; make diff

cia:
	cd ..; make cia

ci:
	cd ..; make ci

wc:
	wc $(SOURCES)

# Specific rule (version)

.PHONY: version.ml
version.ml: 
	echo "(* Automatically generated from src/Makefile *) " > version.ml
	echo "let tool = \"lus2lic\"" >> version.ml
	echo "let branch = \"$(shell utils/get_branch_name)\"" >> version.ml
	echo "let commit = \"$(shell utils/get_commit_number)\"" >> version.ml
	echo "let sha_1 = \"$(shell utils/get_sha_1)"\">> version.ml
	echo "let str = (branch ^ \".\" ^ commit)">> version.ml