Makefile revision e7e1ab2ac3f1fded8611bb92ae00e8f3b8c693fb
080575042aba2197b425ebfd52061dea061a9aa1xy# hetcats/Makefile
080575042aba2197b425ebfd52061dea061a9aa1xy# $Header$
080575042aba2197b425ebfd52061dea061a9aa1xy# Author: (c) Klaus L�ttich, Christian Maeder, Uni Bremen 2002-2004
080575042aba2197b425ebfd52061dea061a9aa1xy# Year: 2004
080575042aba2197b425ebfd52061dea061a9aa1xy
080575042aba2197b425ebfd52061dea061a9aa1xy# This Makefile will compile the new hetcats system and provides also
080575042aba2197b425ebfd52061dea061a9aa1xy# targets for test programs during implementation phases.
080575042aba2197b425ebfd52061dea061a9aa1xy
47b7744cbea59975a6b583125b7ed1ff2ac45313yy# !!! Note: This makefile is written for GNU make !!!
080575042aba2197b425ebfd52061dea061a9aa1xy# (gmake on solaris ; make on linux)
080575042aba2197b425ebfd52061dea061a9aa1xy
080575042aba2197b425ebfd52061dea061a9aa1xy####################################################################
080575042aba2197b425ebfd52061dea061a9aa1xy## Some varibles, which control the compilation
080575042aba2197b425ebfd52061dea061a9aa1xy
080575042aba2197b425ebfd52061dea061a9aa1xyINCLUDE_PATH = ghc:hetcats
080575042aba2197b425ebfd52061dea061a9aa1xyCOMMONLIB_PATH = Common/Lib:Common/Lib/Parsec:Common/ATerm
080575042aba2197b425ebfd52061dea061a9aa1xyCLEAN_PATH = utils/DrIFT-src:utils/GenerateRules:Common:Logic:CASL:Syntax:Static:GUI:HasCASL:Haskell:Modal:CspCASL:ATC:ToHaskell:Proofs:Comorphisms:Isabelle:$(INCLUDE_PATH):Haskell/Hatchet
080575042aba2197b425ebfd52061dea061a9aa1xy## set ghc imports properly for your system
080575042aba2197b425ebfd52061dea061a9aa1xyLINUX_IMPORTS = $(wildcard /home/linux-bkb/ghc/ghc-latest/lib/ghc-*/imports)
080575042aba2197b425ebfd52061dea061a9aa1xyDRIFT_ENV = DERIVEPATH='.:ghc:hetcats:${LINUX_IMPORTS}:${GHC_IMPORTS}'
080575042aba2197b425ebfd52061dea061a9aa1xy
47b7744cbea59975a6b583125b7ed1ff2ac45313yyDRIFT_deps = utils/DrIFT-src/*hs
080575042aba2197b425ebfd52061dea061a9aa1xyGENERATERULES_deps = utils/GenerateRules/*hs $(DRIFT_deps)
080575042aba2197b425ebfd52061dea061a9aa1xyINLINEAXIOMS_deps = utils/InlineAxioms/*hs
080575042aba2197b425ebfd52061dea061a9aa1xy
080575042aba2197b425ebfd52061dea061a9aa1xyHC = ghc
080575042aba2197b425ebfd52061dea061a9aa1xyPERL = perl
080575042aba2197b425ebfd52061dea061a9aa1xyHAPPY = happy
080575042aba2197b425ebfd52061dea061a9aa1xyDRIFT = $(DRIFT_ENV) utils/DrIFT
080575042aba2197b425ebfd52061dea061a9aa1xyINLINEAXIOMS = utils/inlineAxioms
080575042aba2197b425ebfd52061dea061a9aa1xyHADDOCK = haddock
080575042aba2197b425ebfd52061dea061a9aa1xy
080575042aba2197b425ebfd52061dea061a9aa1xyHC_FLAGS = -Wall
080575042aba2197b425ebfd52061dea061a9aa1xy# -fglasgow-exts comes in via ../uni/uni-package.conf
25f2d433de915875c8393f0b0dc14aa155997ad0xy
25f2d433de915875c8393f0b0dc14aa155997ad0xyHC_INCLUDE = -i$(INCLUDE_PATH)
25f2d433de915875c8393f0b0dc14aa155997ad0xyHC_PACKAGE = -package-conf ../uni/uni-package.conf -package uni-davinci \
080575042aba2197b425ebfd52061dea061a9aa1xy -package uni-server
080575042aba2197b425ebfd52061dea061a9aa1xy
080575042aba2197b425ebfd52061dea061a9aa1xy### Profiling and Warnings (only for debugging)
080575042aba2197b425ebfd52061dea061a9aa1xy### Attention every module must be compiled with profiling or the linker
080575042aba2197b425ebfd52061dea061a9aa1xy### cannot link the various .o files properly. So after switching on
080575042aba2197b425ebfd52061dea061a9aa1xy### Profiling, do an 'gmake clean; gmake'
080575042aba2197b425ebfd52061dea061a9aa1xy### If you need Profiling comment out the following line
080575042aba2197b425ebfd52061dea061a9aa1xy#HC_PROF = -prof -auto-all
25f2d433de915875c8393f0b0dc14aa155997ad0xy
25f2d433de915875c8393f0b0dc14aa155997ad0xyHCI_OPTS = $(HC_FLAGS) $(HC_PACKAGE) $(HC_INCLUDE)
25f2d433de915875c8393f0b0dc14aa155997ad0xyHC_OPTS = $(HCI_OPTS) $(HC_PROF)
25f2d433de915875c8393f0b0dc14aa155997ad0xyDRIFT_OPTS = +RTS -K10m -RTS
7941757c1241fe30e30f921910595c8ac6af9ef1xy
080575042aba2197b425ebfd52061dea061a9aa1xy### list of directories to run checks in
7941757c1241fe30e30f921910595c8ac6af9ef1xyTESTDIRS = Common CASL HasCASL
7941757c1241fe30e30f921910595c8ac6af9ef1xy
080575042aba2197b425ebfd52061dea061a9aa1xy
25f2d433de915875c8393f0b0dc14aa155997ad0xy####################################################################
25f2d433de915875c8393f0b0dc14aa155997ad0xy## sources for hetcats (semi - manually produced with a perl script)
080575042aba2197b425ebfd52061dea061a9aa1xy
25f2d433de915875c8393f0b0dc14aa155997ad0xyifneq ($(MAKECMDGOALS),clean)
25f2d433de915875c8393f0b0dc14aa155997ad0xyifneq ($(MAKECMDGOALS),bin_clean)
25f2d433de915875c8393f0b0dc14aa155997ad0xyifneq ($(MAKECMDGOALS),d_clean)
080575042aba2197b425ebfd52061dea061a9aa1xyifneq ($(MAKECMDGOALS),real_clean)
080575042aba2197b425ebfd52061dea061a9aa1xyifneq ($(MAKECMDGOALS),distclean)
080575042aba2197b425ebfd52061dea061a9aa1xyifneq ($(MAKECMDGOALS),genRules)
080575042aba2197b425ebfd52061dea061a9aa1xyifneq ($(MAKECMDGOALS),utils/genRules)
25f2d433de915875c8393f0b0dc14aa155997ad0xyifneq ($(MAKECMDGOALS),hets-opt)
080575042aba2197b425ebfd52061dea061a9aa1xyifneq ($(MAKECMDGOALS),hets-optimized)
080575042aba2197b425ebfd52061dea061a9aa1xyifneq ($(MAKECMDGOALS),derivedSources)
7941757c1241fe30e30f921910595c8ac6af9ef1xyifneq ($(MAKECMDGOALS),release)
080575042aba2197b425ebfd52061dea061a9aa1xyifneq ($(MAKECMDGOALS),check)
080575042aba2197b425ebfd52061dea061a9aa1xyifneq ($(MAKECMDGOALS),apache_doc)
080575042aba2197b425ebfd52061dea061a9aa1xyifneq ($(MAKECMDGOALS),clean_genRules)
080575042aba2197b425ebfd52061dea061a9aa1xyifneq ($(MAKECMDGOALS),atctest2)
080575042aba2197b425ebfd52061dea061a9aa1xyinclude sources_hetcats.mk
080575042aba2197b425ebfd52061dea061a9aa1xyendif
25f2d433de915875c8393f0b0dc14aa155997ad0xyendif
080575042aba2197b425ebfd52061dea061a9aa1xyendif
080575042aba2197b425ebfd52061dea061a9aa1xyendif
080575042aba2197b425ebfd52061dea061a9aa1xyendif
25f2d433de915875c8393f0b0dc14aa155997ad0xyendif
25f2d433de915875c8393f0b0dc14aa155997ad0xyendif
25f2d433de915875c8393f0b0dc14aa155997ad0xyendif
25f2d433de915875c8393f0b0dc14aa155997ad0xyendif
080575042aba2197b425ebfd52061dea061a9aa1xyendif
080575042aba2197b425ebfd52061dea061a9aa1xyendif
25f2d433de915875c8393f0b0dc14aa155997ad0xyendif
080575042aba2197b425ebfd52061dea061a9aa1xyendif
080575042aba2197b425ebfd52061dea061a9aa1xyendif
080575042aba2197b425ebfd52061dea061a9aa1xyendif
080575042aba2197b425ebfd52061dea061a9aa1xy
080575042aba2197b425ebfd52061dea061a9aa1xyobjects = $(patsubst %.lhs,%.o,$(sources:%.hs=%.o))
080575042aba2197b425ebfd52061dea061a9aa1xy
080575042aba2197b425ebfd52061dea061a9aa1xydrifted_files = Syntax/AS_Architecture.hs Syntax/AS_Library.hs\
080575042aba2197b425ebfd52061dea061a9aa1xy Common/AS_Annotation.hs CASL/AS_Basic_CASL.hs Syntax/AS_Structured.hs \
080575042aba2197b425ebfd52061dea061a9aa1xy $(gendrifted_files)
080575042aba2197b425ebfd52061dea061a9aa1xy
080575042aba2197b425ebfd52061dea061a9aa1xygenrule_header_files = $(wildcard ATC/*.header.hs)
080575042aba2197b425ebfd52061dea061a9aa1xy
080575042aba2197b425ebfd52061dea061a9aa1xygenrule_files = Common/Lib/Graph.hs Common/Id.hs Common/Result.hs \
080575042aba2197b425ebfd52061dea061a9aa1xy Common/AS_Annotation.der.hs \
080575042aba2197b425ebfd52061dea061a9aa1xy Syntax/AS_Structured.der.hs Syntax/AS_Architecture.der.hs \
080575042aba2197b425ebfd52061dea061a9aa1xy Common/GlobalAnnotations.hs Syntax/AS_Library.der.hs \
080575042aba2197b425ebfd52061dea061a9aa1xy CASL/Sublogic.hs \
080575042aba2197b425ebfd52061dea061a9aa1xy CASL/Morphism.hs CASL/Sign.hs CASL/AS_Basic_CASL.der.hs \
080575042aba2197b425ebfd52061dea061a9aa1xy HasCASL/As.hs HasCASL/Le.hs HasCASL/Morphism.hs \
080575042aba2197b425ebfd52061dea061a9aa1xy Modal/AS_Modal.hs Modal/ModalSign.hs \
080575042aba2197b425ebfd52061dea061a9aa1xy CspCASL/AS_CSP_CASL.hs \
080575042aba2197b425ebfd52061dea061a9aa1xy Static/DevGraph.hs \
080575042aba2197b425ebfd52061dea061a9aa1xy Haskell/Hatchet/AnnotatedHsSyn.hs \
080575042aba2197b425ebfd52061dea061a9aa1xy Haskell/Hatchet/MultiModuleBasics.hs \
080575042aba2197b425ebfd52061dea061a9aa1xy Haskell/Hatchet/HsSyn.hs \
080575042aba2197b425ebfd52061dea061a9aa1xy Haskell/Hatchet/Representation.hs\
080575042aba2197b425ebfd52061dea061a9aa1xy Haskell/Hatchet/Class.hs Haskell/Hatchet/KindInference.hs \
080575042aba2197b425ebfd52061dea061a9aa1xy Haskell/Hatchet/Env.hs \
080575042aba2197b425ebfd52061dea061a9aa1xy Isabelle/IsaSign.hs
080575042aba2197b425ebfd52061dea061a9aa1xy
080575042aba2197b425ebfd52061dea061a9aa1xygendrifted_files = ATC/Graph.hs ATC/Id.hs ATC/Result.hs ATC/AS_Annotation.hs \
080575042aba2197b425ebfd52061dea061a9aa1xy ATC/AS_Library.hs ATC/GlobalAnnotations.hs \
080575042aba2197b425ebfd52061dea061a9aa1xy ATC/AS_Structured.hs ATC/AS_Architecture.hs \
080575042aba2197b425ebfd52061dea061a9aa1xy ATC/DevGraph.hs \
080575042aba2197b425ebfd52061dea061a9aa1xy CASL/ATC_CASL.hs Haskell/ATC_Haskell.hs \
080575042aba2197b425ebfd52061dea061a9aa1xy HasCASL/ATC_HasCASL.hs CspCASL/ATC_CspCASL.hs \
9b6541b318d01d0d83bfb98699a7f09e35f37951gl Modal/ATC_Modal.hs ATC/IsaSign.hs
9b6541b318d01d0d83bfb98699a7f09e35f37951gl
080575042aba2197b425ebfd52061dea061a9aa1xygenerated_rule_files = $(patsubst %.hs,%.der.hs,$(gendrifted_files))
080575042aba2197b425ebfd52061dea061a9aa1xy
080575042aba2197b425ebfd52061dea061a9aa1xyinline_axiom_files = Comorphisms/CASL2PCFOL.hs
080575042aba2197b425ebfd52061dea061a9aa1xygen_inline_axiom_files = $(patsubst %.hs,%.inline.hs,$(inline_axiom_files))
080575042aba2197b425ebfd52061dea061a9aa1xy
080575042aba2197b425ebfd52061dea061a9aa1xyhappy_files = Haskell/Hatchet/HsParser.hs
080575042aba2197b425ebfd52061dea061a9aa1xy
080575042aba2197b425ebfd52061dea061a9aa1xy# this variable holds the modules that should be documented
080575042aba2197b425ebfd52061dea061a9aa1xy# the imported parsec library is not included!
080575042aba2197b425ebfd52061dea061a9aa1xydoc_sources = $(filter-out ./Isabelle/IsaSign.hs ,$(sources))
080575042aba2197b425ebfd52061dea061a9aa1xy
080575042aba2197b425ebfd52061dea061a9aa1xy####################################################################
080575042aba2197b425ebfd52061dea061a9aa1xy### targets
080575042aba2197b425ebfd52061dea061a9aa1xy
080575042aba2197b425ebfd52061dea061a9aa1xy.PHONY : clean d_clean real_clean bin_clean check hetana hetpa hetdg \
080575042aba2197b425ebfd52061dea061a9aa1xy clean_genRules genRules
080575042aba2197b425ebfd52061dea061a9aa1xy
080575042aba2197b425ebfd52061dea061a9aa1xy.SECONDARY : %.hs %.d $(generated_rule_files) $(gen_inline_axiom_files)
080575042aba2197b425ebfd52061dea061a9aa1xy#.PRECIOUS: sources_hetcats.mk
080575042aba2197b425ebfd52061dea061a9aa1xy
080575042aba2197b425ebfd52061dea061a9aa1xyall: hets
25f2d433de915875c8393f0b0dc14aa155997ad0xy
25f2d433de915875c8393f0b0dc14aa155997ad0xyhets: $(sources)
25f2d433de915875c8393f0b0dc14aa155997ad0xy $(HC) --make -o $@ hets.hs $(HC_OPTS) 2>&1 | tee hetcats-make
25f2d433de915875c8393f0b0dc14aa155997ad0xy
25f2d433de915875c8393f0b0dc14aa155997ad0xyhets-opt: hetcats/Version.hs
25f2d433de915875c8393f0b0dc14aa155997ad0xy $(MAKE) distclean
080575042aba2197b425ebfd52061dea061a9aa1xy $(MAKE) derivedSources
080575042aba2197b425ebfd52061dea061a9aa1xy $(MAKE) hets-optimized
080575042aba2197b425ebfd52061dea061a9aa1xy
080575042aba2197b425ebfd52061dea061a9aa1xyhets-optimized:
25f2d433de915875c8393f0b0dc14aa155997ad0xy $(HC) --make -O2 -o hets hets.hs $(HC_OPTS) 2>&1 | tee hetcats-make
25f2d433de915875c8393f0b0dc14aa155997ad0xy strip hets
080575042aba2197b425ebfd52061dea061a9aa1xy
080575042aba2197b425ebfd52061dea061a9aa1xyhets-old: $(objects)
080575042aba2197b425ebfd52061dea061a9aa1xy $(RM) $@
080575042aba2197b425ebfd52061dea061a9aa1xy $(HC) -o hets $(HC_OPTS) $(objects)
080575042aba2197b425ebfd52061dea061a9aa1xy
080575042aba2197b425ebfd52061dea061a9aa1xyhetcats-make: hets.hs utils/create_sources.pl $(drifted_files) $(happy_files)
080575042aba2197b425ebfd52061dea061a9aa1xy $(RM) hetcats-make sources_hetcats.mk
080575042aba2197b425ebfd52061dea061a9aa1xy $(HC) --make -o hets $< $(HC_OPTS) 2>&1 | tee hetcats-make
080575042aba2197b425ebfd52061dea061a9aa1xy
080575042aba2197b425ebfd52061dea061a9aa1xy###############################
7941757c1241fe30e30f921910595c8ac6af9ef1xy### TAGS files for (x)emacs
080575042aba2197b425ebfd52061dea061a9aa1xy# load them with "M-x" "visit-tags-table" from
25f2d433de915875c8393f0b0dc14aa155997ad0xy# "HetCATS/hetcats/hetcats.TAGS"
25f2d433de915875c8393f0b0dc14aa155997ad0xy# use "M-." to search for a tag
25f2d433de915875c8393f0b0dc14aa155997ad0xy# !!Beware this is somewhat instable, because it uses an absolute path!!
080575042aba2197b425ebfd52061dea061a9aa1xyhetcats.TAGS: $(sources)
080575042aba2197b425ebfd52061dea061a9aa1xy /home/ger/linux/ghc-5.04.2/bin/i386-unknown-linux/hasktags \
080575042aba2197b425ebfd52061dea061a9aa1xy $(sources); mv TAGS $@; mv tags hetcats.tags
080575042aba2197b425ebfd52061dea061a9aa1xy
080575042aba2197b425ebfd52061dea061a9aa1xy###############################
080575042aba2197b425ebfd52061dea061a9aa1xy### Documentation via haddock
080575042aba2197b425ebfd52061dea061a9aa1xydoc: docs/index.html
080575042aba2197b425ebfd52061dea061a9aa1xy
080575042aba2197b425ebfd52061dea061a9aa1xy# index for prelude is missing
080575042aba2197b425ebfd52061dea061a9aa1xydocs/index.html: $(doc_sources)
9ce7e93c0e8e6d2b400f40e9c5742b1d6682611ecc $(HADDOCK) $(doc_sources) -o docs -h \
080575042aba2197b425ebfd52061dea061a9aa1xy -i docs/base.haddock \
080575042aba2197b425ebfd52061dea061a9aa1xy -t 'hets -- a heterogenous Specification (CASL) tool set'
080575042aba2197b425ebfd52061dea061a9aa1xy
080575042aba2197b425ebfd52061dea061a9aa1xyapache_doc:
25f2d433de915875c8393f0b0dc14aa155997ad0xy $(RM) docs/*.*
080575042aba2197b425ebfd52061dea061a9aa1xy cvs up -d
25f2d433de915875c8393f0b0dc14aa155997ad0xy $(MAKE) hets-opt
080575042aba2197b425ebfd52061dea061a9aa1xy $(MAKE) doc
080575042aba2197b425ebfd52061dea061a9aa1xy $(MAKE) post_doc4apache
080575042aba2197b425ebfd52061dea061a9aa1xy
080575042aba2197b425ebfd52061dea061a9aa1xypost_doc4apache:
080575042aba2197b425ebfd52061dea061a9aa1xy $(PERL) utils/post_process_docs.pl docs \
080575042aba2197b425ebfd52061dea061a9aa1xy 'Common.Lib.Map.html:Common.Lib._Map.html'
080575042aba2197b425ebfd52061dea061a9aa1xy cp docs/*.* a-docs/
080575042aba2197b425ebfd52061dea061a9aa1xy $(RM) docs/index.html
080575042aba2197b425ebfd52061dea061a9aa1xy
080575042aba2197b425ebfd52061dea061a9aa1xy###############################
080575042aba2197b425ebfd52061dea061a9aa1xy### release management
080575042aba2197b425ebfd52061dea061a9aa1xy
47b7744cbea59975a6b583125b7ed1ff2ac45313yyderivedSources: $(drifted_files) $(happy_files) hetcats/Version.hs
47b7744cbea59975a6b583125b7ed1ff2ac45313yy
080575042aba2197b425ebfd52061dea061a9aa1xyutils/DrIFT: $(DRIFT_deps)
47b7744cbea59975a6b583125b7ed1ff2ac45313yy (cd utils/DrIFT-src; $(HC) --make DrIFT.hs -o ../DrIFT && \
080575042aba2197b425ebfd52061dea061a9aa1xy strip ../DrIFT)
47b7744cbea59975a6b583125b7ed1ff2ac45313yy
47b7744cbea59975a6b583125b7ed1ff2ac45313yyutils/genRules: $(GENERATERULES_deps)
47b7744cbea59975a6b583125b7ed1ff2ac45313yy (cd utils/GenerateRules; \
47b7744cbea59975a6b583125b7ed1ff2ac45313yy $(HC) --make '-i../..:../DrIFT-src' -package text GenerateRules.hs -o ../genRules && \
080575042aba2197b425ebfd52061dea061a9aa1xy strip ../genRules)
080575042aba2197b425ebfd52061dea061a9aa1xy
080575042aba2197b425ebfd52061dea061a9aa1xyutils/inlineAxioms: $(INLINEAXIOMS_deps)
080575042aba2197b425ebfd52061dea061a9aa1xy (cd utils/InlineAxioms; \
080575042aba2197b425ebfd52061dea061a9aa1xy $(MAKE) install && \
080575042aba2197b425ebfd52061dea061a9aa1xy strip ../inlineAxioms)
25f2d433de915875c8393f0b0dc14aa155997ad0xy
25f2d433de915875c8393f0b0dc14aa155997ad0xyrelease:
25f2d433de915875c8393f0b0dc14aa155997ad0xy $(RM) -r HetCATS
080575042aba2197b425ebfd52061dea061a9aa1xy cvs -d :pserver:cvsread@cvs-agbkb.informatik.uni-bremen.de:/repository co HetCATS
080575042aba2197b425ebfd52061dea061a9aa1xy $(RM) -r uni
080575042aba2197b425ebfd52061dea061a9aa1xy ln -s ../uni uni
080575042aba2197b425ebfd52061dea061a9aa1xy (cd HetCATS; $(MAKE) derivedSources; ./clean.sh; \
080575042aba2197b425ebfd52061dea061a9aa1xy find . -name CVS -o -name \*.o -o -name \*.hi | xargs $(RM) -r; \
080575042aba2197b425ebfd52061dea061a9aa1xy $(RM) clean.*; $(RM) Makefile; mv ReleaseMakefile Makefile)
080575042aba2197b425ebfd52061dea061a9aa1xy tar cvf HetCATS.tar HetCATS
9ce7e93c0e8e6d2b400f40e9c5742b1d6682611ecc
25f2d433de915875c8393f0b0dc14aa155997ad0xy#############################
080575042aba2197b425ebfd52061dea061a9aa1xy### ATC DrIFT-rule generation
080575042aba2197b425ebfd52061dea061a9aa1xy
080575042aba2197b425ebfd52061dea061a9aa1xygenRules: $(generated_rule_files) utils/genRules
080575042aba2197b425ebfd52061dea061a9aa1xy
080575042aba2197b425ebfd52061dea061a9aa1xy$(generated_rule_files): $(genrule_files) utils/genRules #$(genrule_header_files)
080575042aba2197b425ebfd52061dea061a9aa1xy $(MAKE) clean_genRules
080575042aba2197b425ebfd52061dea061a9aa1xy $(foreach file,$(atc_files),$(gen_atc_files))
080575042aba2197b425ebfd52061dea061a9aa1xy utils/genRules -r $(rule) -o CASL $(casl_files)
080575042aba2197b425ebfd52061dea061a9aa1xy utils/genRules -r $(rule) -o HasCASL -h ATC/HasCASL.header.hs \
7941757c1241fe30e30f921910595c8ac6af9ef1xy $(hascasl_files)
7941757c1241fe30e30f921910595c8ac6af9ef1xy utils/genRules -r $(rule) -o Modal $(modal_files)
080575042aba2197b425ebfd52061dea061a9aa1xy utils/genRules -r $(rule) -o CspCASL $(cspcasl_files)
7941757c1241fe30e30f921910595c8ac6af9ef1xy utils/genRules -r $(rule) -o Haskell -h ATC/Haskell.header.hs \
7941757c1241fe30e30f921910595c8ac6af9ef1xy $(haskell_files)
7941757c1241fe30e30f921910595c8ac6af9ef1xy
7941757c1241fe30e30f921910595c8ac6af9ef1xyrule = ShATermConvertible
7941757c1241fe30e30f921910595c8ac6af9ef1xy
080575042aba2197b425ebfd52061dea061a9aa1xygen_atc_files = if [ -f ATC/$(basename $(basename $(notdir $(file)))).header.hs ]; then \
080575042aba2197b425ebfd52061dea061a9aa1xy utils/genRules -r $(rule) -o ATC -h ATC/$(basename $(basename $(notdir $(file)))).header.hs $(file); \
080575042aba2197b425ebfd52061dea061a9aa1xy else \
080575042aba2197b425ebfd52061dea061a9aa1xy utils/genRules -r $(rule) -o ATC $(file); \
080575042aba2197b425ebfd52061dea061a9aa1xy fi ;
080575042aba2197b425ebfd52061dea061a9aa1xy
080575042aba2197b425ebfd52061dea061a9aa1xyatc_files := $(filter-out CASL/% HasCASL/% Modal/% CspCASL/% Haskell/% ,$(genrule_files))
080575042aba2197b425ebfd52061dea061a9aa1xycasl_files := $(filter CASL/% ,$(genrule_files))
080575042aba2197b425ebfd52061dea061a9aa1xyhascasl_files := $(filter HasCASL/% ,$(genrule_files))
080575042aba2197b425ebfd52061dea061a9aa1xymodal_files := $(filter Modal/% ,$(genrule_files))
25f2d433de915875c8393f0b0dc14aa155997ad0xycspcasl_files := $(filter CspCASL/% ,$(genrule_files))
080575042aba2197b425ebfd52061dea061a9aa1xyhaskell_files := $(filter Haskell/%,$(genrule_files))
080575042aba2197b425ebfd52061dea061a9aa1xy
080575042aba2197b425ebfd52061dea061a9aa1xyclean_genRules:
080575042aba2197b425ebfd52061dea061a9aa1xy $(RM) $(generated_rule_files)
080575042aba2197b425ebfd52061dea061a9aa1xy
080575042aba2197b425ebfd52061dea061a9aa1xy###############
080575042aba2197b425ebfd52061dea061a9aa1xy### clean up
080575042aba2197b425ebfd52061dea061a9aa1xy
080575042aba2197b425ebfd52061dea061a9aa1xy### removes *.hi and *.o in all include directories
080575042aba2197b425ebfd52061dea061a9aa1xyclean: bin_clean
080575042aba2197b425ebfd52061dea061a9aa1xy for p in $(subst :, ,$(CLEAN_PATH)) . ; do \
080575042aba2197b425ebfd52061dea061a9aa1xy (cd $$p ; $(RM) *.hi *.o) ; done
080575042aba2197b425ebfd52061dea061a9aa1xy
080575042aba2197b425ebfd52061dea061a9aa1xy### remove binaries
080575042aba2197b425ebfd52061dea061a9aa1xybin_clean:
080575042aba2197b425ebfd52061dea061a9aa1xy $(RM) hets
080575042aba2197b425ebfd52061dea061a9aa1xy $(RM) test_parser
080575042aba2197b425ebfd52061dea061a9aa1xy $(RM) CASL/capa
25f2d433de915875c8393f0b0dc14aa155997ad0xy $(RM) HasCASL/hacapa
080575042aba2197b425ebfd52061dea061a9aa1xy $(RM) Haskell/hapa
080575042aba2197b425ebfd52061dea061a9aa1xy $(RM) Haskell/wrap
080575042aba2197b425ebfd52061dea061a9aa1xy $(RM) Syntax/hetpa
080575042aba2197b425ebfd52061dea061a9aa1xy $(RM) Static/hetana
25f2d433de915875c8393f0b0dc14aa155997ad0xy $(RM) Static/hetana
080575042aba2197b425ebfd52061dea061a9aa1xy $(RM) GUI/hetdg
25f2d433de915875c8393f0b0dc14aa155997ad0xy $(RM) hetpa
080575042aba2197b425ebfd52061dea061a9aa1xy $(RM) hetana
080575042aba2197b425ebfd52061dea061a9aa1xy $(RM) hetdg
080575042aba2197b425ebfd52061dea061a9aa1xy
080575042aba2197b425ebfd52061dea061a9aa1xy### additonally removes *.d (dependency files) in every include directory
080575042aba2197b425ebfd52061dea061a9aa1xy### also delete *.d.bak (dependency file backups)
080575042aba2197b425ebfd52061dea061a9aa1xyd_clean: clean
080575042aba2197b425ebfd52061dea061a9aa1xy for p in $(subst :, ,$(CLEAN_PATH)) . ; do \
080575042aba2197b425ebfd52061dea061a9aa1xy (cd $$p ; $(RM) *.d *.d.bak) ; done
080575042aba2197b425ebfd52061dea061a9aa1xy
080575042aba2197b425ebfd52061dea061a9aa1xy### remove files also in own libraries
080575042aba2197b425ebfd52061dea061a9aa1xylib_clean: clean
080575042aba2197b425ebfd52061dea061a9aa1xy for p in $(subst :, ,$(COMMONLIB_PATH)) . ; do \
25f2d433de915875c8393f0b0dc14aa155997ad0xy (cd $$p ; $(RM) *.hi *.d *.o) ; done
25f2d433de915875c8393f0b0dc14aa155997ad0xy
080575042aba2197b425ebfd52061dea061a9aa1xy### additionally removes the files that define the sources-variable
080575042aba2197b425ebfd52061dea061a9aa1xyreal_clean: bin_clean lib_clean
25f2d433de915875c8393f0b0dc14aa155997ad0xy $(RM) hetcats-make sources_hetcats.mk
25f2d433de915875c8393f0b0dc14aa155997ad0xy
080575042aba2197b425ebfd52061dea061a9aa1xy### additionally removes files not in CVS tree
080575042aba2197b425ebfd52061dea061a9aa1xydistclean: real_clean clean_genRules d_clean
080575042aba2197b425ebfd52061dea061a9aa1xy $(RM) hetcats/Version.hs
080575042aba2197b425ebfd52061dea061a9aa1xy $(RM) $(drifted_files)
25f2d433de915875c8393f0b0dc14aa155997ad0xy $(RM) utils/DrIFT utils/genRules
25f2d433de915875c8393f0b0dc14aa155997ad0xy# $(RM) $(happy_files)
080575042aba2197b425ebfd52061dea061a9aa1xy
080575042aba2197b425ebfd52061dea061a9aa1xy####################################################################
080575042aba2197b425ebfd52061dea061a9aa1xy### test targets
080575042aba2197b425ebfd52061dea061a9aa1xy####################################################################
080575042aba2197b425ebfd52061dea061a9aa1xy
080575042aba2197b425ebfd52061dea061a9aa1xy### a parser to test annotation parser and Id parsers
080575042aba2197b425ebfd52061dea061a9aa1xytest_parser: Common/test_parser
080575042aba2197b425ebfd52061dea061a9aa1xy
080575042aba2197b425ebfd52061dea061a9aa1xyCommon/test_parser: Common/test_parser.hs Common/AS_Annotation.der.hs
080575042aba2197b425ebfd52061dea061a9aa1xy $(RM) $@
25f2d433de915875c8393f0b0dc14aa155997ad0xy $(HC) --make -o $@ $< $(HC_OPTS)
25f2d433de915875c8393f0b0dc14aa155997ad0xy
080575042aba2197b425ebfd52061dea061a9aa1xy### interactive
080575042aba2197b425ebfd52061dea061a9aa1xyghci:
080575042aba2197b425ebfd52061dea061a9aa1xy $(HC)i $(HCI_OPTS)
080575042aba2197b425ebfd52061dea061a9aa1xy
080575042aba2197b425ebfd52061dea061a9aa1xy### christian's target
080575042aba2197b425ebfd52061dea061a9aa1xy### CASL parser
080575042aba2197b425ebfd52061dea061a9aa1xycapa: CASL/capa
080575042aba2197b425ebfd52061dea061a9aa1xy
080575042aba2197b425ebfd52061dea061a9aa1xyCASL/capa: CASL/capa.hs Common/*.hs CASL/*.hs
080575042aba2197b425ebfd52061dea061a9aa1xy $(RM) $@
25f2d433de915875c8393f0b0dc14aa155997ad0xy $(HC) --make -o $@ $< $(HC_OPTS)
25f2d433de915875c8393f0b0dc14aa155997ad0xy
080575042aba2197b425ebfd52061dea061a9aa1xy### HasCASL parser
25f2d433de915875c8393f0b0dc14aa155997ad0xyhacapa: HasCASL/hacapa
080575042aba2197b425ebfd52061dea061a9aa1xy
080575042aba2197b425ebfd52061dea061a9aa1xyHasCASL/hacapa: HasCASL/hacapa.hs Common/*.hs HasCASL/*.hs
080575042aba2197b425ebfd52061dea061a9aa1xy $(RM) $@
080575042aba2197b425ebfd52061dea061a9aa1xy $(HC) --make -o $@ $< $(HC_OPTS)
7941757c1241fe30e30f921910595c8ac6af9ef1xy
080575042aba2197b425ebfd52061dea061a9aa1xy### Haskell parser
080575042aba2197b425ebfd52061dea061a9aa1xyhapa: Haskell/hapa
080575042aba2197b425ebfd52061dea061a9aa1xy
080575042aba2197b425ebfd52061dea061a9aa1xyHaskell/hapa: Haskell/hapa.hs Haskell/Hatchet/*.hs $(happy_files)
080575042aba2197b425ebfd52061dea061a9aa1xy $(RM) $@
080575042aba2197b425ebfd52061dea061a9aa1xy $(HC) --make -o $@ $< $(HC_OPTS)
080575042aba2197b425ebfd52061dea061a9aa1xy
080575042aba2197b425ebfd52061dea061a9aa1xy### HetCASL parser
080575042aba2197b425ebfd52061dea061a9aa1xyhetpa: Syntax/hetpa.hs Syntax/*.hs
47b7744cbea59975a6b583125b7ed1ff2ac45313yy $(RM) $@
47b7744cbea59975a6b583125b7ed1ff2ac45313yy $(HC) --make -o $@ $< $(HC_OPTS)
47b7744cbea59975a6b583125b7ed1ff2ac45313yy
47b7744cbea59975a6b583125b7ed1ff2ac45313yy### HetCASL parser
47b7744cbea59975a6b583125b7ed1ff2ac45313yyhetana: Static/hetana.hs Static/*.hs
47b7744cbea59975a6b583125b7ed1ff2ac45313yy $(RM) $@
47b7744cbea59975a6b583125b7ed1ff2ac45313yy $(HC) --make -o $@ $< $(HC_OPTS)
47b7744cbea59975a6b583125b7ed1ff2ac45313yy
080575042aba2197b425ebfd52061dea061a9aa1xy### ATC test system
25f2d433de915875c8393f0b0dc14aa155997ad0xyatctest: ATC/ATCTest.hs ATC/*.hs
080575042aba2197b425ebfd52061dea061a9aa1xy $(RM) $@
080575042aba2197b425ebfd52061dea061a9aa1xy $(HC) --make -o $@ $< $(HC_OPTS)
25f2d433de915875c8393f0b0dc14aa155997ad0xy
25f2d433de915875c8393f0b0dc14aa155997ad0xyatctest2: ATC/ATCTest2.hs Common/SimpPretty.hs Common/ATerm/*.hs Common/Lib/*.hs
080575042aba2197b425ebfd52061dea061a9aa1xy $(RM) $@
080575042aba2197b425ebfd52061dea061a9aa1xy $(HC) --make -o $@ $< $(HC_OPTS)
080575042aba2197b425ebfd52061dea061a9aa1xy
080575042aba2197b425ebfd52061dea061a9aa1xy### ATerm.Lib test system
080575042aba2197b425ebfd52061dea061a9aa1xyatermlibtest: Common/ATerm/ATermLibTest.hs Common/ATerm/*.hs Common/SimpPretty.hs
080575042aba2197b425ebfd52061dea061a9aa1xy $(RM) $@
080575042aba2197b425ebfd52061dea061a9aa1xy $(HC) --make -o $@ $< $(HC_OPTS)
080575042aba2197b425ebfd52061dea061a9aa1xy
25f2d433de915875c8393f0b0dc14aa155997ad0xy### HetCASL with dev graph
080575042aba2197b425ebfd52061dea061a9aa1xyhetdg: GUI/hetdg.hs $(drifted_files) *.hs
47b7744cbea59975a6b583125b7ed1ff2ac45313yy $(RM) $@
47b7744cbea59975a6b583125b7ed1ff2ac45313yy $(HC) --make -o $@ $< $(HC_OPTS) -package-conf ../uni/uni-package.conf -package uni-davinci -package uni-server
080575042aba2197b425ebfd52061dea061a9aa1xy
080575042aba2197b425ebfd52061dea061a9aa1xy
080575042aba2197b425ebfd52061dea061a9aa1xy### run tests in other directories
080575042aba2197b425ebfd52061dea061a9aa1xycheck: hetcats
080575042aba2197b425ebfd52061dea061a9aa1xy for i in $(TESTDIRS); do $(MAKE) -C $$i check; done
080575042aba2197b425ebfd52061dea061a9aa1xy
25f2d433de915875c8393f0b0dc14aa155997ad0xy####################################################################
080575042aba2197b425ebfd52061dea061a9aa1xy## Preparing the version of HetCATS
25f2d433de915875c8393f0b0dc14aa155997ad0xyhetcats/Version.hs: hetcats/Version.in version_nr
080575042aba2197b425ebfd52061dea061a9aa1xy $(PERL) utils/build_version.pl version_nr < hetcats/Version.in > $@
080575042aba2197b425ebfd52061dea061a9aa1xy
080575042aba2197b425ebfd52061dea061a9aa1xy## two hardcoded dependencies for a correct generation of Version.hs
080575042aba2197b425ebfd52061dea061a9aa1xyhetcats/Options.hs hetcats/WriteFn.hs hetcats/ReadFn.hs: hetcats/Version.hs
080575042aba2197b425ebfd52061dea061a9aa1xyhets.hs: hetcats/Version.hs
7941757c1241fe30e30f921910595c8ac6af9ef1xy####################################################################
7941757c1241fe30e30f921910595c8ac6af9ef1xy## rules for DrIFT
7941757c1241fe30e30f921910595c8ac6af9ef1xy
7941757c1241fe30e30f921910595c8ac6af9ef1xy%.hs: %.ly
7941757c1241fe30e30f921910595c8ac6af9ef1xy $(HAPPY) $<
7941757c1241fe30e30f921910595c8ac6af9ef1xy
7941757c1241fe30e30f921910595c8ac6af9ef1xy%.hs: %.der.hs utils/DrIFT
7941757c1241fe30e30f921910595c8ac6af9ef1xy $(DRIFT) $(DRIFT_OPTS) $< > $@
7941757c1241fe30e30f921910595c8ac6af9ef1xy
7941757c1241fe30e30f921910595c8ac6af9ef1xy## rules for inlineAxioms
7941757c1241fe30e30f921910595c8ac6af9ef1xy%.hs: %.inline.hs utils/inlineAxioms
7941757c1241fe30e30f921910595c8ac6af9ef1xy $(INLINEAXIOMS) $< > $@
7941757c1241fe30e30f921910595c8ac6af9ef1xy
7941757c1241fe30e30f921910595c8ac6af9ef1xy## compiling rules for object and interface files
7941757c1241fe30e30f921910595c8ac6af9ef1xy%.o %.hi: %.hs
7941757c1241fe30e30f921910595c8ac6af9ef1xy $(HC) -c $< $(HC_OPTS)
7941757c1241fe30e30f921910595c8ac6af9ef1xy
7941757c1241fe30e30f921910595c8ac6af9ef1xy%.o %.hi: %.lhs
7941757c1241fe30e30f921910595c8ac6af9ef1xy $(HC) -c $< $(HC_OPTS)
7941757c1241fe30e30f921910595c8ac6af9ef1xy
7941757c1241fe30e30f921910595c8ac6af9ef1xy## compiling rules for dependencies
7941757c1241fe30e30f921910595c8ac6af9ef1xy%.d : %.hs
080575042aba2197b425ebfd52061dea061a9aa1xy $(HC) -M $< $(HC_OPTS) -optdep-f -optdep$@
080575042aba2197b425ebfd52061dea061a9aa1xy
7941757c1241fe30e30f921910595c8ac6af9ef1xy%.d : %.lhs
080575042aba2197b425ebfd52061dea061a9aa1xy $(HC) -M $< $(HC_OPTS) -optdep-f -optdep$@
080575042aba2197b425ebfd52061dea061a9aa1xy
25f2d433de915875c8393f0b0dc14aa155997ad0xy####################################################################
25f2d433de915875c8393f0b0dc14aa155997ad0xy## Setting a global search path (for dependency files)
25f2d433de915875c8393f0b0dc14aa155997ad0xy
7941757c1241fe30e30f921910595c8ac6af9ef1xyifneq ($(MAKECMDGOALS),clean)
080575042aba2197b425ebfd52061dea061a9aa1xyifneq ($(MAKECMDGOALS),real_clean)
080575042aba2197b425ebfd52061dea061a9aa1xyifneq ($(MAKECMDGOALS),d_clean)
080575042aba2197b425ebfd52061dea061a9aa1xyifneq ($(MAKECMDGOALS),real_clean)
080575042aba2197b425ebfd52061dea061a9aa1xyifneq ($(MAKECMDGOALS),distclean)
080575042aba2197b425ebfd52061dea061a9aa1xyifneq ($(MAKECMDGOALS),genRules)
080575042aba2197b425ebfd52061dea061a9aa1xyifneq ($(MAKECMDGOALS),utils/genRules)
080575042aba2197b425ebfd52061dea061a9aa1xyifneq ($(MAKECMDGOALS),derivedSources)
25f2d433de915875c8393f0b0dc14aa155997ad0xyifneq ($(MAKECMDGOALS),release)
080575042aba2197b425ebfd52061dea061a9aa1xyifneq ($(MAKECMDGOALS),clean_genRules)
080575042aba2197b425ebfd52061dea061a9aa1xyifeq ($(MAKECMDGOALS),hets-old)
7941757c1241fe30e30f921910595c8ac6af9ef1xy## include every .d file in INCLUDE_PATH
080575042aba2197b425ebfd52061dea061a9aa1xy-include $(objects:.o=.d)
080575042aba2197b425ebfd52061dea061a9aa1xyendif
080575042aba2197b425ebfd52061dea061a9aa1xy
080575042aba2197b425ebfd52061dea061a9aa1xysources_hetcats.mk: hetcats-make hetcats/Version.hs hets.hs utils/create_sources.pl $(drifted_files) $(happy_files)
080575042aba2197b425ebfd52061dea061a9aa1xy $(PERL) utils/create_sources.pl hetcats-make sources_hetcats.mk
080575042aba2197b425ebfd52061dea061a9aa1xyendif
7941757c1241fe30e30f921910595c8ac6af9ef1xyendif
7941757c1241fe30e30f921910595c8ac6af9ef1xyendif
080575042aba2197b425ebfd52061dea061a9aa1xyendif
25f2d433de915875c8393f0b0dc14aa155997ad0xyendif
080575042aba2197b425ebfd52061dea061a9aa1xyendif
7941757c1241fe30e30f921910595c8ac6af9ef1xyendif
080575042aba2197b425ebfd52061dea061a9aa1xyendif
7941757c1241fe30e30f921910595c8ac6af9ef1xyendif
7941757c1241fe30e30f921910595c8ac6af9ef1xyendif
080575042aba2197b425ebfd52061dea061a9aa1xy