rules revision d17834302eaa101395b4b806cd73670fd864445f
ccf9d4a5c6453fa9f8b839baeee25147865fbb7dJames Phillpotts# hetcats/Makefile
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# $Header$
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# Author: (c) Klaus L�ttich, Christian Maeder, Uni Bremen 2002-2004
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# Year: 2004
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# This Makefile will compile the new hetcats system and provides also
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# targets for test programs during implementation phases.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# !!! Note: This makefile is written for GNU make !!!
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# (gmake on solaris ; make on linux)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster####################################################################
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster## Some varibles, which control the compilation
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterINCLUDE_PATH = ghc:hetcats
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterCOMMONLIB_PATH = Common/Lib:Common/Lib/Parsec:Common/ATerm
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterCLEAN_PATH = utils/DrIFT-src:utils/GenerateRules:utils/inlineAxioms:Common:Logic:CASL:CASL/CCC:Syntax:Static:GUI:HasCASL:Haskell:Modal:CoCASL:CspCASL:ATC:ToHaskell:Proofs:Comorphisms:Isabelle:$(INCLUDE_PATH):Haskell/Hatchet
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster## set ghc imports properly for your system
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterLINUX_IMPORTS = $(wildcard /home/linux-bkb/ghc/ghc-latest/lib/ghc-*/imports)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterDRIFT_ENV = DERIVEPATH='.:ghc:hetcats:${LINUX_IMPORTS}:${GHC_IMPORTS}'
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# override on commandline for other architectures
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterINSTALLDIR = /home/www/agbkb/forschung/formal_methods/CoFI/hets/`utils/sysname.sh`
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterDRIFT_deps = utils/DrIFT-src/*hs
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterGENERATERULES_deps = utils/GenerateRules/*hs $(DRIFT_deps)
ccf9d4a5c6453fa9f8b839baeee25147865fbb7dJames PhillpottsINLINEAXIOMS_deps = utils/InlineAxioms/*hs
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterHC = ghc
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterPERL = perl
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterHAPPY = happy
ccf9d4a5c6453fa9f8b839baeee25147865fbb7dJames PhillpottsDRIFT = $(DRIFT_ENV) utils/DrIFT
ccf9d4a5c6453fa9f8b839baeee25147865fbb7dJames PhillpottsINLINEAXIOMS = utils/outlineAxioms
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterHADDOCK = haddock
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterHC_FLAGS = -Wall
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# -fglasgow-exts comes in via ../uni/uni-package.conf
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterHC_INCLUDE = -i$(INCLUDE_PATH)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterHC_PACKAGE = -package-conf ../uni/uni-package.conf -package uni-davinci \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster -package uni-server
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster### Profiling and Warnings (only for debugging)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster### Attention every module must be compiled with profiling or the linker
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster### cannot link the various .o files properly. So after switching on
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster### Profiling, do an 'gmake clean; gmake'
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster### If you need Profiling comment out the following line
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#HC_PROF = -prof -auto-all
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterHCI_OPTS = $(HC_FLAGS) $(HC_PACKAGE) $(HC_INCLUDE)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterHC_OPTS = $(HCI_OPTS) $(HC_PROF)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterDRIFT_OPTS = +RTS -K10m -RTS
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster### list of directories to run checks in
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterTESTDIRS = Common CASL HasCASL Haskell/Hatchet/examples ToHaskell/test
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster####################################################################
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster## sources for hetcats (semi - manually produced with a perl script)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterifneq ($(MAKECMDGOALS),clean)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterifneq ($(MAKECMDGOALS),bin_clean)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterifneq ($(MAKECMDGOALS),d_clean)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterifneq ($(MAKECMDGOALS),real_clean)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterifneq ($(MAKECMDGOALS),distclean)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterifneq ($(MAKECMDGOALS),genRules)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterifneq ($(MAKECMDGOALS),utils/genRules)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterifneq ($(MAKECMDGOALS),hets-opt)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterifneq ($(MAKECMDGOALS),hets-optimized)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterifneq ($(MAKECMDGOALS),derivedSources)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterifneq ($(MAKECMDGOALS),$(INLINEAXIOMS))
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterifneq ($(MAKECMDGOALS),release)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterifneq ($(MAKECMDGOALS),check)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterifneq ($(MAKECMDGOALS),apache_doc)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterifneq ($(MAKECMDGOALS),clean_genRules)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterifneq ($(MAKECMDGOALS),atctest2)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterifneq ($(MAKECMDGOALS),hetana)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterinclude sources_hetcats.mk
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterendif
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterendif
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterendif
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterendif
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterendif
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterendif
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterendif
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterendif
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterendif
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterendif
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterendif
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterendif
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterendif
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterendif
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterendif
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterendif
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterendif
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterobjects = $(patsubst %.lhs,%.o,$(sources:%.hs=%.o))
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterdrifted_files = Syntax/AS_Architecture.hs Syntax/AS_Library.hs\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Common/AS_Annotation.hs CASL/AS_Basic_CASL.hs Syntax/AS_Structured.hs \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(gendrifted_files)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fostergenrule_header_files = $(wildcard ATC/*.header.hs)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fostergenrule_files = Common/Lib/Graph.hs Common/Id.hs Common/Result.hs \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Common/AS_Annotation.der.hs \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Syntax/AS_Structured.der.hs Syntax/AS_Architecture.der.hs \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Common/GlobalAnnotations.hs Syntax/AS_Library.der.hs \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster CASL/Sublogic.hs \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster CASL/Morphism.hs CASL/Sign.hs CASL/AS_Basic_CASL.der.hs \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster HasCASL/As.hs HasCASL/Le.hs HasCASL/Morphism.hs \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster HasCASL/Sublogic.hs \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Modal/AS_Modal.hs Modal/ModalSign.hs \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster CoCASL/AS_CoCASL.hs CoCASL/CoCASLSign.hs \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster CspCASL/AS_CSP_CASL.hs \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Static/DevGraph.hs \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Haskell/Hatchet/AnnotatedHsSyn.hs \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Haskell/Hatchet/MultiModuleBasics.hs \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Haskell/Hatchet/HsSyn.hs \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Haskell/Hatchet/Representation.hs\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Haskell/Hatchet/Class.hs Haskell/Hatchet/KindInference.hs \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Haskell/Hatchet/Env.hs \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Isabelle/IsaSign.hs
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fostergendrifted_files = ATC/Graph.hs ATC/Id.hs ATC/Result.hs ATC/AS_Annotation.hs \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster ATC/AS_Library.hs ATC/GlobalAnnotations.hs \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster ATC/AS_Structured.hs ATC/AS_Architecture.hs \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster ATC/DevGraph.hs \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster CASL/ATC_CASL.hs Haskell/ATC_Haskell.hs \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster HasCASL/ATC_HasCASL.hs CspCASL/ATC_CspCASL.hs \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Modal/ATC_Modal.hs CoCASL/ATC_CoCASL.hs ATC/IsaSign.hs
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fostergenerated_rule_files = $(patsubst %.hs,%.der.hs,$(gendrifted_files))
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterinline_axiom_files = Comorphisms/CASL2PCFOL.hs
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fostergen_inline_axiom_files = $(patsubst %.hs,%.inline.hs,$(inline_axiom_files))
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterhappy_files = Haskell/Hatchet/HsParser.hs
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# this variable holds the modules that should be documented
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# the imported parsec library is not included!
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterdoc_sources = $(filter-out ./Isabelle/IsaSign.hs ,$(sources))
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster####################################################################
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster### targets
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster.PHONY : clean d_clean real_clean bin_clean check hetana hetpa hetdg \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster clean_genRules genRules
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster.SECONDARY : %.hs %.d $(generated_rule_files) $(gen_inline_axiom_files)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#.PRECIOUS: sources_hetcats.mk
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterall: hets
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterhets: $(sources)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(HC) --make -o $@ hets.hs $(HC_OPTS) 2>&1 | tee hetcats-make
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterhets-opt: hetcats/Version.hs
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(MAKE) distclean
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(MAKE) derivedSources
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(MAKE) real_clean
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(MAKE) hets-optimized
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterhets-optimized:
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(HC) --make -O -o hets hets.hs $(HC_OPTS) -w 2>&1 | tee hetcats-make
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster strip hets
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterhets-old: $(objects)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(RM) $@
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(HC) -o hets $(HC_OPTS) $(objects)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterhets.cgi: $(sources) GUI/hets_cgi.hs
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster ghc --make -package-conf /home/luettich/ghc-pkg/package.conf -package WASH-CGI GUI/hets_cgi.hs -o hets.cgi $(HC_OPTS)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterhetcats-make: hets.hs utils/create_sources.pl $(drifted_files) $(happy_files) $(inline_axiom_files)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(RM) hetcats-make sources_hetcats.mk
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(HC) --make -o hets $< $(HC_OPTS) 2>&1 | tee hetcats-make
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster###############################
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster### TAGS files for (x)emacs
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# load them with "M-x" "visit-tags-table" from
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# "HetCATS/hetcats/hetcats.TAGS"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# use "M-." to search for a tag
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# !!Beware this is somewhat instable, because it uses an absolute path!!
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterhetcats.TAGS: $(sources)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /home/ger/linux/ghc-5.04.2/bin/i386-unknown-linux/hasktags \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(sources); mv TAGS $@; mv tags hetcats.tags
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster###############################
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster### count lines of code
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fostercount: $(sources)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster wc -l $(sources)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster###############################
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster### Documentation via haddock
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterdoc: docs/index.html
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# index for prelude is missing
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterdocs/index.html: $(doc_sources)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(HADDOCK) $(doc_sources) -o docs -h \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster -i docs/base.haddock \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster -t 'hets -- a heterogenous Specification (CASL) tool set'
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterapache_doc:
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(RM) docs/*.*
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster cvs up -d
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(MAKE) hets-opt
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(MAKE) doc
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(MAKE) post_doc4apache
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterpost_doc4apache:
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(PERL) utils/post_process_docs.pl docs \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster 'Common.Lib.Map.html:Common.Lib._Map.html'
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster cp docs/*.* a-docs/
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster###############################
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster### release management
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterderivedSources: $(drifted_files) $(happy_files) hetcats/Version.hs $(inline_axiom_files)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterutils/DrIFT: $(DRIFT_deps)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster (cd utils/DrIFT-src; $(HC) --make DrIFT.hs -o ../DrIFT && \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster strip ../DrIFT)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterutils/genRules: $(GENERATERULES_deps)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster (cd utils/GenerateRules; \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(HC) --make '-i../..:../DrIFT-src' -package text GenerateRules.hs -o ../genRules && \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster strip ../genRules)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster$(INLINEAXIOMS): $(INLINEAXIOMS_deps)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(HC) --make utils/InlineAxioms/InlineAxioms.hs \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(HC_OPTS) -o $(INLINEAXIOMS)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster strip $(INLINEAXIOMS)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterrelease:
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(RM) -r HetCATS
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster cvs -d :pserver:cvsread@cvs-agbkb.informatik.uni-bremen.de:/repository co HetCATS
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(RM) -r uni
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster ln -s ../uni uni
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster (cd HetCATS; $(MAKE) derivedSources; ./clean.sh; \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster find . -name CVS -o -name \*.o -o -name \*.hi | xargs $(RM) -r; \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(RM) clean.*; mv Makefile Makefile.orig; \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster mv ReleaseMakefile Makefile)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster tar cvf HetCATS.tar HetCATS
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterinstall-hets:
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster chmod g+w hets
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster cp -p hets $(INSTALLDIR)/versions/hets-`cat version_nr`
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster cp -p version_nr $(INSTALLDIR)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster (cd $(INSTALLDIR); $(RM) hets; \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster ln -s versions/hets-`cat version_nr` hets; $(RM) version_nr)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterinstall: hets-opt install-hets
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#############################
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster### ATC DrIFT-rule generation
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FostergenRules: $(generated_rule_files) utils/genRules
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster$(generated_rule_files): $(genrule_files) utils/genRules #$(genrule_header_files)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(MAKE) clean_genRules
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(foreach file,$(atc_files),$(gen_atc_files))
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster utils/genRules -r $(rule) -o CASL $(casl_files)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster utils/genRules -r $(rule) -o HasCASL $(hascasl_files)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster utils/genRules -r $(rule) -o Modal $(modal_files)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster utils/genRules -r $(rule) -o CoCASL $(cocasl_files)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster utils/genRules -r $(rule) -o CspCASL $(cspcasl_files)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster utils/genRules -r $(rule) -o Haskell -h ATC/Haskell.header.hs \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(haskell_files)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterrule = ShATermConvertible
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fostergen_atc_files = if [ -f ATC/$(basename $(basename $(notdir $(file)))).header.hs ]; then \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster utils/genRules -r $(rule) -o ATC -h ATC/$(basename $(basename $(notdir $(file)))).header.hs $(file); \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster else \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster utils/genRules -r $(rule) -o ATC $(file); \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster fi ;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosteratc_files := $(filter-out CASL/% HasCASL/% Modal/% CoCASL/% CspCASL/% Haskell/% ,$(genrule_files))
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fostercasl_files := $(filter CASL/% ,$(genrule_files))
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterhascasl_files := $(filter HasCASL/% ,$(genrule_files))
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fostermodal_files := $(filter Modal/% ,$(genrule_files))
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fostercocasl_files := $(filter CoCASL/% ,$(genrule_files))
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fostercspcasl_files := $(filter CspCASL/% ,$(genrule_files))
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterhaskell_files := $(filter Haskell/%,$(genrule_files))
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterclean_genRules:
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(RM) $(generated_rule_files)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster###############
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster### clean up
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster### removes *.hi and *.o in all include directories
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterclean: bin_clean
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster for p in $(subst :, ,$(CLEAN_PATH)) . ; do \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster (cd $$p ; $(RM) *.hi *.o) ; done
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster### remove binaries
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterbin_clean:
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(RM) hets
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(RM) test_parser
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(RM) CASL/capa
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(RM) HasCASL/hacapa
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(RM) Haskell/hapa
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(RM) Haskell/wrap
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(RM) Syntax/hetpa
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(RM) Static/hetana
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(RM) Static/hetana
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(RM) GUI/hetdg
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(RM) hetpa
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(RM) hetana
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(RM) hetdg
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(RM) atctest2
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(RM) atctest
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(RM) Common/annos
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster### additonally removes *.d (dependency files) in every include directory
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster### also delete *.d.bak (dependency file backups)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterd_clean: clean
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster for p in $(subst :, ,$(CLEAN_PATH)) . ; do \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster (cd $$p ; $(RM) *.d *.d.bak) ; done
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster### remove files also in own libraries
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterlib_clean: clean
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster for p in $(subst :, ,$(COMMONLIB_PATH)) . ; do \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster (cd $$p ; $(RM) *.hi *.d *.o) ; done
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster### additionally removes the files that define the sources-variable
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterreal_clean: bin_clean lib_clean
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(RM) hetcats-make sources_hetcats.mk
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster### additionally removes files not in CVS tree
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterdistclean: real_clean clean_genRules d_clean
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(RM) hetcats/Version.hs
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(RM) $(drifted_file) $(inline_axiom_files)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(RM) utils/DrIFT utils/genRules $(INLINEAXIOMS)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# $(RM) $(happy_files)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster####################################################################
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster### test targets
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster####################################################################
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster### a parser to test annotation parser and Id parsers
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fostertest_parser: Common/test_parser
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterCommon/test_parser: Common/test_parser.hs Common/AS_Annotation.der.hs
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(RM) $@
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(HC) --make -o $@ $< $(HC_OPTS)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster### interactive
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterghci:
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(HC)i $(HCI_OPTS)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster### christian's target
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster### CASL parser
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fostercapa: CASL/capa
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterCASL/capa: CASL/capa.hs Common/*.hs CASL/*.hs
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(RM) $@
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(HC) --make -o $@ $< $(HC_OPTS)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster### HasCASL parser
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterhacapa: HasCASL/hacapa
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterHasCASL/hacapa: HasCASL/hacapa.hs Common/*.hs HasCASL/*.hs
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(RM) $@
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(HC) --make -o $@ $< $(HC_OPTS)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster### Haskell parser
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterhapa: Haskell/hapa
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterHaskell/hapa: Haskell/hapa.hs Haskell/Hatchet/*.hs $(happy_files)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(RM) $@
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(HC) --make -o $@ $< $(HC_OPTS)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster### HetCASL parser
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterhetpa: Syntax/hetpa.hs Syntax/*.hs
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(RM) $@
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(HC) --make -o $@ $< $(HC_OPTS)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster### HetCASL parser
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterhetana: Static/hetana.hs Static/*.hs
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(RM) $@
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(HC) --make -o $@ $< $(HC_OPTS)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster### ATC test system
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosteratctest: ATC/ATCTest.hs ATC/*.hs
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(RM) $@
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(HC) --make -o $@ $< $(HC_OPTS)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosteratctest2: Common/ATerm/ATermLibTest.hs Common/SimpPretty.hs Common/ATerm/*.hs Common/Lib/*.hs
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(RM) $@
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(HC) --make -o $@ $< $(HC_OPTS)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster### ATerm.Lib test system
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosteratermlibtest: Common/ATerm/ATermLibTest.hs Common/ATerm/*.hs Common/SimpPretty.hs
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(RM) $@
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(HC) --make -o $@ $< $(HC_OPTS)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster### HetCASL with dev graph
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterhetdg: GUI/hetdg.hs $(drifted_files) *.hs
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(RM) $@
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(HC) --make -o $@ $< $(HC_OPTS) -package-conf ../uni/uni-package.conf -package uni-davinci -package uni-server
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster### run tests in other directories
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fostercheck: hetcats
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster for i in $(TESTDIRS); do $(MAKE) -C $$i check; done
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster####################################################################
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster## Preparing the version of HetCATS
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterhetcats/Version.hs: hetcats/Version.in version_nr
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(PERL) utils/build_version.pl version_nr < hetcats/Version.in > $@
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster## two hardcoded dependencies for a correct generation of Version.hs
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterhetcats/Options.hs hetcats/WriteFn.hs hetcats/ReadFn.hs: hetcats/Version.hs
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterhets.hs: hetcats/Version.hs
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster####################################################################
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster## rules for DrIFT
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster%.hs: %.ly
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(HAPPY) $<
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster%.hs: %.der.hs utils/DrIFT
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(DRIFT) $(DRIFT_OPTS) $< > $@
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster## rules for inlineAxioms
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster%.hs: %.inline.hs $(INLINEAXIOMS)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(INLINEAXIOMS) $< > $@
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster## compiling rules for object and interface files
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster%.o %.hi: %.hs
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(HC) -c $< $(HC_OPTS)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster%.o %.hi: %.lhs
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(HC) -c $< $(HC_OPTS)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster## compiling rules for dependencies
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster%.d : %.hs
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(HC) -M $< $(HC_OPTS) -optdep-f -optdep$@
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster%.d : %.lhs
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(HC) -M $< $(HC_OPTS) -optdep-f -optdep$@
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster####################################################################
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster## Setting a global search path (for dependency files)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterifneq ($(MAKECMDGOALS),clean)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterifneq ($(MAKECMDGOALS),real_clean)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterifneq ($(MAKECMDGOALS),d_clean)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterifneq ($(MAKECMDGOALS),real_clean)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterifneq ($(MAKECMDGOALS),distclean)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterifneq ($(MAKECMDGOALS),genRules)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterifneq ($(MAKECMDGOALS),utils/genRules)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterifneq ($(MAKECMDGOALS),derivedSources)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterifneq ($(MAKECMDGOALS),release)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterifneq ($(MAKECMDGOALS),clean_genRules)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterifeq ($(MAKECMDGOALS),hets-old)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster## include every .d file in INCLUDE_PATH
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster-include $(objects:.o=.d)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterendif
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fostersources_hetcats.mk: hetcats-make hetcats/Version.hs hets.hs utils/create_sources.pl $(drifted_files) $(happy_files)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(PERL) utils/create_sources.pl hetcats-make sources_hetcats.mk
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterendif
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterendif
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterendif
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterendif
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterendif
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterendif
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterendif
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterendif
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterendif
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterendif
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster