Makefile revision 6e049108aa87dc46bcff96fae50a4625df1d9648
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# hetcats/Makefile
297be3708069ef31814d6d75c0d71a50a78feb03Mark Andrews# $Header$
75c0816e8295e180f4bc7f10db3d0d880383bc1cMark Andrews# Author: (c) Klaus L�ttich, Christian Maeder, Uni Bremen 2002-2004
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Year: 2004
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# This Makefile will compile the new hetcats system and provides also
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# targets for test programs during implementation phases.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# !!! Note: This makefile is written for GNU make !!!
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# (gmake on solaris ; make on linux)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein####################################################################
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein## Some varibles, which control the compilation
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinINCLUDE_PATH = ghc:hetcats
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCOMMONLIB_PATH = Common/Lib:Common/Lib/Parsec:Common/ATerm
297be3708069ef31814d6d75c0d71a50a78feb03Mark AndrewsCLEAN_PATH = utils/DrIFT-src:utils/GenerateRules:utils/inlineAxioms:Common:Logic:CASL:CASL/CCC:Syntax:Static:GUI:HasCASL:Haskell:Modal:CoCASL:COL:CspCASL:ATC:ToHaskell:Proofs:Comorphisms:Isabelle:$(INCLUDE_PATH):Haskell/Hatchet
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein## set ghc imports properly for your system
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinLINUX_IMPORTS = $(wildcard /home/linux-bkb/ghc/ghc-latest/lib/ghc-*/imports)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinDRIFT_ENV = DERIVEPATH='.:ghc:hetcats:${LINUX_IMPORTS}:${GHC_IMPORTS}'
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# override on commandline for other architectures
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinINSTALLDIR = /home/www/agbkb/forschung/formal_methods/CoFI/hets/`utils/sysname.sh`
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinDRIFT_deps = utils/DrIFT-src/*hs
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinGENERATERULES_deps = utils/GenerateRules/*hs $(DRIFT_deps)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinINLINEAXIOMS_deps = utils/InlineAxioms/*hs
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinHC = ghc
71c66a876ecca77923638d3f94cc0783152b2f03Mark AndrewsPERL = perl
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinHAPPY = happy
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinDRIFT = $(DRIFT_ENV) utils/DrIFT
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinINLINEAXIOMS = utils/outlineAxioms
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinHADDOCK = haddock
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCPPP = cpp
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinHC_FLAGS = -Wall -fglasgow-exts -cpp
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# -fglasgow-exts comes in via ../uni/uni-package.conf
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# but added it here in case of compilation without uni
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinHC_INCLUDE = -i$(INCLUDE_PATH)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinHC_PACKAGE = -package-conf ../uni/uni-package.conf -package uni-davinci \
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews -package uni-server
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein### Profiling and Warnings (only for debugging)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein### Attention every module must be compiled with profiling or the linker
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein### cannot link the various .o files properly. So after switching on
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein### Profiling, do an 'gmake clean; gmake'
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein### If you need Profiling comment out the following line
297be3708069ef31814d6d75c0d71a50a78feb03Mark Andrews#HC_PROF = -prof -auto-all
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinHCI_OPTS = $(HC_FLAGS) $(HC_PACKAGE) $(HC_INCLUDE)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinHC_OPTS = $(HCI_OPTS) $(HC_PROF)
297be3708069ef31814d6d75c0d71a50a78feb03Mark AndrewsDRIFT_OPTS = +RTS -K10m -RTS
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein### list of directories to run checks in
297be3708069ef31814d6d75c0d71a50a78feb03Mark AndrewsTESTDIRS = Common CASL HasCASL Haskell/Hatchet/examples ToHaskell/test
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
297be3708069ef31814d6d75c0d71a50a78feb03Mark Andrews####################################################################
297be3708069ef31814d6d75c0d71a50a78feb03Mark Andrews## sources for hetcats (semi - manually produced with a perl script)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
297be3708069ef31814d6d75c0d71a50a78feb03Mark Andrewsifneq ($(MAKECMDGOALS),clean)
297be3708069ef31814d6d75c0d71a50a78feb03Mark Andrewsifneq ($(MAKECMDGOALS),bin_clean)
297be3708069ef31814d6d75c0d71a50a78feb03Mark Andrewsifneq ($(MAKECMDGOALS),d_clean)
297be3708069ef31814d6d75c0d71a50a78feb03Mark Andrewsifneq ($(MAKECMDGOALS),real_clean)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinifneq ($(MAKECMDGOALS),distclean)
297be3708069ef31814d6d75c0d71a50a78feb03Mark Andrewsifneq ($(MAKECMDGOALS),genRules)
297be3708069ef31814d6d75c0d71a50a78feb03Mark Andrewsifneq ($(MAKECMDGOALS),utils/genRules)
297be3708069ef31814d6d75c0d71a50a78feb03Mark Andrewsifneq ($(MAKECMDGOALS),hets-opt)
297be3708069ef31814d6d75c0d71a50a78feb03Mark Andrewsifneq ($(MAKECMDGOALS),prob_objs)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinifneq ($(MAKECMDGOALS),hets-optimized)
297be3708069ef31814d6d75c0d71a50a78feb03Mark Andrewsifneq ($(MAKECMDGOALS),derivedSources)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinifneq ($(MAKECMDGOALS),$(INLINEAXIOMS))
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinifneq ($(MAKECMDGOALS),release)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinifneq ($(MAKECMDGOALS),check)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinifneq ($(MAKECMDGOALS),apache_doc)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinifneq ($(MAKECMDGOALS),clean_genRules)
297be3708069ef31814d6d75c0d71a50a78feb03Mark Andrewsifneq ($(MAKECMDGOALS),atctest2)
297be3708069ef31814d6d75c0d71a50a78feb03Mark Andrewsifneq ($(MAKECMDGOALS),hetana)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeininclude sources_hetcats.mk
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinendif
297be3708069ef31814d6d75c0d71a50a78feb03Mark Andrewsendif
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinendif
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinendif
297be3708069ef31814d6d75c0d71a50a78feb03Mark Andrewsendif
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinendif
297be3708069ef31814d6d75c0d71a50a78feb03Mark Andrewsendif
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinendif
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinendif
297be3708069ef31814d6d75c0d71a50a78feb03Mark Andrewsendif
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinendif
297be3708069ef31814d6d75c0d71a50a78feb03Mark Andrewsendif
297be3708069ef31814d6d75c0d71a50a78feb03Mark Andrewsendif
297be3708069ef31814d6d75c0d71a50a78feb03Mark Andrewsendif
7208386cd37a2092c70eddf80cf29519b16c4c80Mark Andrewsendif
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinendif
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinendif
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinendif
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrewsobjects = $(patsubst %.lhs,%.o,$(sources:%.hs=%.o))
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeindrifted_files = Syntax/AS_Architecture.hs Syntax/AS_Library.hs \
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews Common/AS_Annotation.hs CASL/AS_Basic_CASL.hs Syntax/AS_Structured.hs \
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews Modal/AS_Modal.hs CoCASL/AS_CoCASL.hs COL/AS_COL.hs \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(gendrifted_files)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrewsgenrule_header_files = $(wildcard ATC/*.header.hs)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeingenrule_files = Common/Lib/Graph.hs Common/Id.hs Common/Result.hs \
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews Common/AS_Annotation.der.hs \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein Syntax/AS_Structured.der.hs Syntax/AS_Architecture.der.hs \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein Common/GlobalAnnotations.hs Syntax/AS_Library.der.hs \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein CASL/Sublogic.hs \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein CASL/Morphism.hs CASL/Sign.hs CASL/AS_Basic_CASL.der.hs \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein HasCASL/As.hs HasCASL/Le.hs HasCASL/Morphism.hs \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein HasCASL/Sublogic.hs \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein Modal/AS_Modal.hs Modal/ModalSign.hs \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein CoCASL/AS_CoCASL.hs CoCASL/CoCASLSign.hs \
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews COL/AS_COL.hs COL/COLSign.hs \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein CspCASL/AS_CSP_CASL.hs \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein Static/DevGraph.hs \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein Haskell/Hatchet/AnnotatedHsSyn.hs \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein Haskell/Hatchet/MultiModuleBasics.hs \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein Haskell/Hatchet/HsSyn.hs \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein Haskell/Hatchet/Representation.hs\
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein Haskell/Hatchet/Class.hs Haskell/Hatchet/KindInference.hs \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein Haskell/Hatchet/Env.hs \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein Isabelle/IsaSign.hs
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeingendrifted_files = ATC/Graph.hs ATC/Id.hs ATC/Result.hs ATC/AS_Annotation.hs \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein ATC/AS_Library.hs ATC/GlobalAnnotations.hs \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein ATC/AS_Structured.hs ATC/AS_Architecture.hs \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein ATC/DevGraph.hs \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein CASL/ATC_CASL.hs Haskell/ATC_Haskell.hs \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein HasCASL/ATC_HasCASL.hs CspCASL/ATC_CspCASL.hs \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein Modal/ATC_Modal.hs CoCASL/ATC_CoCASL.hs COL/ATC_COL.hs \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein ATC/IsaSign.hs
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeingenerated_rule_files = $(patsubst %.hs,%.der.hs,$(gendrifted_files))
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeininline_axiom_files = Comorphisms/CASL2PCFOL.hs Comorphisms/PCFOL2FOL.hs Comorphisms/Modal2CASL.hs
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeingen_inline_axiom_files = $(patsubst %.hs,%.inline.hs,$(inline_axiom_files))
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinhappy_files = Haskell/Hatchet/HsParser.hs
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# this variable holds the modules that should be documented
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# the imported parsec library is not included!
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeincpp_sources = ./Isabelle/IsaProve.hs ./Isabelle/Logic_Isabelle.hs ./Proofs/Proofs.hs hets.hs
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeindoc_sources = $(filter-out ./Isabelle/IsaSign.hs $(cpp_sources) ,$(sources)) \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(patsubst %.hs, %.hspp, $(cpp_sources))
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein####################################################################
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein### targets
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein.PHONY : clean d_clean real_clean bin_clean check hetana hetpa hetdg \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein clean_genRules genRules
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews.SECONDARY : %.hs %.d $(generated_rule_files) $(gen_inline_axiom_files)
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews#.PRECIOUS: sources_hetcats.mk
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrewsall: hets
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrewshets: $(sources)
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews $(HC) --make -o $@ hets.hs $(HC_OPTS) 2>&1 | tee hetcats-make
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews
b05bdb520d83f7ecaad708fe305268c3420be01dMark Andrewshets-opt: hetcats/Version.hs
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews $(MAKE) distclean
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews $(MAKE) derivedSources
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews $(MAKE) real_clean
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews $(MAKE) prob_objs
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews $(MAKE) hets-optimized
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrewsproblematic_objs = Common/Lib/Rel.o Common/Id.o Common/Lexer.o Common/Lib/Pretty.o Common/GlobalAnnotations.o Common/PPUtils.o
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinifeq ($(MAKECMDGOALS),prob_objs)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeininclude $(problematic_objs:%.o=%.d)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinendif
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinprob_objs: $(problematic_objs)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinhets-optimized:
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(HC) --make -O -o hets hets.hs $(HC_OPTS) -w 2>&1 | tee hetcats-make
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein strip hets
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinhets-old: $(objects)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(RM) $@
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(HC) -o hets $(HC_OPTS) $(objects)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinhets.cgi: $(sources) GUI/hets_cgi.hs
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein ghc --make -package-conf /home/luettich/ghc-pkg/package.conf -package WASH-CGI GUI/hets_cgi.hs -o hets.cgi $(HC_OPTS) -O
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinhetcats-make: hets.hs utils/create_sources.pl $(drifted_files) $(happy_files) $(inline_axiom_files) Modal/ModalSystems.hs
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(RM) hetcats-make sources_hetcats.mk
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(HC) --make -o hets $< $(HC_OPTS) 2>&1 | tee hetcats-make
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein###############################
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein### TAGS files for (x)emacs
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# load them with "M-x" "visit-tags-table" from
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# "HetCATS/hetcats/hetcats.TAGS"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# use "M-." to search for a tag
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# !!Beware this is somewhat instable, because it uses an absolute path!!
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinhetcats.TAGS: $(sources)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein /home/ger/linux/ghc-5.04.2/bin/i386-unknown-linux/hasktags \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(sources); mv TAGS $@; mv tags hetcats.tags
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein###############################
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein### count lines of code
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeincount: $(sources)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein wc -l $(sources)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein###############################
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein### Documentation via haddock
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeindoc: docs/index.html
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# index for prelude is missing
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeindocs/index.html: $(doc_sources)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(HADDOCK) $(doc_sources) -o docs -h \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein -i docs/base.haddock \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein -t 'hets -- a heterogenous Specification (CASL) tool set'
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinapache_doc:
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(RM) docs/*.*
ceeb18e6907a10547859faa340ecad83bedae90cMark Andrews cvs up -d
ceeb18e6907a10547859faa340ecad83bedae90cMark Andrews $(MAKE) hets-opt
ceeb18e6907a10547859faa340ecad83bedae90cMark Andrews $(MAKE) doc
ceeb18e6907a10547859faa340ecad83bedae90cMark Andrews $(MAKE) post_doc4apache
ceeb18e6907a10547859faa340ecad83bedae90cMark Andrews
ceeb18e6907a10547859faa340ecad83bedae90cMark Andrewspost_doc4apache:
ceeb18e6907a10547859faa340ecad83bedae90cMark Andrews $(PERL) utils/post_process_docs.pl docs \
ceeb18e6907a10547859faa340ecad83bedae90cMark Andrews 'Common.Lib.Map.html:Common.Lib._Map.html'
ceeb18e6907a10547859faa340ecad83bedae90cMark Andrews cp docs/*.* a-docs/
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
ceeb18e6907a10547859faa340ecad83bedae90cMark Andrews###############################
ceeb18e6907a10547859faa340ecad83bedae90cMark Andrews### release management
ceeb18e6907a10547859faa340ecad83bedae90cMark Andrews
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinderivedSources: $(drifted_files) $(happy_files) hetcats/Version.hs $(inline_axiom_files) Modal/ModalSystems.hs
ceeb18e6907a10547859faa340ecad83bedae90cMark Andrews
ceeb18e6907a10547859faa340ecad83bedae90cMark Andrewsutils/DrIFT: $(DRIFT_deps)
ceeb18e6907a10547859faa340ecad83bedae90cMark Andrews (cd utils/DrIFT-src; $(HC) --make DrIFT.hs -o ../DrIFT && \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein strip ../DrIFT)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinutils/genRules: $(GENERATERULES_deps)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein (cd utils/GenerateRules; \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(HC) --make '-i../..:../DrIFT-src' -package text GenerateRules.hs -o ../genRules && \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein strip ../genRules)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein$(INLINEAXIOMS): $(INLINEAXIOMS_deps)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(HC) --make utils/InlineAxioms/InlineAxioms.hs \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(HC_OPTS) -o $(INLINEAXIOMS)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein strip $(INLINEAXIOMS)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinrelease:
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(RM) -r HetCATS
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein cvs -d :pserver:cvsread@cvs-agbkb.informatik.uni-bremen.de:/repository co HetCATS
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(RM) -r uni
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein ln -s ../uni uni
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein (cd HetCATS; $(MAKE) derivedSources; ./clean.sh; \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein find . -name CVS -o -name \*.o -o -name \*.hi | xargs $(RM) -r; \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(RM) clean.*; mv Makefile Makefile.orig; \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein mv ReleaseMakefile Makefile)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein tar cvf HetCATS.tar HetCATS
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeininstall-hets:
bea931e17b7567f09107f93ab7e25c7f00abeb9cMark Andrews chmod g+w hets
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein cp -p hets $(INSTALLDIR)/versions/hets-`cat version_nr`
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein cp -p version_nr $(INSTALLDIR)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein (cd $(INSTALLDIR); $(RM) hets; \
b05bdb520d83f7ecaad708fe305268c3420be01dMark Andrews ln -s versions/hets-`cat version_nr` hets; $(RM) version_nr)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeininstall: hets-opt install-hets
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#############################
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein### ATC DrIFT-rule generation
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteingenRules: $(generated_rule_files) utils/genRules
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein$(generated_rule_files): $(genrule_files) utils/genRules #$(genrule_header_files)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(MAKE) clean_genRules
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(foreach file,$(atc_files),$(gen_atc_files))
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein utils/genRules -r $(rule) -o CASL $(casl_files)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein utils/genRules -r $(rule) -o HasCASL $(hascasl_files)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein utils/genRules -r $(rule) -o Modal $(modal_files)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein utils/genRules -r $(rule) -o CoCASL $(cocasl_files)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein utils/genRules -r $(rule) -o COL $(col_files)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein utils/genRules -r $(rule) -o CspCASL $(cspcasl_files)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein utils/genRules -r $(rule) -o Haskell -h ATC/Haskell.header.hs \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(haskell_files)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinrule = ShATermConvertible
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeingen_atc_files = if [ -f ATC/$(basename $(basename $(notdir $(file)))).header.hs ]; then \
ceeb18e6907a10547859faa340ecad83bedae90cMark Andrews utils/genRules -r $(rule) -o ATC -h ATC/$(basename $(basename $(notdir $(file)))).header.hs $(file); \
ceeb18e6907a10547859faa340ecad83bedae90cMark Andrews else \
ceeb18e6907a10547859faa340ecad83bedae90cMark Andrews utils/genRules -r $(rule) -o ATC $(file); \
ceeb18e6907a10547859faa340ecad83bedae90cMark Andrews fi ;
ceeb18e6907a10547859faa340ecad83bedae90cMark Andrews
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinatc_files := $(filter-out CASL/% HasCASL/% Modal/% CoCASL/% COL/% CspCASL/% Haskell/% ,$(genrule_files))
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeincasl_files := $(filter CASL/% ,$(genrule_files))
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinhascasl_files := $(filter HasCASL/% ,$(genrule_files))
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinmodal_files := $(filter Modal/% ,$(genrule_files))
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeincocasl_files := $(filter CoCASL/% ,$(genrule_files))
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeincol_files := $(filter COL/% ,$(genrule_files))
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeincspcasl_files := $(filter CspCASL/% ,$(genrule_files))
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinhaskell_files := $(filter Haskell/%,$(genrule_files))
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinclean_genRules:
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(RM) $(generated_rule_files)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein###############
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein### clean up
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein### removes *.hi and *.o in all include directories
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinclean: bin_clean
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein for p in $(subst :, ,$(CLEAN_PATH)) . ; do \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein (cd $$p ; $(RM) *.hi *.o *.hspp) ; done
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein### remove binaries
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinbin_clean:
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(RM) hets
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(RM) test_parser
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(RM) CASL/capa
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(RM) HasCASL/hacapa
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(RM) Haskell/hapa
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(RM) Haskell/wrap
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(RM) Syntax/hetpa
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(RM) Static/hetana
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(RM) Static/hetana
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(RM) GUI/hetdg
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(RM) hetpa
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(RM) hetana
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(RM) hetdg
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(RM) atctest2
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(RM) atctest
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(RM) Common/annos
b05bdb520d83f7ecaad708fe305268c3420be01dMark Andrews
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein### additonally removes *.d (dependency files) in every include directory
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein### also delete *.d.bak (dependency file backups)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeind_clean: clean
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein for p in $(subst :, ,$(CLEAN_PATH)) . ; do \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein (cd $$p ; $(RM) *.d *.d.bak) ; done
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein### remove files also in own libraries
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinlib_clean: clean
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein for p in $(subst :, ,$(COMMONLIB_PATH)) . ; do \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein (cd $$p ; $(RM) *.hi *.d *.o) ; done
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein### additionally removes the files that define the sources-variable
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinreal_clean: bin_clean lib_clean
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(RM) hetcats-make sources_hetcats.mk
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein### additionally removes files not in CVS tree
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeindistclean: real_clean clean_genRules d_clean
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(RM) hetcats/Version.hs
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(RM) $(drifted_file) $(inline_axiom_files)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(RM) utils/DrIFT utils/genRules $(INLINEAXIOMS)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# $(RM) $(happy_files)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein####################################################################
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein### test targets
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein####################################################################
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein### a parser to test annotation parser and Id parsers
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeintest_parser: Common/test_parser
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCommon/test_parser: Common/test_parser.hs Common/AS_Annotation.der.hs
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews $(RM) $@
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(HC) --make -o $@ $< $(HC_OPTS)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein### interactive
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinghci:
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(HC)i $(HCI_OPTS)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews### christian's target
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews### CASL parser
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrewscapa: CASL/capa
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark AndrewsCASL/capa: CASL/capa.hs Common/*.hs CASL/*.hs
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews $(RM) $@
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(HC) --make -o $@ $< $(HC_OPTS)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein### HasCASL parser
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinhacapa: HasCASL/hacapa
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinHasCASL/hacapa: HasCASL/hacapa.hs Common/*.hs HasCASL/*.hs
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(RM) $@
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(HC) --make -o $@ $< $(HC_OPTS)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein### Haskell parser
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinhapa: Haskell/hapa
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinHaskell/hapa: Haskell/hapa.hs Haskell/Hatchet/*.hs $(happy_files)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(RM) $@
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(HC) --make -o $@ $< $(HC_OPTS)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein### HetCASL parser
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinhetpa: Syntax/hetpa.hs Syntax/*.hs
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(RM) $@
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(HC) --make -o $@ $< $(HC_OPTS)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein### HetCASL parser
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinhetana: Static/hetana.hs Static/*.hs
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(RM) $@
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(HC) --make -o $@ $< $(HC_OPTS)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein### ATC test system
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinatctest: ATC/ATCTest.hs ATC/*.hs
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(RM) $@
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(HC) --make -o $@ $< $(HC_OPTS)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinatctest2: Common/ATerm/ATermLibTest.hs Common/SimpPretty.hs Common/ATerm/*.hs Common/Lib/*.hs
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(RM) $@
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(HC) --make -o $@ $< $(HC_OPTS)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein### ATerm.Lib test system
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinatermlibtest: Common/ATerm/ATermLibTest.hs Common/ATerm/*.hs Common/SimpPretty.hs
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(RM) $@
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(HC) --make -o $@ $< $(HC_OPTS)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein### HetCASL with dev graph
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinhetdg: GUI/hetdg.hs $(drifted_files) *.hs
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(RM) $@
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(HC) --make -o $@ $< $(HC_OPTS) -package-conf ../uni/uni-package.conf -package uni-davinci -package uni-server
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein### run tests in other directories
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeincheck: hetcats
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein for i in $(TESTDIRS); do $(MAKE) -C $$i check; done
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein####################################################################
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein## Preparing the version of HetCATS
297be3708069ef31814d6d75c0d71a50a78feb03Mark Andrewshetcats/Version.hs: hetcats/Version.in version_nr
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(PERL) utils/build_version.pl version_nr < hetcats/Version.in > $@
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein## two hardcoded dependencies for a correct generation of Version.hs
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Lucehetcats/Options.hs hetcats/WriteFn.hs hetcats/ReadFn.hs: hetcats/Version.hs
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinhets.hs: hetcats/Version.hs
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein####################################################################
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein## rules for DrIFT
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
297be3708069ef31814d6d75c0d71a50a78feb03Mark Andrews%.hs: %.ly
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(HAPPY) $<
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein%.hs: %.der.hs utils/DrIFT
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(DRIFT) $(DRIFT_OPTS) $< > $@
4556ad3a270bf049b3225433a402666aaffe3c36Mark Andrews
4556ad3a270bf049b3225433a402666aaffe3c36Mark Andrews## rules for inlineAxioms
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein%.hs: %.inline.hs $(INLINEAXIOMS)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(INLINEAXIOMS) $< > $@
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein## rule for cpp and haddock
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein%.hspp: %.hs
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(HC) -E -cpp -optP -P $<
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein## compiling rules for object and interface files
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein%.o %.hi: %.hs
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(HC) -c $< $(HC_OPTS) -O
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein%.o %.hi: %.lhs
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(HC) -c $< $(HC_OPTS) -O
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein## compiling rules for dependencies
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein%.d : %.hs
4556ad3a270bf049b3225433a402666aaffe3c36Mark Andrews $(HC) -M $< $(HC_OPTS) -optdep-f -optdep$@
4556ad3a270bf049b3225433a402666aaffe3c36Mark Andrews
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein%.d : %.lhs
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(HC) -M $< $(HC_OPTS) -optdep-f -optdep$@
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein## rule for Modal/ModalSystems.hs needed for ModalLogic Translation
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinModal/ModalSystems.hs: Modal/GeneratePatterns.inline.hs.in utils/genTransMFormFunc.pl $(INLINEAXIOMS)
4556ad3a270bf049b3225433a402666aaffe3c36Mark Andrews $(PERL) utils/genTransMFormFunc.pl $< $@
4556ad3a270bf049b3225433a402666aaffe3c36Mark Andrews
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein####################################################################
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein## Setting a global search path (for dependency files)
4556ad3a270bf049b3225433a402666aaffe3c36Mark Andrews
4556ad3a270bf049b3225433a402666aaffe3c36Mark Andrewsifneq ($(MAKECMDGOALS),clean)
4556ad3a270bf049b3225433a402666aaffe3c36Mark Andrewsifneq ($(MAKECMDGOALS),real_clean)
4556ad3a270bf049b3225433a402666aaffe3c36Mark Andrewsifneq ($(MAKECMDGOALS),d_clean)
4556ad3a270bf049b3225433a402666aaffe3c36Mark Andrewsifneq ($(MAKECMDGOALS),real_clean)
4556ad3a270bf049b3225433a402666aaffe3c36Mark Andrewsifneq ($(MAKECMDGOALS),distclean)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinifneq ($(MAKECMDGOALS),genRules)
4556ad3a270bf049b3225433a402666aaffe3c36Mark Andrewsifneq ($(MAKECMDGOALS),utils/genRules)
4556ad3a270bf049b3225433a402666aaffe3c36Mark Andrewsifneq ($(MAKECMDGOALS),derivedSources)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinifneq ($(MAKECMDGOALS),release)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinifneq ($(MAKECMDGOALS),clean_genRules)
035992291cb70ec3be4046fcea921b4a6acb1c77Mark Andrewsifeq ($(MAKECMDGOALS),hets-old)
035992291cb70ec3be4046fcea921b4a6acb1c77Mark Andrews## include every .d file in INCLUDE_PATH
035992291cb70ec3be4046fcea921b4a6acb1c77Mark Andrews-include $(objects:.o=.d)
035992291cb70ec3be4046fcea921b4a6acb1c77Mark Andrewsendif
68b30890ebd441a6a1ae3fdf71744d07d02cd030Mark Andrews
68b30890ebd441a6a1ae3fdf71744d07d02cd030Mark Andrewssources_hetcats.mk: hetcats-make hetcats/Version.hs hets.hs utils/create_sources.pl $(drifted_files) $(happy_files)
035992291cb70ec3be4046fcea921b4a6acb1c77Mark Andrews $(PERL) utils/create_sources.pl hetcats-make sources_hetcats.mk
68b30890ebd441a6a1ae3fdf71744d07d02cd030Mark Andrewsendif
035992291cb70ec3be4046fcea921b4a6acb1c77Mark Andrewsendif
68b30890ebd441a6a1ae3fdf71744d07d02cd030Mark Andrewsendif
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinendif
035992291cb70ec3be4046fcea921b4a6acb1c77Mark Andrewsendif
035992291cb70ec3be4046fcea921b4a6acb1c77Mark Andrewsendif
035992291cb70ec3be4046fcea921b4a6acb1c77Mark Andrewsendif
035992291cb70ec3be4046fcea921b4a6acb1c77Mark Andrewsendif
4556ad3a270bf049b3225433a402666aaffe3c36Mark Andrewsendif
035992291cb70ec3be4046fcea921b4a6acb1c77Mark Andrewsendif
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein