Makefile revision 470ca7a2797069ae4b27c34c1b71419f67be1f84
84fbf855118f318dd5e511d8e5b902cecc1177c0jim# Author: Klaus L�ttich
e08076ca56e6cb68b30846b9e9339061058aae6dpoirier# Year: 2003
e08076ca56e6cb68b30846b9e9339061058aae6dpoirier# This Makefile will compile the new hetcats system and provides also
e08076ca56e6cb68b30846b9e9339061058aae6dpoirier# targets for test programs during implementation phases.
e08076ca56e6cb68b30846b9e9339061058aae6dpoirier# !!! Note: This makefile is written for GNU make !!!
e08076ca56e6cb68b30846b9e9339061058aae6dpoirier# (gmake on solaris ; make on linux)
b7a2f855b5e31abc24dab2eef28e9e2f985ae25brpluem####################################################################
b7a2f855b5e31abc24dab2eef28e9e2f985ae25brpluem## Some varibles, which control the compilation
fa1c7ce09927decc1eecd1e9a35cc5331078a052covenerCLEAN_PATH = Common/Lib:Common/Lib/Parsec:Common:Logic:CASL:Syntax:Static:GUI:HasCASL:Haskell:Haskell/Language:Modal:CSP-CASL:$(INCLUDE_PATH)
0807f6da6091b748ab47c21ba66252fe8da2a966sfHC_FLAGS = -fglasgow-exts -fallow-overlapping-instances -Wall
dc52cac281d8b311dc47d115ed979f923b667679rjung### Profiling and Warnings (only for debugging)
2534e869d2ba209bd0c43717ea80992e6de0c51djim### Attention every module must be compiled with profiling or the linker
2534e869d2ba209bd0c43717ea80992e6de0c51djim### cannot link the various .o files properly. So after switching on
f8033d657a57eab45af44368774d8beb3e4f7f35pquerna### Profiling, do an 'gmake clean; gmake'
f8033d657a57eab45af44368774d8beb3e4f7f35pquerna### If you need Profiling comment out the following line
f8033d657a57eab45af44368774d8beb3e4f7f35pquerna#HC_PROF = -prof -auto-all -Wall
da48ae521bcc2751f8eb8dfb02f7aab0f46943c6sf### list of directories to run checks in
1374472d83ce061a431b7f6eeb5e5135fb4cd922jim####################################################################
1374472d83ce061a431b7f6eeb5e5135fb4cd922jim## sources for hetcats (semi - manually produced with a perl script)
815067bc5eff8fc218019e18ee5ea868372917cdsfdrifted_files = Syntax/AS_Architecture.hs Syntax/AS_Library.hs\
9f2c7096ac1f41aca1328d304d54dbaef4ebb06drjung Common/AS_Annotation.hs CASL/AS_Basic_CASL.hs Syntax/AS_Structured.hs
ff5e24709209b13601480827b0fecf32c428ff32rjung# this variable holds the modules that should be documented
39d67f66729a7008c1e73d65a81e778ce819a227rjung# the imported parsec library is not included!
da20b997bf4652f7597e0a7845db371aab2f7187rjung####################################################################
133cbcba0df4ba0e72f7eaaaebabe119f145f261niq### targets
927e277b4be750e06960b3d4f1c2b1ca146e0555niqhetcats-make: hets.hs utils/create_sources.pl $(drifted_files)
927e277b4be750e06960b3d4f1c2b1ca146e0555niq $(HC) --make -o hets $< $(HC_OPTS) 2>&1 | tee hetcats-make && \
83de39879307034216ce0af15a47a88a55af11e3rjung $(PERL) utils/create_sources.pl hetcats-make sources_hetcats.mk
83de39879307034216ce0af15a47a88a55af11e3rjung###############################
7cfa48136e3b42a14cdff1a46b60f4e4d2ad5291niq### TAGS files for (x)emacs
7cfa48136e3b42a14cdff1a46b60f4e4d2ad5291niq# load them with "M-x" "visit-tags-table" from
7cfa48136e3b42a14cdff1a46b60f4e4d2ad5291niq# use "M-." to search for a tag
7cfa48136e3b42a14cdff1a46b60f4e4d2ad5291niq# !!Beware this is somewhat instable, because it uses an absolute path!!
0a4924de8350e2bbfa16a27f42ff0bc61aa52d43rjung /home/ger/linux/ghc-5.04.2/bin/i386-unknown-linux/hasktags \
4ea8055e720d18f386b8026b546e5836ecccba4arjung###############################
bec2a2e375fe46599b68399abfcf67b89b270b57wrowe### Documentation via haddock
bec2a2e375fe46599b68399abfcf67b89b270b57wrowe -t 'HetCATS -- a heterogenous CASL tool set'
bec2a2e375fe46599b68399abfcf67b89b270b57wrowe###############
46fdfef7dfc745effe179387e1dcb8245d3804batrawick### clean up
46fdfef7dfc745effe179387e1dcb8245d3804batrawick### removes *.hi and *.o in all include directories
46fdfef7dfc745effe179387e1dcb8245d3804batrawick### additionally removes binaries
cddaaa6378c5082e8dff0d11dc21cf6c4928ecbcjorton### additonally removes *.d (dependency files) in every include directory
cddaaa6378c5082e8dff0d11dc21cf6c4928ecbcjorton### also delete *.d.bak (dependency file backups)
9b2bd9e83cbb6f5debb2edba59a0c12089eb37c3minfrin### additionally removes the files that define the sources-variable
a89e2c1651aab7734345fa3a6712a757708535ferjung### additionally removes files not in CVS tree
adc9a2e2b2e56a7416c90f949bd0c72ddd6f1793rjung####################################################################
adc9a2e2b2e56a7416c90f949bd0c72ddd6f1793rjung### test targets
adc9a2e2b2e56a7416c90f949bd0c72ddd6f1793rjung####################################################################
adc9a2e2b2e56a7416c90f949bd0c72ddd6f1793rjung### a parser to test annotation parser and Id parsers
adc9a2e2b2e56a7416c90f949bd0c72ddd6f1793rjungCommon/test_parser: Common/test_parser.hs Common/AS_Annotation.der.hs
23bc6974af15e69a9aa4b5b3fc06b800b53ca234sf### interactive
298eb744831be682f749ffe1c01c88d82adf215esf### christian's target
298eb744831be682f749ffe1c01c88d82adf215esf### CASL parser
b9aa9ca00496f67eb755d67764775ff23ac7eb03covener### HasCASL parser
f2386b627177c7a80d38fed6ec0aed3c086909c1covenerHasCASL/hacapa: HasCASL/hacapa.lhs CASL/capa HasCASL/*.hs
70d4e28f12f8cc2e130457c841095dc69c67cf31minfrin### Haskell parser
1a668f25bc6b4b111822caaba70bb9289d64ade5niqHaskell/hapa: Haskell/hapa.lhs Haskell/*.hs $(drifted_files) Haskell/Language/Parser.hs
7a6c86627922e38fa227943b9f888f96109681e5covenerHaskell/Language/Parser.hs: Haskell/Language/Parser.ly
17efe57eb8d88fa0d371f4ac4939dbbbe78fd09bcovener### Haskell wrap parser
8068423ee2d80a7c42b2325a71c24ac9485327cecovener### HetCASL parser
7703bad94964cc64022e08e2d1ae2c5fbfe2d3c6covener### HetCASL parser
5a2f24f5e41d52e59e1c11e90cd423b8967d4184trawick### HetCASL with dev graph
19ce7effbcc8a735f1a883f9266e086fde2adb63poirier $(HC) --make -o $@ $< $(HC_OPTS) -package-conf ../uni/uni-package.conf -package uni-davinci -package uni-server
8eac2273e3d5f2dc8464fada76fcfbf33a938a2fcovener### run tests in other directories
c6124d7fde07b58d51785d0f1cb509026eeaa138jim####################################################################
c6124d7fde07b58d51785d0f1cb509026eeaa138jim## Preparing the version of HetCATS
c6124d7fde07b58d51785d0f1cb509026eeaa138jim $(PERL) utils/build_version.pl version_nr < hetcats/Version.in > $@
680e7b4c70df00b695883c824947ca6ec15d69ecsf## two hardcoded dependencies for a correct generation of Version.hs
3a49a6c98ef80c71830e66e7f8f46083001b494ctrawick####################################################################
d46dfdce9351f52a971777948d9b02f8fc668ff8niq## rules for DrIFT
e9eabac76b50e8f00d0c391f6070d0f42db77aa2wrowe $(AG) $< -o $@
433d36fd71af86369719893afe09877be4cb4f3asf## compiling rules for object and interface files
46fdfef7dfc745effe179387e1dcb8245d3804batrawick## compiling rules for dependencies
46fdfef7dfc745effe179387e1dcb8245d3804batrawick####################################################################
46fdfef7dfc745effe179387e1dcb8245d3804batrawick## Setting a global search path (for dependency files)
ae1981fc94adf2b231e2d0e15d2f895b2138c969covener## include every .d file in INCLUDE_PATH