packages feed

MiniAgda-0.2014.9.12: Makefile

# Makefile for miniagda

files=Abstract Collection Concrete Eval Extract HsSyntax Lexer Main Parser Polarity PrettyTCM ScopeChecker Semiring SparseMatrix TCM Termination ToHaskell Tokens TraceError TreeShapedOrder TypeChecker Util Value Warshall
hsfiles=$(foreach file,$(files),$(file).hs)
ghcflags=-ignore-package monads-fd -rtsopts
# -fglasgow-exts
optflags=
# -O  #slow compilation, not much speedup
profflags=-prof -auto-all
distfiles=*.hs *.hs-boot Lexer.x Parser.y Makefile
distdirs=test/succeed test/fail examples

cabalp=cabal install -p --enable-executable-profiling

.PHONY : test succeed fail examples lib current default all clean veryclean

default : Main test
all : Main test examples lib

prof-current : miniagda-prof
	miniagda-prof examples/FiCS12/fics12-06.ma +RTS -prof -s
#	miniagda-prof test/succeed/Zero.ma +RTS -prof -s
#	miniagda-prof privateExamples/NisseContNorm/negative-2010-11-23.ma +RTS -prof
current : Main
#	Main test/fail/BoundedFake.ma
	Main examples/Existential/StreamProcCase.ma
#	Main test/features/Existential/list.ma
#	Main test/features/Existential/nat.ma
#	Main examples/RBTree/RBTreeConor.ma
#	Main test/fail/InvalidField.ma
#	Main test/succeed/BuiltinSigma.ma
#	Main test/features/records.ma
#	Main test/succeed/MeasuredHerSubst2.ma
#	Main examples/Coinductive/SubjectReductionProblem.ma
#	Main examples/Sized/Maximum.ma
#	Main examples/Irrelevance/Vector.ma
#	Main examples/JeffTerellCoqClub20100120.ma
#	Main examples/HugoCantor/tryLoopInjData.ma
#	Main examples/HugoCantor/InjDataLoop.ma
#	Main test/features/countConstructors.ma
#	Main examples/HugoCantor/injectiveData.ma
#	Main examples/BoveCapretta/Eval.ma # vec.ma # examples/List.ma
#	Main test/fail/OverlappingPatternIndFam.ma # vec.ma # examples/List.ma

# ship : ../dist/miniagda-2009-07-03.tgz # 06-27.tgz
#
# ../dist/%.tgz : $(distfiles)
# 	tar czf $@ $^ $(distdirs)
#

miniagda-prof : Main.hs $(hsfiles)
	ghc $(ghcflags) $(profflags) $< --make -o $@

Main : Main.hs $(hsfiles)
	ghc $(ghcflags) $(optflags) $< --make -o $@

install-prof-libs :
	$(cabalp) transformers
	$(cabalp) mtl
	$(cabalp) syb
	$(cabalp) parsec
	$(cabalp) preprocessor-tools
	$(cabalp) cpphs
	$(cabalp) haskell-src-exts
	$(cabalp) IfElse
	$(cabalp) utility-ht

SCT : SCT.hs Lexer.hs SCTParser.hs SCTSyntax.hs
	ghc $(ghcflags) $< --make -o $@

Lexer.hs : Lexer.x
	alex $<

%arser.hs : %arser.y Lexer.hs
	happy --info=$<-grm.txt $<

test : Main succeed fail

succeed :
	@echo "======================================================================"
	@echo "===================== Suite of successfull tests ====================="
	@echo "======================================================================"
	make -C test/succeed

fail :
	@echo "======================================================================"
	@echo "======================= Suite of failing tests ======================="
	@echo "======================================================================"
	make -C test/fail

examples : Main
	@echo "======================================================================"
	@echo "========================== Suite of examples ========================="
	@echo "======================================================================"
	make -C examples

lib : Main
	@echo "======================================================================"
	@echo "=============================== Library =============================="
	@echo "======================================================================"
	make -C lib


clean :
	-rm *.o *.hi Main miniagda-prof
# 	make -C test/fail clean

veryclean : clean
	make -C test/fail clean

# EOF