Makefile revision 7bb0a9e92bc7a6f868eaa0b9c3212c0af4f96b7f
819fe493f97078521bb6b9a7b97583bef89f5abcMark Andrews# Authors: (c) Klaus Luettich, Christian Maeder, Uni Bremen 2002-2009
819fe493f97078521bb6b9a7b97583bef89f5abcMark Andrews# Jens Elkner, Uni Magdeburg 2016
819fe493f97078521bb6b9a7b97583bef89f5abcMark Andrews# This GNU Makefile will compile the hets system and provides also
819fe493f97078521bb6b9a7b97583bef89f5abcMark Andrews# targets for test programs during implementation phases.
819fe493f97078521bb6b9a7b97583bef89f5abcMark Andrews -fwarn-unrecognised-pragmas -fno-warn-orphans $(NO_BIND_WARNING)
819fe493f97078521bb6b9a7b97583bef89f5abcMark Andrews# uncomment HC_PROF for profiling (and comment out packages in var.mk)
819fe493f97078521bb6b9a7b97583bef89f5abcMark Andrews# call resulting binary with a final +RTS -p to get a file <binary>.prof
819fe493f97078521bb6b9a7b97583bef89f5abcMark Andrews#HC_PROF := -prof -auto-all -osuf p_o +RTS -K100m -RTS
33d96fbbc8aa221508f3c780539bf44810fd2c9cMark Andrews# -ddump-minimal-imports
33d96fbbc8aa221508f3c780539bf44810fd2c9cMark Andrews# uncomment the above line to generate .imports files for displayDependencyGraph
33d96fbbc8aa221508f3c780539bf44810fd2c9cMark Andrews# *.bin variants here to let them survive a 'make clean'
33d96fbbc8aa221508f3c780539bf44810fd2c9cMark Andrews# Documentation (no haddock stuff, i.e. "docs/index.html", since developer can
33d96fbbc8aa221508f3c780539bf44810fd2c9cMark Andrews# generated it on demand by themselves and other users dont't need it). Other
33d96fbbc8aa221508f3c780539bf44810fd2c9cMark Andrews# papers (doc/*.pdf) are already pre-generated.
33d96fbbc8aa221508f3c780539bf44810fd2c9cMark Andrews# Upgrade haskell-stack
33d96fbbc8aa221508f3c780539bf44810fd2c9cMark Andrews# Create the build environment
33d96fbbc8aa221508f3c780539bf44810fd2c9cMark Andrews $(STACK) build --install-ghc --only-dependencies $(STACK_DEPENDENCIES_FLAGS)
33d96fbbc8aa221508f3c780539bf44810fd2c9cMark AndrewsSED := $(shell [ "$(OSNAME)" = 'SunOS' ] && printf 'gsed' || printf 'sed')
33d96fbbc8aa221508f3c780539bf44810fd2c9cMark AndrewsTAR := $(shell [ "$(OSNAME)" = 'SunOS' ] && printf 'gtar' || printf 'tar')
33d96fbbc8aa221508f3c780539bf44810fd2c9cMark AndrewsINSTALL := $(shell [ "$(OSNAME)" = 'SunOS' ] && printf 'ginstall' || printf 'install')
33d96fbbc8aa221508f3c780539bf44810fd2c9cMark Andrews -e '/^hetsVersionNumeric =/ { s/.*"\([^"]*\)".*/\1/; p; q; }' \
819fe493f97078521bb6b9a7b97583bef89f5abcMark Andrews# indicate, whether working on an exported repo
819fe493f97078521bb6b9a7b97583bef89f5abcMark Andrews# the 'replacing spaces' example was taken from the (GNU) Make info manual
819fe493f97078521bb6b9a7b97583bef89f5abcMark AndrewsGENERATERULES_deps = utils/GenerateRules/*hs $(DRIFT_deps)
819fe493f97078521bb6b9a7b97583bef89f5abcMark AndrewsGENITCORRECTIONS_deps = utils/itcor/GenItCorrections.hs
819fe493f97078521bb6b9a7b97583bef89f5abcMark AndrewsGENRULECALL = $(GENRULES) -r ShATermConvertible \
819fe493f97078521bb6b9a7b97583bef89f5abcMark Andrews# list glade files
819fe493f97078521bb6b9a7b97583bef89f5abcMark AndrewsGTK_GLADE_HSFILES = $(subst .glade,.hs,$(GTK_GLADE_FILES))
819fe493f97078521bb6b9a7b97583bef89f5abcMark Andrews# the list of logics that need ShATermConvertible instances
819fe493f97078521bb6b9a7b97583bef89f5abcMark Andrewslogics = CASL HasCASL Isabelle Modal Hybrid TopHybrid Temporal \
819fe493f97078521bb6b9a7b97583bef89f5abcMark Andrews SoftFOL ConstraintCASL Propositional RelationalScheme VSE OMDoc DFOL \
819fe493f97078521bb6b9a7b97583bef89f5abcMark Andrews LF Framework Maude ExtModal CommonLogic CSL QBF Adl HolLight Fpl THF \
819fe493f97078521bb6b9a7b97583bef89f5abcMark AndrewsTESTTARGETFILES += Scratch.hs CASL/fromKif.hs CASL/capa.hs HasCASL/hacapa.hs \
819fe493f97078521bb6b9a7b97583bef89f5abcMark Andrews Haskell/wrap.hs Isabelle/isa.hs Syntax/hetpa.hs \
819fe493f97078521bb6b9a7b97583bef89f5abcMark Andrews ATC/ATCTest.hs ATC/ATCTest2.hs Common/ATerm/ATermLibTest.hs \
819fe493f97078521bb6b9a7b97583bef89f5abcMark Andrews Common/ATerm/ATermDiffMain.hs Common/annos.hs \
819fe493f97078521bb6b9a7b97583bef89f5abcMark Andrews SoftFOL/tests/PrintTPTPTests.hs Comorphisms/test/showKP.hs \
819fe493f97078521bb6b9a7b97583bef89f5abcMark Andrews Comorphisms/test/sublogicGraph.hs PGIP/ParseProofScript.hs \
819fe493f97078521bb6b9a7b97583bef89f5abcMark Andrews SoftFOL/dfg.hs Adl/adl.hs GUI/displayDependencyGraph.hs
819fe493f97078521bb6b9a7b97583bef89f5abcMark Andrews### list of directories to run checks in
819fe493f97078521bb6b9a7b97583bef89f5abcMark AndrewsTESTDIRS += Common CASL Fpl/test HasCASL test ExtModal/Tries \
819fe493f97078521bb6b9a7b97583bef89f5abcMark Andrewshs_clean_files = Haskell/TiATC.hs Haskell/TiDecorateATC.hs \
819fe493f97078521bb6b9a7b97583bef89f5abcMark Andrews Haskell/TiPropATC.hs Haskell/ATC_Haskell.der.hs
819fe493f97078521bb6b9a7b97583bef89f5abcMark AndrewsPFE_DIRS := base/AST base/TI base/parse2 base/parse2/Lexer base/parse2/Parser \
819fe493f97078521bb6b9a7b97583bef89f5abcMark Andrews base/parse2/LexerGen base/parse2/LexerSpec base/tests/HbcLibraries \
819fe493f97078521bb6b9a7b97583bef89f5abcMark Andrews base/pretty base/syntax base/lib base/lib/Monads base/Modules base/defs \
819fe493f97078521bb6b9a7b97583bef89f5abcMark Andrews base/transforms base/transforms/Deriving property \
819fe493f97078521bb6b9a7b97583bef89f5abcMark Andrews property/syntax property/AST property/transforms \
819fe493f97078521bb6b9a7b97583bef89f5abcMark Andrews property/TI property/defs property/parse2 property/parse2/Parser
819fe493f97078521bb6b9a7b97583bef89f5abcMark AndrewsPFE_PATHS := $(addprefix $(PFE_TOOLDIR)/, $(PFE_DIRS))
819fe493f97078521bb6b9a7b97583bef89f5abcMark AndrewsDRIFT_ENV := DERIVEPATH=$(subst $(space),:,$(PFE_PATHS))
819fe493f97078521bb6b9a7b97583bef89f5abcMark AndrewsAPPENDPRELUDESTRING = utils/appendHaskellPreludeString \
819fe493f97078521bb6b9a7b97583bef89f5abcMark Andrews## rule for appendHaskellPreludeString
819fe493f97078521bb6b9a7b97583bef89f5abcMark AndrewsHaskell/PreludeString.hs: Haskell/PreludeString.append.hs \
819fe493f97078521bb6b9a7b97583bef89f5abcMark AndrewsAst_Haskell_files = HsDeclStruct HsExpStruct HsFieldsStruct \
819fe493f97078521bb6b9a7b97583bef89f5abcMark Andrews HsGuardsStruct HsKindStruct HsPatStruct HsTypeStruct HsAssocStruct \
819fe493f97078521bb6b9a7b97583bef89f5abcMark Andrews#Ti_Haskell_files = TiTypes TiKinds TiDecorate TiInstanceDB
819fe493f97078521bb6b9a7b97583bef89f5abcMark Andrews#Ti_Prop_files = property/TI/TiPropDecorate property/syntax/PropSyntaxRec
819fe493f97078521bb6b9a7b97583bef89f5abcMark AndrewsOther_PFE_files := property/AST/HsPropStruct base/defs/PNT \
819fe493f97078521bb6b9a7b97583bef89f5abcMark Andrews base/defs/UniqueNames base/Modules/TypedIds base/Modules/Ents \
819fe493f97078521bb6b9a7b97583bef89f5abcMark Andrews base/parse2/SourceNames base/syntax/SyntaxRec \
819fe493f97078521bb6b9a7b97583bef89f5abcMark Andrews $(addprefix $(PFE_TOOLDIR)/base/AST/, $(Ast_Haskell_files)) \
819fe493f97078521bb6b9a7b97583bef89f5abcMark Andrews $(addprefix $(PFE_TOOLDIR)/, $(Other_PFE_files)))
819fe493f97078521bb6b9a7b97583bef89f5abcMark Andrews## rule for ATC generation
819fe493f97078521bb6b9a7b97583bef89f5abcMark AndrewsHaskell/ATC_Haskell.der.hs: $(Haskell_files) $(GENRULES)
819fe493f97078521bb6b9a7b97583bef89f5abcMark Andrews $(GENRULECALL) -r Typeable -i Data.Typeable -i Haskell.BaseATC \
819fe493f97078521bb6b9a7b97583bef89f5abcMark AndrewsTESTTARGETFILES += Haskell/hana.hs Haskell/h2h.hs Haskell/h2hf.hs
819fe493f97078521bb6b9a7b97583bef89f5abcMark Andrews# end of programatica stuff (PFE_FLAGS)
819fe493f97078521bb6b9a7b97583bef89f5abcMark Andrews# files generated by DriFT
819fe493f97078521bb6b9a7b97583bef89f5abcMark Andrews CASL/AS_Basic_CASL.hs Modal/AS_Modal.hs Hybrid/AS_Hybrid.hs TopHybrid/AS_TopHybrid.hs \
819fe493f97078521bb6b9a7b97583bef89f5abcMark Andrews Syntax/AS_Structured.hs Syntax/AS_Architecture.hs Syntax/AS_Library.hs \
819fe493f97078521bb6b9a7b97583bef89f5abcMark Andrews CspCASL/AS_CspCASL_Process.hs CspCASL/AS_CspCASL.hs \
819fe493f97078521bb6b9a7b97583bef89f5abcMark Andrews# files to extract data types from to generate ShATermConvertible instances
819fe493f97078521bb6b9a7b97583bef89f5abcMark Andrewsatc_files = Common/AS_Annotation.der.hs Common/DefaultMorphism.hs \
819fe493f97078521bb6b9a7b97583bef89f5abcMark Andrews Syntax/AS_Structured.der.hs Syntax/AS_Architecture.der.hs \
819fe493f97078521bb6b9a7b97583bef89f5abcMark Andrews Common/GlobalAnnotations.hs Syntax/AS_Library.der.hs \
819fe493f97078521bb6b9a7b97583bef89f5abcMark Andrews Logic/Prover.hs Common/LibName.hs Common/ExtSign.hs \
819fe493f97078521bb6b9a7b97583bef89f5abcMark Andrews Static/DgUtils.hs Static/XGraph.hs Static/DevGraph.hs \
819fe493f97078521bb6b9a7b97583bef89f5abcMark Andrews Common/Id.hs Common/Result.hs Common/OrderedMap.hs \
819fe493f97078521bb6b9a7b97583bef89f5abcMark Andrews# files generated by genRules as input for DriFT
819fe493f97078521bb6b9a7b97583bef89f5abcMark Andrews ATC/$(basename $(basename $(notdir $(file)))).der.hs)
819fe493f97078521bb6b9a7b97583bef89f5abcMark Andrews# the rules to create ATC .der.hs file for DriFT
819fe493f97078521bb6b9a7b97583bef89f5abcMark AndrewsATC/OrderedMap.der.hs: Common/OrderedMap.hs $(GENRULES)
819fe493f97078521bb6b9a7b97583bef89f5abcMark AndrewsATC/Graph.der.hs: Common/Lib/Graph.hs $(GENRULES)
819fe493f97078521bb6b9a7b97583bef89f5abcMark AndrewsATC/ProofTree.der.hs: Common/ProofTree.hs $(GENRULES)
819fe493f97078521bb6b9a7b97583bef89f5abcMark AndrewsATC/AS_Annotation.der.hs: Common/AS_Annotation.der.hs $(GENRULES)
819fe493f97078521bb6b9a7b97583bef89f5abcMark Andrews $(GENRULECALL) -i ATC.IRI -i Common.ATerm.ConvInstances -o $@ $<
819fe493f97078521bb6b9a7b97583bef89f5abcMark AndrewsATC/Consistency.der.hs: Common/Consistency.hs $(GENRULES)
819fe493f97078521bb6b9a7b97583bef89f5abcMark Andrews $(GENRULECALL) -x Common.Consistency.ConservativityChecker -o $@ $<
819fe493f97078521bb6b9a7b97583bef89f5abcMark AndrewsATC/LibName.der.hs: Common/LibName.hs $(GENRULES)
819fe493f97078521bb6b9a7b97583bef89f5abcMark Andrews $(GENRULECALL) -i ATC.IRI -i Common.ATerm.ConvInstances -o $@ $<
819fe493f97078521bb6b9a7b97583bef89f5abcMark AndrewsATC/ExtSign.der.hs: Common/ExtSign.hs $(GENRULES)
819fe493f97078521bb6b9a7b97583bef89f5abcMark Andrews $(GENRULECALL) -i Common.ATerm.ConvInstances -o $@ $<
819fe493f97078521bb6b9a7b97583bef89f5abcMark AndrewsATC/DefaultMorphism.der.hs: Common/DefaultMorphism.hs $(GENRULES)
819fe493f97078521bb6b9a7b97583bef89f5abcMark AndrewsATC/AS_Structured.der.hs: Syntax/AS_Structured.der.hs $(GENRULES)
819fe493f97078521bb6b9a7b97583bef89f5abcMark AndrewsATC/AS_Architecture.der.hs: Syntax/AS_Architecture.der.hs $(GENRULES)
819fe493f97078521bb6b9a7b97583bef89f5abcMark AndrewsATC/AS_Library.der.hs: Syntax/AS_Library.der.hs $(GENRULES)
819fe493f97078521bb6b9a7b97583bef89f5abcMark Andrews $(GENRULECALL2) -i ATC.AS_Architecture -i ATC.LibName -o $@ $<
819fe493f97078521bb6b9a7b97583bef89f5abcMark AndrewsATC/GlobalAnnotations.der.hs: Common/GlobalAnnotations.hs $(GENRULES)
819fe493f97078521bb6b9a7b97583bef89f5abcMark Andrews $(GENRULECALL) -i ATC.AS_Annotation -i ATC.Result -o $@ $<
819fe493f97078521bb6b9a7b97583bef89f5abcMark Andrews $(GENRULECALL) -x Logic.Prover.ProverTemplate \
819fe493f97078521bb6b9a7b97583bef89f5abcMark Andrews -i ATC.AS_Annotation -i ATC.OrderedMap -o $@ $<
819fe493f97078521bb6b9a7b97583bef89f5abcMark AndrewsATC/DgUtils.der.hs: Static/DgUtils.hs $(GENRULES)
819fe493f97078521bb6b9a7b97583bef89f5abcMark Andrews $(GENRULECALL2) -i ATC.LibName -i ATC.Consistency -o $@ $<
819fe493f97078521bb6b9a7b97583bef89f5abcMark AndrewsATC/DevGraph.der.hs: Static/DevGraph.hs $(GENRULES)
819fe493f97078521bb6b9a7b97583bef89f5abcMark Andrews $(GENRULECALL2) -i ATC.XGraph -i ATC.AS_Library -o $@ $<
819fe493f97078521bb6b9a7b97583bef89f5abcMark Andrews# ATC files for every logic
819fe493f97078521bb6b9a7b97583bef89f5abcMark AndrewsCASL_files = CASL/Sublogic.hs CASL/Morphism.hs CASL/Sign.hs \
819fe493f97078521bb6b9a7b97583bef89f5abcMark AndrewsHasCASL_files = Common/Prec.hs HasCASL/As.hs HasCASL/Le.hs HasCASL/Sublogic.hs
819fe493f97078521bb6b9a7b97583bef89f5abcMark AndrewsPropositional_files = Propositional/Sign.hs Propositional/Morphism.hs \
819fe493f97078521bb6b9a7b97583bef89f5abcMark Andrews Propositional/AS_BASIC_Propositional.hs Propositional/Symbol.hs \
819fe493f97078521bb6b9a7b97583bef89f5abcMark AndrewsHolLight_files = HolLight/Sentence.hs HolLight/Sign.hs \
819fe493f97078521bb6b9a7b97583bef89f5abcMark AndrewsQBF_files = Propositional/Sign.hs QBF/Morphism.hs \
819fe493f97078521bb6b9a7b97583bef89f5abcMark AndrewsRS_files = RelationalScheme/AS.hs RelationalScheme/Sign.hs
819fe493f97078521bb6b9a7b97583bef89f5abcMark AndrewsModal_files = Modal/AS_Modal.hs Modal/ModalSign.hs
819fe493f97078521bb6b9a7b97583bef89f5abcMark AndrewsHybrid_files = Hybrid/AS_Hybrid.hs Hybrid/HybridSign.hs
819fe493f97078521bb6b9a7b97583bef89f5abcMark AndrewsTopHybrid_files = TopHybrid/AS_TopHybrid.hs TopHybrid/TopHybridSign.hs
819fe493f97078521bb6b9a7b97583bef89f5abcMark AndrewsTemporal_files = Temporal/AS_BASIC_Temporal.hs Temporal/Sign.hs \
819fe493f97078521bb6b9a7b97583bef89f5abcMark AndrewsConstraintCASL_files = ConstraintCASL/AS_ConstraintCASL.hs
819fe493f97078521bb6b9a7b97583bef89f5abcMark AndrewsCoCASL_files = CoCASL/AS_CoCASL.hs CoCASL/CoCASLSign.hs
819fe493f97078521bb6b9a7b97583bef89f5abcMark AndrewsCspCASL_files = CspCASL/AS_CspCASL.hs CspCASL/AS_CspCASL_Process.hs \
819fe493f97078521bb6b9a7b97583bef89f5abcMark Andrews CspCASL/SignCSP.hs CspCASL/SymbItems.hs CspCASL/Symbol.hs \
819fe493f97078521bb6b9a7b97583bef89f5abcMark AndrewsCASL_DL_files = CASL_DL/AS_CASL_DL.hs CASL_DL/Sign.hs CASL_DL/Sublogics.hs
819fe493f97078521bb6b9a7b97583bef89f5abcMark AndrewsDFOL_files = DFOL/AS_DFOL.hs DFOL/Sign.hs DFOL/Morphism.hs DFOL/Symbol.hs
819fe493f97078521bb6b9a7b97583bef89f5abcMark AndrewsMaude_files = Maude/Sign.hs Maude/Morphism.hs Maude/Sentence.hs \
819fe493f97078521bb6b9a7b97583bef89f5abcMark AndrewsExtModal_files = ExtModal/AS_ExtModal.hs ExtModal/ExtModalSign.hs \
33d96fbbc8aa221508f3c780539bf44810fd2c9cMark Andrews ExtModal/MorphismExtension.hs ExtModal/Sublogic.hs
33d96fbbc8aa221508f3c780539bf44810fd2c9cMark AndrewsCSL_files = CSL/Sign.hs CSL/Morphism.hs CSL/AS_BASIC_CSL.hs CSL/Symbol.hs \
33d96fbbc8aa221508f3c780539bf44810fd2c9cMark AndrewsCommonLogic_files = CommonLogic/AS_CommonLogic.hs CommonLogic/Sign.hs \
819fe493f97078521bb6b9a7b97583bef89f5abcMark Andrews CommonLogic/Symbol.hs CommonLogic/Morphism.hs CommonLogic/Sublogic.hs
-o $@ $(QVTR_files)
# all ATC .der.hs files for all logics
# a rule to create all .der.hs files
-i http://hackage.haskell.org/packages/archive/$(basename $(notdir $(file)))/latest/doc/html,$(file))
# Common/LaTeX_maps.hs generation
$(TESTTARGETS)
CommonLogic/TestData/*.{pp.het,th} Common/testxmldiff \
$(DTD2HS) \
.SUFFIXES:
%.d : %.hs
%.d : %.lhs
jars:
@if [ -e $(PFE_BASE) ]; then \
@if [ -e $(PFE_SETUP_FILE) ]; then \
# remove trailing .txz or .tar.xz
if [ -e $(USER_GUIDE) ]; then \
DEFAULT_DESTDIR := \
SUBDIR_common := \
SUBDIR_hets := \
SUBDIR_hets_server := \
# see OWL2/ProveFact.hs - it doesn't use OSGi so we need to extract JNI libs
X=`ls ../lib/uk.ac.manchester.cs.owl.factplusplus*.jar` ; \
%.bin:
# *.debian.tar.xz, for local packages we generate it on demand.
-l$(CHANGELOG)
-l$(CHANGELOG)
-l$(CHANGELOG)