Makefile revision fa21fba9ceb1ddf7b3efd54731a12ed8750191d8
71092d70af35567dd154d3de2ce04ce62e157a7cLennart Poettering# hetcats/Makefile
1fab57c209035f7e66198343074e9cee06718bdaKay Sievers# $Id$
1fab57c209035f7e66198343074e9cee06718bdaKay Sievers# Author: Klaus L�ttich
1fab57c209035f7e66198343074e9cee06718bdaKay Sievers# Year: 2003
cff452c7e974db5053cdbd0d7bbbab2e3b4c91b9Kay Sievers
cff452c7e974db5053cdbd0d7bbbab2e3b4c91b9Kay Sievers# This Makefile will compile the new hetcats system and provides also
cff452c7e974db5053cdbd0d7bbbab2e3b4c91b9Kay Sievers# targets for test programs during implementation phases.
cff452c7e974db5053cdbd0d7bbbab2e3b4c91b9Kay Sievers
cff452c7e974db5053cdbd0d7bbbab2e3b4c91b9Kay Sievers# !!! Note: This makefile is written for GNU make !!!
7c66aeba0f28cb82027d6015405ed71afa3b6059Kay Sievers# (gmake on solaris ; make on linux)
7c66aeba0f28cb82027d6015405ed71afa3b6059Kay Sievers
c904f64d84db8c4eebedf210ba10893f19ba05edLennart Poettering####################################################################
c904f64d84db8c4eebedf210ba10893f19ba05edLennart Poettering## Some varibles, which control the compilation
f957632b960a0a42999b38ded7089fa602b41745Kay Sievers
f957632b960a0a42999b38ded7089fa602b41745Kay SieversINCLUDE_PATH = ghc:hetcats
f957632b960a0a42999b38ded7089fa602b41745Kay SieversCOMMONLIB_PATH = Common/Lib:Common/Lib/Parsec:Common/ATerm
f957632b960a0a42999b38ded7089fa602b41745Kay SieversCLEAN_PATH = Common:Logic:CASL:Syntax:Static:GUI:HasCASL:Haskell:Haskell/Language:Modal:CspCASL:ATC:ToHaskell:Proofs:Comorphisms:$(INCLUDE_PATH):Haskell/Hatchet
9a36607584bbd1d78775353e022a51794b4e27b1Lennart Poettering
9a36607584bbd1d78775353e022a51794b4e27b1Lennart PoetteringDRIFT_ENV = DERIVEPATH='.:ghc:hetcats:/home/linux-bkb/ghc/ghc-latest/lib/ghc-6.0.1/imports'
a40593a0d0d740efa387e35411e1e456a6c5aba7Lennart Poettering
20ffc4c4a9226b0e45cc02ad9c0108981626c0bbKay SieversHC = ghc
a6f0104a16350a4c2660837da6e0e5c2e50e2389Zbigniew Jędrzejewski-SzmekPERL = perl
a6f0104a16350a4c2660837da6e0e5c2e50e2389Zbigniew Jędrzejewski-SzmekHAPPY = happy
a6f0104a16350a4c2660837da6e0e5c2e50e2389Zbigniew Jędrzejewski-SzmekDRIFT = $(DRIFT_ENV) $(PERL) utils/DrIFT
a6f0104a16350a4c2660837da6e0e5c2e50e2389Zbigniew Jędrzejewski-SzmekAG = $(PERL) utils/ag
ea92ae33e0fbbf8a98cd2e08ca5a850d83d57faeMaciej WereskiHADDOCK = $(PERL) utils/haddock
ea92ae33e0fbbf8a98cd2e08ca5a850d83d57faeMaciej Wereski
ea92ae33e0fbbf8a98cd2e08ca5a850d83d57faeMaciej WereskiHC_FLAGS = -fglasgow-exts -fallow-overlapping-instances -Wall
04ac799283f517672a5424e7c5bf066cfa4ca020Zbigniew Jędrzejewski-SzmekHC_INCLUDE = -i$(INCLUDE_PATH)
04ac799283f517672a5424e7c5bf066cfa4ca020Zbigniew Jędrzejewski-SzmekHC_PACKAGE = -package-conf ../uni/uni-package.conf -package uni-davinci -package uni-server
04ac799283f517672a5424e7c5bf066cfa4ca020Zbigniew Jędrzejewski-Szmek
04ac799283f517672a5424e7c5bf066cfa4ca020Zbigniew Jędrzejewski-SzmekAG_FLAGS = -mdcfs
466784c8710e5cb0e0b86a16506d992d7ec5b619Kay Sievers
3679d1126bae52e02f6cd60fca196f616b9e660dLennart Poettering### Profiling and Warnings (only for debugging)
dc7adf202b82fc0054c457ce6ca3bcedb88dde57Lennart Poettering### Attention every module must be compiled with profiling or the linker
7b4da18c1717f811bae67ea3d39290495857c03eLennart Poettering### cannot link the various .o files properly. So after switching on
81d112a8f0522a09fcfe317f420363a2b728137cLennart Poettering### Profiling, do an 'gmake clean; gmake'
81d112a8f0522a09fcfe317f420363a2b728137cLennart Poettering### If you need Profiling comment out the following line
81d112a8f0522a09fcfe317f420363a2b728137cLennart Poettering#HC_PROF = -prof -auto-all -Wall
55d32caf94d8df547ca763be52b0c35bb6388606Lennart Poettering
466784c8710e5cb0e0b86a16506d992d7ec5b619Kay SieversHCI_OPTS = $(HC_FLAGS) $(HC_PACKAGE) $(HC_INCLUDE)
55d32caf94d8df547ca763be52b0c35bb6388606Lennart PoetteringHC_OPTS = $(HCI_OPTS) $(HC_PROF)
bafb15bab99887d1b6b8a35136531bac6c3876a6Lennart PoetteringDRIFT_OPTS = +RTS -K10 -RTS
bafb15bab99887d1b6b8a35136531bac6c3876a6Lennart Poettering
94bbc9915a4272a20feda86c5f97b8a587482aa1Lennart Poettering### list of directories to run checks in
bafb15bab99887d1b6b8a35136531bac6c3876a6Lennart PoetteringTESTDIRS = CASL HasCASL test
bafb15bab99887d1b6b8a35136531bac6c3876a6Lennart Poettering
bafb15bab99887d1b6b8a35136531bac6c3876a6Lennart Poettering####################################################################
bafb15bab99887d1b6b8a35136531bac6c3876a6Lennart Poettering## sources for hetcats (semi - manually produced with a perl script)
bafb15bab99887d1b6b8a35136531bac6c3876a6Lennart Poettering
bafb15bab99887d1b6b8a35136531bac6c3876a6Lennart Poetteringifneq ($(MAKECMDGOALS),clean)
bafb15bab99887d1b6b8a35136531bac6c3876a6Lennart Poetteringifneq ($(MAKECMDGOALS),bin_clean)
bafb15bab99887d1b6b8a35136531bac6c3876a6Lennart Poetteringifneq ($(MAKECMDGOALS),d_clean)
bafb15bab99887d1b6b8a35136531bac6c3876a6Lennart Poetteringifneq ($(MAKECMDGOALS),real_clean)
049b4474b35d0b854f87b0795a5113665413f6a4Lennart Poetteringifneq ($(MAKECMDGOALS),distclean)
bafb15bab99887d1b6b8a35136531bac6c3876a6Lennart Poetteringifneq ($(MAKECMDGOALS),genRules)
431c72dc3d482732a01d3ab929aa9b2c36422d46Lennart Poetteringifneq ($(MAKECMDGOALS),apache_doc)
bafb15bab99887d1b6b8a35136531bac6c3876a6Lennart Poetteringifneq ($(MAKECMDGOALS),clean_genRules)
eb124a97fb72d076014253b1acde69d428f15ecfLennart Poetteringinclude sources_hetcats.mk
154ff088d371bee5651eaa2bc9bde8a34c185656Lennart Poetteringendif
fcba531ed4c6e6f8f21d8ca4e3a56e3162b1c578Lennart Poetteringendif
fcba531ed4c6e6f8f21d8ca4e3a56e3162b1c578Lennart Poetteringendif
fcba531ed4c6e6f8f21d8ca4e3a56e3162b1c578Lennart Poetteringendif
fcba531ed4c6e6f8f21d8ca4e3a56e3162b1c578Lennart Poetteringendif
fcba531ed4c6e6f8f21d8ca4e3a56e3162b1c578Lennart Poetteringendif
fcba531ed4c6e6f8f21d8ca4e3a56e3162b1c578Lennart Poetteringendif
fcba531ed4c6e6f8f21d8ca4e3a56e3162b1c578Lennart Poetteringendif
fcba531ed4c6e6f8f21d8ca4e3a56e3162b1c578Lennart Poettering
fcba531ed4c6e6f8f21d8ca4e3a56e3162b1c578Lennart Poetteringobjects = $(patsubst %.lhs,%.o,$(sources:%.hs=%.o))
fcba531ed4c6e6f8f21d8ca4e3a56e3162b1c578Lennart Poettering
fcba531ed4c6e6f8f21d8ca4e3a56e3162b1c578Lennart Poetteringdrifted_files = Syntax/AS_Architecture.hs Syntax/AS_Library.hs\
fcba531ed4c6e6f8f21d8ca4e3a56e3162b1c578Lennart Poettering Common/AS_Annotation.hs CASL/AS_Basic_CASL.hs Syntax/AS_Structured.hs \
fcba531ed4c6e6f8f21d8ca4e3a56e3162b1c578Lennart Poettering $(gendrifted_files)
7b617155b50fdaad5d06359eb03e98f0c7b3087bLennart Poettering
7b617155b50fdaad5d06359eb03e98f0c7b3087bLennart Poetteringgenrule_files = Common/Lib/Graph.hs Common/Id.hs Common/Result.hs Common/AS_Annotation.der.hs Common/Named.hs \
4c3a31668e4f3be9a35177a35d5b9794cdff663eLennart Poettering Syntax/AS_Structured.der.hs Syntax/AS_Architecture.der.hs Common/GlobalAnnotations.hs Syntax/AS_Library.der.hs \
4c3a31668e4f3be9a35177a35d5b9794cdff663eLennart Poettering CASL/Morphism.hs CASL/StaticAna.hs CASL/AS_Basic_CASL.der.hs \
38563c1947e34b71bf5557f2cd22fb7806c60077Lennart Poettering HasCASL/Le.hs HasCASL/As.hs HasCASL/Symbol.hs HasCASL/Morphism.hs \
38563c1947e34b71bf5557f2cd22fb7806c60077Lennart Poettering CspCASL/AS_CSP_CASL.hs \
94bbc9915a4272a20feda86c5f97b8a587482aa1Lennart Poettering Static/DevGraph.hs \
94bbc9915a4272a20feda86c5f97b8a587482aa1Lennart Poettering Haskell/Hatchet/AnnotatedHsSyn.hs Haskell/Hatchet/MultiModuleBasics.hs \
07beec1244817a0e6e9d79798f7c65bd89b23549Lennart Poettering Haskell/Hatchet/HsSyn.hs \
07beec1244817a0e6e9d79798f7c65bd89b23549Lennart Poettering Haskell/Hatchet/Representation.hs\
5a4555ba6bc8ea086823fb71cb1cb92d4ec087a2Lennart Poettering Haskell/Hatchet/Class.hs Haskell/Hatchet/KindInference.hs \
5a4555ba6bc8ea086823fb71cb1cb92d4ec087a2Lennart Poettering Haskell/Hatchet/Env.hs
afaba0234727db6a82e323665d7d86f971f3090cLennart Poettering
afaba0234727db6a82e323665d7d86f971f3090cLennart Poetteringgendrifted_files = ATC/Graph.hs ATC/Id.hs ATC/Result.hs ATC/AS_Annotation.hs ATC/Named.hs \
4c4ae27d4d314d0dc1c42cd6bfc7b9ae31660885Lennart Poettering ATC/AS_Library.hs ATC/GlobalAnnotations.hs \
4c4ae27d4d314d0dc1c42cd6bfc7b9ae31660885Lennart Poettering ATC/AS_Structured.hs ATC/AS_Architecture.hs ATC/DevGraph.hs \
408f281bc7d65c86563f46e99e07efd1a1d9e03aLennart Poettering CASL/ATC_CASL.hs Haskell/ATC_Haskell.hs HasCASL/ATC_HasCASL.hs CspCASL/ATC_CspCASL.hs
408f281bc7d65c86563f46e99e07efd1a1d9e03aLennart Poettering
e1b7e7ec9b34ae6ae54a4c8084395cbf2bfe9960Lennart Poetteringgenerated_rule_files = $(patsubst %.hs,%.der.hs,$(gendrifted_files))
e1b7e7ec9b34ae6ae54a4c8084395cbf2bfe9960Lennart Poettering
e1b7e7ec9b34ae6ae54a4c8084395cbf2bfe9960Lennart Poetteringhappy_files = Haskell/Language/Parser.hs Haskell/Hatchet/HsParser.hs
6aaa8c2f783cd1b3ac27c5ce40625d032e7e3d71Zbigniew Jędrzejewski-Szmek
c3bb87dbab8b79bb9253407cb5b7f3e6fe8db395Lennart Poettering# this variable holds the modules that should be documented
e7256c5c137e58fb3dc1ebca8e5845733a5f733cLennart Poettering# the imported parsec library is not included!
e7256c5c137e58fb3dc1ebca8e5845733a5f733cLennart Poetteringdoc_sources = $(filter-out Nothing/Nothing% ,$(sources))
042e33ae3a7feb08c8105f1345fd244315109405Lennart Poettering
042e33ae3a7feb08c8105f1345fd244315109405Lennart Poettering####################################################################
e1b7e7ec9b34ae6ae54a4c8084395cbf2bfe9960Lennart Poettering### targets
18d4e7c26e7806ac363d19989df7144d5058ce41Lennart Poettering
36c0868b67a9387d39c97983d3d22cfce0fedc62Lennart Poettering.PHONY : clean d_clean real_clean bin_clean check hetana hetpa hetdg clean_genRules genRules
36c0868b67a9387d39c97983d3d22cfce0fedc62Lennart Poettering.SECONDARY : %.hs %.d $(generated_rule_files)
fa7deadb074dfbe473cf3bd942768dbd94cbf7c3Lennart Poettering#.PRECIOUS: sources_hetcats.mk
fa7deadb074dfbe473cf3bd942768dbd94cbf7c3Lennart Poettering
c5757cc8dbcddb3e8b13ebba4ea4b36589bfd3dbLennart Poetteringall: hets
69af45035913e7119cffd94c542bd3039600e45dZbigniew Jędrzejewski-Szmek
c5757cc8dbcddb3e8b13ebba4ea4b36589bfd3dbLennart Poetteringhets: $(sources)
c5757cc8dbcddb3e8b13ebba4ea4b36589bfd3dbLennart Poettering $(HC) --make -o $@ hets.hs $(HC_OPTS)
c5757cc8dbcddb3e8b13ebba4ea4b36589bfd3dbLennart Poettering
c5757cc8dbcddb3e8b13ebba4ea4b36589bfd3dbLennart Poetteringhets-opt: $(sources)
d907c2086716681936755f28ac80b3445c6d0196Lennart Poettering $(MAKE) distclean
d907c2086716681936755f28ac80b3445c6d0196Lennart Poettering $(MAKE) hets-optimized
bdeeb6b543a2a2d0a494f17b85f1498859cdfc2fLennart Poettering
bdeeb6b543a2a2d0a494f17b85f1498859cdfc2fLennart Poetteringhets-optimized: $(sources)
bdeeb6b543a2a2d0a494f17b85f1498859cdfc2fLennart Poettering $(HC) --make -O -o $@ hets.hs $(HC_OPTS)
bdeeb6b543a2a2d0a494f17b85f1498859cdfc2fLennart Poettering
bdeeb6b543a2a2d0a494f17b85f1498859cdfc2fLennart Poetteringhets-old: $(objects)
bdeeb6b543a2a2d0a494f17b85f1498859cdfc2fLennart Poettering $(RM) $@
bdeeb6b543a2a2d0a494f17b85f1498859cdfc2fLennart Poettering $(HC) -o hets $(HC_OPTS) $(objects)
bdeeb6b543a2a2d0a494f17b85f1498859cdfc2fLennart Poettering
fb6becb4436ae4078337011b2017ce294e7361cfLennart Poetteringhetcats-make: hets.hs utils/create_sources.pl $(drifted_files) $(happy_files)
fb6becb4436ae4078337011b2017ce294e7361cfLennart Poettering $(RM) hetcats-make sources_hetcats.mk
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(HC) --make -o hets $< $(HC_OPTS) 2>&1 | tee hetcats-make
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
11ddb6f48e367ae4b51c31d199b28f5be041a301Lennart Poettering###############################
11ddb6f48e367ae4b51c31d199b28f5be041a301Lennart Poettering### TAGS files for (x)emacs
7041efe9600e569da6089c36d00fa3ff58e33178Lennart Poettering# load them with "M-x" "visit-tags-table" from
7041efe9600e569da6089c36d00fa3ff58e33178Lennart Poettering# "HetCATS/hetcats/hetcats.TAGS"
b42defe3b8ed3947d85db654a6cdb1b9999f394dLennart Poettering# use "M-." to search for a tag
b42defe3b8ed3947d85db654a6cdb1b9999f394dLennart Poettering# !!Beware this is somewhat instable, because it uses an absolute path!!
4ad490007b70e6ac18d3cb04fa2ed92eba1451faLennart Poetteringhetcats.TAGS: $(sources)
3d3ee759e682701fce77b6559508e697e9e60fbfLennart Poettering /home/ger/linux/ghc-5.04.2/bin/i386-unknown-linux/hasktags \
9444b1f20e311f073864d81e913bd4f32fe95cfdLennart Poettering $(sources); mv TAGS $@; mv tags hetcats.tags
9444b1f20e311f073864d81e913bd4f32fe95cfdLennart Poettering
9444b1f20e311f073864d81e913bd4f32fe95cfdLennart Poettering###############################
9444b1f20e311f073864d81e913bd4f32fe95cfdLennart Poettering### Documentation via haddock
69af45035913e7119cffd94c542bd3039600e45dZbigniew Jędrzejewski-Szmekdoc: docs/index.html utils/hd-lib
9444b1f20e311f073864d81e913bd4f32fe95cfdLennart Poettering
466784c8710e5cb0e0b86a16506d992d7ec5b619Kay Sieversdocs/index.html: $(doc_sources)
466784c8710e5cb0e0b86a16506d992d7ec5b619Kay Sievers $(HADDOCK) $(doc_sources) -o docs -h \
9444b1f20e311f073864d81e913bd4f32fe95cfdLennart Poettering -i/home/linux-bkb/ghc/ghc-6.0.1/share/ghc-6.0.1/html/base,/home/linux-bkb/ghc/ghc-6.0.1/share/ghc-6.0.1/html/base/base.haddock \
a016b9228f338cb9b380ce7e00826ef462767d98Lennart Poettering -t 'hets -- a heterogenous Specification (CASL) tool set'
a016b9228f338cb9b380ce7e00826ef462767d98Lennart Poettering
a016b9228f338cb9b380ce7e00826ef462767d98Lennart Poetteringapache_doc:
a016b9228f338cb9b380ce7e00826ef462767d98Lennart Poettering cvs up -d
a016b9228f338cb9b380ce7e00826ef462767d98Lennart Poettering $(MAKE) distclean
a016b9228f338cb9b380ce7e00826ef462767d98Lennart Poettering $(MAKE) hetcats-make
1f263d4dc23b9807ac6138eb5014d3d94c5fe51aLennart Poettering $(RM) docs/*.html
1f263d4dc23b9807ac6138eb5014d3d94c5fe51aLennart Poettering $(MAKE) doc
9444b1f20e311f073864d81e913bd4f32fe95cfdLennart Poettering $(MAKE) post_doc4apache
1f263d4dc23b9807ac6138eb5014d3d94c5fe51aLennart Poettering
1f263d4dc23b9807ac6138eb5014d3d94c5fe51aLennart Poetteringa_docs_base:
1f263d4dc23b9807ac6138eb5014d3d94c5fe51aLennart Poettering $(RM) -r a-docs/base
4e09014daf8f98584b3f15e64e93bed232e70a6bLennart Poettering cp -r /home/linux-bkb/ghc/ghc-6.0.1/share/ghc-6.0.1/html/base a-docs
4e09014daf8f98584b3f15e64e93bed232e70a6bLennart Poettering
a65f06bb27688a6738f2f94b7f055f4c66768d63Zbigniew Jędrzejewski-Szmekpost_doc4apache:
4e09014daf8f98584b3f15e64e93bed232e70a6bLennart Poettering $(PERL) utils/post_process_docs.pl docs \
4e09014daf8f98584b3f15e64e93bed232e70a6bLennart Poettering 'Common.Lib.Map.html:Common.Lib._Map.html' \
4e09014daf8f98584b3f15e64e93bed232e70a6bLennart Poettering '/home/linux-bkb/ghc/ghc-6.0.1/share/ghc-6.0.1/html/:'
4e09014daf8f98584b3f15e64e93bed232e70a6bLennart Poettering mv docs/* a-docs/
4e09014daf8f98584b3f15e64e93bed232e70a6bLennart Poettering
4e09014daf8f98584b3f15e64e93bed232e70a6bLennart Poettering#############################
4e09014daf8f98584b3f15e64e93bed232e70a6bLennart Poettering### ATC DrIFT-rule generation
eb01ba5de14859d7a94835ab9299de40132d549aLennart Poettering
eb01ba5de14859d7a94835ab9299de40132d549aLennart PoetteringgenRules: $(generated_rule_files)
eb01ba5de14859d7a94835ab9299de40132d549aLennart Poettering
eb01ba5de14859d7a94835ab9299de40132d549aLennart Poettering$(generated_rule_files): $(genrule_files)
eb01ba5de14859d7a94835ab9299de40132d549aLennart Poettering $(MAKE) clean_genRules
eb01ba5de14859d7a94835ab9299de40132d549aLennart Poettering $(foreach file,$(atc_files),$(gen_atc_files))
eb01ba5de14859d7a94835ab9299de40132d549aLennart Poettering utils/genRules -r $(rule) -o CASL -h ATC/CASL.header.hs $(casl_files)
eb01ba5de14859d7a94835ab9299de40132d549aLennart Poettering utils/genRules -r $(rule) -o HasCASL -h ATC/HasCASL.header.hs $(hascasl_files)
eb01ba5de14859d7a94835ab9299de40132d549aLennart Poettering utils/genRules -r $(rule) -o CspCASL -h ATC/CspCASL.header.hs $(cspcasl_files)
e4ee6e5cc3e8e23e1ecc0d9fa756d9cc2534d218Lennart Poettering utils/genRules -r $(rule) -o Haskell -h ATC/Haskell.header.hs $(haskell_files)
c78196699d3d805b2237896a1d2b8efeec6068d0Lennart Poettering
86312ab8de59c1066d6d2b456f3a9106ce3e0991Lennart Poetteringrule = ShATermConvertible
86312ab8de59c1066d6d2b456f3a9106ce3e0991Lennart Poettering
86312ab8de59c1066d6d2b456f3a9106ce3e0991Lennart Poetteringgen_atc_files = if [ -f ATC/$(basename $(basename $(notdir $(file)))).header.hs ]; then \
86312ab8de59c1066d6d2b456f3a9106ce3e0991Lennart Poettering utils/genRules -r $(rule) -o ATC -h ATC/$(basename $(basename $(notdir $(file)))).header.hs $(file); \
86312ab8de59c1066d6d2b456f3a9106ce3e0991Lennart Poettering else \
86312ab8de59c1066d6d2b456f3a9106ce3e0991Lennart Poettering utils/genRules -r $(rule) -o ATC $(file); \
eb01ba5de14859d7a94835ab9299de40132d549aLennart Poettering fi ;
154ff088d371bee5651eaa2bc9bde8a34c185656Lennart Poettering
154ff088d371bee5651eaa2bc9bde8a34c185656Lennart Poetteringatc_files := $(filter-out CASL/% HasCASL/% CspCASL/% Haskell/% ,$(genrule_files))
154ff088d371bee5651eaa2bc9bde8a34c185656Lennart Poetteringcasl_files := $(filter CASL/% ,$(genrule_files))
154ff088d371bee5651eaa2bc9bde8a34c185656Lennart Poetteringhascasl_files := $(filter HasCASL/% ,$(genrule_files))
7e853a9b9a858edbc24e6c85d134478cec840173Lennart Poetteringcspcasl_files := $(filter CspCASL/% ,$(genrule_files))
7e853a9b9a858edbc24e6c85d134478cec840173Lennart Poetteringhaskell_files := $(filter Haskell/%,$(genrule_files))
7e853a9b9a858edbc24e6c85d134478cec840173Lennart Poettering
7e853a9b9a858edbc24e6c85d134478cec840173Lennart Poetteringclean_genRules:
7e853a9b9a858edbc24e6c85d134478cec840173Lennart Poettering $(RM) $(generated_rule_files)
d686f034c3b9021e07faefe172ee660abd952871Lennart Poettering
d686f034c3b9021e07faefe172ee660abd952871Lennart Poettering###############
d686f034c3b9021e07faefe172ee660abd952871Lennart Poettering### clean up
69af45035913e7119cffd94c542bd3039600e45dZbigniew Jędrzejewski-Szmek
19aa7c4fef4a3f1dfc6d9980574ca220a6a40a71Lennart Poettering### removes *.hi and *.o in all include directories
69af45035913e7119cffd94c542bd3039600e45dZbigniew Jędrzejewski-Szmekclean: bin_clean
e8a7a315391a6a07897122725cd707f4e9ce63d7Lennart Poettering for p in $(subst :, ,$(CLEAN_PATH)) . ; do \
461bd8e47cafacfcd38389e7558330bfb6e902adLennart Poettering (cd $$p ; $(RM) *.hi *.o) ; done
461bd8e47cafacfcd38389e7558330bfb6e902adLennart Poettering
461bd8e47cafacfcd38389e7558330bfb6e902adLennart Poettering### remove binaries
ab8e074ce25b9947314c69e17afe1bd2527ee26dLennart Poetteringbin_clean:
ab8e074ce25b9947314c69e17afe1bd2527ee26dLennart Poettering $(RM) hets
ab8e074ce25b9947314c69e17afe1bd2527ee26dLennart Poettering $(RM) test_parser
ab8e074ce25b9947314c69e17afe1bd2527ee26dLennart Poettering $(RM) CASL/capa
ab8e074ce25b9947314c69e17afe1bd2527ee26dLennart Poettering $(RM) HasCASL/hacapa
ab8e074ce25b9947314c69e17afe1bd2527ee26dLennart Poettering $(RM) Haskell/hapa
ab8e074ce25b9947314c69e17afe1bd2527ee26dLennart Poettering $(RM) Haskell/wrap
ab8e074ce25b9947314c69e17afe1bd2527ee26dLennart Poettering $(RM) Syntax/hetpa
ab8e074ce25b9947314c69e17afe1bd2527ee26dLennart Poettering $(RM) Static/hetana
b454b11220e87add6d0f011695c7912b009c853dLennart Poettering $(RM) Static/hetana
b454b11220e87add6d0f011695c7912b009c853dLennart Poettering $(RM) GUI/hetdg
b454b11220e87add6d0f011695c7912b009c853dLennart Poettering $(RM) hetpa
b454b11220e87add6d0f011695c7912b009c853dLennart Poettering $(RM) hetana
4a449ed73d2c1cfb91a1c773b70231b3457b3046Lennart Poettering $(RM) hetdg
755123030a4b4c82251b49155aa0e7f523081558Harald Hoyer
4a449ed73d2c1cfb91a1c773b70231b3457b3046Lennart Poettering### additonally removes *.d (dependency files) in every include directory
4a449ed73d2c1cfb91a1c773b70231b3457b3046Lennart Poettering### also delete *.d.bak (dependency file backups)
4ff49cb63075aba646b578f2516b37a8dfd5a65bLennart Poetteringd_clean: clean
4ff49cb63075aba646b578f2516b37a8dfd5a65bLennart Poettering for p in $(subst :, ,$(CLEAN_PATH)) . ; do \
fff87a35d9e26c0d4ea41273a963c0eb20e18da4Zbigniew Jędrzejewski-Szmek (cd $$p ; $(RM) *.d *.d.bak) ; done
fff87a35d9e26c0d4ea41273a963c0eb20e18da4Zbigniew Jędrzejewski-Szmek
fff87a35d9e26c0d4ea41273a963c0eb20e18da4Zbigniew Jędrzejewski-Szmek### remove files also in own libraries
fff87a35d9e26c0d4ea41273a963c0eb20e18da4Zbigniew Jędrzejewski-Szmeklib_clean: clean
b8b4d3dddc7611dce3bf28004b0375d661120c62Lennart Poettering for p in $(subst :, ,$(COMMONLIB_PATH)) . ; do \
b8b4d3dddc7611dce3bf28004b0375d661120c62Lennart Poettering (cd $$p ; $(RM) *.hi *.d *.o) ; done
b8b4d3dddc7611dce3bf28004b0375d661120c62Lennart Poettering
3df82d5a8cdc510f518fd5e234ccb3233b748719Lennart Poettering### additionally removes the files that define the sources-variable
3df82d5a8cdc510f518fd5e234ccb3233b748719Lennart Poetteringreal_clean: bin_clean lib_clean
3df82d5a8cdc510f518fd5e234ccb3233b748719Lennart Poettering $(RM) hetcats-make sources_hetcats.mk
3df82d5a8cdc510f518fd5e234ccb3233b748719Lennart Poettering
b5c03638d48c07aa0eaf13b5f54000c7133e1883Lennart Poettering### additionally removes files not in CVS tree
b5c03638d48c07aa0eaf13b5f54000c7133e1883Lennart Poetteringdistclean: real_clean clean_genRules d_clean
b5c03638d48c07aa0eaf13b5f54000c7133e1883Lennart Poettering $(RM) hetcats/Version.hs
b5c03638d48c07aa0eaf13b5f54000c7133e1883Lennart Poettering $(RM) $(drifted_files)
b5c03638d48c07aa0eaf13b5f54000c7133e1883Lennart Poettering $(RM) $(happy_files)
eece8c6fb5f4d354dcef6fd369e876c4f3a3f163Lennart Poettering
eece8c6fb5f4d354dcef6fd369e876c4f3a3f163Lennart Poettering####################################################################
eece8c6fb5f4d354dcef6fd369e876c4f3a3f163Lennart Poettering### test targets
356ce9915ab1a4a1e6dc26954df34936a69e7c12Lennart Poettering####################################################################
356ce9915ab1a4a1e6dc26954df34936a69e7c12Lennart Poettering
356ce9915ab1a4a1e6dc26954df34936a69e7c12Lennart Poettering### a parser to test annotation parser and Id parsers
356ce9915ab1a4a1e6dc26954df34936a69e7c12Lennart Poetteringtest_parser: Common/test_parser
3b953d68c628c6ae70adba871719ac0f16083b51Josh Triplett
3b953d68c628c6ae70adba871719ac0f16083b51Josh TriplettCommon/test_parser: Common/test_parser.hs Common/AS_Annotation.der.hs
3b953d68c628c6ae70adba871719ac0f16083b51Josh Triplett $(RM) $@
3b953d68c628c6ae70adba871719ac0f16083b51Josh Triplett $(HC) --make -o $@ $< $(HC_OPTS)
3b953d68c628c6ae70adba871719ac0f16083b51Josh Triplett
09f727eebd87661f263d3c2c1e0de7b7771acd40Lennart Poettering### interactive
09f727eebd87661f263d3c2c1e0de7b7771acd40Lennart Poetteringghci:
09f727eebd87661f263d3c2c1e0de7b7771acd40Lennart Poettering $(HC)i $(HCI_OPTS)
795607b22308f5b92073b012e43be1892fdd97c0Lennart Poettering
795607b22308f5b92073b012e43be1892fdd97c0Lennart Poettering### christian's target
795607b22308f5b92073b012e43be1892fdd97c0Lennart Poettering### CASL parser
795607b22308f5b92073b012e43be1892fdd97c0Lennart Poetteringcapa: CASL/capa
795607b22308f5b92073b012e43be1892fdd97c0Lennart Poettering
795607b22308f5b92073b012e43be1892fdd97c0Lennart PoetteringCASL/capa: CASL/capa.lhs Common/*.hs CASL/*.hs
795607b22308f5b92073b012e43be1892fdd97c0Lennart Poettering $(RM) $@
0be8342c04bbf129b4a21e5073eacccbbce4e896Lennart Poettering $(HC) --make -o $@ $< $(HC_OPTS)
0be8342c04bbf129b4a21e5073eacccbbce4e896Lennart Poettering
0be8342c04bbf129b4a21e5073eacccbbce4e896Lennart Poettering### HasCASL parser
0be8342c04bbf129b4a21e5073eacccbbce4e896Lennart Poetteringhacapa: HasCASL/hacapa
0be8342c04bbf129b4a21e5073eacccbbce4e896Lennart Poettering
69af45035913e7119cffd94c542bd3039600e45dZbigniew Jędrzejewski-SzmekHasCASL/hacapa: HasCASL/hacapa.lhs CASL/capa HasCASL/*.hs
487060c2394b7703e59650ef332053645ffae2a3Lennart Poettering $(RM) $@
e5ec62c56963d997edaffa904af5dc45dac23988Lennart Poettering $(HC) --make -o $@ $< $(HC_OPTS)
54c31a79f72ff57ac8eba089acacc4ab482b745dLennart Poettering
826872b61e4857dfffe63ba84e2b005623baecd6Lennart Poettering### Haskell parser
826872b61e4857dfffe63ba84e2b005623baecd6Lennart Poetteringhapa: Haskell/hapa
54c31a79f72ff57ac8eba089acacc4ab482b745dLennart Poettering
826872b61e4857dfffe63ba84e2b005623baecd6Lennart PoetteringHaskell/hapa: Haskell/hapa.lhs Haskell/*.hs Haskell/Language/*.hs $(happy_files)
8973790ee6f62132b1b57de15c4edaef2c097004Lennart Poettering $(RM) $@
3679d1126bae52e02f6cd60fca196f616b9e660dLennart Poettering $(HC) --make -o $@ $< $(HC_OPTS)
69af45035913e7119cffd94c542bd3039600e45dZbigniew Jędrzejewski-Szmek
3679d1126bae52e02f6cd60fca196f616b9e660dLennart Poettering### Haskell wrap parser
3679d1126bae52e02f6cd60fca196f616b9e660dLennart Poetteringwrap: Haskell/wrap
3679d1126bae52e02f6cd60fca196f616b9e660dLennart Poettering
3679d1126bae52e02f6cd60fca196f616b9e660dLennart PoetteringHaskell/wrap: Haskell/wrap.lhs Haskell/*.hs
3679d1126bae52e02f6cd60fca196f616b9e660dLennart Poettering $(RM) $@
69af45035913e7119cffd94c542bd3039600e45dZbigniew Jędrzejewski-Szmek $(HC) --make -o $@ $< $(HC_OPTS)
3679d1126bae52e02f6cd60fca196f616b9e660dLennart Poettering
3679d1126bae52e02f6cd60fca196f616b9e660dLennart Poettering### HetCASL parser
3679d1126bae52e02f6cd60fca196f616b9e660dLennart Poetteringhetpa: Syntax/hetpa.hs Syntax/*.hs
3679d1126bae52e02f6cd60fca196f616b9e660dLennart Poettering $(RM) $@
3679d1126bae52e02f6cd60fca196f616b9e660dLennart Poettering $(HC) --make -o $@ $< $(HC_OPTS)
3679d1126bae52e02f6cd60fca196f616b9e660dLennart Poettering
3679d1126bae52e02f6cd60fca196f616b9e660dLennart Poettering### HetCASL parser
3679d1126bae52e02f6cd60fca196f616b9e660dLennart Poetteringhetana: Static/hetana.hs Static/*.hs
3679d1126bae52e02f6cd60fca196f616b9e660dLennart Poettering $(RM) $@
3679d1126bae52e02f6cd60fca196f616b9e660dLennart Poettering $(HC) --make -o $@ $< $(HC_OPTS)
3679d1126bae52e02f6cd60fca196f616b9e660dLennart Poettering
3679d1126bae52e02f6cd60fca196f616b9e660dLennart Poettering### ATC test system
3679d1126bae52e02f6cd60fca196f616b9e660dLennart Poetteringatctest: ATC/ATCTest.hs ATC/*.hs
3679d1126bae52e02f6cd60fca196f616b9e660dLennart Poettering $(RM) $@
3679d1126bae52e02f6cd60fca196f616b9e660dLennart Poettering $(HC) --make -o $@ $< $(HC_OPTS)
3679d1126bae52e02f6cd60fca196f616b9e660dLennart Poettering
cbb7712189527f9f483321607e44c4ead3dd11b8Lennart Poettering
cbb7712189527f9f483321607e44c4ead3dd11b8Lennart Poettering### HetCASL with dev graph
d01a73b6396f57792113c1b5df6e8492fc703e5eLennart Poetteringhetdg: GUI/hetdg.hs $(drifted_files) *.hs
d01a73b6396f57792113c1b5df6e8492fc703e5eLennart Poettering $(RM) $@
f8aeee1f1fe432924b355f48f01f09c9a552ed97Lennart Poettering $(HC) --make -o $@ $< $(HC_OPTS) -package-conf ../uni/uni-package.conf -package uni-davinci -package uni-server
f8aeee1f1fe432924b355f48f01f09c9a552ed97Lennart Poettering
f8aeee1f1fe432924b355f48f01f09c9a552ed97Lennart Poettering
f8aeee1f1fe432924b355f48f01f09c9a552ed97Lennart Poettering### run tests in other directories
f8aeee1f1fe432924b355f48f01f09c9a552ed97Lennart Poetteringcheck: hetcats
356ce9915ab1a4a1e6dc26954df34936a69e7c12Lennart Poettering for i in $(TESTDIRS); do $(MAKE) -C $$i check; done
490b7e47093d491a2bdb1084fe92b796f4e07eefLennart Poettering
81d112a8f0522a09fcfe317f420363a2b728137cLennart Poettering####################################################################
490b7e47093d491a2bdb1084fe92b796f4e07eefLennart Poettering## Preparing the version of HetCATS
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poetteringhetcats/Version.hs: hetcats/Version.in version_nr
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering $(PERL) utils/build_version.pl version_nr < hetcats/Version.in > $@
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering## two hardcoded dependencies for a correct generation of Version.hs
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poetteringhetcats/Options.hs hetcats/WriteFn.hs hetcats/ReadFn.hs: hetcats/Version.hs
466784c8710e5cb0e0b86a16506d992d7ec5b619Kay Sievershets.hs: hetcats/Version.hs
e41814846c19a48f4490169d82e359e005c4db45Lennart Poettering####################################################################
c0fe5db522b52f27e030655ce2c03e05cbbc1558Kay Sievers## rules for DrIFT
e9fd44b728ff1fc0d1f24fccb87a767f6865df27Lennart Poettering
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering%.hs: %.ly
e9fd44b728ff1fc0d1f24fccb87a767f6865df27Lennart Poettering $(HAPPY) $<
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering#%.hs: %.ag.hs
3040728b6691ea2e9df3a2060e2d49a792bbaedaLennart Poettering# $(AG) $<
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering
8ed206517c2be381324ac5832bf34cc14024270eLennart Poettering%.hs: %.der.hs
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering $(DRIFT) $(DRIFT_OPTS) $< > $@
e6c6e7afffa80ad74efdb1ddfa815294624f1608Lennart Poettering
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering#%.hs: %.ag
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering# $(AG) $< -o $@
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering%.lhs: %.der.lhs
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering $(DRIFT) $< > $@
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering## compiling rules for object and interface files
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering%.o %.hi: %.hs
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering $(HC) -c $< $(HC_OPTS)
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering
eb124a97fb72d076014253b1acde69d428f15ecfLennart Poettering
e5ec62c56963d997edaffa904af5dc45dac23988Lennart Poettering%.o %.hi: %.lhs
e673ad0415d89c322e5b1a121e411f1b1d8075c0Lennart Poettering $(HC) -c $< $(HC_OPTS)
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering
e673ad0415d89c322e5b1a121e411f1b1d8075c0Lennart Poettering## compiling rules for dependencies
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering%.d : %.hs
e673ad0415d89c322e5b1a121e411f1b1d8075c0Lennart Poettering $(HC) -M $< $(HC_OPTS) -optdep-f -optdep$@
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering
e673ad0415d89c322e5b1a121e411f1b1d8075c0Lennart Poettering%.d : %.lhs
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering $(HC) -M $< $(HC_OPTS) -optdep-f -optdep$@
b87b8b2b5205c0584da220f73322ea4732d44013Kay Sievers
b87b8b2b5205c0584da220f73322ea4732d44013Kay Sievers####################################################################
b87b8b2b5205c0584da220f73322ea4732d44013Kay Sievers## Setting a global search path (for dependency files)
c06bf414042cd1bf94e0af63e9e2a0c291bfc546Kay Sievers
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poetteringifneq ($(MAKECMDGOALS),clean)
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poetteringifneq ($(MAKECMDGOALS),real_clean)
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poetteringifneq ($(MAKECMDGOALS),d_clean)
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poetteringifneq ($(MAKECMDGOALS),real_clean)
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poetteringifneq ($(MAKECMDGOALS),distclean)
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poetteringifneq ($(MAKECMDGOALS),genRules)
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poetteringifneq ($(MAKECMDGOALS),clean_genRules)
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poetteringifeq ($(MAKECMDGOALS),hets-old)
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering## include every .d file in INCLUDE_PATH
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering-include $(objects:.o=.d)
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poetteringendif
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poetteringsources_hetcats.mk: hetcats-make hetcats/Version.hs hets.hs utils/create_sources.pl $(drifted_files) $(happy_files)
f47ec8ebb3858553dec870e1c596e39525f46360Lennart Poettering $(PERL) utils/create_sources.pl hetcats-make sources_hetcats.mk
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poetteringendif
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poetteringendif
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poetteringendif
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poetteringendif
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poetteringendif
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poetteringendif
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poetteringendif
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering