Makefile revision c5e10ba19c9854112e5d29f491759e8e89f83652
f743002678eb67b99bbc29fee116b65d9530fec0wrowe# hetcats/Makefile
80833bb9a1bf25dcf19e814438a4b311d2e1f4cffuankg# $Header$
cc5a4a08dc9783fcbc52ce86f11e01c281a43810minfrin# Author: (c) Klaus L�ttich, Christian Maeder, Uni Bremen 2002-2004
6a80c3c6f4b8ea7ba5e89402b8b779b09ce020e0covener# Year: 2004
1c2cab00d988fc48cbe59032cf76cc0bab20d6f7covener
6a80c3c6f4b8ea7ba5e89402b8b779b09ce020e0covener# This Makefile will compile the new hetcats system and provides also
45dffe6c346dd73571ccaead10295fc7d53b59a6covener# targets for test programs during implementation phases.
45dffe6c346dd73571ccaead10295fc7d53b59a6covener
45dffe6c346dd73571ccaead10295fc7d53b59a6covener# !!! Note: This makefile is written for GNU make !!!
75a230a728338d84dcfe81edd375352f34de22d0covener# (gmake on solaris ; make on linux)
75a230a728338d84dcfe81edd375352f34de22d0covener
75a230a728338d84dcfe81edd375352f34de22d0covener####################################################################
3694b0116c5729804ed6a5ce119bd8efda116c7fcovener## Some varibles, which control the compilation
3694b0116c5729804ed6a5ce119bd8efda116c7fcovener
3694b0116c5729804ed6a5ce119bd8efda116c7fcovenerINCLUDE_PATH = ghc:hetcats
3694b0116c5729804ed6a5ce119bd8efda116c7fcovenerCOMMONLIB_PATH = Common/Lib:Common/Lib/Parsec:Common/ATerm
1f50dc34ae069adeed20b2986e5ffdefa5c410e0covenerCLEAN_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
1f50dc34ae069adeed20b2986e5ffdefa5c410e0covener## set ghc imports properly for your system
1f50dc34ae069adeed20b2986e5ffdefa5c410e0covenerLINUX_IMPORTS = $(wildcard /home/linux-bkb/ghc/ghc-latest/lib/ghc-*/imports)
63a5ea80bddcc84a462e40f402b4f330e0e05411covenerDRIFT_ENV = DERIVEPATH='.:ghc:hetcats:${LINUX_IMPORTS}:${GHC_IMPORTS}'
63a5ea80bddcc84a462e40f402b4f330e0e05411covener
63a5ea80bddcc84a462e40f402b4f330e0e05411covener# override on commandline for other architectures
63a5ea80bddcc84a462e40f402b4f330e0e05411covenerINSTALLDIR = /home/www/agbkb/forschung/formal_methods/CoFI/hets/`utils/sysname.sh`
986f3ea2c314d4d4b3b937149853a0f23f6119aaminfrin
986f3ea2c314d4d4b3b937149853a0f23f6119aaminfrinDRIFT_deps = utils/DrIFT-src/*hs
986f3ea2c314d4d4b3b937149853a0f23f6119aaminfrinGENERATERULES_deps = utils/GenerateRules/*hs $(DRIFT_deps)
f502dd154eaf60ccf6a993e83c490d52cd0a385eminfrinINLINEAXIOMS_deps = utils/InlineAxioms/*hs
f502dd154eaf60ccf6a993e83c490d52cd0a385eminfrin
f502dd154eaf60ccf6a993e83c490d52cd0a385eminfrinHC = ghc
65a4e663b82f8bce28ac22ab2edfd7502de36998sfPERL = perl
65a4e663b82f8bce28ac22ab2edfd7502de36998sfHAPPY = happy
65a4e663b82f8bce28ac22ab2edfd7502de36998sfDRIFT = $(DRIFT_ENV) utils/DrIFT
65a4e663b82f8bce28ac22ab2edfd7502de36998sfINLINEAXIOMS = utils/outlineAxioms
c7de1955eb0eaeabf7042902476397692672d549sfHADDOCK = haddock
cc5a4a08dc9783fcbc52ce86f11e01c281a43810minfrin
cc5a4a08dc9783fcbc52ce86f11e01c281a43810minfrinHC_FLAGS = -Wall
cc5a4a08dc9783fcbc52ce86f11e01c281a43810minfrin# -fglasgow-exts comes in via ../uni/uni-package.conf
cc5a4a08dc9783fcbc52ce86f11e01c281a43810minfrin
a77a7d850e4496179e1e0f45d5152865c899d421covenerHC_INCLUDE = -i$(INCLUDE_PATH)
a77a7d850e4496179e1e0f45d5152865c899d421covenerHC_PACKAGE = -package-conf ../uni/uni-package.conf -package uni-davinci \
92108a6c4fd7ca6e9acc94d2485920436763e491sf -package uni-server
df6d5653669f1514b4449aaba99cb950c0013e5fcovener
df6d5653669f1514b4449aaba99cb950c0013e5fcovener### Profiling and Warnings (only for debugging)
df6d5653669f1514b4449aaba99cb950c0013e5fcovener### Attention every module must be compiled with profiling or the linker
509622419be000045d461ef38fb97df778fdf81djailletc### cannot link the various .o files properly. So after switching on
509622419be000045d461ef38fb97df778fdf81djailletc### Profiling, do an 'gmake clean; gmake'
509622419be000045d461ef38fb97df778fdf81djailletc### If you need Profiling comment out the following line
509622419be000045d461ef38fb97df778fdf81djailletc#HC_PROF = -prof -auto-all
1de839c61281d58dc75715c1ae06b4b00764c4efjorton
1de839c61281d58dc75715c1ae06b4b00764c4efjortonHCI_OPTS = $(HC_FLAGS) $(HC_PACKAGE) $(HC_INCLUDE)
1de839c61281d58dc75715c1ae06b4b00764c4efjortonHC_OPTS = $(HCI_OPTS) $(HC_PROF)
2e1a0fb12bdf1c20064ffe900a8f44979ec946fcminfrinDRIFT_OPTS = +RTS -K10m -RTS
2e1a0fb12bdf1c20064ffe900a8f44979ec946fcminfrin
2e1a0fb12bdf1c20064ffe900a8f44979ec946fcminfrin### list of directories to run checks in
2e1a0fb12bdf1c20064ffe900a8f44979ec946fcminfrinTESTDIRS = Common CASL HasCASL Haskell/Hatchet/examples ToHaskell/test
441d366a564bc6faa7c1eaffbacf8c4f37862199minfrin
441d366a564bc6faa7c1eaffbacf8c4f37862199minfrin
441d366a564bc6faa7c1eaffbacf8c4f37862199minfrin####################################################################
441d366a564bc6faa7c1eaffbacf8c4f37862199minfrin## sources for hetcats (semi - manually produced with a perl script)
441d366a564bc6faa7c1eaffbacf8c4f37862199minfrin
0b9de55d178312ec929dbe417dd61199b269991djailletcifneq ($(MAKECMDGOALS),clean)
0b9de55d178312ec929dbe417dd61199b269991djailletcifneq ($(MAKECMDGOALS),bin_clean)
0b9de55d178312ec929dbe417dd61199b269991djailletcifneq ($(MAKECMDGOALS),d_clean)
0b9de55d178312ec929dbe417dd61199b269991djailletcifneq ($(MAKECMDGOALS),real_clean)
74e7f6c55fd67b10cb400b3f6d1dc718a303d944minfrinifneq ($(MAKECMDGOALS),distclean)
74e7f6c55fd67b10cb400b3f6d1dc718a303d944minfrinifneq ($(MAKECMDGOALS),genRules)
74e7f6c55fd67b10cb400b3f6d1dc718a303d944minfrinifneq ($(MAKECMDGOALS),utils/genRules)
74e7f6c55fd67b10cb400b3f6d1dc718a303d944minfrinifneq ($(MAKECMDGOALS),hets-opt)
9e0d78337da0ce66247fc3254b9d5be262cbcea8minfrinifneq ($(MAKECMDGOALS),hets-optimized)
9e0d78337da0ce66247fc3254b9d5be262cbcea8minfrinifneq ($(MAKECMDGOALS),derivedSources)
9e0d78337da0ce66247fc3254b9d5be262cbcea8minfrinifneq ($(MAKECMDGOALS),utils/outlineAxioms)
2ae6440d9c0beacb1b2a9726d80b755a8a4a851bjailletcifneq ($(MAKECMDGOALS),release)
2ae6440d9c0beacb1b2a9726d80b755a8a4a851bjailletcifneq ($(MAKECMDGOALS),check)
2ae6440d9c0beacb1b2a9726d80b755a8a4a851bjailletcifneq ($(MAKECMDGOALS),apache_doc)
2ae6440d9c0beacb1b2a9726d80b755a8a4a851bjailletcifneq ($(MAKECMDGOALS),clean_genRules)
2f073ef2a21b1725addef84f318a2b11541e912aminfrinifneq ($(MAKECMDGOALS),atctest2)
2f073ef2a21b1725addef84f318a2b11541e912aminfrinifneq ($(MAKECMDGOALS),hetana)
2f073ef2a21b1725addef84f318a2b11541e912aminfrininclude sources_hetcats.mk
2f073ef2a21b1725addef84f318a2b11541e912aminfrinendif
a511a29faf2ff7ead3b67680154a624effb31aafminfrinendif
a511a29faf2ff7ead3b67680154a624effb31aafminfrinendif
a511a29faf2ff7ead3b67680154a624effb31aafminfrinendif
a511a29faf2ff7ead3b67680154a624effb31aafminfrinendif
a511a29faf2ff7ead3b67680154a624effb31aafminfrinendif
a7584fbbf39ae6a78586ed038d80c31b14ce5461minfrinendif
a7584fbbf39ae6a78586ed038d80c31b14ce5461minfrinendif
a7584fbbf39ae6a78586ed038d80c31b14ce5461minfrinendif
a7584fbbf39ae6a78586ed038d80c31b14ce5461minfrinendif
9ea14ade0d235bec11e6c221b888a6630a0be849covenerendif
9ea14ade0d235bec11e6c221b888a6630a0be849covenerendif
9ea14ade0d235bec11e6c221b888a6630a0be849covenerendif
4860eae0821bbdf3e0da78be7b4057ebed5d86e4minfrinendif
4860eae0821bbdf3e0da78be7b4057ebed5d86e4minfrinendif
4860eae0821bbdf3e0da78be7b4057ebed5d86e4minfrinendif
5b6a4b0e8d6d52394b68b51e0fa439d0eee16e37minfrinendif
5b6a4b0e8d6d52394b68b51e0fa439d0eee16e37minfrin
5b6a4b0e8d6d52394b68b51e0fa439d0eee16e37minfrinobjects = $(patsubst %.lhs,%.o,$(sources:%.hs=%.o))
5b6a4b0e8d6d52394b68b51e0fa439d0eee16e37minfrin
2344a0c1817b88b6df61fc4ed0c6af66bb93ee6bjimdrifted_files = Syntax/AS_Architecture.hs Syntax/AS_Library.hs\
2344a0c1817b88b6df61fc4ed0c6af66bb93ee6bjim Common/AS_Annotation.hs CASL/AS_Basic_CASL.hs Syntax/AS_Structured.hs \
2344a0c1817b88b6df61fc4ed0c6af66bb93ee6bjim $(gendrifted_files)
63921358ef93fcb41bc71d9894221ba3d7fbb87bminfrin
63921358ef93fcb41bc71d9894221ba3d7fbb87bminfringenrule_header_files = $(wildcard ATC/*.header.hs)
63921358ef93fcb41bc71d9894221ba3d7fbb87bminfrin
63921358ef93fcb41bc71d9894221ba3d7fbb87bminfringenrule_files = Common/Lib/Graph.hs Common/Id.hs Common/Result.hs \
63921358ef93fcb41bc71d9894221ba3d7fbb87bminfrin Common/AS_Annotation.der.hs \
bbb08feeeef547b0908b16df6cbbb65da656b86fminfrin Syntax/AS_Structured.der.hs Syntax/AS_Architecture.der.hs \
bbb08feeeef547b0908b16df6cbbb65da656b86fminfrin Common/GlobalAnnotations.hs Syntax/AS_Library.der.hs \
bbb08feeeef547b0908b16df6cbbb65da656b86fminfrin CASL/Sublogic.hs \
bbb08feeeef547b0908b16df6cbbb65da656b86fminfrin CASL/Morphism.hs CASL/Sign.hs CASL/AS_Basic_CASL.der.hs \
eee20257a5ee9228f4aecdf3d3ca68fd0683ff07minfrin HasCASL/As.hs HasCASL/Le.hs HasCASL/Morphism.hs \
eee20257a5ee9228f4aecdf3d3ca68fd0683ff07minfrin HasCASL/Sublogic.hs \
eee20257a5ee9228f4aecdf3d3ca68fd0683ff07minfrin Modal/AS_Modal.hs Modal/ModalSign.hs \
eee20257a5ee9228f4aecdf3d3ca68fd0683ff07minfrin CoCASL/AS_CoCASL.hs CoCASL/CoCASLSign.hs \
eee20257a5ee9228f4aecdf3d3ca68fd0683ff07minfrin CspCASL/AS_CSP_CASL.hs \
eee20257a5ee9228f4aecdf3d3ca68fd0683ff07minfrin Static/DevGraph.hs \
eee20257a5ee9228f4aecdf3d3ca68fd0683ff07minfrin Haskell/Hatchet/AnnotatedHsSyn.hs \
decb536ebd4b7b94c7450c2e1daa491943135abdminfrin Haskell/Hatchet/MultiModuleBasics.hs \
decb536ebd4b7b94c7450c2e1daa491943135abdminfrin Haskell/Hatchet/HsSyn.hs \
decb536ebd4b7b94c7450c2e1daa491943135abdminfrin Haskell/Hatchet/Representation.hs\
decb536ebd4b7b94c7450c2e1daa491943135abdminfrin Haskell/Hatchet/Class.hs Haskell/Hatchet/KindInference.hs \
2d2c5cedd0559093c6e88bd92702e369ef949336minfrin Haskell/Hatchet/Env.hs \
2d2c5cedd0559093c6e88bd92702e369ef949336minfrin Isabelle/IsaSign.hs
2d2c5cedd0559093c6e88bd92702e369ef949336minfrin
2d2c5cedd0559093c6e88bd92702e369ef949336minfringendrifted_files = ATC/Graph.hs ATC/Id.hs ATC/Result.hs ATC/AS_Annotation.hs \
2d2c5cedd0559093c6e88bd92702e369ef949336minfrin ATC/AS_Library.hs ATC/GlobalAnnotations.hs \
2b82678319a66fd9caad8827ca9b38d2412a5abdminfrin ATC/AS_Structured.hs ATC/AS_Architecture.hs \
2b82678319a66fd9caad8827ca9b38d2412a5abdminfrin ATC/DevGraph.hs \
c0da461d68518e8f89f4070a709ba1e56381247cminfrin CASL/ATC_CASL.hs Haskell/ATC_Haskell.hs \
c0da461d68518e8f89f4070a709ba1e56381247cminfrin HasCASL/ATC_HasCASL.hs CspCASL/ATC_CspCASL.hs \
c0da461d68518e8f89f4070a709ba1e56381247cminfrin Modal/ATC_Modal.hs CoCASL/ATC_CoCASL.hs ATC/IsaSign.hs
797fb211307298a8a6984c0edc0d8972b35eeac1minfrin
797fb211307298a8a6984c0edc0d8972b35eeac1minfringenerated_rule_files = $(patsubst %.hs,%.der.hs,$(gendrifted_files))
797fb211307298a8a6984c0edc0d8972b35eeac1minfrin
797fb211307298a8a6984c0edc0d8972b35eeac1minfrininline_axiom_files = Comorphisms/CASL2PCFOL.hs
f27c90ecdefe634bd5f9c529d8658d3a3b441303minfringen_inline_axiom_files = $(patsubst %.hs,%.inline.hs,$(inline_axiom_files))
f27c90ecdefe634bd5f9c529d8658d3a3b441303minfrin
f27c90ecdefe634bd5f9c529d8658d3a3b441303minfrinhappy_files = Haskell/Hatchet/HsParser.hs
80cabec6752622e0db5421af61502bfda95715eaminfrin
80cabec6752622e0db5421af61502bfda95715eaminfrin# this variable holds the modules that should be documented
80cabec6752622e0db5421af61502bfda95715eaminfrin# the imported parsec library is not included!
a2e1bbb77dd09c6a60f2dc18f831000e49add31eminfrindoc_sources = $(filter-out ./Isabelle/IsaSign.hs ,$(sources))
a2e1bbb77dd09c6a60f2dc18f831000e49add31eminfrin
a2e1bbb77dd09c6a60f2dc18f831000e49add31eminfrin####################################################################
a2e1bbb77dd09c6a60f2dc18f831000e49add31eminfrin### targets
a2e1bbb77dd09c6a60f2dc18f831000e49add31eminfrin
a2e1bbb77dd09c6a60f2dc18f831000e49add31eminfrin.PHONY : clean d_clean real_clean bin_clean check hetana hetpa hetdg \
deec48c67d4786bc77112ffbf3a4e70b931097edminfrin clean_genRules genRules
deec48c67d4786bc77112ffbf3a4e70b931097edminfrin
deec48c67d4786bc77112ffbf3a4e70b931097edminfrin.SECONDARY : %.hs %.d $(generated_rule_files) $(gen_inline_axiom_files)
deec48c67d4786bc77112ffbf3a4e70b931097edminfrin#.PRECIOUS: sources_hetcats.mk
6d601599d3d65df0410eae6e573e75b2dbfb1fb4minfrin
6d601599d3d65df0410eae6e573e75b2dbfb1fb4minfrinall: hets
6d601599d3d65df0410eae6e573e75b2dbfb1fb4minfrin
6d601599d3d65df0410eae6e573e75b2dbfb1fb4minfrinhets: $(sources)
40d570cf1420f497bcac59045d4ce477f0b5d891minfrin $(HC) --make -o $@ hets.hs $(HC_OPTS) 2>&1 | tee hetcats-make
40d570cf1420f497bcac59045d4ce477f0b5d891minfrin
40d570cf1420f497bcac59045d4ce477f0b5d891minfrinhets-opt: hetcats/Version.hs
edab53cc0be707fa71968a95c696b19f0e6c4736minfrin $(MAKE) distclean
edab53cc0be707fa71968a95c696b19f0e6c4736minfrin $(MAKE) derivedSources
edab53cc0be707fa71968a95c696b19f0e6c4736minfrin $(MAKE) real_clean
806e9ba570ef48df4bfd8364e2f4d57381388a11minfrin $(MAKE) hets-optimized
806e9ba570ef48df4bfd8364e2f4d57381388a11minfrin
806e9ba570ef48df4bfd8364e2f4d57381388a11minfrinhets-optimized:
806e9ba570ef48df4bfd8364e2f4d57381388a11minfrin $(HC) --make -O -o hets hets.hs $(HC_OPTS) -w 2>&1 | tee hetcats-make
806e9ba570ef48df4bfd8364e2f4d57381388a11minfrin strip hets
a4273e3e513ce8f5e1311c320cbd334cc382950eminfrin
a4273e3e513ce8f5e1311c320cbd334cc382950eminfrinhets-old: $(objects)
a4273e3e513ce8f5e1311c320cbd334cc382950eminfrin $(RM) $@
d3e0a61e1bcc497f2efd7af41a5a9d77090ecc1cminfrin $(HC) -o hets $(HC_OPTS) $(objects)
a4273e3e513ce8f5e1311c320cbd334cc382950eminfrin
d3e0a61e1bcc497f2efd7af41a5a9d77090ecc1cminfrinhetcats-make: hets.hs utils/create_sources.pl $(drifted_files) $(happy_files) $(inline_axiom_files)
d3e0a61e1bcc497f2efd7af41a5a9d77090ecc1cminfrin $(RM) hetcats-make sources_hetcats.mk
1aac1c71105133d669960501bdf2274e63561054minfrin $(HC) --make -o hets $< $(HC_OPTS) 2>&1 | tee hetcats-make
1aac1c71105133d669960501bdf2274e63561054minfrin
1aac1c71105133d669960501bdf2274e63561054minfrin###############################
2c487ac43b583db869e743772a7a10b278aa2bcfminfrin### TAGS files for (x)emacs
2c487ac43b583db869e743772a7a10b278aa2bcfminfrin# load them with "M-x" "visit-tags-table" from
2c487ac43b583db869e743772a7a10b278aa2bcfminfrin# "HetCATS/hetcats/hetcats.TAGS"
2c487ac43b583db869e743772a7a10b278aa2bcfminfrin# use "M-." to search for a tag
2c487ac43b583db869e743772a7a10b278aa2bcfminfrin# !!Beware this is somewhat instable, because it uses an absolute path!!
dbf5f584c62fe6030d81121fdddeb7588b78b867sfhetcats.TAGS: $(sources)
dbf5f584c62fe6030d81121fdddeb7588b78b867sf /home/ger/linux/ghc-5.04.2/bin/i386-unknown-linux/hasktags \
15320dc646e41d3eb38736978500349c4d66dc0dsf $(sources); mv TAGS $@; mv tags hetcats.tags
15320dc646e41d3eb38736978500349c4d66dc0dsf
691db92094897494d6c31326108da20088bc175etrawick###############################
691db92094897494d6c31326108da20088bc175etrawick### Documentation via haddock
691db92094897494d6c31326108da20088bc175etrawickdoc: docs/index.html
92108a6c4fd7ca6e9acc94d2485920436763e491sf
92108a6c4fd7ca6e9acc94d2485920436763e491sf# index for prelude is missing
684e0cfc200f66287a93bbd1708d1dd8a92a7eefcovenerdocs/index.html: $(doc_sources)
684e0cfc200f66287a93bbd1708d1dd8a92a7eefcovener $(HADDOCK) $(doc_sources) -o docs -h \
684e0cfc200f66287a93bbd1708d1dd8a92a7eefcovener -i docs/base.haddock \
5c43d2fb853f84497b5ece2d414ef9484aa87e5fsf -t 'hets -- a heterogenous Specification (CASL) tool set'
05a5a9c3e16f21566e1b61f4bd68025ce1b741ccjoes
05a5a9c3e16f21566e1b61f4bd68025ce1b741ccjoesapache_doc:
ef82e8fa164e0a1f8b813f7deb6b7ead96018c94niq $(RM) docs/*.*
26c5829347f6a355c00f1ba0301d575056b69536niq cvs up -d
ef82e8fa164e0a1f8b813f7deb6b7ead96018c94niq $(MAKE) hets-opt
ef82e8fa164e0a1f8b813f7deb6b7ead96018c94niq $(MAKE) doc
ef82e8fa164e0a1f8b813f7deb6b7ead96018c94niq $(MAKE) post_doc4apache
ef82e8fa164e0a1f8b813f7deb6b7ead96018c94niq
ef82e8fa164e0a1f8b813f7deb6b7ead96018c94niqpost_doc4apache:
ef82e8fa164e0a1f8b813f7deb6b7ead96018c94niq $(PERL) utils/post_process_docs.pl docs \
413ee814748f37be168ff12407fa6dba0ceeabe6trawick 'Common.Lib.Map.html:Common.Lib._Map.html'
c12917da693bae4028a1d5a5e8224bceed8c739dsf cp docs/*.* a-docs/
c12917da693bae4028a1d5a5e8224bceed8c739dsf
eeb7898b9c087040d44550f8a6b1a257783c9f0ahumbedooh###############################
eeb7898b9c087040d44550f8a6b1a257783c9f0ahumbedooh### release management
7705103518c61f7cdcd4041fe871cb45114f31a5rpluem
eafcc0ebf263d0ba69855b6e10958c4c1a2361bdsfderivedSources: $(drifted_files) $(happy_files) hetcats/Version.hs $(inline_axiom_files)
eafcc0ebf263d0ba69855b6e10958c4c1a2361bdsf
eafcc0ebf263d0ba69855b6e10958c4c1a2361bdsfutils/DrIFT: $(DRIFT_deps)
eafcc0ebf263d0ba69855b6e10958c4c1a2361bdsf (cd utils/DrIFT-src; $(HC) --make DrIFT.hs -o ../DrIFT && \
eafcc0ebf263d0ba69855b6e10958c4c1a2361bdsf strip ../DrIFT)
d7ffd2da16d58b1a0de212e4d56f7aebb72bef26sf
d7ffd2da16d58b1a0de212e4d56f7aebb72bef26sfutils/genRules: $(GENERATERULES_deps)
d7ffd2da16d58b1a0de212e4d56f7aebb72bef26sf (cd utils/GenerateRules; \
4576c1a9ef54cd1e5555ee07d016a7f559f80338sf $(HC) --make '-i../..:../DrIFT-src' -package text GenerateRules.hs -o ../genRules && \
4576c1a9ef54cd1e5555ee07d016a7f559f80338sf strip ../genRules)
4576c1a9ef54cd1e5555ee07d016a7f559f80338sf
9811aed12bbc71783d2e544ccb5fecd193843eadsfutils/outlineAxioms: $(INLINEAXIOMS_deps)
9811aed12bbc71783d2e544ccb5fecd193843eadsf $(HC) --make utils/InlineAxioms/InlineAxioms.hs \
9811aed12bbc71783d2e544ccb5fecd193843eadsf $(HC_OPTS) -o utils/outlineAxioms
d58a822aff1dfda25384d3d009f88f1883c95436kbrand strip utils/outlineAxioms
d58a822aff1dfda25384d3d009f88f1883c95436kbrand
d58a822aff1dfda25384d3d009f88f1883c95436kbrandrelease:
e02ff627c1e63137247e20493f6ef44b3bb1a095sf $(RM) -r HetCATS
e02ff627c1e63137247e20493f6ef44b3bb1a095sf cvs -d :pserver:cvsread@cvs-agbkb.informatik.uni-bremen.de:/repository co HetCATS
e02ff627c1e63137247e20493f6ef44b3bb1a095sf $(RM) -r uni
1366443dc565c33e7b449ae428bbfc4c86f33935drh ln -s ../uni uni
1366443dc565c33e7b449ae428bbfc4c86f33935drh (cd HetCATS; $(MAKE) derivedSources; ./clean.sh; \
88fac54d9d64f85bbdab5d7010816f4377f95bd7rjung find . -name CVS -o -name \*.o -o -name \*.hi | xargs $(RM) -r; \
88fac54d9d64f85bbdab5d7010816f4377f95bd7rjung $(RM) clean.*; mv Makefile Makefile.orig; \
bd3f5647b96d378d9c75c954e3f13582af32c643sf mv ReleaseMakefile Makefile)
bd3f5647b96d378d9c75c954e3f13582af32c643sf tar cvf HetCATS.tar HetCATS
bd3f5647b96d378d9c75c954e3f13582af32c643sf
bd3f5647b96d378d9c75c954e3f13582af32c643sfinstall-hets:
bd3f5647b96d378d9c75c954e3f13582af32c643sf chmod g+w hets
2a7beea91d46beb41f043a84eaad060047ee04aafabien cp -p hets $(INSTALLDIR)/versions/hets-`cat version_nr`
2a7beea91d46beb41f043a84eaad060047ee04aafabien cp -p version_nr $(INSTALLDIR)
2a7beea91d46beb41f043a84eaad060047ee04aafabien (cd $(INSTALLDIR); $(RM) hets; \
2a7beea91d46beb41f043a84eaad060047ee04aafabien ln -s versions/hets-`cat version_nr` hets; $(RM) version_nr)
584a85dd4047e38d3ed3a29b6662fcc9d100ae4csf
584a85dd4047e38d3ed3a29b6662fcc9d100ae4csfinstall: hets-opt install-hets
584a85dd4047e38d3ed3a29b6662fcc9d100ae4csf
f21e9e3d0bfb7a507ecc5bc963f2159d693503d1sf#############################
f21e9e3d0bfb7a507ecc5bc963f2159d693503d1sf### ATC DrIFT-rule generation
f21e9e3d0bfb7a507ecc5bc963f2159d693503d1sf
f6b9c755a0b793e8a3a3aebd327ca20a86478117sfgenRules: $(generated_rule_files) utils/genRules
f6b9c755a0b793e8a3a3aebd327ca20a86478117sf
f6b9c755a0b793e8a3a3aebd327ca20a86478117sf$(generated_rule_files): $(genrule_files) utils/genRules #$(genrule_header_files)
132ee6ac1c26d6e8953836316ba50734eefab47bsf $(MAKE) clean_genRules
132ee6ac1c26d6e8953836316ba50734eefab47bsf $(foreach file,$(atc_files),$(gen_atc_files))
132ee6ac1c26d6e8953836316ba50734eefab47bsf utils/genRules -r $(rule) -o CASL $(casl_files)
fc1459657a1fde206a847f9028930725d715f8b4trawick utils/genRules -r $(rule) -o HasCASL -h ATC/HasCASL.header.hs \
fc1459657a1fde206a847f9028930725d715f8b4trawick $(hascasl_files)
fc1459657a1fde206a847f9028930725d715f8b4trawick utils/genRules -r $(rule) -o Modal $(modal_files)
85eacfc96a04547ef25aabbc06440039715084c2jorton utils/genRules -r $(rule) -o CoCASL $(cocasl_files)
85eacfc96a04547ef25aabbc06440039715084c2jorton utils/genRules -r $(rule) -o CspCASL $(cspcasl_files)
85eacfc96a04547ef25aabbc06440039715084c2jorton utils/genRules -r $(rule) -o Haskell -h ATC/Haskell.header.hs \
68ba377fc3b124baa759662077c48077ebadb186minfrin $(haskell_files)
68ba377fc3b124baa759662077c48077ebadb186minfrin
68ba377fc3b124baa759662077c48077ebadb186minfrinrule = ShATermConvertible
68ba377fc3b124baa759662077c48077ebadb186minfrin
d776b0a2d2889ce1d13494873368f34327a2e1bbtrawickgen_atc_files = if [ -f ATC/$(basename $(basename $(notdir $(file)))).header.hs ]; then \
d776b0a2d2889ce1d13494873368f34327a2e1bbtrawick utils/genRules -r $(rule) -o ATC -h ATC/$(basename $(basename $(notdir $(file)))).header.hs $(file); \
f4ca9f6f002fece336168a16355434ca966f96a9trawick else \
78f94f1d06c4e6828ce04d618221e0fcecb57849humbedooh utils/genRules -r $(rule) -o ATC $(file); \
78f94f1d06c4e6828ce04d618221e0fcecb57849humbedooh fi ;
78f94f1d06c4e6828ce04d618221e0fcecb57849humbedooh
536d2e7cd1fdec1255b8c3bdf41fdc714c506a54trawickatc_files := $(filter-out CASL/% HasCASL/% Modal/% CoCASL/% CspCASL/% Haskell/% ,$(genrule_files))
536d2e7cd1fdec1255b8c3bdf41fdc714c506a54trawickcasl_files := $(filter CASL/% ,$(genrule_files))
536d2e7cd1fdec1255b8c3bdf41fdc714c506a54trawickhascasl_files := $(filter HasCASL/% ,$(genrule_files))
536d2e7cd1fdec1255b8c3bdf41fdc714c506a54trawickmodal_files := $(filter Modal/% ,$(genrule_files))
70caa242e6b90e0d6f0fabb56b8c5c2fb51717b3jortoncocasl_files := $(filter CoCASL/% ,$(genrule_files))
985a4368b93c3e9171a57897ad9454c8dbf4cdf6jortoncspcasl_files := $(filter CspCASL/% ,$(genrule_files))
70caa242e6b90e0d6f0fabb56b8c5c2fb51717b3jortonhaskell_files := $(filter Haskell/%,$(genrule_files))
70caa242e6b90e0d6f0fabb56b8c5c2fb51717b3jorton
109e2a09790de3fb315d36d6232a14ab66c8eb0ahumbedoohclean_genRules:
109e2a09790de3fb315d36d6232a14ab66c8eb0ahumbedooh $(RM) $(generated_rule_files)
109e2a09790de3fb315d36d6232a14ab66c8eb0ahumbedooh
74e7a30182af5e68f14ccb8d57918b22b982db8bhumbedooh###############
74e7a30182af5e68f14ccb8d57918b22b982db8bhumbedooh### clean up
74e7a30182af5e68f14ccb8d57918b22b982db8bhumbedooh
10961a2f60207cb873d889bb28b1f0ef707a4311humbedooh### removes *.hi and *.o in all include directories
10961a2f60207cb873d889bb28b1f0ef707a4311humbedoohclean: bin_clean
10961a2f60207cb873d889bb28b1f0ef707a4311humbedooh for p in $(subst :, ,$(CLEAN_PATH)) . ; do \
0448378b899e8df0c060360f17c0af692adf17bchumbedooh (cd $$p ; $(RM) *.hi *.o) ; done
0448378b899e8df0c060360f17c0af692adf17bchumbedooh
0448378b899e8df0c060360f17c0af692adf17bchumbedooh### remove binaries
60a765cccbd3f3b5997b65b0034220c79f78369etrawickbin_clean:
60a765cccbd3f3b5997b65b0034220c79f78369etrawick $(RM) hets
60a765cccbd3f3b5997b65b0034220c79f78369etrawick $(RM) test_parser
e7ca863b04ee2a7aea7738cadbf51ce5e6c5245dhumbedooh $(RM) CASL/capa
e7ca863b04ee2a7aea7738cadbf51ce5e6c5245dhumbedooh $(RM) HasCASL/hacapa
e7ca863b04ee2a7aea7738cadbf51ce5e6c5245dhumbedooh $(RM) Haskell/hapa
e7ca863b04ee2a7aea7738cadbf51ce5e6c5245dhumbedooh $(RM) Haskell/wrap
91654e263480f0fdc2a03d782ff23f8dad07cf79humbedooh $(RM) Syntax/hetpa
91814c869ca39ce45dfe147307d2a831cac6ecbehumbedooh $(RM) Static/hetana
91654e263480f0fdc2a03d782ff23f8dad07cf79humbedooh $(RM) Static/hetana
79c5787b92ac5f0e1cc82393816c77a006399316trawick $(RM) GUI/hetdg
79c5787b92ac5f0e1cc82393816c77a006399316trawick $(RM) hetpa
79c5787b92ac5f0e1cc82393816c77a006399316trawick $(RM) hetana
79c5787b92ac5f0e1cc82393816c77a006399316trawick $(RM) hetdg
c967bf3bc89e8aa60dbd30d9da388e448ddc1cc4trawick $(RM) atctest2
79c5787b92ac5f0e1cc82393816c77a006399316trawick $(RM) atctest
79c5787b92ac5f0e1cc82393816c77a006399316trawick $(RM) Common/annos
79c5787b92ac5f0e1cc82393816c77a006399316trawick
79c5787b92ac5f0e1cc82393816c77a006399316trawick### additonally removes *.d (dependency files) in every include directory
79c5787b92ac5f0e1cc82393816c77a006399316trawick### also delete *.d.bak (dependency file backups)
7b395e4e878c28a4784919cfd2e704ddd14a3390jortond_clean: clean
7b395e4e878c28a4784919cfd2e704ddd14a3390jorton for p in $(subst :, ,$(CLEAN_PATH)) . ; do \
7b395e4e878c28a4784919cfd2e704ddd14a3390jorton (cd $$p ; $(RM) *.d *.d.bak) ; done
7b395e4e878c28a4784919cfd2e704ddd14a3390jorton
536e48c08d674acac5d44929318f2ad928edc361jorton### remove files also in own libraries
536e48c08d674acac5d44929318f2ad928edc361jortonlib_clean: clean
e81785da447b469da66f218b3f0244aab507958djorton for p in $(subst :, ,$(COMMONLIB_PATH)) . ; do \
e81785da447b469da66f218b3f0244aab507958djorton (cd $$p ; $(RM) *.hi *.d *.o) ; done
3e4e54d4e3fc0123c63d57aa84ac7ad7a8c73ff8jorton
3e4e54d4e3fc0123c63d57aa84ac7ad7a8c73ff8jorton### additionally removes the files that define the sources-variable
3e4e54d4e3fc0123c63d57aa84ac7ad7a8c73ff8jortonreal_clean: bin_clean lib_clean
53e9b27aba029b18be814df40bcf6f0428771d1efuankg $(RM) hetcats-make sources_hetcats.mk
53e9b27aba029b18be814df40bcf6f0428771d1efuankg
53e9b27aba029b18be814df40bcf6f0428771d1efuankg### additionally removes files not in CVS tree
53e9b27aba029b18be814df40bcf6f0428771d1efuankgdistclean: real_clean clean_genRules d_clean
53e9b27aba029b18be814df40bcf6f0428771d1efuankg $(RM) hetcats/Version.hs
6bb524f1895f30265a1431afc460977d391cb36bsf $(RM) $(drifted_files)
6bb524f1895f30265a1431afc460977d391cb36bsf $(RM) utils/DrIFT utils/genRules
ca61ccd0c306c2c72df153688ba1b49f3eceed80sf# $(RM) $(happy_files)
6bb524f1895f30265a1431afc460977d391cb36bsf
e6dd71992459d05a676b98b7963423dc5dc1e24aminfrin####################################################################
e6dd71992459d05a676b98b7963423dc5dc1e24aminfrin### test targets
e6dd71992459d05a676b98b7963423dc5dc1e24aminfrin####################################################################
e6dd71992459d05a676b98b7963423dc5dc1e24aminfrin
23f1535d6a60817d2846bac0aea230ea475d7dccminfrin### a parser to test annotation parser and Id parsers
23f1535d6a60817d2846bac0aea230ea475d7dccminfrintest_parser: Common/test_parser
23f1535d6a60817d2846bac0aea230ea475d7dccminfrin
23f1535d6a60817d2846bac0aea230ea475d7dccminfrinCommon/test_parser: Common/test_parser.hs Common/AS_Annotation.der.hs
ec7520b24cd80d34d82bbcaca153cbb23cc04bc0rjung $(RM) $@
ec7520b24cd80d34d82bbcaca153cbb23cc04bc0rjung $(HC) --make -o $@ $< $(HC_OPTS)
ec7520b24cd80d34d82bbcaca153cbb23cc04bc0rjung
ec7520b24cd80d34d82bbcaca153cbb23cc04bc0rjung### interactive
ec7520b24cd80d34d82bbcaca153cbb23cc04bc0rjungghci:
ec7520b24cd80d34d82bbcaca153cbb23cc04bc0rjung $(HC)i $(HCI_OPTS)
ec7520b24cd80d34d82bbcaca153cbb23cc04bc0rjung
ec7520b24cd80d34d82bbcaca153cbb23cc04bc0rjung### christian's target
6249dfa569d3b4f1f539665b979a80c6e335d93etrawick### CASL parser
6249dfa569d3b4f1f539665b979a80c6e335d93etrawickcapa: CASL/capa
0827cb14e550f6f65018431c22c2c913631c8f25kbrand
6249dfa569d3b4f1f539665b979a80c6e335d93etrawickCASL/capa: CASL/capa.hs Common/*.hs CASL/*.hs
ae600ca541efc686b34f8b1f21bd3d0741d37674covener $(RM) $@
6249dfa569d3b4f1f539665b979a80c6e335d93etrawick $(HC) --make -o $@ $< $(HC_OPTS)
cfa64348224b66dd1c9979b809406c4d15b1c137fielding
74499a117b3b2cd9666715a14f90c0e5d1a4ee8ajim### HasCASL parser
cfa64348224b66dd1c9979b809406c4d15b1c137fieldinghacapa: HasCASL/hacapa
74499a117b3b2cd9666715a14f90c0e5d1a4ee8ajim
cfa64348224b66dd1c9979b809406c4d15b1c137fieldingHasCASL/hacapa: HasCASL/hacapa.hs Common/*.hs HasCASL/*.hs
74499a117b3b2cd9666715a14f90c0e5d1a4ee8ajim $(RM) $@
cfa64348224b66dd1c9979b809406c4d15b1c137fielding $(HC) --make -o $@ $< $(HC_OPTS)
74499a117b3b2cd9666715a14f90c0e5d1a4ee8ajim
cfa64348224b66dd1c9979b809406c4d15b1c137fielding### Haskell parser
hapa: Haskell/hapa
Haskell/hapa: Haskell/hapa.hs Haskell/Hatchet/*.hs $(happy_files)
$(RM) $@
$(HC) --make -o $@ $< $(HC_OPTS)
### HetCASL parser
hetpa: Syntax/hetpa.hs Syntax/*.hs
$(RM) $@
$(HC) --make -o $@ $< $(HC_OPTS)
### HetCASL parser
hetana: Static/hetana.hs Static/*.hs
$(RM) $@
$(HC) --make -o $@ $< $(HC_OPTS)
### ATC test system
atctest: ATC/ATCTest.hs ATC/*.hs
$(RM) $@
$(HC) --make -o $@ $< $(HC_OPTS)
atctest2: Common/ATerm/ATermLibTest.hs Common/SimpPretty.hs Common/ATerm/*.hs Common/Lib/*.hs
$(RM) $@
$(HC) --make -o $@ $< $(HC_OPTS)
### ATerm.Lib test system
atermlibtest: Common/ATerm/ATermLibTest.hs Common/ATerm/*.hs Common/SimpPretty.hs
$(RM) $@
$(HC) --make -o $@ $< $(HC_OPTS)
### HetCASL with dev graph
hetdg: GUI/hetdg.hs $(drifted_files) *.hs
$(RM) $@
$(HC) --make -o $@ $< $(HC_OPTS) -package-conf ../uni/uni-package.conf -package uni-davinci -package uni-server
### run tests in other directories
check: hetcats
for i in $(TESTDIRS); do $(MAKE) -C $$i check; done
####################################################################
## Preparing the version of HetCATS
hetcats/Version.hs: hetcats/Version.in version_nr
$(PERL) utils/build_version.pl version_nr < hetcats/Version.in > $@
## two hardcoded dependencies for a correct generation of Version.hs
hetcats/Options.hs hetcats/WriteFn.hs hetcats/ReadFn.hs: hetcats/Version.hs
hets.hs: hetcats/Version.hs
####################################################################
## rules for DrIFT
%.hs: %.ly
$(HAPPY) $<
%.hs: %.der.hs utils/DrIFT
$(DRIFT) $(DRIFT_OPTS) $< > $@
## rules for inlineAxioms
%.hs: %.inline.hs utils/outlineAxioms
$(INLINEAXIOMS) $< > $@
## compiling rules for object and interface files
%.o %.hi: %.hs
$(HC) -c $< $(HC_OPTS)
%.o %.hi: %.lhs
$(HC) -c $< $(HC_OPTS)
## compiling rules for dependencies
%.d : %.hs
$(HC) -M $< $(HC_OPTS) -optdep-f -optdep$@
%.d : %.lhs
$(HC) -M $< $(HC_OPTS) -optdep-f -optdep$@
####################################################################
## Setting a global search path (for dependency files)
ifneq ($(MAKECMDGOALS),clean)
ifneq ($(MAKECMDGOALS),real_clean)
ifneq ($(MAKECMDGOALS),d_clean)
ifneq ($(MAKECMDGOALS),real_clean)
ifneq ($(MAKECMDGOALS),distclean)
ifneq ($(MAKECMDGOALS),genRules)
ifneq ($(MAKECMDGOALS),utils/genRules)
ifneq ($(MAKECMDGOALS),derivedSources)
ifneq ($(MAKECMDGOALS),release)
ifneq ($(MAKECMDGOALS),clean_genRules)
ifeq ($(MAKECMDGOALS),hets-old)
## include every .d file in INCLUDE_PATH
-include $(objects:.o=.d)
endif
sources_hetcats.mk: hetcats-make hetcats/Version.hs hets.hs utils/create_sources.pl $(drifted_files) $(happy_files)
$(PERL) utils/create_sources.pl hetcats-make sources_hetcats.mk
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif