Makefile revision 724ecbf67db2531c73555411c57555065f12913b
7f007e36bec06aba6b3a0f84a64f2abf99edfcd8gstein# hetcats/Makefile
571760de5e60c0b459cb11be45507b923cd023eejwoolley# $Id$
2a6c49cfaef5979a5a06098f3ce987cd76769409manoj# Author: Klaus L�ttich
2a6c49cfaef5979a5a06098f3ce987cd76769409manoj# Year: 2003
2a6c49cfaef5979a5a06098f3ce987cd76769409manoj
571760de5e60c0b459cb11be45507b923cd023eejwoolley# This Makefile will compile the new hetcats system and provides also
571760de5e60c0b459cb11be45507b923cd023eejwoolley# targets for test programs during implementation phases.
9180a5933673ffb1af633c255ceee029340f3b1erbb
bcb6e1be6041dfeb549c8ea8d37f97ad4e90a0c3rbb# !!! Note: This makefile is written for GNU make !!!
9bd71e35f5d26d26d23fe3a677401828e842ed72wrowe# (gmake on solaris ; make on linux)
2900ab946a2d76b73a14cebfe2985d253f01c967stoddard
a548c09e6a8ca1b059d0e93b5256c6ccb2b3c3cdrbb####################################################################
a548c09e6a8ca1b059d0e93b5256c6ccb2b3c3cdrbb## Some varibles, which control the compilation
a548c09e6a8ca1b059d0e93b5256c6ccb2b3c3cdrbb
b876b7bcf0ce3d232da723246d709e8dbbfe8762rbbINCLUDE_PATH = ghc:hetcats
cf6bf6c34c936e6a6fe731dbce4a5c3c8bf8e9a3gsteinCOMMONLIB_PATH = Common/Lib:Common/Lib/Parsec:Common/ATerm
35330e0d79ceb8027223bbb8330a381b1f989d6etrawickCLEAN_PATH = Common:Logic:CASL:Syntax:Static:GUI:HasCASL:Haskell:Haskell/Language:Modal:CspCASL:ATC:ToHaskell:Proofs:Comorphisms:$(INCLUDE_PATH):Haskell/Hatchet
6f6f4a4bca281779d196acbdd5c017bb90858305trawick
8dd4618c4709236b4ea297d7250d282e463ce2d8rbbDRIFT_ENV = DERIVEPATH='.:ghc:hetcats:/home/linux-bkb/ghc/ghc-latest/lib/ghc-6.0.1/imports'
09bd86d0db1114ee23eda0a6eb76ca055877a1cftrawick
2deb319e6b3de239f45c16a3e9e836d44f1f7108rbbHC = ghc
bd929c73ef04789b7183b840d8db6e01d03a4d86rbbPERL = perl
70f6f32765cfaadd6da8de6f0fea97ddd72d8fadmanojHAPPY = happy
2a6c49cfaef5979a5a06098f3ce987cd76769409manojDRIFT = $(DRIFT_ENV) $(PERL) utils/DrIFT
2a4b7a53f3573605d4f5686f03a67c37425dc22bgregamesAG = $(PERL) utils/ag
2a4b7a53f3573605d4f5686f03a67c37425dc22bgregamesHADDOCK = $(PERL) utils/haddock
5ac928b7a71a12bc1a6b42194c47edbff1dcc02fgregames
5ac928b7a71a12bc1a6b42194c47edbff1dcc02fgregamesHC_FLAGS = -fglasgow-exts -fallow-overlapping-instances -Wall -O2
2a4b7a53f3573605d4f5686f03a67c37425dc22bgregames# please remove '-O2' if compilation lasts to long on your system
5b233db661cfc7c8c420dfe63d8e7058bc5d3e62trawick# but please don't commit to cvs server
f467b575e2698cfeb818b357b00b2a13873eb309trawickHC_INCLUDE = -i$(INCLUDE_PATH)
f467b575e2698cfeb818b357b00b2a13873eb309trawickHC_PACKAGE = -package-conf ../uni/uni-package.conf -package uni-davinci -package uni-server
f467b575e2698cfeb818b357b00b2a13873eb309trawick
f467b575e2698cfeb818b357b00b2a13873eb309trawickAG_FLAGS = -mdcfs
f467b575e2698cfeb818b357b00b2a13873eb309trawick
f467b575e2698cfeb818b357b00b2a13873eb309trawick### Profiling and Warnings (only for debugging)
f467b575e2698cfeb818b357b00b2a13873eb309trawick### Attention every module must be compiled with profiling or the linker
f467b575e2698cfeb818b357b00b2a13873eb309trawick### cannot link the various .o files properly. So after switching on
f467b575e2698cfeb818b357b00b2a13873eb309trawick### Profiling, do an 'gmake clean; gmake'
f467b575e2698cfeb818b357b00b2a13873eb309trawick### If you need Profiling comment out the following line
f467b575e2698cfeb818b357b00b2a13873eb309trawick#HC_PROF = -prof -auto-all
f467b575e2698cfeb818b357b00b2a13873eb309trawick
f467b575e2698cfeb818b357b00b2a13873eb309trawickHCI_OPTS = $(HC_FLAGS) $(HC_PACKAGE) $(HC_INCLUDE)
f467b575e2698cfeb818b357b00b2a13873eb309trawickHC_OPTS = $(HCI_OPTS) $(HC_PROF)
f467b575e2698cfeb818b357b00b2a13873eb309trawickDRIFT_OPTS = +RTS -K10 -RTS
f467b575e2698cfeb818b357b00b2a13873eb309trawick
f467b575e2698cfeb818b357b00b2a13873eb309trawick### list of directories to run checks in
f467b575e2698cfeb818b357b00b2a13873eb309trawickTESTDIRS = CASL HasCASL test
f467b575e2698cfeb818b357b00b2a13873eb309trawick
f467b575e2698cfeb818b357b00b2a13873eb309trawick####################################################################
f467b575e2698cfeb818b357b00b2a13873eb309trawick## sources for hetcats (semi - manually produced with a perl script)
f467b575e2698cfeb818b357b00b2a13873eb309trawick
f467b575e2698cfeb818b357b00b2a13873eb309trawickifneq ($(MAKECMDGOALS),clean)
f467b575e2698cfeb818b357b00b2a13873eb309trawickifneq ($(MAKECMDGOALS),bin_clean)
f467b575e2698cfeb818b357b00b2a13873eb309trawickifneq ($(MAKECMDGOALS),d_clean)
f467b575e2698cfeb818b357b00b2a13873eb309trawickifneq ($(MAKECMDGOALS),real_clean)
f467b575e2698cfeb818b357b00b2a13873eb309trawickifneq ($(MAKECMDGOALS),distclean)
f467b575e2698cfeb818b357b00b2a13873eb309trawickifneq ($(MAKECMDGOALS),genRules)
f467b575e2698cfeb818b357b00b2a13873eb309trawickifneq ($(MAKECMDGOALS),apache_doc)
f467b575e2698cfeb818b357b00b2a13873eb309trawickifneq ($(MAKECMDGOALS),clean_genRules)
f467b575e2698cfeb818b357b00b2a13873eb309trawickinclude sources_hetcats.mk
f467b575e2698cfeb818b357b00b2a13873eb309trawickendif
f467b575e2698cfeb818b357b00b2a13873eb309trawickendif
f467b575e2698cfeb818b357b00b2a13873eb309trawickendif
f467b575e2698cfeb818b357b00b2a13873eb309trawickendif
2b4a4e1af8497e0f4600ef7b79d284e71f374052trawickendif
2b4a4e1af8497e0f4600ef7b79d284e71f374052trawickendif
2b4a4e1af8497e0f4600ef7b79d284e71f374052trawickendif
2b4a4e1af8497e0f4600ef7b79d284e71f374052trawickendif
e5d1a36ad35f809c6f1bd3339aae78569abdd48ctrawick
e5d1a36ad35f809c6f1bd3339aae78569abdd48ctrawickobjects = $(patsubst %.lhs,%.o,$(sources:%.hs=%.o))
e5d1a36ad35f809c6f1bd3339aae78569abdd48ctrawick
e5d1a36ad35f809c6f1bd3339aae78569abdd48ctrawickdrifted_files = Syntax/AS_Architecture.hs Syntax/AS_Library.hs\
e5d1a36ad35f809c6f1bd3339aae78569abdd48ctrawick Common/AS_Annotation.hs CASL/AS_Basic_CASL.hs Syntax/AS_Structured.hs \
e5d1a36ad35f809c6f1bd3339aae78569abdd48ctrawick $(gendrifted_files)
e5d1a36ad35f809c6f1bd3339aae78569abdd48ctrawick
e5d1a36ad35f809c6f1bd3339aae78569abdd48ctrawickgenrule_header_files = $(wildcard ATC/*.header.hs)
e5d1a36ad35f809c6f1bd3339aae78569abdd48ctrawick
e5d1a36ad35f809c6f1bd3339aae78569abdd48ctrawickgenrule_files = Common/Lib/Graph.hs Common/Id.hs Common/Result.hs Common/AS_Annotation.der.hs Common/Named.hs \
e5d1a36ad35f809c6f1bd3339aae78569abdd48ctrawick Syntax/AS_Structured.der.hs Syntax/AS_Architecture.der.hs Common/GlobalAnnotations.hs Syntax/AS_Library.der.hs \
e5d1a36ad35f809c6f1bd3339aae78569abdd48ctrawick CASL/Morphism.hs CASL/StaticAna.hs CASL/AS_Basic_CASL.der.hs \
e5d1a36ad35f809c6f1bd3339aae78569abdd48ctrawick HasCASL/Le.hs HasCASL/As.hs HasCASL/Symbol.hs HasCASL/Morphism.hs HasCASL/AsToIds.hs\
e5d1a36ad35f809c6f1bd3339aae78569abdd48ctrawick CspCASL/AS_CSP_CASL.hs \
e5d1a36ad35f809c6f1bd3339aae78569abdd48ctrawick Static/DevGraph.hs \
e5d1a36ad35f809c6f1bd3339aae78569abdd48ctrawick Haskell/Hatchet/AnnotatedHsSyn.hs Haskell/Hatchet/MultiModuleBasics.hs \
e5d1a36ad35f809c6f1bd3339aae78569abdd48ctrawick Haskell/Hatchet/HsSyn.hs \
e5d1a36ad35f809c6f1bd3339aae78569abdd48ctrawick Haskell/Hatchet/Representation.hs\
e5d1a36ad35f809c6f1bd3339aae78569abdd48ctrawick Haskell/Hatchet/Class.hs Haskell/Hatchet/KindInference.hs \
5b233db661cfc7c8c420dfe63d8e7058bc5d3e62trawick Haskell/Hatchet/Env.hs
5b233db661cfc7c8c420dfe63d8e7058bc5d3e62trawick
5b233db661cfc7c8c420dfe63d8e7058bc5d3e62trawickgendrifted_files = ATC/Graph.hs ATC/Id.hs ATC/Result.hs ATC/AS_Annotation.hs ATC/Named.hs \
5b233db661cfc7c8c420dfe63d8e7058bc5d3e62trawick ATC/AS_Library.hs ATC/GlobalAnnotations.hs \
5b233db661cfc7c8c420dfe63d8e7058bc5d3e62trawick ATC/AS_Structured.hs ATC/AS_Architecture.hs ATC/DevGraph.hs \
5b233db661cfc7c8c420dfe63d8e7058bc5d3e62trawick CASL/ATC_CASL.hs Haskell/ATC_Haskell.hs HasCASL/ATC_HasCASL.hs CspCASL/ATC_CspCASL.hs
5b233db661cfc7c8c420dfe63d8e7058bc5d3e62trawick
5b233db661cfc7c8c420dfe63d8e7058bc5d3e62trawickgenerated_rule_files = $(patsubst %.hs,%.der.hs,$(gendrifted_files))
5b233db661cfc7c8c420dfe63d8e7058bc5d3e62trawick
5b233db661cfc7c8c420dfe63d8e7058bc5d3e62trawickhappy_files = Haskell/Language/Parser.hs Haskell/Hatchet/HsParser.hs
5b233db661cfc7c8c420dfe63d8e7058bc5d3e62trawick
5b233db661cfc7c8c420dfe63d8e7058bc5d3e62trawick# this variable holds the modules that should be documented
5b233db661cfc7c8c420dfe63d8e7058bc5d3e62trawick# the imported parsec library is not included!
5b233db661cfc7c8c420dfe63d8e7058bc5d3e62trawickdoc_sources = $(filter-out Nothing/Nothing% ,$(sources))
5b233db661cfc7c8c420dfe63d8e7058bc5d3e62trawick
5b233db661cfc7c8c420dfe63d8e7058bc5d3e62trawick####################################################################
5b233db661cfc7c8c420dfe63d8e7058bc5d3e62trawick### targets
2a6c49cfaef5979a5a06098f3ce987cd76769409manoj
531c23ff01a2489646f0a2029097013b328d935agstein.PHONY : clean d_clean real_clean bin_clean check hetana hetpa hetdg clean_genRules genRules
50298555098049d0ebddd539668502fb5b796de0wrowe.SECONDARY : %.hs %.d $(generated_rule_files)
50298555098049d0ebddd539668502fb5b796de0wrowe#.PRECIOUS: sources_hetcats.mk
bf9acc131271d18db51d30ace549d3c3b6a2b9fbrbb
bf9acc131271d18db51d30ace549d3c3b6a2b9fbrbball: hets
bf9acc131271d18db51d30ace549d3c3b6a2b9fbrbb
bf9acc131271d18db51d30ace549d3c3b6a2b9fbrbbhets: $(sources)
bf9acc131271d18db51d30ace549d3c3b6a2b9fbrbb $(HC) --make -o $@ hets.hs $(HC_OPTS)
bf9acc131271d18db51d30ace549d3c3b6a2b9fbrbb
bf9acc131271d18db51d30ace549d3c3b6a2b9fbrbbhets-opt: $(sources)
79d5106a9b65b956d646f5daae4b94bc79e315b8trawick $(MAKE) distclean
79d5106a9b65b956d646f5daae4b94bc79e315b8trawick $(MAKE) hets-optimized
79d5106a9b65b956d646f5daae4b94bc79e315b8trawick
79d5106a9b65b956d646f5daae4b94bc79e315b8trawickhets-optimized: $(sources)
79d5106a9b65b956d646f5daae4b94bc79e315b8trawick $(HC) --make -O -o $@ hets.hs $(HC_OPTS)
79d5106a9b65b956d646f5daae4b94bc79e315b8trawick
9eccc0a669a3e711629345b357c46acce5fefdb4gsteinhets-old: $(objects)
9eccc0a669a3e711629345b357c46acce5fefdb4gstein $(RM) $@
750fcd3495b59eff6d4844409ae1dfb46d026059gstein $(HC) -o hets $(HC_OPTS) $(objects)
750fcd3495b59eff6d4844409ae1dfb46d026059gstein
750fcd3495b59eff6d4844409ae1dfb46d026059gsteinhetcats-make: hets.hs utils/create_sources.pl $(drifted_files) $(happy_files)
750fcd3495b59eff6d4844409ae1dfb46d026059gstein $(RM) hetcats-make sources_hetcats.mk
750fcd3495b59eff6d4844409ae1dfb46d026059gstein $(HC) --make -o hets $< $(HC_OPTS) 2>&1 | tee hetcats-make
750fcd3495b59eff6d4844409ae1dfb46d026059gstein
750fcd3495b59eff6d4844409ae1dfb46d026059gstein###############################
750fcd3495b59eff6d4844409ae1dfb46d026059gstein### TAGS files for (x)emacs
750fcd3495b59eff6d4844409ae1dfb46d026059gstein# load them with "M-x" "visit-tags-table" from
750fcd3495b59eff6d4844409ae1dfb46d026059gstein# "HetCATS/hetcats/hetcats.TAGS"
9eccc0a669a3e711629345b357c46acce5fefdb4gstein# use "M-." to search for a tag
281da4c02cf40c663298ded7e4e5b913a8f8b814gstein# !!Beware this is somewhat instable, because it uses an absolute path!!
281da4c02cf40c663298ded7e4e5b913a8f8b814gsteinhetcats.TAGS: $(sources)
281da4c02cf40c663298ded7e4e5b913a8f8b814gstein /home/ger/linux/ghc-5.04.2/bin/i386-unknown-linux/hasktags \
ec75f189410513ab8f6e1173a9d9d277ebec9ce7gstein $(sources); mv TAGS $@; mv tags hetcats.tags
ec75f189410513ab8f6e1173a9d9d277ebec9ce7gstein
ec75f189410513ab8f6e1173a9d9d277ebec9ce7gstein###############################
ec75f189410513ab8f6e1173a9d9d277ebec9ce7gstein### Documentation via haddock
ec75f189410513ab8f6e1173a9d9d277ebec9ce7gsteindoc: docs/index.html utils/hd-lib
ec75f189410513ab8f6e1173a9d9d277ebec9ce7gstein
ec75f189410513ab8f6e1173a9d9d277ebec9ce7gsteindocs/index.html: $(doc_sources)
ec75f189410513ab8f6e1173a9d9d277ebec9ce7gstein $(HADDOCK) $(doc_sources) -o docs -h \
7bce59d998f2e5ca1cb60038ef6c1d0817605d62stoddard --read-interface=http://www.haskell.org/ghc/docs/latest/html/libraries/base,/home/linux-bkb/ghc/ghc-6.0.1/share/ghc-6.0.1/html/base/base.haddock \
7bce59d998f2e5ca1cb60038ef6c1d0817605d62stoddard -t 'hets -- a heterogenous Specification (CASL) tool set'
7bce59d998f2e5ca1cb60038ef6c1d0817605d62stoddard
7bce59d998f2e5ca1cb60038ef6c1d0817605d62stoddardapache_doc:
7bce59d998f2e5ca1cb60038ef6c1d0817605d62stoddard cvs up -d
7bce59d998f2e5ca1cb60038ef6c1d0817605d62stoddard $(MAKE) distclean
7bce59d998f2e5ca1cb60038ef6c1d0817605d62stoddard $(MAKE) hetcats-make
7bce59d998f2e5ca1cb60038ef6c1d0817605d62stoddard $(RM) docs/*.html
7bce59d998f2e5ca1cb60038ef6c1d0817605d62stoddard $(MAKE) doc
7bce59d998f2e5ca1cb60038ef6c1d0817605d62stoddard $(MAKE) post_doc4apache
2a6c49cfaef5979a5a06098f3ce987cd76769409manoj
33a70d93b992bbb63b809c24df29451f38f017c1rbbpost_doc4apache:
60d567a0c2aae815ee6fc20c0d65032bea52c92cwrowe $(PERL) utils/post_process_docs.pl docs \
60d567a0c2aae815ee6fc20c0d65032bea52c92cwrowe 'Common.Lib.Map.html:Common.Lib._Map.html'
60d567a0c2aae815ee6fc20c0d65032bea52c92cwrowe mv docs/* a-docs/
60d567a0c2aae815ee6fc20c0d65032bea52c92cwrowe
60d567a0c2aae815ee6fc20c0d65032bea52c92cwrowe#############################
60d567a0c2aae815ee6fc20c0d65032bea52c92cwrowe### ATC DrIFT-rule generation
60d567a0c2aae815ee6fc20c0d65032bea52c92cwrowe
60d567a0c2aae815ee6fc20c0d65032bea52c92cwrowegenRules: $(generated_rule_files)
60d567a0c2aae815ee6fc20c0d65032bea52c92cwrowe
7239216999e746bb4fc7671621becea33c5c1c87stoddard$(generated_rule_files): $(genrule_files) $(genrule_header_files)
d180ec1b29106f4fec480ef7fcdb04df078010cerse $(MAKE) clean_genRules
d180ec1b29106f4fec480ef7fcdb04df078010cerse $(foreach file,$(atc_files),$(gen_atc_files))
d180ec1b29106f4fec480ef7fcdb04df078010cerse utils/genRules -r $(rule) -o CASL -h ATC/CASL.header.hs $(casl_files)
d180ec1b29106f4fec480ef7fcdb04df078010cerse utils/genRules -r $(rule) -o HasCASL -h ATC/HasCASL.header.hs $(hascasl_files)
d180ec1b29106f4fec480ef7fcdb04df078010cerse utils/genRules -r $(rule) -o CspCASL -h ATC/CspCASL.header.hs $(cspcasl_files)
d180ec1b29106f4fec480ef7fcdb04df078010cerse utils/genRules -r $(rule) -o Haskell -h ATC/Haskell.header.hs $(haskell_files)
d180ec1b29106f4fec480ef7fcdb04df078010cerse
d180ec1b29106f4fec480ef7fcdb04df078010cerserule = ShATermConvertible
d180ec1b29106f4fec480ef7fcdb04df078010cerse
d180ec1b29106f4fec480ef7fcdb04df078010cersegen_atc_files = if [ -f ATC/$(basename $(basename $(notdir $(file)))).header.hs ]; then \
d180ec1b29106f4fec480ef7fcdb04df078010cerse utils/genRules -r $(rule) -o ATC -h ATC/$(basename $(basename $(notdir $(file)))).header.hs $(file); \
d180ec1b29106f4fec480ef7fcdb04df078010cerse else \
d180ec1b29106f4fec480ef7fcdb04df078010cerse utils/genRules -r $(rule) -o ATC $(file); \
d180ec1b29106f4fec480ef7fcdb04df078010cerse fi ;
d180ec1b29106f4fec480ef7fcdb04df078010cerse
d180ec1b29106f4fec480ef7fcdb04df078010cerseatc_files := $(filter-out CASL/% HasCASL/% CspCASL/% Haskell/% ,$(genrule_files))
d180ec1b29106f4fec480ef7fcdb04df078010cersecasl_files := $(filter CASL/% ,$(genrule_files))
d180ec1b29106f4fec480ef7fcdb04df078010cersehascasl_files := $(filter HasCASL/% ,$(genrule_files))
d180ec1b29106f4fec480ef7fcdb04df078010cersecspcasl_files := $(filter CspCASL/% ,$(genrule_files))
d180ec1b29106f4fec480ef7fcdb04df078010cersehaskell_files := $(filter Haskell/%,$(genrule_files))
d180ec1b29106f4fec480ef7fcdb04df078010cerse
d180ec1b29106f4fec480ef7fcdb04df078010cerseclean_genRules:
d180ec1b29106f4fec480ef7fcdb04df078010cerse $(RM) $(generated_rule_files)
d180ec1b29106f4fec480ef7fcdb04df078010cerse
d180ec1b29106f4fec480ef7fcdb04df078010cerse###############
e32adabcbf3bf5b69ba2e8b163b971839efc94dbtrawick### clean up
e32adabcbf3bf5b69ba2e8b163b971839efc94dbtrawick
e32adabcbf3bf5b69ba2e8b163b971839efc94dbtrawick### removes *.hi and *.o in all include directories
bebc7b9445f95339822c26bfd470349006f9ec40stoddardclean: bin_clean
7bce59d998f2e5ca1cb60038ef6c1d0817605d62stoddard for p in $(subst :, ,$(CLEAN_PATH)) . ; do \
7bce59d998f2e5ca1cb60038ef6c1d0817605d62stoddard (cd $$p ; $(RM) *.hi *.o) ; done
7bce59d998f2e5ca1cb60038ef6c1d0817605d62stoddard
7bce59d998f2e5ca1cb60038ef6c1d0817605d62stoddard### remove binaries
49facccad3f5c3e9e49311487b5069699c3bf3fdjwoolleybin_clean:
7bce59d998f2e5ca1cb60038ef6c1d0817605d62stoddard $(RM) hets
7bce59d998f2e5ca1cb60038ef6c1d0817605d62stoddard $(RM) test_parser
7bce59d998f2e5ca1cb60038ef6c1d0817605d62stoddard $(RM) CASL/capa
7bce59d998f2e5ca1cb60038ef6c1d0817605d62stoddard $(RM) HasCASL/hacapa
7bce59d998f2e5ca1cb60038ef6c1d0817605d62stoddard $(RM) Haskell/hapa
49facccad3f5c3e9e49311487b5069699c3bf3fdjwoolley $(RM) Haskell/wrap
49facccad3f5c3e9e49311487b5069699c3bf3fdjwoolley $(RM) Syntax/hetpa
49facccad3f5c3e9e49311487b5069699c3bf3fdjwoolley $(RM) Static/hetana
49facccad3f5c3e9e49311487b5069699c3bf3fdjwoolley $(RM) Static/hetana
49facccad3f5c3e9e49311487b5069699c3bf3fdjwoolley $(RM) GUI/hetdg
49facccad3f5c3e9e49311487b5069699c3bf3fdjwoolley $(RM) hetpa
7bce59d998f2e5ca1cb60038ef6c1d0817605d62stoddard $(RM) hetana
19cbe4d7b7c931723e7249de6829bf965a1fee72stoddard $(RM) hetdg
19cbe4d7b7c931723e7249de6829bf965a1fee72stoddard
93db592309ba9e5ab230f67611a2c74fece9cdb2marc### additonally removes *.d (dependency files) in every include directory
93db592309ba9e5ab230f67611a2c74fece9cdb2marc### also delete *.d.bak (dependency file backups)
93db592309ba9e5ab230f67611a2c74fece9cdb2marcd_clean: clean
93db592309ba9e5ab230f67611a2c74fece9cdb2marc for p in $(subst :, ,$(CLEAN_PATH)) . ; do \
93db592309ba9e5ab230f67611a2c74fece9cdb2marc (cd $$p ; $(RM) *.d *.d.bak) ; done
93db592309ba9e5ab230f67611a2c74fece9cdb2marc
93db592309ba9e5ab230f67611a2c74fece9cdb2marc### remove files also in own libraries
b187d568e1507d75139ebc13ca945b38fc05d55cstoddardlib_clean: clean
b187d568e1507d75139ebc13ca945b38fc05d55cstoddard for p in $(subst :, ,$(COMMONLIB_PATH)) . ; do \
b187d568e1507d75139ebc13ca945b38fc05d55cstoddard (cd $$p ; $(RM) *.hi *.d *.o) ; done
1c6fb1e726ce22694de0e9a957adb67b929e5d4fstoddard
1c6fb1e726ce22694de0e9a957adb67b929e5d4fstoddard### additionally removes the files that define the sources-variable
8bed76428f56e5c643174a2d6807c3f18016af5cbjhreal_clean: bin_clean lib_clean
8bed76428f56e5c643174a2d6807c3f18016af5cbjh $(RM) hetcats-make sources_hetcats.mk
a5ed555df952c85bc1b179f5981e8a6c54ba16e6stoddard
d2f8b010487ffa990a9c268df5a25579e7291bcdrbb### additionally removes files not in CVS tree
d2f8b010487ffa990a9c268df5a25579e7291bcdrbbdistclean: real_clean clean_genRules d_clean
a5ed555df952c85bc1b179f5981e8a6c54ba16e6stoddard $(RM) hetcats/Version.hs
0bff2f28ef945280c17099c142126178a78e1e54manoj $(RM) $(drifted_files)
0bff2f28ef945280c17099c142126178a78e1e54manoj $(RM) $(happy_files)
0bff2f28ef945280c17099c142126178a78e1e54manoj
1e585ba09ea32272e63c4c39c35491e975d21d98stoddard####################################################################
0bff2f28ef945280c17099c142126178a78e1e54manoj### test targets
35330e0d79ceb8027223bbb8330a381b1f989d6etrawick####################################################################
0bff2f28ef945280c17099c142126178a78e1e54manoj
9c09943bad734ebd5c7cc10bd6d63b75c4c6e056stoddard### a parser to test annotation parser and Id parsers
ff849e4163ed879288f0df15f78b6c9d278ec804fanftest_parser: Common/test_parser
ff849e4163ed879288f0df15f78b6c9d278ec804fanf
447c6ce3ff08073c44f6785d5256271fcb877512wroweCommon/test_parser: Common/test_parser.hs Common/AS_Annotation.der.hs
447c6ce3ff08073c44f6785d5256271fcb877512wrowe $(RM) $@
447c6ce3ff08073c44f6785d5256271fcb877512wrowe $(HC) --make -o $@ $< $(HC_OPTS)
447c6ce3ff08073c44f6785d5256271fcb877512wrowe
447c6ce3ff08073c44f6785d5256271fcb877512wrowe### interactive
447c6ce3ff08073c44f6785d5256271fcb877512wroweghci:
cf6bf6c34c936e6a6fe731dbce4a5c3c8bf8e9a3gstein $(HC)i $(HCI_OPTS)
cf6bf6c34c936e6a6fe731dbce4a5c3c8bf8e9a3gstein
c03566fa0156d3a1500a42e4fe539e3e0fc8a11dgstein### christian's target
db3ccce11afac4fc1d4f51a65424412f7480c46cgstein### CASL parser
dd4713dc5b186f4d1be7b88f86608fdb84cbe5d5gsteincapa: CASL/capa
0eb7ca6cf812d98c534661ac474e873a32bf6325gstein
cf6bf6c34c936e6a6fe731dbce4a5c3c8bf8e9a3gsteinCASL/capa: CASL/capa.lhs Common/*.hs CASL/*.hs
8d07897b52e3b7055874501f8a499e75800db206gstein $(RM) $@
8d07897b52e3b7055874501f8a499e75800db206gstein $(HC) --make -o $@ $< $(HC_OPTS)
8aa57e49a1587613632d6734ae6d82ea2aa5c8deorlikowski
db3ccce11afac4fc1d4f51a65424412f7480c46cgstein### HasCASL parser
79d5106a9b65b956d646f5daae4b94bc79e315b8trawickhacapa: HasCASL/hacapa
79d5106a9b65b956d646f5daae4b94bc79e315b8trawick
79d5106a9b65b956d646f5daae4b94bc79e315b8trawickHasCASL/hacapa: HasCASL/hacapa.lhs CASL/capa HasCASL/*.hs
cf6bf6c34c936e6a6fe731dbce4a5c3c8bf8e9a3gstein $(RM) $@
cf6bf6c34c936e6a6fe731dbce4a5c3c8bf8e9a3gstein $(HC) --make -o $@ $< $(HC_OPTS)
cf6bf6c34c936e6a6fe731dbce4a5c3c8bf8e9a3gstein
6fa71a1bd8c61518b05f5798a7a1594c270e78afrbb### Haskell parser
93c5cba06b623ebe8e4372e886eece12d9a80c3egsteinhapa: Haskell/hapa
14cccaddba3a9263cf0d0ddc311e18f3e3dc9b0fgstein
14cccaddba3a9263cf0d0ddc311e18f3e3dc9b0fgsteinHaskell/hapa: Haskell/hapa.lhs Haskell/*.hs Haskell/Language/*.hs $(happy_files)
14cccaddba3a9263cf0d0ddc311e18f3e3dc9b0fgstein $(RM) $@
14cccaddba3a9263cf0d0ddc311e18f3e3dc9b0fgstein $(HC) --make -o $@ $< $(HC_OPTS)
14cccaddba3a9263cf0d0ddc311e18f3e3dc9b0fgstein
14cccaddba3a9263cf0d0ddc311e18f3e3dc9b0fgstein### Haskell wrap parser
823c303d33c9e637a83d82208bcbafaf5f532d7bgsteinwrap: Haskell/wrap
823c303d33c9e637a83d82208bcbafaf5f532d7bgstein
e636eba7474e0010b5c7198af1c2fe5ad8652dbbmanojHaskell/wrap: Haskell/wrap.lhs Haskell/*.hs
e636eba7474e0010b5c7198af1c2fe5ad8652dbbmanoj $(RM) $@
e636eba7474e0010b5c7198af1c2fe5ad8652dbbmanoj $(HC) --make -o $@ $< $(HC_OPTS)
281da4c02cf40c663298ded7e4e5b913a8f8b814gstein
281da4c02cf40c663298ded7e4e5b913a8f8b814gstein### HetCASL parser
333eac96e4fb7d6901cb75e6ca7bb22b2ccb84cetrawickhetpa: Syntax/hetpa.hs Syntax/*.hs
333eac96e4fb7d6901cb75e6ca7bb22b2ccb84cetrawick $(RM) $@
2f728b2e8555fee1b7cc11e886488692f2575fbddougm $(HC) --make -o $@ $< $(HC_OPTS)
2f728b2e8555fee1b7cc11e886488692f2575fbddougm
2f728b2e8555fee1b7cc11e886488692f2575fbddougm### HetCASL parser
114cc51b75ed89d5ab2f39b85ba7d472293f3dedtrawickhetana: Static/hetana.hs Static/*.hs
114cc51b75ed89d5ab2f39b85ba7d472293f3dedtrawick $(RM) $@
114cc51b75ed89d5ab2f39b85ba7d472293f3dedtrawick $(HC) --make -o $@ $< $(HC_OPTS)
114cc51b75ed89d5ab2f39b85ba7d472293f3dedtrawick
60d567a0c2aae815ee6fc20c0d65032bea52c92cwrowe### ATC test system
60d567a0c2aae815ee6fc20c0d65032bea52c92cwroweatctest: ATC/ATCTest.hs ATC/*.hs
60d567a0c2aae815ee6fc20c0d65032bea52c92cwrowe $(RM) $@
60d567a0c2aae815ee6fc20c0d65032bea52c92cwrowe $(HC) --make -o $@ $< $(HC_OPTS)
60d567a0c2aae815ee6fc20c0d65032bea52c92cwrowe
60d567a0c2aae815ee6fc20c0d65032bea52c92cwrowe### ATerm.Lib test system
60d567a0c2aae815ee6fc20c0d65032bea52c92cwroweatermlibtest: Common/ATerm/ATermLibTest.hs Common/ATerm/*.hs Common/SimpPretty.hs
60d567a0c2aae815ee6fc20c0d65032bea52c92cwrowe $(RM) $@
60d567a0c2aae815ee6fc20c0d65032bea52c92cwrowe $(HC) --make -o $@ $< $(HC_OPTS)
60d567a0c2aae815ee6fc20c0d65032bea52c92cwrowe
60d567a0c2aae815ee6fc20c0d65032bea52c92cwrowe### HetCASL with dev graph
60d567a0c2aae815ee6fc20c0d65032bea52c92cwrowehetdg: GUI/hetdg.hs $(drifted_files) *.hs
60d567a0c2aae815ee6fc20c0d65032bea52c92cwrowe $(RM) $@
60d567a0c2aae815ee6fc20c0d65032bea52c92cwrowe $(HC) --make -o $@ $< $(HC_OPTS) -package-conf ../uni/uni-package.conf -package uni-davinci -package uni-server
60d567a0c2aae815ee6fc20c0d65032bea52c92cwrowe
60d567a0c2aae815ee6fc20c0d65032bea52c92cwrowe
60d567a0c2aae815ee6fc20c0d65032bea52c92cwrowe### run tests in other directories
64ad864fa0f4493eebb181e393b40a8a90beccb9coarcheck: hetcats
64ad864fa0f4493eebb181e393b40a8a90beccb9coar for i in $(TESTDIRS); do $(MAKE) -C $$i check; done
64ad864fa0f4493eebb181e393b40a8a90beccb9coar
64ad864fa0f4493eebb181e393b40a8a90beccb9coar####################################################################
64ad864fa0f4493eebb181e393b40a8a90beccb9coar## Preparing the version of HetCATS
28d1da9ca818f831ea491f110dafcc10f7f07050coarhetcats/Version.hs: hetcats/Version.in version_nr
64ad864fa0f4493eebb181e393b40a8a90beccb9coar $(PERL) utils/build_version.pl version_nr < hetcats/Version.in > $@
64ad864fa0f4493eebb181e393b40a8a90beccb9coar
64ad864fa0f4493eebb181e393b40a8a90beccb9coar## two hardcoded dependencies for a correct generation of Version.hs
28d1da9ca818f831ea491f110dafcc10f7f07050coarhetcats/Options.hs hetcats/WriteFn.hs hetcats/ReadFn.hs: hetcats/Version.hs
64ad864fa0f4493eebb181e393b40a8a90beccb9coarhets.hs: hetcats/Version.hs
64ad864fa0f4493eebb181e393b40a8a90beccb9coar####################################################################
64ad864fa0f4493eebb181e393b40a8a90beccb9coar## rules for DrIFT
28d1da9ca818f831ea491f110dafcc10f7f07050coar
64ad864fa0f4493eebb181e393b40a8a90beccb9coar%.hs: %.ly
64ad864fa0f4493eebb181e393b40a8a90beccb9coar $(HAPPY) $<
64ad864fa0f4493eebb181e393b40a8a90beccb9coar
28d1da9ca818f831ea491f110dafcc10f7f07050coar#%.hs: %.ag.hs
64ad864fa0f4493eebb181e393b40a8a90beccb9coar# $(AG) $<
64ad864fa0f4493eebb181e393b40a8a90beccb9coar
64ad864fa0f4493eebb181e393b40a8a90beccb9coar%.hs: %.der.hs
64ad864fa0f4493eebb181e393b40a8a90beccb9coar $(DRIFT) $(DRIFT_OPTS) $< > $@
28d1da9ca818f831ea491f110dafcc10f7f07050coar
64ad864fa0f4493eebb181e393b40a8a90beccb9coar#%.hs: %.ag
64ad864fa0f4493eebb181e393b40a8a90beccb9coar# $(AG) $< -o $@
64ad864fa0f4493eebb181e393b40a8a90beccb9coar
28d1da9ca818f831ea491f110dafcc10f7f07050coar%.lhs: %.der.lhs
64ad864fa0f4493eebb181e393b40a8a90beccb9coar $(DRIFT) $< > $@
64ad864fa0f4493eebb181e393b40a8a90beccb9coar
64ad864fa0f4493eebb181e393b40a8a90beccb9coar## compiling rules for object and interface files
28d1da9ca818f831ea491f110dafcc10f7f07050coar%.o %.hi: %.hs
64ad864fa0f4493eebb181e393b40a8a90beccb9coar $(HC) -c $< $(HC_OPTS)
64ad864fa0f4493eebb181e393b40a8a90beccb9coar
64ad864fa0f4493eebb181e393b40a8a90beccb9coar
28d1da9ca818f831ea491f110dafcc10f7f07050coar%.o %.hi: %.lhs
64ad864fa0f4493eebb181e393b40a8a90beccb9coar $(HC) -c $< $(HC_OPTS)
64ad864fa0f4493eebb181e393b40a8a90beccb9coar
64ad864fa0f4493eebb181e393b40a8a90beccb9coar## compiling rules for dependencies
64ad864fa0f4493eebb181e393b40a8a90beccb9coar%.d : %.hs
28d1da9ca818f831ea491f110dafcc10f7f07050coar $(HC) -M $< $(HC_OPTS) -optdep-f -optdep$@
64ad864fa0f4493eebb181e393b40a8a90beccb9coar
64ad864fa0f4493eebb181e393b40a8a90beccb9coar%.d : %.lhs
64ad864fa0f4493eebb181e393b40a8a90beccb9coar $(HC) -M $< $(HC_OPTS) -optdep-f -optdep$@
28d1da9ca818f831ea491f110dafcc10f7f07050coar
64ad864fa0f4493eebb181e393b40a8a90beccb9coar####################################################################
64ad864fa0f4493eebb181e393b40a8a90beccb9coar## Setting a global search path (for dependency files)
64ad864fa0f4493eebb181e393b40a8a90beccb9coar
28d1da9ca818f831ea491f110dafcc10f7f07050coarifneq ($(MAKECMDGOALS),clean)
64ad864fa0f4493eebb181e393b40a8a90beccb9coarifneq ($(MAKECMDGOALS),real_clean)
64ad864fa0f4493eebb181e393b40a8a90beccb9coarifneq ($(MAKECMDGOALS),d_clean)
64ad864fa0f4493eebb181e393b40a8a90beccb9coarifneq ($(MAKECMDGOALS),real_clean)
28d1da9ca818f831ea491f110dafcc10f7f07050coarifneq ($(MAKECMDGOALS),distclean)
64ad864fa0f4493eebb181e393b40a8a90beccb9coarifneq ($(MAKECMDGOALS),genRules)
64ad864fa0f4493eebb181e393b40a8a90beccb9coarifneq ($(MAKECMDGOALS),clean_genRules)
64ad864fa0f4493eebb181e393b40a8a90beccb9coarifeq ($(MAKECMDGOALS),hets-old)
28d1da9ca818f831ea491f110dafcc10f7f07050coar## include every .d file in INCLUDE_PATH
64ad864fa0f4493eebb181e393b40a8a90beccb9coar-include $(objects:.o=.d)
64ad864fa0f4493eebb181e393b40a8a90beccb9coarendif
64ad864fa0f4493eebb181e393b40a8a90beccb9coar
28d1da9ca818f831ea491f110dafcc10f7f07050coarsources_hetcats.mk: hetcats-make hetcats/Version.hs hets.hs utils/create_sources.pl $(drifted_files) $(happy_files)
64ad864fa0f4493eebb181e393b40a8a90beccb9coar $(PERL) utils/create_sources.pl hetcats-make sources_hetcats.mk
64ad864fa0f4493eebb181e393b40a8a90beccb9coarendif
64ad864fa0f4493eebb181e393b40a8a90beccb9coarendif
28d1da9ca818f831ea491f110dafcc10f7f07050coarendif
64ad864fa0f4493eebb181e393b40a8a90beccb9coarendif
64ad864fa0f4493eebb181e393b40a8a90beccb9coarendif
64ad864fa0f4493eebb181e393b40a8a90beccb9coarendif
28d1da9ca818f831ea491f110dafcc10f7f07050coarendif
64ad864fa0f4493eebb181e393b40a8a90beccb9coar