Makefile revision b905126bab9454b89041f92b3c50bb9efc85e427
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu# hetcats/Makefile
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu# $Header$
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu# Author: (c) Klaus L�ttich, Christian Maeder, Uni Bremen 2002-2004
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu# Year: 2004
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu# This Makefile will compile the new hetcats system and provides also
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu# targets for test programs during implementation phases.
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu# !!! Note: This makefile is written for GNU make !!!
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu# (gmake on solaris ; make on linux)
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu####################################################################
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu## Some varibles, which control the compilation
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi LiuINCLUDE_PATH = ghc:hetcats
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi LiuCOMMONLIB_PATH = Common/Lib:Common/Lib/Parsec:Common/ATerm
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi LiuCLEAN_PATH = utils/DrIFT-src:utils/GenerateRules:Common:Logic:CASL:CASL/CCC:Syntax:Static:GUI:HasCASL:Haskell:Modal:CoCASL:CspCASL:ATC:ToHaskell:Proofs:Comorphisms:Isabelle:$(INCLUDE_PATH):Haskell/Hatchet
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu## set ghc imports properly for your system
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi LiuLINUX_IMPORTS = $(wildcard /home/linux-bkb/ghc/ghc-latest/lib/ghc-*/imports)
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi LiuDRIFT_ENV = DERIVEPATH='.:ghc:hetcats:${LINUX_IMPORTS}:${GHC_IMPORTS}'
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu# override on commandline for other architectures
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi LiuINSTALLDIR = /home/www/agbkb/forschung/formal_methods/CoFI/hets/`utils/sysname.sh`
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi LiuDRIFT_deps = utils/DrIFT-src/*hs
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi LiuGENERATERULES_deps = utils/GenerateRules/*hs $(DRIFT_deps)
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi LiuINLINEAXIOMS_deps = utils/InlineAxioms/*hs
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi LiuHC = ghc
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi LiuPERL = perl
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi LiuHAPPY = happy
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi LiuDRIFT = $(DRIFT_ENV) utils/DrIFT
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi LiuINLINEAXIOMS = utils/outlineAxioms
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi LiuHADDOCK = haddock
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi LiuHC_FLAGS = -Wall
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu# -fglasgow-exts comes in via ../uni/uni-package.conf
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi LiuHC_INCLUDE = -i$(INCLUDE_PATH)
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi LiuHC_PACKAGE = -package-conf ../uni/uni-package.conf -package uni-davinci \
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu -package uni-server
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu### Profiling and Warnings (only for debugging)
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu### Attention every module must be compiled with profiling or the linker
00c293f39ea1777bf7f682398237a2aba8d155d3Mingyi Liu### cannot link the various .o files properly. So after switching on
be2ce59898c3fecd3a52e981e57b553c54979bf8Mingyi Liu### Profiling, do an 'gmake clean; gmake'
f955439310a3bdfccb2543de3b9bd29480e1033fMingyi Liu### If you need Profiling comment out the following line
be2ce59898c3fecd3a52e981e57b553c54979bf8Mingyi Liu#HC_PROF = -prof -auto-all
00c293f39ea1777bf7f682398237a2aba8d155d3Mingyi Liu
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi LiuHCI_OPTS = $(HC_FLAGS) $(HC_PACKAGE) $(HC_INCLUDE)
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi LiuHC_OPTS = $(HCI_OPTS) $(HC_PROF)
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi LiuDRIFT_OPTS = +RTS -K10m -RTS
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu### list of directories to run checks in
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi LiuTESTDIRS = Common CASL HasCASL Haskell/Hatchet/examples ToHaskell/test
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu####################################################################
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu## sources for hetcats (semi - manually produced with a perl script)
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liuifneq ($(MAKECMDGOALS),clean)
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liuifneq ($(MAKECMDGOALS),bin_clean)
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liuifneq ($(MAKECMDGOALS),d_clean)
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liuifneq ($(MAKECMDGOALS),real_clean)
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liuifneq ($(MAKECMDGOALS),distclean)
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liuifneq ($(MAKECMDGOALS),genRules)
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liuifneq ($(MAKECMDGOALS),utils/genRules)
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liuifneq ($(MAKECMDGOALS),hets-opt)
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liuifneq ($(MAKECMDGOALS),hets-optimized)
e953bea49e7f0e1a43bccf2a66c5e2a2b50848e0Christian Maederifneq ($(MAKECMDGOALS),derivedSources)
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liuifneq ($(MAKECMDGOALS),utils/outlineAxioms)
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liuifneq ($(MAKECMDGOALS),release)
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liuifneq ($(MAKECMDGOALS),check)
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liuifneq ($(MAKECMDGOALS),apache_doc)
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liuifneq ($(MAKECMDGOALS),clean_genRules)
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liuifneq ($(MAKECMDGOALS),atctest2)
e953bea49e7f0e1a43bccf2a66c5e2a2b50848e0Christian Maederifneq ($(MAKECMDGOALS),hetana)
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liuinclude sources_hetcats.mk
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liuendif
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liuendif
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liuendif
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liuendif
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liuendif
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liuendif
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liuendif
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liuendif
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liuendif
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liuendif
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liuendif
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liuendif
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liuendif
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liuendif
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liuendif
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liuendif
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liuendif
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liuobjects = $(patsubst %.lhs,%.o,$(sources:%.hs=%.o))
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liudrifted_files = Syntax/AS_Architecture.hs Syntax/AS_Library.hs\
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu Common/AS_Annotation.hs CASL/AS_Basic_CASL.hs Syntax/AS_Structured.hs \
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu $(gendrifted_files)
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liugenrule_header_files = $(wildcard ATC/*.header.hs)
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liugenrule_files = Common/Lib/Graph.hs Common/Id.hs Common/Result.hs \
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu Common/AS_Annotation.der.hs \
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu Syntax/AS_Structured.der.hs Syntax/AS_Architecture.der.hs \
e953bea49e7f0e1a43bccf2a66c5e2a2b50848e0Christian Maeder Common/GlobalAnnotations.hs Syntax/AS_Library.der.hs \
e953bea49e7f0e1a43bccf2a66c5e2a2b50848e0Christian Maeder CASL/Sublogic.hs \
e953bea49e7f0e1a43bccf2a66c5e2a2b50848e0Christian Maeder CASL/Morphism.hs CASL/Sign.hs CASL/AS_Basic_CASL.der.hs \
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu HasCASL/As.hs HasCASL/Le.hs HasCASL/Morphism.hs \
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu HasCASL/Sublogic.hs \
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu Modal/AS_Modal.hs Modal/ModalSign.hs \
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu CoCASL/AS_CoCASL.hs CoCASL/CoCASLSign.hs \
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu CspCASL/AS_CSP_CASL.hs \
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu Static/DevGraph.hs \
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu Haskell/Hatchet/AnnotatedHsSyn.hs \
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu Haskell/Hatchet/MultiModuleBasics.hs \
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu Haskell/Hatchet/HsSyn.hs \
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu Haskell/Hatchet/Representation.hs\
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu Haskell/Hatchet/Class.hs Haskell/Hatchet/KindInference.hs \
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu Haskell/Hatchet/Env.hs \
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu Isabelle/IsaSign.hs
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liugendrifted_files = ATC/Graph.hs ATC/Id.hs ATC/Result.hs ATC/AS_Annotation.hs \
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu ATC/AS_Library.hs ATC/GlobalAnnotations.hs \
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu ATC/AS_Structured.hs ATC/AS_Architecture.hs \
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu ATC/DevGraph.hs \
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu CASL/ATC_CASL.hs Haskell/ATC_Haskell.hs \
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu HasCASL/ATC_HasCASL.hs CspCASL/ATC_CspCASL.hs \
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu Modal/ATC_Modal.hs CoCASL/ATC_CoCASL.hs ATC/IsaSign.hs
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liugenerated_rule_files = $(patsubst %.hs,%.der.hs,$(gendrifted_files))
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liuinline_axiom_files = Comorphisms/CASL2PCFOL.hs
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liugen_inline_axiom_files = $(patsubst %.hs,%.inline.hs,$(inline_axiom_files))
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liuhappy_files = Haskell/Hatchet/HsParser.hs
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu# this variable holds the modules that should be documented
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu# the imported parsec library is not included!
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liudoc_sources = $(filter-out ./Isabelle/IsaSign.hs ,$(sources))
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu####################################################################
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu### targets
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu.PHONY : clean d_clean real_clean bin_clean check hetana hetpa hetdg \
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu clean_genRules genRules
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu.SECONDARY : %.hs %.d $(generated_rule_files) $(gen_inline_axiom_files)
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu#.PRECIOUS: sources_hetcats.mk
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liuall: hets
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liuhets: $(sources)
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu $(HC) --make -o $@ hets.hs $(HC_OPTS) 2>&1 | tee hetcats-make
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liuhets-opt: hetcats/Version.hs
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu $(MAKE) distclean
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu $(MAKE) derivedSources
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu $(MAKE) real_clean
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu $(MAKE) hets-optimized
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liuhets-optimized:
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu $(HC) --make -O -o hets hets.hs $(HC_OPTS) -w 2>&1 | tee hetcats-make
be2ce59898c3fecd3a52e981e57b553c54979bf8Mingyi Liu strip hets
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liuhets-old: $(objects)
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu $(RM) $@
be2ce59898c3fecd3a52e981e57b553c54979bf8Mingyi Liu $(HC) -o hets $(HC_OPTS) $(objects)
be2ce59898c3fecd3a52e981e57b553c54979bf8Mingyi Liu
6e523cc84a0433f2e95ca03480f50d27fff67287Mingyi Liuhets.cgi: $(sources) GUI/hets_cgi.hs
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu ghc --make -package-conf /home/luettich/ghc-pkg/package.conf -package WASH-CGI GUI/hets_cgi.hs -o hets.cgi
be2ce59898c3fecd3a52e981e57b553c54979bf8Mingyi Liu
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liuhetcats-make: hets.hs utils/create_sources.pl $(drifted_files) $(happy_files) $(inline_axiom_files)
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu $(RM) hetcats-make sources_hetcats.mk
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu $(HC) --make -o hets $< $(HC_OPTS) 2>&1 | tee hetcats-make
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu###############################
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu### TAGS files for (x)emacs
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu# load them with "M-x" "visit-tags-table" from
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu# "HetCATS/hetcats/hetcats.TAGS"
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu# use "M-." to search for a tag
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu# !!Beware this is somewhat instable, because it uses an absolute path!!
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liuhetcats.TAGS: $(sources)
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu /home/ger/linux/ghc-5.04.2/bin/i386-unknown-linux/hasktags \
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu $(sources); mv TAGS $@; mv tags hetcats.tags
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu###############################
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu### count lines of code
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liucount: $(sources)
be2ce59898c3fecd3a52e981e57b553c54979bf8Mingyi Liu wc -l $(sources)
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu###############################
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu### Documentation via haddock
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liudoc: docs/index.html
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu# index for prelude is missing
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liudocs/index.html: $(doc_sources)
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu $(HADDOCK) $(doc_sources) -o docs -h \
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu -i docs/base.haddock \
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu -t 'hets -- a heterogenous Specification (CASL) tool set'
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liuapache_doc:
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu $(RM) docs/*.*
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu cvs up -d
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu $(MAKE) hets-opt
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu $(MAKE) doc
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu $(MAKE) post_doc4apache
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liupost_doc4apache:
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu $(PERL) utils/post_process_docs.pl docs \
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu 'Common.Lib.Map.html:Common.Lib._Map.html'
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu cp docs/*.* a-docs/
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu###############################
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu### release management
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi LiuderivedSources: $(drifted_files) $(happy_files) hetcats/Version.hs $(inline_axiom_files)
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liuutils/DrIFT: $(DRIFT_deps)
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu (cd utils/DrIFT-src; $(HC) --make DrIFT.hs -o ../DrIFT && \
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu strip ../DrIFT)
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liuutils/genRules: $(GENERATERULES_deps)
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu (cd utils/GenerateRules; \
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu $(HC) --make '-i../..:../DrIFT-src' -package text GenerateRules.hs -o ../genRules && \
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu strip ../genRules)
6d3ac9939a862b2e4a3ca45f035617ee63738df3Mingyi Liu
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liuutils/outlineAxioms: $(INLINEAXIOMS_deps)
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu $(HC) --make utils/InlineAxioms/InlineAxioms.hs \
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu $(HC_OPTS) -o utils/outlineAxioms
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu strip utils/outlineAxioms
6d3ac9939a862b2e4a3ca45f035617ee63738df3Mingyi Liu
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liurelease:
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu $(RM) -r HetCATS
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu cvs -d :pserver:cvsread@cvs-agbkb.informatik.uni-bremen.de:/repository co HetCATS
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu $(RM) -r uni
6d3ac9939a862b2e4a3ca45f035617ee63738df3Mingyi Liu ln -s ../uni uni
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu (cd HetCATS; $(MAKE) derivedSources; ./clean.sh; \
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu find . -name CVS -o -name \*.o -o -name \*.hi | xargs $(RM) -r; \
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu $(RM) clean.*; mv Makefile Makefile.orig; \
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu mv ReleaseMakefile Makefile)
6d3ac9939a862b2e4a3ca45f035617ee63738df3Mingyi Liu tar cvf HetCATS.tar HetCATS
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liuinstall-hets:
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu chmod g+w hets
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu cp -p hets $(INSTALLDIR)/versions/hets-`cat version_nr`
d774fc2e7d543b2e264c3b8f7c0c68bd94e1901dMingyi Liu cp -p version_nr $(INSTALLDIR)
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu (cd $(INSTALLDIR); $(RM) hets; \
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu ln -s versions/hets-`cat version_nr` hets; $(RM) version_nr)
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liuinstall: hets-opt install-hets
d774fc2e7d543b2e264c3b8f7c0c68bd94e1901dMingyi Liu
d774fc2e7d543b2e264c3b8f7c0c68bd94e1901dMingyi Liu#############################
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu### ATC DrIFT-rule generation
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi LiugenRules: $(generated_rule_files) utils/genRules
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu
d774fc2e7d543b2e264c3b8f7c0c68bd94e1901dMingyi Liu$(generated_rule_files): $(genrule_files) utils/genRules #$(genrule_header_files)
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu $(MAKE) clean_genRules
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu $(foreach file,$(atc_files),$(gen_atc_files))
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu utils/genRules -r $(rule) -o CASL $(casl_files)
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu utils/genRules -r $(rule) -o HasCASL -h ATC/HasCASL.header.hs \
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu $(hascasl_files)
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu utils/genRules -r $(rule) -o Modal $(modal_files)
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu utils/genRules -r $(rule) -o CoCASL $(cocasl_files)
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu utils/genRules -r $(rule) -o CspCASL $(cspcasl_files)
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu utils/genRules -r $(rule) -o Haskell -h ATC/Haskell.header.hs \
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu $(haskell_files)
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liurule = ShATermConvertible
d774fc2e7d543b2e264c3b8f7c0c68bd94e1901dMingyi Liu
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liugen_atc_files = if [ -f ATC/$(basename $(basename $(notdir $(file)))).header.hs ]; then \
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu utils/genRules -r $(rule) -o ATC -h ATC/$(basename $(basename $(notdir $(file)))).header.hs $(file); \
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu else \
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu utils/genRules -r $(rule) -o ATC $(file); \
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu fi ;
d774fc2e7d543b2e264c3b8f7c0c68bd94e1901dMingyi Liu
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liuatc_files := $(filter-out CASL/% HasCASL/% Modal/% CoCASL/% CspCASL/% Haskell/% ,$(genrule_files))
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liucasl_files := $(filter CASL/% ,$(genrule_files))
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liuhascasl_files := $(filter HasCASL/% ,$(genrule_files))
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liumodal_files := $(filter Modal/% ,$(genrule_files))
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liucocasl_files := $(filter CoCASL/% ,$(genrule_files))
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liucspcasl_files := $(filter CspCASL/% ,$(genrule_files))
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liuhaskell_files := $(filter Haskell/%,$(genrule_files))
6d3ac9939a862b2e4a3ca45f035617ee63738df3Mingyi Liu
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liuclean_genRules:
6e523cc84a0433f2e95ca03480f50d27fff67287Mingyi Liu $(RM) $(generated_rule_files)
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu###############
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu### clean up
6d3ac9939a862b2e4a3ca45f035617ee63738df3Mingyi Liu
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu### removes *.hi and *.o in all include directories
6d3ac9939a862b2e4a3ca45f035617ee63738df3Mingyi Liuclean: bin_clean
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu for p in $(subst :, ,$(CLEAN_PATH)) . ; do \
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu (cd $$p ; $(RM) *.hi *.o) ; done
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu
6d3ac9939a862b2e4a3ca45f035617ee63738df3Mingyi Liu### remove binaries
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liubin_clean:
6e523cc84a0433f2e95ca03480f50d27fff67287Mingyi Liu $(RM) hets
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu $(RM) test_parser
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu $(RM) CASL/capa
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu $(RM) HasCASL/hacapa
6d3ac9939a862b2e4a3ca45f035617ee63738df3Mingyi Liu $(RM) Haskell/hapa
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu $(RM) Haskell/wrap
6d3ac9939a862b2e4a3ca45f035617ee63738df3Mingyi Liu $(RM) Syntax/hetpa
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu $(RM) Static/hetana
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu $(RM) Static/hetana
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu $(RM) GUI/hetdg
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu $(RM) hetpa
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu $(RM) hetana
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu $(RM) hetdg
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu $(RM) atctest2
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu $(RM) atctest
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu $(RM) Common/annos
6d3ac9939a862b2e4a3ca45f035617ee63738df3Mingyi Liu
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu### additonally removes *.d (dependency files) in every include directory
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu### also delete *.d.bak (dependency file backups)
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liud_clean: clean
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu for p in $(subst :, ,$(CLEAN_PATH)) . ; do \
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu (cd $$p ; $(RM) *.d *.d.bak) ; done
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu
6d3ac9939a862b2e4a3ca45f035617ee63738df3Mingyi Liu### remove files also in own libraries
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liulib_clean: clean
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu for p in $(subst :, ,$(COMMONLIB_PATH)) . ; do \
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu (cd $$p ; $(RM) *.hi *.d *.o) ; done
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu### additionally removes the files that define the sources-variable
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liureal_clean: bin_clean lib_clean
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu $(RM) hetcats-make sources_hetcats.mk
9af1cee46dd16ba0c55a904a9d21ee2200bca2aeMingyi Liu
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu### additionally removes files not in CVS tree
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liudistclean: real_clean clean_genRules d_clean
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu $(RM) hetcats/Version.hs
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu $(RM) $(drifted_files)
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu $(RM) utils/DrIFT utils/genRules
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu# $(RM) $(happy_files)
d774fc2e7d543b2e264c3b8f7c0c68bd94e1901dMingyi Liu
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu####################################################################
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu### test targets
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu####################################################################
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu### a parser to test annotation parser and Id parsers
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liutest_parser: Common/test_parser
d774fc2e7d543b2e264c3b8f7c0c68bd94e1901dMingyi Liu
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi LiuCommon/test_parser: Common/test_parser.hs Common/AS_Annotation.der.hs
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu $(RM) $@
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu $(HC) --make -o $@ $< $(HC_OPTS)
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu### interactive
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liughci:
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu $(HC)i $(HCI_OPTS)
d774fc2e7d543b2e264c3b8f7c0c68bd94e1901dMingyi Liu
d774fc2e7d543b2e264c3b8f7c0c68bd94e1901dMingyi Liu### christian's target
d774fc2e7d543b2e264c3b8f7c0c68bd94e1901dMingyi Liu### CASL parser
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liucapa: CASL/capa
d774fc2e7d543b2e264c3b8f7c0c68bd94e1901dMingyi Liu
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi LiuCASL/capa: CASL/capa.hs Common/*.hs CASL/*.hs
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu $(RM) $@
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu $(HC) --make -o $@ $< $(HC_OPTS)
d774fc2e7d543b2e264c3b8f7c0c68bd94e1901dMingyi Liu
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu### HasCASL parser
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liuhacapa: HasCASL/hacapa
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi LiuHasCASL/hacapa: HasCASL/hacapa.hs Common/*.hs HasCASL/*.hs
6d3ac9939a862b2e4a3ca45f035617ee63738df3Mingyi Liu $(RM) $@
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu $(HC) --make -o $@ $< $(HC_OPTS)
6d3ac9939a862b2e4a3ca45f035617ee63738df3Mingyi Liu
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu### Haskell parser
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liuhapa: Haskell/hapa
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu
6d3ac9939a862b2e4a3ca45f035617ee63738df3Mingyi LiuHaskell/hapa: Haskell/hapa.hs Haskell/Hatchet/*.hs $(happy_files)
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu $(RM) $@
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu $(HC) --make -o $@ $< $(HC_OPTS)
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu### HetCASL parser
d774fc2e7d543b2e264c3b8f7c0c68bd94e1901dMingyi Liuhetpa: Syntax/hetpa.hs Syntax/*.hs
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu $(RM) $@
d774fc2e7d543b2e264c3b8f7c0c68bd94e1901dMingyi Liu $(HC) --make -o $@ $< $(HC_OPTS)
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu### HetCASL parser
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liuhetana: Static/hetana.hs Static/*.hs
d774fc2e7d543b2e264c3b8f7c0c68bd94e1901dMingyi Liu $(RM) $@
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu $(HC) --make -o $@ $< $(HC_OPTS)
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu### ATC test system
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liuatctest: ATC/ATCTest.hs ATC/*.hs
6d3ac9939a862b2e4a3ca45f035617ee63738df3Mingyi Liu $(RM) $@
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu $(HC) --make -o $@ $< $(HC_OPTS)
6d3ac9939a862b2e4a3ca45f035617ee63738df3Mingyi Liu
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liuatctest2: Common/ATerm/ATermLibTest.hs Common/SimpPretty.hs Common/ATerm/*.hs Common/Lib/*.hs
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu $(RM) $@
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu $(HC) --make -o $@ $< $(HC_OPTS)
6d3ac9939a862b2e4a3ca45f035617ee63738df3Mingyi Liu
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu### ATerm.Lib test system
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liuatermlibtest: Common/ATerm/ATermLibTest.hs Common/ATerm/*.hs Common/SimpPretty.hs
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu $(RM) $@
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu $(HC) --make -o $@ $< $(HC_OPTS)
d774fc2e7d543b2e264c3b8f7c0c68bd94e1901dMingyi Liu
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu### HetCASL with dev graph
6d3ac9939a862b2e4a3ca45f035617ee63738df3Mingyi Liuhetdg: GUI/hetdg.hs $(drifted_files) *.hs
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu $(RM) $@
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu $(HC) --make -o $@ $< $(HC_OPTS) -package-conf ../uni/uni-package.conf -package uni-davinci -package uni-server
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu### run tests in other directories
6d3ac9939a862b2e4a3ca45f035617ee63738df3Mingyi Liucheck: hetcats
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu for i in $(TESTDIRS); do $(MAKE) -C $$i check; done
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu####################################################################
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu## Preparing the version of HetCATS
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liuhetcats/Version.hs: hetcats/Version.in version_nr
d774fc2e7d543b2e264c3b8f7c0c68bd94e1901dMingyi Liu $(PERL) utils/build_version.pl version_nr < hetcats/Version.in > $@
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu
6d3ac9939a862b2e4a3ca45f035617ee63738df3Mingyi Liu## two hardcoded dependencies for a correct generation of Version.hs
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liuhetcats/Options.hs hetcats/WriteFn.hs hetcats/ReadFn.hs: hetcats/Version.hs
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liuhets.hs: hetcats/Version.hs
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu####################################################################
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu## rules for DrIFT
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu
6d3ac9939a862b2e4a3ca45f035617ee63738df3Mingyi Liu%.hs: %.ly
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu $(HAPPY) $<
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu%.hs: %.der.hs utils/DrIFT
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu $(DRIFT) $(DRIFT_OPTS) $< > $@
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu
d774fc2e7d543b2e264c3b8f7c0c68bd94e1901dMingyi Liu## rules for inlineAxioms
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu%.hs: %.inline.hs utils/outlineAxioms
6d3ac9939a862b2e4a3ca45f035617ee63738df3Mingyi Liu $(INLINEAXIOMS) $< > $@
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu## compiling rules for object and interface files
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu%.o %.hi: %.hs
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu $(HC) -c $< $(HC_OPTS)
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu%.o %.hi: %.lhs
6d3ac9939a862b2e4a3ca45f035617ee63738df3Mingyi Liu $(HC) -c $< $(HC_OPTS)
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu## compiling rules for dependencies
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu%.d : %.hs
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu $(HC) -M $< $(HC_OPTS) -optdep-f -optdep$@
6d3ac9939a862b2e4a3ca45f035617ee63738df3Mingyi Liu
d774fc2e7d543b2e264c3b8f7c0c68bd94e1901dMingyi Liu%.d : %.lhs
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu $(HC) -M $< $(HC_OPTS) -optdep-f -optdep$@
6d3ac9939a862b2e4a3ca45f035617ee63738df3Mingyi Liu
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu####################################################################
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu## Setting a global search path (for dependency files)
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liuifneq ($(MAKECMDGOALS),clean)
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liuifneq ($(MAKECMDGOALS),real_clean)
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liuifneq ($(MAKECMDGOALS),d_clean)
6d3ac9939a862b2e4a3ca45f035617ee63738df3Mingyi Liuifneq ($(MAKECMDGOALS),real_clean)
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liuifneq ($(MAKECMDGOALS),distclean)
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liuifneq ($(MAKECMDGOALS),genRules)
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liuifneq ($(MAKECMDGOALS),utils/genRules)
6d3ac9939a862b2e4a3ca45f035617ee63738df3Mingyi Liuifneq ($(MAKECMDGOALS),derivedSources)
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liuifneq ($(MAKECMDGOALS),release)
6d3ac9939a862b2e4a3ca45f035617ee63738df3Mingyi Liuifneq ($(MAKECMDGOALS),clean_genRules)
d774fc2e7d543b2e264c3b8f7c0c68bd94e1901dMingyi Liuifeq ($(MAKECMDGOALS),hets-old)
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu## include every .d file in INCLUDE_PATH
6d3ac9939a862b2e4a3ca45f035617ee63738df3Mingyi Liu-include $(objects:.o=.d)
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liuendif
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liusources_hetcats.mk: hetcats-make hetcats/Version.hs hets.hs utils/create_sources.pl $(drifted_files) $(happy_files)
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liu $(PERL) utils/create_sources.pl hetcats-make sources_hetcats.mk
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liuendif
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liuendif
6d3ac9939a862b2e4a3ca45f035617ee63738df3Mingyi Liuendif
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liuendif
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liuendif
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liuendif
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liuendif
6d3ac9939a862b2e4a3ca45f035617ee63738df3Mingyi Liuendif
d774fc2e7d543b2e264c3b8f7c0c68bd94e1901dMingyi Liuendif
cd2265c1c7279c901e34383275e0ca44a11d5d6cMingyi Liuendif
6d3ac9939a862b2e4a3ca45f035617ee63738df3Mingyi Liu