Skip to content
Snippets Groups Projects
Makefile 3.36 KiB
Newer Older
Erwan Jahier's avatar
Erwan Jahier committed

OCAMLMAKEFILE = ./OCamlMakefile
Erwan Jahier's avatar
Erwan Jahier committed
RESULT=lus2lic
Erwan Jahier's avatar
Erwan Jahier committed

Erwan Jahier's avatar
Erwan Jahier committed

Erwan Jahier's avatar
Erwan Jahier committed
#OCAMLNCFLAGS=-inline 100 -unsafe -noassert -ccopt -O9

Erwan Jahier's avatar
Erwan Jahier committed
ifndef SOURCES
Erwan Jahier's avatar
Erwan Jahier committed
SOURCES =  \
	./version.ml \
	./verbose.mli \
	./verbose.ml \
Erwan Jahier's avatar
Erwan Jahier committed
	./lxm.mli \
	./lxm.ml \
	./errors.ml \
Erwan Jahier's avatar
Erwan Jahier committed
	./syntaxTreeCore.ml \
	./syntaxTree.ml \
	./solveIdent.mli \
	./solveIdent.ml \
Erwan Jahier's avatar
Erwan Jahier committed
	./parser.mly \
	./lexer.mll \
	./instanciateModel.mli \
	./instanciateModel.ml \
Erwan Jahier's avatar
Erwan Jahier committed
	./symbolTab.mli \
	./symbolTab.ml \
	./eff.ml \
	./name.mli \
	./name.ml \
	./licDump.ml \
	./unifyType.mli \
	./unifyType.ml \
	./unifyClock.mli \
	./unifyClock.ml \
	./predefEvalType.mli \
	./predefEvalType.ml \
	./predefEvalConst.mli \
	./predefEvalConst.ml \
	./predefEvalClock.mli \
	./predefEvalClock.ml \
Erwan Jahier's avatar
Erwan Jahier committed
	./evalConst.mli \
	./evalConst.ml \
	./evalClock.mli \
	./evalClock.ml \
	./structArrayExpand.mli \
	./structArrayExpand.ml \
	./nodesExpand.mli \
	./nodesExpand.ml \
	./inline.mli \
	./inline.ml \
Erwan Jahier's avatar
Erwan Jahier committed
	./lazyCompiler.ml \
	./lazyCompiler.mli \
	./compile.ml \
	./main.ml
Erwan Jahier's avatar
Erwan Jahier committed
endif

Erwan Jahier's avatar
Erwan Jahier committed
# Be sure to build those files before doing something else
# since they are needed by $(RESULT)
PRE_TARGETS=./version.ml

Erwan Jahier's avatar
Erwan Jahier committed
MLONLY_SOURCES=$(filter %.ml %.mll %.mly, $(SOURCES))

Erwan Jahier's avatar
Erwan Jahier committed
all:
	make bc

Erwan Jahier's avatar
Erwan Jahier committed
##############################################################################
Erwan Jahier's avatar
Erwan Jahier committed
test/ocamlprof.dump: pbc
Erwan Jahier's avatar
Erwan Jahier committed
	make test || true
	mkdir prof || rm prof/*
	for d in ${SOURCES}; do \
	   ocamlprof -F "ocamlprof: " -f test/ocamlprof.dump $$d > prof/$$d ;\
Erwan Jahier's avatar
Erwan Jahier committed
# Upsate the test coverage rate
coverage:
	grep -n -e  "(\* ocamlprof: 0 \*)" prof/*.ml | grep -v "assert false" > dead.grep
	grep -n -e  "(\* ocamlprof: " prof/*.ml | grep -v "assert false" > all.grep
	DEAD_HITS=`wc -l dead.grep | cut -f 1 -d " "`;\
	ALL_HITS=`wc -l all.grep  | cut -f 1 -d " "`;\
	SOL=`echo "scale=2 ; $$DEAD_HITS * 100 / $$ALL_HITS " | bc ` ;\
	echo "$$DEAD_HITS / $$ALL_HITS = $$SOL %" > untested_line_counter
Erwan Jahier's avatar
Erwan Jahier committed
	make clean
	cat untested_line_counter

##############################################################################"
Erwan Jahier's avatar
Erwan Jahier committed
# for using the debugger
Erwan Jahier's avatar
Erwan Jahier committed
debug:
Erwan Jahier's avatar
Erwan Jahier committed
	make MLONLY=yes SOURCES="$(MLONLY_SOURCES)" dc || true
Erwan Jahier's avatar
Erwan Jahier committed

Erwan Jahier's avatar
Erwan Jahier committed
include $(OCAMLMAKEFILE)
Erwan Jahier's avatar
Erwan Jahier committed

Erwan Jahier's avatar
Erwan Jahier committed
# cf ../release-lv6/Makefile pour une install complete.
verimag:
	cp lus2lic /usr/local/tools/lustre-v6/current/bin
Erwan Jahier's avatar
Erwan Jahier committed

tags:
Erwan Jahier's avatar
Erwan Jahier committed
	otags  $(SOURCES)  $(shell ocamlc -where)/*.mli
Erwan Jahier's avatar
Erwan Jahier committed

Erwan Jahier's avatar
Erwan Jahier committed
test: $(RESULT)
utest: $(RESULT)
	cd test; make utest

cia:
	cd ..; make cia

ci:
	cd ..; make ci

dot2ps:
	dot -Tps lus2lic.dot > lus2lic.dot.ps 
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