packages feed

MiniAgda-0.2025.7.23: src/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

# Generate License.hs
#####################

.PHONY: license

license: License.hs

License.hs : ../LICENSE Makefile
	echo "\
-- This file was autogenerated from LICENSE, do not edit!!\n\n\
{-# LANGUAGE QuasiQuotes #-}\n\n\
module License where\n\n\
import Data.String.QQ\n\n\
copyright :: String\n\
copyright = head (lines license)\n\n\
license :: String\n\
license = [s|" > $@
	cat $< >> $@
	echo "\n|]" >> $@

# Generate emacs tags
#####################

.PHONY: TAGS

TAGS :
	hasktags -e *.hs

# Building
##########

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 $<

# Testing
#########

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

# Cleaning
##########

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

veryclean : clean
	make -C ../test/fail clean

# EOF