rules revision 4ea99e115bbade1632815267d5e0dcb9931aac1e
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina# Author: (c) Klaus L�ttich, Christian Maeder, Uni Bremen 2002-2005
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina# This Makefile will compile the new hets system and provides also
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina# targets for test programs during implementation phases.
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina# !!! Note: This makefile is written for GNU make !!!
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina# (gmake on solaris)
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březinaall: patch hets
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina####################################################################
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina## Some varibles, which control the compilation
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel BřezinaINCLUDE_PATH = fgl hxt
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina fgl/Data/Graph/Inductive fgl/Data/Graph/Inductive/Internal \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina fgl/Data/Graph/Inductive/Monad fgl/Data/Graph/Inductive/Query
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel BřezinaCLEAN_PATH = . utils/DrIFT-src utils/GenerateRules utils/InlineAxioms Common \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina Syntax Static GUI HasCASL Haskell Modal CoCASL COL \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina CspCASL ATC ToHaskell Proofs Comorphisms Isabelle Driver \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina Taxonomy CASL_DL SPASS OWL_DL $(PFE_PATHS)
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina# the 'replacing spaces' example was taken from the (GNU) Make info manual
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březinaspace = $(empty) $(empty)
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina## set ghc imports properly for your system
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel BřezinaGHC_IMPORTS = `$(HC) --print-libdir`/imports
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina# import directories for ghc-5.04.2
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel BřezinaGHC5 = $(GHC_IMPORTS)/base:$(GHC_IMPORTS)/haskell98
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina DERIVEPATH=.:ghc:$(GHC_IMPORTS):$(GHC5):$(subst $(space),:,$(PFE_PATHS))
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina# override on commandline for other architectures
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel BřezinaINSTALLDIR = \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina /home/www/agbkb/forschung/formal_methods/CoFI/hets/`utils/sysname.sh`
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel BřezinaDRIFT_deps = utils/DrIFT-src/*hs
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel BřezinaGENERATERULES_deps = utils/GenerateRules/*hs $(DRIFT_deps) Common/Utils.hs
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel BřezinaINLINEAXIOMS_deps = utils/InlineAxioms/InlineAxioms.hs \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina Common/Lib/Pretty.hs Common/Keywords.hs Common/Lib/Set.hs \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina Common/Lib/Map.hs Common/Lib/Rel.hs Common/Lib/State.hs Common/Id.hs \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina Common/AS_Annotation.hs CASL/AS_Basic_CASL.hs CASL/ShowMixfix.hs \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina CASL/Utils.hs Common/Lexer.hs Common/Token.hs Common/Anno_Parser.hs \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina Common/GlobalAnnotations.hs Common/PrettyPrint.hs \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina Common/Print_AS_Annotation.hs Common/PPUtils.hs CASL/LiteralFuns.hs \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina CASL/Print_AS_Basic.hs Common/AnnoState.hs CASL/Formula.hs \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina CASL/OpItem.hs CASL/SortItem.hs CASL/Inject.hs Common/Result.hs \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina Common/ConvertLiteral.hs Common/Earley.hs CASL/MixfixParser.hs \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina CASL/Parse_AS_Basic.hs CASL/Sign.hs CASL/Overload.hs \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina CASL/StaticAna.hs Modal/AS_Modal.hs Modal/Parse_AS.hs \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina Modal/ModalSign.hs Modal/Print_AS.hs Modal/StatAna.hs
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel BřezinaHAPPY = happy -sga
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel BřezinaGENRULECALL = $(GENRULES) -r ShATermConvertible -i Common.ATerm.Lib
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel BřezinaHADDOCK = haddock
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina# remove -fno-warn-orphans for older ghcs
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel BřezinaHC_WARN = -Wall -fno-warn-orphans
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel BřezinaHC_FLAGS = $(HC_WARN) -fglasgow-exts -fno-monomorphism-restriction \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina -fallow-overlapping-instances -fallow-undecidable-instances
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina# -ddump-minimal-imports
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina# flags also come in via ../uni/uni-package.conf
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina# but added it here in case of compilation without uni
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel BřezinaHC_INCLUDE = $(addprefix -i, $(INCLUDE_PATH))
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březinalogics = CASL HasCASL Isabelle Modal CoCASL COL CspCASL CASL_DL SPASS OWL_DL
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel BřezinaUNI_PACKAGE_CONF = $(wildcard ../uni/uni-package.conf)
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březinaifneq ($(strip $(UNI_PACKAGE_CONF)),)
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel BřezinaHC_PACKAGE = -package-conf $(UNI_PACKAGE_CONF) -package uni-davinci \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina -package uni-server -DUNI_PACKAGE
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina# some modules from uni for haddock
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina# if uni/server is included also HaXml sources are needed
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březinauni_dirs = ../uni/davinci ../uni/graphs ../uni/events \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březinauni_sources = $(wildcard $(addsuffix /haddock/*.hs, $(uni_dirs))) \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina $(wildcard ../uni/htk/haddock/*/*.hs)
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina### list of directories to run checks in
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel BřezinaTESTDIRS += Common CASL HasCASL
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel BřezinaPFE_TOOLDIR = $(wildcard ../programatica/tools)
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březinaifneq ($(strip $(PFE_TOOLDIR)),)
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel BřezinaPFE_DIRS = base/AST base/TI base/parse2 base/parse2/Lexer base/parse2/Parser \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina base/parse2/LexerGen base/parse2/LexerSpec base/tests/HbcLibraries \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina base/pretty base/syntax base/lib base/lib/Monads base/Modules base/defs \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina base/transforms base/transforms/Deriving property \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina property/syntax property/AST property/transforms \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina property/TI property/defs property/parse2 property/parse2/Parser
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel BřezinaPFE_PATHS = $(addprefix $(PFE_TOOLDIR)/, $(PFE_DIRS))
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březinapfe_sources = $(wildcard $(addsuffix /*hs, $(PFE_PATHS)))
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel BřezinaPFE_PATH = $(addprefix -i, $(PFE_PATHS))
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel BřezinaPFE_FLAGS = -package data -package text $(PFE_PATH) -DPROGRAMATICA
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březinahappy_files += $(PFE_TOOLDIR)/property/parse2/Parser/PropParser.hs
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel BřezinaLEX_DIR = $(PFE_TOOLDIR)/base/parse2/Lexer
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina patch -sNlp0 -d $(PFE_TOOLDIR) -i `pwd`/$< || exit 0
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina echo "{-# OPTIONS -w #-}" > $@
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina$(LEX_DIR)Gen/HsLexerGen: $(LEX_DIR)Gen/*.hs $(LEX_DIR)Spec/*.hs \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina $(HC) --make -O -package data \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina -i$(PFE_TOOLDIR)/base/lib \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina -i$(LEX_DIR) -i$(LEX_DIR)Gen -i$(LEX_DIR)Spec \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březinalogics += Haskell
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březinaderived_sources += Haskell/PreludeString.hs $(LEX_DIR)/HsLex.hs \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel BřezinaAPPENDPRELUDESTRING = utils/appendHaskellPreludeString \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina## rule for appendHaskellPreludeString
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel BřezinaHaskell/PreludeString.hs: Haskell/PreludeString.append.hs \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina $(APPENDPRELUDESTRING)
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina $(APPENDPRELUDESTRING) < $< > $@
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel BřezinaAst_Haskell_files = HsDeclStruct HsExpStruct HsFieldsStruct \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina HsGuardsStruct HsKindStruct HsPatStruct HsTypeStruct HsAssocStruct \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina HsModule HsName HsLiteral HsIdent
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel BřezinaOther_PFE_files = property/AST/HsPropStruct base/defs/PNT \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina base/defs/UniqueNames base/Modules/TypedIds base/Modules/Ents \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina base/parse2/SourceNames base/syntax/SyntaxRec \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel BřezinaHaskell_files = $(addsuffix .hs, \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina $(addprefix $(PFE_TOOLDIR)/base/AST/, $(Ast_Haskell_files)) \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina $(addprefix $(PFE_TOOLDIR)/, $(Other_PFE_files)))
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina## rule for ATC generation
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel BřezinaHaskell/ATC_Haskell.der.hs: $(Haskell_files) $(GENRULES)
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina $(GENRULECALL) -i Haskell.BaseATC -o $@ $(Haskell_files)
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel BřezinaTESTDIRS += ToHaskell
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina### Profiling (only for debugging)
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina### Attention every module must be compiled with profiling or the linker
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina### cannot link the various .o files properly. So after switching on
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina### Profiling, do an 'gmake real_clean; gmake'
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina### and comment out HC_PACKAGE variable definition above.
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina### Comment in the following line for switching on profiling.
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina#HC_PROF = -prof -auto-all
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel BřezinaHCI_OPTS = $(HC_FLAGS) $(HC_INCLUDE) $(HC_PACKAGE) $(PFE_FLAGS)
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel BřezinaHC_OPTS = $(HCI_OPTS) $(HC_PROF) -DCASLEXTENSIONS
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel BřezinaDRIFT_OPTS = +RTS -K10m -RTS
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina####################################################################
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina## sources for hets
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březinanon_sources = Common/LaTeX_maps.svmono.hs CspCASL/Main.hs \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina Common/CaslLanguage.hs ./Test.hs Static/LogicStructured.hs
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel BřezinaSOURCE_PATHS = $(CLEAN_PATH)
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březinasources = hets.hs $(filter-out $(non_sources), \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina $(wildcard $(addsuffix /[A-Z]*hs, $(SOURCE_PATHS))))
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březinaobjects = $(sources:%.hs=%.o)
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březinadrifted_files = Syntax/AS_Architecture.hs Syntax/AS_Library.hs \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina Common/AS_Annotation.hs CASL/AS_Basic_CASL.hs Syntax/AS_Structured.hs \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina Modal/AS_Modal.hs CoCASL/AS_CoCASL.hs COL/AS_COL.hs CASL_DL/AS_CASL_DL.hs\
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina $(gendrifted_files)
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina Syntax/AS_Structured.der.hs Syntax/AS_Architecture.der.hs \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina Common/GlobalAnnotations.hs Syntax/AS_Library.der.hs \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březinaatc_der_files = $(foreach file, $(atc_files), \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina ATC/$(basename $(basename $(notdir $(file)))).der.hs)
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel BřezinaATC/AS_Annotation.der.hs: Common/AS_Annotation.der.hs $(GENRULES)
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina $(GENRULECALL) -o $@ $<
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel BřezinaATC/AS_Structured.der.hs: Syntax/AS_Structured.der.hs $(GENRULES)
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina $(GENRULECALL) -i ATC.AS_Annotation -i ATC.Grothendieck -o $@ $<
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel BřezinaATC/AS_Architecture.der.hs: Syntax/AS_Architecture.der.hs $(GENRULES)
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina $(GENRULECALL) -i ATC.AS_Structured -o $@ $<
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel BřezinaATC/AS_Library.der.hs: Syntax/AS_Library.der.hs $(GENRULES)
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina $(GENRULECALL) -i ATC.AS_Architecture -o $@ $<
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel BřezinaATC/GlobalAnnotations.der.hs: Common/GlobalAnnotations.hs $(GENRULES)
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina $(GENRULECALL) -i ATC.AS_Annotation -o $@ $<
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina $(GENRULECALL) -x ProverTemplate -i ATC.AS_Annotation -o $@ $<
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel BřezinaATC/Proofs.der.hs: Proofs/Proofs.hs $(GENRULES)
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina $(GENRULECALL) -i ATC.DevGraph -o $@ $<
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel BřezinaCASL_files = CASL/Sublogic.hs CASL/Morphism.hs CASL/Sign.hs \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel BřezinaHasCASL_files = HasCASL/As.hs HasCASL/Le.hs HasCASL/Sublogic.hs
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel BřezinaModal_files = Modal/AS_Modal.hs Modal/ModalSign.hs
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel BřezinaCoCASL_files = CoCASL/AS_CoCASL.hs CoCASL/CoCASLSign.hs CoCASL/Sublogic.hs
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel BřezinaCspCASL_files = CspCASL/AS_CSP_CASL.hs CspCASL/SignCSP.hs
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel BřezinaCASL_DL_files = CASL_DL/AS_CASL_DL.hs CASL_DL/Sign.hs
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březinaatc_logic_files = $(foreach logic, $(logics), $(logic)/ATC_$(logic).der.hs)
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březinagenerated_rule_files = $(atc_der_files) $(atc_logic_files)
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březinagendrifted_files = $(patsubst %.der.hs, %.hs, $(generated_rule_files))
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březinainline_axiom_files = Comorphisms/CASL2PCFOL.hs Comorphisms/PCFOL2CFOL.hs \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina Comorphisms/Modal2CASL.hs Comorphisms/CASL2TopSort.hs \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březinagen_inline_axiom_files = $(patsubst %.hs,%.inline.hs, $(inline_axiom_files))
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březinaderived_sources += $(drifted_files) Driver/Version.hs $(happy_files) \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina $(inline_axiom_files) Modal/ModalSystems.hs
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina# sources that have {-# OPTIONS -cpp #-}
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina Common/Lib/Set.hs Common/Lib/Map.hs ATC/Set.hs\
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina Isabelle/Logic_Isabelle.hs Isabelle/CreateTheories.hs \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina Comorphisms/LogicList.hs Comorphisms/LogicGraph.hs $(happy_files)
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina# unused, remove when header files are gone
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březinagenrule_header_files = $(wildcard ATC/*.header.hs)
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březinanondoc_sources = $(wildcard utils/DrIFT-src/*.hs) \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina $(wildcard utils/DrIFT-src/*.lhs) \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina $(wildcard utils/GenerateRules/*.hs) \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina $(wildcard utils/InlineAxioms/*.hs) \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina $(cpp_sources) $(pfe_sources) $(gen_inline_axiom_files) \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina $(genrule_header_files) $(generated_rule_files) \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina $(PFE_TOOLDIR)/property/parse2/Parser/PropParser.hspp \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina Haskell/PreludeString.append.hs Haskell/ProgramaticaPrelude.hs \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina hxt/HXT.hs hxt/Net.hs $(patsubst %.hs, %.der.hs, $(drifted_files))
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březinahspp_sources = $(patsubst %.hs, %.hspp, $(cpp_sources))
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina# this variable holds the modules that should be documented
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březinadoc_sources = $(filter-out $(nondoc_sources), $(sources) $(hspp_sources))
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březinatax_sources = Taxonomy/AbstractGraphView.hs Taxonomy/MMiSSOntology.hs \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina Taxonomy/MMiSSOntologyGraph.hs Taxonomy/OntoParser.hs
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březinatax_objects = $(patsubst %.hs, %.o, $(tax_sources))
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina####################################################################
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina.PHONY : all hets-opt hets-optimized clean d_clean real_clean bin_clean \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina lib_clean distclean check capa hacapa h2h clean_genRules genRules \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina taxonomy count doc apache_doc post_doc4apache \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina derivedSources install_hets install release patch
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina.SECONDARY : %.hs %.d $(generated_rule_files) $(gen_inline_axiom_files)
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březinahets: $(sources) $(derived_sources)
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina $(HC) --make -o $@ hets.hs $(HC_OPTS)
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina $(MAKE) distclean
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina $(MAKE) derivedSources
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina $(MAKE) clean
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina $(MAKE) hets-optimized
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březinahets-optimized: $(derived_sources)
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina $(HC) --make -O -o hets hets.hs $(HC_OPTS)
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březinahets-old: $(objects)
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina $(HC) -o hets $(HC_OPTS) $(objects)
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina ghc --make -package-conf $(HOME)/wash-pkg/package.conf \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina -package WASH GUI/hets_cgi.hs -o $@ $(HC_INCLUDE) \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina $(HC_FLAGS) $(PFE_FLAGS) -O
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březinataxonomy: Taxonomy/taxonomyTool.hs $(tax_sources)
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina $(HC) --make -o Taxonomy/taxonomyTool $< -ifgl $(HC_OPTS)
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina###############################
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina### TAGS files for (x)emacs
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina# load them with "M-x" "visit-tags-table" from
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina# use "M-." to search for a tag
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina# !!Beware this is somewhat instable, because it uses an absolute path!!
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina /home/ger/linux/ghc-5.04.2/bin/i386-unknown-linux/hasktags \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina $(sources); mv TAGS $@; mv tags hetcats.tags
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina @echo 'File : Maintainer' > $@
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina @echo -n Generating $@ " "
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina @$(PERL) -e \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina 'foreach my $$f (@ARGV) { open I, "<$$f"; \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina print "$$f :"; while (<I>) \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina { if(m,^\s*Maintainer\s*:\s*(.*)$$,o) { \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina print " $$1" ; last} }; print "\n"; close I; }' \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina $(sources) >> $@
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina @echo " done"
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina###############################
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina### count lines of code
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březinacount: $(sources)
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina wc -l $(sources)
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina###############################
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina### Documentation via haddock
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina# generate haddock documentation with links to sources
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina# the interface treatment is stolen from uni/mk/suffix.mk
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina $(RM) -r docs
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina HINTERFACES0=`find docs/www -name '*.haddock' \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina -printf "--read-interface=www/%P,%p "` ; \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina HINTERFACES=`echo $$HINTERFACES0 | sed -e 's+/[^/]*.haddock,+,+g'` ; \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina $(HADDOCK) -o docs -h -v -s ../%F $$HINTERFACES \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina -t 'Hets - the Heterogeneous Tool Set' \
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina# sources are not copied here
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina $(RM) -r docs
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina cvs up -d ; echo "CVS exited with: " $$?
4049b63f8c67ada17b453463b0451ca6be3d5de4Pavel Březina $(MAKE) hets-opt
$(MAKE) hets.cgi
$(PERL) utils/post_process_docs.pl a-docs \
$(PERL) utils/post_process_docs.pl a-docs \
utils/DrIFT: $(DRIFT_deps)
utils/genRules: $(GENERATERULES_deps)
(cd utils/GenerateRules; \
GenerateRules.hs -o ../genRules && strip ../genRules)
$(HC) --make utils/InlineAxioms/InlineAxioms.hs $(HC_WARN) $(HC_PROF) \
cp Makefile Makefile.orig; \
./clean.sh; \
tar cvf HetCATS.tar HetCATS
cp -p hets $(INSTALLDIR)/versions/hets-`cat version_nr`
ln -s versions/hets-`cat version_nr` hets; $(RM) version_nr)
CASL/ATC_CASL.der.hs: $(CASL_files) $(GENRULES)
$(GENRULECALL) -i ATC.AS_Annotation -o $@ $(CASL_files)
HasCASL/ATC_HasCASL.der.hs: $(HasCASL_files) $(GENRULES)
$(GENRULECALL) -i ATC.AS_Annotation -o $@ $(HasCASL_files)
Isabelle/ATC_Isabelle.der.hs: $(Isabelle_files) $(GENRULES)
$(GENRULECALL) -i ATC.AS_Annotation -o $@ $(Isabelle_files)
Modal/ATC_Modal.der.hs: $(Modal_files) $(GENRULES)
$(GENRULECALL) -i CASL.ATC_CASL -o $@ $(Modal_files)
CASL_DL/ATC_CASL_DL.der.hs: $(CASL_DL_files) $(GENRULES)
$(GENRULECALL) -i CASL.ATC_CASL -o $@ $(CASL_DL_files)
CoCASL/ATC_CoCASL.der.hs: $(CoCASL_files) $(GENRULES)
$(GENRULECALL) -i CASL.ATC_CASL -o $@ $(CoCASL_files)
COL/ATC_COL.der.hs: $(COL_files) $(GENRULES)
$(GENRULECALL) -i CASL.ATC_CASL -o $@ $(COL_files)
CspCASL/ATC_CspCASL.der.hs: $(CspCASL_files) $(GENRULES)
$(GENRULECALL) -i CASL.ATC_CASL -o $@ $(CspCASL_files)
SPASS/ATC_SPASS.der.hs: $(SPASS_files) $(GENRULES)
$(GENRULECALL) -i ATC.AS_Annotation -o $@ $(SPASS_files)
OWL_DL/ATC_OWL_DL.der.hs: $(OWL_DL_files) $(GENRULES)
$(RM) CASL/capa
$(RM) HasCASL/hacapa
$(RM) Haskell/hapa
$(RM) Haskell/hana
$(RM) Haskell/wrap
$(RM) ToHaskell/h2h
$(RM) Syntax/hetpa
$(RM) Static/hetana
$(RM) GUI/hetdg
$(RM) Common/annos
$(RM) ToHaskell/translateAna
$(RM) Taxonomy/taxonomyTool
### also delete *.d.bak (dependency file backups)
(cd $$p ; $(RM) *.d *.d.bak) ; done
test_parser: Common/test_parser
capa: CASL/capa
hacapa: HasCASL/hacapa
hana: Haskell/hana
h2hf: ToHaskell/h2hf
ToHaskell/h2hf: ToHaskell/h2hf.hs ToHaskell/*.hs Haskell/*.hs HasCASL/*.hs Isabelle/*.hs Common/*.hs
h2h: ToHaskell/h2h
hetpa: Syntax/hetpa.hs Syntax/*.hs
hetana: Static/hetana.hs Static/*.hs
atctest: ATC/ATCTest.hs ATC/*.hs
Common/Lib/*.hs
### ATerm.Lib test system
Common/Lib/*.hs OWL_DL/*.hs
hetdg: GUI/hetdg.hs $(drifted_files) *.hs
## two hardcoded dependencies for a correct generation of Version.hs
%.hs: %.der.hs $(DRIFT)
%.hs: %.inline.hs $(INLINEAXIOMS)
## rule for Modal/ModalSystems.hs needed for ModalLogic Translation
# uses intransparently utils/outlineAxioms
utils/genTransMFormFunc.pl $(INLINEAXIOMS)
$(PERL) utils/genTransMFormFunc.pl $< $@